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