Server IP : 162.213.251.212 / Your IP : 3.17.165.204 [ Web Server : LiteSpeed System : Linux business55.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : allssztx ( 535) PHP Version : 8.1.31 Disable Function : NONE Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/thread-self/root/home/allssztx/www/easybuyer/public/asset/admin_asset/js/ |
Upload File : |
/* -- DO NOT REMOVE -- * jQuery MDTimePicker v1.0.2 plugin * https://github.com/dmuy/MDTimePicker * * Author: Dionlee Uy * Email: dionleeuy@gmail.com * * @requires jQuery * -- DO NOT REMOVE -- */ (function (factory) { if (typeof define === 'function' && define.amd) { define(['jquery'], factory); } else if (typeof exports === 'object') { module.exports = factory(require('jquery'));; } else { factory(jQuery); } })(function ($) { if (typeof $ === 'undefined') { throw new Error('MDTimePicker: This plugin requires jQuery'); } var MDTP_DATA = "mdtimepicker", HOUR_START_DEG = 120, MIN_START_DEG = 90, END_DEG = 360, HOUR_DEG_INCR = 30, MIN_DEG_INCR = 6, EX_KEYS = [9, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123]; /** * Time object * @param {number} hour Hour value (0 - 23) * @param {number} minute Minute value (0 - 59) */ var Time = function (hour, minute) { this.hour = hour; this.minute = minute; this.format = function (format, hourPadding) { var that = this, is24Hour = (format.match(/h/g) || []).length > 1; return $.trim(format.replace(/(hh|h|mm|ss|tt|t)/g, function (e) { switch (e.toLowerCase()) { case 'h': var hour = that.getHour(true); return (hourPadding && hour < 10 ? '0' + hour : hour); case 'hh': return (that.hour < 10 ? '0' + that.hour : that.hour); case 'mm': return (that.minute < 10 ? '0' + that.minute : that.minute); case 'ss': return '00'; case 't': return is24Hour ? '' : that.getPeriod().toLowerCase(); case 'tt': return is24Hour ? '' : that.getPeriod(); } })); }; this.setHour = function (value) { this.hour = value; }; this.getHour = function (is12Hour) { return is12Hour ? [0, 12].indexOf(this.hour) >= 0 ? 12 : (this.hour % 12) : this.hour; }; this.invert = function () { if (this.getPeriod() === 'AM') this.setHour(this.getHour() + 12); else this.setHour(this.getHour() - 12); }; this.setMinutes = function (value) { this.minute = value; } this.getMinutes = function () { return this.minute; } this.getPeriod = function () { return this.hour < 12 ? 'AM' : 'PM'; }; }; /** * Time picker object * @param {HTMLInputElement} el Input element * @param {Object} config Time picker configurations */ var MDTimePicker = function (el, config) { var _ = this; this.visible = false; this.activeView = 'hours'; this.hTimeout = null; this.mTimeout = null; this.input = $(el); this.config = config; this.time = new Time(0, 0); this.selected = new Time(0, 0); this.timepicker = { overlay: $('<div class="mdtimepicker hidden"></div>'), wrapper: $('<div class="mdtp__wrapper" tabindex="0"></div>'), timeHolder: { wrapper: $('<section class="mdtp__time_holder"></section>'), hour: $('<span class="mdtp__time_h">12</span>'), dots: $('<span class="mdtp__timedots">:</span>'), minute: $('<span class="mdtp__time_m">00</span>'), am_pm: $('<span class="mdtp__ampm">AM</span>') }, clockHolder: { wrapper: $('<section class="mdtp__clock_holder"></section>'), am: $('<span class="mdtp__am">AM</span>'), pm: $('<span class="mdtp__pm">PM</span>'), clock: { wrapper: $('<div class="mdtp__clock"></div>'), dot: $('<span class="mdtp__clock_dot"></span>'), hours: $('<div class="mdtp__hour_holder"></div>'), minutes: $('<div class="mdtp__minute_holder"></div>') }, buttonsHolder: { wrapper: $('<div class="mdtp__buttons">'), btnClear: $('<span class="mdtp__button clear-btn">Clear</span>'), btnOk: $('<span class="mdtp__button ok">Ok</span>'), btnCancel: $('<span class="mdtp__button cancel">Cancel</span>') } } }; this.setMinTime(this.input.data('mintime') || this.config.minTime); this.setMaxTime(this.input.data('maxtime') || this.config.maxTime); var picker = _.timepicker; _.setup().appendTo('body'); picker.overlay.click(function () { _.hide(); }); picker.wrapper.click(function (e) { e.stopPropagation() }) .on('keydown', function (e) { if (e.keyCode !== 27) return; _.hide(); }); picker.clockHolder.am.click(function () { if (_.selected.getPeriod() !== 'AM') _.setPeriod('am'); }); picker.clockHolder.pm.click(function () { if (_.selected.getPeriod() !== 'PM') _.setPeriod('pm'); }); picker.timeHolder.hour.click(function () { if (_.activeView !== 'hours') _.switchView('hours'); }); picker.timeHolder.minute.click(function () { if (_.activeView !== 'minutes') _.switchView('minutes'); }); picker.clockHolder.buttonsHolder.btnOk.click(function () { var selected = _.selected; if (_.isDisabled(selected.getHour(), selected.getMinutes(), false)) return; _.setValue(selected); var formatted = _.getFormattedTime(); _.triggerChange({ time: formatted.time, value: formatted.value }); _.hide(); }); picker.clockHolder.buttonsHolder.btnCancel.click(function () { _.hide(); }); if (_.config.clearBtn) { picker.clockHolder.buttonsHolder.btnClear.click(function () { _.input.val('') .attr('data-time', null) .attr('value', ''); _.triggerChange({ time: null, value: '' }); _.hide(); }); } _.input.on('keydown', function (e) { if (e.keyCode === 13) _.show(); return !(EX_KEYS.indexOf(e.which) < 0 && _.config.readOnly); }).on('click', function () { _.show(); }) .prop('readonly', true); if (_.input.val() !== '') { var time = _.parseTime(_.input.val(), _.config.format); _.setValue(time); } else { var time = _.getSystemTime(); _.time = new Time(time.hour, time.minute); } _.resetSelected(); _.switchView(_.activeView); }; MDTimePicker.prototype = { constructor: MDTimePicker, /** * Setup time picker html elements */ setup: function () { var _ = this, picker = _.timepicker, overlay = picker.overlay, wrapper = picker.wrapper, time = picker.timeHolder, clock = picker.clockHolder; // Setup time holder time.wrapper.append(time.hour) .append(time.dots) .append(time.minute) .appendTo(wrapper); if (!_.config.is24hour) time.wrapper.append(time.am_pm); // Setup hours var _hours = _.config.is24hour ? 24 : 12; for (var i = 0; i < _hours; i++) { var value = i + 1, deg = ((HOUR_START_DEG + (i * HOUR_DEG_INCR)) % END_DEG) - (_.config.is24hour && value < 13 ? 15 : 0), is24 = value === 24, hour = $('<div class="mdtp__digit rotate-' + deg + '" data-hour="' + (is24 ? 0 : value) + '"><span>' + (is24 ? '00' : value) + '</span></div>'); if (_.config.is24hour && value < 13) hour.addClass('inner--digit'); hour.find('span').click(function () { var _hour = parseInt($(this).parent().data('hour')), _selectedT = _.selected.getPeriod(), _value = _.config.is24hour ? _hour : (_hour + ((_selectedT === 'PM' && _hour < 12) || (_selectedT === 'AM' && _hour === 12) ? 12 : 0)) % 24, disabled = _.isDisabled(_value, 0, true); if (disabled) return; _.setHour(_value); _.switchView('minutes'); }); clock.clock.hours.append(hour); } // Setup minutes for (var i = 0; i < 60; i++) { var min = i < 10 ? '0' + i : i, deg = (MIN_START_DEG + (i * MIN_DEG_INCR)) % END_DEG, minute = $('<div class="mdtp__digit rotate-' + deg + '" data-minute="' + i + '"></div>'); if (i % 5 === 0) minute.addClass('marker').html('<span>' + min + '</span>'); else minute.html('<span></span>'); minute.find('span').click(function () { var _minute = parseInt($(this).parent().data('minute')), _hour = _.selected.getHour(), disabled = _.isDisabled(_hour, _minute, true); if (disabled) return; _.setMinute(_minute); }); clock.clock.minutes.append(minute); } // Setup clock if (!_.config.is24hour) clock.clock.wrapper.append(clock.am).append(clock.pm) clock.clock.wrapper .append(clock.clock.dot) .append(clock.clock.hours) .append(clock.clock.minutes) .appendTo(clock.wrapper); // Setup buttons if (_.config.clearBtn) { clock.buttonsHolder.wrapper.append(clock.buttonsHolder.btnClear); } clock.buttonsHolder.wrapper.append(clock.buttonsHolder.btnCancel) .append(clock.buttonsHolder.btnOk) .appendTo(clock.wrapper); clock.wrapper.appendTo(wrapper); // Setup theme wrapper.attr('data-theme', _.input.data('theme') || _.config.theme || $.fn.mdtimepicker.defaults.theme); wrapper.appendTo(overlay); return overlay; }, /** * Sets the hour value of the selected time * @param {number} hour Hour value */ setHour: function (hour) { if (typeof hour === 'undefined') throw new Error('Expecting a value.'); var that = this, is12Hour = !that.config.is24hour this.selected.setHour(hour); var _selectedH = this.selected.getHour(is12Hour); this.timepicker.timeHolder.hour.text(is12Hour ? _selectedH : this.selected.format('hh')); this.timepicker.clockHolder.clock.hours.children('div').each(function (idx, div) { var el = $(div), val = el.data('hour'); el[val === _selectedH ? 'addClass' : 'removeClass']('active'); }); }, /** * Sets the minute value of the selected time * @param {number} minute Minute value */ setMinute: function (minute) { if (typeof minute === 'undefined') throw new Error('Expecting a value.'); this.selected.setMinutes(minute); this.timepicker.timeHolder.minute.text(minute < 10 ? '0' + minute : minute); this.timepicker.clockHolder.clock.minutes.children('div').each(function (idx, div) { var el = $(div), val = el.data('minute'); el[val === minute ? 'addClass' : 'removeClass']('active'); }); }, /** * Sets the time period of the selected time * @param {string} period Period value (AM/PM) */ setPeriod: function (period) { if (typeof period === 'undefined') throw new Error('Expecting a value.'); if (this.selected.getPeriod() !== period.toUpperCase()) this.selected.invert(); var _period = this.selected.getPeriod(); this.setDisabled(this.activeView); this.timepicker.timeHolder.am_pm.text(_period); this.timepicker.clockHolder.am[_period === 'AM' ? 'addClass' : 'removeClass']('active'); this.timepicker.clockHolder.pm[_period === 'PM' ? 'addClass' : 'removeClass']('active'); }, /** * Sets the value of the selected time * @param {string} value Time string values */ setValue: function (value) { if (typeof value === 'undefined') throw new Error('Expecting a value.'); var time = typeof value === 'string' ? this.parseTime(value, this.config.format) : value; this.time = new Time(time.hour, time.minute); var formatted = this.getFormattedTime(); this.input.val(formatted.value) .attr('data-time', formatted.time) .attr('value', formatted.value); }, /** * Sets the minimum time constraint * @param {string} time Minimum time value */ setMinTime: function (time) { this.minTime = time }, /** * Sets the maximum time constraint * @param {string} time Maximum time value */ setMaxTime: function (time) { this.maxTime = time }, /** * Sets the disabled digits of the clock * @param {string} view View name */ setDisabled: function (view) { if (view !== 'hours' && view !== 'minutes') return; var _ = this, clock = this.timepicker.clockHolder.clock; if (view === 'hours') { clock.hours.find('.mdtp__digit').each(function (i, hEl) { var hour = $(hEl), value = parseInt(hour.data('hour')), period = _.selected.getPeriod(), time = new Time(value, 0); if (!_.config.is24hour && period !== time.getPeriod()) time.invert(); var disabled = _.isDisabled(time.getHour(), 0, true); hour[disabled ? 'addClass' : 'removeClass']('digit--disabled'); }); } if (view === 'minutes') { clock.minutes.find('.mdtp__digit').each(function (i, mEl) { var minute = $(mEl), value = parseInt(minute.data('minute')), hour = _.selected.getHour(), disabled = _.isDisabled(hour, value, true); minute[disabled ? 'addClass' : 'removeClass']('digit--disabled'); }); } }, /** * Determines if the given time is disabled * @param {number} hour Hour value * @param {number} minute Minute value * @param {boolean} renderMode `true` if called upon rendering; `false` otherwise */ isDisabled: function (hour, minute, renderMode) { var _ = this, minT = null, min = null, maxT = null, max = null, now = new Date(), time = new Date(now.getFullYear(), now.getMonth(), now.getDate(), hour, minute, 0, 0), hourView = _.activeView === 'hours'; if (_.minTime) minT = _.minTime === 'now' ? _.getSystemTime() : _.parseTime(_.minTime); if (_.maxTime) maxT = _.maxTime === 'now' ? _.getSystemTime() : _.parseTime(_.maxTime); if (minT) { min = new Date(now.getFullYear(), now.getMonth(), now.getDate(), minT.getHour(), hourView && renderMode ? 0 : minT.getMinutes(), 0, 0) } if (maxT) { max = new Date(now.getFullYear(), now.getMonth(), now.getDate(), maxT.getHour(), hourView && renderMode ? 0 : maxT.getMinutes(), 0, 0) } return (min && time < min) || (max && time > max); }, /** * Resets the selected time to client (system) time */ resetSelected: function () { this.setHour(this.time.hour); this.setMinute(this.time.minute); this.setPeriod(this.time.getPeriod()); }, /** * Returns the selected time string */ getFormattedTime: function () { var time = this.time.format(this.config.timeFormat, false), tValue = this.time.format(this.config.format, this.config.hourPadding); return { time: time, value: tValue }; }, /** * Returns the current client (system) time */ getSystemTime: function () { var now = new Date(); return new Time(now.getHours(), now.getMinutes()); }, /** * Parses the given time string into a Time object * @param {string} time Time value * @param {string} tf Time format */ parseTime: function (time, tf) { var that = this, format = typeof tf === 'undefined' ? that.config.format : tf, hLength = (format.match(/h/g) || []).length, is24Hour = hLength > 1, mLength = (format.match(/m/g) || []).length, tLength = (format.match(/t/g) || []).length, timeLength = time.length, fH = format.indexOf('h'), lH = format.lastIndexOf('h'), hour = '', min = '', t = ''; // Parse hour if (that.config.hourPadding || is24Hour) { hour = time.substr(fH, 2); } else { var prev = format.substring(fH - 1, fH), next = format.substring(lH + 1, lH + 2); if (lH === format.length - 1) { hour = time.substring(time.indexOf(prev, fH - 1) + 1, timeLength); } else if (fH === 0) { hour = time.substring(0, time.indexOf(next, fH)); } else { hour = time.substring(time.indexOf(prev, fH - 1) + 1, time.indexOf(next, fH + 1)); } } format = format.replace(/(hh|h)/g, hour); var fM = format.indexOf('m'), lM = format.lastIndexOf('m'), fT = format.indexOf('t'); // Parse minute var prevM = format.substring(fM - 1, fM), nextM = format.substring(lM + 1, lM + 2); if (lM === format.length - 1) { min = time.substring(time.indexOf(prevM, fM - 1) + 1, timeLength); } else if (fM === 0) { min = time.substring(0, 2); } else { min = time.substr(fM, 2); } // Parse t (am/pm) if (is24Hour) t = parseInt(hour) > 11 ? (tLength > 1 ? 'PM' : 'pm') : (tLength > 1 ? 'AM' : 'am'); else t = time.substr(fT, 2); var isPm = t.toLowerCase() === 'pm', outTime = new Time(parseInt(hour), parseInt(min)); if ((isPm && parseInt(hour) < 12) || (!isPm && parseInt(hour) === 12)) { outTime.invert(); } return outTime; }, /** * Switches the time picker view (screen) * @param {string} view View name */ switchView: function (view) { var _ = this, picker = this.timepicker, anim_speed = 350; if (view !== 'hours' && view !== 'minutes') return; _.activeView = view; _.setDisabled(view); picker.timeHolder.hour[view === 'hours' ? 'addClass' : 'removeClass']('active'); picker.timeHolder.minute[view === 'hours' ? 'removeClass' : 'addClass']('active'); picker.clockHolder.clock.hours.addClass('animate'); if (view === 'hours') picker.clockHolder.clock.hours.removeClass('hidden'); clearTimeout(_.hTimeout); _.hTimeout = setTimeout(function () { if (view !== 'hours') picker.clockHolder.clock.hours.addClass('hidden'); picker.clockHolder.clock.hours.removeClass('animate'); }, view === 'hours' ? 20 : anim_speed); picker.clockHolder.clock.minutes.addClass('animate'); if (view === 'minutes') picker.clockHolder.clock.minutes.removeClass('hidden'); clearTimeout(_.mTimeout); _.mTimeout = setTimeout(function () { if (view !== 'minutes') picker.clockHolder.clock.minutes.addClass('hidden'); picker.clockHolder.clock.minutes.removeClass('animate'); }, view === 'minutes' ? 20 : anim_speed); }, /** * Shows the time picker */ show: function () { var that = this; if (that.input.val() === '') { var time = that.getSystemTime(); this.time = new Time(time.hour, time.minute); } that.resetSelected(); $('body').attr('mdtimepicker-display', 'on'); that.timepicker.wrapper.addClass('animate'); that.timepicker.overlay.removeClass('hidden').addClass('animate'); setTimeout(function () { that.timepicker.overlay.removeClass('animate'); that.timepicker.wrapper.removeClass('animate') .focus(); that.visible = true; that.input.blur(); }, 10); }, /** * Hides the time picker */ hide: function () { var that = this; that.timepicker.overlay.addClass('animate'); that.timepicker.wrapper.addClass('animate'); setTimeout(function () { that.switchView('hours'); that.timepicker.overlay.addClass('hidden').removeClass('animate'); that.timepicker.wrapper.removeClass('animate'); $('body').removeAttr('mdtimepicker-display'); that.visible = false; that.input.focus(); }, 300); }, /** * Removes the time picker */ destroy: function () { var that = this; that.input.removeData(MDTP_DATA) .unbind('keydown').unbind('click') .removeProp('readonly'); that.timepicker.overlay.remove(); }, /** * Triggers the change event on the input element * @param {Object} data Event data */ triggerChange: function (data) { this.input.trigger($.Event('timechanged', data)) .trigger('onchange') // for ASP.Net postback .trigger('change'); } }; $.fn.mdtimepicker = function () { var mdtp_args = arguments, arg0 = mdtp_args[0], _defaults = $.extend({}, $.fn.mdtimepicker.defaults); if (typeof arg0 === 'object' && arg0.is24hour) _defaults.format = 'hh:mm'; return $(this).each(function (idx, el) { var that = this, $that = $(this), picker = $(this).data(MDTP_DATA), options = $.extend({}, _defaults, $that.data(), typeof arg0 === 'object' && arg0); if (!picker) { $that.data(MDTP_DATA, (picker = new MDTimePicker(that, options))); } if (typeof arg0 === 'string') picker[arg0].apply(picker, Array.prototype.slice.call(mdtp_args).slice(1)); }); } $.fn.mdtimepicker.defaults = { timeFormat: 'hh:mm:ss.000', // format of the time value (data-time attribute) format: 'h:mm tt', // format of the input value theme: 'blue', // theme of the timepicker hourPadding: false, // determines if display value has zero padding for hour value less than 10 (i.e. 05:30 PM); 24-hour format has padding by default clearBtn: false, // determines if clear button is visible is24hour: false // determines if the clock will use 24-hour format in the UI; format config will be forced to `hh:mm` if not specified }; });