@xplortech/apollo-core 1.0.0-beta.6 → 1.0.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/build/style.css +4 -55
- package/dist/apollo-core/apollo-core.css +5 -5
- package/dist/apollo-core/apollo-core.esm.js +1 -1
- package/dist/apollo-core/p-10f00380.entry.js +1 -0
- package/dist/apollo-core/p-26ec64fe.entry.js +1 -0
- package/dist/apollo-core/p-2f90296c.js +2 -2
- package/dist/apollo-core/p-31acfdb4.entry.js +1 -0
- package/dist/apollo-core/p-4184ac44.entry.js +1 -0
- package/dist/apollo-core/{p-dad11011.entry.js → p-4fa14839.entry.js} +1 -1
- package/dist/apollo-core/p-55b87345.js +2 -0
- package/dist/apollo-core/p-63a6c98a.entry.js +1 -0
- package/dist/apollo-core/p-68c33b77.entry.js +1 -0
- package/dist/apollo-core/{p-a7cc4114.entry.js → p-78d07caf.entry.js} +1 -1
- package/dist/apollo-core/p-796957d3.entry.js +1 -0
- package/dist/apollo-core/p-88160d68.entry.js +1 -0
- package/dist/apollo-core/p-9ec318bb.entry.js +1 -0
- package/dist/apollo-core/p-a2a34e44.entry.js +1 -0
- package/dist/apollo-core/p-beea2502.entry.js +1 -0
- package/dist/apollo-core/p-d499e43f.entry.js +1 -0
- package/dist/apollo-core/{p-c8af4ed6.entry.js → p-d8a3d94c.entry.js} +1 -1
- package/dist/apollo-core/p-e047b446.entry.js +1 -0
- package/dist/cjs/apollo-core.cjs.js +6 -2
- package/dist/cjs/{index-acf3dd7a.js → index-2ab4832e.js} +592 -215
- package/dist/cjs/loader.cjs.js +3 -2
- package/dist/cjs/xpl-application-shell.cjs.entry.js +2 -13
- package/dist/cjs/xpl-avatar_12.cjs.entry.js +72 -38
- package/dist/cjs/xpl-backdrop.cjs.entry.js +1 -5
- package/dist/cjs/xpl-button-row.cjs.entry.js +4 -1
- package/dist/cjs/xpl-choicelist.cjs.entry.js +8 -1
- package/dist/cjs/xpl-divider.cjs.entry.js +2 -1
- package/dist/cjs/xpl-dropdown-group_3.cjs.entry.js +7 -1
- package/dist/cjs/xpl-dropdown_2.cjs.entry.js +8 -9
- package/dist/cjs/xpl-grid-item.cjs.entry.js +1 -1
- package/dist/cjs/xpl-grid.cjs.entry.js +1 -1
- package/dist/cjs/xpl-input.cjs.entry.js +615 -501
- package/dist/cjs/xpl-list.cjs.entry.js +1 -23
- package/dist/cjs/xpl-main-nav.cjs.entry.js +1 -4
- package/dist/cjs/xpl-pagination.cjs.entry.js +5 -2
- package/dist/cjs/xpl-select.cjs.entry.js +7 -22
- package/dist/cjs/xpl-toggle.cjs.entry.js +7 -4
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/xpl-application-shell/xpl-application-shell.js +118 -132
- package/dist/collection/components/xpl-avatar/xpl-avatar.js +150 -144
- package/dist/collection/components/xpl-backdrop/xpl-backdrop.js +26 -28
- package/dist/collection/components/xpl-badge/xpl-badge.js +43 -39
- package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumb-item/xpl-breadcrumb-item.js +2 -5
- package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumbs/xpl-breadcrumbs.js +2 -5
- package/dist/collection/components/xpl-button/xpl-button.js +204 -205
- package/dist/collection/components/xpl-button-row/xpl-button-row.js +105 -104
- package/dist/collection/components/xpl-checkbox/xpl-checkbox.js +181 -171
- package/dist/collection/components/xpl-choicelist/xpl-choicelist.js +133 -126
- package/dist/collection/components/xpl-content-area/xpl-content-area.js +27 -31
- package/dist/collection/components/xpl-divider/xpl-divider.js +26 -23
- package/dist/collection/components/xpl-dropdown/xpl-dropdown-group/xpl-dropdown-group.js +46 -42
- package/dist/collection/components/xpl-dropdown/xpl-dropdown-heading/xpl-dropdown-heading.js +26 -22
- package/dist/collection/components/xpl-dropdown/xpl-dropdown-option/xpl-dropdown-option.js +60 -54
- package/dist/collection/components/xpl-dropdown/xpl-dropdown.js +170 -167
- package/dist/collection/components/xpl-grid/xpl-grid.js +1 -1
- package/dist/collection/components/xpl-grid-item/xpl-grid-item.js +75 -74
- package/dist/collection/components/xpl-input/xpl-input.js +404 -417
- package/dist/collection/components/xpl-list/xpl-list.js +42 -75
- package/dist/collection/components/xpl-main-nav/xpl-main-nav.js +47 -54
- package/dist/collection/components/xpl-nav-item/xpl-nav-item.js +47 -49
- package/dist/collection/components/xpl-pagination/xpl-pagination.js +116 -128
- package/dist/collection/components/xpl-radio/xpl-radio.js +157 -148
- package/dist/collection/components/xpl-secondary-nav/xpl-secondary-nav.js +2 -4
- package/dist/collection/components/xpl-select/xpl-select.js +212 -238
- package/dist/collection/components/xpl-table/xpl-table.js +168 -151
- package/dist/collection/components/xpl-tag/xpl-tag.js +24 -25
- package/dist/collection/components/xpl-toggle/xpl-toggle.js +137 -135
- package/dist/collection/components/xpl-utility-bar/xpl-utility-bar.js +73 -70
- package/dist/custom-elements/index.js +756 -641
- package/dist/esm/apollo-core.js +3 -2
- package/dist/esm/{index-e3c4bb97.js → index-392b5b96.js} +592 -216
- package/dist/esm/loader.js +3 -2
- package/dist/esm/polyfills/css-shim.js +1 -1
- package/dist/esm/xpl-application-shell.entry.js +2 -13
- package/dist/esm/xpl-avatar_12.entry.js +72 -38
- package/dist/esm/xpl-backdrop.entry.js +1 -5
- package/dist/esm/xpl-button-row.entry.js +4 -1
- package/dist/esm/xpl-choicelist.entry.js +8 -1
- package/dist/esm/xpl-divider.entry.js +2 -1
- package/dist/esm/xpl-dropdown-group_3.entry.js +7 -1
- package/dist/esm/xpl-dropdown_2.entry.js +8 -9
- package/dist/esm/xpl-grid-item.entry.js +1 -1
- package/dist/esm/xpl-grid.entry.js +1 -1
- package/dist/esm/xpl-input.entry.js +615 -501
- package/dist/esm/xpl-list.entry.js +1 -23
- package/dist/esm/xpl-main-nav.entry.js +1 -4
- package/dist/esm/xpl-pagination.entry.js +5 -2
- package/dist/esm/xpl-select.entry.js +7 -22
- package/dist/esm/xpl-toggle.entry.js +7 -4
- package/dist/types/components/xpl-dropdown/dropdownoption.d.ts +1 -1
- package/dist/types/components/xpl-table/xpl-table.d.ts +2 -0
- package/dist/types/components.d.ts +47 -11
- package/dist/types/stencil-public-runtime.d.ts +85 -11
- package/loader/index.d.ts +9 -1
- package/loader/package.json +1 -0
- package/package.json +1 -1
- package/dist/apollo-core/p-25f84d39.entry.js +0 -1
- package/dist/apollo-core/p-2ce2fe5c.entry.js +0 -1
- package/dist/apollo-core/p-3ff1ff38.entry.js +0 -1
- package/dist/apollo-core/p-63dd9a65.entry.js +0 -1
- package/dist/apollo-core/p-6c3c1e3d.entry.js +0 -1
- package/dist/apollo-core/p-81a6ce4c.entry.js +0 -1
- package/dist/apollo-core/p-918b0731.entry.js +0 -1
- package/dist/apollo-core/p-a43e2d1f.entry.js +0 -1
- package/dist/apollo-core/p-b6d1b135.entry.js +0 -1
- package/dist/apollo-core/p-bc0ebed2.entry.js +0 -1
- package/dist/apollo-core/p-d4aa2fa9.js +0 -1
- package/dist/apollo-core/p-d4e5d3aa.entry.js +0 -1
- package/dist/apollo-core/p-db74c99c.entry.js +0 -1
- package/dist/apollo-core/p-ee16942f.entry.js +0 -1
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/application-shell.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/avatar.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/backdrop.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/badge.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/breadcrumbs.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/button-row.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/button.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/checkbox.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/choicelist.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/content-area.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/divider.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/dropdown.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/grid.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/input.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/list.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/main-nav.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/pagination.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/radio.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/secondary-nav.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/select.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/table.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/tabs.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/toggle.stories.d.ts +0 -0
- /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/utility-bar.stories.d.ts +0 -0
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
5
|
+
const index = require('./index-2ab4832e.js');
|
|
6
6
|
require('./regular-872f5226.js');
|
|
7
7
|
const v4 = require('./v4-14140ff3.js');
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
var HOOKS = [
|
|
10
10
|
"onChange",
|
|
11
11
|
"onClose",
|
|
12
12
|
"onDayCreate",
|
|
@@ -20,7 +20,7 @@ const HOOKS = [
|
|
|
20
20
|
"onYearChange",
|
|
21
21
|
"onPreCalendarPosition",
|
|
22
22
|
];
|
|
23
|
-
|
|
23
|
+
var defaults = {
|
|
24
24
|
_disable: [],
|
|
25
25
|
allowInput: false,
|
|
26
26
|
allowInvalidPreload: false,
|
|
@@ -42,9 +42,11 @@ const defaults = {
|
|
|
42
42
|
disableMobile: false,
|
|
43
43
|
enableSeconds: false,
|
|
44
44
|
enableTime: false,
|
|
45
|
-
errorHandler: (err)
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
errorHandler: function (err) {
|
|
46
|
+
return typeof console !== "undefined" && console.warn(err);
|
|
47
|
+
},
|
|
48
|
+
getWeek: function (givenDate) {
|
|
49
|
+
var date = new Date(givenDate.getTime());
|
|
48
50
|
date.setHours(0, 0, 0, 0);
|
|
49
51
|
date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));
|
|
50
52
|
var week1 = new Date(date.getFullYear(), 0, 4);
|
|
@@ -88,7 +90,7 @@ const defaults = {
|
|
|
88
90
|
wrap: false,
|
|
89
91
|
};
|
|
90
92
|
|
|
91
|
-
|
|
93
|
+
var english = {
|
|
92
94
|
weekdays: {
|
|
93
95
|
shorthand: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
|
94
96
|
longhand: [
|
|
@@ -133,8 +135,8 @@ const english = {
|
|
|
133
135
|
},
|
|
134
136
|
daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
|
|
135
137
|
firstDayOfWeek: 0,
|
|
136
|
-
ordinal: (nth)
|
|
137
|
-
|
|
138
|
+
ordinal: function (nth) {
|
|
139
|
+
var s = nth % 100;
|
|
138
140
|
if (s > 3 && s < 21)
|
|
139
141
|
return "th";
|
|
140
142
|
switch (s % 10) {
|
|
@@ -160,16 +162,23 @@ const english = {
|
|
|
160
162
|
time_24hr: false,
|
|
161
163
|
};
|
|
162
164
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
+
var pad = function (number, length) {
|
|
166
|
+
if (length === void 0) { length = 2; }
|
|
167
|
+
return ("000" + number).slice(length * -1);
|
|
168
|
+
};
|
|
169
|
+
var int = function (bool) { return (bool === true ? 1 : 0); };
|
|
165
170
|
function debounce(fn, wait) {
|
|
166
|
-
|
|
171
|
+
var t;
|
|
167
172
|
return function () {
|
|
173
|
+
var _this = this;
|
|
174
|
+
var args = arguments;
|
|
168
175
|
clearTimeout(t);
|
|
169
|
-
t = setTimeout(()
|
|
176
|
+
t = setTimeout(function () { return fn.apply(_this, args); }, wait);
|
|
170
177
|
};
|
|
171
178
|
}
|
|
172
|
-
|
|
179
|
+
var arrayify = function (obj) {
|
|
180
|
+
return obj instanceof Array ? obj : [obj];
|
|
181
|
+
};
|
|
173
182
|
|
|
174
183
|
function toggleClass(elem, className, bool) {
|
|
175
184
|
if (bool === true)
|
|
@@ -177,7 +186,7 @@ function toggleClass(elem, className, bool) {
|
|
|
177
186
|
elem.classList.remove(className);
|
|
178
187
|
}
|
|
179
188
|
function createElement(tag, className, content) {
|
|
180
|
-
|
|
189
|
+
var e = window.document.createElement(tag);
|
|
181
190
|
className = className || "";
|
|
182
191
|
content = content || "";
|
|
183
192
|
e.className = className;
|
|
@@ -197,7 +206,7 @@ function findParent(node, condition) {
|
|
|
197
206
|
return undefined;
|
|
198
207
|
}
|
|
199
208
|
function createNumberInput(inputClassName, opts) {
|
|
200
|
-
|
|
209
|
+
var wrapper = createElement("div", "numInputWrapper"), numInput = createElement("input", "numInput " + inputClassName), arrowUp = createElement("span", "arrowUp"), arrowDown = createElement("span", "arrowDown");
|
|
201
210
|
if (navigator.userAgent.indexOf("MSIE 9.0") === -1) {
|
|
202
211
|
numInput.type = "number";
|
|
203
212
|
}
|
|
@@ -206,7 +215,7 @@ function createNumberInput(inputClassName, opts) {
|
|
|
206
215
|
numInput.pattern = "\\d*";
|
|
207
216
|
}
|
|
208
217
|
if (opts !== undefined)
|
|
209
|
-
for (
|
|
218
|
+
for (var key in opts)
|
|
210
219
|
numInput.setAttribute(key, opts[key]);
|
|
211
220
|
wrapper.appendChild(numInput);
|
|
212
221
|
wrapper.appendChild(arrowUp);
|
|
@@ -216,7 +225,7 @@ function createNumberInput(inputClassName, opts) {
|
|
|
216
225
|
function getEventTarget(event) {
|
|
217
226
|
try {
|
|
218
227
|
if (typeof event.composedPath === "function") {
|
|
219
|
-
|
|
228
|
+
var path = event.composedPath();
|
|
220
229
|
return path[0];
|
|
221
230
|
}
|
|
222
231
|
return event.target;
|
|
@@ -226,79 +235,81 @@ function getEventTarget(event) {
|
|
|
226
235
|
}
|
|
227
236
|
}
|
|
228
237
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
238
|
+
var doNothing = function () { return undefined; };
|
|
239
|
+
var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? "shorthand" : "longhand"][monthNumber]; };
|
|
240
|
+
var revFormat = {
|
|
232
241
|
D: doNothing,
|
|
233
242
|
F: function (dateObj, monthName, locale) {
|
|
234
243
|
dateObj.setMonth(locale.months.longhand.indexOf(monthName));
|
|
235
244
|
},
|
|
236
|
-
G: (dateObj, hour)
|
|
237
|
-
dateObj.setHours(parseFloat(hour));
|
|
245
|
+
G: function (dateObj, hour) {
|
|
246
|
+
dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));
|
|
238
247
|
},
|
|
239
|
-
H: (dateObj, hour)
|
|
248
|
+
H: function (dateObj, hour) {
|
|
240
249
|
dateObj.setHours(parseFloat(hour));
|
|
241
250
|
},
|
|
242
|
-
J: (dateObj, day)
|
|
251
|
+
J: function (dateObj, day) {
|
|
243
252
|
dateObj.setDate(parseFloat(day));
|
|
244
253
|
},
|
|
245
|
-
K: (dateObj, amPM, locale)
|
|
254
|
+
K: function (dateObj, amPM, locale) {
|
|
246
255
|
dateObj.setHours((dateObj.getHours() % 12) +
|
|
247
256
|
12 * int(new RegExp(locale.amPM[1], "i").test(amPM)));
|
|
248
257
|
},
|
|
249
258
|
M: function (dateObj, shortMonth, locale) {
|
|
250
259
|
dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));
|
|
251
260
|
},
|
|
252
|
-
S: (dateObj, seconds)
|
|
261
|
+
S: function (dateObj, seconds) {
|
|
253
262
|
dateObj.setSeconds(parseFloat(seconds));
|
|
254
263
|
},
|
|
255
|
-
U: (_, unixSeconds)
|
|
264
|
+
U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },
|
|
256
265
|
W: function (dateObj, weekNum, locale) {
|
|
257
|
-
|
|
258
|
-
|
|
266
|
+
var weekNumber = parseInt(weekNum);
|
|
267
|
+
var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);
|
|
259
268
|
date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);
|
|
260
269
|
return date;
|
|
261
270
|
},
|
|
262
|
-
Y: (dateObj, year)
|
|
271
|
+
Y: function (dateObj, year) {
|
|
263
272
|
dateObj.setFullYear(parseFloat(year));
|
|
264
273
|
},
|
|
265
|
-
Z: (_, ISODate)
|
|
266
|
-
d: (dateObj, day)
|
|
274
|
+
Z: function (_, ISODate) { return new Date(ISODate); },
|
|
275
|
+
d: function (dateObj, day) {
|
|
267
276
|
dateObj.setDate(parseFloat(day));
|
|
268
277
|
},
|
|
269
|
-
h: (dateObj, hour)
|
|
270
|
-
dateObj.setHours(parseFloat(hour));
|
|
278
|
+
h: function (dateObj, hour) {
|
|
279
|
+
dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));
|
|
271
280
|
},
|
|
272
|
-
i: (dateObj, minutes)
|
|
281
|
+
i: function (dateObj, minutes) {
|
|
273
282
|
dateObj.setMinutes(parseFloat(minutes));
|
|
274
283
|
},
|
|
275
|
-
j: (dateObj, day)
|
|
284
|
+
j: function (dateObj, day) {
|
|
276
285
|
dateObj.setDate(parseFloat(day));
|
|
277
286
|
},
|
|
278
287
|
l: doNothing,
|
|
279
|
-
m: (dateObj, month)
|
|
288
|
+
m: function (dateObj, month) {
|
|
280
289
|
dateObj.setMonth(parseFloat(month) - 1);
|
|
281
290
|
},
|
|
282
|
-
n: (dateObj, month)
|
|
291
|
+
n: function (dateObj, month) {
|
|
283
292
|
dateObj.setMonth(parseFloat(month) - 1);
|
|
284
293
|
},
|
|
285
|
-
s: (dateObj, seconds)
|
|
294
|
+
s: function (dateObj, seconds) {
|
|
286
295
|
dateObj.setSeconds(parseFloat(seconds));
|
|
287
296
|
},
|
|
288
|
-
u: (_, unixMillSeconds)
|
|
297
|
+
u: function (_, unixMillSeconds) {
|
|
298
|
+
return new Date(parseFloat(unixMillSeconds));
|
|
299
|
+
},
|
|
289
300
|
w: doNothing,
|
|
290
|
-
y: (dateObj, year)
|
|
301
|
+
y: function (dateObj, year) {
|
|
291
302
|
dateObj.setFullYear(2000 + parseFloat(year));
|
|
292
303
|
},
|
|
293
304
|
};
|
|
294
|
-
|
|
295
|
-
D: "
|
|
296
|
-
F: "
|
|
305
|
+
var tokenRegex = {
|
|
306
|
+
D: "",
|
|
307
|
+
F: "",
|
|
297
308
|
G: "(\\d\\d|\\d)",
|
|
298
309
|
H: "(\\d\\d|\\d)",
|
|
299
310
|
J: "(\\d\\d|\\d)\\w+",
|
|
300
311
|
K: "",
|
|
301
|
-
M: "
|
|
312
|
+
M: "",
|
|
302
313
|
S: "(\\d\\d|\\d)",
|
|
303
314
|
U: "(.+)",
|
|
304
315
|
W: "(\\d\\d|\\d)",
|
|
@@ -308,7 +319,7 @@ const tokenRegex = {
|
|
|
308
319
|
h: "(\\d\\d|\\d)",
|
|
309
320
|
i: "(\\d\\d|\\d)",
|
|
310
321
|
j: "(\\d\\d|\\d)",
|
|
311
|
-
l: "
|
|
322
|
+
l: "",
|
|
312
323
|
m: "(\\d\\d|\\d)",
|
|
313
324
|
n: "(\\d\\d|\\d)",
|
|
314
325
|
s: "(\\d\\d|\\d)",
|
|
@@ -316,8 +327,8 @@ const tokenRegex = {
|
|
|
316
327
|
w: "(\\d\\d|\\d)",
|
|
317
328
|
y: "(\\d{2})",
|
|
318
329
|
};
|
|
319
|
-
|
|
320
|
-
Z: (date)
|
|
330
|
+
var formats = {
|
|
331
|
+
Z: function (date) { return date.toISOString(); },
|
|
321
332
|
D: function (date, locale, options) {
|
|
322
333
|
return locale.weekdays.shorthand[formats.w(date, locale, options)];
|
|
323
334
|
},
|
|
@@ -327,130 +338,151 @@ const formats = {
|
|
|
327
338
|
G: function (date, locale, options) {
|
|
328
339
|
return pad(formats.h(date, locale, options));
|
|
329
340
|
},
|
|
330
|
-
H: (date)
|
|
341
|
+
H: function (date) { return pad(date.getHours()); },
|
|
331
342
|
J: function (date, locale) {
|
|
332
343
|
return locale.ordinal !== undefined
|
|
333
344
|
? date.getDate() + locale.ordinal(date.getDate())
|
|
334
345
|
: date.getDate();
|
|
335
346
|
},
|
|
336
|
-
K: (date, locale)
|
|
347
|
+
K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },
|
|
337
348
|
M: function (date, locale) {
|
|
338
349
|
return monthToStr(date.getMonth(), true, locale);
|
|
339
350
|
},
|
|
340
|
-
S: (date)
|
|
341
|
-
U: (date)
|
|
351
|
+
S: function (date) { return pad(date.getSeconds()); },
|
|
352
|
+
U: function (date) { return date.getTime() / 1000; },
|
|
342
353
|
W: function (date, _, options) {
|
|
343
354
|
return options.getWeek(date);
|
|
344
355
|
},
|
|
345
|
-
Y: (date)
|
|
346
|
-
d: (date)
|
|
347
|
-
h: (date)
|
|
348
|
-
i: (date)
|
|
349
|
-
j: (date)
|
|
356
|
+
Y: function (date) { return pad(date.getFullYear(), 4); },
|
|
357
|
+
d: function (date) { return pad(date.getDate()); },
|
|
358
|
+
h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },
|
|
359
|
+
i: function (date) { return pad(date.getMinutes()); },
|
|
360
|
+
j: function (date) { return date.getDate(); },
|
|
350
361
|
l: function (date, locale) {
|
|
351
362
|
return locale.weekdays.longhand[date.getDay()];
|
|
352
363
|
},
|
|
353
|
-
m: (date)
|
|
354
|
-
n: (date)
|
|
355
|
-
s: (date)
|
|
356
|
-
u: (date)
|
|
357
|
-
w: (date)
|
|
358
|
-
y: (date)
|
|
364
|
+
m: function (date) { return pad(date.getMonth() + 1); },
|
|
365
|
+
n: function (date) { return date.getMonth() + 1; },
|
|
366
|
+
s: function (date) { return date.getSeconds(); },
|
|
367
|
+
u: function (date) { return date.getTime(); },
|
|
368
|
+
w: function (date) { return date.getDay(); },
|
|
369
|
+
y: function (date) { return String(date.getFullYear()).substring(2); },
|
|
359
370
|
};
|
|
360
371
|
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
372
|
+
var createDateFormatter = function (_a) {
|
|
373
|
+
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;
|
|
374
|
+
return function (dateObj, frmt, overrideLocale) {
|
|
375
|
+
var locale = overrideLocale || l10n;
|
|
376
|
+
if (config.formatDate !== undefined && !isMobile) {
|
|
377
|
+
return config.formatDate(dateObj, frmt, locale);
|
|
378
|
+
}
|
|
379
|
+
return frmt
|
|
380
|
+
.split("")
|
|
381
|
+
.map(function (c, i, arr) {
|
|
382
|
+
return formats[c] && arr[i - 1] !== "\\"
|
|
383
|
+
? formats[c](dateObj, locale, config)
|
|
384
|
+
: c !== "\\"
|
|
385
|
+
? c
|
|
386
|
+
: "";
|
|
387
|
+
})
|
|
388
|
+
.join("");
|
|
389
|
+
};
|
|
374
390
|
};
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
const format = givenFormat || (config || defaults).dateFormat;
|
|
388
|
-
const datestr = String(date).trim();
|
|
389
|
-
if (datestr === "today") {
|
|
390
|
-
parsedDate = new Date();
|
|
391
|
-
timeless = true;
|
|
392
|
-
}
|
|
393
|
-
else if (/Z$/.test(datestr) ||
|
|
394
|
-
/GMT$/.test(datestr))
|
|
391
|
+
var createDateParser = function (_a) {
|
|
392
|
+
var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;
|
|
393
|
+
return function (date, givenFormat, timeless, customLocale) {
|
|
394
|
+
if (date !== 0 && !date)
|
|
395
|
+
return undefined;
|
|
396
|
+
var locale = customLocale || l10n;
|
|
397
|
+
var parsedDate;
|
|
398
|
+
var dateOrig = date;
|
|
399
|
+
if (date instanceof Date)
|
|
400
|
+
parsedDate = new Date(date.getTime());
|
|
401
|
+
else if (typeof date !== "string" &&
|
|
402
|
+
date.toFixed !== undefined)
|
|
395
403
|
parsedDate = new Date(date);
|
|
396
|
-
else if (
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
404
|
+
else if (typeof date === "string") {
|
|
405
|
+
var format = givenFormat || (config || defaults).dateFormat;
|
|
406
|
+
var datestr = String(date).trim();
|
|
407
|
+
if (datestr === "today") {
|
|
408
|
+
parsedDate = new Date();
|
|
409
|
+
timeless = true;
|
|
410
|
+
}
|
|
411
|
+
else if (config && config.parseDate) {
|
|
412
|
+
parsedDate = config.parseDate(date, format);
|
|
413
|
+
}
|
|
414
|
+
else if (/Z$/.test(datestr) ||
|
|
415
|
+
/GMT$/.test(datestr)) {
|
|
416
|
+
parsedDate = new Date(date);
|
|
417
|
+
}
|
|
418
|
+
else {
|
|
419
|
+
var matched = void 0, ops = [];
|
|
420
|
+
for (var i = 0, matchIndex = 0, regexStr = ""; i < format.length; i++) {
|
|
421
|
+
var token = format[i];
|
|
422
|
+
var isBackSlash = token === "\\";
|
|
423
|
+
var escaped = format[i - 1] === "\\" || isBackSlash;
|
|
424
|
+
if (tokenRegex[token] && !escaped) {
|
|
425
|
+
regexStr += tokenRegex[token];
|
|
426
|
+
var match = new RegExp(regexStr).exec(date);
|
|
427
|
+
if (match && (matched = true)) {
|
|
428
|
+
ops[token !== "Y" ? "push" : "unshift"]({
|
|
429
|
+
fn: revFormat[token],
|
|
430
|
+
val: match[++matchIndex],
|
|
431
|
+
});
|
|
432
|
+
}
|
|
416
433
|
}
|
|
434
|
+
else if (!isBackSlash)
|
|
435
|
+
regexStr += ".";
|
|
417
436
|
}
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
437
|
+
parsedDate =
|
|
438
|
+
!config || !config.noCalendar
|
|
439
|
+
? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)
|
|
440
|
+
: new Date(new Date().setHours(0, 0, 0, 0));
|
|
441
|
+
ops.forEach(function (_a) {
|
|
442
|
+
var fn = _a.fn, val = _a.val;
|
|
443
|
+
return (parsedDate = fn(parsedDate, val, locale) || parsedDate);
|
|
444
|
+
});
|
|
445
|
+
parsedDate = matched ? parsedDate : undefined;
|
|
421
446
|
}
|
|
422
|
-
parsedDate = matched ? parsedDate : undefined;
|
|
423
447
|
}
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
parsedDate
|
|
431
|
-
|
|
448
|
+
if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {
|
|
449
|
+
config.errorHandler(new Error("Invalid date provided: " + dateOrig));
|
|
450
|
+
return undefined;
|
|
451
|
+
}
|
|
452
|
+
if (timeless === true)
|
|
453
|
+
parsedDate.setHours(0, 0, 0, 0);
|
|
454
|
+
return parsedDate;
|
|
455
|
+
};
|
|
432
456
|
};
|
|
433
|
-
function compareDates(date1, date2, timeless
|
|
457
|
+
function compareDates(date1, date2, timeless) {
|
|
458
|
+
if (timeless === void 0) { timeless = true; }
|
|
434
459
|
if (timeless !== false) {
|
|
435
460
|
return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -
|
|
436
461
|
new Date(date2.getTime()).setHours(0, 0, 0, 0));
|
|
437
462
|
}
|
|
438
463
|
return date1.getTime() - date2.getTime();
|
|
439
464
|
}
|
|
440
|
-
|
|
465
|
+
var isBetween = function (ts, ts1, ts2) {
|
|
441
466
|
return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);
|
|
442
467
|
};
|
|
443
|
-
|
|
468
|
+
var calculateSecondsSinceMidnight = function (hours, minutes, seconds) {
|
|
469
|
+
return hours * 3600 + minutes * 60 + seconds;
|
|
470
|
+
};
|
|
471
|
+
var parseSeconds = function (secondsSinceMidnight) {
|
|
472
|
+
var hours = Math.floor(secondsSinceMidnight / 3600), minutes = (secondsSinceMidnight - hours * 3600) / 60;
|
|
473
|
+
return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60];
|
|
474
|
+
};
|
|
475
|
+
var duration = {
|
|
444
476
|
DAY: 86400000,
|
|
445
477
|
};
|
|
446
478
|
function getDefaultHours(config) {
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
479
|
+
var hours = config.defaultHour;
|
|
480
|
+
var minutes = config.defaultMinute;
|
|
481
|
+
var seconds = config.defaultSeconds;
|
|
450
482
|
if (config.minDate !== undefined) {
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
483
|
+
var minHour = config.minDate.getHours();
|
|
484
|
+
var minMinutes = config.minDate.getMinutes();
|
|
485
|
+
var minSeconds = config.minDate.getSeconds();
|
|
454
486
|
if (hours < minHour) {
|
|
455
487
|
hours = minHour;
|
|
456
488
|
}
|
|
@@ -461,35 +493,61 @@ function getDefaultHours(config) {
|
|
|
461
493
|
seconds = config.minDate.getSeconds();
|
|
462
494
|
}
|
|
463
495
|
if (config.maxDate !== undefined) {
|
|
464
|
-
|
|
465
|
-
|
|
496
|
+
var maxHr = config.maxDate.getHours();
|
|
497
|
+
var maxMinutes = config.maxDate.getMinutes();
|
|
466
498
|
hours = Math.min(hours, maxHr);
|
|
467
499
|
if (hours === maxHr)
|
|
468
500
|
minutes = Math.min(maxMinutes, minutes);
|
|
469
501
|
if (hours === maxHr && minutes === maxMinutes)
|
|
470
502
|
seconds = config.maxDate.getSeconds();
|
|
471
503
|
}
|
|
472
|
-
return { hours, minutes, seconds };
|
|
504
|
+
return { hours: hours, minutes: minutes, seconds: seconds };
|
|
473
505
|
}
|
|
474
506
|
|
|
475
507
|
if (typeof Object.assign !== "function") {
|
|
476
|
-
Object.assign = function (target
|
|
508
|
+
Object.assign = function (target) {
|
|
509
|
+
var args = [];
|
|
510
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
511
|
+
args[_i - 1] = arguments[_i];
|
|
512
|
+
}
|
|
477
513
|
if (!target) {
|
|
478
514
|
throw TypeError("Cannot convert undefined or null to object");
|
|
479
515
|
}
|
|
480
|
-
|
|
516
|
+
var _loop_1 = function (source) {
|
|
481
517
|
if (source) {
|
|
482
|
-
Object.keys(source).forEach((key)
|
|
518
|
+
Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });
|
|
483
519
|
}
|
|
520
|
+
};
|
|
521
|
+
for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {
|
|
522
|
+
var source = args_1[_a];
|
|
523
|
+
_loop_1(source);
|
|
484
524
|
}
|
|
485
525
|
return target;
|
|
486
526
|
};
|
|
487
527
|
}
|
|
488
528
|
|
|
489
|
-
|
|
529
|
+
var __assign = (undefined && undefined.__assign) || function () {
|
|
530
|
+
__assign = Object.assign || function(t) {
|
|
531
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
532
|
+
s = arguments[i];
|
|
533
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
534
|
+
t[p] = s[p];
|
|
535
|
+
}
|
|
536
|
+
return t;
|
|
537
|
+
};
|
|
538
|
+
return __assign.apply(this, arguments);
|
|
539
|
+
};
|
|
540
|
+
var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
|
|
541
|
+
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
|
542
|
+
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
|
543
|
+
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
|
544
|
+
r[k] = a[j];
|
|
545
|
+
return r;
|
|
546
|
+
};
|
|
547
|
+
var DEBOUNCED_CHANGE_MS = 300;
|
|
490
548
|
function FlatpickrInstance(element, instanceConfig) {
|
|
491
|
-
|
|
492
|
-
config:
|
|
549
|
+
var self = {
|
|
550
|
+
config: __assign(__assign({}, defaults), flatpickr.defaultConfig),
|
|
493
551
|
l10n: english,
|
|
494
552
|
};
|
|
495
553
|
self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });
|
|
@@ -503,10 +561,13 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
503
561
|
self.changeYear = changeYear;
|
|
504
562
|
self.clear = clear;
|
|
505
563
|
self.close = close;
|
|
564
|
+
self.onMouseOver = onMouseOver;
|
|
506
565
|
self._createElement = createElement;
|
|
566
|
+
self.createDay = createDay;
|
|
507
567
|
self.destroy = destroy;
|
|
508
568
|
self.isEnabled = isEnabled;
|
|
509
569
|
self.jumpToDate = jumpToDate;
|
|
570
|
+
self.updateValue = updateValue;
|
|
510
571
|
self.open = open;
|
|
511
572
|
self.redraw = redraw;
|
|
512
573
|
self.set = set;
|
|
@@ -514,7 +575,9 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
514
575
|
self.toggle = toggle;
|
|
515
576
|
function setupHelperFunctions() {
|
|
516
577
|
self.utils = {
|
|
517
|
-
getDaysInMonth(month
|
|
578
|
+
getDaysInMonth: function (month, yr) {
|
|
579
|
+
if (month === void 0) { month = self.currentMonth; }
|
|
580
|
+
if (yr === void 0) { yr = self.currentYear; }
|
|
518
581
|
if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))
|
|
519
582
|
return 29;
|
|
520
583
|
return self.l10n.daysInMonth[month];
|
|
@@ -539,17 +602,22 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
539
602
|
updateValue(false);
|
|
540
603
|
}
|
|
541
604
|
setCalendarWidth();
|
|
542
|
-
|
|
605
|
+
var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
|
543
606
|
if (!self.isMobile && isSafari) {
|
|
544
607
|
positionCalendar();
|
|
545
608
|
}
|
|
546
609
|
triggerEvent("onReady");
|
|
547
610
|
}
|
|
611
|
+
function getClosestActiveElement() {
|
|
612
|
+
var _a;
|
|
613
|
+
return (((_a = self.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode())
|
|
614
|
+
.activeElement || document.activeElement);
|
|
615
|
+
}
|
|
548
616
|
function bindToInstance(fn) {
|
|
549
617
|
return fn.bind(self);
|
|
550
618
|
}
|
|
551
619
|
function setCalendarWidth() {
|
|
552
|
-
|
|
620
|
+
var config = self.config;
|
|
553
621
|
if (config.weekNumbers === false && config.showMonths === 1) {
|
|
554
622
|
return;
|
|
555
623
|
}
|
|
@@ -560,7 +628,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
560
628
|
self.calendarContainer.style.display = "block";
|
|
561
629
|
}
|
|
562
630
|
if (self.daysContainer !== undefined) {
|
|
563
|
-
|
|
631
|
+
var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;
|
|
564
632
|
self.daysContainer.style.width = daysWidth + "px";
|
|
565
633
|
self.calendarContainer.style.width =
|
|
566
634
|
daysWidth +
|
|
@@ -576,11 +644,11 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
576
644
|
}
|
|
577
645
|
function updateTime(e) {
|
|
578
646
|
if (self.selectedDates.length === 0) {
|
|
579
|
-
|
|
647
|
+
var defaultDate = self.config.minDate === undefined ||
|
|
580
648
|
compareDates(new Date(), self.config.minDate) >= 0
|
|
581
649
|
? new Date()
|
|
582
650
|
: new Date(self.config.minDate.getTime());
|
|
583
|
-
|
|
651
|
+
var defaults = getDefaultHours(self.config);
|
|
584
652
|
defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());
|
|
585
653
|
self.selectedDates = [defaultDate];
|
|
586
654
|
self.latestSelectedDateObj = defaultDate;
|
|
@@ -588,7 +656,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
588
656
|
if (e !== undefined && e.type !== "blur") {
|
|
589
657
|
timeWrapper(e);
|
|
590
658
|
}
|
|
591
|
-
|
|
659
|
+
var prevValue = self._input.value;
|
|
592
660
|
setHoursFromInputs();
|
|
593
661
|
updateValue();
|
|
594
662
|
if (self._input.value !== prevValue) {
|
|
@@ -610,49 +678,64 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
610
678
|
function setHoursFromInputs() {
|
|
611
679
|
if (self.hourElement === undefined || self.minuteElement === undefined)
|
|
612
680
|
return;
|
|
613
|
-
|
|
681
|
+
var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined
|
|
614
682
|
? (parseInt(self.secondElement.value, 10) || 0) % 60
|
|
615
683
|
: 0;
|
|
616
684
|
if (self.amPM !== undefined) {
|
|
617
685
|
hours = ampm2military(hours, self.amPM.textContent);
|
|
618
686
|
}
|
|
619
|
-
|
|
687
|
+
var limitMinHours = self.config.minTime !== undefined ||
|
|
620
688
|
(self.config.minDate &&
|
|
621
689
|
self.minDateHasTime &&
|
|
622
690
|
self.latestSelectedDateObj &&
|
|
623
691
|
compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===
|
|
624
692
|
0);
|
|
625
|
-
|
|
693
|
+
var limitMaxHours = self.config.maxTime !== undefined ||
|
|
626
694
|
(self.config.maxDate &&
|
|
627
695
|
self.maxDateHasTime &&
|
|
628
696
|
self.latestSelectedDateObj &&
|
|
629
697
|
compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===
|
|
630
698
|
0);
|
|
631
|
-
if (
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
699
|
+
if (self.config.maxTime !== undefined &&
|
|
700
|
+
self.config.minTime !== undefined &&
|
|
701
|
+
self.config.minTime > self.config.maxTime) {
|
|
702
|
+
var minBound = calculateSecondsSinceMidnight(self.config.minTime.getHours(), self.config.minTime.getMinutes(), self.config.minTime.getSeconds());
|
|
703
|
+
var maxBound = calculateSecondsSinceMidnight(self.config.maxTime.getHours(), self.config.maxTime.getMinutes(), self.config.maxTime.getSeconds());
|
|
704
|
+
var currentTime = calculateSecondsSinceMidnight(hours, minutes, seconds);
|
|
705
|
+
if (currentTime > maxBound && currentTime < minBound) {
|
|
706
|
+
var result = parseSeconds(minBound);
|
|
707
|
+
hours = result[0];
|
|
708
|
+
minutes = result[1];
|
|
709
|
+
seconds = result[2];
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
else {
|
|
713
|
+
if (limitMaxHours) {
|
|
714
|
+
var maxTime = self.config.maxTime !== undefined
|
|
715
|
+
? self.config.maxTime
|
|
716
|
+
: self.config.maxDate;
|
|
717
|
+
hours = Math.min(hours, maxTime.getHours());
|
|
718
|
+
if (hours === maxTime.getHours())
|
|
719
|
+
minutes = Math.min(minutes, maxTime.getMinutes());
|
|
720
|
+
if (minutes === maxTime.getMinutes())
|
|
721
|
+
seconds = Math.min(seconds, maxTime.getSeconds());
|
|
722
|
+
}
|
|
723
|
+
if (limitMinHours) {
|
|
724
|
+
var minTime = self.config.minTime !== undefined
|
|
725
|
+
? self.config.minTime
|
|
726
|
+
: self.config.minDate;
|
|
727
|
+
hours = Math.max(hours, minTime.getHours());
|
|
728
|
+
if (hours === minTime.getHours() && minutes < minTime.getMinutes())
|
|
729
|
+
minutes = minTime.getMinutes();
|
|
730
|
+
if (minutes === minTime.getMinutes())
|
|
731
|
+
seconds = Math.max(seconds, minTime.getSeconds());
|
|
732
|
+
}
|
|
650
733
|
}
|
|
651
734
|
setHours(hours, minutes, seconds);
|
|
652
735
|
}
|
|
653
736
|
function setHoursFromDate(dateObj) {
|
|
654
|
-
|
|
655
|
-
if (date) {
|
|
737
|
+
var date = dateObj || self.latestSelectedDateObj;
|
|
738
|
+
if (date && date instanceof Date) {
|
|
656
739
|
setHours(date.getHours(), date.getMinutes(), date.getSeconds());
|
|
657
740
|
}
|
|
658
741
|
}
|
|
@@ -672,8 +755,8 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
672
755
|
self.secondElement.value = pad(seconds);
|
|
673
756
|
}
|
|
674
757
|
function onYearInput(event) {
|
|
675
|
-
|
|
676
|
-
|
|
758
|
+
var eventTarget = getEventTarget(event);
|
|
759
|
+
var year = parseInt(eventTarget.value) + (event.delta || 0);
|
|
677
760
|
if (year / 1000 > 1 ||
|
|
678
761
|
(event.key === "Enter" && !/[^\d]/.test(year.toString()))) {
|
|
679
762
|
changeYear(year);
|
|
@@ -681,12 +764,12 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
681
764
|
}
|
|
682
765
|
function bind(element, event, handler, options) {
|
|
683
766
|
if (event instanceof Array)
|
|
684
|
-
return event.forEach((ev)
|
|
767
|
+
return event.forEach(function (ev) { return bind(element, ev, handler, options); });
|
|
685
768
|
if (element instanceof Array)
|
|
686
|
-
return element.forEach((el)
|
|
769
|
+
return element.forEach(function (el) { return bind(el, event, handler, options); });
|
|
687
770
|
element.addEventListener(event, handler, options);
|
|
688
771
|
self._handlers.push({
|
|
689
|
-
remove: ()
|
|
772
|
+
remove: function () { return element.removeEventListener(event, handler, options); },
|
|
690
773
|
});
|
|
691
774
|
}
|
|
692
775
|
function triggerChange() {
|
|
@@ -694,22 +777,27 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
694
777
|
}
|
|
695
778
|
function bindEvents() {
|
|
696
779
|
if (self.config.wrap) {
|
|
697
|
-
["open", "close", "toggle", "clear"].forEach((evt)
|
|
698
|
-
Array.prototype.forEach.call(self.element.querySelectorAll(
|
|
780
|
+
["open", "close", "toggle", "clear"].forEach(function (evt) {
|
|
781
|
+
Array.prototype.forEach.call(self.element.querySelectorAll("[data-" + evt + "]"), function (el) {
|
|
782
|
+
return bind(el, "click", self[evt]);
|
|
783
|
+
});
|
|
699
784
|
});
|
|
700
785
|
}
|
|
701
786
|
if (self.isMobile) {
|
|
702
787
|
setupMobile();
|
|
703
788
|
return;
|
|
704
789
|
}
|
|
705
|
-
|
|
790
|
+
var debouncedResize = debounce(onResize, 50);
|
|
706
791
|
self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);
|
|
707
792
|
if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))
|
|
708
|
-
bind(self.daysContainer, "mouseover", (e)
|
|
793
|
+
bind(self.daysContainer, "mouseover", function (e) {
|
|
709
794
|
if (self.config.mode === "range")
|
|
710
795
|
onMouseOver(getEventTarget(e));
|
|
711
796
|
});
|
|
712
|
-
bind(
|
|
797
|
+
bind(self._input, "keydown", onKeyDown);
|
|
798
|
+
if (self.calendarContainer !== undefined) {
|
|
799
|
+
bind(self.calendarContainer, "keydown", onKeyDown);
|
|
800
|
+
}
|
|
713
801
|
if (!self.config.inline && !self.config.static)
|
|
714
802
|
bind(window, "resize", debouncedResize);
|
|
715
803
|
if (window.ontouchstart !== undefined)
|
|
@@ -729,17 +817,18 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
729
817
|
if (self.timeContainer !== undefined &&
|
|
730
818
|
self.minuteElement !== undefined &&
|
|
731
819
|
self.hourElement !== undefined) {
|
|
732
|
-
|
|
820
|
+
var selText = function (e) {
|
|
821
|
+
return getEventTarget(e).select();
|
|
822
|
+
};
|
|
733
823
|
bind(self.timeContainer, ["increment"], updateTime);
|
|
734
824
|
bind(self.timeContainer, "blur", updateTime, { capture: true });
|
|
735
825
|
bind(self.timeContainer, "click", timeIncrement);
|
|
736
826
|
bind([self.hourElement, self.minuteElement], ["focus", "click"], selText);
|
|
737
827
|
if (self.secondElement !== undefined)
|
|
738
|
-
bind(self.secondElement, "focus", ()
|
|
828
|
+
bind(self.secondElement, "focus", function () { return self.secondElement && self.secondElement.select(); });
|
|
739
829
|
if (self.amPM !== undefined) {
|
|
740
|
-
bind(self.amPM, "click", (e)
|
|
830
|
+
bind(self.amPM, "click", function (e) {
|
|
741
831
|
updateTime(e);
|
|
742
|
-
triggerChange();
|
|
743
832
|
});
|
|
744
833
|
}
|
|
745
834
|
}
|
|
@@ -748,7 +837,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
748
837
|
}
|
|
749
838
|
}
|
|
750
839
|
function jumpToDate(jumpDate, triggerChange) {
|
|
751
|
-
|
|
840
|
+
var jumpTo = jumpDate !== undefined
|
|
752
841
|
? self.parseDate(jumpDate)
|
|
753
842
|
: self.latestSelectedDateObj ||
|
|
754
843
|
(self.config.minDate && self.config.minDate > self.now
|
|
@@ -756,8 +845,8 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
756
845
|
: self.config.maxDate && self.config.maxDate < self.now
|
|
757
846
|
? self.config.maxDate
|
|
758
847
|
: self.now);
|
|
759
|
-
|
|
760
|
-
|
|
848
|
+
var oldYear = self.currentYear;
|
|
849
|
+
var oldMonth = self.currentMonth;
|
|
761
850
|
try {
|
|
762
851
|
if (jumpTo !== undefined) {
|
|
763
852
|
self.currentYear = jumpTo.getFullYear();
|
|
@@ -779,27 +868,27 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
779
868
|
self.redraw();
|
|
780
869
|
}
|
|
781
870
|
function timeIncrement(e) {
|
|
782
|
-
|
|
871
|
+
var eventTarget = getEventTarget(e);
|
|
783
872
|
if (~eventTarget.className.indexOf("arrow"))
|
|
784
873
|
incrementNumInput(e, eventTarget.classList.contains("arrowUp") ? 1 : -1);
|
|
785
874
|
}
|
|
786
875
|
function incrementNumInput(e, delta, inputElem) {
|
|
787
|
-
|
|
788
|
-
|
|
876
|
+
var target = e && getEventTarget(e);
|
|
877
|
+
var input = inputElem ||
|
|
789
878
|
(target && target.parentNode && target.parentNode.firstChild);
|
|
790
|
-
|
|
879
|
+
var event = createEvent("increment");
|
|
791
880
|
event.delta = delta;
|
|
792
881
|
input && input.dispatchEvent(event);
|
|
793
882
|
}
|
|
794
883
|
function build() {
|
|
795
|
-
|
|
884
|
+
var fragment = window.document.createDocumentFragment();
|
|
796
885
|
self.calendarContainer = createElement("div", "flatpickr-calendar");
|
|
797
886
|
self.calendarContainer.tabIndex = -1;
|
|
798
887
|
if (!self.config.noCalendar) {
|
|
799
888
|
fragment.appendChild(buildMonthNav());
|
|
800
889
|
self.innerContainer = createElement("div", "flatpickr-innerContainer");
|
|
801
890
|
if (self.config.weekNumbers) {
|
|
802
|
-
|
|
891
|
+
var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;
|
|
803
892
|
self.innerContainer.appendChild(weekWrapper);
|
|
804
893
|
self.weekNumbers = weekNumbers;
|
|
805
894
|
self.weekWrapper = weekWrapper;
|
|
@@ -822,7 +911,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
822
911
|
toggleClass(self.calendarContainer, "animate", self.config.animate === true);
|
|
823
912
|
toggleClass(self.calendarContainer, "multiMonth", self.config.showMonths > 1);
|
|
824
913
|
self.calendarContainer.appendChild(fragment);
|
|
825
|
-
|
|
914
|
+
var customAppend = self.config.appendTo !== undefined &&
|
|
826
915
|
self.config.appendTo.nodeType !== undefined;
|
|
827
916
|
if (self.config.inline || self.config.static) {
|
|
828
917
|
self.calendarContainer.classList.add(self.config.inline ? "inline" : "static");
|
|
@@ -833,7 +922,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
833
922
|
self.config.appendTo.appendChild(self.calendarContainer);
|
|
834
923
|
}
|
|
835
924
|
if (self.config.static) {
|
|
836
|
-
|
|
925
|
+
var wrapper = createElement("div", "flatpickr-wrapper");
|
|
837
926
|
if (self.element.parentNode)
|
|
838
927
|
self.element.parentNode.insertBefore(wrapper, self.element);
|
|
839
928
|
wrapper.appendChild(self.element);
|
|
@@ -847,8 +936,8 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
847
936
|
? self.config.appendTo
|
|
848
937
|
: window.document.body).appendChild(self.calendarContainer);
|
|
849
938
|
}
|
|
850
|
-
function createDay(className, date,
|
|
851
|
-
|
|
939
|
+
function createDay(className, date, _dayNumber, i) {
|
|
940
|
+
var dateIsEnabled = isEnabled(date, true), dayElement = createElement("span", className, date.getDate().toString());
|
|
852
941
|
dayElement.dateObj = date;
|
|
853
942
|
dayElement.$i = i;
|
|
854
943
|
dayElement.setAttribute("aria-label", self.formatDate(date, self.config.ariaDateFormat));
|
|
@@ -883,7 +972,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
883
972
|
if (self.weekNumbers &&
|
|
884
973
|
self.config.showMonths === 1 &&
|
|
885
974
|
className !== "prevMonthDay" &&
|
|
886
|
-
|
|
975
|
+
i % 7 === 6) {
|
|
887
976
|
self.weekNumbers.insertAdjacentHTML("beforeend", "<span class='flatpickr-day'>" + self.config.getWeek(date) + "</span>");
|
|
888
977
|
}
|
|
889
978
|
triggerEvent("onDayCreate", dayElement);
|
|
@@ -895,14 +984,14 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
895
984
|
onMouseOver(targetNode);
|
|
896
985
|
}
|
|
897
986
|
function getFirstAvailableDay(delta) {
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
for (
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
for (
|
|
905
|
-
|
|
987
|
+
var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;
|
|
988
|
+
var endMonth = delta > 0 ? self.config.showMonths : -1;
|
|
989
|
+
for (var m = startMonth; m != endMonth; m += delta) {
|
|
990
|
+
var month = self.daysContainer.children[m];
|
|
991
|
+
var startIndex = delta > 0 ? 0 : month.children.length - 1;
|
|
992
|
+
var endIndex = delta > 0 ? month.children.length : -1;
|
|
993
|
+
for (var i = startIndex; i != endIndex; i += delta) {
|
|
994
|
+
var c = month.children[i];
|
|
906
995
|
if (c.className.indexOf("hidden") === -1 && isEnabled(c.dateObj))
|
|
907
996
|
return c;
|
|
908
997
|
}
|
|
@@ -910,21 +999,21 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
910
999
|
return undefined;
|
|
911
1000
|
}
|
|
912
1001
|
function getNextAvailableDay(current, delta) {
|
|
913
|
-
|
|
1002
|
+
var givenMonth = current.className.indexOf("Month") === -1
|
|
914
1003
|
? current.dateObj.getMonth()
|
|
915
1004
|
: self.currentMonth;
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
for (
|
|
919
|
-
|
|
920
|
-
|
|
1005
|
+
var endMonth = delta > 0 ? self.config.showMonths : -1;
|
|
1006
|
+
var loopDelta = delta > 0 ? 1 : -1;
|
|
1007
|
+
for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {
|
|
1008
|
+
var month = self.daysContainer.children[m];
|
|
1009
|
+
var startIndex = givenMonth - self.currentMonth === m
|
|
921
1010
|
? current.$i + delta
|
|
922
1011
|
: delta < 0
|
|
923
1012
|
? month.children.length - 1
|
|
924
1013
|
: 0;
|
|
925
|
-
|
|
926
|
-
for (
|
|
927
|
-
|
|
1014
|
+
var numMonthDays = month.children.length;
|
|
1015
|
+
for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {
|
|
1016
|
+
var c = month.children[i];
|
|
928
1017
|
if (c.className.indexOf("hidden") === -1 &&
|
|
929
1018
|
isEnabled(c.dateObj) &&
|
|
930
1019
|
Math.abs(current.$i - i) >= Math.abs(delta))
|
|
@@ -936,11 +1025,12 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
936
1025
|
return undefined;
|
|
937
1026
|
}
|
|
938
1027
|
function focusOnDay(current, offset) {
|
|
939
|
-
|
|
940
|
-
|
|
1028
|
+
var activeElement = getClosestActiveElement();
|
|
1029
|
+
var dayFocused = isInView(activeElement || document.body);
|
|
1030
|
+
var startElem = current !== undefined
|
|
941
1031
|
? current
|
|
942
1032
|
: dayFocused
|
|
943
|
-
?
|
|
1033
|
+
? activeElement
|
|
944
1034
|
: self.selectedDateElem !== undefined && isInView(self.selectedDateElem)
|
|
945
1035
|
? self.selectedDateElem
|
|
946
1036
|
: self.todayDateElem !== undefined && isInView(self.todayDateElem)
|
|
@@ -957,21 +1047,21 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
957
1047
|
}
|
|
958
1048
|
}
|
|
959
1049
|
function buildMonthDays(year, month) {
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
1050
|
+
var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;
|
|
1051
|
+
var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);
|
|
1052
|
+
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";
|
|
1053
|
+
var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;
|
|
964
1054
|
for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {
|
|
965
|
-
days.appendChild(createDay(prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));
|
|
1055
|
+
days.appendChild(createDay("flatpickr-day " + prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));
|
|
966
1056
|
}
|
|
967
1057
|
for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {
|
|
968
|
-
days.appendChild(createDay("", new Date(year, month, dayNumber), dayNumber, dayIndex));
|
|
1058
|
+
days.appendChild(createDay("flatpickr-day", new Date(year, month, dayNumber), dayNumber, dayIndex));
|
|
969
1059
|
}
|
|
970
|
-
for (
|
|
1060
|
+
for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&
|
|
971
1061
|
(self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {
|
|
972
|
-
days.appendChild(createDay(nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));
|
|
1062
|
+
days.appendChild(createDay("flatpickr-day " + nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));
|
|
973
1063
|
}
|
|
974
|
-
|
|
1064
|
+
var dayContainer = createElement("div", "dayContainer");
|
|
975
1065
|
dayContainer.appendChild(days);
|
|
976
1066
|
return dayContainer;
|
|
977
1067
|
}
|
|
@@ -982,9 +1072,9 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
982
1072
|
clearNode(self.daysContainer);
|
|
983
1073
|
if (self.weekNumbers)
|
|
984
1074
|
clearNode(self.weekNumbers);
|
|
985
|
-
|
|
986
|
-
for (
|
|
987
|
-
|
|
1075
|
+
var frag = document.createDocumentFragment();
|
|
1076
|
+
for (var i = 0; i < self.config.showMonths; i++) {
|
|
1077
|
+
var d = new Date(self.currentYear, self.currentMonth, 1);
|
|
988
1078
|
d.setMonth(self.currentMonth + i);
|
|
989
1079
|
frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));
|
|
990
1080
|
}
|
|
@@ -998,7 +1088,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
998
1088
|
if (self.config.showMonths > 1 ||
|
|
999
1089
|
self.config.monthSelectorType !== "dropdown")
|
|
1000
1090
|
return;
|
|
1001
|
-
|
|
1091
|
+
var shouldBuildMonth = function (month) {
|
|
1002
1092
|
if (self.config.minDate !== undefined &&
|
|
1003
1093
|
self.currentYear === self.config.minDate.getFullYear() &&
|
|
1004
1094
|
month < self.config.minDate.getMonth()) {
|
|
@@ -1010,10 +1100,10 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1010
1100
|
};
|
|
1011
1101
|
self.monthsDropdownContainer.tabIndex = -1;
|
|
1012
1102
|
self.monthsDropdownContainer.innerHTML = "";
|
|
1013
|
-
for (
|
|
1103
|
+
for (var i = 0; i < 12; i++) {
|
|
1014
1104
|
if (!shouldBuildMonth(i))
|
|
1015
1105
|
continue;
|
|
1016
|
-
|
|
1106
|
+
var month = createElement("option", "flatpickr-monthDropdown-month");
|
|
1017
1107
|
month.value = new Date(self.currentYear, i).getMonth().toString();
|
|
1018
1108
|
month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);
|
|
1019
1109
|
month.tabIndex = -1;
|
|
@@ -1024,9 +1114,9 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1024
1114
|
}
|
|
1025
1115
|
}
|
|
1026
1116
|
function buildMonth() {
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1117
|
+
var container = createElement("div", "flatpickr-month");
|
|
1118
|
+
var monthNavFragment = window.document.createDocumentFragment();
|
|
1119
|
+
var monthElement;
|
|
1030
1120
|
if (self.config.showMonths > 1 ||
|
|
1031
1121
|
self.config.monthSelectorType === "static") {
|
|
1032
1122
|
monthElement = createElement("span", "cur-month");
|
|
@@ -1034,17 +1124,17 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1034
1124
|
else {
|
|
1035
1125
|
self.monthsDropdownContainer = createElement("select", "flatpickr-monthDropdown-months");
|
|
1036
1126
|
self.monthsDropdownContainer.setAttribute("aria-label", self.l10n.monthAriaLabel);
|
|
1037
|
-
bind(self.monthsDropdownContainer, "change", (e)
|
|
1038
|
-
|
|
1039
|
-
|
|
1127
|
+
bind(self.monthsDropdownContainer, "change", function (e) {
|
|
1128
|
+
var target = getEventTarget(e);
|
|
1129
|
+
var selectedMonth = parseInt(target.value, 10);
|
|
1040
1130
|
self.changeMonth(selectedMonth - self.currentMonth);
|
|
1041
1131
|
triggerEvent("onMonthChange");
|
|
1042
1132
|
});
|
|
1043
1133
|
buildMonthSwitch();
|
|
1044
1134
|
monthElement = self.monthsDropdownContainer;
|
|
1045
1135
|
}
|
|
1046
|
-
|
|
1047
|
-
|
|
1136
|
+
var yearInput = createNumberInput("cur-year", { tabindex: "-1" });
|
|
1137
|
+
var yearElement = yearInput.getElementsByTagName("input")[0];
|
|
1048
1138
|
yearElement.setAttribute("aria-label", self.l10n.yearAriaLabel);
|
|
1049
1139
|
if (self.config.minDate) {
|
|
1050
1140
|
yearElement.setAttribute("min", self.config.minDate.getFullYear().toString());
|
|
@@ -1055,15 +1145,15 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1055
1145
|
!!self.config.minDate &&
|
|
1056
1146
|
self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();
|
|
1057
1147
|
}
|
|
1058
|
-
|
|
1148
|
+
var currentMonth = createElement("div", "flatpickr-current-month");
|
|
1059
1149
|
currentMonth.appendChild(monthElement);
|
|
1060
1150
|
currentMonth.appendChild(yearInput);
|
|
1061
1151
|
monthNavFragment.appendChild(currentMonth);
|
|
1062
1152
|
container.appendChild(monthNavFragment);
|
|
1063
1153
|
return {
|
|
1064
|
-
container,
|
|
1065
|
-
yearElement,
|
|
1066
|
-
monthElement,
|
|
1154
|
+
container: container,
|
|
1155
|
+
yearElement: yearElement,
|
|
1156
|
+
monthElement: monthElement,
|
|
1067
1157
|
};
|
|
1068
1158
|
}
|
|
1069
1159
|
function buildMonths() {
|
|
@@ -1073,8 +1163,8 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1073
1163
|
self.yearElements = [];
|
|
1074
1164
|
self.monthElements = [];
|
|
1075
1165
|
}
|
|
1076
|
-
for (
|
|
1077
|
-
|
|
1166
|
+
for (var m = self.config.showMonths; m--;) {
|
|
1167
|
+
var month = buildMonth();
|
|
1078
1168
|
self.yearElements.push(month.yearElement);
|
|
1079
1169
|
self.monthElements.push(month.monthElement);
|
|
1080
1170
|
self.monthNav.appendChild(month.container);
|
|
@@ -1091,8 +1181,8 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1091
1181
|
self.nextMonthNav.innerHTML = self.config.nextArrow;
|
|
1092
1182
|
buildMonths();
|
|
1093
1183
|
Object.defineProperty(self, "_hidePrevMonthArrow", {
|
|
1094
|
-
get: ()
|
|
1095
|
-
set(bool) {
|
|
1184
|
+
get: function () { return self.__hidePrevMonthArrow; },
|
|
1185
|
+
set: function (bool) {
|
|
1096
1186
|
if (self.__hidePrevMonthArrow !== bool) {
|
|
1097
1187
|
toggleClass(self.prevMonthNav, "flatpickr-disabled", bool);
|
|
1098
1188
|
self.__hidePrevMonthArrow = bool;
|
|
@@ -1100,8 +1190,8 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1100
1190
|
},
|
|
1101
1191
|
});
|
|
1102
1192
|
Object.defineProperty(self, "_hideNextMonthArrow", {
|
|
1103
|
-
get: ()
|
|
1104
|
-
set(bool) {
|
|
1193
|
+
get: function () { return self.__hideNextMonthArrow; },
|
|
1194
|
+
set: function (bool) {
|
|
1105
1195
|
if (self.__hideNextMonthArrow !== bool) {
|
|
1106
1196
|
toggleClass(self.nextMonthNav, "flatpickr-disabled", bool);
|
|
1107
1197
|
self.__hideNextMonthArrow = bool;
|
|
@@ -1116,15 +1206,15 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1116
1206
|
self.calendarContainer.classList.add("hasTime");
|
|
1117
1207
|
if (self.config.noCalendar)
|
|
1118
1208
|
self.calendarContainer.classList.add("noCalendar");
|
|
1119
|
-
|
|
1209
|
+
var defaults = getDefaultHours(self.config);
|
|
1120
1210
|
self.timeContainer = createElement("div", "flatpickr-time");
|
|
1121
1211
|
self.timeContainer.tabIndex = -1;
|
|
1122
|
-
|
|
1123
|
-
|
|
1212
|
+
var separator = createElement("span", "flatpickr-time-separator", ":");
|
|
1213
|
+
var hourInput = createNumberInput("flatpickr-hour", {
|
|
1124
1214
|
"aria-label": self.l10n.hourAriaLabel,
|
|
1125
1215
|
});
|
|
1126
1216
|
self.hourElement = hourInput.getElementsByTagName("input")[0];
|
|
1127
|
-
|
|
1217
|
+
var minuteInput = createNumberInput("flatpickr-minute", {
|
|
1128
1218
|
"aria-label": self.l10n.minuteAriaLabel,
|
|
1129
1219
|
});
|
|
1130
1220
|
self.minuteElement = minuteInput.getElementsByTagName("input")[0];
|
|
@@ -1152,7 +1242,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1152
1242
|
self.timeContainer.classList.add("time24hr");
|
|
1153
1243
|
if (self.config.enableSeconds) {
|
|
1154
1244
|
self.timeContainer.classList.add("hasSeconds");
|
|
1155
|
-
|
|
1245
|
+
var secondInput = createNumberInput("flatpickr-second");
|
|
1156
1246
|
self.secondElement = secondInput.getElementsByTagName("input")[0];
|
|
1157
1247
|
self.secondElement.value = pad(self.latestSelectedDateObj
|
|
1158
1248
|
? self.latestSelectedDateObj.getSeconds()
|
|
@@ -1179,8 +1269,8 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1179
1269
|
self.weekdayContainer = createElement("div", "flatpickr-weekdays");
|
|
1180
1270
|
else
|
|
1181
1271
|
clearNode(self.weekdayContainer);
|
|
1182
|
-
for (
|
|
1183
|
-
|
|
1272
|
+
for (var i = self.config.showMonths; i--;) {
|
|
1273
|
+
var container = createElement("div", "flatpickr-weekdaycontainer");
|
|
1184
1274
|
self.weekdayContainer.appendChild(container);
|
|
1185
1275
|
}
|
|
1186
1276
|
updateWeekdays();
|
|
@@ -1190,35 +1280,29 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1190
1280
|
if (!self.weekdayContainer) {
|
|
1191
1281
|
return;
|
|
1192
1282
|
}
|
|
1193
|
-
|
|
1194
|
-
|
|
1283
|
+
var firstDayOfWeek = self.l10n.firstDayOfWeek;
|
|
1284
|
+
var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);
|
|
1195
1285
|
if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {
|
|
1196
|
-
weekdays =
|
|
1197
|
-
...weekdays.splice(firstDayOfWeek, weekdays.length),
|
|
1198
|
-
...weekdays.splice(0, firstDayOfWeek),
|
|
1199
|
-
];
|
|
1286
|
+
weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));
|
|
1200
1287
|
}
|
|
1201
|
-
for (
|
|
1202
|
-
self.weekdayContainer.children[i].innerHTML =
|
|
1203
|
-
<span class='flatpickr-weekday'>
|
|
1204
|
-
${weekdays.join("</span><span class='flatpickr-weekday'>")}
|
|
1205
|
-
</span>
|
|
1206
|
-
`;
|
|
1288
|
+
for (var i = self.config.showMonths; i--;) {
|
|
1289
|
+
self.weekdayContainer.children[i].innerHTML = "\n <span class='flatpickr-weekday'>\n " + weekdays.join("</span><span class='flatpickr-weekday'>") + "\n </span>\n ";
|
|
1207
1290
|
}
|
|
1208
1291
|
}
|
|
1209
1292
|
function buildWeeks() {
|
|
1210
1293
|
self.calendarContainer.classList.add("hasWeeks");
|
|
1211
|
-
|
|
1294
|
+
var weekWrapper = createElement("div", "flatpickr-weekwrapper");
|
|
1212
1295
|
weekWrapper.appendChild(createElement("span", "flatpickr-weekday", self.l10n.weekAbbreviation));
|
|
1213
|
-
|
|
1296
|
+
var weekNumbers = createElement("div", "flatpickr-weeks");
|
|
1214
1297
|
weekWrapper.appendChild(weekNumbers);
|
|
1215
1298
|
return {
|
|
1216
|
-
weekWrapper,
|
|
1217
|
-
weekNumbers,
|
|
1299
|
+
weekWrapper: weekWrapper,
|
|
1300
|
+
weekNumbers: weekNumbers,
|
|
1218
1301
|
};
|
|
1219
1302
|
}
|
|
1220
|
-
function changeMonth(value, isOffset
|
|
1221
|
-
|
|
1303
|
+
function changeMonth(value, isOffset) {
|
|
1304
|
+
if (isOffset === void 0) { isOffset = true; }
|
|
1305
|
+
var delta = isOffset ? value : value - self.currentMonth;
|
|
1222
1306
|
if ((delta < 0 && self._hidePrevMonthArrow === true) ||
|
|
1223
1307
|
(delta > 0 && self._hideNextMonthArrow === true))
|
|
1224
1308
|
return;
|
|
@@ -1233,7 +1317,9 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1233
1317
|
triggerEvent("onMonthChange");
|
|
1234
1318
|
updateNavigationCurrentMonth();
|
|
1235
1319
|
}
|
|
1236
|
-
function clear(triggerChangeEvent
|
|
1320
|
+
function clear(triggerChangeEvent, toInitial) {
|
|
1321
|
+
if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }
|
|
1322
|
+
if (toInitial === void 0) { toInitial = true; }
|
|
1237
1323
|
self.input.value = "";
|
|
1238
1324
|
if (self.altInput !== undefined)
|
|
1239
1325
|
self.altInput.value = "";
|
|
@@ -1246,7 +1332,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1246
1332
|
self.currentMonth = self._initialDate.getMonth();
|
|
1247
1333
|
}
|
|
1248
1334
|
if (self.config.enableTime === true) {
|
|
1249
|
-
|
|
1335
|
+
var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;
|
|
1250
1336
|
setHours(hours, minutes, seconds);
|
|
1251
1337
|
}
|
|
1252
1338
|
self.redraw();
|
|
@@ -1268,7 +1354,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1268
1354
|
function destroy() {
|
|
1269
1355
|
if (self.config !== undefined)
|
|
1270
1356
|
triggerEvent("onDestroy");
|
|
1271
|
-
for (
|
|
1357
|
+
for (var i = self._handlers.length; i--;) {
|
|
1272
1358
|
self._handlers[i].remove();
|
|
1273
1359
|
}
|
|
1274
1360
|
self._handlers = [];
|
|
@@ -1279,7 +1365,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1279
1365
|
}
|
|
1280
1366
|
else if (self.calendarContainer && self.calendarContainer.parentNode) {
|
|
1281
1367
|
if (self.config.static && self.calendarContainer.parentNode) {
|
|
1282
|
-
|
|
1368
|
+
var wrapper = self.calendarContainer.parentNode;
|
|
1283
1369
|
wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);
|
|
1284
1370
|
if (wrapper.parentNode) {
|
|
1285
1371
|
while (wrapper.firstChild)
|
|
@@ -1331,7 +1417,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1331
1417
|
"navigationCurrentMonth",
|
|
1332
1418
|
"selectedDateElem",
|
|
1333
1419
|
"config",
|
|
1334
|
-
].forEach((k)
|
|
1420
|
+
].forEach(function (k) {
|
|
1335
1421
|
try {
|
|
1336
1422
|
delete self[k];
|
|
1337
1423
|
}
|
|
@@ -1339,30 +1425,31 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1339
1425
|
});
|
|
1340
1426
|
}
|
|
1341
1427
|
function isCalendarElem(elem) {
|
|
1342
|
-
if (self.config.appendTo && self.config.appendTo.contains(elem))
|
|
1343
|
-
return true;
|
|
1344
1428
|
return self.calendarContainer.contains(elem);
|
|
1345
1429
|
}
|
|
1346
1430
|
function documentClick(e) {
|
|
1347
1431
|
if (self.isOpen && !self.config.inline) {
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
self.element.contains(
|
|
1432
|
+
var eventTarget_1 = getEventTarget(e);
|
|
1433
|
+
var isCalendarElement = isCalendarElem(eventTarget_1);
|
|
1434
|
+
var isInput = eventTarget_1 === self.input ||
|
|
1435
|
+
eventTarget_1 === self.altInput ||
|
|
1436
|
+
self.element.contains(eventTarget_1) ||
|
|
1353
1437
|
(e.path &&
|
|
1354
1438
|
e.path.indexOf &&
|
|
1355
1439
|
(~e.path.indexOf(self.input) ||
|
|
1356
1440
|
~e.path.indexOf(self.altInput)));
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
!isCalendarElem(e.relatedTarget);
|
|
1364
|
-
const isIgnored = !self.config.ignoredFocusElements.some((elem) => elem.contains(eventTarget));
|
|
1441
|
+
var lostFocus = !isInput &&
|
|
1442
|
+
!isCalendarElement &&
|
|
1443
|
+
!isCalendarElem(e.relatedTarget);
|
|
1444
|
+
var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {
|
|
1445
|
+
return elem.contains(eventTarget_1);
|
|
1446
|
+
});
|
|
1365
1447
|
if (lostFocus && isIgnored) {
|
|
1448
|
+
if (self.config.allowInput) {
|
|
1449
|
+
self.setDate(self._input.value, false, self.config.altInput
|
|
1450
|
+
? self.config.altFormat
|
|
1451
|
+
: self.config.dateFormat);
|
|
1452
|
+
}
|
|
1366
1453
|
if (self.timeContainer !== undefined &&
|
|
1367
1454
|
self.minuteElement !== undefined &&
|
|
1368
1455
|
self.hourElement !== undefined &&
|
|
@@ -1373,10 +1460,8 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1373
1460
|
self.close();
|
|
1374
1461
|
if (self.config &&
|
|
1375
1462
|
self.config.mode === "range" &&
|
|
1376
|
-
self.selectedDates.length === 1)
|
|
1463
|
+
self.selectedDates.length === 1)
|
|
1377
1464
|
self.clear(false);
|
|
1378
|
-
self.redraw();
|
|
1379
|
-
}
|
|
1380
1465
|
}
|
|
1381
1466
|
}
|
|
1382
1467
|
}
|
|
@@ -1385,7 +1470,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1385
1470
|
(self.config.minDate && newYear < self.config.minDate.getFullYear()) ||
|
|
1386
1471
|
(self.config.maxDate && newYear > self.config.maxDate.getFullYear()))
|
|
1387
1472
|
return;
|
|
1388
|
-
|
|
1473
|
+
var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;
|
|
1389
1474
|
self.currentYear = newYearNum || self.currentYear;
|
|
1390
1475
|
if (self.config.maxDate &&
|
|
1391
1476
|
self.currentYear === self.config.maxDate.getFullYear()) {
|
|
@@ -1401,9 +1486,10 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1401
1486
|
buildMonthSwitch();
|
|
1402
1487
|
}
|
|
1403
1488
|
}
|
|
1404
|
-
function isEnabled(date, timeless
|
|
1489
|
+
function isEnabled(date, timeless) {
|
|
1405
1490
|
var _a;
|
|
1406
|
-
|
|
1491
|
+
if (timeless === void 0) { timeless = true; }
|
|
1492
|
+
var dateToCheck = self.parseDate(date, undefined, timeless);
|
|
1407
1493
|
if ((self.config.minDate &&
|
|
1408
1494
|
dateToCheck &&
|
|
1409
1495
|
compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||
|
|
@@ -1415,8 +1501,8 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1415
1501
|
return true;
|
|
1416
1502
|
if (dateToCheck === undefined)
|
|
1417
1503
|
return false;
|
|
1418
|
-
|
|
1419
|
-
for (
|
|
1504
|
+
var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;
|
|
1505
|
+
for (var i = 0, d = void 0; i < array.length; i++) {
|
|
1420
1506
|
d = array[i];
|
|
1421
1507
|
if (typeof d === "function" &&
|
|
1422
1508
|
d(dateToCheck))
|
|
@@ -1426,7 +1512,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1426
1512
|
d.getTime() === dateToCheck.getTime())
|
|
1427
1513
|
return bool;
|
|
1428
1514
|
else if (typeof d === "string") {
|
|
1429
|
-
|
|
1515
|
+
var parsed = self.parseDate(d, undefined, true);
|
|
1430
1516
|
return parsed && parsed.getTime() === dateToCheck.getTime()
|
|
1431
1517
|
? bool
|
|
1432
1518
|
: !bool;
|
|
@@ -1449,9 +1535,10 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1449
1535
|
return false;
|
|
1450
1536
|
}
|
|
1451
1537
|
function onBlur(e) {
|
|
1452
|
-
|
|
1538
|
+
var isInput = e.target === self._input;
|
|
1539
|
+
var valueChanged = self._input.value.trimEnd() !== getDateStr();
|
|
1453
1540
|
if (isInput &&
|
|
1454
|
-
|
|
1541
|
+
valueChanged &&
|
|
1455
1542
|
!(e.relatedTarget && isCalendarElem(e.relatedTarget))) {
|
|
1456
1543
|
self.setDate(self._input.value, true, e.target === self.altInput
|
|
1457
1544
|
? self.config.altFormat
|
|
@@ -1459,18 +1546,19 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1459
1546
|
}
|
|
1460
1547
|
}
|
|
1461
1548
|
function onKeyDown(e) {
|
|
1462
|
-
|
|
1463
|
-
|
|
1549
|
+
var eventTarget = getEventTarget(e);
|
|
1550
|
+
var isInput = self.config.wrap
|
|
1464
1551
|
? element.contains(eventTarget)
|
|
1465
1552
|
: eventTarget === self._input;
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1553
|
+
var allowInput = self.config.allowInput;
|
|
1554
|
+
var allowKeydown = self.isOpen && (!allowInput || !isInput);
|
|
1555
|
+
var allowInlineKeydown = self.config.inline && isInput && !allowInput;
|
|
1469
1556
|
if (e.keyCode === 13 && isInput) {
|
|
1470
1557
|
if (allowInput) {
|
|
1471
1558
|
self.setDate(self._input.value, true, eventTarget === self.altInput
|
|
1472
1559
|
? self.config.altFormat
|
|
1473
1560
|
: self.config.dateFormat);
|
|
1561
|
+
self.close();
|
|
1474
1562
|
return eventTarget.blur();
|
|
1475
1563
|
}
|
|
1476
1564
|
else {
|
|
@@ -1480,7 +1568,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1480
1568
|
else if (isCalendarElem(eventTarget) ||
|
|
1481
1569
|
allowKeydown ||
|
|
1482
1570
|
allowInlineKeydown) {
|
|
1483
|
-
|
|
1571
|
+
var isTimeObj = !!self.timeContainer &&
|
|
1484
1572
|
self.timeContainer.contains(eventTarget);
|
|
1485
1573
|
switch (e.keyCode) {
|
|
1486
1574
|
case 13:
|
|
@@ -1507,15 +1595,16 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1507
1595
|
case 39:
|
|
1508
1596
|
if (!isTimeObj && !isInput) {
|
|
1509
1597
|
e.preventDefault();
|
|
1598
|
+
var activeElement = getClosestActiveElement();
|
|
1510
1599
|
if (self.daysContainer !== undefined &&
|
|
1511
1600
|
(allowInput === false ||
|
|
1512
|
-
(
|
|
1513
|
-
|
|
1601
|
+
(activeElement && isInView(activeElement)))) {
|
|
1602
|
+
var delta_1 = e.keyCode === 39 ? 1 : -1;
|
|
1514
1603
|
if (!e.ctrlKey)
|
|
1515
|
-
focusOnDay(undefined,
|
|
1604
|
+
focusOnDay(undefined, delta_1);
|
|
1516
1605
|
else {
|
|
1517
1606
|
e.stopPropagation();
|
|
1518
|
-
changeMonth(
|
|
1607
|
+
changeMonth(delta_1);
|
|
1519
1608
|
focusOnDay(getFirstAvailableDay(1), 0);
|
|
1520
1609
|
}
|
|
1521
1610
|
}
|
|
@@ -1526,7 +1615,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1526
1615
|
case 38:
|
|
1527
1616
|
case 40:
|
|
1528
1617
|
e.preventDefault();
|
|
1529
|
-
|
|
1618
|
+
var delta = e.keyCode === 40 ? 1 : -1;
|
|
1530
1619
|
if ((self.daysContainer &&
|
|
1531
1620
|
eventTarget.$i !== undefined) ||
|
|
1532
1621
|
eventTarget === self.input ||
|
|
@@ -1551,17 +1640,17 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1551
1640
|
break;
|
|
1552
1641
|
case 9:
|
|
1553
1642
|
if (isTimeObj) {
|
|
1554
|
-
|
|
1643
|
+
var elems = [
|
|
1555
1644
|
self.hourElement,
|
|
1556
1645
|
self.minuteElement,
|
|
1557
1646
|
self.secondElement,
|
|
1558
1647
|
self.amPM,
|
|
1559
1648
|
]
|
|
1560
1649
|
.concat(self.pluginElements)
|
|
1561
|
-
.filter((x)
|
|
1562
|
-
|
|
1650
|
+
.filter(function (x) { return x; });
|
|
1651
|
+
var i = elems.indexOf(eventTarget);
|
|
1563
1652
|
if (i !== -1) {
|
|
1564
|
-
|
|
1653
|
+
var target = elems[i + (e.shiftKey ? -1 : 1)];
|
|
1565
1654
|
e.preventDefault();
|
|
1566
1655
|
(target || self._input).focus();
|
|
1567
1656
|
}
|
|
@@ -1596,18 +1685,19 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1596
1685
|
triggerEvent("onKeyDown", e);
|
|
1597
1686
|
}
|
|
1598
1687
|
}
|
|
1599
|
-
function onMouseOver(elem) {
|
|
1688
|
+
function onMouseOver(elem, cellClass) {
|
|
1689
|
+
if (cellClass === void 0) { cellClass = "flatpickr-day"; }
|
|
1600
1690
|
if (self.selectedDates.length !== 1 ||
|
|
1601
1691
|
(elem &&
|
|
1602
|
-
(!elem.classList.contains(
|
|
1692
|
+
(!elem.classList.contains(cellClass) ||
|
|
1603
1693
|
elem.classList.contains("flatpickr-disabled"))))
|
|
1604
1694
|
return;
|
|
1605
|
-
|
|
1695
|
+
var hoverDate = elem
|
|
1606
1696
|
? elem.dateObj.getTime()
|
|
1607
1697
|
: self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
for (
|
|
1698
|
+
var containsDisabled = false;
|
|
1699
|
+
var minRange = 0, maxRange = 0;
|
|
1700
|
+
for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {
|
|
1611
1701
|
if (!isEnabled(new Date(t), true)) {
|
|
1612
1702
|
containsDisabled =
|
|
1613
1703
|
containsDisabled || (t > rangeStartDate && t < rangeEndDate);
|
|
@@ -1617,50 +1707,49 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1617
1707
|
maxRange = t;
|
|
1618
1708
|
}
|
|
1619
1709
|
}
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
["inRange", "startRange", "endRange"].forEach((c) => {
|
|
1630
|
-
dayElem.classList.remove(c);
|
|
1631
|
-
});
|
|
1632
|
-
continue;
|
|
1633
|
-
}
|
|
1634
|
-
else if (containsDisabled && !outOfRange)
|
|
1635
|
-
continue;
|
|
1636
|
-
["startRange", "inRange", "endRange", "notAllowed"].forEach((c) => {
|
|
1710
|
+
var hoverableCells = Array.from(self.rContainer.querySelectorAll("*:nth-child(-n+" + self.config.showMonths + ") > ." + cellClass));
|
|
1711
|
+
hoverableCells.forEach(function (dayElem) {
|
|
1712
|
+
var date = dayElem.dateObj;
|
|
1713
|
+
var timestamp = date.getTime();
|
|
1714
|
+
var outOfRange = (minRange > 0 && timestamp < minRange) ||
|
|
1715
|
+
(maxRange > 0 && timestamp > maxRange);
|
|
1716
|
+
if (outOfRange) {
|
|
1717
|
+
dayElem.classList.add("notAllowed");
|
|
1718
|
+
["inRange", "startRange", "endRange"].forEach(function (c) {
|
|
1637
1719
|
dayElem.classList.remove(c);
|
|
1638
1720
|
});
|
|
1639
|
-
|
|
1640
|
-
elem.classList.add(hoverDate <= self.selectedDates[0].getTime()
|
|
1641
|
-
? "startRange"
|
|
1642
|
-
: "endRange");
|
|
1643
|
-
if (initialDate < hoverDate && timestamp === initialDate)
|
|
1644
|
-
dayElem.classList.add("startRange");
|
|
1645
|
-
else if (initialDate > hoverDate && timestamp === initialDate)
|
|
1646
|
-
dayElem.classList.add("endRange");
|
|
1647
|
-
if (timestamp >= minRange &&
|
|
1648
|
-
(maxRange === 0 || timestamp <= maxRange) &&
|
|
1649
|
-
isBetween(timestamp, initialDate, hoverDate))
|
|
1650
|
-
dayElem.classList.add("inRange");
|
|
1651
|
-
}
|
|
1721
|
+
return;
|
|
1652
1722
|
}
|
|
1653
|
-
|
|
1723
|
+
else if (containsDisabled && !outOfRange)
|
|
1724
|
+
return;
|
|
1725
|
+
["startRange", "inRange", "endRange", "notAllowed"].forEach(function (c) {
|
|
1726
|
+
dayElem.classList.remove(c);
|
|
1727
|
+
});
|
|
1728
|
+
if (elem !== undefined) {
|
|
1729
|
+
elem.classList.add(hoverDate <= self.selectedDates[0].getTime()
|
|
1730
|
+
? "startRange"
|
|
1731
|
+
: "endRange");
|
|
1732
|
+
if (initialDate < hoverDate && timestamp === initialDate)
|
|
1733
|
+
dayElem.classList.add("startRange");
|
|
1734
|
+
else if (initialDate > hoverDate && timestamp === initialDate)
|
|
1735
|
+
dayElem.classList.add("endRange");
|
|
1736
|
+
if (timestamp >= minRange &&
|
|
1737
|
+
(maxRange === 0 || timestamp <= maxRange) &&
|
|
1738
|
+
isBetween(timestamp, initialDate, hoverDate))
|
|
1739
|
+
dayElem.classList.add("inRange");
|
|
1740
|
+
}
|
|
1741
|
+
});
|
|
1654
1742
|
}
|
|
1655
1743
|
function onResize() {
|
|
1656
1744
|
if (self.isOpen && !self.config.static && !self.config.inline)
|
|
1657
1745
|
positionCalendar();
|
|
1658
1746
|
}
|
|
1659
|
-
function open(e, positionElement
|
|
1747
|
+
function open(e, positionElement) {
|
|
1748
|
+
if (positionElement === void 0) { positionElement = self._positionElement; }
|
|
1660
1749
|
if (self.isMobile === true) {
|
|
1661
1750
|
if (e) {
|
|
1662
1751
|
e.preventDefault();
|
|
1663
|
-
|
|
1752
|
+
var eventTarget = getEventTarget(e);
|
|
1664
1753
|
if (eventTarget) {
|
|
1665
1754
|
eventTarget.blur();
|
|
1666
1755
|
}
|
|
@@ -1675,7 +1764,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1675
1764
|
else if (self._input.disabled || self.config.inline) {
|
|
1676
1765
|
return;
|
|
1677
1766
|
}
|
|
1678
|
-
|
|
1767
|
+
var wasOpen = self.isOpen;
|
|
1679
1768
|
self.isOpen = true;
|
|
1680
1769
|
if (!wasOpen) {
|
|
1681
1770
|
self.calendarContainer.classList.add("open");
|
|
@@ -1687,14 +1776,14 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1687
1776
|
if (self.config.allowInput === false &&
|
|
1688
1777
|
(e === undefined ||
|
|
1689
1778
|
!self.timeContainer.contains(e.relatedTarget))) {
|
|
1690
|
-
setTimeout(()
|
|
1779
|
+
setTimeout(function () { return self.hourElement.select(); }, 50);
|
|
1691
1780
|
}
|
|
1692
1781
|
}
|
|
1693
1782
|
}
|
|
1694
1783
|
function minMaxDateSetter(type) {
|
|
1695
|
-
return (date)
|
|
1696
|
-
|
|
1697
|
-
|
|
1784
|
+
return function (date) {
|
|
1785
|
+
var dateObj = (self.config["_" + type + "Date"] = self.parseDate(date, self.config.dateFormat));
|
|
1786
|
+
var inverseDateObj = self.config["_" + (type === "min" ? "max" : "min") + "Date"];
|
|
1698
1787
|
if (dateObj !== undefined) {
|
|
1699
1788
|
self[type === "min" ? "minDateHasTime" : "maxDateHasTime"] =
|
|
1700
1789
|
dateObj.getHours() > 0 ||
|
|
@@ -1702,7 +1791,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1702
1791
|
dateObj.getSeconds() > 0;
|
|
1703
1792
|
}
|
|
1704
1793
|
if (self.selectedDates) {
|
|
1705
|
-
self.selectedDates = self.selectedDates.filter((d)
|
|
1794
|
+
self.selectedDates = self.selectedDates.filter(function (d) { return isEnabled(d); });
|
|
1706
1795
|
if (!self.selectedDates.length && type === "min")
|
|
1707
1796
|
setHoursFromDate(dateObj);
|
|
1708
1797
|
updateValue();
|
|
@@ -1721,7 +1810,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1721
1810
|
};
|
|
1722
1811
|
}
|
|
1723
1812
|
function parseConfig() {
|
|
1724
|
-
|
|
1813
|
+
var boolOpts = [
|
|
1725
1814
|
"wrap",
|
|
1726
1815
|
"weekNumbers",
|
|
1727
1816
|
"allowInput",
|
|
@@ -1737,25 +1826,25 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1737
1826
|
"enableSeconds",
|
|
1738
1827
|
"disableMobile",
|
|
1739
1828
|
];
|
|
1740
|
-
|
|
1741
|
-
|
|
1829
|
+
var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);
|
|
1830
|
+
var formats = {};
|
|
1742
1831
|
self.config.parseDate = userConfig.parseDate;
|
|
1743
1832
|
self.config.formatDate = userConfig.formatDate;
|
|
1744
1833
|
Object.defineProperty(self.config, "enable", {
|
|
1745
|
-
get: ()
|
|
1746
|
-
set: (dates)
|
|
1834
|
+
get: function () { return self.config._enable; },
|
|
1835
|
+
set: function (dates) {
|
|
1747
1836
|
self.config._enable = parseDateRules(dates);
|
|
1748
1837
|
},
|
|
1749
1838
|
});
|
|
1750
1839
|
Object.defineProperty(self.config, "disable", {
|
|
1751
|
-
get: ()
|
|
1752
|
-
set: (dates)
|
|
1840
|
+
get: function () { return self.config._disable; },
|
|
1841
|
+
set: function (dates) {
|
|
1753
1842
|
self.config._disable = parseDateRules(dates);
|
|
1754
1843
|
},
|
|
1755
1844
|
});
|
|
1756
|
-
|
|
1845
|
+
var timeMode = userConfig.mode === "time";
|
|
1757
1846
|
if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {
|
|
1758
|
-
|
|
1847
|
+
var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaults.dateFormat;
|
|
1759
1848
|
formats.dateFormat =
|
|
1760
1849
|
userConfig.noCalendar || timeMode
|
|
1761
1850
|
? "H:i" + (userConfig.enableSeconds ? ":S" : "")
|
|
@@ -1764,29 +1853,29 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1764
1853
|
if (userConfig.altInput &&
|
|
1765
1854
|
(userConfig.enableTime || timeMode) &&
|
|
1766
1855
|
!userConfig.altFormat) {
|
|
1767
|
-
|
|
1856
|
+
var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaults.altFormat;
|
|
1768
1857
|
formats.altFormat =
|
|
1769
1858
|
userConfig.noCalendar || timeMode
|
|
1770
1859
|
? "h:i" + (userConfig.enableSeconds ? ":S K" : " K")
|
|
1771
|
-
: defaultAltFormat +
|
|
1860
|
+
: defaultAltFormat + (" h:i" + (userConfig.enableSeconds ? ":S" : "") + " K");
|
|
1772
1861
|
}
|
|
1773
1862
|
Object.defineProperty(self.config, "minDate", {
|
|
1774
|
-
get: ()
|
|
1863
|
+
get: function () { return self.config._minDate; },
|
|
1775
1864
|
set: minMaxDateSetter("min"),
|
|
1776
1865
|
});
|
|
1777
1866
|
Object.defineProperty(self.config, "maxDate", {
|
|
1778
|
-
get: ()
|
|
1867
|
+
get: function () { return self.config._maxDate; },
|
|
1779
1868
|
set: minMaxDateSetter("max"),
|
|
1780
1869
|
});
|
|
1781
|
-
|
|
1870
|
+
var minMaxTimeSetter = function (type) { return function (val) {
|
|
1782
1871
|
self.config[type === "min" ? "_minTime" : "_maxTime"] = self.parseDate(val, "H:i:S");
|
|
1783
|
-
};
|
|
1872
|
+
}; };
|
|
1784
1873
|
Object.defineProperty(self.config, "minTime", {
|
|
1785
|
-
get: ()
|
|
1874
|
+
get: function () { return self.config._minTime; },
|
|
1786
1875
|
set: minMaxTimeSetter("min"),
|
|
1787
1876
|
});
|
|
1788
1877
|
Object.defineProperty(self.config, "maxTime", {
|
|
1789
|
-
get: ()
|
|
1878
|
+
get: function () { return self.config._maxTime; },
|
|
1790
1879
|
set: minMaxTimeSetter("max"),
|
|
1791
1880
|
});
|
|
1792
1881
|
if (userConfig.mode === "time") {
|
|
@@ -1794,11 +1883,11 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1794
1883
|
self.config.enableTime = true;
|
|
1795
1884
|
}
|
|
1796
1885
|
Object.assign(self.config, formats, userConfig);
|
|
1797
|
-
for (
|
|
1886
|
+
for (var i = 0; i < boolOpts.length; i++)
|
|
1798
1887
|
self.config[boolOpts[i]] =
|
|
1799
1888
|
self.config[boolOpts[i]] === true ||
|
|
1800
1889
|
self.config[boolOpts[i]] === "true";
|
|
1801
|
-
HOOKS.filter((hook)
|
|
1890
|
+
HOOKS.filter(function (hook) { return self.config[hook] !== undefined; }).forEach(function (hook) {
|
|
1802
1891
|
self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);
|
|
1803
1892
|
});
|
|
1804
1893
|
self.isMobile =
|
|
@@ -1809,9 +1898,9 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1809
1898
|
!self.config.enable &&
|
|
1810
1899
|
!self.config.weekNumbers &&
|
|
1811
1900
|
/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
|
1812
|
-
for (
|
|
1813
|
-
|
|
1814
|
-
for (
|
|
1901
|
+
for (var i = 0; i < self.config.plugins.length; i++) {
|
|
1902
|
+
var pluginConf = self.config.plugins[i](self) || {};
|
|
1903
|
+
for (var key in pluginConf) {
|
|
1815
1904
|
if (HOOKS.indexOf(key) > -1) {
|
|
1816
1905
|
self.config[key] = arrayify(pluginConf[key])
|
|
1817
1906
|
.map(bindToInstance)
|
|
@@ -1835,14 +1924,18 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1835
1924
|
function setupLocale() {
|
|
1836
1925
|
if (typeof self.config.locale !== "object" &&
|
|
1837
1926
|
typeof flatpickr.l10ns[self.config.locale] === "undefined")
|
|
1838
|
-
self.config.errorHandler(new Error(
|
|
1839
|
-
self.l10n =
|
|
1927
|
+
self.config.errorHandler(new Error("flatpickr: invalid locale " + self.config.locale));
|
|
1928
|
+
self.l10n = __assign(__assign({}, flatpickr.l10ns.default), (typeof self.config.locale === "object"
|
|
1840
1929
|
? self.config.locale
|
|
1841
1930
|
: self.config.locale !== "default"
|
|
1842
1931
|
? flatpickr.l10ns[self.config.locale]
|
|
1843
1932
|
: undefined));
|
|
1844
|
-
tokenRegex.
|
|
1845
|
-
|
|
1933
|
+
tokenRegex.D = "(" + self.l10n.weekdays.shorthand.join("|") + ")";
|
|
1934
|
+
tokenRegex.l = "(" + self.l10n.weekdays.longhand.join("|") + ")";
|
|
1935
|
+
tokenRegex.M = "(" + self.l10n.months.shorthand.join("|") + ")";
|
|
1936
|
+
tokenRegex.F = "(" + self.l10n.months.longhand.join("|") + ")";
|
|
1937
|
+
tokenRegex.K = "(" + self.l10n.amPM[0] + "|" + self.l10n.amPM[1] + "|" + self.l10n.amPM[0].toLowerCase() + "|" + self.l10n.amPM[1].toLowerCase() + ")";
|
|
1938
|
+
var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));
|
|
1846
1939
|
if (userConfig.time_24hr === undefined &&
|
|
1847
1940
|
flatpickr.defaultConfig.time_24hr === undefined) {
|
|
1848
1941
|
self.config.time_24hr = self.l10n.time_24hr;
|
|
@@ -1857,21 +1950,21 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1857
1950
|
if (self.calendarContainer === undefined)
|
|
1858
1951
|
return;
|
|
1859
1952
|
triggerEvent("onPreCalendarPosition");
|
|
1860
|
-
|
|
1861
|
-
|
|
1953
|
+
var positionElement = customPositionElement || self._positionElement;
|
|
1954
|
+
var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return acc + child.offsetHeight; }), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(" "), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === "above" ||
|
|
1862
1955
|
(configPosVertical !== "below" &&
|
|
1863
1956
|
distanceFromBottom < calendarHeight &&
|
|
1864
1957
|
inputBounds.top > calendarHeight);
|
|
1865
|
-
|
|
1958
|
+
var top = window.pageYOffset +
|
|
1866
1959
|
inputBounds.top +
|
|
1867
1960
|
(!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);
|
|
1868
1961
|
toggleClass(self.calendarContainer, "arrowTop", !showOnTop);
|
|
1869
1962
|
toggleClass(self.calendarContainer, "arrowBottom", showOnTop);
|
|
1870
1963
|
if (self.config.inline)
|
|
1871
1964
|
return;
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1965
|
+
var left = window.pageXOffset + inputBounds.left;
|
|
1966
|
+
var isCenter = false;
|
|
1967
|
+
var isRight = false;
|
|
1875
1968
|
if (configPosHorizontal === "center") {
|
|
1876
1969
|
left -= (calendarWidth - inputBounds.width) / 2;
|
|
1877
1970
|
isCenter = true;
|
|
@@ -1883,50 +1976,52 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1883
1976
|
toggleClass(self.calendarContainer, "arrowLeft", !isCenter && !isRight);
|
|
1884
1977
|
toggleClass(self.calendarContainer, "arrowCenter", isCenter);
|
|
1885
1978
|
toggleClass(self.calendarContainer, "arrowRight", isRight);
|
|
1886
|
-
|
|
1979
|
+
var right = window.document.body.offsetWidth -
|
|
1887
1980
|
(window.pageXOffset + inputBounds.right);
|
|
1888
|
-
|
|
1889
|
-
|
|
1981
|
+
var rightMost = left + calendarWidth > window.document.body.offsetWidth;
|
|
1982
|
+
var centerMost = right + calendarWidth > window.document.body.offsetWidth;
|
|
1890
1983
|
toggleClass(self.calendarContainer, "rightMost", rightMost);
|
|
1891
1984
|
if (self.config.static)
|
|
1892
1985
|
return;
|
|
1893
|
-
self.calendarContainer.style.top =
|
|
1986
|
+
self.calendarContainer.style.top = top + "px";
|
|
1894
1987
|
if (!rightMost) {
|
|
1895
|
-
self.calendarContainer.style.left =
|
|
1988
|
+
self.calendarContainer.style.left = left + "px";
|
|
1896
1989
|
self.calendarContainer.style.right = "auto";
|
|
1897
1990
|
}
|
|
1898
1991
|
else if (!centerMost) {
|
|
1899
1992
|
self.calendarContainer.style.left = "auto";
|
|
1900
|
-
self.calendarContainer.style.right =
|
|
1993
|
+
self.calendarContainer.style.right = right + "px";
|
|
1901
1994
|
}
|
|
1902
1995
|
else {
|
|
1903
|
-
|
|
1996
|
+
var doc = getDocumentStyleSheet();
|
|
1904
1997
|
if (doc === undefined)
|
|
1905
1998
|
return;
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1999
|
+
var bodyWidth = window.document.body.offsetWidth;
|
|
2000
|
+
var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);
|
|
2001
|
+
var centerBefore = ".flatpickr-calendar.centerMost:before";
|
|
2002
|
+
var centerAfter = ".flatpickr-calendar.centerMost:after";
|
|
2003
|
+
var centerIndex = doc.cssRules.length;
|
|
2004
|
+
var centerStyle = "{left:" + inputBounds.left + "px;right:auto;}";
|
|
1912
2005
|
toggleClass(self.calendarContainer, "rightMost", false);
|
|
1913
2006
|
toggleClass(self.calendarContainer, "centerMost", true);
|
|
1914
|
-
doc.insertRule(
|
|
1915
|
-
self.calendarContainer.style.left =
|
|
2007
|
+
doc.insertRule(centerBefore + "," + centerAfter + centerStyle, centerIndex);
|
|
2008
|
+
self.calendarContainer.style.left = centerLeft + "px";
|
|
1916
2009
|
self.calendarContainer.style.right = "auto";
|
|
1917
2010
|
}
|
|
1918
2011
|
}
|
|
1919
2012
|
function getDocumentStyleSheet() {
|
|
1920
|
-
|
|
1921
|
-
for (
|
|
1922
|
-
|
|
2013
|
+
var editableSheet = null;
|
|
2014
|
+
for (var i = 0; i < document.styleSheets.length; i++) {
|
|
2015
|
+
var sheet = document.styleSheets[i];
|
|
2016
|
+
if (!sheet.cssRules)
|
|
2017
|
+
continue;
|
|
1923
2018
|
editableSheet = sheet;
|
|
1924
2019
|
break;
|
|
1925
2020
|
}
|
|
1926
2021
|
return editableSheet != null ? editableSheet : createStyleSheet();
|
|
1927
2022
|
}
|
|
1928
2023
|
function createStyleSheet() {
|
|
1929
|
-
|
|
2024
|
+
var style = document.createElement("style");
|
|
1930
2025
|
document.head.appendChild(style);
|
|
1931
2026
|
return style.sheet;
|
|
1932
2027
|
}
|
|
@@ -1950,16 +2045,18 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1950
2045
|
function selectDate(e) {
|
|
1951
2046
|
e.preventDefault();
|
|
1952
2047
|
e.stopPropagation();
|
|
1953
|
-
|
|
1954
|
-
day.classList
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
2048
|
+
var isSelectable = function (day) {
|
|
2049
|
+
return day.classList &&
|
|
2050
|
+
day.classList.contains("flatpickr-day") &&
|
|
2051
|
+
!day.classList.contains("flatpickr-disabled") &&
|
|
2052
|
+
!day.classList.contains("notAllowed");
|
|
2053
|
+
};
|
|
2054
|
+
var t = findParent(getEventTarget(e), isSelectable);
|
|
1958
2055
|
if (t === undefined)
|
|
1959
2056
|
return;
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
2057
|
+
var target = t;
|
|
2058
|
+
var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));
|
|
2059
|
+
var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||
|
|
1963
2060
|
selectedDate.getMonth() >
|
|
1964
2061
|
self.currentMonth + self.config.showMonths - 1) &&
|
|
1965
2062
|
self.config.mode !== "range";
|
|
@@ -1967,7 +2064,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1967
2064
|
if (self.config.mode === "single")
|
|
1968
2065
|
self.selectedDates = [selectedDate];
|
|
1969
2066
|
else if (self.config.mode === "multiple") {
|
|
1970
|
-
|
|
2067
|
+
var selectedIndex = isDateSelected(selectedDate);
|
|
1971
2068
|
if (selectedIndex)
|
|
1972
2069
|
self.selectedDates.splice(parseInt(selectedIndex), 1);
|
|
1973
2070
|
else
|
|
@@ -1980,11 +2077,11 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
1980
2077
|
self.latestSelectedDateObj = selectedDate;
|
|
1981
2078
|
self.selectedDates.push(selectedDate);
|
|
1982
2079
|
if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)
|
|
1983
|
-
self.selectedDates.sort((a, b)
|
|
2080
|
+
self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });
|
|
1984
2081
|
}
|
|
1985
2082
|
setHoursFromInputs();
|
|
1986
2083
|
if (shouldChangeMonth) {
|
|
1987
|
-
|
|
2084
|
+
var isNewYear = self.currentYear !== selectedDate.getFullYear();
|
|
1988
2085
|
self.currentYear = selectedDate.getFullYear();
|
|
1989
2086
|
self.currentMonth = selectedDate.getMonth();
|
|
1990
2087
|
if (isNewYear) {
|
|
@@ -2007,8 +2104,8 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
2007
2104
|
if (self.hourElement !== undefined)
|
|
2008
2105
|
self.hourElement !== undefined && self.hourElement.focus();
|
|
2009
2106
|
if (self.config.closeOnSelect) {
|
|
2010
|
-
|
|
2011
|
-
|
|
2107
|
+
var single = self.config.mode === "single" && !self.config.enableTime;
|
|
2108
|
+
var range = self.config.mode === "range" &&
|
|
2012
2109
|
self.selectedDates.length === 2 &&
|
|
2013
2110
|
!self.config.enableTime;
|
|
2014
2111
|
if (single || range) {
|
|
@@ -2017,13 +2114,14 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
2017
2114
|
}
|
|
2018
2115
|
triggerChange();
|
|
2019
2116
|
}
|
|
2020
|
-
|
|
2117
|
+
var CALLBACKS = {
|
|
2021
2118
|
locale: [setupLocale, updateWeekdays],
|
|
2022
2119
|
showMonths: [buildMonths, setCalendarWidth, buildWeekdays],
|
|
2023
2120
|
minDate: [jumpToDate],
|
|
2024
2121
|
maxDate: [jumpToDate],
|
|
2122
|
+
positionElement: [updatePositionElement],
|
|
2025
2123
|
clickOpens: [
|
|
2026
|
-
()
|
|
2124
|
+
function () {
|
|
2027
2125
|
if (self.config.clickOpens === true) {
|
|
2028
2126
|
bind(self._input, "focus", self.open);
|
|
2029
2127
|
bind(self._input, "click", self.open);
|
|
@@ -2038,15 +2136,15 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
2038
2136
|
function set(option, value) {
|
|
2039
2137
|
if (option !== null && typeof option === "object") {
|
|
2040
2138
|
Object.assign(self.config, option);
|
|
2041
|
-
for (
|
|
2139
|
+
for (var key in option) {
|
|
2042
2140
|
if (CALLBACKS[key] !== undefined)
|
|
2043
|
-
CALLBACKS[key].forEach((x)
|
|
2141
|
+
CALLBACKS[key].forEach(function (x) { return x(); });
|
|
2044
2142
|
}
|
|
2045
2143
|
}
|
|
2046
2144
|
else {
|
|
2047
2145
|
self.config[option] = value;
|
|
2048
2146
|
if (CALLBACKS[option] !== undefined)
|
|
2049
|
-
CALLBACKS[option].forEach((x)
|
|
2147
|
+
CALLBACKS[option].forEach(function (x) { return x(); });
|
|
2050
2148
|
else if (HOOKS.indexOf(option) > -1)
|
|
2051
2149
|
self.config[option] = arrayify(value);
|
|
2052
2150
|
}
|
|
@@ -2054,9 +2152,9 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
2054
2152
|
updateValue(true);
|
|
2055
2153
|
}
|
|
2056
2154
|
function setSelectedDate(inputDate, format) {
|
|
2057
|
-
|
|
2155
|
+
var dates = [];
|
|
2058
2156
|
if (inputDate instanceof Array)
|
|
2059
|
-
dates = inputDate.map((d)
|
|
2157
|
+
dates = inputDate.map(function (d) { return self.parseDate(d, format); });
|
|
2060
2158
|
else if (inputDate instanceof Date || typeof inputDate === "number")
|
|
2061
2159
|
dates = [self.parseDate(inputDate, format)];
|
|
2062
2160
|
else if (typeof inputDate === "string") {
|
|
@@ -2068,24 +2166,26 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
2068
2166
|
case "multiple":
|
|
2069
2167
|
dates = inputDate
|
|
2070
2168
|
.split(self.config.conjunction)
|
|
2071
|
-
.map((date)
|
|
2169
|
+
.map(function (date) { return self.parseDate(date, format); });
|
|
2072
2170
|
break;
|
|
2073
2171
|
case "range":
|
|
2074
2172
|
dates = inputDate
|
|
2075
2173
|
.split(self.l10n.rangeSeparator)
|
|
2076
|
-
.map((date)
|
|
2174
|
+
.map(function (date) { return self.parseDate(date, format); });
|
|
2077
2175
|
break;
|
|
2078
2176
|
}
|
|
2079
2177
|
}
|
|
2080
2178
|
else
|
|
2081
|
-
self.config.errorHandler(new Error(
|
|
2179
|
+
self.config.errorHandler(new Error("Invalid date supplied: " + JSON.stringify(inputDate)));
|
|
2082
2180
|
self.selectedDates = (self.config.allowInvalidPreload
|
|
2083
2181
|
? dates
|
|
2084
|
-
: dates.filter((d)
|
|
2182
|
+
: dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); }));
|
|
2085
2183
|
if (self.config.mode === "range")
|
|
2086
|
-
self.selectedDates.sort((a, b)
|
|
2184
|
+
self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });
|
|
2087
2185
|
}
|
|
2088
|
-
function setDate(date, triggerChange
|
|
2186
|
+
function setDate(date, triggerChange, format) {
|
|
2187
|
+
if (triggerChange === void 0) { triggerChange = false; }
|
|
2188
|
+
if (format === void 0) { format = self.config.dateFormat; }
|
|
2089
2189
|
if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))
|
|
2090
2190
|
return self.clear(triggerChange);
|
|
2091
2191
|
setSelectedDate(date, format);
|
|
@@ -2104,7 +2204,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
2104
2204
|
function parseDateRules(arr) {
|
|
2105
2205
|
return arr
|
|
2106
2206
|
.slice()
|
|
2107
|
-
.map((rule)
|
|
2207
|
+
.map(function (rule) {
|
|
2108
2208
|
if (typeof rule === "string" ||
|
|
2109
2209
|
typeof rule === "number" ||
|
|
2110
2210
|
rule instanceof Date) {
|
|
@@ -2120,12 +2220,12 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
2120
2220
|
};
|
|
2121
2221
|
return rule;
|
|
2122
2222
|
})
|
|
2123
|
-
.filter((x)
|
|
2223
|
+
.filter(function (x) { return x; });
|
|
2124
2224
|
}
|
|
2125
2225
|
function setupDates() {
|
|
2126
2226
|
self.selectedDates = [];
|
|
2127
2227
|
self.now = self.parseDate(self.config.now) || new Date();
|
|
2128
|
-
|
|
2228
|
+
var preloadedDate = self.config.defaultDate ||
|
|
2129
2229
|
((self.input.nodeName === "INPUT" ||
|
|
2130
2230
|
self.input.nodeName === "TEXTAREA") &&
|
|
2131
2231
|
self.input.placeholder &&
|
|
@@ -2187,10 +2287,13 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
2187
2287
|
}
|
|
2188
2288
|
if (!self.config.allowInput)
|
|
2189
2289
|
self._input.setAttribute("readonly", "readonly");
|
|
2290
|
+
updatePositionElement();
|
|
2291
|
+
}
|
|
2292
|
+
function updatePositionElement() {
|
|
2190
2293
|
self._positionElement = self.config.positionElement || self._input;
|
|
2191
2294
|
}
|
|
2192
2295
|
function setupMobile() {
|
|
2193
|
-
|
|
2296
|
+
var inputType = self.config.enableTime
|
|
2194
2297
|
? self.config.noCalendar
|
|
2195
2298
|
? "time"
|
|
2196
2299
|
: "datetime-local"
|
|
@@ -2224,7 +2327,7 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
2224
2327
|
self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);
|
|
2225
2328
|
}
|
|
2226
2329
|
catch (_a) { }
|
|
2227
|
-
bind(self.mobileInput, "change", (e)
|
|
2330
|
+
bind(self.mobileInput, "change", function (e) {
|
|
2228
2331
|
self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);
|
|
2229
2332
|
triggerEvent("onChange");
|
|
2230
2333
|
triggerEvent("onClose");
|
|
@@ -2238,9 +2341,9 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
2238
2341
|
function triggerEvent(event, data) {
|
|
2239
2342
|
if (self.config === undefined)
|
|
2240
2343
|
return;
|
|
2241
|
-
|
|
2344
|
+
var hooks = self.config[event];
|
|
2242
2345
|
if (hooks !== undefined && hooks.length > 0) {
|
|
2243
|
-
for (
|
|
2346
|
+
for (var i = 0; hooks[i] && i < hooks.length; i++)
|
|
2244
2347
|
hooks[i](self.selectedDates, self.input.value, self, data);
|
|
2245
2348
|
}
|
|
2246
2349
|
if (event === "onChange") {
|
|
@@ -2249,13 +2352,15 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
2249
2352
|
}
|
|
2250
2353
|
}
|
|
2251
2354
|
function createEvent(name) {
|
|
2252
|
-
|
|
2355
|
+
var e = document.createEvent("Event");
|
|
2253
2356
|
e.initEvent(name, true, true);
|
|
2254
2357
|
return e;
|
|
2255
2358
|
}
|
|
2256
2359
|
function isDateSelected(date) {
|
|
2257
|
-
for (
|
|
2258
|
-
|
|
2360
|
+
for (var i = 0; i < self.selectedDates.length; i++) {
|
|
2361
|
+
var selectedDate = self.selectedDates[i];
|
|
2362
|
+
if (selectedDate instanceof Date &&
|
|
2363
|
+
compareDates(selectedDate, date) === 0)
|
|
2259
2364
|
return "" + i;
|
|
2260
2365
|
}
|
|
2261
2366
|
return false;
|
|
@@ -2269,8 +2374,8 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
2269
2374
|
function updateNavigationCurrentMonth() {
|
|
2270
2375
|
if (self.config.noCalendar || self.isMobile || !self.monthNav)
|
|
2271
2376
|
return;
|
|
2272
|
-
self.yearElements.forEach((yearElement, i)
|
|
2273
|
-
|
|
2377
|
+
self.yearElements.forEach(function (yearElement, i) {
|
|
2378
|
+
var d = new Date(self.currentYear, self.currentMonth, 1);
|
|
2274
2379
|
d.setMonth(self.currentMonth + i);
|
|
2275
2380
|
if (self.config.showMonths > 1 ||
|
|
2276
2381
|
self.config.monthSelectorType === "static") {
|
|
@@ -2293,17 +2398,22 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
2293
2398
|
? self.currentMonth + 1 > self.config.maxDate.getMonth()
|
|
2294
2399
|
: self.currentYear > self.config.maxDate.getFullYear());
|
|
2295
2400
|
}
|
|
2296
|
-
function getDateStr(
|
|
2401
|
+
function getDateStr(specificFormat) {
|
|
2402
|
+
var format = specificFormat ||
|
|
2403
|
+
(self.config.altInput ? self.config.altFormat : self.config.dateFormat);
|
|
2297
2404
|
return self.selectedDates
|
|
2298
|
-
.map((dObj)
|
|
2299
|
-
.filter((d, i, arr)
|
|
2300
|
-
self.config.
|
|
2301
|
-
|
|
2405
|
+
.map(function (dObj) { return self.formatDate(dObj, format); })
|
|
2406
|
+
.filter(function (d, i, arr) {
|
|
2407
|
+
return self.config.mode !== "range" ||
|
|
2408
|
+
self.config.enableTime ||
|
|
2409
|
+
arr.indexOf(d) === i;
|
|
2410
|
+
})
|
|
2302
2411
|
.join(self.config.mode !== "range"
|
|
2303
2412
|
? self.config.conjunction
|
|
2304
2413
|
: self.l10n.rangeSeparator);
|
|
2305
2414
|
}
|
|
2306
|
-
function updateValue(triggerChange
|
|
2415
|
+
function updateValue(triggerChange) {
|
|
2416
|
+
if (triggerChange === void 0) { triggerChange = true; }
|
|
2307
2417
|
if (self.mobileInput !== undefined && self.mobileFormatStr) {
|
|
2308
2418
|
self.mobileInput.value =
|
|
2309
2419
|
self.latestSelectedDateObj !== undefined
|
|
@@ -2318,9 +2428,9 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
2318
2428
|
triggerEvent("onValueUpdate");
|
|
2319
2429
|
}
|
|
2320
2430
|
function onMonthNavClick(e) {
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2431
|
+
var eventTarget = getEventTarget(e);
|
|
2432
|
+
var isPrevMonth = self.prevMonthNav.contains(eventTarget);
|
|
2433
|
+
var isNextMonth = self.nextMonthNav.contains(eventTarget);
|
|
2324
2434
|
if (isPrevMonth || isNextMonth) {
|
|
2325
2435
|
changeMonth(isPrevMonth ? -1 : 1);
|
|
2326
2436
|
}
|
|
@@ -2336,16 +2446,16 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
2336
2446
|
}
|
|
2337
2447
|
function timeWrapper(e) {
|
|
2338
2448
|
e.preventDefault();
|
|
2339
|
-
|
|
2449
|
+
var isKeyDown = e.type === "keydown", eventTarget = getEventTarget(e), input = eventTarget;
|
|
2340
2450
|
if (self.amPM !== undefined && eventTarget === self.amPM) {
|
|
2341
2451
|
self.amPM.textContent =
|
|
2342
2452
|
self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];
|
|
2343
2453
|
}
|
|
2344
|
-
|
|
2454
|
+
var min = parseFloat(input.getAttribute("min")), max = parseFloat(input.getAttribute("max")), step = parseFloat(input.getAttribute("step")), curValue = parseInt(input.value, 10), delta = e.delta ||
|
|
2345
2455
|
(isKeyDown ? (e.which === 38 ? 1 : -1) : 0);
|
|
2346
|
-
|
|
2456
|
+
var newValue = curValue + step * delta;
|
|
2347
2457
|
if (typeof input.value !== "undefined" && input.value.length === 2) {
|
|
2348
|
-
|
|
2458
|
+
var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;
|
|
2349
2459
|
if (newValue < min) {
|
|
2350
2460
|
newValue =
|
|
2351
2461
|
max +
|
|
@@ -2376,12 +2486,12 @@ function FlatpickrInstance(element, instanceConfig) {
|
|
|
2376
2486
|
return self;
|
|
2377
2487
|
}
|
|
2378
2488
|
function _flatpickr(nodeList, config) {
|
|
2379
|
-
|
|
2489
|
+
var nodes = Array.prototype.slice
|
|
2380
2490
|
.call(nodeList)
|
|
2381
|
-
.filter((x)
|
|
2382
|
-
|
|
2383
|
-
for (
|
|
2384
|
-
|
|
2491
|
+
.filter(function (x) { return x instanceof HTMLElement; });
|
|
2492
|
+
var instances = [];
|
|
2493
|
+
for (var i = 0; i < nodes.length; i++) {
|
|
2494
|
+
var node = nodes[i];
|
|
2385
2495
|
try {
|
|
2386
2496
|
if (node.getAttribute("data-fp-omit") !== null)
|
|
2387
2497
|
continue;
|
|
@@ -2421,14 +2531,14 @@ var flatpickr = function (selector, config) {
|
|
|
2421
2531
|
};
|
|
2422
2532
|
flatpickr.defaultConfig = {};
|
|
2423
2533
|
flatpickr.l10ns = {
|
|
2424
|
-
en:
|
|
2425
|
-
default:
|
|
2534
|
+
en: __assign({}, english),
|
|
2535
|
+
default: __assign({}, english),
|
|
2426
2536
|
};
|
|
2427
|
-
flatpickr.localize = (l10n)
|
|
2428
|
-
flatpickr.l10ns.default =
|
|
2537
|
+
flatpickr.localize = function (l10n) {
|
|
2538
|
+
flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);
|
|
2429
2539
|
};
|
|
2430
|
-
flatpickr.setDefaults = (config)
|
|
2431
|
-
flatpickr.defaultConfig =
|
|
2540
|
+
flatpickr.setDefaults = function (config) {
|
|
2541
|
+
flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);
|
|
2432
2542
|
};
|
|
2433
2543
|
flatpickr.parseDate = createDateParser({});
|
|
2434
2544
|
flatpickr.formatDate = createDateFormatter({});
|
|
@@ -2451,23 +2561,27 @@ const arrowSvg = (rotate = false) => `<svg width="8" height="12" viewBox="0 0 8
|
|
|
2451
2561
|
const XplInput = class {
|
|
2452
2562
|
constructor(hostRef) {
|
|
2453
2563
|
index.registerInstance(this, hostRef);
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
*/
|
|
2564
|
+
this._id = undefined;
|
|
2565
|
+
this.autocomplete = undefined;
|
|
2457
2566
|
this.dateFormat = 'Y-m-d';
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2567
|
+
this.description = undefined;
|
|
2568
|
+
this.disabled = undefined;
|
|
2569
|
+
this.error = undefined;
|
|
2570
|
+
this.label = undefined;
|
|
2571
|
+
this.max = undefined;
|
|
2572
|
+
this.maxCharacterCount = undefined;
|
|
2573
|
+
this.min = undefined;
|
|
2463
2574
|
this.mode = 'single';
|
|
2464
|
-
/**
|
|
2465
|
-
* Whether to render as a singleline text input or
|
|
2466
|
-
* as a multiline textarea. (If `true`, `pre` and `post`
|
|
2467
|
-
* values will be ignored, if present.)
|
|
2468
|
-
*/
|
|
2469
2575
|
this.multiline = false;
|
|
2576
|
+
this.name = undefined;
|
|
2577
|
+
this.placeholder = undefined;
|
|
2578
|
+
this.post = undefined;
|
|
2579
|
+
this.pre = undefined;
|
|
2580
|
+
this.readonly = undefined;
|
|
2581
|
+
this.required = undefined;
|
|
2582
|
+
this.step = undefined;
|
|
2470
2583
|
this.type = 'text';
|
|
2584
|
+
this.value = undefined;
|
|
2471
2585
|
this.characterCount = 0;
|
|
2472
2586
|
this.passwordVisible = false;
|
|
2473
2587
|
}
|