datatables.net-datetime 1.5.3 → 1.5.5

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.
@@ -279,7 +279,9 @@ div.dt-datetime-error {
279
279
  }
280
280
 
281
281
 
282
- html.dark {
282
+ html.dark,
283
+ :root[data-theme="dark"],
284
+ :root[data-bs-theme="dark"] {
283
285
  input.dt-datetime {
284
286
  color-scheme: dark;
285
287
  }
@@ -231,62 +231,100 @@ div.dt-datetime-error {
231
231
  color: #b11f1f;
232
232
  }
233
233
 
234
- html.dark input.dt-datetime {
234
+ html.dark input.dt-datetime,
235
+ :root[data-theme=dark] input.dt-datetime,
236
+ :root[data-bs-theme=dark] input.dt-datetime {
235
237
  color-scheme: dark;
236
238
  }
237
- html.dark div.dt-datetime {
239
+ html.dark div.dt-datetime,
240
+ :root[data-theme=dark] div.dt-datetime,
241
+ :root[data-bs-theme=dark] div.dt-datetime {
238
242
  border: 1px solid #595b5e;
239
243
  background-color: #212529;
240
244
  box-shadow: 3px 4px 10px 1px rgba(0, 0, 0, 0.8);
241
245
  }
242
- html.dark div.dt-datetime table th {
246
+ html.dark div.dt-datetime table th,
247
+ :root[data-theme=dark] div.dt-datetime table th,
248
+ :root[data-bs-theme=dark] div.dt-datetime table th {
243
249
  color: #ccc;
244
250
  }
245
- html.dark div.dt-datetime table td {
251
+ html.dark div.dt-datetime table td,
252
+ :root[data-theme=dark] div.dt-datetime table td,
253
+ :root[data-bs-theme=dark] div.dt-datetime table td {
246
254
  color: #eee;
247
255
  }
248
- html.dark div.dt-datetime table td.selectable {
256
+ html.dark div.dt-datetime table td.selectable,
257
+ :root[data-theme=dark] div.dt-datetime table td.selectable,
258
+ :root[data-bs-theme=dark] div.dt-datetime table td.selectable {
249
259
  background: #373c41;
250
260
  }
251
- html.dark div.dt-datetime table td.selectable.disabled {
261
+ html.dark div.dt-datetime table td.selectable.disabled,
262
+ :root[data-theme=dark] div.dt-datetime table td.selectable.disabled,
263
+ :root[data-bs-theme=dark] div.dt-datetime table td.selectable.disabled {
252
264
  color: #aaa;
253
265
  background: #171b1f;
254
266
  }
255
- html.dark div.dt-datetime table td.selectable.disabled button:hover {
267
+ html.dark div.dt-datetime table td.selectable.disabled button:hover,
268
+ :root[data-theme=dark] div.dt-datetime table td.selectable.disabled button:hover,
269
+ :root[data-bs-theme=dark] div.dt-datetime table td.selectable.disabled button:hover {
256
270
  color: #aaa;
257
271
  background: #171b1f;
258
272
  }
259
- html.dark div.dt-datetime table td.selectable.now {
273
+ html.dark div.dt-datetime table td.selectable.now,
274
+ :root[data-theme=dark] div.dt-datetime table td.selectable.now,
275
+ :root[data-bs-theme=dark] div.dt-datetime table td.selectable.now {
260
276
  background: #4b5055;
261
277
  }
262
- html.dark div.dt-datetime table td.selectable.selected button {
278
+ html.dark div.dt-datetime table td.selectable.selected button,
279
+ :root[data-theme=dark] div.dt-datetime table td.selectable.selected button,
280
+ :root[data-bs-theme=dark] div.dt-datetime table td.selectable.selected button {
263
281
  background: #6ea8fe;
264
282
  color: black;
265
283
  }
266
- html.dark div.dt-datetime table td.selectable button:hover {
284
+ html.dark div.dt-datetime table td.selectable button:hover,
285
+ :root[data-theme=dark] div.dt-datetime table td.selectable button:hover,
286
+ :root[data-bs-theme=dark] div.dt-datetime table td.selectable button:hover {
267
287
  background: #ff8000;
268
288
  color: black;
269
289
  }
270
- html.dark div.dt-datetime div.dt-datetime-label:hover {
290
+ html.dark div.dt-datetime div.dt-datetime-label:hover,
291
+ :root[data-theme=dark] div.dt-datetime div.dt-datetime-label:hover,
292
+ :root[data-bs-theme=dark] div.dt-datetime div.dt-datetime-label:hover {
271
293
  border: 1px solid transparent;
272
294
  background-color: rgba(255, 255, 255, 0.1);
273
295
  }
274
296
  html.dark div.dt-datetime div.dt-datetime-iconLeft:hover,
275
297
  html.dark div.dt-datetime div.dt-datetime-iconRight:hover,
276
298
  html.dark div.dt-datetime div.dt-datetime-iconUp:hover,
277
- html.dark div.dt-datetime div.dt-datetime-iconDown:hover {
299
+ html.dark div.dt-datetime div.dt-datetime-iconDown:hover,
300
+ :root[data-theme=dark] div.dt-datetime div.dt-datetime-iconLeft:hover,
301
+ :root[data-theme=dark] div.dt-datetime div.dt-datetime-iconRight:hover,
302
+ :root[data-theme=dark] div.dt-datetime div.dt-datetime-iconUp:hover,
303
+ :root[data-theme=dark] div.dt-datetime div.dt-datetime-iconDown:hover,
304
+ :root[data-bs-theme=dark] div.dt-datetime div.dt-datetime-iconLeft:hover,
305
+ :root[data-bs-theme=dark] div.dt-datetime div.dt-datetime-iconRight:hover,
306
+ :root[data-bs-theme=dark] div.dt-datetime div.dt-datetime-iconUp:hover,
307
+ :root[data-bs-theme=dark] div.dt-datetime div.dt-datetime-iconDown:hover {
278
308
  border: 1px solid transparent;
279
309
  background-color: rgba(255, 255, 255, 0.1);
280
310
  }
281
- html.dark div.dt-datetime div.dt-datetime-iconLeft:after {
311
+ html.dark div.dt-datetime div.dt-datetime-iconLeft:after,
312
+ :root[data-theme=dark] div.dt-datetime div.dt-datetime-iconLeft:after,
313
+ :root[data-bs-theme=dark] div.dt-datetime div.dt-datetime-iconLeft:after {
282
314
  border-right-color: white;
283
315
  }
284
- html.dark div.dt-datetime div.dt-datetime-iconRight:after {
316
+ html.dark div.dt-datetime div.dt-datetime-iconRight:after,
317
+ :root[data-theme=dark] div.dt-datetime div.dt-datetime-iconRight:after,
318
+ :root[data-bs-theme=dark] div.dt-datetime div.dt-datetime-iconRight:after {
285
319
  border-left-color: white;
286
320
  }
287
- html.dark div.dt-datetime select {
321
+ html.dark div.dt-datetime select,
322
+ :root[data-theme=dark] div.dt-datetime select,
323
+ :root[data-bs-theme=dark] div.dt-datetime select {
288
324
  color-scheme: dark;
289
325
  }
290
- html.dark div.dt-datetime-error {
326
+ html.dark div.dt-datetime-error,
327
+ :root[data-theme=dark] div.dt-datetime-error,
328
+ :root[data-bs-theme=dark] div.dt-datetime-error {
291
329
  color: #b11f1f;
292
330
  }
@@ -1,4 +1,4 @@
1
- /*! DateTime picker for DataTables.net v1.5.3
1
+ /*! DateTime picker for DataTables.net v1.5.5
2
2
  *
3
3
  * © SpryMedia Ltd, all rights reserved.
4
4
  * License: MIT datatables.net/license/mit
@@ -48,7 +48,7 @@
48
48
 
49
49
  /**
50
50
  * @summary DateTime picker for DataTables.net
51
- * @version 1.5.3
51
+ * @version 1.5.5
52
52
  * @file dataTables.dateTime.js
53
53
  * @author SpryMedia Ltd
54
54
  * @contact www.datatables.net/contact
@@ -183,7 +183,10 @@ var DateTime = function (input, opts) {
183
183
  time: this.c.format.match(/[Hhm]|LT|LTS/) !== null,
184
184
  seconds: this.c.format.indexOf('s') !== -1,
185
185
  hours12: this.c.format.match(/[haA]/) !== null
186
- }
186
+ },
187
+
188
+ /** Timeout when showing the control to listen for a blur */
189
+ showTo: null
187
190
  };
188
191
 
189
192
  this.dom.container
@@ -210,6 +213,7 @@ $.extend(DateTime.prototype, {
210
213
  * Destroy the control
211
214
  */
212
215
  destroy: function () {
216
+ clearTimeout(this.s.showTo);
213
217
  this._hide(true);
214
218
  this.dom.container.off().empty();
215
219
  this.dom.input
@@ -303,6 +307,8 @@ $.extend(DateTime.prototype, {
303
307
  return this.s.d;
304
308
  }
305
309
 
310
+ var oldVal = this.s.d;
311
+
306
312
  if (set instanceof Date) {
307
313
  this.s.d = this._dateToUtc(set);
308
314
  }
@@ -320,7 +326,12 @@ $.extend(DateTime.prototype, {
320
326
 
321
327
  if (write || write === undefined) {
322
328
  if (this.s.d) {
323
- this._writeOutput();
329
+ this._writeOutput(
330
+ false,
331
+ (oldVal === null && this.s.d !== null) ||
332
+ (oldVal !== null && this.s.d === null) ||
333
+ oldVal.toString() !== this.s.d.toString()
334
+ );
324
335
  }
325
336
  else {
326
337
  // The input value was not valid...
@@ -863,7 +874,7 @@ $.extend(DateTime.prototype, {
863
874
  $(document).off('keydown.' + namespace);
864
875
  $('div.dataTables_scrollBody').off('scroll.' + namespace);
865
876
  $('div.DTE_Body_Content').off('scroll.' + namespace);
866
- $('body').off('click.' + namespace);
877
+ $(document).off('click.' + namespace);
867
878
  $(this.dom.input[0].offsetParent).off('.' + namespace);
868
879
  },
869
880
 
@@ -1401,7 +1412,7 @@ $.extend(DateTime.prototype, {
1401
1412
 
1402
1413
  // Correct to the right
1403
1414
  if (calWidth + offset.left > $(window).width()) {
1404
- var newLeft = $(window).width() - calWidth;
1415
+ var newLeft = $(window).width() - calWidth - 5;
1405
1416
 
1406
1417
  // Account for elements which are inside a position absolute element
1407
1418
  if (this.c.attachTo === 'input') {
@@ -1559,11 +1570,34 @@ $.extend(DateTime.prototype, {
1559
1570
  }
1560
1571
  });
1561
1572
 
1573
+ clearTimeout(this.s.showTo);
1574
+
1575
+ // We can't use blur to hide, as we want to keep the picker open while
1576
+ // to let the user select from it. But if focus is moved outside of of
1577
+ // the picker, then we auto hide.
1578
+ this.dom.input.on('blur', function (e) {
1579
+ that.s.showTo = setTimeout(function () {
1580
+ let name = document.activeElement.tagName.toLowerCase();
1581
+
1582
+ if (document.activeElement === that.dom.input[0]) {
1583
+ return;
1584
+ }
1585
+
1586
+ if (that.dom.container.find(document.activeElement).length) {
1587
+ return;
1588
+ }
1589
+
1590
+ if (['input', 'select', 'button'].includes(name)) {
1591
+ that.hide();
1592
+ }
1593
+ }, 10);
1594
+ });
1595
+
1562
1596
  // Hide if clicking outside of the widget - but in a different click
1563
1597
  // event from the one that was used to trigger the show (bubble and
1564
1598
  // inline)
1565
1599
  setTimeout(function () {
1566
- $('body').on('click.' + namespace, function (e) {
1600
+ $(document).on('click.' + namespace, function (e) {
1567
1601
  var parents = $(e.target).parents();
1568
1602
 
1569
1603
  if (!parents.filter(that.dom.container).length && e.target !== that.dom.input[0]) {
@@ -1579,7 +1613,7 @@ $.extend(DateTime.prototype, {
1579
1613
  *
1580
1614
  * @private
1581
1615
  */
1582
- _writeOutput: function (focus) {
1616
+ _writeOutput: function (focus, change) {
1583
1617
  var date = this.s.d;
1584
1618
  var out = '';
1585
1619
  var input = this.dom.input;
@@ -1590,10 +1624,12 @@ $.extend(DateTime.prototype, {
1590
1624
 
1591
1625
  input.val(out);
1592
1626
 
1593
- // Create a DOM synthetic event. Can't use $().trigger() as
1594
- // that doesn't actually trigger non-jQuery event listeners
1595
- var event = new Event('change', { bubbles: true });
1596
- input[0].dispatchEvent(event);
1627
+ if (change === undefined || change) {
1628
+ // Create a DOM synthetic event. Can't use $().trigger() as
1629
+ // that doesn't actually trigger non-jQuery event listeners
1630
+ var event = new Event('change', { bubbles: true });
1631
+ input[0].dispatchEvent(event);
1632
+ }
1597
1633
 
1598
1634
  if (input.attr('type') === 'hidden') {
1599
1635
  this.val(out, false);
@@ -1690,7 +1726,7 @@ DateTime.defaults = {
1690
1726
  yearRange: 25
1691
1727
  };
1692
1728
 
1693
- DateTime.version = '1.5.3';
1729
+ DateTime.version = '1.5.5';
1694
1730
 
1695
1731
  /**
1696
1732
  * CommonJS factory function pass through. Matches DataTables.
@@ -1 +1 @@
1
- div.dt-datetime{position:absolute;background-color:white;z-index:2050;border:1px solid #ccc;box-shadow:0 5px 15px -5px rgba(0, 0, 0, 0.5);padding:6px 20px;width:275px;border-radius:5px}div.dt-datetime.inline{position:relative;box-shadow:none}div.dt-datetime div.dt-datetime-title{text-align:center;padding:5px 0px 3px}div.dt-datetime div.dt-datetime-buttons{text-align:center}div.dt-datetime div.dt-datetime-buttons a{display:inline-block;padding:0 .5em .5em .5em;margin:0;font-size:.9em}div.dt-datetime div.dt-datetime-buttons a:hover{text-decoration:underline}div.dt-datetime table{border-spacing:0;margin:12px 0;width:100%}div.dt-datetime table.dt-datetime-table-nospace{margin-top:-12px}div.dt-datetime table th{font-size:.8em;color:#777;font-weight:normal;width:14.285714286%;padding:0 0 4px 0;text-align:center}div.dt-datetime table td{font-size:.9em;color:#444;padding:0}div.dt-datetime table td.selectable{text-align:center;background:#f5f5f5}div.dt-datetime table td.selectable.disabled{color:#aaa;background:white}div.dt-datetime table td.selectable.disabled button:hover{color:#aaa;background:white}div.dt-datetime table td.selectable.now{background-color:#ddd}div.dt-datetime table td.selectable.now button{font-weight:bold}div.dt-datetime table td.selectable.selected button{background:#4e6ca3;color:white;border-radius:2px}div.dt-datetime table td.selectable button:hover{background:#ff8000;color:white;border-radius:2px}div.dt-datetime table td.dt-datetime-week{font-size:.7em}div.dt-datetime table button{width:100%;box-sizing:border-box;border:none;background:transparent;font-size:inherit;color:inherit;text-align:center;padding:4px 0;cursor:pointer;margin:0}div.dt-datetime table button span{display:inline-block;min-width:14px;text-align:right}div.dt-datetime table.weekNumber th{width:12.5%}div.dt-datetime div.dt-datetime-calendar table{margin-top:0}div.dt-datetime div.dt-datetime-label{position:relative;display:inline-block;height:30px;padding:5px 6px;border:1px solid transparent;box-sizing:border-box;cursor:pointer}div.dt-datetime div.dt-datetime-label:hover{border:1px solid #ddd;border-radius:2px;background-color:#f5f5f5}div.dt-datetime div.dt-datetime-label select{position:absolute;top:6px;left:0;cursor:pointer;opacity:0}div.dt-datetime.horizontal{width:550px}div.dt-datetime.horizontal div.dt-datetime-date,div.dt-datetime.horizontal div.dt-datetime-time{width:48%}div.dt-datetime.horizontal div.dt-datetime-time{margin-left:4%}div.dt-datetime div.dt-datetime-date{position:relative;float:left;width:100%}div.dt-datetime div.dt-datetime-time{position:relative;float:left;width:100%;text-align:center}div.dt-datetime div.dt-datetime-time>span{vertical-align:middle}div.dt-datetime div.dt-datetime-time th{text-align:left}div.dt-datetime div.dt-datetime-time div.dt-datetime-timeblock{display:inline-block;vertical-align:middle}div.dt-datetime div.dt-datetime-iconLeft,div.dt-datetime div.dt-datetime-iconRight{width:30px;height:30px;background-position:center;background-repeat:no-repeat;opacity:.3;overflow:hidden;box-sizing:border-box;border:1px solid transparent}div.dt-datetime div.dt-datetime-iconLeft:hover,div.dt-datetime div.dt-datetime-iconRight:hover{border:1px solid #ccc;border-radius:2px;background-color:#f0f0f0;opacity:.6}div.dt-datetime div.dt-datetime-iconLeft button,div.dt-datetime div.dt-datetime-iconRight button{border:none;background:transparent;text-indent:30px;height:100%;width:100%;cursor:pointer}div.dt-datetime div.dt-datetime-iconLeft{position:absolute;top:5px;left:5px}div.dt-datetime div.dt-datetime-iconLeft button{position:relative;z-index:1}div.dt-datetime div.dt-datetime-iconLeft:after{position:absolute;top:7px;left:10px;display:block;content:"";border-top:7px solid transparent;border-right:7px solid black;border-bottom:7px solid transparent}div.dt-datetime div.dt-datetime-iconRight{position:absolute;top:5px;right:5px}div.dt-datetime div.dt-datetime-iconRight button{position:relative;z-index:1}div.dt-datetime div.dt-datetime-iconRight:after{position:absolute;top:7px;left:12px;display:block;content:"";border-top:7px solid transparent;border-left:7px solid black;border-bottom:7px solid transparent}div.dt-datetime-error{clear:both;padding:0 1em;max-width:240px;font-size:11px;line-height:1.25em;text-align:center;color:#b11f1f}html.dark input.dt-datetime{color-scheme:dark}html.dark div.dt-datetime{border:1px solid #595b5e;background-color:#212529;box-shadow:3px 4px 10px 1px rgba(0, 0, 0, 0.8)}html.dark div.dt-datetime table th{color:#ccc}html.dark div.dt-datetime table td{color:#eee}html.dark div.dt-datetime table td.selectable{background:#373c41}html.dark div.dt-datetime table td.selectable.disabled{color:#aaa;background:#171b1f}html.dark div.dt-datetime table td.selectable.disabled button:hover{color:#aaa;background:#171b1f}html.dark div.dt-datetime table td.selectable.now{background:#4b5055}html.dark div.dt-datetime table td.selectable.selected button{background:#6ea8fe;color:black}html.dark div.dt-datetime table td.selectable button:hover{background:#ff8000;color:black}html.dark div.dt-datetime div.dt-datetime-label:hover{border:1px solid transparent;background-color:rgba(255, 255, 255, 0.1)}html.dark div.dt-datetime div.dt-datetime-iconLeft:hover,html.dark div.dt-datetime div.dt-datetime-iconRight:hover,html.dark div.dt-datetime div.dt-datetime-iconUp:hover,html.dark div.dt-datetime div.dt-datetime-iconDown:hover{border:1px solid transparent;background-color:rgba(255, 255, 255, 0.1)}html.dark div.dt-datetime div.dt-datetime-iconLeft:after{border-right-color:white}html.dark div.dt-datetime div.dt-datetime-iconRight:after{border-left-color:white}html.dark div.dt-datetime select{color-scheme:dark}html.dark div.dt-datetime-error{color:#b11f1f}
1
+ div.dt-datetime{position:absolute;background-color:white;z-index:2050;border:1px solid #ccc;box-shadow:0 5px 15px -5px rgba(0, 0, 0, 0.5);padding:6px 20px;width:275px;border-radius:5px}div.dt-datetime.inline{position:relative;box-shadow:none}div.dt-datetime div.dt-datetime-title{text-align:center;padding:5px 0px 3px}div.dt-datetime div.dt-datetime-buttons{text-align:center}div.dt-datetime div.dt-datetime-buttons a{display:inline-block;padding:0 .5em .5em .5em;margin:0;font-size:.9em}div.dt-datetime div.dt-datetime-buttons a:hover{text-decoration:underline}div.dt-datetime table{border-spacing:0;margin:12px 0;width:100%}div.dt-datetime table.dt-datetime-table-nospace{margin-top:-12px}div.dt-datetime table th{font-size:.8em;color:#777;font-weight:normal;width:14.285714286%;padding:0 0 4px 0;text-align:center}div.dt-datetime table td{font-size:.9em;color:#444;padding:0}div.dt-datetime table td.selectable{text-align:center;background:#f5f5f5}div.dt-datetime table td.selectable.disabled{color:#aaa;background:white}div.dt-datetime table td.selectable.disabled button:hover{color:#aaa;background:white}div.dt-datetime table td.selectable.now{background-color:#ddd}div.dt-datetime table td.selectable.now button{font-weight:bold}div.dt-datetime table td.selectable.selected button{background:#4e6ca3;color:white;border-radius:2px}div.dt-datetime table td.selectable button:hover{background:#ff8000;color:white;border-radius:2px}div.dt-datetime table td.dt-datetime-week{font-size:.7em}div.dt-datetime table button{width:100%;box-sizing:border-box;border:none;background:transparent;font-size:inherit;color:inherit;text-align:center;padding:4px 0;cursor:pointer;margin:0}div.dt-datetime table button span{display:inline-block;min-width:14px;text-align:right}div.dt-datetime table.weekNumber th{width:12.5%}div.dt-datetime div.dt-datetime-calendar table{margin-top:0}div.dt-datetime div.dt-datetime-label{position:relative;display:inline-block;height:30px;padding:5px 6px;border:1px solid transparent;box-sizing:border-box;cursor:pointer}div.dt-datetime div.dt-datetime-label:hover{border:1px solid #ddd;border-radius:2px;background-color:#f5f5f5}div.dt-datetime div.dt-datetime-label select{position:absolute;top:6px;left:0;cursor:pointer;opacity:0}div.dt-datetime.horizontal{width:550px}div.dt-datetime.horizontal div.dt-datetime-date,div.dt-datetime.horizontal div.dt-datetime-time{width:48%}div.dt-datetime.horizontal div.dt-datetime-time{margin-left:4%}div.dt-datetime div.dt-datetime-date{position:relative;float:left;width:100%}div.dt-datetime div.dt-datetime-time{position:relative;float:left;width:100%;text-align:center}div.dt-datetime div.dt-datetime-time>span{vertical-align:middle}div.dt-datetime div.dt-datetime-time th{text-align:left}div.dt-datetime div.dt-datetime-time div.dt-datetime-timeblock{display:inline-block;vertical-align:middle}div.dt-datetime div.dt-datetime-iconLeft,div.dt-datetime div.dt-datetime-iconRight{width:30px;height:30px;background-position:center;background-repeat:no-repeat;opacity:.3;overflow:hidden;box-sizing:border-box;border:1px solid transparent}div.dt-datetime div.dt-datetime-iconLeft:hover,div.dt-datetime div.dt-datetime-iconRight:hover{border:1px solid #ccc;border-radius:2px;background-color:#f0f0f0;opacity:.6}div.dt-datetime div.dt-datetime-iconLeft button,div.dt-datetime div.dt-datetime-iconRight button{border:none;background:transparent;text-indent:30px;height:100%;width:100%;cursor:pointer}div.dt-datetime div.dt-datetime-iconLeft{position:absolute;top:5px;left:5px}div.dt-datetime div.dt-datetime-iconLeft button{position:relative;z-index:1}div.dt-datetime div.dt-datetime-iconLeft:after{position:absolute;top:7px;left:10px;display:block;content:"";border-top:7px solid transparent;border-right:7px solid black;border-bottom:7px solid transparent}div.dt-datetime div.dt-datetime-iconRight{position:absolute;top:5px;right:5px}div.dt-datetime div.dt-datetime-iconRight button{position:relative;z-index:1}div.dt-datetime div.dt-datetime-iconRight:after{position:absolute;top:7px;left:12px;display:block;content:"";border-top:7px solid transparent;border-left:7px solid black;border-bottom:7px solid transparent}div.dt-datetime-error{clear:both;padding:0 1em;max-width:240px;font-size:11px;line-height:1.25em;text-align:center;color:#b11f1f}html.dark input.dt-datetime,:root[data-theme=dark] input.dt-datetime,:root[data-bs-theme=dark] input.dt-datetime{color-scheme:dark}html.dark div.dt-datetime,:root[data-theme=dark] div.dt-datetime,:root[data-bs-theme=dark] div.dt-datetime{border:1px solid #595b5e;background-color:#212529;box-shadow:3px 4px 10px 1px rgba(0, 0, 0, 0.8)}html.dark div.dt-datetime table th,:root[data-theme=dark] div.dt-datetime table th,:root[data-bs-theme=dark] div.dt-datetime table th{color:#ccc}html.dark div.dt-datetime table td,:root[data-theme=dark] div.dt-datetime table td,:root[data-bs-theme=dark] div.dt-datetime table td{color:#eee}html.dark div.dt-datetime table td.selectable,:root[data-theme=dark] div.dt-datetime table td.selectable,:root[data-bs-theme=dark] div.dt-datetime table td.selectable{background:#373c41}html.dark div.dt-datetime table td.selectable.disabled,:root[data-theme=dark] div.dt-datetime table td.selectable.disabled,:root[data-bs-theme=dark] div.dt-datetime table td.selectable.disabled{color:#aaa;background:#171b1f}html.dark div.dt-datetime table td.selectable.disabled button:hover,:root[data-theme=dark] div.dt-datetime table td.selectable.disabled button:hover,:root[data-bs-theme=dark] div.dt-datetime table td.selectable.disabled button:hover{color:#aaa;background:#171b1f}html.dark div.dt-datetime table td.selectable.now,:root[data-theme=dark] div.dt-datetime table td.selectable.now,:root[data-bs-theme=dark] div.dt-datetime table td.selectable.now{background:#4b5055}html.dark div.dt-datetime table td.selectable.selected button,:root[data-theme=dark] div.dt-datetime table td.selectable.selected button,:root[data-bs-theme=dark] div.dt-datetime table td.selectable.selected button{background:#6ea8fe;color:black}html.dark div.dt-datetime table td.selectable button:hover,:root[data-theme=dark] div.dt-datetime table td.selectable button:hover,:root[data-bs-theme=dark] div.dt-datetime table td.selectable button:hover{background:#ff8000;color:black}html.dark div.dt-datetime div.dt-datetime-label:hover,:root[data-theme=dark] div.dt-datetime div.dt-datetime-label:hover,:root[data-bs-theme=dark] div.dt-datetime div.dt-datetime-label:hover{border:1px solid transparent;background-color:rgba(255, 255, 255, 0.1)}html.dark div.dt-datetime div.dt-datetime-iconLeft:hover,html.dark div.dt-datetime div.dt-datetime-iconRight:hover,html.dark div.dt-datetime div.dt-datetime-iconUp:hover,html.dark div.dt-datetime div.dt-datetime-iconDown:hover,:root[data-theme=dark] div.dt-datetime div.dt-datetime-iconLeft:hover,:root[data-theme=dark] div.dt-datetime div.dt-datetime-iconRight:hover,:root[data-theme=dark] div.dt-datetime div.dt-datetime-iconUp:hover,:root[data-theme=dark] div.dt-datetime div.dt-datetime-iconDown:hover,:root[data-bs-theme=dark] div.dt-datetime div.dt-datetime-iconLeft:hover,:root[data-bs-theme=dark] div.dt-datetime div.dt-datetime-iconRight:hover,:root[data-bs-theme=dark] div.dt-datetime div.dt-datetime-iconUp:hover,:root[data-bs-theme=dark] div.dt-datetime div.dt-datetime-iconDown:hover{border:1px solid transparent;background-color:rgba(255, 255, 255, 0.1)}html.dark div.dt-datetime div.dt-datetime-iconLeft:after,:root[data-theme=dark] div.dt-datetime div.dt-datetime-iconLeft:after,:root[data-bs-theme=dark] div.dt-datetime div.dt-datetime-iconLeft:after{border-right-color:white}html.dark div.dt-datetime div.dt-datetime-iconRight:after,:root[data-theme=dark] div.dt-datetime div.dt-datetime-iconRight:after,:root[data-bs-theme=dark] div.dt-datetime div.dt-datetime-iconRight:after{border-left-color:white}html.dark div.dt-datetime select,:root[data-theme=dark] div.dt-datetime select,:root[data-bs-theme=dark] div.dt-datetime select{color-scheme:dark}html.dark div.dt-datetime-error,:root[data-theme=dark] div.dt-datetime-error,:root[data-bs-theme=dark] div.dt-datetime-error{color:#b11f1f}
@@ -1,6 +1,6 @@
1
- /*! DateTime picker for DataTables.net v1.5.3
1
+ /*! DateTime picker for DataTables.net v1.5.5
2
2
  *
3
3
  * © SpryMedia Ltd, all rights reserved.
4
4
  * License: MIT datatables.net/license/mit
5
5
  */
6
- !function(s){var i;"function"==typeof define&&define.amd?define(["jquery"],function(t){return s(t,window,document)}):"object"==typeof exports?(i=require("jquery"),"undefined"==typeof window?module.exports=function(t,e){return t=t||window,e=e||i(t),s(e,t,t.document)}:module.exports=s(i,window,window.document)):s(jQuery,window,document)}(function(g,o,i){"use strict";function n(t,e){if(n.factory(t,e))return n;if(void 0===a&&(a=o.moment||o.dayjs||o.luxon||null),this.c=g.extend(!0,{},n.defaults,e),e=this.c.classPrefix,!a&&"YYYY-MM-DD"!==this.c.format)throw"DateTime: Without momentjs, dayjs or luxon only the format 'YYYY-MM-DD' can be used";"string"==typeof this.c.minDate&&(this.c.minDate=new Date(this.c.minDate)),"string"==typeof this.c.maxDate&&(this.c.maxDate=new Date(this.c.maxDate));var s=g('<div class="'+e+'"><div class="'+e+'-date"><div class="'+e+'-title"><div class="'+e+'-iconLeft"><button type="button"></button></div><div class="'+e+'-iconRight"><button type="button"></button></div><div class="'+e+'-label"><span></span><select class="'+e+'-month"></select></div><div class="'+e+'-label"><span></span><select class="'+e+'-year"></select></div></div><div class="'+e+'-buttons"><a class="'+e+'-clear"></a><a class="'+e+'-today"></a></div><div class="'+e+'-calendar"></div></div><div class="'+e+'-time"><div class="'+e+'-hours"></div><div class="'+e+'-minutes"></div><div class="'+e+'-seconds"></div></div><div class="'+e+'-error"></div></div>');this.dom={container:s,date:s.find("."+e+"-date"),title:s.find("."+e+"-title"),calendar:s.find("."+e+"-calendar"),time:s.find("."+e+"-time"),error:s.find("."+e+"-error"),buttons:s.find("."+e+"-buttons"),clear:s.find("."+e+"-clear"),today:s.find("."+e+"-today"),previous:s.find("."+e+"-iconLeft"),next:s.find("."+e+"-iconRight"),input:g(t)},this.s={d:null,display:null,minutesRange:null,secondsRange:null,namespace:"dateime-"+n._instance++,parts:{date:null!==this.c.format.match(/[YMD]|L(?!T)|l/),time:null!==this.c.format.match(/[Hhm]|LT|LTS/),seconds:-1!==this.c.format.indexOf("s"),hours12:null!==this.c.format.match(/[haA]/)}},this.dom.container.append(this.dom.date).append(this.dom.time).append(this.dom.error),this.dom.date.append(this.dom.title).append(this.dom.buttons).append(this.dom.calendar),this.dom.input.addClass("dt-datetime"),this._constructor()}var a;return g.extend(n.prototype,{destroy:function(){this._hide(!0),this.dom.container.off().empty(),this.dom.input.removeClass("dt-datetime").removeAttr("autocomplete").off(".datetime")},display:function(t,e){return void 0!==t&&this.s.display.setUTCFullYear(t),void 0!==e&&this.s.display.setUTCMonth(e-1),void 0!==t||void 0!==e?(this._setTitle(),this._setCalander(),this):{month:this.s.display.getUTCMonth()+1,year:this.s.display.getUTCFullYear()}},errorMsg:function(t){var e=this.dom.error;return t?e.html(t):e.empty(),this},hide:function(){return this._hide(),this},max:function(t){return this.c.maxDate="string"==typeof t?new Date(t):t,this._optionsTitle(),this._setCalander(),this},min:function(t){return this.c.minDate="string"==typeof t?new Date(t):t,this._optionsTitle(),this._setCalander(),this},owns:function(t){return 0<g(t).parents().filter(this.dom.container).length},val:function(t,e){return void 0===t?this.s.d:(t instanceof Date?this.s.d=this._dateToUtc(t):null===t||""===t?this.s.d=null:"--now"===t?this.s.d=this._dateToUtc(new Date):"string"==typeof t&&(this.s.d=this._dateToUtc(this._convert(t,this.c.format,null))),!e&&void 0!==e||(this.s.d?this._writeOutput():this.dom.input.val(t)),this.s.display=this.s.d?new Date(this.s.d.toString()):new Date,this.s.display.setUTCDate(1),this._setTitle(),this._setCalander(),this._setTime(),this)},valFormat:function(t,e){return e?(this.val(this._convert(e,t,null)),this):this._convert(this.val(),null,t)},_constructor:function(){function a(){var t=o.dom.input.val();t!==e&&(o.c.onChange.call(o,t,o.s.d,o.dom.input),e=t)}var o=this,r=this.c.classPrefix,e=this.dom.input.val();this.s.parts.date||this.dom.date.css("display","none"),this.s.parts.time||this.dom.time.css("display","none"),this.s.parts.seconds||(this.dom.time.children("div."+r+"-seconds").remove(),this.dom.time.children("span").eq(1).remove()),this.c.buttons.clear||this.dom.clear.css("display","none"),this.c.buttons.today||this.dom.today.css("display","none"),this._optionsTitle(),g(i).on("i18n.dt",function(t,e){e.oLanguage.datetime&&(g.extend(!0,o.c.i18n,e.oLanguage.datetime),o._optionsTitle())}),"hidden"===this.dom.input.attr("type")&&(this.dom.container.addClass("inline"),this.c.attachTo="input",this.val(this.dom.input.val(),!1),this._show()),e&&this.val(e,!1),this.dom.input.attr("autocomplete","off").on("focus.datetime click.datetime",function(){o.dom.container.is(":visible")||o.dom.input.is(":disabled")||(o.val(o.dom.input.val(),!1),o._show())}).on("keyup.datetime",function(){o.dom.container.is(":visible")&&o.val(o.dom.input.val(),!1)}),this.dom.container[0].addEventListener("focusin",function(t){t.stopPropagation()}),this.dom.container.on("change","select",function(){var t,e,s=g(this),i=s.val();s.hasClass(r+"-month")?(o._correctMonth(o.s.display,i),o._setTitle(),o._setCalander()):s.hasClass(r+"-year")?(o.s.display.setUTCFullYear(i),o._setTitle(),o._setCalander()):s.hasClass(r+"-hours")||s.hasClass(r+"-ampm")?(o.s.parts.hours12?(t=+g(o.dom.container).find("."+r+"-hours").val(),e="pm"===g(o.dom.container).find("."+r+"-ampm").val(),o.s.d.setUTCHours(12!=t||e?e&&12!=t?12+t:t:0)):o.s.d.setUTCHours(i),o._setTime(),o._writeOutput(!0),a()):s.hasClass(r+"-minutes")?(o.s.d.setUTCMinutes(i),o._setTime(),o._writeOutput(!0),a()):s.hasClass(r+"-seconds")&&(o.s.d.setSeconds(i),o._setTime(),o._writeOutput(!0),a()),o.dom.input.focus(),o._position()}).on("click",function(t){var e=o.s.d,s="span"===t.target.nodeName.toLowerCase()?t.target.parentNode:t.target,i=s.nodeName.toLowerCase();if("select"!==i)if(t.stopPropagation(),"a"===i&&(t.preventDefault(),g(s).hasClass(r+"-clear")?(o.s.d=null,o.dom.input.val(""),o._writeOutput(),o._setCalander(),o._setTime(),a()):g(s).hasClass(r+"-today")&&(o.s.display=new Date,o._setTitle(),o._setCalander())),"button"===i){t=g(s),i=t.parent();if(i.hasClass("disabled")&&!i.hasClass("range"))t.blur();else if(i.hasClass(r+"-iconLeft"))o.s.display.setUTCMonth(o.s.display.getUTCMonth()-1),o._setTitle(),o._setCalander(),o.dom.input.focus();else if(i.hasClass(r+"-iconRight"))o._correctMonth(o.s.display,o.s.display.getUTCMonth()+1),o._setTitle(),o._setCalander(),o.dom.input.focus();else{if(t.parents("."+r+"-time").length){var s=t.data("value"),n=t.data("unit"),e=o._needValue();if("minutes"===n){if(i.hasClass("disabled")&&i.hasClass("range"))return o.s.minutesRange=s,void o._setTime();o.s.minutesRange=null}if("seconds"===n){if(i.hasClass("disabled")&&i.hasClass("range"))return o.s.secondsRange=s,void o._setTime();o.s.secondsRange=null}if("am"===s){if(!(12<=e.getUTCHours()))return;s=e.getUTCHours()-12}else if("pm"===s){if(!(e.getUTCHours()<12))return;s=e.getUTCHours()+12}e["hours"===n?"setUTCHours":"minutes"===n?"setUTCMinutes":"setSeconds"](s),o._setCalander(),o._setTime(),o._writeOutput(!0)}else(e=o._needValue()).setUTCDate(1),e.setUTCFullYear(t.data("year")),e.setUTCMonth(t.data("month")),e.setUTCDate(t.data("day")),o._writeOutput(!0),o.s.parts.time?(o._setCalander(),o._setTime()):setTimeout(function(){o._hide()},10);a()}}else o.dom.input.focus()})},_compareDates:function(t,e){return this._isLuxon()?a.DateTime.fromJSDate(t).toUTC().toISODate()===a.DateTime.fromJSDate(e).toUTC().toISODate():this._dateToUtcString(t)===this._dateToUtcString(e)},_convert:function(t,e,s){var i;return t&&(a?this._isLuxon()?(i=t instanceof Date?a.DateTime.fromJSDate(t).toUTC():a.DateTime.fromFormat(t,e)).isValid?s?i.toFormat(s):i.toJSDate():null:(i=t instanceof Date?a.utc(t,void 0,this.c.locale,this.c.strict):a(t,e,this.c.locale,this.c.strict)).isValid()?s?i.format(s):i.toDate():null:!e&&!s||e&&s?t:e?(i=t.match(/(\d{4})\-(\d{2})\-(\d{2})/))?new Date(i[1],i[2]-1,i[3]):null:t.getUTCFullYear()+"-"+this._pad(t.getUTCMonth()+1)+"-"+this._pad(t.getUTCDate()))},_correctMonth:function(t,e){var s=this._daysInMonth(t.getUTCFullYear(),e),i=t.getUTCDate()>s;t.setUTCMonth(e),i&&(t.setUTCDate(s),t.setUTCMonth(e))},_daysInMonth:function(t,e){return[31,t%4==0&&(t%100!=0||t%400==0)?29:28,31,30,31,30,31,31,30,31,30,31][e]},_dateToUtc:function(t){return t&&new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()))},_dateToUtcString:function(t){return this._isLuxon()?a.DateTime.fromJSDate(t).toUTC().toISODate():t.getUTCFullYear()+"-"+this._pad(t.getUTCMonth()+1)+"-"+this._pad(t.getUTCDate())},_hide:function(t){!t&&"hidden"===this.dom.input.attr("type")||(t=this.s.namespace,this.dom.container.detach(),g(o).off("."+t),g(i).off("keydown."+t),g("div.dataTables_scrollBody").off("scroll."+t),g("div.DTE_Body_Content").off("scroll."+t),g("body").off("click."+t),g(this.dom.input[0].offsetParent).off("."+t))},_hours24To12:function(t){return 0===t?12:12<t?t-12:t},_htmlDay:function(t){var e,s;return t.empty?'<td class="empty"></td>':(e=["selectable"],s=this.c.classPrefix,t.disabled&&e.push("disabled"),t.today&&e.push("now"),t.selected&&e.push("selected"),'<td data-day="'+t.day+'" class="'+e.join(" ")+'"><button class="'+s+"-button "+s+'-day" type="button" data-year="'+t.year+'" data-month="'+t.month+'" data-day="'+t.day+'"><span>'+t.day+"</span></button></td>")},_htmlMonth:function(t,e){for(var s=this._dateToUtc(new Date),i=this._daysInMonth(t,e),n=new Date(Date.UTC(t,e,1)).getUTCDay(),a=[],o=[],r=(0<this.c.firstDay&&(n-=this.c.firstDay)<0&&(n+=7),i+n),d=r;7<d;)d-=7;r+=7-d;var l=this.c.minDate,h=this.c.maxDate;l&&(l.setUTCHours(0),l.setUTCMinutes(0),l.setSeconds(0)),h&&(h.setUTCHours(23),h.setUTCMinutes(59),h.setSeconds(59));for(var u=0,c=0;u<r;u++){var m=new Date(Date.UTC(t,e,u-n+1)),f=!!this.s.d&&this._compareDates(m,this.s.d),p=this._compareDates(m,s),y=u<n||i+n<=u,T=l&&m<l||h&&h<m,v=this.c.disableDays,f={day:u-n+1,month:e,year:t,selected:f,today:p,disabled:T=Array.isArray(v)&&-1!==g.inArray(m.getUTCDay(),v)||"function"==typeof v&&!0===v(m)?!0:T,empty:y};o.push(this._htmlDay(f)),7==++c&&(this.c.showWeekNumber&&o.unshift(this._htmlWeekOfYear(u-n,e,t)),a.push("<tr>"+o.join("")+"</tr>"),o=[],c=0)}var _,D=this.c.classPrefix,C=D+"-table";return this.c.showWeekNumber&&(C+=" weekNumber"),l&&(_=l>=new Date(Date.UTC(t,e,1,0,0,0)),this.dom.title.find("div."+D+"-iconLeft").css("display",_?"none":"block")),h&&(_=h<new Date(Date.UTC(t,e+1,1,0,0,0)),this.dom.title.find("div."+D+"-iconRight").css("display",_?"none":"block")),'<table class="'+C+'"><thead>'+this._htmlMonthHead()+"</thead><tbody>"+a.join("")+"</tbody></table>"},_htmlMonthHead:function(){var t=[],e=this.c.firstDay,s=this.c.i18n;this.c.showWeekNumber&&t.push("<th></th>");for(var i=0;i<7;i++)t.push("<th>"+function(t){for(t+=e;7<=t;)t-=7;return s.weekdays[t]}(i)+"</th>");return t.join("")},_htmlWeekOfYear:function(t,e,s){e=new Date(s,e,t,0,0,0,0),e.setDate(e.getDate()+4-(e.getDay()||7)),t=new Date(s,0,1),s=Math.ceil(((e-t)/864e5+1)/7);return'<td class="'+this.c.classPrefix+'-week">'+s+"</td>"},_isLuxon:function(){return!!(a&&a.DateTime&&a.Duration&&a.Settings)},_needValue:function(){return this.s.d||(this.s.d=this._dateToUtc(new Date),this.s.parts.time)||(this.s.d.setUTCHours(0),this.s.d.setUTCMinutes(0),this.s.d.setSeconds(0),this.s.d.setMilliseconds(0)),this.s.d},_options:function(t,e,s){s=s||e;var i=this.dom.container.find("select."+this.c.classPrefix+"-"+t);i.empty();for(var n=0,a=e.length;n<a;n++)i.append('<option value="'+e[n]+'">'+s[n]+"</option>")},_optionSet:function(t,e){var t=this.dom.container.find("select."+this.c.classPrefix+"-"+t),s=t.parent().children("span"),e=(t.val(e),t.find("option:selected"));s.html(0!==e.length?e.text():this.c.i18n.unknown)},_optionsTime:function(n,a,o,r,t){var e,d=this.c.classPrefix,s=this.dom.container.find("div."+d+"-"+n),i=12===a?function(t){return t}:this._pad,l=d+"-table",h=this.c.i18n;if(s.length){var u="",c=10,m=function(t,e,s){12===a&&"number"==typeof t&&(12<=o&&(t+=12),12==t?t=0:24==t&&(t=12));var i=o===t||"am"===t&&o<12||"pm"===t&&12<=o?"selected":"";return"number"==typeof t&&r&&-1===g.inArray(t,r)&&(i+=" disabled"),s&&(i+=" "+s),'<td class="selectable '+i+'"><button class="'+d+"-button "+d+'-day" type="button" data-unit="'+n+'" data-value="'+t+'"><span>'+e+"</span></button></td>"};if(12===a){for(u+="<tr>",e=1;e<=6;e++)u+=m(e,i(e));for(u=(u+=m("am",h.amPm[0]))+"</tr>"+"<tr>",e=7;e<=12;e++)u+=m(e,i(e));u=u+m("pm",h.amPm[1])+"</tr>",c=7}else{if(24===a)for(var f=0,p=0;p<4;p++){for(u+="<tr>",e=0;e<6;e++)u+=m(f,i(f)),f++;u+="</tr>"}else{for(u+="<tr>",p=0;p<60;p+=10)u+=m(p,i(p),"range");var u=u+"</tr>"+('</tbody></thead><table class="'+l+" "+l+'-nospace"><tbody>'),y=null!==t?t:-1===o?0:10*Math.floor(o/10);for(u+="<tr>",p=y+1;p<y+10;p++)u+=m(p,i(p));u+="</tr>"}c=6}s.empty().append('<table class="'+l+'"><thead><tr><th colspan="'+c+'">'+h[n]+"</th></tr></thead><tbody>"+u+"</tbody></table>")}},_optionsTitle:function(){var t=this.c.i18n,e=this.c.minDate,s=this.c.maxDate,e=e?e.getFullYear():null,s=s?s.getFullYear():null,e=null!==e?e:(new Date).getFullYear()-this.c.yearRange,s=null!==s?s:(new Date).getFullYear()+this.c.yearRange;this._options("month",this._range(0,11),t.months),this._options("year",this._range(e,s)),this.dom.today.text(t.today).text(t.today),this.dom.clear.text(t.clear).text(t.clear),this.dom.previous.attr("title",t.previous).children("button").text(t.previous),this.dom.next.attr("title",t.next).children("button").text(t.next)},_pad:function(t){return t<10?"0"+t:t},_position:function(){var t,e,s,i="input"===this.c.attachTo?this.dom.input.position():this.dom.input.offset(),n=this.dom.container,a=this.dom.input.outerHeight();n.hasClass("inline")?n.insertAfter(this.dom.input):(this.s.parts.date&&this.s.parts.time&&550<g(o).width()?n.addClass("horizontal"):n.removeClass("horizontal"),"input"===this.c.attachTo?n.css({top:i.top+a,left:i.left}).insertAfter(this.dom.input):n.css({top:i.top+a,left:i.left}).appendTo("body"),t=n.outerHeight(),e=n.outerWidth(),s=g(o).scrollTop(),i.top+a+t-s>g(o).height()&&(a=i.top-t,n.css("top",a<0?0:a)),e+i.left>g(o).width()&&(s=g(o).width()-e,"input"===this.c.attachTo&&(s-=g(n).offsetParent().offset().left),n.css("left",s<0?0:s)))},_range:function(t,e,s){var i=[];s=s||1;for(var n=t;n<=e;n+=s)i.push(n);return i},_setCalander:function(){this.s.display&&this.dom.calendar.empty().append(this._htmlMonth(this.s.display.getUTCFullYear(),this.s.display.getUTCMonth()))},_setTitle:function(){this._optionSet("month",this.s.display.getUTCMonth()),this._optionSet("year",this.s.display.getUTCFullYear())},_setTime:function(){function t(t){return e.c[t+"Available"]||e._range(0,59,e.c[t+"Increment"])}var e=this,s=this.s.d,i=null,n=null!=(i=this._isLuxon()?a.DateTime.fromJSDate(s).toUTC():i)?i.hour:s?s.getUTCHours():-1;this._optionsTime("hours",this.s.parts.hours12?12:24,n,this.c.hoursAvailable),this._optionsTime("minutes",60,null!=i?i.minute:s?s.getUTCMinutes():-1,t("minutes"),this.s.minutesRange),this._optionsTime("seconds",60,null!=i?i.second:s?s.getSeconds():-1,t("seconds"),this.s.secondsRange)},_show:function(){var e=this,t=this.s.namespace,s=(this._position(),g(o).on("scroll."+t+" resize."+t,function(){e._position()}),g("div.DTE_Body_Content").on("scroll."+t,function(){e._position()}),g("div.dataTables_scrollBody").on("scroll."+t,function(){e._position()}),this.dom.input[0].offsetParent);s!==i.body&&g(s).on("scroll."+t,function(){e._position()}),g(i).on("keydown."+t,function(t){9!==t.keyCode&&27!==t.keyCode&&13!==t.keyCode||e._hide()}),setTimeout(function(){g("body").on("click."+t,function(t){g(t.target).parents().filter(e.dom.container).length||t.target===e.dom.input[0]||e._hide()})},10)},_writeOutput:function(t){var e=this.s.d,s="",i=this.dom.input,e=(e&&(s=this._convert(e,null,this.c.format)),i.val(s),new Event("change",{bubbles:!0}));i[0].dispatchEvent(e),"hidden"===i.attr("type")&&this.val(s,!1),t&&i.focus()}}),n.use=function(t){a=t},n._instance=0,n.type="DateTime",n.defaults={attachTo:"body",buttons:{clear:!1,today:!1},classPrefix:"dt-datetime",disableDays:null,firstDay:1,format:"YYYY-MM-DD",hoursAvailable:null,i18n:{clear:"Clear",previous:"Previous",next:"Next",months:["January","February","March","April","May","June","July","August","September","October","November","December"],weekdays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],amPm:["am","pm"],hours:"Hour",minutes:"Minute",seconds:"Second",unknown:"-",today:"Today"},maxDate:null,minDate:null,minutesAvailable:null,minutesIncrement:1,strict:!0,locale:"en",onChange:function(){},secondsAvailable:null,secondsIncrement:1,showWeekNumber:!1,yearRange:25},n.version="1.5.3",n.factory=function(t,e){var s=!1;return t&&t.document&&(i=(o=t).document),e&&e.fn&&e.fn.jquery&&(g=e,s=!0),s},o.DateTime||(o.DateTime=n),o.DataTable&&(o.DataTable.DateTime=n),g.fn.dtDateTime=function(t){return this.each(function(){new n(this,t)})},g.fn.dataTable&&(g.fn.dataTable.DateTime=n,g.fn.DataTable.DateTime=n,g.fn.dataTable.Editor)&&(g.fn.dataTable.Editor.DateTime=n),n});
6
+ !function(s){var i;"function"==typeof define&&define.amd?define(["jquery"],function(t){return s(t,window,document)}):"object"==typeof exports?(i=require("jquery"),"undefined"==typeof window?module.exports=function(t,e){return t=t||window,e=e||i(t),s(e,t,t.document)}:module.exports=s(i,window,window.document)):s(jQuery,window,document)}(function(g,o,i){"use strict";function n(t,e){if(n.factory(t,e))return n;if(void 0===a&&(a=o.moment||o.dayjs||o.luxon||null),this.c=g.extend(!0,{},n.defaults,e),e=this.c.classPrefix,!a&&"YYYY-MM-DD"!==this.c.format)throw"DateTime: Without momentjs, dayjs or luxon only the format 'YYYY-MM-DD' can be used";"string"==typeof this.c.minDate&&(this.c.minDate=new Date(this.c.minDate)),"string"==typeof this.c.maxDate&&(this.c.maxDate=new Date(this.c.maxDate));var s=g('<div class="'+e+'"><div class="'+e+'-date"><div class="'+e+'-title"><div class="'+e+'-iconLeft"><button type="button"></button></div><div class="'+e+'-iconRight"><button type="button"></button></div><div class="'+e+'-label"><span></span><select class="'+e+'-month"></select></div><div class="'+e+'-label"><span></span><select class="'+e+'-year"></select></div></div><div class="'+e+'-buttons"><a class="'+e+'-clear"></a><a class="'+e+'-today"></a></div><div class="'+e+'-calendar"></div></div><div class="'+e+'-time"><div class="'+e+'-hours"></div><div class="'+e+'-minutes"></div><div class="'+e+'-seconds"></div></div><div class="'+e+'-error"></div></div>');this.dom={container:s,date:s.find("."+e+"-date"),title:s.find("."+e+"-title"),calendar:s.find("."+e+"-calendar"),time:s.find("."+e+"-time"),error:s.find("."+e+"-error"),buttons:s.find("."+e+"-buttons"),clear:s.find("."+e+"-clear"),today:s.find("."+e+"-today"),previous:s.find("."+e+"-iconLeft"),next:s.find("."+e+"-iconRight"),input:g(t)},this.s={d:null,display:null,minutesRange:null,secondsRange:null,namespace:"dateime-"+n._instance++,parts:{date:null!==this.c.format.match(/[YMD]|L(?!T)|l/),time:null!==this.c.format.match(/[Hhm]|LT|LTS/),seconds:-1!==this.c.format.indexOf("s"),hours12:null!==this.c.format.match(/[haA]/)},showTo:null},this.dom.container.append(this.dom.date).append(this.dom.time).append(this.dom.error),this.dom.date.append(this.dom.title).append(this.dom.buttons).append(this.dom.calendar),this.dom.input.addClass("dt-datetime"),this._constructor()}var a;return g.extend(n.prototype,{destroy:function(){clearTimeout(this.s.showTo),this._hide(!0),this.dom.container.off().empty(),this.dom.input.removeClass("dt-datetime").removeAttr("autocomplete").off(".datetime")},display:function(t,e){return void 0!==t&&this.s.display.setUTCFullYear(t),void 0!==e&&this.s.display.setUTCMonth(e-1),void 0!==t||void 0!==e?(this._setTitle(),this._setCalander(),this):{month:this.s.display.getUTCMonth()+1,year:this.s.display.getUTCFullYear()}},errorMsg:function(t){var e=this.dom.error;return t?e.html(t):e.empty(),this},hide:function(){return this._hide(),this},max:function(t){return this.c.maxDate="string"==typeof t?new Date(t):t,this._optionsTitle(),this._setCalander(),this},min:function(t){return this.c.minDate="string"==typeof t?new Date(t):t,this._optionsTitle(),this._setCalander(),this},owns:function(t){return 0<g(t).parents().filter(this.dom.container).length},val:function(t,e){var s;return void 0===t?this.s.d:(s=this.s.d,t instanceof Date?this.s.d=this._dateToUtc(t):null===t||""===t?this.s.d=null:"--now"===t?this.s.d=this._dateToUtc(new Date):"string"==typeof t&&(this.s.d=this._dateToUtc(this._convert(t,this.c.format,null))),!e&&void 0!==e||(this.s.d?this._writeOutput(!1,null===s&&null!==this.s.d||null!==s&&null===this.s.d||s.toString()!==this.s.d.toString()):this.dom.input.val(t)),this.s.display=this.s.d?new Date(this.s.d.toString()):new Date,this.s.display.setUTCDate(1),this._setTitle(),this._setCalander(),this._setTime(),this)},valFormat:function(t,e){return e?(this.val(this._convert(e,t,null)),this):this._convert(this.val(),null,t)},_constructor:function(){function a(){var t=o.dom.input.val();t!==e&&(o.c.onChange.call(o,t,o.s.d,o.dom.input),e=t)}var o=this,r=this.c.classPrefix,e=this.dom.input.val();this.s.parts.date||this.dom.date.css("display","none"),this.s.parts.time||this.dom.time.css("display","none"),this.s.parts.seconds||(this.dom.time.children("div."+r+"-seconds").remove(),this.dom.time.children("span").eq(1).remove()),this.c.buttons.clear||this.dom.clear.css("display","none"),this.c.buttons.today||this.dom.today.css("display","none"),this._optionsTitle(),g(i).on("i18n.dt",function(t,e){e.oLanguage.datetime&&(g.extend(!0,o.c.i18n,e.oLanguage.datetime),o._optionsTitle())}),"hidden"===this.dom.input.attr("type")&&(this.dom.container.addClass("inline"),this.c.attachTo="input",this.val(this.dom.input.val(),!1),this._show()),e&&this.val(e,!1),this.dom.input.attr("autocomplete","off").on("focus.datetime click.datetime",function(){o.dom.container.is(":visible")||o.dom.input.is(":disabled")||(o.val(o.dom.input.val(),!1),o._show())}).on("keyup.datetime",function(){o.dom.container.is(":visible")&&o.val(o.dom.input.val(),!1)}),this.dom.container[0].addEventListener("focusin",function(t){t.stopPropagation()}),this.dom.container.on("change","select",function(){var t,e,s=g(this),i=s.val();s.hasClass(r+"-month")?(o._correctMonth(o.s.display,i),o._setTitle(),o._setCalander()):s.hasClass(r+"-year")?(o.s.display.setUTCFullYear(i),o._setTitle(),o._setCalander()):s.hasClass(r+"-hours")||s.hasClass(r+"-ampm")?(o.s.parts.hours12?(t=+g(o.dom.container).find("."+r+"-hours").val(),e="pm"===g(o.dom.container).find("."+r+"-ampm").val(),o.s.d.setUTCHours(12!=t||e?e&&12!=t?12+t:t:0)):o.s.d.setUTCHours(i),o._setTime(),o._writeOutput(!0),a()):s.hasClass(r+"-minutes")?(o.s.d.setUTCMinutes(i),o._setTime(),o._writeOutput(!0),a()):s.hasClass(r+"-seconds")&&(o.s.d.setSeconds(i),o._setTime(),o._writeOutput(!0),a()),o.dom.input.focus(),o._position()}).on("click",function(t){var e=o.s.d,s="span"===t.target.nodeName.toLowerCase()?t.target.parentNode:t.target,i=s.nodeName.toLowerCase();if("select"!==i)if(t.stopPropagation(),"a"===i&&(t.preventDefault(),g(s).hasClass(r+"-clear")?(o.s.d=null,o.dom.input.val(""),o._writeOutput(),o._setCalander(),o._setTime(),a()):g(s).hasClass(r+"-today")&&(o.s.display=new Date,o._setTitle(),o._setCalander())),"button"===i){t=g(s),i=t.parent();if(i.hasClass("disabled")&&!i.hasClass("range"))t.blur();else if(i.hasClass(r+"-iconLeft"))o.s.display.setUTCMonth(o.s.display.getUTCMonth()-1),o._setTitle(),o._setCalander(),o.dom.input.focus();else if(i.hasClass(r+"-iconRight"))o._correctMonth(o.s.display,o.s.display.getUTCMonth()+1),o._setTitle(),o._setCalander(),o.dom.input.focus();else{if(t.parents("."+r+"-time").length){var s=t.data("value"),n=t.data("unit"),e=o._needValue();if("minutes"===n){if(i.hasClass("disabled")&&i.hasClass("range"))return o.s.minutesRange=s,void o._setTime();o.s.minutesRange=null}if("seconds"===n){if(i.hasClass("disabled")&&i.hasClass("range"))return o.s.secondsRange=s,void o._setTime();o.s.secondsRange=null}if("am"===s){if(!(12<=e.getUTCHours()))return;s=e.getUTCHours()-12}else if("pm"===s){if(!(e.getUTCHours()<12))return;s=e.getUTCHours()+12}e["hours"===n?"setUTCHours":"minutes"===n?"setUTCMinutes":"setSeconds"](s),o._setCalander(),o._setTime(),o._writeOutput(!0)}else(e=o._needValue()).setUTCDate(1),e.setUTCFullYear(t.data("year")),e.setUTCMonth(t.data("month")),e.setUTCDate(t.data("day")),o._writeOutput(!0),o.s.parts.time?(o._setCalander(),o._setTime()):setTimeout(function(){o._hide()},10);a()}}else o.dom.input.focus()})},_compareDates:function(t,e){return this._isLuxon()?a.DateTime.fromJSDate(t).toUTC().toISODate()===a.DateTime.fromJSDate(e).toUTC().toISODate():this._dateToUtcString(t)===this._dateToUtcString(e)},_convert:function(t,e,s){var i;return t&&(a?this._isLuxon()?(i=t instanceof Date?a.DateTime.fromJSDate(t).toUTC():a.DateTime.fromFormat(t,e)).isValid?s?i.toFormat(s):i.toJSDate():null:(i=t instanceof Date?a.utc(t,void 0,this.c.locale,this.c.strict):a(t,e,this.c.locale,this.c.strict)).isValid()?s?i.format(s):i.toDate():null:!e&&!s||e&&s?t:e?(i=t.match(/(\d{4})\-(\d{2})\-(\d{2})/))?new Date(i[1],i[2]-1,i[3]):null:t.getUTCFullYear()+"-"+this._pad(t.getUTCMonth()+1)+"-"+this._pad(t.getUTCDate()))},_correctMonth:function(t,e){var s=this._daysInMonth(t.getUTCFullYear(),e),i=t.getUTCDate()>s;t.setUTCMonth(e),i&&(t.setUTCDate(s),t.setUTCMonth(e))},_daysInMonth:function(t,e){return[31,t%4==0&&(t%100!=0||t%400==0)?29:28,31,30,31,30,31,31,30,31,30,31][e]},_dateToUtc:function(t){return t&&new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()))},_dateToUtcString:function(t){return this._isLuxon()?a.DateTime.fromJSDate(t).toUTC().toISODate():t.getUTCFullYear()+"-"+this._pad(t.getUTCMonth()+1)+"-"+this._pad(t.getUTCDate())},_hide:function(t){!t&&"hidden"===this.dom.input.attr("type")||(t=this.s.namespace,this.dom.container.detach(),g(o).off("."+t),g(i).off("keydown."+t),g("div.dataTables_scrollBody").off("scroll."+t),g("div.DTE_Body_Content").off("scroll."+t),g(i).off("click."+t),g(this.dom.input[0].offsetParent).off("."+t))},_hours24To12:function(t){return 0===t?12:12<t?t-12:t},_htmlDay:function(t){var e,s;return t.empty?'<td class="empty"></td>':(e=["selectable"],s=this.c.classPrefix,t.disabled&&e.push("disabled"),t.today&&e.push("now"),t.selected&&e.push("selected"),'<td data-day="'+t.day+'" class="'+e.join(" ")+'"><button class="'+s+"-button "+s+'-day" type="button" data-year="'+t.year+'" data-month="'+t.month+'" data-day="'+t.day+'"><span>'+t.day+"</span></button></td>")},_htmlMonth:function(t,e){for(var s=this._dateToUtc(new Date),i=this._daysInMonth(t,e),n=new Date(Date.UTC(t,e,1)).getUTCDay(),a=[],o=[],r=(0<this.c.firstDay&&(n-=this.c.firstDay)<0&&(n+=7),i+n),d=r;7<d;)d-=7;r+=7-d;var l=this.c.minDate,h=this.c.maxDate;l&&(l.setUTCHours(0),l.setUTCMinutes(0),l.setSeconds(0)),h&&(h.setUTCHours(23),h.setUTCMinutes(59),h.setSeconds(59));for(var u=0,c=0;u<r;u++){var m=new Date(Date.UTC(t,e,u-n+1)),f=!!this.s.d&&this._compareDates(m,this.s.d),p=this._compareDates(m,s),T=u<n||i+n<=u,y=l&&m<l||h&&h<m,v=this.c.disableDays,f={day:u-n+1,month:e,year:t,selected:f,today:p,disabled:y=Array.isArray(v)&&-1!==g.inArray(m.getUTCDay(),v)||"function"==typeof v&&!0===v(m)?!0:y,empty:T};o.push(this._htmlDay(f)),7==++c&&(this.c.showWeekNumber&&o.unshift(this._htmlWeekOfYear(u-n,e,t)),a.push("<tr>"+o.join("")+"</tr>"),o=[],c=0)}var _,D=this.c.classPrefix,C=D+"-table";return this.c.showWeekNumber&&(C+=" weekNumber"),l&&(_=l>=new Date(Date.UTC(t,e,1,0,0,0)),this.dom.title.find("div."+D+"-iconLeft").css("display",_?"none":"block")),h&&(_=h<new Date(Date.UTC(t,e+1,1,0,0,0)),this.dom.title.find("div."+D+"-iconRight").css("display",_?"none":"block")),'<table class="'+C+'"><thead>'+this._htmlMonthHead()+"</thead><tbody>"+a.join("")+"</tbody></table>"},_htmlMonthHead:function(){var t=[],e=this.c.firstDay,s=this.c.i18n;this.c.showWeekNumber&&t.push("<th></th>");for(var i=0;i<7;i++)t.push("<th>"+function(t){for(t+=e;7<=t;)t-=7;return s.weekdays[t]}(i)+"</th>");return t.join("")},_htmlWeekOfYear:function(t,e,s){e=new Date(s,e,t,0,0,0,0),e.setDate(e.getDate()+4-(e.getDay()||7)),t=new Date(s,0,1),s=Math.ceil(((e-t)/864e5+1)/7);return'<td class="'+this.c.classPrefix+'-week">'+s+"</td>"},_isLuxon:function(){return!!(a&&a.DateTime&&a.Duration&&a.Settings)},_needValue:function(){return this.s.d||(this.s.d=this._dateToUtc(new Date),this.s.parts.time)||(this.s.d.setUTCHours(0),this.s.d.setUTCMinutes(0),this.s.d.setSeconds(0),this.s.d.setMilliseconds(0)),this.s.d},_options:function(t,e,s){s=s||e;var i=this.dom.container.find("select."+this.c.classPrefix+"-"+t);i.empty();for(var n=0,a=e.length;n<a;n++)i.append('<option value="'+e[n]+'">'+s[n]+"</option>")},_optionSet:function(t,e){var t=this.dom.container.find("select."+this.c.classPrefix+"-"+t),s=t.parent().children("span"),e=(t.val(e),t.find("option:selected"));s.html(0!==e.length?e.text():this.c.i18n.unknown)},_optionsTime:function(n,a,o,r,t){var e,d=this.c.classPrefix,s=this.dom.container.find("div."+d+"-"+n),i=12===a?function(t){return t}:this._pad,l=d+"-table",h=this.c.i18n;if(s.length){var u="",c=10,m=function(t,e,s){12===a&&"number"==typeof t&&(12<=o&&(t+=12),12==t?t=0:24==t&&(t=12));var i=o===t||"am"===t&&o<12||"pm"===t&&12<=o?"selected":"";return"number"==typeof t&&r&&-1===g.inArray(t,r)&&(i+=" disabled"),s&&(i+=" "+s),'<td class="selectable '+i+'"><button class="'+d+"-button "+d+'-day" type="button" data-unit="'+n+'" data-value="'+t+'"><span>'+e+"</span></button></td>"};if(12===a){for(u+="<tr>",e=1;e<=6;e++)u+=m(e,i(e));for(u=(u+=m("am",h.amPm[0]))+"</tr>"+"<tr>",e=7;e<=12;e++)u+=m(e,i(e));u=u+m("pm",h.amPm[1])+"</tr>",c=7}else{if(24===a)for(var f=0,p=0;p<4;p++){for(u+="<tr>",e=0;e<6;e++)u+=m(f,i(f)),f++;u+="</tr>"}else{for(u+="<tr>",p=0;p<60;p+=10)u+=m(p,i(p),"range");var u=u+"</tr>"+('</tbody></thead><table class="'+l+" "+l+'-nospace"><tbody>'),T=null!==t?t:-1===o?0:10*Math.floor(o/10);for(u+="<tr>",p=T+1;p<T+10;p++)u+=m(p,i(p));u+="</tr>"}c=6}s.empty().append('<table class="'+l+'"><thead><tr><th colspan="'+c+'">'+h[n]+"</th></tr></thead><tbody>"+u+"</tbody></table>")}},_optionsTitle:function(){var t=this.c.i18n,e=this.c.minDate,s=this.c.maxDate,e=e?e.getFullYear():null,s=s?s.getFullYear():null,e=null!==e?e:(new Date).getFullYear()-this.c.yearRange,s=null!==s?s:(new Date).getFullYear()+this.c.yearRange;this._options("month",this._range(0,11),t.months),this._options("year",this._range(e,s)),this.dom.today.text(t.today).text(t.today),this.dom.clear.text(t.clear).text(t.clear),this.dom.previous.attr("title",t.previous).children("button").text(t.previous),this.dom.next.attr("title",t.next).children("button").text(t.next)},_pad:function(t){return t<10?"0"+t:t},_position:function(){var t,e,s,i="input"===this.c.attachTo?this.dom.input.position():this.dom.input.offset(),n=this.dom.container,a=this.dom.input.outerHeight();n.hasClass("inline")?n.insertAfter(this.dom.input):(this.s.parts.date&&this.s.parts.time&&550<g(o).width()?n.addClass("horizontal"):n.removeClass("horizontal"),"input"===this.c.attachTo?n.css({top:i.top+a,left:i.left}).insertAfter(this.dom.input):n.css({top:i.top+a,left:i.left}).appendTo("body"),t=n.outerHeight(),e=n.outerWidth(),s=g(o).scrollTop(),i.top+a+t-s>g(o).height()&&(a=i.top-t,n.css("top",a<0?0:a)),e+i.left>g(o).width()&&(s=g(o).width()-e-5,"input"===this.c.attachTo&&(s-=g(n).offsetParent().offset().left),n.css("left",s<0?0:s)))},_range:function(t,e,s){var i=[];s=s||1;for(var n=t;n<=e;n+=s)i.push(n);return i},_setCalander:function(){this.s.display&&this.dom.calendar.empty().append(this._htmlMonth(this.s.display.getUTCFullYear(),this.s.display.getUTCMonth()))},_setTitle:function(){this._optionSet("month",this.s.display.getUTCMonth()),this._optionSet("year",this.s.display.getUTCFullYear())},_setTime:function(){function t(t){return e.c[t+"Available"]||e._range(0,59,e.c[t+"Increment"])}var e=this,s=this.s.d,i=null,n=null!=(i=this._isLuxon()?a.DateTime.fromJSDate(s).toUTC():i)?i.hour:s?s.getUTCHours():-1;this._optionsTime("hours",this.s.parts.hours12?12:24,n,this.c.hoursAvailable),this._optionsTime("minutes",60,null!=i?i.minute:s?s.getUTCMinutes():-1,t("minutes"),this.s.minutesRange),this._optionsTime("seconds",60,null!=i?i.second:s?s.getSeconds():-1,t("seconds"),this.s.secondsRange)},_show:function(){var e=this,t=this.s.namespace,s=(this._position(),g(o).on("scroll."+t+" resize."+t,function(){e._position()}),g("div.DTE_Body_Content").on("scroll."+t,function(){e._position()}),g("div.dataTables_scrollBody").on("scroll."+t,function(){e._position()}),this.dom.input[0].offsetParent);s!==i.body&&g(s).on("scroll."+t,function(){e._position()}),g(i).on("keydown."+t,function(t){9!==t.keyCode&&27!==t.keyCode&&13!==t.keyCode||e._hide()}),clearTimeout(this.s.showTo),this.dom.input.on("blur",function(t){e.s.showTo=setTimeout(function(){var t=i.activeElement.tagName.toLowerCase();i.activeElement===e.dom.input[0]||e.dom.container.find(i.activeElement).length||["input","select","button"].includes(t)&&e.hide()},10)}),setTimeout(function(){g(i).on("click."+t,function(t){g(t.target).parents().filter(e.dom.container).length||t.target===e.dom.input[0]||e._hide()})},10)},_writeOutput:function(t,e){var s=this.s.d,i="",n=this.dom.input;s&&(i=this._convert(s,null,this.c.format)),n.val(i),void 0!==e&&!e||(s=new Event("change",{bubbles:!0}),n[0].dispatchEvent(s)),"hidden"===n.attr("type")&&this.val(i,!1),t&&n.focus()}}),n.use=function(t){a=t},n._instance=0,n.type="DateTime",n.defaults={attachTo:"body",buttons:{clear:!1,today:!1},classPrefix:"dt-datetime",disableDays:null,firstDay:1,format:"YYYY-MM-DD",hoursAvailable:null,i18n:{clear:"Clear",previous:"Previous",next:"Next",months:["January","February","March","April","May","June","July","August","September","October","November","December"],weekdays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],amPm:["am","pm"],hours:"Hour",minutes:"Minute",seconds:"Second",unknown:"-",today:"Today"},maxDate:null,minDate:null,minutesAvailable:null,minutesIncrement:1,strict:!0,locale:"en",onChange:function(){},secondsAvailable:null,secondsIncrement:1,showWeekNumber:!1,yearRange:25},n.version="1.5.5",n.factory=function(t,e){var s=!1;return t&&t.document&&(i=(o=t).document),e&&e.fn&&e.fn.jquery&&(g=e,s=!0),s},o.DateTime||(o.DateTime=n),o.DataTable&&(o.DataTable.DateTime=n),g.fn.dtDateTime=function(t){return this.each(function(){new n(this,t)})},g.fn.dataTable&&(g.fn.dataTable.DateTime=n,g.fn.DataTable.DateTime=n,g.fn.dataTable.Editor)&&(g.fn.dataTable.Editor.DateTime=n),n});
@@ -1,6 +1,6 @@
1
- /*! DateTime picker for DataTables.net v1.5.3
1
+ /*! DateTime picker for DataTables.net v1.5.5
2
2
  *
3
3
  * © SpryMedia Ltd, all rights reserved.
4
4
  * License: MIT datatables.net/license/mit
5
5
  */
6
- import jQuery from"jquery";let $=jQuery;var dateLib,DateTime=function(t,e){if(DateTime.factory(t,e))return DateTime;void 0===dateLib&&(dateLib=window.moment||window.dayjs||window.luxon||null),this.c=$.extend(!0,{},DateTime.defaults,e);e=this.c.classPrefix;if(!dateLib&&"YYYY-MM-DD"!==this.c.format)throw"DateTime: Without momentjs, dayjs or luxon only the format 'YYYY-MM-DD' can be used";"string"==typeof this.c.minDate&&(this.c.minDate=new Date(this.c.minDate)),"string"==typeof this.c.maxDate&&(this.c.maxDate=new Date(this.c.maxDate));var s=$('<div class="'+e+'"><div class="'+e+'-date"><div class="'+e+'-title"><div class="'+e+'-iconLeft"><button type="button"></button></div><div class="'+e+'-iconRight"><button type="button"></button></div><div class="'+e+'-label"><span></span><select class="'+e+'-month"></select></div><div class="'+e+'-label"><span></span><select class="'+e+'-year"></select></div></div><div class="'+e+'-buttons"><a class="'+e+'-clear"></a><a class="'+e+'-today"></a></div><div class="'+e+'-calendar"></div></div><div class="'+e+'-time"><div class="'+e+'-hours"></div><div class="'+e+'-minutes"></div><div class="'+e+'-seconds"></div></div><div class="'+e+'-error"></div></div>');this.dom={container:s,date:s.find("."+e+"-date"),title:s.find("."+e+"-title"),calendar:s.find("."+e+"-calendar"),time:s.find("."+e+"-time"),error:s.find("."+e+"-error"),buttons:s.find("."+e+"-buttons"),clear:s.find("."+e+"-clear"),today:s.find("."+e+"-today"),previous:s.find("."+e+"-iconLeft"),next:s.find("."+e+"-iconRight"),input:$(t)},this.s={d:null,display:null,minutesRange:null,secondsRange:null,namespace:"dateime-"+DateTime._instance++,parts:{date:null!==this.c.format.match(/[YMD]|L(?!T)|l/),time:null!==this.c.format.match(/[Hhm]|LT|LTS/),seconds:-1!==this.c.format.indexOf("s"),hours12:null!==this.c.format.match(/[haA]/)}},this.dom.container.append(this.dom.date).append(this.dom.time).append(this.dom.error),this.dom.date.append(this.dom.title).append(this.dom.buttons).append(this.dom.calendar),this.dom.input.addClass("dt-datetime"),this._constructor()};$.extend(DateTime.prototype,{destroy:function(){this._hide(!0),this.dom.container.off().empty(),this.dom.input.removeClass("dt-datetime").removeAttr("autocomplete").off(".datetime")},display:function(t,e){return void 0!==t&&this.s.display.setUTCFullYear(t),void 0!==e&&this.s.display.setUTCMonth(e-1),void 0!==t||void 0!==e?(this._setTitle(),this._setCalander(),this):{month:this.s.display.getUTCMonth()+1,year:this.s.display.getUTCFullYear()}},errorMsg:function(t){var e=this.dom.error;return t?e.html(t):e.empty(),this},hide:function(){return this._hide(),this},max:function(t){return this.c.maxDate="string"==typeof t?new Date(t):t,this._optionsTitle(),this._setCalander(),this},min:function(t){return this.c.minDate="string"==typeof t?new Date(t):t,this._optionsTitle(),this._setCalander(),this},owns:function(t){return 0<$(t).parents().filter(this.dom.container).length},val:function(t,e){return void 0===t?this.s.d:(t instanceof Date?this.s.d=this._dateToUtc(t):null===t||""===t?this.s.d=null:"--now"===t?this.s.d=this._dateToUtc(new Date):"string"==typeof t&&(this.s.d=this._dateToUtc(this._convert(t,this.c.format,null))),!e&&void 0!==e||(this.s.d?this._writeOutput():this.dom.input.val(t)),this.s.display=this.s.d?new Date(this.s.d.toString()):new Date,this.s.display.setUTCDate(1),this._setTitle(),this._setCalander(),this._setTime(),this)},valFormat:function(t,e){return e?(this.val(this._convert(e,t,null)),this):this._convert(this.val(),null,t)},_constructor:function(){function n(){var t=o.dom.input.val();t!==e&&(o.c.onChange.call(o,t,o.s.d,o.dom.input),e=t)}var o=this,d=this.c.classPrefix,e=this.dom.input.val();this.s.parts.date||this.dom.date.css("display","none"),this.s.parts.time||this.dom.time.css("display","none"),this.s.parts.seconds||(this.dom.time.children("div."+d+"-seconds").remove(),this.dom.time.children("span").eq(1).remove()),this.c.buttons.clear||this.dom.clear.css("display","none"),this.c.buttons.today||this.dom.today.css("display","none"),this._optionsTitle(),$(document).on("i18n.dt",function(t,e){e.oLanguage.datetime&&($.extend(!0,o.c.i18n,e.oLanguage.datetime),o._optionsTitle())}),"hidden"===this.dom.input.attr("type")&&(this.dom.container.addClass("inline"),this.c.attachTo="input",this.val(this.dom.input.val(),!1),this._show()),e&&this.val(e,!1),this.dom.input.attr("autocomplete","off").on("focus.datetime click.datetime",function(){o.dom.container.is(":visible")||o.dom.input.is(":disabled")||(o.val(o.dom.input.val(),!1),o._show())}).on("keyup.datetime",function(){o.dom.container.is(":visible")&&o.val(o.dom.input.val(),!1)}),this.dom.container[0].addEventListener("focusin",function(t){t.stopPropagation()}),this.dom.container.on("change","select",function(){var t,e,s=$(this),i=s.val();s.hasClass(d+"-month")?(o._correctMonth(o.s.display,i),o._setTitle(),o._setCalander()):s.hasClass(d+"-year")?(o.s.display.setUTCFullYear(i),o._setTitle(),o._setCalander()):s.hasClass(d+"-hours")||s.hasClass(d+"-ampm")?(o.s.parts.hours12?(t=+$(o.dom.container).find("."+d+"-hours").val(),e="pm"===$(o.dom.container).find("."+d+"-ampm").val(),o.s.d.setUTCHours(12!=t||e?e&&12!=t?12+t:t:0)):o.s.d.setUTCHours(i),o._setTime(),o._writeOutput(!0),n()):s.hasClass(d+"-minutes")?(o.s.d.setUTCMinutes(i),o._setTime(),o._writeOutput(!0),n()):s.hasClass(d+"-seconds")&&(o.s.d.setSeconds(i),o._setTime(),o._writeOutput(!0),n()),o.dom.input.focus(),o._position()}).on("click",function(t){var e=o.s.d,s="span"===t.target.nodeName.toLowerCase()?t.target.parentNode:t.target,i=s.nodeName.toLowerCase();if("select"!==i)if(t.stopPropagation(),"a"===i&&(t.preventDefault(),$(s).hasClass(d+"-clear")?(o.s.d=null,o.dom.input.val(""),o._writeOutput(),o._setCalander(),o._setTime(),n()):$(s).hasClass(d+"-today")&&(o.s.display=new Date,o._setTitle(),o._setCalander())),"button"===i){t=$(s),i=t.parent();if(i.hasClass("disabled")&&!i.hasClass("range"))t.blur();else if(i.hasClass(d+"-iconLeft"))o.s.display.setUTCMonth(o.s.display.getUTCMonth()-1),o._setTitle(),o._setCalander(),o.dom.input.focus();else if(i.hasClass(d+"-iconRight"))o._correctMonth(o.s.display,o.s.display.getUTCMonth()+1),o._setTitle(),o._setCalander(),o.dom.input.focus();else{if(t.parents("."+d+"-time").length){var s=t.data("value"),a=t.data("unit"),e=o._needValue();if("minutes"===a){if(i.hasClass("disabled")&&i.hasClass("range"))return o.s.minutesRange=s,void o._setTime();o.s.minutesRange=null}if("seconds"===a){if(i.hasClass("disabled")&&i.hasClass("range"))return o.s.secondsRange=s,void o._setTime();o.s.secondsRange=null}if("am"===s){if(!(12<=e.getUTCHours()))return;s=e.getUTCHours()-12}else if("pm"===s){if(!(e.getUTCHours()<12))return;s=e.getUTCHours()+12}e["hours"===a?"setUTCHours":"minutes"===a?"setUTCMinutes":"setSeconds"](s),o._setCalander(),o._setTime(),o._writeOutput(!0)}else(e=o._needValue()).setUTCDate(1),e.setUTCFullYear(t.data("year")),e.setUTCMonth(t.data("month")),e.setUTCDate(t.data("day")),o._writeOutput(!0),o.s.parts.time?(o._setCalander(),o._setTime()):setTimeout(function(){o._hide()},10);n()}}else o.dom.input.focus()})},_compareDates:function(t,e){return this._isLuxon()?dateLib.DateTime.fromJSDate(t).toUTC().toISODate()===dateLib.DateTime.fromJSDate(e).toUTC().toISODate():this._dateToUtcString(t)===this._dateToUtcString(e)},_convert:function(t,e,s){var i;return t&&(dateLib?this._isLuxon()?(i=t instanceof Date?dateLib.DateTime.fromJSDate(t).toUTC():dateLib.DateTime.fromFormat(t,e)).isValid?s?i.toFormat(s):i.toJSDate():null:(i=t instanceof Date?dateLib.utc(t,void 0,this.c.locale,this.c.strict):dateLib(t,e,this.c.locale,this.c.strict)).isValid()?s?i.format(s):i.toDate():null:!e&&!s||e&&s?t:e?(i=t.match(/(\d{4})\-(\d{2})\-(\d{2})/))?new Date(i[1],i[2]-1,i[3]):null:t.getUTCFullYear()+"-"+this._pad(t.getUTCMonth()+1)+"-"+this._pad(t.getUTCDate()))},_correctMonth:function(t,e){var s=this._daysInMonth(t.getUTCFullYear(),e),i=t.getUTCDate()>s;t.setUTCMonth(e),i&&(t.setUTCDate(s),t.setUTCMonth(e))},_daysInMonth:function(t,e){return[31,t%4==0&&(t%100!=0||t%400==0)?29:28,31,30,31,30,31,31,30,31,30,31][e]},_dateToUtc:function(t){return t&&new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()))},_dateToUtcString:function(t){return this._isLuxon()?dateLib.DateTime.fromJSDate(t).toUTC().toISODate():t.getUTCFullYear()+"-"+this._pad(t.getUTCMonth()+1)+"-"+this._pad(t.getUTCDate())},_hide:function(t){!t&&"hidden"===this.dom.input.attr("type")||(t=this.s.namespace,this.dom.container.detach(),$(window).off("."+t),$(document).off("keydown."+t),$("div.dataTables_scrollBody").off("scroll."+t),$("div.DTE_Body_Content").off("scroll."+t),$("body").off("click."+t),$(this.dom.input[0].offsetParent).off("."+t))},_hours24To12:function(t){return 0===t?12:12<t?t-12:t},_htmlDay:function(t){var e,s;return t.empty?'<td class="empty"></td>':(e=["selectable"],s=this.c.classPrefix,t.disabled&&e.push("disabled"),t.today&&e.push("now"),t.selected&&e.push("selected"),'<td data-day="'+t.day+'" class="'+e.join(" ")+'"><button class="'+s+"-button "+s+'-day" type="button" data-year="'+t.year+'" data-month="'+t.month+'" data-day="'+t.day+'"><span>'+t.day+"</span></button></td>")},_htmlMonth:function(t,e){for(var s=this._dateToUtc(new Date),i=this._daysInMonth(t,e),a=new Date(Date.UTC(t,e,1)).getUTCDay(),n=[],o=[],d=(0<this.c.firstDay&&(a-=this.c.firstDay)<0&&(a+=7),i+a),r=d;7<r;)r-=7;d+=7-r;var l=this.c.minDate,h=this.c.maxDate;l&&(l.setUTCHours(0),l.setUTCMinutes(0),l.setSeconds(0)),h&&(h.setUTCHours(23),h.setUTCMinutes(59),h.setSeconds(59));for(var c=0,u=0;c<d;c++){var m=new Date(Date.UTC(t,e,c-a+1)),f=!!this.s.d&&this._compareDates(m,this.s.d),p=this._compareDates(m,s),T=c<a||i+a<=c,y=l&&m<l||h&&h<m,v=this.c.disableDays,f={day:c-a+1,month:e,year:t,selected:f,today:p,disabled:y=Array.isArray(v)&&-1!==$.inArray(m.getUTCDay(),v)||"function"==typeof v&&!0===v(m)?!0:y,empty:T};o.push(this._htmlDay(f)),7==++u&&(this.c.showWeekNumber&&o.unshift(this._htmlWeekOfYear(c-a,e,t)),n.push("<tr>"+o.join("")+"</tr>"),o=[],u=0)}var _,D=this.c.classPrefix,b=D+"-table";return this.c.showWeekNumber&&(b+=" weekNumber"),l&&(_=l>=new Date(Date.UTC(t,e,1,0,0,0)),this.dom.title.find("div."+D+"-iconLeft").css("display",_?"none":"block")),h&&(_=h<new Date(Date.UTC(t,e+1,1,0,0,0)),this.dom.title.find("div."+D+"-iconRight").css("display",_?"none":"block")),'<table class="'+b+'"><thead>'+this._htmlMonthHead()+"</thead><tbody>"+n.join("")+"</tbody></table>"},_htmlMonthHead:function(){var t=[],e=this.c.firstDay,s=this.c.i18n;this.c.showWeekNumber&&t.push("<th></th>");for(var i=0;i<7;i++)t.push("<th>"+function(t){for(t+=e;7<=t;)t-=7;return s.weekdays[t]}(i)+"</th>");return t.join("")},_htmlWeekOfYear:function(t,e,s){e=new Date(s,e,t,0,0,0,0),e.setDate(e.getDate()+4-(e.getDay()||7)),t=new Date(s,0,1),s=Math.ceil(((e-t)/864e5+1)/7);return'<td class="'+this.c.classPrefix+'-week">'+s+"</td>"},_isLuxon:function(){return!!(dateLib&&dateLib.DateTime&&dateLib.Duration&&dateLib.Settings)},_needValue:function(){return this.s.d||(this.s.d=this._dateToUtc(new Date),this.s.parts.time)||(this.s.d.setUTCHours(0),this.s.d.setUTCMinutes(0),this.s.d.setSeconds(0),this.s.d.setMilliseconds(0)),this.s.d},_options:function(t,e,s){s=s||e;var i=this.dom.container.find("select."+this.c.classPrefix+"-"+t);i.empty();for(var a=0,n=e.length;a<n;a++)i.append('<option value="'+e[a]+'">'+s[a]+"</option>")},_optionSet:function(t,e){var t=this.dom.container.find("select."+this.c.classPrefix+"-"+t),s=t.parent().children("span"),e=(t.val(e),t.find("option:selected"));s.html(0!==e.length?e.text():this.c.i18n.unknown)},_optionsTime:function(a,n,o,d,t){var e,r=this.c.classPrefix,s=this.dom.container.find("div."+r+"-"+a),i=12===n?function(t){return t}:this._pad,l=r+"-table",h=this.c.i18n;if(s.length){function c(t,e,s){12===n&&"number"==typeof t&&(12<=o&&(t+=12),12==t?t=0:24==t&&(t=12));var i=o===t||"am"===t&&o<12||"pm"===t&&12<=o?"selected":"";return"number"==typeof t&&d&&-1===$.inArray(t,d)&&(i+=" disabled"),s&&(i+=" "+s),'<td class="selectable '+i+'"><button class="'+r+"-button "+r+'-day" type="button" data-unit="'+a+'" data-value="'+t+'"><span>'+e+"</span></button></td>"}var u="",m=10;if(12===n){for(u+="<tr>",e=1;e<=6;e++)u+=c(e,i(e));for(u=(u+=c("am",h.amPm[0]))+"</tr>"+"<tr>",e=7;e<=12;e++)u+=c(e,i(e));u=u+c("pm",h.amPm[1])+"</tr>",m=7}else{if(24===n)for(var f=0,p=0;p<4;p++){for(u+="<tr>",e=0;e<6;e++)u+=c(f,i(f)),f++;u+="</tr>"}else{for(u+="<tr>",p=0;p<60;p+=10)u+=c(p,i(p),"range");var u=u+"</tr>"+('</tbody></thead><table class="'+l+" "+l+'-nospace"><tbody>'),T=null!==t?t:-1===o?0:10*Math.floor(o/10);for(u+="<tr>",p=T+1;p<T+10;p++)u+=c(p,i(p));u+="</tr>"}m=6}s.empty().append('<table class="'+l+'"><thead><tr><th colspan="'+m+'">'+h[a]+"</th></tr></thead><tbody>"+u+"</tbody></table>")}},_optionsTitle:function(){var t=this.c.i18n,e=this.c.minDate,s=this.c.maxDate,e=e?e.getFullYear():null,s=s?s.getFullYear():null,e=null!==e?e:(new Date).getFullYear()-this.c.yearRange,s=null!==s?s:(new Date).getFullYear()+this.c.yearRange;this._options("month",this._range(0,11),t.months),this._options("year",this._range(e,s)),this.dom.today.text(t.today).text(t.today),this.dom.clear.text(t.clear).text(t.clear),this.dom.previous.attr("title",t.previous).children("button").text(t.previous),this.dom.next.attr("title",t.next).children("button").text(t.next)},_pad:function(t){return t<10?"0"+t:t},_position:function(){var t,e,s,i="input"===this.c.attachTo?this.dom.input.position():this.dom.input.offset(),a=this.dom.container,n=this.dom.input.outerHeight();a.hasClass("inline")?a.insertAfter(this.dom.input):(this.s.parts.date&&this.s.parts.time&&550<$(window).width()?a.addClass("horizontal"):a.removeClass("horizontal"),"input"===this.c.attachTo?a.css({top:i.top+n,left:i.left}).insertAfter(this.dom.input):a.css({top:i.top+n,left:i.left}).appendTo("body"),t=a.outerHeight(),e=a.outerWidth(),s=$(window).scrollTop(),i.top+n+t-s>$(window).height()&&(n=i.top-t,a.css("top",n<0?0:n)),e+i.left>$(window).width()&&(s=$(window).width()-e,"input"===this.c.attachTo&&(s-=$(a).offsetParent().offset().left),a.css("left",s<0?0:s)))},_range:function(t,e,s){var i=[];s=s||1;for(var a=t;a<=e;a+=s)i.push(a);return i},_setCalander:function(){this.s.display&&this.dom.calendar.empty().append(this._htmlMonth(this.s.display.getUTCFullYear(),this.s.display.getUTCMonth()))},_setTitle:function(){this._optionSet("month",this.s.display.getUTCMonth()),this._optionSet("year",this.s.display.getUTCFullYear())},_setTime:function(){function t(t){return e.c[t+"Available"]||e._range(0,59,e.c[t+"Increment"])}var e=this,s=this.s.d,i=null,a=null!=(i=this._isLuxon()?dateLib.DateTime.fromJSDate(s).toUTC():i)?i.hour:s?s.getUTCHours():-1;this._optionsTime("hours",this.s.parts.hours12?12:24,a,this.c.hoursAvailable),this._optionsTime("minutes",60,null!=i?i.minute:s?s.getUTCMinutes():-1,t("minutes"),this.s.minutesRange),this._optionsTime("seconds",60,null!=i?i.second:s?s.getSeconds():-1,t("seconds"),this.s.secondsRange)},_show:function(){var e=this,t=this.s.namespace,s=(this._position(),$(window).on("scroll."+t+" resize."+t,function(){e._position()}),$("div.DTE_Body_Content").on("scroll."+t,function(){e._position()}),$("div.dataTables_scrollBody").on("scroll."+t,function(){e._position()}),this.dom.input[0].offsetParent);s!==document.body&&$(s).on("scroll."+t,function(){e._position()}),$(document).on("keydown."+t,function(t){9!==t.keyCode&&27!==t.keyCode&&13!==t.keyCode||e._hide()}),setTimeout(function(){$("body").on("click."+t,function(t){$(t.target).parents().filter(e.dom.container).length||t.target===e.dom.input[0]||e._hide()})},10)},_writeOutput:function(t){var e=this.s.d,s="",i=this.dom.input,e=(e&&(s=this._convert(e,null,this.c.format)),i.val(s),new Event("change",{bubbles:!0}));i[0].dispatchEvent(e),"hidden"===i.attr("type")&&this.val(s,!1),t&&i.focus()}}),DateTime.use=function(t){dateLib=t},DateTime._instance=0,DateTime.type="DateTime",DateTime.defaults={attachTo:"body",buttons:{clear:!1,today:!1},classPrefix:"dt-datetime",disableDays:null,firstDay:1,format:"YYYY-MM-DD",hoursAvailable:null,i18n:{clear:"Clear",previous:"Previous",next:"Next",months:["January","February","March","April","May","June","July","August","September","October","November","December"],weekdays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],amPm:["am","pm"],hours:"Hour",minutes:"Minute",seconds:"Second",unknown:"-",today:"Today"},maxDate:null,minDate:null,minutesAvailable:null,minutesIncrement:1,strict:!0,locale:"en",onChange:function(){},secondsAvailable:null,secondsIncrement:1,showWeekNumber:!1,yearRange:25},DateTime.version="1.5.3",DateTime.factory=function(t,e){var s=!1;return t&&t.document&&(window=t,document=t.document),e&&e.fn&&e.fn.jquery&&($=e,s=!0),s},window.DateTime||(window.DateTime=DateTime),window.DataTable&&(window.DataTable.DateTime=DateTime),$.fn.dtDateTime=function(t){return this.each(function(){new DateTime(this,t)})},$.fn.dataTable&&($.fn.dataTable.DateTime=DateTime,$.fn.DataTable.DateTime=DateTime,$.fn.dataTable.Editor)&&($.fn.dataTable.Editor.DateTime=DateTime);export default DateTime;
6
+ import jQuery from"jquery";let $=jQuery;var dateLib,DateTime=function(t,e){if(DateTime.factory(t,e))return DateTime;void 0===dateLib&&(dateLib=window.moment||window.dayjs||window.luxon||null),this.c=$.extend(!0,{},DateTime.defaults,e);e=this.c.classPrefix;if(!dateLib&&"YYYY-MM-DD"!==this.c.format)throw"DateTime: Without momentjs, dayjs or luxon only the format 'YYYY-MM-DD' can be used";"string"==typeof this.c.minDate&&(this.c.minDate=new Date(this.c.minDate)),"string"==typeof this.c.maxDate&&(this.c.maxDate=new Date(this.c.maxDate));var s=$('<div class="'+e+'"><div class="'+e+'-date"><div class="'+e+'-title"><div class="'+e+'-iconLeft"><button type="button"></button></div><div class="'+e+'-iconRight"><button type="button"></button></div><div class="'+e+'-label"><span></span><select class="'+e+'-month"></select></div><div class="'+e+'-label"><span></span><select class="'+e+'-year"></select></div></div><div class="'+e+'-buttons"><a class="'+e+'-clear"></a><a class="'+e+'-today"></a></div><div class="'+e+'-calendar"></div></div><div class="'+e+'-time"><div class="'+e+'-hours"></div><div class="'+e+'-minutes"></div><div class="'+e+'-seconds"></div></div><div class="'+e+'-error"></div></div>');this.dom={container:s,date:s.find("."+e+"-date"),title:s.find("."+e+"-title"),calendar:s.find("."+e+"-calendar"),time:s.find("."+e+"-time"),error:s.find("."+e+"-error"),buttons:s.find("."+e+"-buttons"),clear:s.find("."+e+"-clear"),today:s.find("."+e+"-today"),previous:s.find("."+e+"-iconLeft"),next:s.find("."+e+"-iconRight"),input:$(t)},this.s={d:null,display:null,minutesRange:null,secondsRange:null,namespace:"dateime-"+DateTime._instance++,parts:{date:null!==this.c.format.match(/[YMD]|L(?!T)|l/),time:null!==this.c.format.match(/[Hhm]|LT|LTS/),seconds:-1!==this.c.format.indexOf("s"),hours12:null!==this.c.format.match(/[haA]/)},showTo:null},this.dom.container.append(this.dom.date).append(this.dom.time).append(this.dom.error),this.dom.date.append(this.dom.title).append(this.dom.buttons).append(this.dom.calendar),this.dom.input.addClass("dt-datetime"),this._constructor()};$.extend(DateTime.prototype,{destroy:function(){clearTimeout(this.s.showTo),this._hide(!0),this.dom.container.off().empty(),this.dom.input.removeClass("dt-datetime").removeAttr("autocomplete").off(".datetime")},display:function(t,e){return void 0!==t&&this.s.display.setUTCFullYear(t),void 0!==e&&this.s.display.setUTCMonth(e-1),void 0!==t||void 0!==e?(this._setTitle(),this._setCalander(),this):{month:this.s.display.getUTCMonth()+1,year:this.s.display.getUTCFullYear()}},errorMsg:function(t){var e=this.dom.error;return t?e.html(t):e.empty(),this},hide:function(){return this._hide(),this},max:function(t){return this.c.maxDate="string"==typeof t?new Date(t):t,this._optionsTitle(),this._setCalander(),this},min:function(t){return this.c.minDate="string"==typeof t?new Date(t):t,this._optionsTitle(),this._setCalander(),this},owns:function(t){return 0<$(t).parents().filter(this.dom.container).length},val:function(t,e){var s;return void 0===t?this.s.d:(s=this.s.d,t instanceof Date?this.s.d=this._dateToUtc(t):null===t||""===t?this.s.d=null:"--now"===t?this.s.d=this._dateToUtc(new Date):"string"==typeof t&&(this.s.d=this._dateToUtc(this._convert(t,this.c.format,null))),!e&&void 0!==e||(this.s.d?this._writeOutput(!1,null===s&&null!==this.s.d||null!==s&&null===this.s.d||s.toString()!==this.s.d.toString()):this.dom.input.val(t)),this.s.display=this.s.d?new Date(this.s.d.toString()):new Date,this.s.display.setUTCDate(1),this._setTitle(),this._setCalander(),this._setTime(),this)},valFormat:function(t,e){return e?(this.val(this._convert(e,t,null)),this):this._convert(this.val(),null,t)},_constructor:function(){function a(){var t=o.dom.input.val();t!==e&&(o.c.onChange.call(o,t,o.s.d,o.dom.input),e=t)}var o=this,d=this.c.classPrefix,e=this.dom.input.val();this.s.parts.date||this.dom.date.css("display","none"),this.s.parts.time||this.dom.time.css("display","none"),this.s.parts.seconds||(this.dom.time.children("div."+d+"-seconds").remove(),this.dom.time.children("span").eq(1).remove()),this.c.buttons.clear||this.dom.clear.css("display","none"),this.c.buttons.today||this.dom.today.css("display","none"),this._optionsTitle(),$(document).on("i18n.dt",function(t,e){e.oLanguage.datetime&&($.extend(!0,o.c.i18n,e.oLanguage.datetime),o._optionsTitle())}),"hidden"===this.dom.input.attr("type")&&(this.dom.container.addClass("inline"),this.c.attachTo="input",this.val(this.dom.input.val(),!1),this._show()),e&&this.val(e,!1),this.dom.input.attr("autocomplete","off").on("focus.datetime click.datetime",function(){o.dom.container.is(":visible")||o.dom.input.is(":disabled")||(o.val(o.dom.input.val(),!1),o._show())}).on("keyup.datetime",function(){o.dom.container.is(":visible")&&o.val(o.dom.input.val(),!1)}),this.dom.container[0].addEventListener("focusin",function(t){t.stopPropagation()}),this.dom.container.on("change","select",function(){var t,e,s=$(this),i=s.val();s.hasClass(d+"-month")?(o._correctMonth(o.s.display,i),o._setTitle(),o._setCalander()):s.hasClass(d+"-year")?(o.s.display.setUTCFullYear(i),o._setTitle(),o._setCalander()):s.hasClass(d+"-hours")||s.hasClass(d+"-ampm")?(o.s.parts.hours12?(t=+$(o.dom.container).find("."+d+"-hours").val(),e="pm"===$(o.dom.container).find("."+d+"-ampm").val(),o.s.d.setUTCHours(12!=t||e?e&&12!=t?12+t:t:0)):o.s.d.setUTCHours(i),o._setTime(),o._writeOutput(!0),a()):s.hasClass(d+"-minutes")?(o.s.d.setUTCMinutes(i),o._setTime(),o._writeOutput(!0),a()):s.hasClass(d+"-seconds")&&(o.s.d.setSeconds(i),o._setTime(),o._writeOutput(!0),a()),o.dom.input.focus(),o._position()}).on("click",function(t){var e=o.s.d,s="span"===t.target.nodeName.toLowerCase()?t.target.parentNode:t.target,i=s.nodeName.toLowerCase();if("select"!==i)if(t.stopPropagation(),"a"===i&&(t.preventDefault(),$(s).hasClass(d+"-clear")?(o.s.d=null,o.dom.input.val(""),o._writeOutput(),o._setCalander(),o._setTime(),a()):$(s).hasClass(d+"-today")&&(o.s.display=new Date,o._setTitle(),o._setCalander())),"button"===i){t=$(s),i=t.parent();if(i.hasClass("disabled")&&!i.hasClass("range"))t.blur();else if(i.hasClass(d+"-iconLeft"))o.s.display.setUTCMonth(o.s.display.getUTCMonth()-1),o._setTitle(),o._setCalander(),o.dom.input.focus();else if(i.hasClass(d+"-iconRight"))o._correctMonth(o.s.display,o.s.display.getUTCMonth()+1),o._setTitle(),o._setCalander(),o.dom.input.focus();else{if(t.parents("."+d+"-time").length){var s=t.data("value"),n=t.data("unit"),e=o._needValue();if("minutes"===n){if(i.hasClass("disabled")&&i.hasClass("range"))return o.s.minutesRange=s,void o._setTime();o.s.minutesRange=null}if("seconds"===n){if(i.hasClass("disabled")&&i.hasClass("range"))return o.s.secondsRange=s,void o._setTime();o.s.secondsRange=null}if("am"===s){if(!(12<=e.getUTCHours()))return;s=e.getUTCHours()-12}else if("pm"===s){if(!(e.getUTCHours()<12))return;s=e.getUTCHours()+12}e["hours"===n?"setUTCHours":"minutes"===n?"setUTCMinutes":"setSeconds"](s),o._setCalander(),o._setTime(),o._writeOutput(!0)}else(e=o._needValue()).setUTCDate(1),e.setUTCFullYear(t.data("year")),e.setUTCMonth(t.data("month")),e.setUTCDate(t.data("day")),o._writeOutput(!0),o.s.parts.time?(o._setCalander(),o._setTime()):setTimeout(function(){o._hide()},10);a()}}else o.dom.input.focus()})},_compareDates:function(t,e){return this._isLuxon()?dateLib.DateTime.fromJSDate(t).toUTC().toISODate()===dateLib.DateTime.fromJSDate(e).toUTC().toISODate():this._dateToUtcString(t)===this._dateToUtcString(e)},_convert:function(t,e,s){var i;return t&&(dateLib?this._isLuxon()?(i=t instanceof Date?dateLib.DateTime.fromJSDate(t).toUTC():dateLib.DateTime.fromFormat(t,e)).isValid?s?i.toFormat(s):i.toJSDate():null:(i=t instanceof Date?dateLib.utc(t,void 0,this.c.locale,this.c.strict):dateLib(t,e,this.c.locale,this.c.strict)).isValid()?s?i.format(s):i.toDate():null:!e&&!s||e&&s?t:e?(i=t.match(/(\d{4})\-(\d{2})\-(\d{2})/))?new Date(i[1],i[2]-1,i[3]):null:t.getUTCFullYear()+"-"+this._pad(t.getUTCMonth()+1)+"-"+this._pad(t.getUTCDate()))},_correctMonth:function(t,e){var s=this._daysInMonth(t.getUTCFullYear(),e),i=t.getUTCDate()>s;t.setUTCMonth(e),i&&(t.setUTCDate(s),t.setUTCMonth(e))},_daysInMonth:function(t,e){return[31,t%4==0&&(t%100!=0||t%400==0)?29:28,31,30,31,30,31,31,30,31,30,31][e]},_dateToUtc:function(t){return t&&new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()))},_dateToUtcString:function(t){return this._isLuxon()?dateLib.DateTime.fromJSDate(t).toUTC().toISODate():t.getUTCFullYear()+"-"+this._pad(t.getUTCMonth()+1)+"-"+this._pad(t.getUTCDate())},_hide:function(t){!t&&"hidden"===this.dom.input.attr("type")||(t=this.s.namespace,this.dom.container.detach(),$(window).off("."+t),$(document).off("keydown."+t),$("div.dataTables_scrollBody").off("scroll."+t),$("div.DTE_Body_Content").off("scroll."+t),$(document).off("click."+t),$(this.dom.input[0].offsetParent).off("."+t))},_hours24To12:function(t){return 0===t?12:12<t?t-12:t},_htmlDay:function(t){var e,s;return t.empty?'<td class="empty"></td>':(e=["selectable"],s=this.c.classPrefix,t.disabled&&e.push("disabled"),t.today&&e.push("now"),t.selected&&e.push("selected"),'<td data-day="'+t.day+'" class="'+e.join(" ")+'"><button class="'+s+"-button "+s+'-day" type="button" data-year="'+t.year+'" data-month="'+t.month+'" data-day="'+t.day+'"><span>'+t.day+"</span></button></td>")},_htmlMonth:function(t,e){for(var s=this._dateToUtc(new Date),i=this._daysInMonth(t,e),n=new Date(Date.UTC(t,e,1)).getUTCDay(),a=[],o=[],d=(0<this.c.firstDay&&(n-=this.c.firstDay)<0&&(n+=7),i+n),r=d;7<r;)r-=7;d+=7-r;var l=this.c.minDate,h=this.c.maxDate;l&&(l.setUTCHours(0),l.setUTCMinutes(0),l.setSeconds(0)),h&&(h.setUTCHours(23),h.setUTCMinutes(59),h.setSeconds(59));for(var u=0,c=0;u<d;u++){var m=new Date(Date.UTC(t,e,u-n+1)),f=!!this.s.d&&this._compareDates(m,this.s.d),p=this._compareDates(m,s),T=u<n||i+n<=u,v=l&&m<l||h&&h<m,y=this.c.disableDays,f={day:u-n+1,month:e,year:t,selected:f,today:p,disabled:v=Array.isArray(y)&&-1!==$.inArray(m.getUTCDay(),y)||"function"==typeof y&&!0===y(m)?!0:v,empty:T};o.push(this._htmlDay(f)),7==++c&&(this.c.showWeekNumber&&o.unshift(this._htmlWeekOfYear(u-n,e,t)),a.push("<tr>"+o.join("")+"</tr>"),o=[],c=0)}var _,D=this.c.classPrefix,b=D+"-table";return this.c.showWeekNumber&&(b+=" weekNumber"),l&&(_=l>=new Date(Date.UTC(t,e,1,0,0,0)),this.dom.title.find("div."+D+"-iconLeft").css("display",_?"none":"block")),h&&(_=h<new Date(Date.UTC(t,e+1,1,0,0,0)),this.dom.title.find("div."+D+"-iconRight").css("display",_?"none":"block")),'<table class="'+b+'"><thead>'+this._htmlMonthHead()+"</thead><tbody>"+a.join("")+"</tbody></table>"},_htmlMonthHead:function(){var t=[],e=this.c.firstDay,s=this.c.i18n;this.c.showWeekNumber&&t.push("<th></th>");for(var i=0;i<7;i++)t.push("<th>"+function(t){for(t+=e;7<=t;)t-=7;return s.weekdays[t]}(i)+"</th>");return t.join("")},_htmlWeekOfYear:function(t,e,s){e=new Date(s,e,t,0,0,0,0),e.setDate(e.getDate()+4-(e.getDay()||7)),t=new Date(s,0,1),s=Math.ceil(((e-t)/864e5+1)/7);return'<td class="'+this.c.classPrefix+'-week">'+s+"</td>"},_isLuxon:function(){return!!(dateLib&&dateLib.DateTime&&dateLib.Duration&&dateLib.Settings)},_needValue:function(){return this.s.d||(this.s.d=this._dateToUtc(new Date),this.s.parts.time)||(this.s.d.setUTCHours(0),this.s.d.setUTCMinutes(0),this.s.d.setSeconds(0),this.s.d.setMilliseconds(0)),this.s.d},_options:function(t,e,s){s=s||e;var i=this.dom.container.find("select."+this.c.classPrefix+"-"+t);i.empty();for(var n=0,a=e.length;n<a;n++)i.append('<option value="'+e[n]+'">'+s[n]+"</option>")},_optionSet:function(t,e){var t=this.dom.container.find("select."+this.c.classPrefix+"-"+t),s=t.parent().children("span"),e=(t.val(e),t.find("option:selected"));s.html(0!==e.length?e.text():this.c.i18n.unknown)},_optionsTime:function(n,a,o,d,t){var e,r=this.c.classPrefix,s=this.dom.container.find("div."+r+"-"+n),i=12===a?function(t){return t}:this._pad,l=r+"-table",h=this.c.i18n;if(s.length){function u(t,e,s){12===a&&"number"==typeof t&&(12<=o&&(t+=12),12==t?t=0:24==t&&(t=12));var i=o===t||"am"===t&&o<12||"pm"===t&&12<=o?"selected":"";return"number"==typeof t&&d&&-1===$.inArray(t,d)&&(i+=" disabled"),s&&(i+=" "+s),'<td class="selectable '+i+'"><button class="'+r+"-button "+r+'-day" type="button" data-unit="'+n+'" data-value="'+t+'"><span>'+e+"</span></button></td>"}var c="",m=10;if(12===a){for(c+="<tr>",e=1;e<=6;e++)c+=u(e,i(e));for(c=(c+=u("am",h.amPm[0]))+"</tr>"+"<tr>",e=7;e<=12;e++)c+=u(e,i(e));c=c+u("pm",h.amPm[1])+"</tr>",m=7}else{if(24===a)for(var f=0,p=0;p<4;p++){for(c+="<tr>",e=0;e<6;e++)c+=u(f,i(f)),f++;c+="</tr>"}else{for(c+="<tr>",p=0;p<60;p+=10)c+=u(p,i(p),"range");var c=c+"</tr>"+('</tbody></thead><table class="'+l+" "+l+'-nospace"><tbody>'),T=null!==t?t:-1===o?0:10*Math.floor(o/10);for(c+="<tr>",p=T+1;p<T+10;p++)c+=u(p,i(p));c+="</tr>"}m=6}s.empty().append('<table class="'+l+'"><thead><tr><th colspan="'+m+'">'+h[n]+"</th></tr></thead><tbody>"+c+"</tbody></table>")}},_optionsTitle:function(){var t=this.c.i18n,e=this.c.minDate,s=this.c.maxDate,e=e?e.getFullYear():null,s=s?s.getFullYear():null,e=null!==e?e:(new Date).getFullYear()-this.c.yearRange,s=null!==s?s:(new Date).getFullYear()+this.c.yearRange;this._options("month",this._range(0,11),t.months),this._options("year",this._range(e,s)),this.dom.today.text(t.today).text(t.today),this.dom.clear.text(t.clear).text(t.clear),this.dom.previous.attr("title",t.previous).children("button").text(t.previous),this.dom.next.attr("title",t.next).children("button").text(t.next)},_pad:function(t){return t<10?"0"+t:t},_position:function(){var t,e,s,i="input"===this.c.attachTo?this.dom.input.position():this.dom.input.offset(),n=this.dom.container,a=this.dom.input.outerHeight();n.hasClass("inline")?n.insertAfter(this.dom.input):(this.s.parts.date&&this.s.parts.time&&550<$(window).width()?n.addClass("horizontal"):n.removeClass("horizontal"),"input"===this.c.attachTo?n.css({top:i.top+a,left:i.left}).insertAfter(this.dom.input):n.css({top:i.top+a,left:i.left}).appendTo("body"),t=n.outerHeight(),e=n.outerWidth(),s=$(window).scrollTop(),i.top+a+t-s>$(window).height()&&(a=i.top-t,n.css("top",a<0?0:a)),e+i.left>$(window).width()&&(s=$(window).width()-e-5,"input"===this.c.attachTo&&(s-=$(n).offsetParent().offset().left),n.css("left",s<0?0:s)))},_range:function(t,e,s){var i=[];s=s||1;for(var n=t;n<=e;n+=s)i.push(n);return i},_setCalander:function(){this.s.display&&this.dom.calendar.empty().append(this._htmlMonth(this.s.display.getUTCFullYear(),this.s.display.getUTCMonth()))},_setTitle:function(){this._optionSet("month",this.s.display.getUTCMonth()),this._optionSet("year",this.s.display.getUTCFullYear())},_setTime:function(){function t(t){return e.c[t+"Available"]||e._range(0,59,e.c[t+"Increment"])}var e=this,s=this.s.d,i=null,n=null!=(i=this._isLuxon()?dateLib.DateTime.fromJSDate(s).toUTC():i)?i.hour:s?s.getUTCHours():-1;this._optionsTime("hours",this.s.parts.hours12?12:24,n,this.c.hoursAvailable),this._optionsTime("minutes",60,null!=i?i.minute:s?s.getUTCMinutes():-1,t("minutes"),this.s.minutesRange),this._optionsTime("seconds",60,null!=i?i.second:s?s.getSeconds():-1,t("seconds"),this.s.secondsRange)},_show:function(){var e=this,t=this.s.namespace,s=(this._position(),$(window).on("scroll."+t+" resize."+t,function(){e._position()}),$("div.DTE_Body_Content").on("scroll."+t,function(){e._position()}),$("div.dataTables_scrollBody").on("scroll."+t,function(){e._position()}),this.dom.input[0].offsetParent);s!==document.body&&$(s).on("scroll."+t,function(){e._position()}),$(document).on("keydown."+t,function(t){9!==t.keyCode&&27!==t.keyCode&&13!==t.keyCode||e._hide()}),clearTimeout(this.s.showTo),this.dom.input.on("blur",function(t){e.s.showTo=setTimeout(function(){var t=document.activeElement.tagName.toLowerCase();document.activeElement===e.dom.input[0]||e.dom.container.find(document.activeElement).length||["input","select","button"].includes(t)&&e.hide()},10)}),setTimeout(function(){$(document).on("click."+t,function(t){$(t.target).parents().filter(e.dom.container).length||t.target===e.dom.input[0]||e._hide()})},10)},_writeOutput:function(t,e){var s=this.s.d,i="",n=this.dom.input;s&&(i=this._convert(s,null,this.c.format)),n.val(i),void 0!==e&&!e||(s=new Event("change",{bubbles:!0}),n[0].dispatchEvent(s)),"hidden"===n.attr("type")&&this.val(i,!1),t&&n.focus()}}),DateTime.use=function(t){dateLib=t},DateTime._instance=0,DateTime.type="DateTime",DateTime.defaults={attachTo:"body",buttons:{clear:!1,today:!1},classPrefix:"dt-datetime",disableDays:null,firstDay:1,format:"YYYY-MM-DD",hoursAvailable:null,i18n:{clear:"Clear",previous:"Previous",next:"Next",months:["January","February","March","April","May","June","July","August","September","October","November","December"],weekdays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],amPm:["am","pm"],hours:"Hour",minutes:"Minute",seconds:"Second",unknown:"-",today:"Today"},maxDate:null,minDate:null,minutesAvailable:null,minutesIncrement:1,strict:!0,locale:"en",onChange:function(){},secondsAvailable:null,secondsIncrement:1,showWeekNumber:!1,yearRange:25},DateTime.version="1.5.5",DateTime.factory=function(t,e){var s=!1;return t&&t.document&&(window=t,document=t.document),e&&e.fn&&e.fn.jquery&&($=e,s=!0),s},window.DateTime||(window.DateTime=DateTime),window.DataTable&&(window.DataTable.DateTime=DateTime),$.fn.dtDateTime=function(t){return this.each(function(){new DateTime(this,t)})},$.fn.dataTable&&($.fn.dataTable.DateTime=DateTime,$.fn.DataTable.DateTime=DateTime,$.fn.dataTable.Editor)&&($.fn.dataTable.Editor.DateTime=DateTime);export default DateTime;
@@ -1,4 +1,4 @@
1
- /*! DateTime picker for DataTables.net v1.5.3
1
+ /*! DateTime picker for DataTables.net v1.5.5
2
2
  *
3
3
  * © SpryMedia Ltd, all rights reserved.
4
4
  * License: MIT datatables.net/license/mit
@@ -12,7 +12,7 @@ let $ = jQuery;
12
12
 
13
13
  /**
14
14
  * @summary DateTime picker for DataTables.net
15
- * @version 1.5.3
15
+ * @version 1.5.5
16
16
  * @file dataTables.dateTime.js
17
17
  * @author SpryMedia Ltd
18
18
  * @contact www.datatables.net/contact
@@ -147,7 +147,10 @@ var DateTime = function (input, opts) {
147
147
  time: this.c.format.match(/[Hhm]|LT|LTS/) !== null,
148
148
  seconds: this.c.format.indexOf('s') !== -1,
149
149
  hours12: this.c.format.match(/[haA]/) !== null
150
- }
150
+ },
151
+
152
+ /** Timeout when showing the control to listen for a blur */
153
+ showTo: null
151
154
  };
152
155
 
153
156
  this.dom.container
@@ -174,6 +177,7 @@ $.extend(DateTime.prototype, {
174
177
  * Destroy the control
175
178
  */
176
179
  destroy: function () {
180
+ clearTimeout(this.s.showTo);
177
181
  this._hide(true);
178
182
  this.dom.container.off().empty();
179
183
  this.dom.input
@@ -267,6 +271,8 @@ $.extend(DateTime.prototype, {
267
271
  return this.s.d;
268
272
  }
269
273
 
274
+ var oldVal = this.s.d;
275
+
270
276
  if (set instanceof Date) {
271
277
  this.s.d = this._dateToUtc(set);
272
278
  }
@@ -284,7 +290,12 @@ $.extend(DateTime.prototype, {
284
290
 
285
291
  if (write || write === undefined) {
286
292
  if (this.s.d) {
287
- this._writeOutput();
293
+ this._writeOutput(
294
+ false,
295
+ (oldVal === null && this.s.d !== null) ||
296
+ (oldVal !== null && this.s.d === null) ||
297
+ oldVal.toString() !== this.s.d.toString()
298
+ );
288
299
  }
289
300
  else {
290
301
  // The input value was not valid...
@@ -827,7 +838,7 @@ $.extend(DateTime.prototype, {
827
838
  $(document).off('keydown.' + namespace);
828
839
  $('div.dataTables_scrollBody').off('scroll.' + namespace);
829
840
  $('div.DTE_Body_Content').off('scroll.' + namespace);
830
- $('body').off('click.' + namespace);
841
+ $(document).off('click.' + namespace);
831
842
  $(this.dom.input[0].offsetParent).off('.' + namespace);
832
843
  },
833
844
 
@@ -1365,7 +1376,7 @@ $.extend(DateTime.prototype, {
1365
1376
 
1366
1377
  // Correct to the right
1367
1378
  if (calWidth + offset.left > $(window).width()) {
1368
- var newLeft = $(window).width() - calWidth;
1379
+ var newLeft = $(window).width() - calWidth - 5;
1369
1380
 
1370
1381
  // Account for elements which are inside a position absolute element
1371
1382
  if (this.c.attachTo === 'input') {
@@ -1523,11 +1534,34 @@ $.extend(DateTime.prototype, {
1523
1534
  }
1524
1535
  });
1525
1536
 
1537
+ clearTimeout(this.s.showTo);
1538
+
1539
+ // We can't use blur to hide, as we want to keep the picker open while
1540
+ // to let the user select from it. But if focus is moved outside of of
1541
+ // the picker, then we auto hide.
1542
+ this.dom.input.on('blur', function (e) {
1543
+ that.s.showTo = setTimeout(function () {
1544
+ let name = document.activeElement.tagName.toLowerCase();
1545
+
1546
+ if (document.activeElement === that.dom.input[0]) {
1547
+ return;
1548
+ }
1549
+
1550
+ if (that.dom.container.find(document.activeElement).length) {
1551
+ return;
1552
+ }
1553
+
1554
+ if (['input', 'select', 'button'].includes(name)) {
1555
+ that.hide();
1556
+ }
1557
+ }, 10);
1558
+ });
1559
+
1526
1560
  // Hide if clicking outside of the widget - but in a different click
1527
1561
  // event from the one that was used to trigger the show (bubble and
1528
1562
  // inline)
1529
1563
  setTimeout(function () {
1530
- $('body').on('click.' + namespace, function (e) {
1564
+ $(document).on('click.' + namespace, function (e) {
1531
1565
  var parents = $(e.target).parents();
1532
1566
 
1533
1567
  if (!parents.filter(that.dom.container).length && e.target !== that.dom.input[0]) {
@@ -1543,7 +1577,7 @@ $.extend(DateTime.prototype, {
1543
1577
  *
1544
1578
  * @private
1545
1579
  */
1546
- _writeOutput: function (focus) {
1580
+ _writeOutput: function (focus, change) {
1547
1581
  var date = this.s.d;
1548
1582
  var out = '';
1549
1583
  var input = this.dom.input;
@@ -1554,10 +1588,12 @@ $.extend(DateTime.prototype, {
1554
1588
 
1555
1589
  input.val(out);
1556
1590
 
1557
- // Create a DOM synthetic event. Can't use $().trigger() as
1558
- // that doesn't actually trigger non-jQuery event listeners
1559
- var event = new Event('change', { bubbles: true });
1560
- input[0].dispatchEvent(event);
1591
+ if (change === undefined || change) {
1592
+ // Create a DOM synthetic event. Can't use $().trigger() as
1593
+ // that doesn't actually trigger non-jQuery event listeners
1594
+ var event = new Event('change', { bubbles: true });
1595
+ input[0].dispatchEvent(event);
1596
+ }
1561
1597
 
1562
1598
  if (input.attr('type') === 'hidden') {
1563
1599
  this.val(out, false);
@@ -1654,7 +1690,7 @@ DateTime.defaults = {
1654
1690
  yearRange: 25
1655
1691
  };
1656
1692
 
1657
- DateTime.version = '1.5.3';
1693
+ DateTime.version = '1.5.5';
1658
1694
 
1659
1695
  /**
1660
1696
  * CommonJS factory function pass through. Matches DataTables.
@@ -35,7 +35,7 @@ interface IDateTimeOptions {
35
35
  }
36
36
 
37
37
  export class DateTime {
38
- static use(moment: any); // Moment library
38
+ static use(moment: any): void; // Moment library
39
39
 
40
40
  constructor(el: HTMLElement, opts?: IDateTimeOptions);
41
41
 
@@ -1,4 +1,4 @@
1
- /*! DateTime picker for DataTables.net v1.5.3
1
+ /*! DateTime picker for DataTables.net v1.5.5
2
2
  *
3
3
  * © SpryMedia Ltd, all rights reserved.
4
4
  * License: MIT datatables.net/license/mit
@@ -6,7 +6,7 @@
6
6
 
7
7
  /**
8
8
  * @summary DateTime picker for DataTables.net
9
- * @version 1.5.3
9
+ * @version 1.5.5
10
10
  * @file dataTables.dateTime.js
11
11
  * @author SpryMedia Ltd
12
12
  * @contact www.datatables.net/contact
@@ -141,7 +141,10 @@ var DateTime = function (input, opts) {
141
141
  time: this.c.format.match(/[Hhm]|LT|LTS/) !== null,
142
142
  seconds: this.c.format.indexOf('s') !== -1,
143
143
  hours12: this.c.format.match(/[haA]/) !== null
144
- }
144
+ },
145
+
146
+ /** Timeout when showing the control to listen for a blur */
147
+ showTo: null
145
148
  };
146
149
 
147
150
  this.dom.container
@@ -168,6 +171,7 @@ $.extend(DateTime.prototype, {
168
171
  * Destroy the control
169
172
  */
170
173
  destroy: function () {
174
+ clearTimeout(this.s.showTo);
171
175
  this._hide(true);
172
176
  this.dom.container.off().empty();
173
177
  this.dom.input
@@ -261,6 +265,8 @@ $.extend(DateTime.prototype, {
261
265
  return this.s.d;
262
266
  }
263
267
 
268
+ var oldVal = this.s.d;
269
+
264
270
  if (set instanceof Date) {
265
271
  this.s.d = this._dateToUtc(set);
266
272
  }
@@ -278,7 +284,12 @@ $.extend(DateTime.prototype, {
278
284
 
279
285
  if (write || write === undefined) {
280
286
  if (this.s.d) {
281
- this._writeOutput();
287
+ this._writeOutput(
288
+ false,
289
+ (oldVal === null && this.s.d !== null) ||
290
+ (oldVal !== null && this.s.d === null) ||
291
+ oldVal.toString() !== this.s.d.toString()
292
+ );
282
293
  }
283
294
  else {
284
295
  // The input value was not valid...
@@ -821,7 +832,7 @@ $.extend(DateTime.prototype, {
821
832
  $(document).off('keydown.' + namespace);
822
833
  $('div.dataTables_scrollBody').off('scroll.' + namespace);
823
834
  $('div.DTE_Body_Content').off('scroll.' + namespace);
824
- $('body').off('click.' + namespace);
835
+ $(document).off('click.' + namespace);
825
836
  $(this.dom.input[0].offsetParent).off('.' + namespace);
826
837
  },
827
838
 
@@ -1359,7 +1370,7 @@ $.extend(DateTime.prototype, {
1359
1370
 
1360
1371
  // Correct to the right
1361
1372
  if (calWidth + offset.left > $(window).width()) {
1362
- var newLeft = $(window).width() - calWidth;
1373
+ var newLeft = $(window).width() - calWidth - 5;
1363
1374
 
1364
1375
  // Account for elements which are inside a position absolute element
1365
1376
  if (this.c.attachTo === 'input') {
@@ -1517,11 +1528,34 @@ $.extend(DateTime.prototype, {
1517
1528
  }
1518
1529
  });
1519
1530
 
1531
+ clearTimeout(this.s.showTo);
1532
+
1533
+ // We can't use blur to hide, as we want to keep the picker open while
1534
+ // to let the user select from it. But if focus is moved outside of of
1535
+ // the picker, then we auto hide.
1536
+ this.dom.input.on('blur', function (e) {
1537
+ that.s.showTo = setTimeout(function () {
1538
+ let name = document.activeElement.tagName.toLowerCase();
1539
+
1540
+ if (document.activeElement === that.dom.input[0]) {
1541
+ return;
1542
+ }
1543
+
1544
+ if (that.dom.container.find(document.activeElement).length) {
1545
+ return;
1546
+ }
1547
+
1548
+ if (['input', 'select', 'button'].includes(name)) {
1549
+ that.hide();
1550
+ }
1551
+ }, 10);
1552
+ });
1553
+
1520
1554
  // Hide if clicking outside of the widget - but in a different click
1521
1555
  // event from the one that was used to trigger the show (bubble and
1522
1556
  // inline)
1523
1557
  setTimeout(function () {
1524
- $('body').on('click.' + namespace, function (e) {
1558
+ $(document).on('click.' + namespace, function (e) {
1525
1559
  var parents = $(e.target).parents();
1526
1560
 
1527
1561
  if (!parents.filter(that.dom.container).length && e.target !== that.dom.input[0]) {
@@ -1537,7 +1571,7 @@ $.extend(DateTime.prototype, {
1537
1571
  *
1538
1572
  * @private
1539
1573
  */
1540
- _writeOutput: function (focus) {
1574
+ _writeOutput: function (focus, change) {
1541
1575
  var date = this.s.d;
1542
1576
  var out = '';
1543
1577
  var input = this.dom.input;
@@ -1548,10 +1582,12 @@ $.extend(DateTime.prototype, {
1548
1582
 
1549
1583
  input.val(out);
1550
1584
 
1551
- // Create a DOM synthetic event. Can't use $().trigger() as
1552
- // that doesn't actually trigger non-jQuery event listeners
1553
- var event = new Event('change', { bubbles: true });
1554
- input[0].dispatchEvent(event);
1585
+ if (change === undefined || change) {
1586
+ // Create a DOM synthetic event. Can't use $().trigger() as
1587
+ // that doesn't actually trigger non-jQuery event listeners
1588
+ var event = new Event('change', { bubbles: true });
1589
+ input[0].dispatchEvent(event);
1590
+ }
1555
1591
 
1556
1592
  if (input.attr('type') === 'hidden') {
1557
1593
  this.val(out, false);
@@ -1648,7 +1684,7 @@ DateTime.defaults = {
1648
1684
  yearRange: 25
1649
1685
  };
1650
1686
 
1651
- DateTime.version = '1.5.3';
1687
+ DateTime.version = '1.5.5';
1652
1688
 
1653
1689
  /**
1654
1690
  * CommonJS factory function pass through. Matches DataTables.
package/nuget.nuspec CHANGED
@@ -2,7 +2,7 @@
2
2
  <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
3
3
  <metadata>
4
4
  <id>datatables.net-datetime</id>
5
- <version>1.5.0</version>
5
+ <version>1.5.5</version>
6
6
  <description>DataTables date / time picker</description>
7
7
  <authors>SpryMedia Ltd</authors>
8
8
  <projectUrl>http://datatables.net</projectUrl>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datatables.net-datetime",
3
- "version": "1.5.3",
3
+ "version": "1.5.5",
4
4
  "description": "DateTime picker for DataTables.net",
5
5
  "main": "dist/dataTables.dateTime.js",
6
6
  "module": "dist/dataTables.dateTime.mjs",