flatpickr 4.6.3.1 → 4.6.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -1
  3. data/lib/flatpickr/version.rb +1 -1
  4. data/vendor/assets/javascripts/flatpickr.js +224 -171
  5. data/vendor/assets/javascripts/flatpickr/l10n/ar.js +6 -6
  6. data/vendor/assets/javascripts/flatpickr/l10n/at.js +6 -6
  7. data/vendor/assets/javascripts/flatpickr/l10n/az.js +7 -7
  8. data/vendor/assets/javascripts/flatpickr/l10n/be.js +6 -6
  9. data/vendor/assets/javascripts/flatpickr/l10n/bg.js +6 -6
  10. data/vendor/assets/javascripts/flatpickr/l10n/bn.js +6 -6
  11. data/vendor/assets/javascripts/flatpickr/l10n/bs.js +6 -6
  12. data/vendor/assets/javascripts/flatpickr/l10n/cat.js +7 -7
  13. data/vendor/assets/javascripts/flatpickr/l10n/cs.js +6 -6
  14. data/vendor/assets/javascripts/flatpickr/l10n/cy.js +6 -6
  15. data/vendor/assets/javascripts/flatpickr/l10n/da.js +6 -6
  16. data/vendor/assets/javascripts/flatpickr/l10n/de.js +6 -6
  17. data/vendor/assets/javascripts/flatpickr/l10n/default.js +6 -5
  18. data/vendor/assets/javascripts/flatpickr/l10n/eo.js +6 -6
  19. data/vendor/assets/javascripts/flatpickr/l10n/es.js +6 -6
  20. data/vendor/assets/javascripts/flatpickr/l10n/et.js +6 -6
  21. data/vendor/assets/javascripts/flatpickr/l10n/fa.js +6 -6
  22. data/vendor/assets/javascripts/flatpickr/l10n/fi.js +6 -6
  23. data/vendor/assets/javascripts/flatpickr/l10n/fo.js +6 -6
  24. data/vendor/assets/javascripts/flatpickr/l10n/fr.js +6 -6
  25. data/vendor/assets/javascripts/flatpickr/l10n/ga.js +6 -6
  26. data/vendor/assets/javascripts/flatpickr/l10n/gr.js +6 -6
  27. data/vendor/assets/javascripts/flatpickr/l10n/he.js +6 -6
  28. data/vendor/assets/javascripts/flatpickr/l10n/hi.js +6 -6
  29. data/vendor/assets/javascripts/flatpickr/l10n/hr.js +6 -6
  30. data/vendor/assets/javascripts/flatpickr/l10n/hu.js +6 -6
  31. data/vendor/assets/javascripts/flatpickr/l10n/id.js +6 -6
  32. data/vendor/assets/javascripts/flatpickr/l10n/index.js +387 -256
  33. data/vendor/assets/javascripts/flatpickr/l10n/is.js +6 -6
  34. data/vendor/assets/javascripts/flatpickr/l10n/it.js +6 -6
  35. data/vendor/assets/javascripts/flatpickr/l10n/ja.js +6 -6
  36. data/vendor/assets/javascripts/flatpickr/l10n/ka.js +6 -6
  37. data/vendor/assets/javascripts/flatpickr/l10n/km.js +6 -6
  38. data/vendor/assets/javascripts/flatpickr/l10n/ko.js +6 -6
  39. data/vendor/assets/javascripts/flatpickr/l10n/kz.js +6 -6
  40. data/vendor/assets/javascripts/flatpickr/l10n/lt.js +7 -6
  41. data/vendor/assets/javascripts/flatpickr/l10n/lv.js +6 -6
  42. data/vendor/assets/javascripts/flatpickr/l10n/mk.js +6 -6
  43. data/vendor/assets/javascripts/flatpickr/l10n/mn.js +6 -6
  44. data/vendor/assets/javascripts/flatpickr/l10n/ms.js +6 -6
  45. data/vendor/assets/javascripts/flatpickr/l10n/my.js +6 -6
  46. data/vendor/assets/javascripts/flatpickr/l10n/nl.js +7 -7
  47. data/vendor/assets/javascripts/flatpickr/l10n/no.js +6 -6
  48. data/vendor/assets/javascripts/flatpickr/l10n/pa.js +6 -6
  49. data/vendor/assets/javascripts/flatpickr/l10n/pl.js +6 -6
  50. data/vendor/assets/javascripts/flatpickr/l10n/pt.js +6 -6
  51. data/vendor/assets/javascripts/flatpickr/l10n/ro.js +6 -6
  52. data/vendor/assets/javascripts/flatpickr/l10n/ru.js +6 -6
  53. data/vendor/assets/javascripts/flatpickr/l10n/si.js +6 -6
  54. data/vendor/assets/javascripts/flatpickr/l10n/sk.js +6 -6
  55. data/vendor/assets/javascripts/flatpickr/l10n/sl.js +6 -6
  56. data/vendor/assets/javascripts/flatpickr/l10n/sq.js +6 -6
  57. data/vendor/assets/javascripts/flatpickr/l10n/sr-cyr.js +6 -6
  58. data/vendor/assets/javascripts/flatpickr/l10n/sr.js +6 -6
  59. data/vendor/assets/javascripts/flatpickr/l10n/sv.js +6 -6
  60. data/vendor/assets/javascripts/flatpickr/l10n/th.js +6 -6
  61. data/vendor/assets/javascripts/flatpickr/l10n/tr.js +6 -6
  62. data/vendor/assets/javascripts/flatpickr/l10n/uk.js +6 -6
  63. data/vendor/assets/javascripts/flatpickr/l10n/uz.js +75 -0
  64. data/vendor/assets/javascripts/flatpickr/l10n/uz_latn.js +75 -0
  65. data/vendor/assets/javascripts/flatpickr/l10n/vn.js +6 -6
  66. data/vendor/assets/javascripts/flatpickr/l10n/zh-tw.js +6 -6
  67. data/vendor/assets/javascripts/flatpickr/l10n/zh.js +6 -6
  68. data/vendor/assets/javascripts/flatpickr/plugins/confirmDate/confirmDate.js +33 -17
  69. data/vendor/assets/javascripts/flatpickr/plugins/labelPlugin/labelPlugin.js +3 -3
  70. data/vendor/assets/javascripts/flatpickr/plugins/minMaxTimePlugin.js +23 -17
  71. data/vendor/assets/javascripts/flatpickr/plugins/momentPlugin.js +69 -0
  72. data/vendor/assets/javascripts/flatpickr/plugins/monthSelect/index.js +55 -25
  73. data/vendor/assets/javascripts/flatpickr/plugins/rangePlugin.js +165 -142
  74. data/vendor/assets/javascripts/flatpickr/plugins/scrollPlugin.js +32 -5
  75. data/vendor/assets/javascripts/flatpickr/plugins/weekSelect/weekSelect.js +17 -4
  76. data/vendor/assets/stylesheets/flatpickr.css +9 -2
  77. data/vendor/assets/stylesheets/flatpickr/ie.css +0 -0
  78. data/vendor/assets/stylesheets/flatpickr/plugins/confirmDate/confirmDate.css +0 -0
  79. data/vendor/assets/stylesheets/flatpickr/plugins/monthSelect/style.css +0 -0
  80. data/vendor/assets/stylesheets/flatpickr/themes/airbnb.css +9 -2
  81. data/vendor/assets/stylesheets/flatpickr/themes/confetti.css +11 -4
  82. data/vendor/assets/stylesheets/flatpickr/themes/dark.css +9 -2
  83. data/vendor/assets/stylesheets/flatpickr/themes/light.css +11 -4
  84. data/vendor/assets/stylesheets/flatpickr/themes/material_blue.css +11 -4
  85. data/vendor/assets/stylesheets/flatpickr/themes/material_green.css +11 -4
  86. data/vendor/assets/stylesheets/flatpickr/themes/material_orange.css +11 -4
  87. data/vendor/assets/stylesheets/flatpickr/themes/material_red.css +11 -4
  88. metadata +5 -2
