flatpickr 4.6.3.1 → 4.6.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +0 -1
- data/lib/flatpickr/version.rb +1 -1
- data/vendor/assets/javascripts/flatpickr.js +224 -171
- data/vendor/assets/javascripts/flatpickr/l10n/ar.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/at.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/az.js +7 -7
- data/vendor/assets/javascripts/flatpickr/l10n/be.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/bg.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/bn.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/bs.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/cat.js +7 -7
- data/vendor/assets/javascripts/flatpickr/l10n/cs.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/cy.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/da.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/de.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/default.js +6 -5
- data/vendor/assets/javascripts/flatpickr/l10n/eo.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/es.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/et.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/fa.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/fi.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/fo.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/fr.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/ga.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/gr.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/he.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/hi.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/hr.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/hu.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/id.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/index.js +387 -256
- data/vendor/assets/javascripts/flatpickr/l10n/is.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/it.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/ja.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/ka.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/km.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/ko.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/kz.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/lt.js +7 -6
- data/vendor/assets/javascripts/flatpickr/l10n/lv.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/mk.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/mn.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/ms.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/my.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/nl.js +7 -7
- data/vendor/assets/javascripts/flatpickr/l10n/no.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/pa.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/pl.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/pt.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/ro.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/ru.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/si.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/sk.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/sl.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/sq.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/sr-cyr.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/sr.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/sv.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/th.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/tr.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/uk.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/uz.js +75 -0
- data/vendor/assets/javascripts/flatpickr/l10n/uz_latn.js +75 -0
- data/vendor/assets/javascripts/flatpickr/l10n/vn.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/zh-tw.js +6 -6
- data/vendor/assets/javascripts/flatpickr/l10n/zh.js +6 -6
- data/vendor/assets/javascripts/flatpickr/plugins/confirmDate/confirmDate.js +33 -17
- data/vendor/assets/javascripts/flatpickr/plugins/labelPlugin/labelPlugin.js +3 -3
- data/vendor/assets/javascripts/flatpickr/plugins/minMaxTimePlugin.js +23 -17
- data/vendor/assets/javascripts/flatpickr/plugins/momentPlugin.js +69 -0
- data/vendor/assets/javascripts/flatpickr/plugins/monthSelect/index.js +55 -25
- data/vendor/assets/javascripts/flatpickr/plugins/rangePlugin.js +165 -142
- data/vendor/assets/javascripts/flatpickr/plugins/scrollPlugin.js +32 -5
- data/vendor/assets/javascripts/flatpickr/plugins/weekSelect/weekSelect.js +17 -4
- data/vendor/assets/stylesheets/flatpickr.css +9 -2
- data/vendor/assets/stylesheets/flatpickr/ie.css +0 -0
- data/vendor/assets/stylesheets/flatpickr/plugins/confirmDate/confirmDate.css +0 -0
- data/vendor/assets/stylesheets/flatpickr/plugins/monthSelect/style.css +0 -0
- data/vendor/assets/stylesheets/flatpickr/themes/airbnb.css +9 -2
- data/vendor/assets/stylesheets/flatpickr/themes/confetti.css +11 -4
- data/vendor/assets/stylesheets/flatpickr/themes/dark.css +9 -2
- data/vendor/assets/stylesheets/flatpickr/themes/light.css +11 -4
- data/vendor/assets/stylesheets/flatpickr/themes/material_blue.css +11 -4
- data/vendor/assets/stylesheets/flatpickr/themes/material_green.css +11 -4
- data/vendor/assets/stylesheets/flatpickr/themes/material_orange.css +11 -4
- data/vendor/assets/stylesheets/flatpickr/themes/material_red.css +11 -4
- metadata +5 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '038bfafb07ac618593d6a03c0450b07564034bc8b028e04374dc0d6c8a8e6b6b'
|
|
4
|
+
data.tar.gz: 65ae8576bf40a925163d142e14a1684e4f572191e2c7c986d671ae63842ecf83
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fba205aed2b25eb29c5f997e9d5a812d3a1f559ad676575b1a5a962f0722e44982aaf2f9f3ef020e0b904b727e316d4b1db539a9c3685b820f86bd36b17bcd78
|
|
7
|
+
data.tar.gz: 2883d490dc16d76606e13526fbac9df17470f87b81929ddd0dc22a173a9904c3b19bfac9868333c2603fc9c1be276cce07b594c83cab7ad6e5a4a5023a337e14
|
data/.gitignore
CHANGED
data/lib/flatpickr/version.rb
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
/* flatpickr v4.6.
|
|
1
|
+
/* flatpickr v4.6.6, @license MIT */
|
|
2
2
|
(function (global, factory) {
|
|
3
3
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
|
4
4
|
typeof define === 'function' && define.amd ? define(factory) :
|
|
5
5
|
(global = global || self, global.flatpickr = factory());
|
|
6
|
-
}(this, function () { 'use strict';
|
|
6
|
+
}(this, (function () { 'use strict';
|
|
7
7
|
|
|
8
8
|
/*! *****************************************************************************
|
|
9
|
-
Copyright (c) Microsoft Corporation.
|
|
10
|
-
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
11
|
-
this file except in compliance with the License. You may obtain a copy of the
|
|
12
|
-
License at http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
Copyright (c) Microsoft Corporation.
|
|
13
10
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
|
17
|
-
MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
11
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
12
|
+
purpose with or without fee is hereby granted.
|
|
18
13
|
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
15
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
16
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
17
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
18
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
19
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
20
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
21
21
|
***************************************************************************** */
|
|
22
22
|
|
|
23
23
|
var __assign = function() {
|
|
@@ -29,7 +29,15 @@
|
|
|
29
29
|
return t;
|
|
30
30
|
};
|
|
31
31
|
return __assign.apply(this, arguments);
|
|
32
|
-
};
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
function __spreadArrays() {
|
|
35
|
+
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
|
36
|
+
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
|
37
|
+
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
|
38
|
+
r[k] = a[j];
|
|
39
|
+
return r;
|
|
40
|
+
}
|
|
33
41
|
|
|
34
42
|
var HOOKS = [
|
|
35
43
|
"onChange",
|
|
@@ -49,12 +57,14 @@
|
|
|
49
57
|
_disable: [],
|
|
50
58
|
_enable: [],
|
|
51
59
|
allowInput: false,
|
|
60
|
+
allowInvalidPreload: false,
|
|
52
61
|
altFormat: "F j, Y",
|
|
53
62
|
altInput: false,
|
|
54
63
|
altInputClass: "form-control input",
|
|
55
64
|
animate: typeof window === "object" &&
|
|
56
65
|
window.navigator.userAgent.indexOf("MSIE") === -1,
|
|
57
66
|
ariaDateFormat: "F j, Y",
|
|
67
|
+
autoFillDefaultTime: true,
|
|
58
68
|
clickOpens: true,
|
|
59
69
|
closeOnSelect: true,
|
|
60
70
|
conjunction: ", ",
|
|
@@ -115,7 +125,7 @@
|
|
|
115
125
|
static: false,
|
|
116
126
|
time_24hr: false,
|
|
117
127
|
weekNumbers: false,
|
|
118
|
-
wrap: false
|
|
128
|
+
wrap: false,
|
|
119
129
|
};
|
|
120
130
|
|
|
121
131
|
var english = {
|
|
@@ -129,7 +139,7 @@
|
|
|
129
139
|
"Thursday",
|
|
130
140
|
"Friday",
|
|
131
141
|
"Saturday",
|
|
132
|
-
]
|
|
142
|
+
],
|
|
133
143
|
},
|
|
134
144
|
months: {
|
|
135
145
|
shorthand: [
|
|
@@ -159,7 +169,7 @@
|
|
|
159
169
|
"October",
|
|
160
170
|
"November",
|
|
161
171
|
"December",
|
|
162
|
-
]
|
|
172
|
+
],
|
|
163
173
|
},
|
|
164
174
|
daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
|
|
165
175
|
firstDayOfWeek: 0,
|
|
@@ -184,12 +194,16 @@
|
|
|
184
194
|
toggleTitle: "Click to toggle",
|
|
185
195
|
amPM: ["AM", "PM"],
|
|
186
196
|
yearAriaLabel: "Year",
|
|
197
|
+
monthAriaLabel: "Month",
|
|
187
198
|
hourAriaLabel: "Hour",
|
|
188
199
|
minuteAriaLabel: "Minute",
|
|
189
|
-
time_24hr: false
|
|
200
|
+
time_24hr: false,
|
|
190
201
|
};
|
|
191
202
|
|
|
192
|
-
var pad = function (number) {
|
|
203
|
+
var pad = function (number, length) {
|
|
204
|
+
if (length === void 0) { length = 2; }
|
|
205
|
+
return ("000" + number).slice(length * -1);
|
|
206
|
+
};
|
|
193
207
|
var int = function (bool) { return (bool === true ? 1 : 0); };
|
|
194
208
|
/* istanbul ignore next */
|
|
195
209
|
function debounce(func, wait, immediate) {
|
|
@@ -254,11 +268,16 @@
|
|
|
254
268
|
return wrapper;
|
|
255
269
|
}
|
|
256
270
|
function getEventTarget(event) {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
271
|
+
try {
|
|
272
|
+
if (typeof event.composedPath === "function") {
|
|
273
|
+
var path = event.composedPath();
|
|
274
|
+
return path[0];
|
|
275
|
+
}
|
|
276
|
+
return event.target;
|
|
277
|
+
}
|
|
278
|
+
catch (error) {
|
|
279
|
+
return event.target;
|
|
260
280
|
}
|
|
261
|
-
return event.target;
|
|
262
281
|
}
|
|
263
282
|
|
|
264
283
|
var doNothing = function () { return undefined; };
|
|
@@ -326,7 +345,7 @@
|
|
|
326
345
|
w: doNothing,
|
|
327
346
|
y: function (dateObj, year) {
|
|
328
347
|
dateObj.setFullYear(2000 + parseFloat(year));
|
|
329
|
-
}
|
|
348
|
+
},
|
|
330
349
|
};
|
|
331
350
|
var tokenRegex = {
|
|
332
351
|
D: "(\\w+)",
|
|
@@ -351,7 +370,7 @@
|
|
|
351
370
|
s: "(\\d\\d|\\d)",
|
|
352
371
|
u: "(.+)",
|
|
353
372
|
w: "(\\d\\d|\\d)",
|
|
354
|
-
y: "(\\d{2})"
|
|
373
|
+
y: "(\\d{2})",
|
|
355
374
|
};
|
|
356
375
|
var formats = {
|
|
357
376
|
// get the date in UTC
|
|
@@ -389,8 +408,8 @@
|
|
|
389
408
|
W: function (date, _, options) {
|
|
390
409
|
return options.getWeek(date);
|
|
391
410
|
},
|
|
392
|
-
// full year e.g. 2016
|
|
393
|
-
Y: function (date) { return date.getFullYear(); },
|
|
411
|
+
// full year e.g. 2016, padded (0001-9999)
|
|
412
|
+
Y: function (date) { return pad(date.getFullYear(), 4); },
|
|
394
413
|
// day in month, padded (01-30)
|
|
395
414
|
d: function (date) { return pad(date.getDate()); },
|
|
396
415
|
// hour from 1-12 (am/pm)
|
|
@@ -414,14 +433,14 @@
|
|
|
414
433
|
// number of the day of the week
|
|
415
434
|
w: function (date) { return date.getDay(); },
|
|
416
435
|
// last two digits of year e.g. 16 for 2016
|
|
417
|
-
y: function (date) { return String(date.getFullYear()).substring(2); }
|
|
436
|
+
y: function (date) { return String(date.getFullYear()).substring(2); },
|
|
418
437
|
};
|
|
419
438
|
|
|
420
439
|
var createDateFormatter = function (_a) {
|
|
421
|
-
var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;
|
|
440
|
+
var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d;
|
|
422
441
|
return function (dateObj, frmt, overrideLocale) {
|
|
423
442
|
var locale = overrideLocale || l10n;
|
|
424
|
-
if (config.formatDate !== undefined) {
|
|
443
|
+
if (config.formatDate !== undefined && !isMobile) {
|
|
425
444
|
return config.formatDate(dateObj, frmt, locale);
|
|
426
445
|
}
|
|
427
446
|
return frmt
|
|
@@ -481,7 +500,7 @@
|
|
|
481
500
|
if (match && (matched = true)) {
|
|
482
501
|
ops[token_1 !== "Y" ? "push" : "unshift"]({
|
|
483
502
|
fn: revFormat[token_1],
|
|
484
|
-
val: match[++matchIndex]
|
|
503
|
+
val: match[++matchIndex],
|
|
485
504
|
});
|
|
486
505
|
}
|
|
487
506
|
}
|
|
@@ -520,7 +539,7 @@
|
|
|
520
539
|
return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);
|
|
521
540
|
};
|
|
522
541
|
var duration = {
|
|
523
|
-
DAY: 86400000
|
|
542
|
+
DAY: 86400000,
|
|
524
543
|
};
|
|
525
544
|
|
|
526
545
|
if (typeof Object.assign !== "function") {
|
|
@@ -548,8 +567,8 @@
|
|
|
548
567
|
var DEBOUNCED_CHANGE_MS = 300;
|
|
549
568
|
function FlatpickrInstance(element, instanceConfig) {
|
|
550
569
|
var self = {
|
|
551
|
-
config: __assign({}, defaults, flatpickr.defaultConfig),
|
|
552
|
-
l10n: english
|
|
570
|
+
config: __assign(__assign({}, defaults), flatpickr.defaultConfig),
|
|
571
|
+
l10n: english,
|
|
553
572
|
};
|
|
554
573
|
self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });
|
|
555
574
|
self._handlers = [];
|
|
@@ -579,7 +598,7 @@
|
|
|
579
598
|
if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))
|
|
580
599
|
return 29;
|
|
581
600
|
return self.l10n.daysInMonth[month];
|
|
582
|
-
}
|
|
601
|
+
},
|
|
583
602
|
};
|
|
584
603
|
}
|
|
585
604
|
function init() {
|
|
@@ -602,8 +621,6 @@
|
|
|
602
621
|
updateValue(false);
|
|
603
622
|
}
|
|
604
623
|
setCalendarWidth();
|
|
605
|
-
self.showTimeInput =
|
|
606
|
-
self.selectedDates.length > 0 || self.config.noCalendar;
|
|
607
624
|
var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
|
608
625
|
/* TODO: investigate this further
|
|
609
626
|
|
|
@@ -623,8 +640,9 @@
|
|
|
623
640
|
}
|
|
624
641
|
function setCalendarWidth() {
|
|
625
642
|
var config = self.config;
|
|
626
|
-
if (config.weekNumbers === false && config.showMonths === 1)
|
|
643
|
+
if (config.weekNumbers === false && config.showMonths === 1) {
|
|
627
644
|
return;
|
|
645
|
+
}
|
|
628
646
|
else if (config.noCalendar !== true) {
|
|
629
647
|
window.requestAnimationFrame(function () {
|
|
630
648
|
if (self.calendarContainer !== undefined) {
|
|
@@ -651,7 +669,12 @@
|
|
|
651
669
|
*/
|
|
652
670
|
function updateTime(e) {
|
|
653
671
|
if (self.selectedDates.length === 0) {
|
|
654
|
-
|
|
672
|
+
var defaultDate = self.config.minDate !== undefined
|
|
673
|
+
? new Date(self.config.minDate.getTime())
|
|
674
|
+
: new Date();
|
|
675
|
+
var _a = getDefaultHours(), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;
|
|
676
|
+
defaultDate.setHours(hours, minutes, seconds, 0);
|
|
677
|
+
self.setDate(defaultDate, false);
|
|
655
678
|
}
|
|
656
679
|
if (e !== undefined && e.type !== "blur") {
|
|
657
680
|
timeWrapper(e);
|
|
@@ -726,10 +749,11 @@
|
|
|
726
749
|
*/
|
|
727
750
|
function setHoursFromDate(dateObj) {
|
|
728
751
|
var date = dateObj || self.latestSelectedDateObj;
|
|
729
|
-
if (date)
|
|
752
|
+
if (date) {
|
|
730
753
|
setHours(date.getHours(), date.getMinutes(), date.getSeconds());
|
|
754
|
+
}
|
|
731
755
|
}
|
|
732
|
-
function
|
|
756
|
+
function getDefaultHours() {
|
|
733
757
|
var hours = self.config.defaultHour;
|
|
734
758
|
var minutes = self.config.defaultMinute;
|
|
735
759
|
var seconds = self.config.defaultSeconds;
|
|
@@ -751,7 +775,7 @@
|
|
|
751
775
|
if (hours === maxHr && minutes === maxMinutes)
|
|
752
776
|
seconds = self.config.maxDate.getSeconds();
|
|
753
777
|
}
|
|
754
|
-
|
|
778
|
+
return { hours: hours, minutes: minutes, seconds: seconds };
|
|
755
779
|
}
|
|
756
780
|
/**
|
|
757
781
|
* Sets the hours, minutes, and optionally seconds
|
|
@@ -782,7 +806,8 @@
|
|
|
782
806
|
* @param {Event} event the keyup or increment event
|
|
783
807
|
*/
|
|
784
808
|
function onYearInput(event) {
|
|
785
|
-
var
|
|
809
|
+
var eventTarget = getEventTarget(event);
|
|
810
|
+
var year = parseInt(eventTarget.value) + (event.delta || 0);
|
|
786
811
|
if (year / 1000 > 1 ||
|
|
787
812
|
(event.key === "Enter" && !/[^\d]/.test(year.toString()))) {
|
|
788
813
|
changeYear(year);
|
|
@@ -804,21 +829,9 @@
|
|
|
804
829
|
element: element,
|
|
805
830
|
event: event,
|
|
806
831
|
handler: handler,
|
|
807
|
-
options: options
|
|
832
|
+
options: options,
|
|
808
833
|
});
|
|
809
834
|
}
|
|
810
|
-
/**
|
|
811
|
-
* A mousedown handler which mimics click.
|
|
812
|
-
* Minimizes latency, since we don't need to wait for mouseup in most cases.
|
|
813
|
-
* Also, avoids handling right clicks.
|
|
814
|
-
*
|
|
815
|
-
* @param {Function} handler the event handler
|
|
816
|
-
*/
|
|
817
|
-
function onClick(handler) {
|
|
818
|
-
return function (evt) {
|
|
819
|
-
evt.which === 1 && handler(evt);
|
|
820
|
-
};
|
|
821
|
-
}
|
|
822
835
|
function triggerChange() {
|
|
823
836
|
triggerEvent("onChange");
|
|
824
837
|
}
|
|
@@ -842,7 +855,7 @@
|
|
|
842
855
|
if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))
|
|
843
856
|
bind(self.daysContainer, "mouseover", function (e) {
|
|
844
857
|
if (self.config.mode === "range")
|
|
845
|
-
onMouseOver(e
|
|
858
|
+
onMouseOver(getEventTarget(e));
|
|
846
859
|
});
|
|
847
860
|
bind(window.document.body, "keydown", onKeyDown);
|
|
848
861
|
if (!self.config.inline && !self.config.static)
|
|
@@ -850,36 +863,38 @@
|
|
|
850
863
|
if (window.ontouchstart !== undefined)
|
|
851
864
|
bind(window.document, "touchstart", documentClick);
|
|
852
865
|
else
|
|
853
|
-
bind(window.document, "
|
|
866
|
+
bind(window.document, "click", documentClick);
|
|
854
867
|
bind(window.document, "focus", documentClick, { capture: true });
|
|
855
868
|
if (self.config.clickOpens === true) {
|
|
856
869
|
bind(self._input, "focus", self.open);
|
|
857
|
-
bind(self._input, "
|
|
870
|
+
bind(self._input, "click", self.open);
|
|
858
871
|
}
|
|
859
872
|
if (self.daysContainer !== undefined) {
|
|
860
|
-
bind(self.monthNav, "
|
|
873
|
+
bind(self.monthNav, "click", onMonthNavClick);
|
|
861
874
|
bind(self.monthNav, ["keyup", "increment"], onYearInput);
|
|
862
|
-
bind(self.daysContainer, "
|
|
875
|
+
bind(self.daysContainer, "click", selectDate);
|
|
863
876
|
}
|
|
864
877
|
if (self.timeContainer !== undefined &&
|
|
865
878
|
self.minuteElement !== undefined &&
|
|
866
879
|
self.hourElement !== undefined) {
|
|
867
880
|
var selText = function (e) {
|
|
868
|
-
return e.
|
|
881
|
+
return getEventTarget(e).select();
|
|
869
882
|
};
|
|
870
883
|
bind(self.timeContainer, ["increment"], updateTime);
|
|
871
884
|
bind(self.timeContainer, "blur", updateTime, { capture: true });
|
|
872
|
-
bind(self.timeContainer, "
|
|
885
|
+
bind(self.timeContainer, "click", timeIncrement);
|
|
873
886
|
bind([self.hourElement, self.minuteElement], ["focus", "click"], selText);
|
|
874
887
|
if (self.secondElement !== undefined)
|
|
875
888
|
bind(self.secondElement, "focus", function () { return self.secondElement && self.secondElement.select(); });
|
|
876
889
|
if (self.amPM !== undefined) {
|
|
877
|
-
bind(self.amPM, "
|
|
890
|
+
bind(self.amPM, "click", function (e) {
|
|
878
891
|
updateTime(e);
|
|
879
892
|
triggerChange();
|
|
880
|
-
})
|
|
893
|
+
});
|
|
881
894
|
}
|
|
882
895
|
}
|
|
896
|
+
if (self.config.allowInput)
|
|
897
|
+
bind(self._input, "blur", onBlur);
|
|
883
898
|
}
|
|
884
899
|
/**
|
|
885
900
|
* Set the calendar view to a particular date.
|
|
@@ -923,8 +938,9 @@
|
|
|
923
938
|
* @param {Event} e the click event
|
|
924
939
|
*/
|
|
925
940
|
function timeIncrement(e) {
|
|
926
|
-
|
|
927
|
-
|
|
941
|
+
var eventTarget = getEventTarget(e);
|
|
942
|
+
if (~eventTarget.className.indexOf("arrow"))
|
|
943
|
+
incrementNumInput(e, eventTarget.classList.contains("arrowUp") ? 1 : -1);
|
|
928
944
|
}
|
|
929
945
|
/**
|
|
930
946
|
* Increments/decrements the value of input associ-
|
|
@@ -936,7 +952,7 @@
|
|
|
936
952
|
* @param {Element} inputElem the input element
|
|
937
953
|
*/
|
|
938
954
|
function incrementNumInput(e, delta, inputElem) {
|
|
939
|
-
var target = e && e
|
|
955
|
+
var target = e && getEventTarget(e);
|
|
940
956
|
var input = inputElem ||
|
|
941
957
|
(target && target.parentNode && target.parentNode.firstChild);
|
|
942
958
|
var event = createEvent("increment");
|
|
@@ -1098,16 +1114,20 @@
|
|
|
1098
1114
|
: self.todayDateElem !== undefined && isInView(self.todayDateElem)
|
|
1099
1115
|
? self.todayDateElem
|
|
1100
1116
|
: getFirstAvailableDay(offset > 0 ? 1 : -1);
|
|
1101
|
-
if (startElem === undefined)
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1117
|
+
if (startElem === undefined) {
|
|
1118
|
+
self._input.focus();
|
|
1119
|
+
}
|
|
1120
|
+
else if (!dayFocused) {
|
|
1121
|
+
focusOnDayElem(startElem);
|
|
1122
|
+
}
|
|
1123
|
+
else {
|
|
1124
|
+
getNextAvailableDay(startElem, offset);
|
|
1125
|
+
}
|
|
1106
1126
|
}
|
|
1107
1127
|
function buildMonthDays(year, month) {
|
|
1108
1128
|
var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;
|
|
1109
|
-
var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12);
|
|
1110
|
-
var daysInMonth = self.utils.getDaysInMonth(month), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? "prevMonthDay hidden" : "prevMonthDay", nextMonthDayClass = isMultiMonth ? "nextMonthDay hidden" : "nextMonthDay";
|
|
1129
|
+
var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);
|
|
1130
|
+
var daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? "prevMonthDay hidden" : "prevMonthDay", nextMonthDayClass = isMultiMonth ? "nextMonthDay hidden" : "nextMonthDay";
|
|
1111
1131
|
var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;
|
|
1112
1132
|
// prepend days from the ending of previous month
|
|
1113
1133
|
for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {
|
|
@@ -1186,8 +1206,9 @@
|
|
|
1186
1206
|
}
|
|
1187
1207
|
else {
|
|
1188
1208
|
self.monthsDropdownContainer = createElement("select", "flatpickr-monthDropdown-months");
|
|
1209
|
+
self.monthsDropdownContainer.setAttribute("aria-label", self.l10n.monthAriaLabel);
|
|
1189
1210
|
bind(self.monthsDropdownContainer, "change", function (e) {
|
|
1190
|
-
var target = e
|
|
1211
|
+
var target = getEventTarget(e);
|
|
1191
1212
|
var selectedMonth = parseInt(target.value, 10);
|
|
1192
1213
|
self.changeMonth(selectedMonth - self.currentMonth);
|
|
1193
1214
|
triggerEvent("onMonthChange");
|
|
@@ -1215,7 +1236,7 @@
|
|
|
1215
1236
|
return {
|
|
1216
1237
|
container: container,
|
|
1217
1238
|
yearElement: yearElement,
|
|
1218
|
-
monthElement: monthElement
|
|
1239
|
+
monthElement: monthElement,
|
|
1219
1240
|
};
|
|
1220
1241
|
}
|
|
1221
1242
|
function buildMonths() {
|
|
@@ -1249,7 +1270,7 @@
|
|
|
1249
1270
|
toggleClass(self.prevMonthNav, "flatpickr-disabled", bool);
|
|
1250
1271
|
self.__hidePrevMonthArrow = bool;
|
|
1251
1272
|
}
|
|
1252
|
-
}
|
|
1273
|
+
},
|
|
1253
1274
|
});
|
|
1254
1275
|
Object.defineProperty(self, "_hideNextMonthArrow", {
|
|
1255
1276
|
get: function () { return self.__hideNextMonthArrow; },
|
|
@@ -1258,7 +1279,7 @@
|
|
|
1258
1279
|
toggleClass(self.nextMonthNav, "flatpickr-disabled", bool);
|
|
1259
1280
|
self.__hideNextMonthArrow = bool;
|
|
1260
1281
|
}
|
|
1261
|
-
}
|
|
1282
|
+
},
|
|
1262
1283
|
});
|
|
1263
1284
|
self.currentYearElement = self.yearElements[0];
|
|
1264
1285
|
updateNavigationCurrentMonth();
|
|
@@ -1272,11 +1293,11 @@
|
|
|
1272
1293
|
self.timeContainer.tabIndex = -1;
|
|
1273
1294
|
var separator = createElement("span", "flatpickr-time-separator", ":");
|
|
1274
1295
|
var hourInput = createNumberInput("flatpickr-hour", {
|
|
1275
|
-
"aria-label": self.l10n.hourAriaLabel
|
|
1296
|
+
"aria-label": self.l10n.hourAriaLabel,
|
|
1276
1297
|
});
|
|
1277
1298
|
self.hourElement = hourInput.getElementsByTagName("input")[0];
|
|
1278
1299
|
var minuteInput = createNumberInput("flatpickr-minute", {
|
|
1279
|
-
"aria-label": self.l10n.minuteAriaLabel
|
|
1300
|
+
"aria-label": self.l10n.minuteAriaLabel,
|
|
1280
1301
|
});
|
|
1281
1302
|
self.minuteElement = minuteInput.getElementsByTagName("input")[0];
|
|
1282
1303
|
self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;
|
|
@@ -1340,9 +1361,9 @@
|
|
|
1340
1361
|
return;
|
|
1341
1362
|
}
|
|
1342
1363
|
var firstDayOfWeek = self.l10n.firstDayOfWeek;
|
|
1343
|
-
var weekdays = self.l10n.weekdays.shorthand
|
|
1364
|
+
var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);
|
|
1344
1365
|
if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {
|
|
1345
|
-
weekdays = weekdays.splice(firstDayOfWeek, weekdays.length)
|
|
1366
|
+
weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));
|
|
1346
1367
|
}
|
|
1347
1368
|
for (var i = self.config.showMonths; i--;) {
|
|
1348
1369
|
self.weekdayContainer.children[i].innerHTML = "\n <span class='flatpickr-weekday'>\n " + weekdays.join("</span><span class='flatpickr-weekday'>") + "\n </span>\n ";
|
|
@@ -1357,7 +1378,7 @@
|
|
|
1357
1378
|
weekWrapper.appendChild(weekNumbers);
|
|
1358
1379
|
return {
|
|
1359
1380
|
weekWrapper: weekWrapper,
|
|
1360
|
-
weekNumbers: weekNumbers
|
|
1381
|
+
weekNumbers: weekNumbers,
|
|
1361
1382
|
};
|
|
1362
1383
|
}
|
|
1363
1384
|
function changeMonth(value, isOffset) {
|
|
@@ -1391,9 +1412,9 @@
|
|
|
1391
1412
|
self.currentYear = self._initialDate.getFullYear();
|
|
1392
1413
|
self.currentMonth = self._initialDate.getMonth();
|
|
1393
1414
|
}
|
|
1394
|
-
self.showTimeInput = false;
|
|
1395
1415
|
if (self.config.enableTime === true) {
|
|
1396
|
-
|
|
1416
|
+
var _a = getDefaultHours(), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;
|
|
1417
|
+
setHours(hours, minutes, seconds);
|
|
1397
1418
|
}
|
|
1398
1419
|
self.redraw();
|
|
1399
1420
|
if (triggerChangeEvent)
|
|
@@ -1448,7 +1469,6 @@
|
|
|
1448
1469
|
self.input.type = self.input._type;
|
|
1449
1470
|
self.input.classList.remove("flatpickr-input");
|
|
1450
1471
|
self.input.removeAttribute("readonly");
|
|
1451
|
-
self.input.value = "";
|
|
1452
1472
|
}
|
|
1453
1473
|
[
|
|
1454
1474
|
"_showTimeInput",
|
|
@@ -1518,11 +1538,15 @@
|
|
|
1518
1538
|
if (lostFocus && isIgnored) {
|
|
1519
1539
|
if (self.timeContainer !== undefined &&
|
|
1520
1540
|
self.minuteElement !== undefined &&
|
|
1521
|
-
self.hourElement !== undefined
|
|
1541
|
+
self.hourElement !== undefined &&
|
|
1542
|
+
self.input.value !== "" &&
|
|
1543
|
+
self.input.value !== undefined) {
|
|
1522
1544
|
updateTime();
|
|
1523
1545
|
}
|
|
1524
1546
|
self.close();
|
|
1525
|
-
if (self.config
|
|
1547
|
+
if (self.config &&
|
|
1548
|
+
self.config.mode === "range" &&
|
|
1549
|
+
self.selectedDates.length === 1) {
|
|
1526
1550
|
self.clear(false);
|
|
1527
1551
|
self.redraw();
|
|
1528
1552
|
}
|
|
@@ -1598,9 +1622,19 @@
|
|
|
1598
1622
|
function isInView(elem) {
|
|
1599
1623
|
if (self.daysContainer !== undefined)
|
|
1600
1624
|
return (elem.className.indexOf("hidden") === -1 &&
|
|
1625
|
+
elem.className.indexOf("flatpickr-disabled") === -1 &&
|
|
1601
1626
|
self.daysContainer.contains(elem));
|
|
1602
1627
|
return false;
|
|
1603
1628
|
}
|
|
1629
|
+
function onBlur(e) {
|
|
1630
|
+
var isInput = e.target === self._input;
|
|
1631
|
+
if (isInput &&
|
|
1632
|
+
!(e.relatedTarget && isCalendarElem(e.relatedTarget))) {
|
|
1633
|
+
self.setDate(self._input.value, true, e.target === self.altInput
|
|
1634
|
+
? self.config.altFormat
|
|
1635
|
+
: self.config.dateFormat);
|
|
1636
|
+
}
|
|
1637
|
+
}
|
|
1604
1638
|
function onKeyDown(e) {
|
|
1605
1639
|
// e.key e.keyCode
|
|
1606
1640
|
// "Backspace" 8
|
|
@@ -1612,26 +1646,29 @@
|
|
|
1612
1646
|
// "ArrowRight" (IE "Right") 39
|
|
1613
1647
|
// "ArrowDown" (IE "Down") 40
|
|
1614
1648
|
// "Delete" (IE "Del") 46
|
|
1615
|
-
var
|
|
1649
|
+
var eventTarget = getEventTarget(e);
|
|
1650
|
+
var isInput = self.config.wrap
|
|
1651
|
+
? element.contains(eventTarget)
|
|
1652
|
+
: eventTarget === self._input;
|
|
1616
1653
|
var allowInput = self.config.allowInput;
|
|
1617
1654
|
var allowKeydown = self.isOpen && (!allowInput || !isInput);
|
|
1618
1655
|
var allowInlineKeydown = self.config.inline && isInput && !allowInput;
|
|
1619
1656
|
if (e.keyCode === 13 && isInput) {
|
|
1620
1657
|
if (allowInput) {
|
|
1621
|
-
self.setDate(self._input.value, true,
|
|
1658
|
+
self.setDate(self._input.value, true, eventTarget === self.altInput
|
|
1622
1659
|
? self.config.altFormat
|
|
1623
1660
|
: self.config.dateFormat);
|
|
1624
|
-
return
|
|
1661
|
+
return eventTarget.blur();
|
|
1625
1662
|
}
|
|
1626
1663
|
else {
|
|
1627
1664
|
self.open();
|
|
1628
1665
|
}
|
|
1629
1666
|
}
|
|
1630
|
-
else if (isCalendarElem(
|
|
1667
|
+
else if (isCalendarElem(eventTarget) ||
|
|
1631
1668
|
allowKeydown ||
|
|
1632
1669
|
allowInlineKeydown) {
|
|
1633
1670
|
var isTimeObj = !!self.timeContainer &&
|
|
1634
|
-
self.timeContainer.contains(
|
|
1671
|
+
self.timeContainer.contains(eventTarget);
|
|
1635
1672
|
switch (e.keyCode) {
|
|
1636
1673
|
case 13:
|
|
1637
1674
|
if (isTimeObj) {
|
|
@@ -1677,9 +1714,10 @@
|
|
|
1677
1714
|
case 40:
|
|
1678
1715
|
e.preventDefault();
|
|
1679
1716
|
var delta = e.keyCode === 40 ? 1 : -1;
|
|
1680
|
-
if ((self.daysContainer &&
|
|
1681
|
-
|
|
1682
|
-
|
|
1717
|
+
if ((self.daysContainer &&
|
|
1718
|
+
eventTarget.$i !== undefined) ||
|
|
1719
|
+
eventTarget === self.input ||
|
|
1720
|
+
eventTarget === self.altInput) {
|
|
1683
1721
|
if (e.ctrlKey) {
|
|
1684
1722
|
e.stopPropagation();
|
|
1685
1723
|
changeYear(self.currentYear - delta);
|
|
@@ -1688,7 +1726,7 @@
|
|
|
1688
1726
|
else if (!isTimeObj)
|
|
1689
1727
|
focusOnDay(undefined, delta * 7);
|
|
1690
1728
|
}
|
|
1691
|
-
else if (
|
|
1729
|
+
else if (eventTarget === self.currentYearElement) {
|
|
1692
1730
|
changeYear(self.currentYear - delta);
|
|
1693
1731
|
}
|
|
1694
1732
|
else if (self.config.enableTime) {
|
|
@@ -1708,7 +1746,7 @@
|
|
|
1708
1746
|
]
|
|
1709
1747
|
.concat(self.pluginElements)
|
|
1710
1748
|
.filter(function (x) { return x; });
|
|
1711
|
-
var i = elems.indexOf(
|
|
1749
|
+
var i = elems.indexOf(eventTarget);
|
|
1712
1750
|
if (i !== -1) {
|
|
1713
1751
|
var target = elems[i + (e.shiftKey ? -1 : 1)];
|
|
1714
1752
|
e.preventDefault();
|
|
@@ -1717,17 +1755,15 @@
|
|
|
1717
1755
|
}
|
|
1718
1756
|
else if (!self.config.noCalendar &&
|
|
1719
1757
|
self.daysContainer &&
|
|
1720
|
-
self.daysContainer.contains(
|
|
1758
|
+
self.daysContainer.contains(eventTarget) &&
|
|
1721
1759
|
e.shiftKey) {
|
|
1722
1760
|
e.preventDefault();
|
|
1723
1761
|
self._input.focus();
|
|
1724
1762
|
}
|
|
1725
1763
|
break;
|
|
1726
|
-
default:
|
|
1727
|
-
break;
|
|
1728
1764
|
}
|
|
1729
1765
|
}
|
|
1730
|
-
if (self.amPM !== undefined &&
|
|
1766
|
+
if (self.amPM !== undefined && eventTarget === self.amPM) {
|
|
1731
1767
|
switch (e.key) {
|
|
1732
1768
|
case self.l10n.amPM[0].charAt(0):
|
|
1733
1769
|
case self.l10n.amPM[0].charAt(0).toLowerCase():
|
|
@@ -1743,7 +1779,7 @@
|
|
|
1743
1779
|
break;
|
|
1744
1780
|
}
|
|
1745
1781
|
}
|
|
1746
|
-
if (isInput || isCalendarElem(
|
|
1782
|
+
if (isInput || isCalendarElem(eventTarget)) {
|
|
1747
1783
|
triggerEvent("onKeyDown", e);
|
|
1748
1784
|
}
|
|
1749
1785
|
}
|
|
@@ -1810,19 +1846,13 @@
|
|
|
1810
1846
|
if (self.isOpen && !self.config.static && !self.config.inline)
|
|
1811
1847
|
positionCalendar();
|
|
1812
1848
|
}
|
|
1813
|
-
function setDefaultTime() {
|
|
1814
|
-
self.setDate(self.config.minDate !== undefined
|
|
1815
|
-
? new Date(self.config.minDate.getTime())
|
|
1816
|
-
: new Date(), true);
|
|
1817
|
-
setDefaultHours();
|
|
1818
|
-
updateValue();
|
|
1819
|
-
}
|
|
1820
1849
|
function open(e, positionElement) {
|
|
1821
1850
|
if (positionElement === void 0) { positionElement = self._positionElement; }
|
|
1822
1851
|
if (self.isMobile === true) {
|
|
1823
1852
|
if (e) {
|
|
1824
1853
|
e.preventDefault();
|
|
1825
|
-
|
|
1854
|
+
var eventTarget = getEventTarget(e);
|
|
1855
|
+
eventTarget && eventTarget.blur();
|
|
1826
1856
|
}
|
|
1827
1857
|
if (self.mobileInput !== undefined) {
|
|
1828
1858
|
self.mobileInput.focus();
|
|
@@ -1842,9 +1872,6 @@
|
|
|
1842
1872
|
positionCalendar(positionElement);
|
|
1843
1873
|
}
|
|
1844
1874
|
if (self.config.enableTime === true && self.config.noCalendar === true) {
|
|
1845
|
-
if (self.selectedDates.length === 0) {
|
|
1846
|
-
setDefaultTime();
|
|
1847
|
-
}
|
|
1848
1875
|
if (self.config.allowInput === false &&
|
|
1849
1876
|
(e === undefined ||
|
|
1850
1877
|
!self.timeContainer.contains(e.relatedTarget))) {
|
|
@@ -1886,6 +1913,7 @@
|
|
|
1886
1913
|
"wrap",
|
|
1887
1914
|
"weekNumbers",
|
|
1888
1915
|
"allowInput",
|
|
1916
|
+
"allowInvalidPreload",
|
|
1889
1917
|
"clickOpens",
|
|
1890
1918
|
"time_24hr",
|
|
1891
1919
|
"enableTime",
|
|
@@ -1897,7 +1925,7 @@
|
|
|
1897
1925
|
"enableSeconds",
|
|
1898
1926
|
"disableMobile",
|
|
1899
1927
|
];
|
|
1900
|
-
var userConfig = __assign({},
|
|
1928
|
+
var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);
|
|
1901
1929
|
var formats = {};
|
|
1902
1930
|
self.config.parseDate = userConfig.parseDate;
|
|
1903
1931
|
self.config.formatDate = userConfig.formatDate;
|
|
@@ -1905,13 +1933,13 @@
|
|
|
1905
1933
|
get: function () { return self.config._enable; },
|
|
1906
1934
|
set: function (dates) {
|
|
1907
1935
|
self.config._enable = parseDateRules(dates);
|
|
1908
|
-
}
|
|
1936
|
+
},
|
|
1909
1937
|
});
|
|
1910
1938
|
Object.defineProperty(self.config, "disable", {
|
|
1911
1939
|
get: function () { return self.config._disable; },
|
|
1912
1940
|
set: function (dates) {
|
|
1913
1941
|
self.config._disable = parseDateRules(dates);
|
|
1914
|
-
}
|
|
1942
|
+
},
|
|
1915
1943
|
});
|
|
1916
1944
|
var timeMode = userConfig.mode === "time";
|
|
1917
1945
|
if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {
|
|
@@ -1930,28 +1958,24 @@
|
|
|
1930
1958
|
? "h:i" + (userConfig.enableSeconds ? ":S K" : " K")
|
|
1931
1959
|
: defaultAltFormat + (" h:i" + (userConfig.enableSeconds ? ":S" : "") + " K");
|
|
1932
1960
|
}
|
|
1933
|
-
if (!userConfig.altInputClass) {
|
|
1934
|
-
self.config.altInputClass =
|
|
1935
|
-
self.input.className + " " + self.config.altInputClass;
|
|
1936
|
-
}
|
|
1937
1961
|
Object.defineProperty(self.config, "minDate", {
|
|
1938
1962
|
get: function () { return self.config._minDate; },
|
|
1939
|
-
set: minMaxDateSetter("min")
|
|
1963
|
+
set: minMaxDateSetter("min"),
|
|
1940
1964
|
});
|
|
1941
1965
|
Object.defineProperty(self.config, "maxDate", {
|
|
1942
1966
|
get: function () { return self.config._maxDate; },
|
|
1943
|
-
set: minMaxDateSetter("max")
|
|
1967
|
+
set: minMaxDateSetter("max"),
|
|
1944
1968
|
});
|
|
1945
1969
|
var minMaxTimeSetter = function (type) { return function (val) {
|
|
1946
1970
|
self.config[type === "min" ? "_minTime" : "_maxTime"] = self.parseDate(val, "H:i:S");
|
|
1947
1971
|
}; };
|
|
1948
1972
|
Object.defineProperty(self.config, "minTime", {
|
|
1949
1973
|
get: function () { return self.config._minTime; },
|
|
1950
|
-
set: minMaxTimeSetter("min")
|
|
1974
|
+
set: minMaxTimeSetter("min"),
|
|
1951
1975
|
});
|
|
1952
1976
|
Object.defineProperty(self.config, "maxTime", {
|
|
1953
1977
|
get: function () { return self.config._maxTime; },
|
|
1954
|
-
set: minMaxTimeSetter("max")
|
|
1978
|
+
set: minMaxTimeSetter("max"),
|
|
1955
1979
|
});
|
|
1956
1980
|
if (userConfig.mode === "time") {
|
|
1957
1981
|
self.config.noCalendar = true;
|
|
@@ -1959,6 +1983,7 @@
|
|
|
1959
1983
|
}
|
|
1960
1984
|
Object.assign(self.config, formats, userConfig);
|
|
1961
1985
|
for (var i = 0; i < boolOpts.length; i++)
|
|
1986
|
+
// https://github.com/microsoft/TypeScript/issues/31663
|
|
1962
1987
|
self.config[boolOpts[i]] =
|
|
1963
1988
|
self.config[boolOpts[i]] === true ||
|
|
1964
1989
|
self.config[boolOpts[i]] === "true";
|
|
@@ -1985,19 +2010,28 @@
|
|
|
1985
2010
|
self.config[key] = pluginConf[key];
|
|
1986
2011
|
}
|
|
1987
2012
|
}
|
|
2013
|
+
if (!userConfig.altInputClass) {
|
|
2014
|
+
self.config.altInputClass =
|
|
2015
|
+
getInputElem().className + " " + self.config.altInputClass;
|
|
2016
|
+
}
|
|
1988
2017
|
triggerEvent("onParseConfig");
|
|
1989
2018
|
}
|
|
2019
|
+
function getInputElem() {
|
|
2020
|
+
return self.config.wrap
|
|
2021
|
+
? element.querySelector("[data-input]")
|
|
2022
|
+
: element;
|
|
2023
|
+
}
|
|
1990
2024
|
function setupLocale() {
|
|
1991
2025
|
if (typeof self.config.locale !== "object" &&
|
|
1992
2026
|
typeof flatpickr.l10ns[self.config.locale] === "undefined")
|
|
1993
2027
|
self.config.errorHandler(new Error("flatpickr: invalid locale " + self.config.locale));
|
|
1994
|
-
self.l10n = __assign({}, flatpickr.l10ns
|
|
2028
|
+
self.l10n = __assign(__assign({}, flatpickr.l10ns.default), (typeof self.config.locale === "object"
|
|
1995
2029
|
? self.config.locale
|
|
1996
2030
|
: self.config.locale !== "default"
|
|
1997
2031
|
? flatpickr.l10ns[self.config.locale]
|
|
1998
2032
|
: undefined));
|
|
1999
2033
|
tokenRegex.K = "(" + self.l10n.amPM[0] + "|" + self.l10n.amPM[1] + "|" + self.l10n.amPM[0].toLowerCase() + "|" + self.l10n.amPM[1].toLowerCase() + ")";
|
|
2000
|
-
var userConfig = __assign({}, instanceConfig, JSON.parse(JSON.stringify(element.dataset || {})));
|
|
2034
|
+
var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));
|
|
2001
2035
|
if (userConfig.time_24hr === undefined &&
|
|
2002
2036
|
flatpickr.defaultConfig.time_24hr === undefined) {
|
|
2003
2037
|
self.config.time_24hr = self.l10n.time_24hr;
|
|
@@ -2021,12 +2055,22 @@
|
|
|
2021
2055
|
toggleClass(self.calendarContainer, "arrowBottom", showOnTop);
|
|
2022
2056
|
if (self.config.inline)
|
|
2023
2057
|
return;
|
|
2024
|
-
var left = window.pageXOffset +
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2058
|
+
var left = window.pageXOffset + inputBounds.left;
|
|
2059
|
+
var isCenter = false;
|
|
2060
|
+
var isRight = false;
|
|
2061
|
+
if (configPosHorizontal === "center") {
|
|
2062
|
+
left -= (calendarWidth - inputBounds.width) / 2;
|
|
2063
|
+
isCenter = true;
|
|
2064
|
+
}
|
|
2065
|
+
else if (configPosHorizontal === "right") {
|
|
2066
|
+
left -= calendarWidth - inputBounds.width;
|
|
2067
|
+
isRight = true;
|
|
2068
|
+
}
|
|
2069
|
+
toggleClass(self.calendarContainer, "arrowLeft", !isCenter && !isRight);
|
|
2070
|
+
toggleClass(self.calendarContainer, "arrowCenter", isCenter);
|
|
2071
|
+
toggleClass(self.calendarContainer, "arrowRight", isRight);
|
|
2072
|
+
var right = window.document.body.offsetWidth -
|
|
2073
|
+
(window.pageXOffset + inputBounds.right);
|
|
2030
2074
|
var rightMost = left + calendarWidth > window.document.body.offsetWidth;
|
|
2031
2075
|
var centerMost = right + calendarWidth > window.document.body.offsetWidth;
|
|
2032
2076
|
toggleClass(self.calendarContainer, "rightMost", rightMost);
|
|
@@ -2042,7 +2086,7 @@
|
|
|
2042
2086
|
self.calendarContainer.style.right = right + "px";
|
|
2043
2087
|
}
|
|
2044
2088
|
else {
|
|
2045
|
-
var doc =
|
|
2089
|
+
var doc = getDocumentStyleSheet();
|
|
2046
2090
|
// some testing environments don't have css support
|
|
2047
2091
|
if (doc === undefined)
|
|
2048
2092
|
return;
|
|
@@ -2059,9 +2103,30 @@
|
|
|
2059
2103
|
self.calendarContainer.style.right = "auto";
|
|
2060
2104
|
}
|
|
2061
2105
|
}
|
|
2106
|
+
function getDocumentStyleSheet() {
|
|
2107
|
+
var editableSheet = null;
|
|
2108
|
+
for (var i = 0; i < document.styleSheets.length; i++) {
|
|
2109
|
+
var sheet = document.styleSheets[i];
|
|
2110
|
+
try {
|
|
2111
|
+
sheet.cssRules;
|
|
2112
|
+
}
|
|
2113
|
+
catch (err) {
|
|
2114
|
+
continue;
|
|
2115
|
+
}
|
|
2116
|
+
editableSheet = sheet;
|
|
2117
|
+
break;
|
|
2118
|
+
}
|
|
2119
|
+
return editableSheet != null ? editableSheet : createStyleSheet();
|
|
2120
|
+
}
|
|
2121
|
+
function createStyleSheet() {
|
|
2122
|
+
var style = document.createElement("style");
|
|
2123
|
+
document.head.appendChild(style);
|
|
2124
|
+
return style.sheet;
|
|
2125
|
+
}
|
|
2062
2126
|
function redraw() {
|
|
2063
2127
|
if (self.config.noCalendar || self.isMobile)
|
|
2064
2128
|
return;
|
|
2129
|
+
buildMonthSwitch();
|
|
2065
2130
|
updateNavigationCurrentMonth();
|
|
2066
2131
|
buildDays();
|
|
2067
2132
|
}
|
|
@@ -2085,7 +2150,7 @@
|
|
|
2085
2150
|
!day.classList.contains("flatpickr-disabled") &&
|
|
2086
2151
|
!day.classList.contains("notAllowed");
|
|
2087
2152
|
};
|
|
2088
|
-
var t = findParent(e
|
|
2153
|
+
var t = findParent(getEventTarget(e), isSelectable);
|
|
2089
2154
|
if (t === undefined)
|
|
2090
2155
|
return;
|
|
2091
2156
|
var target = t;
|
|
@@ -2128,8 +2193,6 @@
|
|
|
2128
2193
|
updateNavigationCurrentMonth();
|
|
2129
2194
|
buildDays();
|
|
2130
2195
|
updateValue();
|
|
2131
|
-
if (self.config.enableTime)
|
|
2132
|
-
setTimeout(function () { return (self.showTimeInput = true); }, 50);
|
|
2133
2196
|
// maintain focus
|
|
2134
2197
|
if (!shouldChangeMonth &&
|
|
2135
2198
|
self.config.mode !== "range" &&
|
|
@@ -2156,7 +2219,7 @@
|
|
|
2156
2219
|
locale: [setupLocale, updateWeekdays],
|
|
2157
2220
|
showMonths: [buildMonths, setCalendarWidth, buildWeekdays],
|
|
2158
2221
|
minDate: [jumpToDate],
|
|
2159
|
-
maxDate: [jumpToDate]
|
|
2222
|
+
maxDate: [jumpToDate],
|
|
2160
2223
|
};
|
|
2161
2224
|
function set(option, value) {
|
|
2162
2225
|
if (option !== null && typeof option === "object") {
|
|
@@ -2174,7 +2237,7 @@
|
|
|
2174
2237
|
self.config[option] = arrayify(value);
|
|
2175
2238
|
}
|
|
2176
2239
|
self.redraw();
|
|
2177
|
-
updateValue(
|
|
2240
|
+
updateValue(true);
|
|
2178
2241
|
}
|
|
2179
2242
|
function setSelectedDate(inputDate, format) {
|
|
2180
2243
|
var dates = [];
|
|
@@ -2198,13 +2261,13 @@
|
|
|
2198
2261
|
.split(self.l10n.rangeSeparator)
|
|
2199
2262
|
.map(function (date) { return self.parseDate(date, format); });
|
|
2200
2263
|
break;
|
|
2201
|
-
default:
|
|
2202
|
-
break;
|
|
2203
2264
|
}
|
|
2204
2265
|
}
|
|
2205
2266
|
else
|
|
2206
2267
|
self.config.errorHandler(new Error("Invalid date supplied: " + JSON.stringify(inputDate)));
|
|
2207
|
-
self.selectedDates =
|
|
2268
|
+
self.selectedDates = (self.config.allowInvalidPreload
|
|
2269
|
+
? dates
|
|
2270
|
+
: dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); }));
|
|
2208
2271
|
if (self.config.mode === "range")
|
|
2209
2272
|
self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });
|
|
2210
2273
|
}
|
|
@@ -2214,11 +2277,10 @@
|
|
|
2214
2277
|
if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))
|
|
2215
2278
|
return self.clear(triggerChange);
|
|
2216
2279
|
setSelectedDate(date, format);
|
|
2217
|
-
self.showTimeInput = self.selectedDates.length > 0;
|
|
2218
2280
|
self.latestSelectedDateObj =
|
|
2219
2281
|
self.selectedDates[self.selectedDates.length - 1];
|
|
2220
2282
|
self.redraw();
|
|
2221
|
-
jumpToDate();
|
|
2283
|
+
jumpToDate(undefined, triggerChange);
|
|
2222
2284
|
setHoursFromDate();
|
|
2223
2285
|
if (self.selectedDates.length === 0) {
|
|
2224
2286
|
self.clear(false);
|
|
@@ -2242,7 +2304,7 @@
|
|
|
2242
2304
|
rule.to)
|
|
2243
2305
|
return {
|
|
2244
2306
|
from: self.parseDate(rule.from, undefined),
|
|
2245
|
-
to: self.parseDate(rule.to, undefined)
|
|
2307
|
+
to: self.parseDate(rule.to, undefined),
|
|
2246
2308
|
};
|
|
2247
2309
|
return rule;
|
|
2248
2310
|
})
|
|
@@ -2289,20 +2351,9 @@
|
|
|
2289
2351
|
(self.config.maxDate.getHours() > 0 ||
|
|
2290
2352
|
self.config.maxDate.getMinutes() > 0 ||
|
|
2291
2353
|
self.config.maxDate.getSeconds() > 0);
|
|
2292
|
-
Object.defineProperty(self, "showTimeInput", {
|
|
2293
|
-
get: function () { return self._showTimeInput; },
|
|
2294
|
-
set: function (bool) {
|
|
2295
|
-
self._showTimeInput = bool;
|
|
2296
|
-
if (self.calendarContainer)
|
|
2297
|
-
toggleClass(self.calendarContainer, "showTimeInput", bool);
|
|
2298
|
-
self.isOpen && positionCalendar();
|
|
2299
|
-
}
|
|
2300
|
-
});
|
|
2301
2354
|
}
|
|
2302
2355
|
function setupInputs() {
|
|
2303
|
-
self.input =
|
|
2304
|
-
? element.querySelector("[data-input]")
|
|
2305
|
-
: element;
|
|
2356
|
+
self.input = getInputElem();
|
|
2306
2357
|
/* istanbul ignore next */
|
|
2307
2358
|
if (!self.input) {
|
|
2308
2359
|
self.config.errorHandler(new Error("Invalid input element specified"));
|
|
@@ -2337,7 +2388,6 @@
|
|
|
2337
2388
|
: "datetime-local"
|
|
2338
2389
|
: "date";
|
|
2339
2390
|
self.mobileInput = createElement("input", self.input.className + " flatpickr-mobile");
|
|
2340
|
-
self.mobileInput.step = self.input.getAttribute("step") || "any";
|
|
2341
2391
|
self.mobileInput.tabIndex = 1;
|
|
2342
2392
|
self.mobileInput.type = inputType;
|
|
2343
2393
|
self.mobileInput.disabled = self.input.disabled;
|
|
@@ -2356,6 +2406,8 @@
|
|
|
2356
2406
|
self.mobileInput.min = self.formatDate(self.config.minDate, "Y-m-d");
|
|
2357
2407
|
if (self.config.maxDate)
|
|
2358
2408
|
self.mobileInput.max = self.formatDate(self.config.maxDate, "Y-m-d");
|
|
2409
|
+
if (self.input.getAttribute("step"))
|
|
2410
|
+
self.mobileInput.step = String(self.input.getAttribute("step"));
|
|
2359
2411
|
self.input.type = "hidden";
|
|
2360
2412
|
if (self.altInput !== undefined)
|
|
2361
2413
|
self.altInput.type = "hidden";
|
|
@@ -2365,7 +2417,7 @@
|
|
|
2365
2417
|
}
|
|
2366
2418
|
catch (_a) { }
|
|
2367
2419
|
bind(self.mobileInput, "change", function (e) {
|
|
2368
|
-
self.setDate(e.
|
|
2420
|
+
self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);
|
|
2369
2421
|
triggerEvent("onChange");
|
|
2370
2422
|
triggerEvent("onClose");
|
|
2371
2423
|
});
|
|
@@ -2466,25 +2518,26 @@
|
|
|
2466
2518
|
triggerEvent("onValueUpdate");
|
|
2467
2519
|
}
|
|
2468
2520
|
function onMonthNavClick(e) {
|
|
2469
|
-
var
|
|
2470
|
-
var
|
|
2521
|
+
var eventTarget = getEventTarget(e);
|
|
2522
|
+
var isPrevMonth = self.prevMonthNav.contains(eventTarget);
|
|
2523
|
+
var isNextMonth = self.nextMonthNav.contains(eventTarget);
|
|
2471
2524
|
if (isPrevMonth || isNextMonth) {
|
|
2472
2525
|
changeMonth(isPrevMonth ? -1 : 1);
|
|
2473
2526
|
}
|
|
2474
|
-
else if (self.yearElements.indexOf(
|
|
2475
|
-
|
|
2527
|
+
else if (self.yearElements.indexOf(eventTarget) >= 0) {
|
|
2528
|
+
eventTarget.select();
|
|
2476
2529
|
}
|
|
2477
|
-
else if (
|
|
2530
|
+
else if (eventTarget.classList.contains("arrowUp")) {
|
|
2478
2531
|
self.changeYear(self.currentYear + 1);
|
|
2479
2532
|
}
|
|
2480
|
-
else if (
|
|
2533
|
+
else if (eventTarget.classList.contains("arrowDown")) {
|
|
2481
2534
|
self.changeYear(self.currentYear - 1);
|
|
2482
2535
|
}
|
|
2483
2536
|
}
|
|
2484
2537
|
function timeWrapper(e) {
|
|
2485
2538
|
e.preventDefault();
|
|
2486
|
-
var isKeyDown = e.type === "keydown", input =
|
|
2487
|
-
if (self.amPM !== undefined &&
|
|
2539
|
+
var isKeyDown = e.type === "keydown", eventTarget = getEventTarget(e), input = eventTarget;
|
|
2540
|
+
if (self.amPM !== undefined && eventTarget === self.amPM) {
|
|
2488
2541
|
self.amPM.textContent =
|
|
2489
2542
|
self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];
|
|
2490
2543
|
}
|
|
@@ -2575,13 +2628,13 @@
|
|
|
2575
2628
|
flatpickr.defaultConfig = {};
|
|
2576
2629
|
flatpickr.l10ns = {
|
|
2577
2630
|
en: __assign({}, english),
|
|
2578
|
-
|
|
2631
|
+
default: __assign({}, english),
|
|
2579
2632
|
};
|
|
2580
2633
|
flatpickr.localize = function (l10n) {
|
|
2581
|
-
flatpickr.l10ns
|
|
2634
|
+
flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);
|
|
2582
2635
|
};
|
|
2583
2636
|
flatpickr.setDefaults = function (config) {
|
|
2584
|
-
flatpickr.defaultConfig = __assign({}, flatpickr.defaultConfig, config);
|
|
2637
|
+
flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);
|
|
2585
2638
|
};
|
|
2586
2639
|
flatpickr.parseDate = createDateParser({});
|
|
2587
2640
|
flatpickr.formatDate = createDateFormatter({});
|
|
@@ -2602,4 +2655,4 @@
|
|
|
2602
2655
|
|
|
2603
2656
|
return flatpickr;
|
|
2604
2657
|
|
|
2605
|
-
}));
|
|
2658
|
+
})));
|