flatpickr 4.6.3.1 → 4.6.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
})));
|