@@ -0,0 +1,69 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
3
+ typeof define === 'function' && define.amd ? define(factory) :
4
+ (global = global || self, global.momentPlugin = factory());
5
+ }(this, (function () { 'use strict';
6
+
7
+ function getEventTarget(event) {
8
+ try {
9
+ if (typeof event.composedPath === "function") {
10
+ var path = event.composedPath();
11
+ return path[0];
12
+ }
13
+ return event.target;
14
+ }
15
+ catch (error) {
16
+ return event.target;
17
+ }
18
+ }
19
+
20
+ function momentPlugin(config) {
21
+ var moment = config.moment;
22
+ return function (fp) {
23
+ function captureIncrement(e) {
24
+ var event = e;
25
+ event.stopPropagation();
26
+ var date = moment(fp.selectedDates[0]);
27
+ var input = getEventTarget(event);
28
+ var unit = Array.from(input.classList)
29
+ .filter(function (name) { return name.startsWith("flatpickr-"); })
30
+ .map(function (name) { return name.substring(10); })[0];
31
+ var step = parseFloat(input.getAttribute("step"));
32
+ date.add(step * event.delta, unit);
33
+ fp.setDate(date.toDate());
34
+ }
35
+ return {
36
+ parseDate: function (datestr, format) {
37
+ return moment(datestr, format, true).toDate();
38
+ },
39
+ formatDate: function (date, format) {
40
+ // locale can also be used
41
+ var momentDate = moment(date);
42
+ if (typeof fp.config.locale === "string") {
43
+ momentDate.locale(fp.config.locale);
44
+ }
45
+ return momentDate.format(format);
46
+ },
47
+ onReady: function () {
48
+ [fp.hourElement, fp.minuteElement, fp.secondElement].forEach(function (element) {
49
+ return element &&
50
+ element.addEventListener("increment", captureIncrement, {
51
+ capture: true,
52
+ });
53
+ });
54
+ },
55
+ onDestroy: function () {
56
+ [fp.hourElement, fp.minuteElement, fp.secondElement].forEach(function (element) {
57
+ return element &&
58
+ element.removeEventListener("increment", captureIncrement, {
59
+ capture: true,
60
+ });
61
+ });
62
+ },
63
+ };
64
+ };
65
+ }
66
+
67
+ return momentPlugin;
68
+
69
+ })));
@@ -2,21 +2,21 @@
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
3
3
  typeof define === 'function' && define.amd ? define(factory) :
