timepicker 1.13.18 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +7 -0
- package/README.md +7 -7
- package/jquery.timepicker.css +3 -8
- package/jquery.timepicker.js +323 -170
- package/jquery.timepicker.min.css +3 -8
- package/jquery.timepicker.min.js +1 -1
- package/package.json +1 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Copyright © 2021 Jon Thornton
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
4
|
+
|
|
5
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
6
|
+
|
|
7
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
CHANGED
|
@@ -38,7 +38,11 @@ Takes either a `string` to use as a selector, a `function` that gets passed the
|
|
|
38
38
|
A class name to apply to the HTML element that contains the timepicker dropdown.
|
|
39
39
|
*default: null*
|
|
40
40
|
|
|
41
|
-
- **
|
|
41
|
+
- **closeOnScroll**
|
|
42
|
+
Close the timepicker when the chosen element is scrolled. (Replicates ```<select>``` behavior.) Takes either a string to use as a selector, an HTMLelemtn, or a boolean (true binds to ```document``` scrolling).
|
|
43
|
+
*default: false*
|
|
44
|
+
|
|
45
|
+
- **closeOnWindowScroll DEPRECATED**
|
|
42
46
|
Close the timepicker when the window is scrolled. (Replicates ```<select>``` behavior.)
|
|
43
47
|
*default: false*
|
|
44
48
|
|
|
@@ -121,11 +125,7 @@ Shows the relative time for each item in the dropdown. ```minTime``` or ```durat
|
|
|
121
125
|
|
|
122
126
|
- **showOn**
|
|
123
127
|
Display a timepicker dropdown when the input fires a particular event. Set to null or an empty array to disable automatic display. Setting should be an array of strings.
|
|
124
|
-
*default: ['focus']*
|
|
125
|
-
|
|
126
|
-
- **showOnFocus**
|
|
127
|
-
DEPRECATED: Display a timepicker dropdown when the input gains focus.
|
|
128
|
-
*default: true*
|
|
128
|
+
*default: ['click', 'focus']*
|
|
129
129
|
|
|
130
130
|
- **step**
|
|
131
131
|
The amount of time, in minutes, between each item in the dropdown. Alternately, you can specify a function to generate steps dynamically. The function will receive a count integer (0, 1, 2...) and is expected to return a step integer.
|
|
@@ -144,7 +144,7 @@ Highlight the nearest corresponding time option as a value is typed into the for
|
|
|
144
144
|
*default: true*
|
|
145
145
|
|
|
146
146
|
- **useSelect**
|
|
147
|
-
Convert the input to an HTML `<SELECT>` control. This is ideal for small screen devices, or if you want to prevent the user from entering arbitrary values. This option is not compatible with the following options: ```appendTo```, ```closeOnWindowScroll```, ```disableTouchKeyboard```, ```forceRoundTime```, ```scrollDefault```, ```selectOnBlur```, ```typeAheadHighlight```.
|
|
147
|
+
Convert the input to an HTML `<SELECT>` control. This is ideal for small screen devices, or if you want to prevent the user from entering arbitrary values. This option is not compatible with the following options: ```appendTo```, ```closeOnScroll```, ```closeOnWindowScroll```, ```disableTouchKeyboard```, ```forceRoundTime```, ```scrollDefault```, ```selectOnBlur```, ```typeAheadHighlight```.
|
|
148
148
|
*default: false*
|
|
149
149
|
|
|
150
150
|
- **wrapHours**
|
package/jquery.timepicker.css
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.ui-timepicker-wrapper {
|
|
2
2
|
overflow-y: auto;
|
|
3
3
|
max-height: 150px;
|
|
4
|
-
width:
|
|
4
|
+
width: auto;
|
|
5
5
|
background: #fff;
|
|
6
6
|
border: 1px solid #ddd;
|
|
7
7
|
-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);
|
|
@@ -12,13 +12,8 @@
|
|
|
12
12
|
margin: 0;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
.ui-timepicker-wrapper.ui-timepicker-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-30,
|
|
20
|
-
.ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-60 {
|
|
21
|
-
width: 11em;
|
|
15
|
+
.ui-timepicker-wrapper .ui-timepicker-list li {
|
|
16
|
+
padding-right: 20px;
|
|
22
17
|
}
|
|
23
18
|
|
|
24
19
|
.ui-timepicker-list {
|
package/jquery.timepicker.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* jquery-timepicker v1.
|
|
2
|
+
* jquery-timepicker v1.14.0 - A jQuery timepicker plugin inspired by Google Calendar. It supports both mouse and keyboard navigation.
|
|
3
3
|
* Copyright (c) 2021 Jon Thornton - https://www.jonthornton.com/jquery-timepicker/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -172,31 +172,26 @@
|
|
|
172
172
|
var roundingFunction = function roundingFunction(seconds, settings) {
|
|
173
173
|
if (seconds === null) {
|
|
174
174
|
return null;
|
|
175
|
-
}
|
|
176
|
-
// TODO: nearest fit irregular steps
|
|
177
|
-
return seconds;
|
|
178
|
-
} else {
|
|
179
|
-
var _settings$minTime;
|
|
180
|
-
|
|
181
|
-
var offset = seconds % (settings.step * 60); // step is in minutes
|
|
175
|
+
}
|
|
182
176
|
|
|
183
|
-
|
|
177
|
+
var i = 0;
|
|
178
|
+
var nextVal = 0;
|
|
184
179
|
|
|
185
|
-
|
|
180
|
+
while (nextVal < seconds) {
|
|
181
|
+
i++;
|
|
182
|
+
nextVal += settings.step(i) * 60;
|
|
183
|
+
}
|
|
186
184
|
|
|
187
|
-
|
|
188
|
-
// if offset is larger than a half step, round up
|
|
189
|
-
seconds += settings.step * 60 - offset;
|
|
190
|
-
} else {
|
|
191
|
-
// round down
|
|
192
|
-
seconds -= offset;
|
|
193
|
-
}
|
|
185
|
+
var prevVal = nextVal - settings.step(i - 1) * 60;
|
|
194
186
|
|
|
195
|
-
|
|
187
|
+
if (seconds - prevVal < nextVal - seconds) {
|
|
188
|
+
return moduloSeconds(prevVal, settings);
|
|
189
|
+
} else {
|
|
190
|
+
return moduloSeconds(nextVal, settings);
|
|
196
191
|
}
|
|
197
192
|
};
|
|
198
193
|
|
|
199
|
-
function
|
|
194
|
+
function moduloSeconds(seconds, settings) {
|
|
200
195
|
if (seconds == ONE_DAY && settings.show2400) {
|
|
201
196
|
return seconds;
|
|
202
197
|
}
|
|
@@ -207,7 +202,8 @@
|
|
|
207
202
|
var DEFAULT_SETTINGS = {
|
|
208
203
|
appendTo: "body",
|
|
209
204
|
className: null,
|
|
210
|
-
|
|
205
|
+
closeOnWindow: false,
|
|
206
|
+
closeOnScroll: false,
|
|
211
207
|
disableTextInput: false,
|
|
212
208
|
disableTimeRanges: [],
|
|
213
209
|
disableTouchKeyboard: false,
|
|
@@ -225,7 +221,6 @@
|
|
|
225
221
|
show2400: false,
|
|
226
222
|
showDuration: false,
|
|
227
223
|
showOn: ["click", "focus"],
|
|
228
|
-
showOnFocus: true,
|
|
229
224
|
step: 30,
|
|
230
225
|
stopScrollPropagation: false,
|
|
231
226
|
timeFormat: "g:ia",
|
|
@@ -455,8 +450,7 @@
|
|
|
455
450
|
|
|
456
451
|
var hour = parseInt(time[3] * 1, 10);
|
|
457
452
|
var ampm = time[2] || time[9];
|
|
458
|
-
var
|
|
459
|
-
var minutes = time[5] * 1 || 0;
|
|
453
|
+
var minutes = this.parseMinuteString(time[5]);
|
|
460
454
|
var seconds = time[7] * 1 || 0;
|
|
461
455
|
|
|
462
456
|
if (!ampm && time[3].length == 2 && time[3][0] == "0") {
|
|
@@ -464,6 +458,14 @@
|
|
|
464
458
|
ampm = "am";
|
|
465
459
|
}
|
|
466
460
|
|
|
461
|
+
if (hour > 24 && !minutes) {
|
|
462
|
+
// if someone types in something like "83", turn it into "8h 30m"
|
|
463
|
+
hour = time[3][0] * 1;
|
|
464
|
+
minutes = this.parseMinuteString(time[3][1]);
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
var hours = hour;
|
|
468
|
+
|
|
467
469
|
if (hour <= 12 && ampm) {
|
|
468
470
|
ampm = ampm.trim();
|
|
469
471
|
var isPm = ampm == this.settings.lang.pm || ampm == this.settings.lang.PM;
|
|
@@ -497,6 +499,21 @@
|
|
|
497
499
|
|
|
498
500
|
return timeInt;
|
|
499
501
|
}
|
|
502
|
+
}, {
|
|
503
|
+
key: "parseMinuteString",
|
|
504
|
+
value: function parseMinuteString(minutesString) {
|
|
505
|
+
if (!minutesString) {
|
|
506
|
+
minutesString = 0;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
var multiplier = 1;
|
|
510
|
+
|
|
511
|
+
if (minutesString.length == 1) {
|
|
512
|
+
multiplier = 10;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
return parseInt(minutesString) * multiplier || 0;
|
|
516
|
+
}
|
|
500
517
|
}, {
|
|
501
518
|
key: "intStringDateOrFunc2func",
|
|
502
519
|
value: function intStringDateOrFunc2func(input) {
|
|
@@ -542,34 +559,51 @@
|
|
|
542
559
|
settings._twelveHourTime = true;
|
|
543
560
|
}
|
|
544
561
|
|
|
545
|
-
if (
|
|
546
|
-
settings.
|
|
562
|
+
if (typeof settings.step != 'function') {
|
|
563
|
+
var curryStep = settings.step;
|
|
564
|
+
|
|
565
|
+
settings.step = function () {
|
|
566
|
+
return curryStep;
|
|
567
|
+
};
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
settings.disableTimeRanges = this._parseDisableTimeRanges(settings.disableTimeRanges);
|
|
571
|
+
|
|
572
|
+
if (settings.closeOnWindowScroll && !settings.closeOnScroll) {
|
|
573
|
+
settings.closeOnScroll = settings.closeOnWindowScroll;
|
|
547
574
|
}
|
|
548
575
|
|
|
549
|
-
if (
|
|
550
|
-
settings.
|
|
576
|
+
if (settings.closeOnScroll === true) {
|
|
577
|
+
settings.closeOnScroll = window.document;
|
|
551
578
|
}
|
|
552
579
|
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
580
|
+
return settings;
|
|
581
|
+
}
|
|
582
|
+
}, {
|
|
583
|
+
key: "_parseDisableTimeRanges",
|
|
584
|
+
value: function _parseDisableTimeRanges(disableTimeRanges) {
|
|
585
|
+
if (!disableTimeRanges || disableTimeRanges.length == 0) {
|
|
586
|
+
return [];
|
|
587
|
+
} // convert string times to integers
|
|
558
588
|
|
|
559
589
|
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
590
|
+
for (var i in disableTimeRanges) {
|
|
591
|
+
disableTimeRanges[i] = [this.anytime2int(disableTimeRanges[i][0]), this.anytime2int(disableTimeRanges[i][1])];
|
|
592
|
+
} // sort by starting time
|
|
563
593
|
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
594
|
+
|
|
595
|
+
disableTimeRanges = disableTimeRanges.sort(function (a, b) {
|
|
596
|
+
return a[0] - b[0];
|
|
597
|
+
}); // merge any overlapping ranges
|
|
598
|
+
|
|
599
|
+
for (var i = disableTimeRanges.length - 1; i > 0; i--) {
|
|
600
|
+
if (disableTimeRanges[i][0] <= disableTimeRanges[i - 1][1]) {
|
|
601
|
+
disableTimeRanges[i - 1] = [Math.min(disableTimeRanges[i][0], disableTimeRanges[i - 1][0]), Math.max(disableTimeRanges[i][1], disableTimeRanges[i - 1][1])];
|
|
602
|
+
disableTimeRanges.splice(i, 1);
|
|
569
603
|
}
|
|
570
604
|
}
|
|
571
605
|
|
|
572
|
-
return
|
|
606
|
+
return disableTimeRanges;
|
|
573
607
|
}
|
|
574
608
|
/*
|
|
575
609
|
* Filter freeform input
|
|
@@ -624,6 +658,7 @@
|
|
|
624
658
|
}, {
|
|
625
659
|
key: "_roundAndFormatTime",
|
|
626
660
|
value: function _roundAndFormatTime(seconds) {
|
|
661
|
+
// console.log('_roundAndFormatTime')
|
|
627
662
|
seconds = this.settings.roundingFunction(seconds, this.settings);
|
|
628
663
|
|
|
629
664
|
if (seconds !== null) {
|
|
@@ -1001,6 +1036,245 @@
|
|
|
1001
1036
|
window.CustomEvent = CustomEvent;
|
|
1002
1037
|
})();
|
|
1003
1038
|
|
|
1039
|
+
function _getNoneOptionItems(settings) {
|
|
1040
|
+
if (!settings.noneOption) {
|
|
1041
|
+
return [];
|
|
1042
|
+
}
|
|
1043
|
+
|
|
1044
|
+
var noneOptions = _getNoneOptionItemsHelper(settings.noneOption);
|
|
1045
|
+
|
|
1046
|
+
if (Array.isArray(settings.noneOption)) {
|
|
1047
|
+
return noneOptions;
|
|
1048
|
+
} else {
|
|
1049
|
+
return [noneOptions];
|
|
1050
|
+
}
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
function _getNoneOptionItemsHelper(noneOption) {
|
|
1054
|
+
if (Array.isArray(noneOption)) {
|
|
1055
|
+
return noneOption.map(_getNoneOptionItemsHelper);
|
|
1056
|
+
}
|
|
1057
|
+
|
|
1058
|
+
if (noneOption === true) {
|
|
1059
|
+
return {
|
|
1060
|
+
'label': 'None',
|
|
1061
|
+
'value': ''
|
|
1062
|
+
};
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
if (_typeof(noneOption) === 'object') {
|
|
1066
|
+
return noneOption;
|
|
1067
|
+
}
|
|
1068
|
+
|
|
1069
|
+
return {
|
|
1070
|
+
'label': noneOption,
|
|
1071
|
+
'value': ''
|
|
1072
|
+
};
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
function _getDropdownTimes(tp) {
|
|
1076
|
+
var _settings$minTime, _settings$maxTime;
|
|
1077
|
+
|
|
1078
|
+
var settings = tp.settings;
|
|
1079
|
+
var start = (_settings$minTime = settings.minTime()) !== null && _settings$minTime !== void 0 ? _settings$minTime : 0;
|
|
1080
|
+
var end = (_settings$maxTime = settings.maxTime()) !== null && _settings$maxTime !== void 0 ? _settings$maxTime : start + ONE_DAY - 1;
|
|
1081
|
+
|
|
1082
|
+
if (end < start) {
|
|
1083
|
+
// make sure the end time is greater than start time, otherwise there will be no list to show
|
|
1084
|
+
end += ONE_DAY;
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1087
|
+
if (end === ONE_DAY - 1 && typeof settings.timeFormat === 'string' && settings.show2400) {
|
|
1088
|
+
// show a 24:00 option when using military time
|
|
1089
|
+
end = ONE_DAY;
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
var output = [];
|
|
1093
|
+
|
|
1094
|
+
for (var i = start, j = 0; i <= end; j++, i += settings.step(j) * 60) {
|
|
1095
|
+
var timeInt = i;
|
|
1096
|
+
|
|
1097
|
+
var timeString = tp._int2time(timeInt);
|
|
1098
|
+
|
|
1099
|
+
var className = timeInt % ONE_DAY < ONE_DAY / 2 ? 'ui-timepicker-am' : 'ui-timepicker-pm';
|
|
1100
|
+
var item = {
|
|
1101
|
+
'label': timeString,
|
|
1102
|
+
'value': moduloSeconds(timeInt, settings),
|
|
1103
|
+
'className': className
|
|
1104
|
+
};
|
|
1105
|
+
|
|
1106
|
+
if ((settings.minTime() !== null || settings.durationTime() !== null) && settings.showDuration) {
|
|
1107
|
+
var _settings$durationTim;
|
|
1108
|
+
|
|
1109
|
+
var durStart = (_settings$durationTim = settings.durationTime()) !== null && _settings$durationTim !== void 0 ? _settings$durationTim : settings.minTime();
|
|
1110
|
+
|
|
1111
|
+
if (durStart > i) {
|
|
1112
|
+
durStart -= ONE_DAY;
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
var durationString = tp._int2duration(i - durStart, settings.step());
|
|
1116
|
+
|
|
1117
|
+
item.duration = durationString;
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
var _iterator = _createForOfIteratorHelper(settings.disableTimeRanges),
|
|
1121
|
+
_step;
|
|
1122
|
+
|
|
1123
|
+
try {
|
|
1124
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
1125
|
+
var range = _step.value;
|
|
1126
|
+
|
|
1127
|
+
if (timeInt % ONE_DAY >= range[0] && timeInt % ONE_DAY < range[1]) {
|
|
1128
|
+
item.disabled = true;
|
|
1129
|
+
break;
|
|
1130
|
+
}
|
|
1131
|
+
}
|
|
1132
|
+
} catch (err) {
|
|
1133
|
+
_iterator.e(err);
|
|
1134
|
+
} finally {
|
|
1135
|
+
_iterator.f();
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
output.push(item);
|
|
1139
|
+
}
|
|
1140
|
+
|
|
1141
|
+
return output;
|
|
1142
|
+
}
|
|
1143
|
+
|
|
1144
|
+
function _renderSelectItem(item) {
|
|
1145
|
+
var el = document.createElement('option');
|
|
1146
|
+
el.value = item.label;
|
|
1147
|
+
|
|
1148
|
+
if (item.duration) {
|
|
1149
|
+
el.appendChild(document.createTextNode(item.label + ' (' + item.duration + ')'));
|
|
1150
|
+
} else {
|
|
1151
|
+
el.appendChild(document.createTextNode(item.label));
|
|
1152
|
+
}
|
|
1153
|
+
|
|
1154
|
+
if (item.disabled) {
|
|
1155
|
+
el.disabled = true;
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1158
|
+
return el;
|
|
1159
|
+
}
|
|
1160
|
+
|
|
1161
|
+
function _renderStandardItem(item) {
|
|
1162
|
+
var el = document.createElement('li');
|
|
1163
|
+
el.dataset['time'] = item.value;
|
|
1164
|
+
|
|
1165
|
+
if (item.className) {
|
|
1166
|
+
el.classList.add(item.className);
|
|
1167
|
+
}
|
|
1168
|
+
|
|
1169
|
+
el.className = item.className;
|
|
1170
|
+
el.appendChild(document.createTextNode(item.label));
|
|
1171
|
+
|
|
1172
|
+
if (item.duration) {
|
|
1173
|
+
var durationEl = document.createElement('span');
|
|
1174
|
+
durationEl.appendChild(document.createTextNode('(' + item.duration + ')'));
|
|
1175
|
+
durationEl.classList.add('ui-timepicker-duration');
|
|
1176
|
+
el.appendChild(durationEl);
|
|
1177
|
+
}
|
|
1178
|
+
|
|
1179
|
+
if (item.disabled) {
|
|
1180
|
+
el.classList.add('ui-timepicker-disabled');
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1183
|
+
return el;
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
function _renderStandardList(items) {
|
|
1187
|
+
var list = document.createElement('ul');
|
|
1188
|
+
list.classList.add('ui-timepicker-list');
|
|
1189
|
+
|
|
1190
|
+
var _iterator2 = _createForOfIteratorHelper(items),
|
|
1191
|
+
_step2;
|
|
1192
|
+
|
|
1193
|
+
try {
|
|
1194
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
1195
|
+
var item = _step2.value;
|
|
1196
|
+
|
|
1197
|
+
var itemEl = _renderStandardItem(item);
|
|
1198
|
+
|
|
1199
|
+
list.appendChild(itemEl);
|
|
1200
|
+
}
|
|
1201
|
+
} catch (err) {
|
|
1202
|
+
_iterator2.e(err);
|
|
1203
|
+
} finally {
|
|
1204
|
+
_iterator2.f();
|
|
1205
|
+
}
|
|
1206
|
+
|
|
1207
|
+
var wrapper = document.createElement('div');
|
|
1208
|
+
wrapper.classList.add('ui-timepicker-wrapper');
|
|
1209
|
+
wrapper.tabIndex = -1;
|
|
1210
|
+
wrapper.style.display = 'none';
|
|
1211
|
+
wrapper.style.position = 'absolute';
|
|
1212
|
+
wrapper.appendChild(list);
|
|
1213
|
+
return wrapper;
|
|
1214
|
+
}
|
|
1215
|
+
|
|
1216
|
+
function _renderSelectList(items, targetName) {
|
|
1217
|
+
var el = document.createElement('select');
|
|
1218
|
+
el.classList.add('ui-timepicker-select');
|
|
1219
|
+
|
|
1220
|
+
if (targetName) {
|
|
1221
|
+
el.name = 'ui-timepicker-' + targetName;
|
|
1222
|
+
}
|
|
1223
|
+
|
|
1224
|
+
var _iterator3 = _createForOfIteratorHelper(items),
|
|
1225
|
+
_step3;
|
|
1226
|
+
|
|
1227
|
+
try {
|
|
1228
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
1229
|
+
var item = _step3.value;
|
|
1230
|
+
|
|
1231
|
+
var itemEl = _renderSelectItem(item);
|
|
1232
|
+
|
|
1233
|
+
el.appendChild(itemEl);
|
|
1234
|
+
}
|
|
1235
|
+
} catch (err) {
|
|
1236
|
+
_iterator3.e(err);
|
|
1237
|
+
} finally {
|
|
1238
|
+
_iterator3.f();
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1241
|
+
return el;
|
|
1242
|
+
}
|
|
1243
|
+
|
|
1244
|
+
function renderHtml(tp) {
|
|
1245
|
+
var items = [].concat(_getNoneOptionItems(tp.settings), _getDropdownTimes(tp));
|
|
1246
|
+
var el;
|
|
1247
|
+
|
|
1248
|
+
if (tp.settings.useSelect) {
|
|
1249
|
+
el = _renderSelectList(items, tp.targetEl.name);
|
|
1250
|
+
} else {
|
|
1251
|
+
el = _renderStandardList(items);
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1254
|
+
if (tp.settings.className) {
|
|
1255
|
+
var _iterator4 = _createForOfIteratorHelper(tp.settings.className.split(' ')),
|
|
1256
|
+
_step4;
|
|
1257
|
+
|
|
1258
|
+
try {
|
|
1259
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
1260
|
+
var token = _step4.value;
|
|
1261
|
+
el.classList.add(token);
|
|
1262
|
+
}
|
|
1263
|
+
} catch (err) {
|
|
1264
|
+
_iterator4.e(err);
|
|
1265
|
+
} finally {
|
|
1266
|
+
_iterator4.f();
|
|
1267
|
+
}
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1270
|
+
if (tp.settings.showDuration && (tp.settings.minTime !== null || tp.settings.durationTime !== null)) {
|
|
1271
|
+
el.classList.add("ui-timepicker-with-duration");
|
|
1272
|
+
el.classList.add("ui-timepicker-step-" + tp.settings.step());
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
return el;
|
|
1276
|
+
}
|
|
1277
|
+
|
|
1004
1278
|
(function (factory) {
|
|
1005
1279
|
if ((typeof exports === "undefined" ? "undefined" : _typeof(exports)) === "object" && exports && (typeof module === "undefined" ? "undefined" : _typeof(module)) === "object" && module && module.exports === exports) {
|
|
1006
1280
|
// Browserify. Attach to jQuery module.
|
|
@@ -1172,8 +1446,8 @@
|
|
|
1172
1446
|
$(document).on("mousedown.ui-timepicker", _closeHandler);
|
|
1173
1447
|
window.addEventListener('resize', _closeHandler);
|
|
1174
1448
|
|
|
1175
|
-
if (settings.
|
|
1176
|
-
$(
|
|
1449
|
+
if (settings.closeOnScroll) {
|
|
1450
|
+
$(settings.closeOnScroll).on("scroll.ui-timepicker", _closeHandler);
|
|
1177
1451
|
}
|
|
1178
1452
|
|
|
1179
1453
|
self.trigger("showTimepicker");
|
|
@@ -1313,8 +1587,6 @@
|
|
|
1313
1587
|
}; // private methods
|
|
1314
1588
|
|
|
1315
1589
|
function _render(self) {
|
|
1316
|
-
var _settings$durationTim, _settings$minTime, _settings$maxTime;
|
|
1317
|
-
|
|
1318
1590
|
var tp = self[0].timepickerObj;
|
|
1319
1591
|
var list = tp.list;
|
|
1320
1592
|
var settings = tp.settings;
|
|
@@ -1324,131 +1596,12 @@
|
|
|
1324
1596
|
tp.list = null;
|
|
1325
1597
|
}
|
|
1326
1598
|
|
|
1327
|
-
|
|
1328
|
-
list = $("<select></select>", {
|
|
1329
|
-
"class": "ui-timepicker-select"
|
|
1330
|
-
});
|
|
1599
|
+
var wrapped_list = $(renderHtml(tp));
|
|
1331
1600
|
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
}
|
|
1335
|
-
|
|
1336
|
-
var wrapped_list = list;
|
|
1601
|
+
if (settings.useSelect) {
|
|
1602
|
+
list = wrapped_list;
|
|
1337
1603
|
} else {
|
|
1338
|
-
list =
|
|
1339
|
-
"class": "ui-timepicker-list"
|
|
1340
|
-
});
|
|
1341
|
-
var wrapped_list = $("<div></div>", {
|
|
1342
|
-
"class": "ui-timepicker-wrapper",
|
|
1343
|
-
tabindex: -1
|
|
1344
|
-
});
|
|
1345
|
-
wrapped_list.css({
|
|
1346
|
-
display: "none",
|
|
1347
|
-
position: "absolute"
|
|
1348
|
-
}).append(list);
|
|
1349
|
-
}
|
|
1350
|
-
|
|
1351
|
-
if (settings.noneOption) {
|
|
1352
|
-
if (settings.noneOption === true) {
|
|
1353
|
-
settings.noneOption = settings.useSelect ? "Time..." : "None";
|
|
1354
|
-
}
|
|
1355
|
-
|
|
1356
|
-
if ($.isArray(settings.noneOption)) {
|
|
1357
|
-
for (var i in settings.noneOption) {
|
|
1358
|
-
if (parseInt(i, 10) == i) {
|
|
1359
|
-
var noneElement = tp._generateNoneElement(settings.noneOption[i], settings.useSelect);
|
|
1360
|
-
|
|
1361
|
-
list.append(noneElement);
|
|
1362
|
-
}
|
|
1363
|
-
}
|
|
1364
|
-
} else {
|
|
1365
|
-
var noneElement = tp._generateNoneElement(settings.noneOption, settings.useSelect);
|
|
1366
|
-
|
|
1367
|
-
list.append(noneElement);
|
|
1368
|
-
}
|
|
1369
|
-
}
|
|
1370
|
-
|
|
1371
|
-
if (settings.className) {
|
|
1372
|
-
wrapped_list.addClass(settings.className);
|
|
1373
|
-
}
|
|
1374
|
-
|
|
1375
|
-
if ((settings.minTime !== null || settings.durationTime !== null) && settings.showDuration) {
|
|
1376
|
-
typeof settings.step == "function" ? "function" : settings.step;
|
|
1377
|
-
wrapped_list.addClass("ui-timepicker-with-duration");
|
|
1378
|
-
wrapped_list.addClass("ui-timepicker-step-" + settings.step);
|
|
1379
|
-
}
|
|
1380
|
-
|
|
1381
|
-
var durStart = (_settings$durationTim = settings.durationTime()) !== null && _settings$durationTim !== void 0 ? _settings$durationTim : settings.minTime();
|
|
1382
|
-
var start = (_settings$minTime = settings.minTime()) !== null && _settings$minTime !== void 0 ? _settings$minTime : 0;
|
|
1383
|
-
var end = (_settings$maxTime = settings.maxTime()) !== null && _settings$maxTime !== void 0 ? _settings$maxTime : start + ONE_DAY - 1;
|
|
1384
|
-
|
|
1385
|
-
if (end < start) {
|
|
1386
|
-
// make sure the end time is greater than start time, otherwise there will be no list to show
|
|
1387
|
-
end += ONE_DAY;
|
|
1388
|
-
}
|
|
1389
|
-
|
|
1390
|
-
if (end === ONE_DAY - 1 && $.type(settings.timeFormat) === "string" && settings.show2400) {
|
|
1391
|
-
// show a 24:00 option when using military time
|
|
1392
|
-
end = ONE_DAY;
|
|
1393
|
-
}
|
|
1394
|
-
|
|
1395
|
-
var dr = settings.disableTimeRanges;
|
|
1396
|
-
var drCur = 0;
|
|
1397
|
-
var drLen = dr.length;
|
|
1398
|
-
var stepFunc = settings.step;
|
|
1399
|
-
|
|
1400
|
-
if (typeof stepFunc != "function") {
|
|
1401
|
-
stepFunc = function stepFunc() {
|
|
1402
|
-
return settings.step;
|
|
1403
|
-
};
|
|
1404
|
-
}
|
|
1405
|
-
|
|
1406
|
-
for (var i = start, j = 0; i <= end; j++, i += stepFunc(j) * 60) {
|
|
1407
|
-
var timeInt = i;
|
|
1408
|
-
|
|
1409
|
-
var timeString = tp._int2time(timeInt);
|
|
1410
|
-
|
|
1411
|
-
if (settings.useSelect) {
|
|
1412
|
-
var row = $("<option></option>", {
|
|
1413
|
-
value: timeString
|
|
1414
|
-
});
|
|
1415
|
-
row.text(timeString);
|
|
1416
|
-
} else {
|
|
1417
|
-
var row = $("<li></li>");
|
|
1418
|
-
row.addClass(timeInt % ONE_DAY < ONE_DAY / 2 ? "ui-timepicker-am" : "ui-timepicker-pm");
|
|
1419
|
-
row.attr("data-time", roundingFunction(timeInt, settings));
|
|
1420
|
-
row.text(timeString);
|
|
1421
|
-
}
|
|
1422
|
-
|
|
1423
|
-
if ((settings.minTime() !== null || settings.durationTime() !== null) && settings.showDuration) {
|
|
1424
|
-
var durationString = tp._int2duration(i - durStart, settings.step);
|
|
1425
|
-
|
|
1426
|
-
if (settings.useSelect) {
|
|
1427
|
-
row.text(row.text() + " (" + durationString + ")");
|
|
1428
|
-
} else {
|
|
1429
|
-
var duration = $("<span></span>", {
|
|
1430
|
-
"class": "ui-timepicker-duration"
|
|
1431
|
-
});
|
|
1432
|
-
duration.text(" (" + durationString + ")");
|
|
1433
|
-
row.append(duration);
|
|
1434
|
-
}
|
|
1435
|
-
}
|
|
1436
|
-
|
|
1437
|
-
if (drCur < drLen) {
|
|
1438
|
-
if (timeInt >= dr[drCur][1]) {
|
|
1439
|
-
drCur += 1;
|
|
1440
|
-
}
|
|
1441
|
-
|
|
1442
|
-
if (dr[drCur] && timeInt >= dr[drCur][0] && timeInt < dr[drCur][1]) {
|
|
1443
|
-
if (settings.useSelect) {
|
|
1444
|
-
row.prop("disabled", true);
|
|
1445
|
-
} else {
|
|
1446
|
-
row.addClass("ui-timepicker-disabled");
|
|
1447
|
-
}
|
|
1448
|
-
}
|
|
1449
|
-
}
|
|
1450
|
-
|
|
1451
|
-
list.append(row);
|
|
1604
|
+
list = wrapped_list.children('ul');
|
|
1452
1605
|
}
|
|
1453
1606
|
|
|
1454
1607
|
wrapped_list.data("timepicker-input", self);
|
|
@@ -1529,8 +1682,8 @@
|
|
|
1529
1682
|
}
|
|
1530
1683
|
|
|
1531
1684
|
Timepicker.hideAll();
|
|
1532
|
-
$(document).
|
|
1533
|
-
$(window).
|
|
1685
|
+
$(document).off(".ui-timepicker");
|
|
1686
|
+
$(window).off(".ui-timepicker");
|
|
1534
1687
|
}
|
|
1535
1688
|
/*
|
|
1536
1689
|
* Keyboard navigation via arrow keys
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.ui-timepicker-wrapper {
|
|
2
2
|
overflow-y: auto;
|
|
3
3
|
max-height: 150px;
|
|
4
|
-
width:
|
|
4
|
+
width: auto;
|
|
5
5
|
background: #fff;
|
|
6
6
|
border: 1px solid #ddd;
|
|
7
7
|
-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);
|
|
@@ -12,13 +12,8 @@
|
|
|
12
12
|
margin: 0;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
.ui-timepicker-wrapper.ui-timepicker-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-30,
|
|
20
|
-
.ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-60 {
|
|
21
|
-
width: 11em;
|
|
15
|
+
.ui-timepicker-wrapper .ui-timepicker-list li {
|
|
16
|
+
padding-right: 20px;
|
|
22
17
|
}
|
|
23
18
|
|
|
24
19
|
.ui-timepicker-list {
|
package/jquery.timepicker.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function s(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function r(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?s(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):s(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}function l(e,t){var i;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(i=function(e,t){if(e){if("string"==typeof e)return a(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?a(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){i&&(e=i);var n=0,s=function(){};return{s:s,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:s}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,l=!0,o=!1;return{s:function(){i=e[Symbol.iterator]()},n:function(){var e=i.next();return l=e.done,e},e:function(e){o=!0,r=e},f:function(){try{l||null==i.return||i.return()}finally{if(o)throw r}}}}var o=86400,u=function(e,t){if(null===e)return null;if("number"!=typeof t.step)return e;var i,n=e%(60*t.step);return(n-=(null!==(i=t.minTime())&&void 0!==i?i:0)%(60*t.step))>=30*t.step?e+=60*t.step-n:e-=n,function(e,t){if(e==o&&t.show2400)return e;return e%o}(e,t)};var c,m={appendTo:"body",className:null,closeOnWindowScroll:!1,disableTextInput:!1,disableTimeRanges:[],disableTouchKeyboard:!1,durationTime:null,forceRoundTime:!1,lang:{},listWidth:null,maxTime:null,minTime:null,noneOption:!1,orientation:"l",roundingFunction:u,scrollDefault:null,selectOnBlur:!1,show2400:!1,showDuration:!1,showOn:["click","focus"],showOnFocus:!0,step:30,stopScrollPropagation:!1,timeFormat:"g:ia",typeaheadHighlight:!0,useSelect:!1,wrapHours:!0},p={am:"am",pm:"pm",AM:"AM",PM:"PM",decimal:".",mins:"mins",hr:"hr",hrs:"hrs"},f={bubbles:!0,cancelable:!1,detail:null},h=function(){function n(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t(this,n),this._handleFormatValue=this._handleFormatValue.bind(this),this._handleKeyUp=this._handleKeyUp.bind(this),this.targetEl=e;var s=n.extractAttrOptions(e,Object.keys(m));this.settings=this.parseSettings(r(r(r({},m),i),s))}var s,a,u;return s=n,u=[{key:"extractAttrOptions",value:function(e,t){var i,n={},s=l(t);try{for(s.s();!(i=s.n()).done;){var r=i.value;r in e.dataset&&(n[r]=e.dataset[r])}}catch(e){s.e(e)}finally{s.f()}return n}},{key:"isVisible",value:function(e){var t=e[0];return t.offsetWidth>0&&t.offsetHeight>0}},{key:"hideAll",value:function(){var e,t=l(document.getElementsByClassName("ui-timepicker-input"));try{for(t.s();!(e=t.n()).done;){var i=e.value.timepickerObj;i&&i.hideMe()}}catch(e){t.e(e)}finally{t.f()}}}],(a=[{key:"hideMe",value:function(){if(this.settings.useSelect)this.targetEl.blur();else if(this.list&&n.isVisible(this.list)){this.settings.selectOnBlur&&this._selectValue(),this.list.hide();var e=new CustomEvent("hideTimepicker",f);this.targetEl.dispatchEvent(e)}}},{key:"_findRow",value:function(e){if(!e&&0!==e)return!1;var t=!1;return e=this.settings.roundingFunction(e,this.settings),!!this.list&&(this.list.find("li").each((function(i,n){var s=parseInt(n.dataset.time);if(!isNaN(s))return s==e?(t=n,!1):void 0})),t)}},{key:"_hideKeyboard",value:function(){return(window.navigator.msMaxTouchPoints||"ontouchstart"in document)&&this.settings.disableTouchKeyboard}},{key:"_setTimeValue",value:function(e,t){if("INPUT"===this.targetEl.nodeName){null===e&&""==this.targetEl.value||(this.targetEl.value=e);var i=this;i.settings.useSelect&&"select"!=t&&i.list&&i.list.val(i._roundAndFormatTime(i.anytime2int(e)))}var n=new CustomEvent("selectTime",f);if(this.selectedValue!=e){this.selectedValue=e;var s=new CustomEvent("changeTime",f),r=new CustomEvent("change",Object.assign(f,{detail:"timepicker"}));return"select"==t?(this.targetEl.dispatchEvent(n),this.targetEl.dispatchEvent(s),this.targetEl.dispatchEvent(r)):-1==["error","initial"].indexOf(t)&&this.targetEl.dispatchEvent(s),!0}return-1==["error","initial"].indexOf(t)&&this.targetEl.dispatchEvent(n),!1}},{key:"_getTimeValue",value:function(){return"INPUT"===this.targetEl.nodeName?this.targetEl.value:this.selectedValue}},{key:"_selectValue",value:function(){var e=this;e.settings;var t=e.list.find(".ui-timepicker-selected");if(t.hasClass("ui-timepicker-disabled"))return!1;if(!t.length)return!0;var i=t.get(0).dataset.time;if(i){var n=parseInt(i);isNaN(n)||(i=n)}return null!==i&&("string"!=typeof i&&(i=e._int2time(i)),e._setTimeValue(i,"select")),!0}},{key:"anytime2int",value:function(t){return"number"==typeof t?t:"string"==typeof t?this.time2int(t):"object"===e(t)&&t instanceof Date?3600*t.getHours()+60*t.getMinutes()+t.getSeconds():"function"==typeof t?t():null}},{key:"time2int",value:function(e){if(""===e||null==e)return null;if("now"===e)return this.anytime2int(new Date);if("string"!=typeof e)return e;"a"!=(e=e.toLowerCase().replace(/[\s\.]/g,"")).slice(-1)&&"p"!=e.slice(-1)||(e+="m");var t=/^(([^0-9]*))?([0-9]?[0-9])(([0-5][0-9]))?(([0-5][0-9]))?(([^0-9]*))$/;e.match(/\W/)&&(t=/^(([^0-9]*))?([0-9]?[0-9])(\W+([0-5][0-9]?))?(\W+([0-5][0-9]))?(([^0-9]*))$/);var i=e.match(t);if(!i)return null;var n=parseInt(1*i[3],10),s=i[2]||i[9],r=n,a=1*i[5]||0,l=1*i[7]||0;if(s||2!=i[3].length||"0"!=i[3][0]||(s="am"),n<=12&&s){var u=(s=s.trim())==this.settings.lang.pm||s==this.settings.lang.PM;r=12==n?u?12:0:n+(u?12:0)}else if(3600*n+60*a+l>=o+(this.settings.show2400?1:0)){if(!1===this.settings.wrapHours)return null;r=n%24}var c=3600*r+60*a+l;if(n<12&&!s&&this.settings._twelveHourTime&&this.settings.scrollDefault()){var m=c-this.settings.scrollDefault();m<0&&m>=-43200&&(c=(c+43200)%o)}return c}},{key:"intStringDateOrFunc2func",value:function(e){var t=this;return null==e?function(){return null}:"function"==typeof e?function(){return t.anytime2int(e())}:function(){return t.anytime2int(e)}}},{key:"parseSettings",value:function(e){if(e.lang=r(r({},p),e.lang),this.settings=e,e.listWidth&&(e.listWidth=this.anytime2int(e.listWidth)),e.minTime=this.intStringDateOrFunc2func(e.minTime),e.maxTime=this.intStringDateOrFunc2func(e.maxTime),e.durationTime=this.intStringDateOrFunc2func(e.durationTime),e.scrollDefault?e.scrollDefault=this.intStringDateOrFunc2func(e.scrollDefault):e.scrollDefault=e.minTime,"string"==typeof e.timeFormat&&e.timeFormat.match(/[gh]/)&&(e._twelveHourTime=!0),!1===e.showOnFocus&&-1!=e.showOn.indexOf("focus")&&e.showOn.splice(e.showOn.indexOf("focus"),1),e.disableTimeRanges||(e.disableTimeRanges=[]),e.disableTimeRanges.length>0){for(var t in e.disableTimeRanges)e.disableTimeRanges[t]=[this.anytime2int(e.disableTimeRanges[t][0]),this.anytime2int(e.disableTimeRanges[t][1])];for(e.disableTimeRanges=e.disableTimeRanges.sort((function(e,t){return e[0]-t[0]})),t=e.disableTimeRanges.length-1;t>0;t--)e.disableTimeRanges[t][0]<=e.disableTimeRanges[t-1][1]&&(e.disableTimeRanges[t-1]=[Math.min(e.disableTimeRanges[t][0],e.disableTimeRanges[t-1][0]),Math.max(e.disableTimeRanges[t][1],e.disableTimeRanges[t-1][1])],e.disableTimeRanges.splice(t,1))}return e}},{key:"_disableTextInputHandler",value:function(e){switch(e.keyCode){case 13:case 9:return;default:e.preventDefault()}}},{key:"_int2duration",value:function(e,t){e=Math.abs(e);var i,n,s=Math.round(e/60),r=[];return s<60?r=[s,this.settings.lang.mins]:(i=Math.floor(s/60),n=s%60,30==t&&30==n&&(i+=this.settings.lang.decimal+5),r.push(i),r.push(1==i?this.settings.lang.hr:this.settings.lang.hrs),30!=t&&n&&(r.push(n),r.push(this.settings.lang.mins))),r.join(" ")}},{key:"_roundAndFormatTime",value:function(e){if(null!==(e=this.settings.roundingFunction(e,this.settings)))return this._int2time(e)}},{key:"_int2time",value:function(e){if("number"!=typeof e)return null;var t=parseInt(e%60),i=parseInt(e/60%60),n=parseInt(e/3600%24),s=new Date(1970,0,2,n,i,t,0);if(isNaN(s.getTime()))return null;if("function"==typeof this.settings.timeFormat)return this.settings.timeFormat(s);for(var r,a,l="",u=0;u<this.settings.timeFormat.length;u++)switch(a=this.settings.timeFormat.charAt(u)){case"a":l+=s.getHours()>11?this.settings.lang.pm:this.settings.lang.am;break;case"A":l+=s.getHours()>11?this.settings.lang.PM:this.settings.lang.AM;break;case"g":l+=0==(r=s.getHours()%12)?"12":r;break;case"G":r=s.getHours(),e===o&&(r=this.settings.show2400?24:0),l+=r;break;case"h":0!=(r=s.getHours()%12)&&r<10&&(r="0"+r),l+=0===r?"12":r;break;case"H":r=s.getHours(),e===o&&(r=this.settings.show2400?24:0),l+=r>9?r:"0"+r;break;case"i":l+=(i=s.getMinutes())>9?i:"0"+i;break;case"s":l+=(t=s.getSeconds())>9?t:"0"+t;break;case"\\":u++,l+=this.settings.timeFormat.charAt(u);break;default:l+=a}return l}},{key:"_setSelected",value:function(){var e=this.list;e.find("li").removeClass("ui-timepicker-selected");var t=this.anytime2int(this._getTimeValue());if(null!==t){var i=this._findRow(t);if(i){var n=i.getBoundingClientRect(),s=e.get(0).getBoundingClientRect(),r=n.top-s.top;if(r+n.height>s.height||r<0){var a=e.scrollTop()+(n.top-s.top)-n.height;e.scrollTop(a)}var l=parseInt(i.dataset.time);(this.settings.forceRoundTime||l===t)&&i.classList.add("ui-timepicker-selected")}}}},{key:"_isFocused",value:function(e){return e===document.activeElement}},{key:"_handleFormatValue",value:function(e){e&&"timepicker"==e.detail||this._formatValue(e)}},{key:"_formatValue",value:function(e,t){if(""!==this.targetEl.value){if(!this._isFocused(this.targetEl)||e&&"change"==e.type){var i=this.settings,n=this.anytime2int(this.targetEl.value);if(null!==n){var s=!1;null!==i.minTime&&null!==i.maxTime&&(n<i.minTime()||n>i.maxTime())&&(s=!0);var r,a=l(i.disableTimeRanges);try{for(a.s();!(r=a.n()).done;){var o=r.value;if(n>=o[0]&&n<o[1]){s=!0;break}}}catch(e){a.e(e)}finally{a.f()}if(i.forceRoundTime){var u=i.roundingFunction(n,i);u!=n&&(n=u,t=null)}var c=this._int2time(n);if(s){this._setTimeValue(c);var m=new CustomEvent("timeRangeError",f);this.targetEl.dispatchEvent(m)}else this._setTimeValue(c,t)}else{var p=new CustomEvent("timeFormatError",f);this.targetEl.dispatchEvent(p)}}}else this._setTimeValue(null,t)}},{key:"_generateNoneElement",value:function(t,i){var n,s,r,a;return"object"==e(t)?(n=t.label,s=t.className,r=t.value):"string"==typeof t?(n=t,r=""):$.error("Invalid noneOption value"),i?(a=document.createElement("option")).value=r:(a=document.createElement("li")).dataset.time=String(r),a.innerText=n,a.classList.add(s),a}},{key:"_handleKeyUp",value:function(e){var t=this;if(!this.list||!n.isVisible(this.list)||this.settings.disableTextInput)return!0;if("paste"!==e.type&&"cut"!==e.type)switch(e.keyCode){case 96:case 97:case 98:case 99:case 100:case 101:case 102:case 103:case 104:case 105:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 65:case 77:case 80:case 186:case 8:case 46:this.settings.typeaheadHighlight?this._setSelected():this.list.hide()}else setTimeout((function(){t.settings.typeaheadHighlight?t._setSelected():t.list.hide()}),0)}}])&&i(s.prototype,a),u&&i(s,u),n}();!function(){if("function"==typeof window.CustomEvent)return!1;window.CustomEvent=function(e,t){t||(t={}),t=Object.assign(f,t);var i=document.createEvent("CustomEvent");return i.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),i}}(),c=function(t){var i={init:function(e){return this.each((function(){var s=t(this),a=new h(this,e),l=a.settings;if(l.lang,this.timepickerObj=a,s.addClass("ui-timepicker-input"),l.useSelect)n(s);else{if(s.prop("autocomplete","off"),l.showOn)for(var o in l.showOn)s.on(l.showOn[o]+".timepicker",i.show);s.on("change.timepicker",a._handleFormatValue),s.on("keydown.timepicker",r),s.on("keyup.timepicker",a._handleKeyUp),l.disableTextInput&&s.on("keydown.timepicker",a._disableTextInputHandler),s.on("cut.timepicker",a._handleKeyUp),s.on("paste.timepicker",a._handleKeyUp),a._formatValue(null,"initial")}}))},show:function(e){var i=t(this),r=i[0].timepickerObj,a=r.settings;if(e&&e.preventDefault(),a.useSelect)r.list.trigger("focus");else{r._hideKeyboard()&&i.trigger("blur");var l=r.list;if(!i.prop("readonly")&&(n(i),l=r.list,!h.isVisible(l))){i.is("input")&&(r.selectedValue=i.val()),r._setSelected(),h.hideAll(),"number"==typeof a.listWidth&&l.width(i.outerWidth()*a.listWidth),l.show();var o={};a.orientation.match(/r/)?o.left=i.offset().left+i.outerWidth()-l.outerWidth()+parseInt(l.css("marginLeft").replace("px",""),10):a.orientation.match(/l/)?o.left=i.offset().left+parseInt(l.css("marginLeft").replace("px",""),10):a.orientation.match(/c/)&&(o.left=i.offset().left+(i.outerWidth()-l.outerWidth())/2+parseInt(l.css("marginLeft").replace("px",""),10)),"t"==(a.orientation.match(/t/)?"t":a.orientation.match(/b/)?"b":i.offset().top+i.outerHeight(!0)+l.outerHeight()>t(window).height()+t(window).scrollTop()?"t":"b")?(l.addClass("ui-timepicker-positioned-top"),o.top=i.offset().top-l.outerHeight()+parseInt(l.css("marginTop").replace("px",""),10)):(l.removeClass("ui-timepicker-positioned-top"),o.top=i.offset().top+i.outerHeight()+parseInt(l.css("marginTop").replace("px",""),10)),l.offset(o);var u=l.find(".ui-timepicker-selected");if(!u.length){var c=r.anytime2int(r._getTimeValue());null!==c?u=t(r._findRow(c)):a.scrollDefault()&&(u=t(r._findRow(a.scrollDefault())))}if(u.length&&!u.hasClass("ui-timepicker-disabled")||(u=l.find("li:not(.ui-timepicker-disabled):first")),u&&u.length){var m=l.scrollTop()+u.position().top-u.outerHeight();l.scrollTop(m)}else l.scrollTop(0);return a.stopScrollPropagation&&t(document).on("wheel.ui-timepicker",".ui-timepicker-wrapper",(function(e){e.preventDefault();var i=t(this).scrollTop();t(this).scrollTop(i+e.originalEvent.deltaY)})),t(document).on("mousedown.ui-timepicker",s),window.addEventListener("resize",s),a.closeOnWindowScroll&&t(document).on("scroll.ui-timepicker",s),i.trigger("showTimepicker"),this}}},hide:function(e){var t=this[0].timepickerObj;return t&&t.hideMe(),h.hideAll(),this},option:function(i,s){return"string"==typeof i&&void 0===s?this[0].timepickerObj.settings[i]:this.each((function(){var r=t(this),a=r[0].timepickerObj,l=a.settings,o=a.list;"object"==e(i)?l=t.extend(l,i):"string"==typeof i&&(l[i]=s),l=a.parseSettings(l),a.settings=l,a._formatValue({type:"change"},"initial"),o&&(o.remove(),a.list=null),l.useSelect&&n(r)}))},getSecondsFromMidnight:function(){var e=this[0].timepickerObj;return e.anytime2int(e._getTimeValue())},getTime:function(e){var t=this[0].timepickerObj,i=t._getTimeValue();if(!i)return null;var n=t.anytime2int(i);if(null===n)return null;e||(e=new Date);var s=new Date(e);return s.setHours(n/3600),s.setMinutes(n%3600/60),s.setSeconds(n%60),s.setMilliseconds(0),s},isVisible:function(){var e=this[0].timepickerObj;return!!(e&&e.list&&h.isVisible(e.list))},setTime:function(e){var t=this[0].timepickerObj,i=t.settings;if(i.forceRoundTime)var n=t._roundAndFormatTime(t.anytime2int(e));else n=t._int2time(t.anytime2int(e));return e&&null===n&&i.noneOption&&(n=e),t._setTimeValue(n,"initial"),t._formatValue({type:"change"},"initial"),t&&t.list&&t._setSelected(),this},remove:function(){var e=this;if(e.hasClass("ui-timepicker-input")){var t=e[0].timepickerObj,i=t.settings;return e.removeAttr("autocomplete","off"),e.removeClass("ui-timepicker-input"),e.removeData("timepicker-obj"),e.off(".timepicker"),t.list&&t.list.remove(),i.useSelect&&e.show(),t.list=null,this}}};function n(e){var n,s,r,a=e[0].timepickerObj,l=a.list,c=a.settings;if(l&&l.length&&(l.remove(),a.list=null),c.useSelect){l=t("<select></select>",{class:"ui-timepicker-select"}),e.attr("name")&&l.attr("name","ui-timepicker-"+e.attr("name"));var m=l}else l=t("<ul></ul>",{class:"ui-timepicker-list"}),(m=t("<div></div>",{class:"ui-timepicker-wrapper",tabindex:-1})).css({display:"none",position:"absolute"}).append(l);if(c.noneOption)if(!0===c.noneOption&&(c.noneOption=c.useSelect?"Time...":"None"),t.isArray(c.noneOption)){for(var p in c.noneOption)if(parseInt(p,10)==p){var f=a._generateNoneElement(c.noneOption[p],c.useSelect);l.append(f)}}else f=a._generateNoneElement(c.noneOption,c.useSelect),l.append(f);c.className&&m.addClass(c.className),null===c.minTime&&null===c.durationTime||!c.showDuration||("function"==typeof c.step||c.step,m.addClass("ui-timepicker-with-duration"),m.addClass("ui-timepicker-step-"+c.step));var h=null!==(n=c.durationTime())&&void 0!==n?n:c.minTime(),d=null!==(s=c.minTime())&&void 0!==s?s:0,g=null!==(r=c.maxTime())&&void 0!==r?r:d+o-1;g<d&&(g+=o),86399===g&&"string"===t.type(c.timeFormat)&&c.show2400&&(g=o);var v=c.disableTimeRanges,y=0,b=v.length,k=c.step;"function"!=typeof k&&(k=function(){return c.step}),p=d;for(var T=0;p<=g;p+=60*k(++T)){var w,O=p,_=a._int2time(O);if(c.useSelect?(w=t("<option></option>",{value:_})).text(_):((w=t("<li></li>")).addClass(O%o<43200?"ui-timepicker-am":"ui-timepicker-pm"),w.attr("data-time",u(O,c)),w.text(_)),(null!==c.minTime()||null!==c.durationTime())&&c.showDuration){var E=a._int2duration(p-h,c.step);if(c.useSelect)w.text(w.text()+" ("+E+")");else{var S=t("<span></span>",{class:"ui-timepicker-duration"});S.text(" ("+E+")"),w.append(S)}}y<b&&(O>=v[y][1]&&(y+=1),v[y]&&O>=v[y][0]&&O<v[y][1]&&(c.useSelect?w.prop("disabled",!0):w.addClass("ui-timepicker-disabled"))),l.append(w)}if(m.data("timepicker-input",e),a.list=m,c.useSelect)e.val()&&l.val(a._roundAndFormatTime(a.anytime2int(e.val()))),l.on("focus",(function(){t(this).data("timepicker-input").trigger("showTimepicker")})),l.on("blur",(function(){t(this).data("timepicker-input").trigger("hideTimepicker")})),l.on("change",(function(){a._setTimeValue(t(this).val(),"select")})),a._setTimeValue(l.val(),"initial"),e.hide().after(l);else{var j=c.appendTo;"string"==typeof j?j=t(j):"function"==typeof j&&(j=j(e)),j.append(m),a._setSelected(),l.on("mousedown click","li",(function(n){e.off("focus.timepicker"),e.on("focus.timepicker-ie-hack",(function(){e.off("focus.timepicker-ie-hack"),e.on("focus.timepicker",i.show)})),a._hideKeyboard()||e[0].focus(),l.find("li").removeClass("ui-timepicker-selected"),t(this).addClass("ui-timepicker-selected"),a._selectValue()&&(e.trigger("hideTimepicker"),l.on("mouseup.timepicker click.timepicker","li",(function(e){l.off("mouseup.timepicker click.timepicker"),m.hide()})))}))}}function s(e){if("focus"!=e.type||e.target!=window){var i=t(e.target);i.closest(".ui-timepicker-input").length||i.closest(".ui-timepicker-wrapper").length||(h.hideAll(),t(document).unbind(".ui-timepicker"),t(window).unbind(".ui-timepicker"))}}function r(e){var n=t(this),s=n[0].timepickerObj,r=s.list;if(!r||!h.isVisible(r)){if(40!=e.keyCode)return!0;i.show.call(n.get(0)),r=s.list,s._hideKeyboard()||n.trigger("focus")}switch(e.keyCode){case 13:return s._selectValue()&&(s._formatValue({type:"change"}),s.hideMe()),e.preventDefault(),!1;case 38:var a=r.find(".ui-timepicker-selected");return a.length?a.is(":first-child")||(a.removeClass("ui-timepicker-selected"),a.prev().addClass("ui-timepicker-selected"),a.prev().position().top<a.outerHeight()&&r.scrollTop(r.scrollTop()-a.outerHeight())):(r.find("li").each((function(e,i){if(t(i).position().top>0)return a=t(i),!1})),a.addClass("ui-timepicker-selected")),!1;case 40:return 0===(a=r.find(".ui-timepicker-selected")).length?(r.find("li").each((function(e,i){if(t(i).position().top>0)return a=t(i),!1})),a.addClass("ui-timepicker-selected")):a.is(":last-child")||(a.removeClass("ui-timepicker-selected"),a.next().addClass("ui-timepicker-selected"),a.next().position().top+2*a.outerHeight()>r.outerHeight()&&r.scrollTop(r.scrollTop()+a.outerHeight())),!1;case 27:r.find("li").removeClass("ui-timepicker-selected"),s.hideMe();break;case 9:s.hideMe();break;default:return!0}}t.fn.timepicker=function(n){return this.length?i[n]?this.hasClass("ui-timepicker-input")?i[n].apply(this,Array.prototype.slice.call(arguments,1)):this:"object"!==e(n)&&n?void t.error("Method "+n+" does not exist on jQuery.timepicker"):i.init.apply(this,arguments):this},t.fn.timepicker.defaults=m},"object"===("undefined"==typeof exports?"undefined":e(exports))&&exports&&"object"===("undefined"==typeof module?"undefined":e(module))&&module&&module.exports===exports?c(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],c):c(jQuery)}();
|
|
1
|
+
!function(){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?r(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):r(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}function l(e,t){var i;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(i=function(e,t){if(e){if("string"==typeof e)return a(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?a(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){i&&(e=i);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,l=!0,o=!1;return{s:function(){i=e[Symbol.iterator]()},n:function(){var e=i.next();return l=e.done,e},e:function(e){o=!0,s=e},f:function(){try{l||null==i.return||i.return()}finally{if(o)throw s}}}}var o=86400;function u(e,t){return e==o&&t.show2400?e:e%o}var c,m={appendTo:"body",className:null,closeOnWindow:!1,closeOnScroll:!1,disableTextInput:!1,disableTimeRanges:[],disableTouchKeyboard:!1,durationTime:null,forceRoundTime:!1,lang:{},listWidth:null,maxTime:null,minTime:null,noneOption:!1,orientation:"l",roundingFunction:function(e,t){if(null===e)return null;for(var i=0,n=0;n<e;)i++,n+=60*t.step(i);var r=n-60*t.step(i-1);return u(e-r<n-e?r:n,t)},scrollDefault:null,selectOnBlur:!1,show2400:!1,showDuration:!1,showOn:["click","focus"],step:30,stopScrollPropagation:!1,timeFormat:"g:ia",typeaheadHighlight:!0,useSelect:!1,wrapHours:!0},d={am:"am",pm:"pm",AM:"AM",PM:"PM",decimal:".",mins:"mins",hr:"hr",hrs:"hrs"},f={bubbles:!0,cancelable:!1,detail:null},p=function(){function n(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t(this,n),this._handleFormatValue=this._handleFormatValue.bind(this),this._handleKeyUp=this._handleKeyUp.bind(this),this.targetEl=e;var r=n.extractAttrOptions(e,Object.keys(m));this.settings=this.parseSettings(s(s(s({},m),i),r))}var r,a,u;return r=n,u=[{key:"extractAttrOptions",value:function(e,t){var i,n={},r=l(t);try{for(r.s();!(i=r.n()).done;){var s=i.value;s in e.dataset&&(n[s]=e.dataset[s])}}catch(e){r.e(e)}finally{r.f()}return n}},{key:"isVisible",value:function(e){var t=e[0];return t.offsetWidth>0&&t.offsetHeight>0}},{key:"hideAll",value:function(){var e,t=l(document.getElementsByClassName("ui-timepicker-input"));try{for(t.s();!(e=t.n()).done;){var i=e.value.timepickerObj;i&&i.hideMe()}}catch(e){t.e(e)}finally{t.f()}}}],(a=[{key:"hideMe",value:function(){if(this.settings.useSelect)this.targetEl.blur();else if(this.list&&n.isVisible(this.list)){this.settings.selectOnBlur&&this._selectValue(),this.list.hide();var e=new CustomEvent("hideTimepicker",f);this.targetEl.dispatchEvent(e)}}},{key:"_findRow",value:function(e){if(!e&&0!==e)return!1;var t=!1;return e=this.settings.roundingFunction(e,this.settings),!!this.list&&(this.list.find("li").each((function(i,n){var r=parseInt(n.dataset.time);if(!isNaN(r))return r==e?(t=n,!1):void 0})),t)}},{key:"_hideKeyboard",value:function(){return(window.navigator.msMaxTouchPoints||"ontouchstart"in document)&&this.settings.disableTouchKeyboard}},{key:"_setTimeValue",value:function(e,t){if("INPUT"===this.targetEl.nodeName){null===e&&""==this.targetEl.value||(this.targetEl.value=e);var i=this;i.settings.useSelect&&"select"!=t&&i.list&&i.list.val(i._roundAndFormatTime(i.anytime2int(e)))}var n=new CustomEvent("selectTime",f);if(this.selectedValue!=e){this.selectedValue=e;var r=new CustomEvent("changeTime",f),s=new CustomEvent("change",Object.assign(f,{detail:"timepicker"}));return"select"==t?(this.targetEl.dispatchEvent(n),this.targetEl.dispatchEvent(r),this.targetEl.dispatchEvent(s)):-1==["error","initial"].indexOf(t)&&this.targetEl.dispatchEvent(r),!0}return-1==["error","initial"].indexOf(t)&&this.targetEl.dispatchEvent(n),!1}},{key:"_getTimeValue",value:function(){return"INPUT"===this.targetEl.nodeName?this.targetEl.value:this.selectedValue}},{key:"_selectValue",value:function(){var e=this;e.settings;var t=e.list.find(".ui-timepicker-selected");if(t.hasClass("ui-timepicker-disabled"))return!1;if(!t.length)return!0;var i=t.get(0).dataset.time;if(i){var n=parseInt(i);isNaN(n)||(i=n)}return null!==i&&("string"!=typeof i&&(i=e._int2time(i)),e._setTimeValue(i,"select")),!0}},{key:"anytime2int",value:function(t){return"number"==typeof t?t:"string"==typeof t?this.time2int(t):"object"===e(t)&&t instanceof Date?3600*t.getHours()+60*t.getMinutes()+t.getSeconds():"function"==typeof t?t():null}},{key:"time2int",value:function(e){if(""===e||null==e)return null;if("now"===e)return this.anytime2int(new Date);if("string"!=typeof e)return e;"a"!=(e=e.toLowerCase().replace(/[\s\.]/g,"")).slice(-1)&&"p"!=e.slice(-1)||(e+="m");var t=/^(([^0-9]*))?([0-9]?[0-9])(([0-5][0-9]))?(([0-5][0-9]))?(([^0-9]*))$/;e.match(/\W/)&&(t=/^(([^0-9]*))?([0-9]?[0-9])(\W+([0-5][0-9]?))?(\W+([0-5][0-9]))?(([^0-9]*))$/);var i=e.match(t);if(!i)return null;var n=parseInt(1*i[3],10),r=i[2]||i[9],s=this.parseMinuteString(i[5]),a=1*i[7]||0;r||2!=i[3].length||"0"!=i[3][0]||(r="am"),n>24&&!s&&(n=1*i[3][0],s=this.parseMinuteString(i[3][1]));var l=n;if(n<=12&&r){var u=(r=r.trim())==this.settings.lang.pm||r==this.settings.lang.PM;l=12==n?u?12:0:n+(u?12:0)}else if(3600*n+60*s+a>=o+(this.settings.show2400?1:0)){if(!1===this.settings.wrapHours)return null;l=n%24}var c=3600*l+60*s+a;if(n<12&&!r&&this.settings._twelveHourTime&&this.settings.scrollDefault()){var m=c-this.settings.scrollDefault();m<0&&m>=-43200&&(c=(c+43200)%o)}return c}},{key:"parseMinuteString",value:function(e){e||(e=0);var t=1;return 1==e.length&&(t=10),parseInt(e)*t||0}},{key:"intStringDateOrFunc2func",value:function(e){var t=this;return null==e?function(){return null}:"function"==typeof e?function(){return t.anytime2int(e())}:function(){return t.anytime2int(e)}}},{key:"parseSettings",value:function(e){if(e.lang=s(s({},d),e.lang),this.settings=e,e.listWidth&&(e.listWidth=this.anytime2int(e.listWidth)),e.minTime=this.intStringDateOrFunc2func(e.minTime),e.maxTime=this.intStringDateOrFunc2func(e.maxTime),e.durationTime=this.intStringDateOrFunc2func(e.durationTime),e.scrollDefault?e.scrollDefault=this.intStringDateOrFunc2func(e.scrollDefault):e.scrollDefault=e.minTime,"string"==typeof e.timeFormat&&e.timeFormat.match(/[gh]/)&&(e._twelveHourTime=!0),"function"!=typeof e.step){var t=e.step;e.step=function(){return t}}return e.disableTimeRanges=this._parseDisableTimeRanges(e.disableTimeRanges),e.closeOnWindowScroll&&!e.closeOnScroll&&(e.closeOnScroll=e.closeOnWindowScroll),!0===e.closeOnScroll&&(e.closeOnScroll=window.document),e}},{key:"_parseDisableTimeRanges",value:function(e){if(!e||0==e.length)return[];for(var t in e)e[t]=[this.anytime2int(e[t][0]),this.anytime2int(e[t][1])];for(t=(e=e.sort((function(e,t){return e[0]-t[0]}))).length-1;t>0;t--)e[t][0]<=e[t-1][1]&&(e[t-1]=[Math.min(e[t][0],e[t-1][0]),Math.max(e[t][1],e[t-1][1])],e.splice(t,1));return e}},{key:"_disableTextInputHandler",value:function(e){switch(e.keyCode){case 13:case 9:return;default:e.preventDefault()}}},{key:"_int2duration",value:function(e,t){e=Math.abs(e);var i,n,r=Math.round(e/60),s=[];return r<60?s=[r,this.settings.lang.mins]:(i=Math.floor(r/60),n=r%60,30==t&&30==n&&(i+=this.settings.lang.decimal+5),s.push(i),s.push(1==i?this.settings.lang.hr:this.settings.lang.hrs),30!=t&&n&&(s.push(n),s.push(this.settings.lang.mins))),s.join(" ")}},{key:"_roundAndFormatTime",value:function(e){if(null!==(e=this.settings.roundingFunction(e,this.settings)))return this._int2time(e)}},{key:"_int2time",value:function(e){if("number"!=typeof e)return null;var t=parseInt(e%60),i=parseInt(e/60%60),n=parseInt(e/3600%24),r=new Date(1970,0,2,n,i,t,0);if(isNaN(r.getTime()))return null;if("function"==typeof this.settings.timeFormat)return this.settings.timeFormat(r);for(var s,a,l="",u=0;u<this.settings.timeFormat.length;u++)switch(a=this.settings.timeFormat.charAt(u)){case"a":l+=r.getHours()>11?this.settings.lang.pm:this.settings.lang.am;break;case"A":l+=r.getHours()>11?this.settings.lang.PM:this.settings.lang.AM;break;case"g":l+=0==(s=r.getHours()%12)?"12":s;break;case"G":s=r.getHours(),e===o&&(s=this.settings.show2400?24:0),l+=s;break;case"h":0!=(s=r.getHours()%12)&&s<10&&(s="0"+s),l+=0===s?"12":s;break;case"H":s=r.getHours(),e===o&&(s=this.settings.show2400?24:0),l+=s>9?s:"0"+s;break;case"i":l+=(i=r.getMinutes())>9?i:"0"+i;break;case"s":l+=(t=r.getSeconds())>9?t:"0"+t;break;case"\\":u++,l+=this.settings.timeFormat.charAt(u);break;default:l+=a}return l}},{key:"_setSelected",value:function(){var e=this.list;e.find("li").removeClass("ui-timepicker-selected");var t=this.anytime2int(this._getTimeValue());if(null!==t){var i=this._findRow(t);if(i){var n=i.getBoundingClientRect(),r=e.get(0).getBoundingClientRect(),s=n.top-r.top;if(s+n.height>r.height||s<0){var a=e.scrollTop()+(n.top-r.top)-n.height;e.scrollTop(a)}var l=parseInt(i.dataset.time);(this.settings.forceRoundTime||l===t)&&i.classList.add("ui-timepicker-selected")}}}},{key:"_isFocused",value:function(e){return e===document.activeElement}},{key:"_handleFormatValue",value:function(e){e&&"timepicker"==e.detail||this._formatValue(e)}},{key:"_formatValue",value:function(e,t){if(""!==this.targetEl.value){if(!this._isFocused(this.targetEl)||e&&"change"==e.type){var i=this.settings,n=this.anytime2int(this.targetEl.value);if(null!==n){var r=!1;null!==i.minTime&&null!==i.maxTime&&(n<i.minTime()||n>i.maxTime())&&(r=!0);var s,a=l(i.disableTimeRanges);try{for(a.s();!(s=a.n()).done;){var o=s.value;if(n>=o[0]&&n<o[1]){r=!0;break}}}catch(e){a.e(e)}finally{a.f()}if(i.forceRoundTime){var u=i.roundingFunction(n,i);u!=n&&(n=u,t=null)}var c=this._int2time(n);if(r){this._setTimeValue(c);var m=new CustomEvent("timeRangeError",f);this.targetEl.dispatchEvent(m)}else this._setTimeValue(c,t)}else{var d=new CustomEvent("timeFormatError",f);this.targetEl.dispatchEvent(d)}}}else this._setTimeValue(null,t)}},{key:"_generateNoneElement",value:function(t,i){var n,r,s,a;return"object"==e(t)?(n=t.label,r=t.className,s=t.value):"string"==typeof t?(n=t,s=""):$.error("Invalid noneOption value"),i?(a=document.createElement("option")).value=s:(a=document.createElement("li")).dataset.time=String(s),a.innerText=n,a.classList.add(r),a}},{key:"_handleKeyUp",value:function(e){var t=this;if(!this.list||!n.isVisible(this.list)||this.settings.disableTextInput)return!0;if("paste"!==e.type&&"cut"!==e.type)switch(e.keyCode){case 96:case 97:case 98:case 99:case 100:case 101:case 102:case 103:case 104:case 105:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 65:case 77:case 80:case 186:case 8:case 46:this.settings.typeaheadHighlight?this._setSelected():this.list.hide()}else setTimeout((function(){t.settings.typeaheadHighlight?t._setSelected():t.list.hide()}),0)}}])&&i(r.prototype,a),u&&i(r,u),n}();function h(t){return Array.isArray(t)?t.map(h):!0===t?{label:"None",value:""}:"object"===e(t)?t:{label:t,value:""}}function g(e){var t=document.createElement("option");return t.value=e.label,e.duration?t.appendChild(document.createTextNode(e.label+" ("+e.duration+")")):t.appendChild(document.createTextNode(e.label)),e.disabled&&(t.disabled=!0),t}function v(e){var t=document.createElement("li");if(t.dataset.time=e.value,e.className&&t.classList.add(e.className),t.className=e.className,t.appendChild(document.createTextNode(e.label)),e.duration){var i=document.createElement("span");i.appendChild(document.createTextNode("("+e.duration+")")),i.classList.add("ui-timepicker-duration"),t.appendChild(i)}return e.disabled&&t.classList.add("ui-timepicker-disabled"),t}function y(e){var t,i=[].concat(function(e){if(!e.noneOption)return[];var t=h(e.noneOption);return Array.isArray(e.noneOption)?t:[t]}(e.settings),function(e){var t,i,n=e.settings,r=null!==(t=n.minTime())&&void 0!==t?t:0,s=null!==(i=n.maxTime())&&void 0!==i?i:r+o-1;s<r&&(s+=o),86399===s&&"string"==typeof n.timeFormat&&n.show2400&&(s=o);for(var a=[],c=r,m=0;c<=s;m++,c+=60*n.step(m)){var d=c,f=e._int2time(d),p=d%o<43200?"ui-timepicker-am":"ui-timepicker-pm",h={label:f,value:u(d,n),className:p};if((null!==n.minTime()||null!==n.durationTime())&&n.showDuration){var g,v=null!==(g=n.durationTime())&&void 0!==g?g:n.minTime();v>c&&(v-=o);var y=e._int2duration(c-v,n.step());h.duration=y}var b,k=l(n.disableTimeRanges);try{for(k.s();!(b=k.n()).done;){var T=b.value;if(d%o>=T[0]&&d%o<T[1]){h.disabled=!0;break}}}catch(e){k.e(e)}finally{k.f()}a.push(h)}return a}(e));if(t=e.settings.useSelect?function(e,t){var i=document.createElement("select");i.classList.add("ui-timepicker-select"),t&&(i.name="ui-timepicker-"+t);var n,r=l(e);try{for(r.s();!(n=r.n()).done;){var s=g(n.value);i.appendChild(s)}}catch(e){r.e(e)}finally{r.f()}return i}(i,e.targetEl.name):function(e){var t=document.createElement("ul");t.classList.add("ui-timepicker-list");var i,n=l(e);try{for(n.s();!(i=n.n()).done;){var r=v(i.value);t.appendChild(r)}}catch(e){n.e(e)}finally{n.f()}var s=document.createElement("div");return s.classList.add("ui-timepicker-wrapper"),s.tabIndex=-1,s.style.display="none",s.style.position="absolute",s.appendChild(t),s}(i),e.settings.className){var n,r=l(e.settings.className.split(" "));try{for(r.s();!(n=r.n()).done;){var s=n.value;t.classList.add(s)}}catch(e){r.e(e)}finally{r.f()}}return!e.settings.showDuration||null===e.settings.minTime&&null===e.settings.durationTime||(t.classList.add("ui-timepicker-with-duration"),t.classList.add("ui-timepicker-step-"+e.settings.step())),t}!function(){if("function"==typeof window.CustomEvent)return!1;window.CustomEvent=function(e,t){t||(t={}),t=Object.assign(f,t);var i=document.createEvent("CustomEvent");return i.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),i}}(),c=function(t){var i={init:function(e){return this.each((function(){var r=t(this),a=new p(this,e),l=a.settings;if(l.lang,this.timepickerObj=a,r.addClass("ui-timepicker-input"),l.useSelect)n(r);else{if(r.prop("autocomplete","off"),l.showOn)for(var o in l.showOn)r.on(l.showOn[o]+".timepicker",i.show);r.on("change.timepicker",a._handleFormatValue),r.on("keydown.timepicker",s),r.on("keyup.timepicker",a._handleKeyUp),l.disableTextInput&&r.on("keydown.timepicker",a._disableTextInputHandler),r.on("cut.timepicker",a._handleKeyUp),r.on("paste.timepicker",a._handleKeyUp),a._formatValue(null,"initial")}}))},show:function(e){var i=t(this),s=i[0].timepickerObj,a=s.settings;if(e&&e.preventDefault(),a.useSelect)s.list.trigger("focus");else{s._hideKeyboard()&&i.trigger("blur");var l=s.list;if(!i.prop("readonly")&&(n(i),l=s.list,!p.isVisible(l))){i.is("input")&&(s.selectedValue=i.val()),s._setSelected(),p.hideAll(),"number"==typeof a.listWidth&&l.width(i.outerWidth()*a.listWidth),l.show();var o={};a.orientation.match(/r/)?o.left=i.offset().left+i.outerWidth()-l.outerWidth()+parseInt(l.css("marginLeft").replace("px",""),10):a.orientation.match(/l/)?o.left=i.offset().left+parseInt(l.css("marginLeft").replace("px",""),10):a.orientation.match(/c/)&&(o.left=i.offset().left+(i.outerWidth()-l.outerWidth())/2+parseInt(l.css("marginLeft").replace("px",""),10)),"t"==(a.orientation.match(/t/)?"t":a.orientation.match(/b/)?"b":i.offset().top+i.outerHeight(!0)+l.outerHeight()>t(window).height()+t(window).scrollTop()?"t":"b")?(l.addClass("ui-timepicker-positioned-top"),o.top=i.offset().top-l.outerHeight()+parseInt(l.css("marginTop").replace("px",""),10)):(l.removeClass("ui-timepicker-positioned-top"),o.top=i.offset().top+i.outerHeight()+parseInt(l.css("marginTop").replace("px",""),10)),l.offset(o);var u=l.find(".ui-timepicker-selected");if(!u.length){var c=s.anytime2int(s._getTimeValue());null!==c?u=t(s._findRow(c)):a.scrollDefault()&&(u=t(s._findRow(a.scrollDefault())))}if(u.length&&!u.hasClass("ui-timepicker-disabled")||(u=l.find("li:not(.ui-timepicker-disabled):first")),u&&u.length){var m=l.scrollTop()+u.position().top-u.outerHeight();l.scrollTop(m)}else l.scrollTop(0);return a.stopScrollPropagation&&t(document).on("wheel.ui-timepicker",".ui-timepicker-wrapper",(function(e){e.preventDefault();var i=t(this).scrollTop();t(this).scrollTop(i+e.originalEvent.deltaY)})),t(document).on("mousedown.ui-timepicker",r),window.addEventListener("resize",r),a.closeOnScroll&&t(a.closeOnScroll).on("scroll.ui-timepicker",r),i.trigger("showTimepicker"),this}}},hide:function(e){var t=this[0].timepickerObj;return t&&t.hideMe(),p.hideAll(),this},option:function(i,r){return"string"==typeof i&&void 0===r?this[0].timepickerObj.settings[i]:this.each((function(){var s=t(this),a=s[0].timepickerObj,l=a.settings,o=a.list;"object"==e(i)?l=t.extend(l,i):"string"==typeof i&&(l[i]=r),l=a.parseSettings(l),a.settings=l,a._formatValue({type:"change"},"initial"),o&&(o.remove(),a.list=null),l.useSelect&&n(s)}))},getSecondsFromMidnight:function(){var e=this[0].timepickerObj;return e.anytime2int(e._getTimeValue())},getTime:function(e){var t=this[0].timepickerObj,i=t._getTimeValue();if(!i)return null;var n=t.anytime2int(i);if(null===n)return null;e||(e=new Date);var r=new Date(e);return r.setHours(n/3600),r.setMinutes(n%3600/60),r.setSeconds(n%60),r.setMilliseconds(0),r},isVisible:function(){var e=this[0].timepickerObj;return!!(e&&e.list&&p.isVisible(e.list))},setTime:function(e){var t=this[0].timepickerObj,i=t.settings;if(i.forceRoundTime)var n=t._roundAndFormatTime(t.anytime2int(e));else n=t._int2time(t.anytime2int(e));return e&&null===n&&i.noneOption&&(n=e),t._setTimeValue(n,"initial"),t._formatValue({type:"change"},"initial"),t&&t.list&&t._setSelected(),this},remove:function(){var e=this;if(e.hasClass("ui-timepicker-input")){var t=e[0].timepickerObj,i=t.settings;return e.removeAttr("autocomplete","off"),e.removeClass("ui-timepicker-input"),e.removeData("timepicker-obj"),e.off(".timepicker"),t.list&&t.list.remove(),i.useSelect&&e.show(),t.list=null,this}}};function n(e){var n=e[0].timepickerObj,r=n.list,s=n.settings;r&&r.length&&(r.remove(),n.list=null);var a=t(y(n));if(r=s.useSelect?a:a.children("ul"),a.data("timepicker-input",e),n.list=a,s.useSelect)e.val()&&r.val(n._roundAndFormatTime(n.anytime2int(e.val()))),r.on("focus",(function(){t(this).data("timepicker-input").trigger("showTimepicker")})),r.on("blur",(function(){t(this).data("timepicker-input").trigger("hideTimepicker")})),r.on("change",(function(){n._setTimeValue(t(this).val(),"select")})),n._setTimeValue(r.val(),"initial"),e.hide().after(r);else{var l=s.appendTo;"string"==typeof l?l=t(l):"function"==typeof l&&(l=l(e)),l.append(a),n._setSelected(),r.on("mousedown click","li",(function(s){e.off("focus.timepicker"),e.on("focus.timepicker-ie-hack",(function(){e.off("focus.timepicker-ie-hack"),e.on("focus.timepicker",i.show)})),n._hideKeyboard()||e[0].focus(),r.find("li").removeClass("ui-timepicker-selected"),t(this).addClass("ui-timepicker-selected"),n._selectValue()&&(e.trigger("hideTimepicker"),r.on("mouseup.timepicker click.timepicker","li",(function(e){r.off("mouseup.timepicker click.timepicker"),a.hide()})))}))}}function r(e){if("focus"!=e.type||e.target!=window){var i=t(e.target);i.closest(".ui-timepicker-input").length||i.closest(".ui-timepicker-wrapper").length||(p.hideAll(),t(document).off(".ui-timepicker"),t(window).off(".ui-timepicker"))}}function s(e){var n=t(this),r=n[0].timepickerObj,s=r.list;if(!s||!p.isVisible(s)){if(40!=e.keyCode)return!0;i.show.call(n.get(0)),s=r.list,r._hideKeyboard()||n.trigger("focus")}switch(e.keyCode){case 13:return r._selectValue()&&(r._formatValue({type:"change"}),r.hideMe()),e.preventDefault(),!1;case 38:var a=s.find(".ui-timepicker-selected");return a.length?a.is(":first-child")||(a.removeClass("ui-timepicker-selected"),a.prev().addClass("ui-timepicker-selected"),a.prev().position().top<a.outerHeight()&&s.scrollTop(s.scrollTop()-a.outerHeight())):(s.find("li").each((function(e,i){if(t(i).position().top>0)return a=t(i),!1})),a.addClass("ui-timepicker-selected")),!1;case 40:return 0===(a=s.find(".ui-timepicker-selected")).length?(s.find("li").each((function(e,i){if(t(i).position().top>0)return a=t(i),!1})),a.addClass("ui-timepicker-selected")):a.is(":last-child")||(a.removeClass("ui-timepicker-selected"),a.next().addClass("ui-timepicker-selected"),a.next().position().top+2*a.outerHeight()>s.outerHeight()&&s.scrollTop(s.scrollTop()+a.outerHeight())),!1;case 27:s.find("li").removeClass("ui-timepicker-selected"),r.hideMe();break;case 9:r.hideMe();break;default:return!0}}t.fn.timepicker=function(n){return this.length?i[n]?this.hasClass("ui-timepicker-input")?i[n].apply(this,Array.prototype.slice.call(arguments,1)):this:"object"!==e(n)&&n?void t.error("Method "+n+" does not exist on jQuery.timepicker"):i.init.apply(this,arguments):this},t.fn.timepicker.defaults=m},"object"===("undefined"==typeof exports?"undefined":e(exports))&&exports&&"object"===("undefined"==typeof module?"undefined":e(module))&&module&&module.exports===exports?c(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],c):c(jQuery)}();
|