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