4
4
  (global = global || self, global.monthSelectPlugin = factory());
5
- }(this, function () { 'use strict';
5
+ }(this, (function () { 'use strict';
6
6
 
7
7
  /*! *****************************************************************************
8
- Copyright (c) Microsoft Corporation. All rights reserved.
9
- Licensed under the Apache License, Version 2.0 (the "License"); you may not use
10
- this file except in compliance with the License. You may obtain a copy of the
11
- License at http://www.apache.org/licenses/LICENSE-2.0
8
+ Copyright (c) Microsoft Corporation.
12
9
 
13
- THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
- KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
15
- WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
16
- MERCHANTABLITY OR NON-INFRINGEMENT.
10
+ Permission to use, copy, modify, and/or distribute this software for any
11
+ purpose with or without fee is hereby granted.
17
12
 
18
- See the Apache Version 2.0 License for specific language governing permissions
19
- and limitations under the License.
13
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
14
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
15
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
16
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
17
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
18
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19
+ PERFORMANCE OF THIS SOFTWARE.
20
20
  ***************************************************************************** */
21
21
 
22
22
  var __assign = function() {
@@ -32,14 +32,27 @@
32
32
 
33
33
  var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? "shorthand" : "longhand"][monthNumber]; };
34
34
 
35
+ function getEventTarget(event) {
36
+ try {
37
+ if (typeof event.composedPath === "function") {
38
+ var path = event.composedPath();
39
+ return path[0];
40
+ }
41
+ return event.target;
42
+ }
43
+ catch (error) {
44
+ return event.target;
45
+ }
46
+ }
47
+
35
48
  var defaultConfig = {
36
49
  shorthand: false,
37
50
  dateFormat: "F Y",
38
51
  altFormat: "F Y",
39
- theme: "light"
52
+ theme: "light",
40
53
  };
41
54
  function monthSelectPlugin(pluginConfig) {
42
- var config = __assign({}, defaultConfig, pluginConfig);
55
+ var config = __assign(__assign({}, defaultConfig), pluginConfig);
43
56
  return function (fp) {
44
57
  fp.config.dateFormat = config.dateFormat;
45
58
  fp.config.altFormat = config.altFormat;
@@ -57,12 +70,24 @@
57
70
  }
58
71
  }
59
72
  function addListeners() {
60
- fp._bind(fp.prevMonthNav, "click", function () {
61
- fp.currentYear -= 1;
73
+ fp._bind(fp.prevMonthNav, "click", function (e) {
74
+ var _a;
75
+ e.preventDefault();
76
+ e.stopPropagation();
77
+ var selectedMonth = (_a = fp.rContainer) === null || _a === void 0 ? void 0 : _a.querySelector(".flatpickr-monthSelect-month.selected").dateObj.getMonth();
78
+ if (selectedMonth === 0) {
79
+ fp.currentYear--;
80
+ }
62
81
  selectYear();
63
82
  });
64
- fp._bind(fp.nextMonthNav, "mousedown", function () {
65
- fp.currentYear += 1;
83
+ fp._bind(fp.nextMonthNav, "click", function (e) {
84
+ var _a;
85
+ e.preventDefault();
86
+ e.stopPropagation();
87
+ var selectedMonth = (_a = fp.rContainer) === null || _a === void 0 ? void 0 : _a.querySelector(".flatpickr-monthSelect-month.selected").dateObj.getMonth();
88
+ if (selectedMonth === 11) {
89
+ fp.currentYear++;
90
+ }
66
91
  selectYear();
67
92
  });
68
93
  }
@@ -80,7 +105,8 @@
80
105
  month.tabIndex = -1;
81
106
  month.addEventListener("click", selectMonth);
82
107
  self.monthsContainer.appendChild(month);
83
- if ((fp.config.minDate && month.dateObj < fp.config.minDate) || (fp.config.maxDate && month.dateObj > fp.config.maxDate)) {
108
+ if ((fp.config.minDate && month.dateObj < fp.config.minDate) ||
109
+ (fp.config.maxDate && month.dateObj > fp.config.maxDate)) {
84
110
  month.classList.add("disabled");
85
111
  }
86
112
  }
@@ -111,13 +137,14 @@
111
137
  }
112
138
  fp.currentYear = selectedDate.getFullYear();
113
139
  fp.currentYearElement.value = String(fp.currentYear);
114
- setCurrentlySelected();
140
+ fp.currentMonth = selectedDate.getMonth();
115
141
  }
116
142
  if (fp.rContainer) {
117
143
  var months = fp.rContainer.querySelectorAll(".flatpickr-monthSelect-month");
118
144
  months.forEach(function (month) {
119
145
  month.dateObj.setFullYear(fp.currentYear);
120
- if ((fp.config.minDate && month.dateObj < fp.config.minDate) || (fp.config.maxDate && month.dateObj > fp.config.maxDate)) {
146
+ if ((fp.config.minDate && month.dateObj < fp.config.minDate) ||
147
+ (fp.config.maxDate && month.dateObj > fp.config.maxDate)) {
121
148
  month.classList.add("disabled");
122
149
  }
123
150
  else {
@@ -125,12 +152,15 @@
125
152
  }
126
153
  });
127
154
  }
155
+ setCurrentlySelected();
128
156
  }
129
157
  function selectMonth(e) {
130
158
  e.preventDefault();
131
159
  e.stopPropagation();
132
- if (e.target instanceof Element && !e.target.classList.contains("disabled")) {
133
- setMonth(e.target.dateObj);
160
+ var eventTarget = getEventTarget(e);
161
+ if (eventTarget instanceof Element &&
162
+ !eventTarget.classList.contains("disabled")) {
163
+ setMonth(eventTarget.dateObj);
134
164
  fp.close();
135
165
  }
136
166
  }
@@ -145,7 +175,7 @@
145
175
  37: -1,
146
176
  39: 1,
147
177
  40: 3,
148
- 38: -3
178
+ 38: -3,
149
179
  };
150
180
  function onKeyDown(_, __, ___, e) {
151
181
  var shouldMove = shifts[e.keyCode] !== undefined;
@@ -193,11 +223,11 @@
193
223
  fp.loadedPlugins.push("monthSelect");
194
224
  },
195
225
  ],
196
- onDestroy: destroyPluginInstance
226
+ onDestroy: destroyPluginInstance,
197
227
  };
198
228
  };
199
229
  }
200
230
 
201
231
  return monthSelectPlugin;
202
232
 
203
- }));
233
+ })));
@@ -1,146 +1,169 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
3
- typeof define === 'function' && define.amd ? define(factory) :
4
- (global = global || self, global.rangePlugin = factory());
5
- }(this, function () { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
3
+ typeof define === 'function' && define.amd ? define(factory) :
4
+ (global = global || self, global.rangePlugin = factory());
5
+ }(this, (function () { 'use strict';
6
6
 
7
- function rangePlugin(config) {
8
- if (config === void 0) { config = {}; }
9
- return function (fp) {
10
- var dateFormat = "", secondInput, _secondInputFocused, _prevDates;
11
- var createSecondInput = function () {
12
- if (config.input) {
13
- secondInput =
14
- config.input instanceof Element
15
- ? config.input
16
- : window.document.querySelector(config.input);
17
- if (!secondInput) {
18
- fp.config.errorHandler(new Error("Invalid input element specified"));
19
- return;
20
- }
21
- if (fp.config.wrap) {
22
- secondInput = secondInput.querySelector("[data-input]");
23
- }
24
- }
25
- else {
26
- secondInput = fp._input.cloneNode();
27
- secondInput.removeAttribute("id");
28
- secondInput._flatpickr = undefined;
29
- }
30
- if (secondInput.value) {
31
- var parsedDate = fp.parseDate(secondInput.value);
32
- if (parsedDate)
33
- fp.selectedDates.push(parsedDate);
34
- }
35
- secondInput.setAttribute("data-fp-omit", "");
36
- fp._bind(secondInput, ["focus", "click"], function () {
37
- if (fp.selectedDates[1]) {
38
- fp.latestSelectedDateObj = fp.selectedDates[1];
39
- fp._setHoursFromDate(fp.selectedDates[1]);
40
- fp.jumpToDate(fp.selectedDates[1]);
41
- }
42
- _secondInputFocused = true;
43
- fp.isOpen = false;
44
- fp.open(undefined, config.position === "left" ? fp._input : secondInput);
45
- });
46
- fp._bind(fp._input, ["focus", "click"], function (e) {
47
- e.preventDefault();
48
- fp.isOpen = false;
49
- fp.open();
50
- });
51
- if (fp.config.allowInput)
52
- fp._bind(secondInput, "keydown", function (e) {
53
- if (e.key === "Enter") {
54
- fp.setDate([fp.selectedDates[0], secondInput.value], true, dateFormat);
55
- secondInput.click();
56
- }
57
- });
58
- if (!config.input)
59
- fp._input.parentNode &&
60
- fp._input.parentNode.insertBefore(secondInput, fp._input.nextSibling);
61
- };
62
- var plugin = {
63
- onParseConfig: function () {
64
- fp.config.mode = "range";
65
- dateFormat = fp.config.altInput
66
- ? fp.config.altFormat
67
- : fp.config.dateFormat;
68
- },
69
- onReady: function () {
70
- createSecondInput();
71
- fp.config.ignoredFocusElements.push(secondInput);
72
- if (fp.config.allowInput) {
73
- fp._input.removeAttribute("readonly");
74
- secondInput.removeAttribute("readonly");
75
- }
76
- else {
77
- secondInput.setAttribute("readonly", "readonly");
78
- }
79
- fp._bind(fp._input, "focus", function () {
80
- fp.latestSelectedDateObj = fp.selectedDates[0];
81
- fp._setHoursFromDate(fp.selectedDates[0]);
82
- _secondInputFocused = false;
83
- fp.jumpToDate(fp.selectedDates[0]);
84
- });
85
- if (fp.config.allowInput)
86
- fp._bind(fp._input, "keydown", function (e) {
87
- if (e.key === "Enter")
88
- fp.setDate([fp._input.value, fp.selectedDates[1]], true, dateFormat);
89
- });
90
- fp.setDate(fp.selectedDates, false);
91
- plugin.onValueUpdate(fp.selectedDates);
92
- fp.loadedPlugins.push("range");
93
- },
94
- onPreCalendarPosition: function () {
95
- if (_secondInputFocused) {
96
- fp._positionElement = secondInput;
97
- setTimeout(function () {
98
- fp._positionElement = fp._input;
99
- }, 0);
100
- }
101
- },
102
- onChange: function () {
103
- if (!fp.selectedDates.length) {
104
- setTimeout(function () {
105
- if (fp.selectedDates.length)
106
- return;
107
- secondInput.value = "";
108
- _prevDates = [];
109
- }, 10);
110
- }
111
- if (_secondInputFocused) {
112
- setTimeout(function () {
113
- secondInput.focus();
114
- }, 0);
115
- }
116
- },
117
- onDestroy: function () {
118
- if (!config.input)
119
- secondInput.parentNode &&
120
- secondInput.parentNode.removeChild(secondInput);
121
- },
122
- onValueUpdate: function (selDates) {
123
- var _a, _b, _c;
124
- if (!secondInput)
125
- return;
126
- _prevDates =
127
- !_prevDates || selDates.length >= _prevDates.length
128
- ? selDates.slice() : _prevDates;
129
- if (_prevDates.length > selDates.length) {
130
- var newSelectedDate = selDates[0];
131
- var newDates = _secondInputFocused
132
- ? [_prevDates[0], newSelectedDate]
133
- : [newSelectedDate, _prevDates[1]];
134
- fp.setDate(newDates, false);
135
- _prevDates = newDates.slice();
136
- }
137
- _a = fp.selectedDates.map(function (d) { return fp.formatDate(d, dateFormat); }), _b = _a[0], fp._input.value = _b === void 0 ? "" : _b, _c = _a[1], secondInput.value = _c === void 0 ? "" : _c;
138
- }
139
- };
140
- return plugin;
141
- };
142
- }
7
+ /*! *****************************************************************************
8
+ Copyright (c) Microsoft Corporation.
9
+
10
+ Permission to use, copy, modify, and/or distribute this software for any
11
+ purpose with or without fee is hereby granted.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
14
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
15
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
16
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
17
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
18
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19
+ PERFORMANCE OF THIS SOFTWARE.
20
+ ***************************************************************************** */
21
+
22
+ function __spreadArrays() {
23
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
24
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
25
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
26
+ r[k] = a[j];
27
+ return r;
28
+ }
143
29
 
144
- return rangePlugin;
30
+ function rangePlugin(config) {
31
+ if (config === void 0) { config = {}; }
32
+ return function (fp) {
33
+ var dateFormat = "", secondInput, _secondInputFocused, _prevDates;
34
+ var createSecondInput = function () {
35
+ if (config.input) {
36
+ secondInput =
37
+ config.input instanceof Element
38
+ ? config.input
39
+ : window.document.querySelector(config.input);
40
+ if (!secondInput) {
41
+ fp.config.errorHandler(new Error("Invalid input element specified"));
42
+ return;
43
+ }
44
+ if (fp.config.wrap) {
45
+ secondInput = secondInput.querySelector("[data-input]");
46
+ }
47
+ }
48
+ else {
49
+ secondInput = fp._input.cloneNode();
50
+ secondInput.removeAttribute("id");
51
+ secondInput._flatpickr = undefined;
52
+ }
53
+ if (secondInput.value) {
54
+ var parsedDate = fp.parseDate(secondInput.value);
55
+ if (parsedDate)
56
+ fp.selectedDates.push(parsedDate);
57
+ }
58
+ secondInput.setAttribute("data-fp-omit", "");
59
+ fp._bind(secondInput, ["focus", "click"], function () {
60
+ if (fp.selectedDates[1]) {
61
+ fp.latestSelectedDateObj = fp.selectedDates[1];
62
+ fp._setHoursFromDate(fp.selectedDates[1]);
63
+ fp.jumpToDate(fp.selectedDates[1]);
64
+ }
65
+ _secondInputFocused = true;
66
+ fp.isOpen = false;
67
+ fp.open(undefined, config.position === "left" ? fp._input : secondInput);
68
+ });
69
+ fp._bind(fp._input, ["focus", "click"], function (e) {
70
+ e.preventDefault();
71
+ fp.isOpen = false;
72
+ fp.open();
73
+ });
74
+ if (fp.config.allowInput)
75
+ fp._bind(secondInput, "keydown", function (e) {
76
+ if (e.key === "Enter") {
77
+ fp.setDate([fp.selectedDates[0], secondInput.value], true, dateFormat);
78
+ secondInput.click();
79
+ }
80
+ });
81
+ if (!config.input)
82
+ fp._input.parentNode &&
83
+ fp._input.parentNode.insertBefore(secondInput, fp._input.nextSibling);
84
+ };
85
+ var plugin = {
86
+ onParseConfig: function () {
87
+ fp.config.mode = "range";
88
+ dateFormat = fp.config.altInput
89
+ ? fp.config.altFormat
90
+ : fp.config.dateFormat;
91
+ },
92
+ onReady: function () {
93
+ createSecondInput();
94
+ fp.config.ignoredFocusElements.push(secondInput);
95
+ if (fp.config.allowInput) {
96
+ fp._input.removeAttribute("readonly");
97
+ secondInput.removeAttribute("readonly");
98
+ }
99
+ else {
100
+ secondInput.setAttribute("readonly", "readonly");
101
+ }
102
+ fp._bind(fp._input, "focus", function () {
103
+ fp.latestSelectedDateObj = fp.selectedDates[0];
104
+ fp._setHoursFromDate(fp.selectedDates[0]);
105
+ _secondInputFocused = false;
106
+ fp.jumpToDate(fp.selectedDates[0]);
107
+ });
108
+ if (fp.config.allowInput)
109
+ fp._bind(fp._input, "keydown", function (e) {
110
+ if (e.key === "Enter")
111
+ fp.setDate([fp._input.value, fp.selectedDates[1]], true, dateFormat);
112
+ });
113
+ fp.setDate(fp.selectedDates, false);
114
+ plugin.onValueUpdate(fp.selectedDates);
115
+ fp.loadedPlugins.push("range");
116
+ },
117
+ onPreCalendarPosition: function () {
118
+ if (_secondInputFocused) {
119
+ fp._positionElement = secondInput;
120
+ setTimeout(function () {
121
+ fp._positionElement = fp._input;
122
+ }, 0);
123
+ }
124
+ },
125
+ onChange: function () {
126
+ if (!fp.selectedDates.length) {
127
+ setTimeout(function () {
128
+ if (fp.selectedDates.length)
129
+ return;
130
+ secondInput.value = "";
131
+ _prevDates = [];
132
+ }, 10);
133
+ }
134
+ if (_secondInputFocused) {
135
+ setTimeout(function () {
136
+ secondInput.focus();
137
+ }, 0);
138
+ }
139
+ },
140
+ onDestroy: function () {
141
+ if (!config.input)
142
+ secondInput.parentNode &&
143
+ secondInput.parentNode.removeChild(secondInput);
144
+ },
145
+ onValueUpdate: function (selDates) {
146
+ var _a, _b, _c;
147
+ if (!secondInput)
148
+ return;
149
+ _prevDates =
150
+ !_prevDates || selDates.length >= _prevDates.length
151
+ ? __spreadArrays(selDates) : _prevDates;
152
+ if (_prevDates.length > selDates.length) {
153
+ var newSelectedDate = selDates[0];
154
+ var newDates = _secondInputFocused
155
+ ? [_prevDates[0], newSelectedDate]
156
+ : [newSelectedDate, _prevDates[1]];
157
+ fp.setDate(newDates, false);
158
+ _prevDates = __spreadArrays(newDates);
159
+ }
160
+ _a = fp.selectedDates.map(function (d) { return fp.formatDate(d, dateFormat); }), _b = _a[0], fp._input.value = _b === void 0 ? "" : _b, _c = _a[1], secondInput.value = _c === void 0 ? "" : _c;
161
+ },
162
+ };
163
+ return plugin;
164
+ };
165
+ }
145
166
 
146
- }));
167
+ return rangePlugin;
168
+
169
+ })));