timepicker 1.13.18 → 1.13.19
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/jquery.timepicker.css +3 -8
- package/jquery.timepicker.js +308 -164
- 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/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.13.
|
|
2
|
+
* jquery-timepicker v1.13.19 - 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
|
}
|
|
@@ -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) {
|
|
@@ -546,30 +563,42 @@
|
|
|
546
563
|
settings.showOn.splice(settings.showOn.indexOf("focus"), 1);
|
|
547
564
|
}
|
|
548
565
|
|
|
549
|
-
if (
|
|
550
|
-
|
|
566
|
+
if (typeof settings.step != 'function') {
|
|
567
|
+
var curryStep = settings.step;
|
|
568
|
+
|
|
569
|
+
settings.step = function () {
|
|
570
|
+
return curryStep;
|
|
571
|
+
};
|
|
551
572
|
}
|
|
552
573
|
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
574
|
+
settings.disableTimeRanges = this._parseDisableTimeRanges(settings.disableTimeRanges);
|
|
575
|
+
return settings;
|
|
576
|
+
}
|
|
577
|
+
}, {
|
|
578
|
+
key: "_parseDisableTimeRanges",
|
|
579
|
+
value: function _parseDisableTimeRanges(disableTimeRanges) {
|
|
580
|
+
if (!disableTimeRanges || disableTimeRanges.length == 0) {
|
|
581
|
+
return [];
|
|
582
|
+
} // convert string times to integers
|
|
558
583
|
|
|
559
584
|
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
585
|
+
for (var i in disableTimeRanges) {
|
|
586
|
+
disableTimeRanges[i] = [this.anytime2int(disableTimeRanges[i][0]), this.anytime2int(disableTimeRanges[i][1])];
|
|
587
|
+
} // sort by starting time
|
|
563
588
|
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
589
|
+
|
|
590
|
+
disableTimeRanges = disableTimeRanges.sort(function (a, b) {
|
|
591
|
+
return a[0] - b[0];
|
|
592
|
+
}); // merge any overlapping ranges
|
|
593
|
+
|
|
594
|
+
for (var i = disableTimeRanges.length - 1; i > 0; i--) {
|
|
595
|
+
if (disableTimeRanges[i][0] <= disableTimeRanges[i - 1][1]) {
|
|
596
|
+
disableTimeRanges[i - 1] = [Math.min(disableTimeRanges[i][0], disableTimeRanges[i - 1][0]), Math.max(disableTimeRanges[i][1], disableTimeRanges[i - 1][1])];
|
|
597
|
+
disableTimeRanges.splice(i, 1);
|
|
569
598
|
}
|
|
570
599
|
}
|
|
571
600
|
|
|
572
|
-
return
|
|
601
|
+
return disableTimeRanges;
|
|
573
602
|
}
|
|
574
603
|
/*
|
|
575
604
|
* Filter freeform input
|
|
@@ -624,6 +653,7 @@
|
|
|
624
653
|
}, {
|
|
625
654
|
key: "_roundAndFormatTime",
|
|
626
655
|
value: function _roundAndFormatTime(seconds) {
|
|
656
|
+
// console.log('_roundAndFormatTime')
|
|
627
657
|
seconds = this.settings.roundingFunction(seconds, this.settings);
|
|
628
658
|
|
|
629
659
|
if (seconds !== null) {
|
|
@@ -1001,6 +1031,241 @@
|
|
|
1001
1031
|
window.CustomEvent = CustomEvent;
|
|
1002
1032
|
})();
|
|
1003
1033
|
|
|
1034
|
+
function _getNoneOptionItems(settings) {
|
|
1035
|
+
if (!settings.noneOption) {
|
|
1036
|
+
return [];
|
|
1037
|
+
}
|
|
1038
|
+
|
|
1039
|
+
var noneOptions = _getNoneOptionItemsHelper(settings.noneOption);
|
|
1040
|
+
|
|
1041
|
+
if (Array.isArray(settings.noneOption)) {
|
|
1042
|
+
return noneOptions;
|
|
1043
|
+
} else {
|
|
1044
|
+
return [noneOptions];
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
function _getNoneOptionItemsHelper(noneOption) {
|
|
1049
|
+
if (Array.isArray(noneOption)) {
|
|
1050
|
+
return noneOption.map(_getNoneOptionItemsHelper);
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
if (noneOption === true) {
|
|
1054
|
+
return {
|
|
1055
|
+
'label': 'None',
|
|
1056
|
+
'value': ''
|
|
1057
|
+
};
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
if (_typeof(noneOption) === 'object') {
|
|
1061
|
+
return noneOption;
|
|
1062
|
+
}
|
|
1063
|
+
|
|
1064
|
+
return {
|
|
1065
|
+
'label': noneOption,
|
|
1066
|
+
'value': ''
|
|
1067
|
+
};
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1070
|
+
function _getDropdownTimes(tp) {
|
|
1071
|
+
var _settings$minTime, _settings$maxTime;
|
|
1072
|
+
|
|
1073
|
+
var settings = tp.settings;
|
|
1074
|
+
var start = (_settings$minTime = settings.minTime()) !== null && _settings$minTime !== void 0 ? _settings$minTime : 0;
|
|
1075
|
+
var end = (_settings$maxTime = settings.maxTime()) !== null && _settings$maxTime !== void 0 ? _settings$maxTime : start + ONE_DAY - 1;
|
|
1076
|
+
|
|
1077
|
+
if (end < start) {
|
|
1078
|
+
// make sure the end time is greater than start time, otherwise there will be no list to show
|
|
1079
|
+
end += ONE_DAY;
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
if (end === ONE_DAY - 1 && typeof settings.timeFormat === 'string' && settings.show2400) {
|
|
1083
|
+
// show a 24:00 option when using military time
|
|
1084
|
+
end = ONE_DAY;
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1087
|
+
var output = [];
|
|
1088
|
+
|
|
1089
|
+
for (var i = start, j = 0; i <= end; j++, i += settings.step(j) * 60) {
|
|
1090
|
+
var timeInt = i;
|
|
1091
|
+
|
|
1092
|
+
var timeString = tp._int2time(timeInt);
|
|
1093
|
+
|
|
1094
|
+
var className = timeInt % ONE_DAY < ONE_DAY / 2 ? 'ui-timepicker-am' : 'ui-timepicker-pm';
|
|
1095
|
+
var item = {
|
|
1096
|
+
'label': timeString,
|
|
1097
|
+
'value': moduloSeconds(timeInt, settings),
|
|
1098
|
+
'className': className
|
|
1099
|
+
};
|
|
1100
|
+
|
|
1101
|
+
if ((settings.minTime() !== null || settings.durationTime() !== null) && settings.showDuration) {
|
|
1102
|
+
var _settings$durationTim;
|
|
1103
|
+
|
|
1104
|
+
var durStart = (_settings$durationTim = settings.durationTime()) !== null && _settings$durationTim !== void 0 ? _settings$durationTim : settings.minTime();
|
|
1105
|
+
|
|
1106
|
+
var durationString = tp._int2duration(i - durStart, settings.step());
|
|
1107
|
+
|
|
1108
|
+
item.duration = durationString;
|
|
1109
|
+
}
|
|
1110
|
+
|
|
1111
|
+
var _iterator = _createForOfIteratorHelper(settings.disableTimeRanges),
|
|
1112
|
+
_step;
|
|
1113
|
+
|
|
1114
|
+
try {
|
|
1115
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
1116
|
+
var range = _step.value;
|
|
1117
|
+
|
|
1118
|
+
if (timeInt % ONE_DAY >= range[0] && timeInt % ONE_DAY < range[1]) {
|
|
1119
|
+
item.disabled = true;
|
|
1120
|
+
break;
|
|
1121
|
+
}
|
|
1122
|
+
}
|
|
1123
|
+
} catch (err) {
|
|
1124
|
+
_iterator.e(err);
|
|
1125
|
+
} finally {
|
|
1126
|
+
_iterator.f();
|
|
1127
|
+
}
|
|
1128
|
+
|
|
1129
|
+
output.push(item);
|
|
1130
|
+
}
|
|
1131
|
+
|
|
1132
|
+
return output;
|
|
1133
|
+
}
|
|
1134
|
+
|
|
1135
|
+
function _renderSelectItem(item) {
|
|
1136
|
+
var el = document.createElement('option');
|
|
1137
|
+
el.value = item.label;
|
|
1138
|
+
|
|
1139
|
+
if (item.duration) {
|
|
1140
|
+
el.appendChild(document.createTextNode(item.label + ' (' + item.duration + ')'));
|
|
1141
|
+
} else {
|
|
1142
|
+
el.appendChild(document.createTextNode(item.label));
|
|
1143
|
+
}
|
|
1144
|
+
|
|
1145
|
+
if (item.disabled) {
|
|
1146
|
+
el.disabled = true;
|
|
1147
|
+
}
|
|
1148
|
+
|
|
1149
|
+
return el;
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
function _renderStandardItem(item) {
|
|
1153
|
+
var el = document.createElement('li');
|
|
1154
|
+
el.dataset['time'] = item.value;
|
|
1155
|
+
|
|
1156
|
+
if (item.className) {
|
|
1157
|
+
el.classList.add(item.className);
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1160
|
+
el.className = item.className;
|
|
1161
|
+
el.appendChild(document.createTextNode(item.label));
|
|
1162
|
+
|
|
1163
|
+
if (item.duration) {
|
|
1164
|
+
var durationEl = document.createElement('span');
|
|
1165
|
+
durationEl.appendChild(document.createTextNode('(' + item.duration + ')'));
|
|
1166
|
+
durationEl.classList.add('ui-timepicker-duration');
|
|
1167
|
+
el.appendChild(durationEl);
|
|
1168
|
+
}
|
|
1169
|
+
|
|
1170
|
+
if (item.disabled) {
|
|
1171
|
+
el.classList.add('ui-timepicker-disabled');
|
|
1172
|
+
}
|
|
1173
|
+
|
|
1174
|
+
return el;
|
|
1175
|
+
}
|
|
1176
|
+
|
|
1177
|
+
function _renderStandardList(items) {
|
|
1178
|
+
var list = document.createElement('ul');
|
|
1179
|
+
list.classList.add('ui-timepicker-list');
|
|
1180
|
+
|
|
1181
|
+
var _iterator2 = _createForOfIteratorHelper(items),
|
|
1182
|
+
_step2;
|
|
1183
|
+
|
|
1184
|
+
try {
|
|
1185
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
1186
|
+
var item = _step2.value;
|
|
1187
|
+
|
|
1188
|
+
var itemEl = _renderStandardItem(item);
|
|
1189
|
+
|
|
1190
|
+
list.appendChild(itemEl);
|
|
1191
|
+
}
|
|
1192
|
+
} catch (err) {
|
|
1193
|
+
_iterator2.e(err);
|
|
1194
|
+
} finally {
|
|
1195
|
+
_iterator2.f();
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1198
|
+
var wrapper = document.createElement('div');
|
|
1199
|
+
wrapper.classList.add('ui-timepicker-wrapper');
|
|
1200
|
+
wrapper.tabIndex = -1;
|
|
1201
|
+
wrapper.style.display = 'none';
|
|
1202
|
+
wrapper.style.position = 'absolute';
|
|
1203
|
+
wrapper.appendChild(list);
|
|
1204
|
+
return wrapper;
|
|
1205
|
+
}
|
|
1206
|
+
|
|
1207
|
+
function _renderSelectList(items, targetName) {
|
|
1208
|
+
var el = document.createElement('select');
|
|
1209
|
+
el.classList.add('ui-timepicker-select');
|
|
1210
|
+
|
|
1211
|
+
if (targetName) {
|
|
1212
|
+
el.name = 'ui-timepicker-' + targetName;
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
var _iterator3 = _createForOfIteratorHelper(items),
|
|
1216
|
+
_step3;
|
|
1217
|
+
|
|
1218
|
+
try {
|
|
1219
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
1220
|
+
var item = _step3.value;
|
|
1221
|
+
|
|
1222
|
+
var itemEl = _renderSelectItem(item);
|
|
1223
|
+
|
|
1224
|
+
el.appendChild(itemEl);
|
|
1225
|
+
}
|
|
1226
|
+
} catch (err) {
|
|
1227
|
+
_iterator3.e(err);
|
|
1228
|
+
} finally {
|
|
1229
|
+
_iterator3.f();
|
|
1230
|
+
}
|
|
1231
|
+
|
|
1232
|
+
return el;
|
|
1233
|
+
}
|
|
1234
|
+
|
|
1235
|
+
function renderHtml(tp) {
|
|
1236
|
+
var items = [].concat(_getNoneOptionItems(tp.settings), _getDropdownTimes(tp));
|
|
1237
|
+
var el;
|
|
1238
|
+
|
|
1239
|
+
if (tp.settings.useSelect) {
|
|
1240
|
+
el = _renderSelectList(items, tp.targetEl.name);
|
|
1241
|
+
} else {
|
|
1242
|
+
el = _renderStandardList(items);
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1245
|
+
if (tp.settings.className) {
|
|
1246
|
+
var _iterator4 = _createForOfIteratorHelper(tp.settings.className.split(' ')),
|
|
1247
|
+
_step4;
|
|
1248
|
+
|
|
1249
|
+
try {
|
|
1250
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
1251
|
+
var token = _step4.value;
|
|
1252
|
+
el.classList.add(token);
|
|
1253
|
+
}
|
|
1254
|
+
} catch (err) {
|
|
1255
|
+
_iterator4.e(err);
|
|
1256
|
+
} finally {
|
|
1257
|
+
_iterator4.f();
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1261
|
+
if (tp.settings.showDuration && (tp.settings.minTime !== null || tp.settings.durationTime !== null)) {
|
|
1262
|
+
el.classList.add("ui-timepicker-with-duration");
|
|
1263
|
+
el.classList.add("ui-timepicker-step-" + tp.settings.step());
|
|
1264
|
+
}
|
|
1265
|
+
|
|
1266
|
+
return el;
|
|
1267
|
+
}
|
|
1268
|
+
|
|
1004
1269
|
(function (factory) {
|
|
1005
1270
|
if ((typeof exports === "undefined" ? "undefined" : _typeof(exports)) === "object" && exports && (typeof module === "undefined" ? "undefined" : _typeof(module)) === "object" && module && module.exports === exports) {
|
|
1006
1271
|
// Browserify. Attach to jQuery module.
|
|
@@ -1313,8 +1578,6 @@
|
|
|
1313
1578
|
}; // private methods
|
|
1314
1579
|
|
|
1315
1580
|
function _render(self) {
|
|
1316
|
-
var _settings$durationTim, _settings$minTime, _settings$maxTime;
|
|
1317
|
-
|
|
1318
1581
|
var tp = self[0].timepickerObj;
|
|
1319
1582
|
var list = tp.list;
|
|
1320
1583
|
var settings = tp.settings;
|
|
@@ -1324,131 +1587,12 @@
|
|
|
1324
1587
|
tp.list = null;
|
|
1325
1588
|
}
|
|
1326
1589
|
|
|
1327
|
-
|
|
1328
|
-
list = $("<select></select>", {
|
|
1329
|
-
"class": "ui-timepicker-select"
|
|
1330
|
-
});
|
|
1331
|
-
|
|
1332
|
-
if (self.attr("name")) {
|
|
1333
|
-
list.attr("name", "ui-timepicker-" + self.attr("name"));
|
|
1334
|
-
}
|
|
1590
|
+
var wrapped_list = $(renderHtml(tp));
|
|
1335
1591
|
|
|
1336
|
-
|
|
1592
|
+
if (settings.useSelect) {
|
|
1593
|
+
list = wrapped_list;
|
|
1337
1594
|
} 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);
|
|
1595
|
+
list = wrapped_list.children('ul');
|
|
1452
1596
|
}
|
|
1453
1597
|
|
|
1454
1598
|
wrapped_list.data("timepicker-input", self);
|
|
@@ -1529,8 +1673,8 @@
|
|
|
1529
1673
|
}
|
|
1530
1674
|
|
|
1531
1675
|
Timepicker.hideAll();
|
|
1532
|
-
$(document).
|
|
1533
|
-
$(window).
|
|
1676
|
+
$(document).off(".ui-timepicker");
|
|
1677
|
+
$(window).off(".ui-timepicker");
|
|
1534
1678
|
}
|
|
1535
1679
|
/*
|
|
1536
1680
|
* 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,closeOnWindowScroll:!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"],showOnFocus:!0,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),!1===e.showOnFocus&&-1!=e.showOn.indexOf("focus")&&e.showOn.splice(e.showOn.indexOf("focus"),1),"function"!=typeof e.step){var t=e.step;e.step=function(){return t}}return e.disableTimeRanges=this._parseDisableTimeRanges(e.disableTimeRanges),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(),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.closeOnWindowScroll&&t(document).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)}();
|