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 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
- - **closeOnWindowScroll**
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**
@@ -1,7 +1,7 @@
1
1
  .ui-timepicker-wrapper {
2
2
  overflow-y: auto;
3
3
  max-height: 150px;
4
- width: 6.5em;
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-with-duration {
16
- width: 13em;
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 {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * jquery-timepicker v1.13.18 - A jQuery timepicker plugin inspired by Google Calendar. It supports both mouse and keyboard navigation.
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
- } else if (typeof settings.step !== "number") {
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
- var start = (_settings$minTime = settings.minTime()) !== null && _settings$minTime !== void 0 ? _settings$minTime : 0; // adjust offset by start mod step so that the offset is aligned not to 00:00 but to the start
177
+ var i = 0;
178
+ var nextVal = 0;
184
179
 
185
- offset -= start % (settings.step * 60);
180
+ while (nextVal < seconds) {
181
+ i++;
182
+ nextVal += settings.step(i) * 60;
183
+ }
186
184
 
187
- if (offset >= settings.step * 30) {
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
- return _moduloSeconds(seconds, settings);
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 _moduloSeconds(seconds, settings) {
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
- closeOnWindowScroll: false,
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 hours = hour;
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 (settings.showOnFocus === false && settings.showOn.indexOf("focus") != -1) {
546
- settings.showOn.splice(settings.showOn.indexOf("focus"), 1);
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 (!settings.disableTimeRanges) {
550
- settings.disableTimeRanges = [];
576
+ if (settings.closeOnScroll === true) {
577
+ settings.closeOnScroll = window.document;
551
578
  }
552
579
 
553
- if (settings.disableTimeRanges.length > 0) {
554
- // convert string times to integers
555
- for (var i in settings.disableTimeRanges) {
556
- settings.disableTimeRanges[i] = [this.anytime2int(settings.disableTimeRanges[i][0]), this.anytime2int(settings.disableTimeRanges[i][1])];
557
- } // sort by starting time
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
- settings.disableTimeRanges = settings.disableTimeRanges.sort(function (a, b) {
561
- return a[0] - b[0];
562
- }); // merge any overlapping ranges
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
- for (var i = settings.disableTimeRanges.length - 1; i > 0; i--) {
565
- if (settings.disableTimeRanges[i][0] <= settings.disableTimeRanges[i - 1][1]) {
566
- settings.disableTimeRanges[i - 1] = [Math.min(settings.disableTimeRanges[i][0], settings.disableTimeRanges[i - 1][0]), Math.max(settings.disableTimeRanges[i][1], settings.disableTimeRanges[i - 1][1])];
567
- settings.disableTimeRanges.splice(i, 1);
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 settings;
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.closeOnWindowScroll) {
1176
- $(document).on("scroll.ui-timepicker", _closeHandler);
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
- if (settings.useSelect) {
1328
- list = $("<select></select>", {
1329
- "class": "ui-timepicker-select"
1330
- });
1599
+ var wrapped_list = $(renderHtml(tp));
1331
1600
 
1332
- if (self.attr("name")) {
1333
- list.attr("name", "ui-timepicker-" + self.attr("name"));
1334
- }
1335
-
1336
- var wrapped_list = list;
1601
+ if (settings.useSelect) {
1602
+ list = wrapped_list;
1337
1603
  } else {
1338
- list = $("<ul></ul>", {
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).unbind(".ui-timepicker");
1533
- $(window).unbind(".ui-timepicker");
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: 6.5em;
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-with-duration {
16
- width: 13em;
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 {
@@ -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)}();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "timepicker",
3
- "version": "1.13.18",
3
+ "version": "1.14.0",
4
4
  "title": "jquery-timepicker",
5
5
  "author": {
6
6
  "name": "Jon Thornton",