@xplortech/apollo-core 1.0.0-beta.7 → 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.
Files changed (137) hide show
  1. package/build/style.css +4 -55
  2. package/dist/apollo-core/apollo-core.css +5 -5
  3. package/dist/apollo-core/apollo-core.esm.js +1 -1
  4. package/dist/apollo-core/p-10f00380.entry.js +1 -0
  5. package/dist/apollo-core/p-26ec64fe.entry.js +1 -0
  6. package/dist/apollo-core/p-2f90296c.js +2 -2
  7. package/dist/apollo-core/p-31acfdb4.entry.js +1 -0
  8. package/dist/apollo-core/p-4184ac44.entry.js +1 -0
  9. package/dist/apollo-core/{p-dad11011.entry.js → p-4fa14839.entry.js} +1 -1
  10. package/dist/apollo-core/p-55b87345.js +2 -0
  11. package/dist/apollo-core/p-63a6c98a.entry.js +1 -0
  12. package/dist/apollo-core/p-68c33b77.entry.js +1 -0
  13. package/dist/apollo-core/{p-a7cc4114.entry.js → p-78d07caf.entry.js} +1 -1
  14. package/dist/apollo-core/p-796957d3.entry.js +1 -0
  15. package/dist/apollo-core/p-88160d68.entry.js +1 -0
  16. package/dist/apollo-core/p-9ec318bb.entry.js +1 -0
  17. package/dist/apollo-core/p-a2a34e44.entry.js +1 -0
  18. package/dist/apollo-core/p-beea2502.entry.js +1 -0
  19. package/dist/apollo-core/p-d499e43f.entry.js +1 -0
  20. package/dist/apollo-core/{p-c8af4ed6.entry.js → p-d8a3d94c.entry.js} +1 -1
  21. package/dist/apollo-core/p-e047b446.entry.js +1 -0
  22. package/dist/cjs/apollo-core.cjs.js +6 -2
  23. package/dist/cjs/{index-acf3dd7a.js → index-2ab4832e.js} +592 -215
  24. package/dist/cjs/loader.cjs.js +3 -2
  25. package/dist/cjs/xpl-application-shell.cjs.entry.js +2 -13
  26. package/dist/cjs/xpl-avatar_12.cjs.entry.js +72 -38
  27. package/dist/cjs/xpl-backdrop.cjs.entry.js +1 -5
  28. package/dist/cjs/xpl-button-row.cjs.entry.js +4 -1
  29. package/dist/cjs/xpl-choicelist.cjs.entry.js +8 -1
  30. package/dist/cjs/xpl-divider.cjs.entry.js +2 -1
  31. package/dist/cjs/xpl-dropdown-group_3.cjs.entry.js +7 -1
  32. package/dist/cjs/xpl-dropdown_2.cjs.entry.js +8 -9
  33. package/dist/cjs/xpl-grid-item.cjs.entry.js +1 -1
  34. package/dist/cjs/xpl-grid.cjs.entry.js +1 -1
  35. package/dist/cjs/xpl-input.cjs.entry.js +615 -501
  36. package/dist/cjs/xpl-list.cjs.entry.js +1 -23
  37. package/dist/cjs/xpl-main-nav.cjs.entry.js +1 -4
  38. package/dist/cjs/xpl-pagination.cjs.entry.js +5 -2
  39. package/dist/cjs/xpl-select.cjs.entry.js +7 -22
  40. package/dist/cjs/xpl-toggle.cjs.entry.js +7 -4
  41. package/dist/collection/collection-manifest.json +2 -2
  42. package/dist/collection/components/xpl-application-shell/xpl-application-shell.js +118 -132
  43. package/dist/collection/components/xpl-avatar/xpl-avatar.js +150 -144
  44. package/dist/collection/components/xpl-backdrop/xpl-backdrop.js +26 -28
  45. package/dist/collection/components/xpl-badge/xpl-badge.js +43 -39
  46. package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumb-item/xpl-breadcrumb-item.js +2 -5
  47. package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumbs/xpl-breadcrumbs.js +2 -5
  48. package/dist/collection/components/xpl-button/xpl-button.js +204 -205
  49. package/dist/collection/components/xpl-button-row/xpl-button-row.js +105 -104
  50. package/dist/collection/components/xpl-checkbox/xpl-checkbox.js +181 -171
  51. package/dist/collection/components/xpl-choicelist/xpl-choicelist.js +133 -126
  52. package/dist/collection/components/xpl-content-area/xpl-content-area.js +27 -31
  53. package/dist/collection/components/xpl-divider/xpl-divider.js +26 -23
  54. package/dist/collection/components/xpl-dropdown/xpl-dropdown-group/xpl-dropdown-group.js +46 -42
  55. package/dist/collection/components/xpl-dropdown/xpl-dropdown-heading/xpl-dropdown-heading.js +26 -22
  56. package/dist/collection/components/xpl-dropdown/xpl-dropdown-option/xpl-dropdown-option.js +60 -54
  57. package/dist/collection/components/xpl-dropdown/xpl-dropdown.js +170 -167
  58. package/dist/collection/components/xpl-grid/xpl-grid.js +1 -1
  59. package/dist/collection/components/xpl-grid-item/xpl-grid-item.js +75 -74
  60. package/dist/collection/components/xpl-input/xpl-input.js +404 -417
  61. package/dist/collection/components/xpl-list/xpl-list.js +42 -75
  62. package/dist/collection/components/xpl-main-nav/xpl-main-nav.js +47 -54
  63. package/dist/collection/components/xpl-nav-item/xpl-nav-item.js +47 -49
  64. package/dist/collection/components/xpl-pagination/xpl-pagination.js +116 -128
  65. package/dist/collection/components/xpl-radio/xpl-radio.js +157 -148
  66. package/dist/collection/components/xpl-secondary-nav/xpl-secondary-nav.js +2 -4
  67. package/dist/collection/components/xpl-select/xpl-select.js +212 -238
  68. package/dist/collection/components/xpl-table/xpl-table.js +168 -151
  69. package/dist/collection/components/xpl-tag/xpl-tag.js +24 -25
  70. package/dist/collection/components/xpl-toggle/xpl-toggle.js +137 -135
  71. package/dist/collection/components/xpl-utility-bar/xpl-utility-bar.js +73 -70
  72. package/dist/custom-elements/index.js +756 -641
  73. package/dist/esm/apollo-core.js +3 -2
  74. package/dist/esm/{index-e3c4bb97.js → index-392b5b96.js} +592 -216
  75. package/dist/esm/loader.js +3 -2
  76. package/dist/esm/polyfills/css-shim.js +1 -1
  77. package/dist/esm/xpl-application-shell.entry.js +2 -13
  78. package/dist/esm/xpl-avatar_12.entry.js +72 -38
  79. package/dist/esm/xpl-backdrop.entry.js +1 -5
  80. package/dist/esm/xpl-button-row.entry.js +4 -1
  81. package/dist/esm/xpl-choicelist.entry.js +8 -1
  82. package/dist/esm/xpl-divider.entry.js +2 -1
  83. package/dist/esm/xpl-dropdown-group_3.entry.js +7 -1
  84. package/dist/esm/xpl-dropdown_2.entry.js +8 -9
  85. package/dist/esm/xpl-grid-item.entry.js +1 -1
  86. package/dist/esm/xpl-grid.entry.js +1 -1
  87. package/dist/esm/xpl-input.entry.js +615 -501
  88. package/dist/esm/xpl-list.entry.js +1 -23
  89. package/dist/esm/xpl-main-nav.entry.js +1 -4
  90. package/dist/esm/xpl-pagination.entry.js +5 -2
  91. package/dist/esm/xpl-select.entry.js +7 -22
  92. package/dist/esm/xpl-toggle.entry.js +7 -4
  93. package/dist/types/components/xpl-dropdown/dropdownoption.d.ts +1 -1
  94. package/dist/types/components/xpl-table/xpl-table.d.ts +2 -0
  95. package/dist/types/components.d.ts +47 -11
  96. package/dist/types/stencil-public-runtime.d.ts +85 -11
  97. package/loader/index.d.ts +9 -1
  98. package/loader/package.json +1 -0
  99. package/package.json +1 -1
  100. package/dist/apollo-core/p-25f84d39.entry.js +0 -1
  101. package/dist/apollo-core/p-2ce2fe5c.entry.js +0 -1
  102. package/dist/apollo-core/p-3ff1ff38.entry.js +0 -1
  103. package/dist/apollo-core/p-63dd9a65.entry.js +0 -1
  104. package/dist/apollo-core/p-6c3c1e3d.entry.js +0 -1
  105. package/dist/apollo-core/p-81a6ce4c.entry.js +0 -1
  106. package/dist/apollo-core/p-918b0731.entry.js +0 -1
  107. package/dist/apollo-core/p-a43e2d1f.entry.js +0 -1
  108. package/dist/apollo-core/p-b6d1b135.entry.js +0 -1
  109. package/dist/apollo-core/p-bc0ebed2.entry.js +0 -1
  110. package/dist/apollo-core/p-d4aa2fa9.js +0 -1
  111. package/dist/apollo-core/p-d4e5d3aa.entry.js +0 -1
  112. package/dist/apollo-core/p-db74c99c.entry.js +0 -1
  113. package/dist/apollo-core/p-ee16942f.entry.js +0 -1
  114. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/application-shell.stories.d.ts +0 -0
  115. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/avatar.stories.d.ts +0 -0
  116. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/backdrop.stories.d.ts +0 -0
  117. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/badge.stories.d.ts +0 -0
  118. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/breadcrumbs.stories.d.ts +0 -0
  119. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/button-row.stories.d.ts +0 -0
  120. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/button.stories.d.ts +0 -0
  121. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/checkbox.stories.d.ts +0 -0
  122. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/choicelist.stories.d.ts +0 -0
  123. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/content-area.stories.d.ts +0 -0
  124. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/divider.stories.d.ts +0 -0
  125. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/dropdown.stories.d.ts +0 -0
  126. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/grid.stories.d.ts +0 -0
  127. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/input.stories.d.ts +0 -0
  128. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/list.stories.d.ts +0 -0
  129. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/main-nav.stories.d.ts +0 -0
  130. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/pagination.stories.d.ts +0 -0
  131. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/radio.stories.d.ts +0 -0
  132. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/secondary-nav.stories.d.ts +0 -0
  133. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/select.stories.d.ts +0 -0
  134. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/table.stories.d.ts +0 -0
  135. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/tabs.stories.d.ts +0 -0
  136. /package/dist/types/Users/{roc/Sites → fernandogelin/Xplor}/apollo/.stencil/stories/toggle.stories.d.ts +0 -0
  137. /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-e3c4bb97.js';
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
- const HOOKS = [
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
- const defaults = {
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) => typeof console !== "undefined" && console.warn(err),
42
- getWeek: (givenDate) => {
43
- const date = new Date(givenDate.getTime());
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
- const english = {
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
- const s = nth % 100;
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
- const pad = (number, length = 2) => `000${number}`.slice(length * -1);
160
- const int = (bool) => (bool === true ? 1 : 0);
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
- let t;
167
+ var t;
163
168
  return function () {
169
+ var _this = this;
170
+ var args = arguments;
164
171
  clearTimeout(t);
165
- t = setTimeout(() => fn.apply(this, arguments), wait);
172
+ t = setTimeout(function () { return fn.apply(_this, args); }, wait);
166
173
  };
167
174
  }
168
- const arrayify = (obj) => obj instanceof Array ? obj : [obj];
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
- const e = window.document.createElement(tag);
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
- const wrapper = createElement("div", "numInputWrapper"), numInput = createElement("input", "numInput " + inputClassName), arrowUp = createElement("span", "arrowUp"), arrowDown = createElement("span", "arrowDown");
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 (const key in opts)
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
- const path = event.composedPath();
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
- const doNothing = () => undefined;
226
- const monthToStr = (monthNumber, shorthand, locale) => locale.months[shorthand ? "shorthand" : "longhand"][monthNumber];
227
- const revFormat = {
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) => new Date(parseFloat(unixSeconds) * 1000),
260
+ U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },
252
261
  W: function (dateObj, weekNum, locale) {
253
- const weekNumber = parseInt(weekNum);
254
- const date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);
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) => new Date(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) => new Date(parseFloat(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
- const tokenRegex = {
291
- D: "(\\w+)",
292
- F: "(\\w+)",
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: "(\\w+)",
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: "(\\w+)",
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
- const formats = {
316
- Z: (date) => date.toISOString(),
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) => pad(date.getHours()),
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) => locale.amPM[int(date.getHours() > 11)],
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) => pad(date.getSeconds()),
337
- U: (date) => date.getTime() / 1000,
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) => pad(date.getFullYear(), 4),
342
- d: (date) => pad(date.getDate()),
343
- h: (date) => (date.getHours() % 12 ? date.getHours() % 12 : 12),
344
- i: (date) => pad(date.getMinutes()),
345
- j: (date) => date.getDate(),
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) => pad(date.getMonth() + 1),
350
- n: (date) => date.getMonth() + 1,
351
- s: (date) => date.getSeconds(),
352
- u: (date) => date.getTime(),
353
- w: (date) => date.getDay(),
354
- y: (date) => String(date.getFullYear()).substring(2),
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
- const createDateFormatter = ({ config = defaults, l10n = english, isMobile = false, }) => (dateObj, frmt, overrideLocale) => {
358
- const locale = overrideLocale || l10n;
359
- if (config.formatDate !== undefined && !isMobile) {
360
- return config.formatDate(dateObj, frmt, locale);
361
- }
362
- return frmt
363
- .split("")
364
- .map((c, i, arr) => formats[c] && arr[i - 1] !== "\\"
365
- ? formats[c](dateObj, locale, config)
366
- : c !== "\\"
367
- ? c
368
- : "")
369
- .join("");
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
- const createDateParser = ({ config = defaults, l10n = english }) => (date, givenFormat, timeless, customLocale) => {
372
- if (date !== 0 && !date)
373
- return undefined;
374
- const locale = customLocale || l10n;
375
- let parsedDate;
376
- const dateOrig = date;
377
- if (date instanceof Date)
378
- parsedDate = new Date(date.getTime());
379
- else if (typeof date !== "string" &&
380
- date.toFixed !== undefined)
381
- parsedDate = new Date(date);
382
- else if (typeof date === "string") {
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 (config && config.parseDate)
393
- parsedDate = config.parseDate(date, format);
394
- else {
395
- parsedDate =
396
- !config || !config.noCalendar
397
- ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)
398
- : new Date(new Date().setHours(0, 0, 0, 0));
399
- let matched, ops = [];
400
- for (let i = 0, matchIndex = 0, regexStr = ""; i < format.length; i++) {
401
- const token = format[i];
402
- const isBackSlash = token === "\\";
403
- const escaped = format[i - 1] === "\\" || isBackSlash;
404
- if (tokenRegex[token] && !escaped) {
405
- regexStr += tokenRegex[token];
406
- const match = new RegExp(regexStr).exec(date);
407
- if (match && (matched = true)) {
408
- ops[token !== "Y" ? "push" : "unshift"]({
409
- fn: revFormat[token],
410
- val: match[++matchIndex],
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
- else if (!isBackSlash)
415
- regexStr += ".";
416
- ops.forEach(({ fn, val }) => (parsedDate = fn(parsedDate, val, locale) || parsedDate));
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
- if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {
422
- config.errorHandler(new Error(`Invalid date provided: ${dateOrig}`));
423
- return undefined;
424
- }
425
- if (timeless === true)
426
- parsedDate.setHours(0, 0, 0, 0);
427
- return parsedDate;
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 = true) {
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
- const isBetween = (ts, ts1, ts2) => {
461
+ var isBetween = function (ts, ts1, ts2) {
437
462
  return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);
438
463
  };
439
- const duration = {
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
- let hours = config.defaultHour;
444
- let minutes = config.defaultMinute;
445
- let seconds = config.defaultSeconds;
475
+ var hours = config.defaultHour;
476
+ var minutes = config.defaultMinute;
477
+ var seconds = config.defaultSeconds;
446
478
  if (config.minDate !== undefined) {
447
- const minHour = config.minDate.getHours();
448
- const minMinutes = config.minDate.getMinutes();
449
- const minSeconds = config.minDate.getSeconds();
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
- const maxHr = config.maxDate.getHours();
461
- const maxMinutes = config.maxDate.getMinutes();
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, ...args) {
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
- for (const source of args) {
512
+ var _loop_1 = function (source) {
477
513
  if (source) {
478
- Object.keys(source).forEach((key) => (target[key] = source[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
- const DEBOUNCED_CHANGE_MS = 300;
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
- const self = {
488
- config: Object.assign(Object.assign({}, defaults), flatpickr.defaultConfig),
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 = self.currentMonth, yr = self.currentYear) {
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
- const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
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
- const config = self.config;
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
- const daysWidth = (self.days.offsetWidth + 1) * config.showMonths;
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
- const defaultDate = self.config.minDate === undefined ||
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
- const defaults = getDefaultHours(self.config);
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
- const prevValue = self._input.value;
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
- let hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined
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
- const limitMinHours = self.config.minTime !== undefined ||
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
- const limitMaxHours = self.config.maxTime !== undefined ||
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 (limitMaxHours) {
628
- const maxTime = self.config.maxTime !== undefined
629
- ? self.config.maxTime
630
- : self.config.maxDate;
631
- hours = Math.min(hours, maxTime.getHours());
632
- if (hours === maxTime.getHours())
633
- minutes = Math.min(minutes, maxTime.getMinutes());
634
- if (minutes === maxTime.getMinutes())
635
- seconds = Math.min(seconds, maxTime.getSeconds());
636
- }
637
- if (limitMinHours) {
638
- const minTime = self.config.minTime !== undefined
639
- ? self.config.minTime
640
- : self.config.minDate;
641
- hours = Math.max(hours, minTime.getHours());
642
- if (hours === minTime.getHours() && minutes < minTime.getMinutes())
643
- minutes = minTime.getMinutes();
644
- if (minutes === minTime.getMinutes())
645
- seconds = Math.max(seconds, minTime.getSeconds());
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
- const date = dateObj || self.latestSelectedDateObj;
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
- const eventTarget = getEventTarget(event);
672
- const year = parseInt(eventTarget.value) + (event.delta || 0);
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) => bind(element, ev, handler, options));
763
+ return event.forEach(function (ev) { return bind(element, ev, handler, options); });
681
764
  if (element instanceof Array)
682
- return element.forEach((el) => bind(el, event, handler, options));
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: () => element.removeEventListener(event, handler),
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(`[data-${evt}]`), (el) => bind(el, "click", self[evt]));
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
- const debouncedResize = debounce(onResize, 50);
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(window.document.body, "keydown", onKeyDown);
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
- const selText = (e) => getEventTarget(e).select();
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", () => self.secondElement && self.secondElement.select());
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
- const jumpTo = jumpDate !== undefined
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
- const oldYear = self.currentYear;
756
- const oldMonth = self.currentMonth;
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
- const eventTarget = getEventTarget(e);
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
- const target = e && getEventTarget(e);
784
- const input = inputElem ||
872
+ var target = e && getEventTarget(e);
873
+ var input = inputElem ||
785
874
  (target && target.parentNode && target.parentNode.firstChild);
786
- const event = createEvent("increment");
875
+ var event = createEvent("increment");
787
876
  event.delta = delta;
788
877
  input && input.dispatchEvent(event);
789
878
  }
790
879
  function build() {
791
- const fragment = window.document.createDocumentFragment();
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
- const { weekWrapper, weekNumbers } = buildWeeks();
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
- const customAppend = self.config.appendTo !== undefined &&
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
- const wrapper = createElement("div", "flatpickr-wrapper");
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, dayNumber, i) {
847
- const dateIsEnabled = isEnabled(date, true), dayElement = createElement("span", "flatpickr-day " + className, date.getDate().toString());
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
- dayNumber % 7 === 1) {
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
- const startMonth = delta > 0 ? 0 : self.config.showMonths - 1;
895
- const endMonth = delta > 0 ? self.config.showMonths : -1;
896
- for (let m = startMonth; m != endMonth; m += delta) {
897
- const month = self.daysContainer.children[m];
898
- const startIndex = delta > 0 ? 0 : month.children.length - 1;
899
- const endIndex = delta > 0 ? month.children.length : -1;
900
- for (let i = startIndex; i != endIndex; i += delta) {
901
- const c = month.children[i];
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
- const givenMonth = current.className.indexOf("Month") === -1
998
+ var givenMonth = current.className.indexOf("Month") === -1
910
999
  ? current.dateObj.getMonth()
911
1000
  : self.currentMonth;
912
- const endMonth = delta > 0 ? self.config.showMonths : -1;
913
- const loopDelta = delta > 0 ? 1 : -1;
914
- for (let m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {
915
- const month = self.daysContainer.children[m];
916
- const startIndex = givenMonth - self.currentMonth === m
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
- const numMonthDays = month.children.length;
922
- for (let i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {
923
- const c = month.children[i];
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
- const dayFocused = isInView(document.activeElement || document.body);
936
- const startElem = current !== undefined
1024
+ var activeElement = getClosestActiveElement();
1025
+ var dayFocused = isInView(activeElement || document.body);
1026
+ var startElem = current !== undefined
937
1027
  ? current
938
1028
  : dayFocused
939
- ? document.activeElement
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
- const firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;
957
- const prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);
958
- const 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";
959
- let dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;
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 (let dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&
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
- const dayContainer = createElement("div", "dayContainer");
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
- const frag = document.createDocumentFragment();
982
- for (let i = 0; i < self.config.showMonths; i++) {
983
- const d = new Date(self.currentYear, self.currentMonth, 1);
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
- const shouldBuildMonth = function (month) {
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 (let i = 0; i < 12; i++) {
1099
+ for (var i = 0; i < 12; i++) {
1010
1100
  if (!shouldBuildMonth(i))
1011
1101
  continue;
1012
- const month = createElement("option", "flatpickr-monthDropdown-month");
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
- const container = createElement("div", "flatpickr-month");
1024
- const monthNavFragment = window.document.createDocumentFragment();
1025
- let monthElement;
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
- const target = getEventTarget(e);
1035
- const selectedMonth = parseInt(target.value, 10);
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
- const yearInput = createNumberInput("cur-year", { tabindex: "-1" });
1043
- const yearElement = yearInput.getElementsByTagName("input")[0];
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
- const currentMonth = createElement("div", "flatpickr-current-month");
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 (let m = self.config.showMonths; m--;) {
1073
- const month = buildMonth();
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: () => self.__hidePrevMonthArrow,
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: () => self.__hideNextMonthArrow,
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
- const defaults = getDefaultHours(self.config);
1205
+ var defaults = getDefaultHours(self.config);
1116
1206
  self.timeContainer = createElement("div", "flatpickr-time");
1117
1207
  self.timeContainer.tabIndex = -1;
1118
- const separator = createElement("span", "flatpickr-time-separator", ":");
1119
- const hourInput = createNumberInput("flatpickr-hour", {
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
- const minuteInput = createNumberInput("flatpickr-minute", {
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
- const secondInput = createNumberInput("flatpickr-second");
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 (let i = self.config.showMonths; i--;) {
1179
- const container = createElement("div", "flatpickr-weekdaycontainer");
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
- const firstDayOfWeek = self.l10n.firstDayOfWeek;
1190
- let weekdays = [...self.l10n.weekdays.shorthand];
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 (let i = self.config.showMonths; i--;) {
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
- const weekWrapper = createElement("div", "flatpickr-weekwrapper");
1290
+ var weekWrapper = createElement("div", "flatpickr-weekwrapper");
1208
1291
  weekWrapper.appendChild(createElement("span", "flatpickr-weekday", self.l10n.weekAbbreviation));
1209
- const weekNumbers = createElement("div", "flatpickr-weeks");
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 = true) {
1217
- const delta = isOffset ? value : value - self.currentMonth;
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 = true, toInitial = true) {
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
- const { hours, minutes, seconds } = getDefaultHours(self.config);
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 (let i = self._handlers.length; i--;) {
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
- const wrapper = self.calendarContainer.parentNode;
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
- const eventTarget = getEventTarget(e);
1345
- const isCalendarElement = isCalendarElem(eventTarget);
1346
- const isInput = eventTarget === self.input ||
1347
- eventTarget === self.altInput ||
1348
- self.element.contains(eventTarget) ||
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
- const lostFocus = e.type === "blur"
1354
- ? isInput &&
1355
- e.relatedTarget &&
1356
- !isCalendarElem(e.relatedTarget)
1357
- : !isInput &&
1358
- !isCalendarElement &&
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
- const newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;
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 = true) {
1485
+ function isEnabled(date, timeless) {
1401
1486
  var _a;
1402
- const dateToCheck = self.parseDate(date, undefined, timeless);
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
- const bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;
1415
- for (let i = 0, d; i < array.length; i++) {
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
- const parsed = self.parseDate(d, undefined, true);
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
- const isInput = e.target === self._input;
1534
+ var isInput = e.target === self._input;
1535
+ var valueChanged = self._input.value.trimEnd() !== getDateStr();
1449
1536
  if (isInput &&
1450
- (self.selectedDates.length > 0 || self._input.value.length > 0) &&
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
- const eventTarget = getEventTarget(e);
1459
- const isInput = self.config.wrap
1545
+ var eventTarget = getEventTarget(e);
1546
+ var isInput = self.config.wrap
1460
1547
  ? element.contains(eventTarget)
1461
1548
  : eventTarget === self._input;
1462
- const allowInput = self.config.allowInput;
1463
- const allowKeydown = self.isOpen && (!allowInput || !isInput);
1464
- const allowInlineKeydown = self.config.inline && isInput && !allowInput;
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
- const isTimeObj = !!self.timeContainer &&
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
- (document.activeElement && isInView(document.activeElement)))) {
1509
- const delta = e.keyCode === 39 ? 1 : -1;
1597
+ (activeElement && isInView(activeElement)))) {
1598
+ var delta_1 = e.keyCode === 39 ? 1 : -1;
1510
1599
  if (!e.ctrlKey)
1511
- focusOnDay(undefined, delta);
1600
+ focusOnDay(undefined, delta_1);
1512
1601
  else {
1513
1602
  e.stopPropagation();
1514
- changeMonth(delta);
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
- const delta = e.keyCode === 40 ? 1 : -1;
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
- const elems = [
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) => x);
1558
- const i = elems.indexOf(eventTarget);
1646
+ .filter(function (x) { return x; });
1647
+ var i = elems.indexOf(eventTarget);
1559
1648
  if (i !== -1) {
1560
- const target = elems[i + (e.shiftKey ? -1 : 1)];
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("flatpickr-day") ||
1688
+ (!elem.classList.contains(cellClass) ||
1599
1689
  elem.classList.contains("flatpickr-disabled"))))
1600
1690
  return;
1601
- const hoverDate = elem
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
- let containsDisabled = false;
1605
- let minRange = 0, maxRange = 0;
1606
- for (let t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {
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
- for (let m = 0; m < self.config.showMonths; m++) {
1617
- const month = self.daysContainer.children[m];
1618
- for (let i = 0, l = month.children.length; i < l; i++) {
1619
- const dayElem = month.children[i], date = dayElem.dateObj;
1620
- const timestamp = date.getTime();
1621
- const outOfRange = (minRange > 0 && timestamp < minRange) ||
1622
- (maxRange > 0 && timestamp > maxRange);
1623
- if (outOfRange) {
1624
- dayElem.classList.add("notAllowed");
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
- if (elem !== undefined) {
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 = self._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
- const eventTarget = getEventTarget(e);
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
- const wasOpen = self.isOpen;
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(() => self.hourElement.select(), 50);
1775
+ setTimeout(function () { return self.hourElement.select(); }, 50);
1687
1776
  }
1688
1777
  }
1689
1778
  }
1690
1779
  function minMaxDateSetter(type) {
1691
- return (date) => {
1692
- const dateObj = (self.config[`_${type}Date`] = self.parseDate(date, self.config.dateFormat));
1693
- const inverseDateObj = self.config[`_${type === "min" ? "max" : "min"}Date`];
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) => isEnabled(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
- const boolOpts = [
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
- const userConfig = Object.assign(Object.assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);
1737
- const formats = {};
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: () => self.config._enable,
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: () => self.config._disable,
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
- const timeMode = userConfig.mode === "time";
1841
+ var timeMode = userConfig.mode === "time";
1753
1842
  if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {
1754
- const defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaults.dateFormat;
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
- const defaultAltFormat = flatpickr.defaultConfig.altFormat || defaults.altFormat;
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 + ` h:i${userConfig.enableSeconds ? ":S" : ""} K`;
1856
+ : defaultAltFormat + (" h:i" + (userConfig.enableSeconds ? ":S" : "") + " K");
1768
1857
  }
1769
1858
  Object.defineProperty(self.config, "minDate", {
1770
- get: () => self.config._minDate,
1859
+ get: function () { return self.config._minDate; },
1771
1860
  set: minMaxDateSetter("min"),
1772
1861
  });
1773
1862
  Object.defineProperty(self.config, "maxDate", {
1774
- get: () => self.config._maxDate,
1863
+ get: function () { return self.config._maxDate; },
1775
1864
  set: minMaxDateSetter("max"),
1776
1865
  });
1777
- const minMaxTimeSetter = (type) => (val) => {
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: () => self.config._minTime,
1870
+ get: function () { return self.config._minTime; },
1782
1871
  set: minMaxTimeSetter("min"),
1783
1872
  });
1784
1873
  Object.defineProperty(self.config, "maxTime", {
1785
- get: () => self.config._maxTime,
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 (let i = 0; i < boolOpts.length; i++)
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) => self.config[hook] !== undefined).forEach((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 (let i = 0; i < self.config.plugins.length; i++) {
1809
- const pluginConf = self.config.plugins[i](self) || {};
1810
- for (const key in pluginConf) {
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(`flatpickr: invalid locale ${self.config.locale}`));
1835
- self.l10n = Object.assign(Object.assign({}, flatpickr.l10ns.default), (typeof self.config.locale === "object"
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.K = `(${self.l10n.amPM[0]}|${self.l10n.amPM[1]}|${self.l10n.amPM[0].toLowerCase()}|${self.l10n.amPM[1].toLowerCase()})`;
1841
- const userConfig = Object.assign(Object.assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));
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
- const positionElement = customPositionElement || self._positionElement;
1857
- const calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, ((acc, child) => 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" ||
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
- const top = window.pageYOffset +
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
- let left = window.pageXOffset + inputBounds.left;
1869
- let isCenter = false;
1870
- let isRight = false;
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
- const right = window.document.body.offsetWidth -
1975
+ var right = window.document.body.offsetWidth -
1883
1976
  (window.pageXOffset + inputBounds.right);
1884
- const rightMost = left + calendarWidth > window.document.body.offsetWidth;
1885
- const centerMost = right + calendarWidth > window.document.body.offsetWidth;
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 = `${top}px`;
1982
+ self.calendarContainer.style.top = top + "px";
1890
1983
  if (!rightMost) {
1891
- self.calendarContainer.style.left = `${left}px`;
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 = `${right}px`;
1989
+ self.calendarContainer.style.right = right + "px";
1897
1990
  }
1898
1991
  else {
1899
- const doc = getDocumentStyleSheet();
1992
+ var doc = getDocumentStyleSheet();
1900
1993
  if (doc === undefined)
1901
1994
  return;
1902
- const bodyWidth = window.document.body.offsetWidth;
1903
- const centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);
1904
- const centerBefore = ".flatpickr-calendar.centerMost:before";
1905
- const centerAfter = ".flatpickr-calendar.centerMost:after";
1906
- const centerIndex = doc.cssRules.length;
1907
- const centerStyle = `{left:${inputBounds.left}px;right:auto;}`;
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(`${centerBefore},${centerAfter}${centerStyle}`, centerIndex);
1911
- self.calendarContainer.style.left = `${centerLeft}px`;
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
- let editableSheet = null;
1917
- for (let i = 0; i < document.styleSheets.length; i++) {
1918
- const sheet = document.styleSheets[i];
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
- const style = document.createElement("style");
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
- const isSelectable = (day) => day.classList &&
1950
- day.classList.contains("flatpickr-day") &&
1951
- !day.classList.contains("flatpickr-disabled") &&
1952
- !day.classList.contains("notAllowed");
1953
- const t = findParent(getEventTarget(e), isSelectable);
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
- const target = t;
1957
- const selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));
1958
- const shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||
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
- const selectedIndex = isDateSelected(selectedDate);
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) => a.getTime() - b.getTime());
2076
+ self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });
1980
2077
  }
1981
2078
  setHoursFromInputs();
1982
2079
  if (shouldChangeMonth) {
1983
- const isNewYear = self.currentYear !== selectedDate.getFullYear();
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
- const single = self.config.mode === "single" && !self.config.enableTime;
2007
- const range = self.config.mode === "range" &&
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
- const CALLBACKS = {
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 (const key in option) {
2135
+ for (var key in option) {
2038
2136
  if (CALLBACKS[key] !== undefined)
2039
- CALLBACKS[key].forEach((x) => 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) => 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
- let dates = [];
2151
+ var dates = [];
2054
2152
  if (inputDate instanceof Array)
2055
- dates = inputDate.map((d) => self.parseDate(d, format));
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) => self.parseDate(date, format));
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) => self.parseDate(date, format));
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(`Invalid date supplied: ${JSON.stringify(inputDate)}`));
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) => d instanceof Date && isEnabled(d, false)));
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) => a.getTime() - b.getTime());
2180
+ self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });
2083
2181
  }
2084
- function setDate(date, triggerChange = false, format = self.config.dateFormat) {
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) => 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
- const preloadedDate = self.config.defaultDate ||
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
- const inputType = self.config.enableTime
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
- const hooks = self.config[event];
2340
+ var hooks = self.config[event];
2238
2341
  if (hooks !== undefined && hooks.length > 0) {
2239
- for (let i = 0; hooks[i] && i < hooks.length; i++)
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
- const e = document.createEvent("Event");
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 (let i = 0; i < self.selectedDates.length; i++) {
2254
- if (compareDates(self.selectedDates[i], date) === 0)
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
- const d = new Date(self.currentYear, self.currentMonth, 1);
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(format) {
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) => self.formatDate(dObj, format))
2295
- .filter((d, i, arr) => self.config.mode !== "range" ||
2296
- self.config.enableTime ||
2297
- arr.indexOf(d) === i)
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 = true) {
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
- const eventTarget = getEventTarget(e);
2318
- const isPrevMonth = self.prevMonthNav.contains(eventTarget);
2319
- const isNextMonth = self.nextMonthNav.contains(eventTarget);
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
- const isKeyDown = e.type === "keydown", eventTarget = getEventTarget(e), input = eventTarget;
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
- const min = parseFloat(input.getAttribute("min")), max = parseFloat(input.getAttribute("max")), step = parseFloat(input.getAttribute("step")), curValue = parseInt(input.value, 10), delta = e.delta ||
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
- let newValue = curValue + step * delta;
2452
+ var newValue = curValue + step * delta;
2343
2453
  if (typeof input.value !== "undefined" && input.value.length === 2) {
2344
- const isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;
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
- const nodes = Array.prototype.slice
2485
+ var nodes = Array.prototype.slice
2376
2486
  .call(nodeList)
2377
- .filter((x) => x instanceof HTMLElement);
2378
- const instances = [];
2379
- for (let i = 0; i < nodes.length; i++) {
2380
- const node = nodes[i];
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: Object.assign({}, english),
2421
- default: Object.assign({}, english),
2530
+ en: __assign({}, english),
2531
+ default: __assign({}, english),
2422
2532
  };
2423
- flatpickr.localize = (l10n) => {
2424
- flatpickr.l10ns.default = Object.assign(Object.assign({}, flatpickr.l10ns.default), l10n);
2533
+ flatpickr.localize = function (l10n) {
2534
+ flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);
2425
2535
  };
2426
- flatpickr.setDefaults = (config) => {
2427
- flatpickr.defaultConfig = Object.assign(Object.assign({}, flatpickr.defaultConfig), config);
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
- * See https://flatpickr.js.org/formatting/
2452
- */
2560
+ this._id = undefined;
2561
+ this.autocomplete = undefined;
2453
2562
  this.dateFormat = 'Y-m-d';
2454
- /**
2455
- * For datepicker inputs, whether to allow only a single
2456
- * date or a range of dates. (Multiple non-consecutive
2457
- * dates planned to be supported in the future.)
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
  }