flatpickr 4.6.9.0 → 4.6.10.0

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 (33) hide show
  1. checksums.yaml +4 -4
  2. data/lib/flatpickr/version.rb +1 -1
  3. data/package.json +1 -1
  4. data/vendor/assets/javascripts/flatpickr/l10n/ar-dz.js +61 -0
  5. data/vendor/assets/javascripts/flatpickr/l10n/ar.js +11 -1
  6. data/vendor/assets/javascripts/flatpickr/l10n/at.js +1 -0
  7. data/vendor/assets/javascripts/flatpickr/l10n/cat.js +1 -0
  8. data/vendor/assets/javascripts/flatpickr/l10n/ckb.js +68 -0
  9. data/vendor/assets/javascripts/flatpickr/l10n/fi.js +32 -32
  10. data/vendor/assets/javascripts/flatpickr/l10n/gr.js +6 -2
  11. data/vendor/assets/javascripts/flatpickr/l10n/hy.js +86 -0
  12. data/vendor/assets/javascripts/flatpickr/l10n/index.js +434 -222
  13. data/vendor/assets/javascripts/flatpickr/l10n/ko.js +1 -0
  14. data/vendor/assets/javascripts/flatpickr/l10n/ms.js +2 -2
  15. data/vendor/assets/javascripts/flatpickr/l10n/nn.js +73 -0
  16. data/vendor/assets/javascripts/flatpickr/l10n/sv.js +33 -32
  17. data/vendor/assets/javascripts/flatpickr/plugins/confirmDate/confirmDate.js +5 -1
  18. data/vendor/assets/javascripts/flatpickr/plugins/minMaxTimePlugin.js +23 -4
  19. data/vendor/assets/javascripts/flatpickr/plugins/monthSelect/index.js +103 -42
  20. data/vendor/assets/javascripts/flatpickr/plugins/rangePlugin.js +8 -0
  21. data/vendor/assets/javascripts/flatpickr/plugins/scrollPlugin.js +22 -14
  22. data/vendor/assets/javascripts/flatpickr.js +143 -92
  23. data/vendor/assets/stylesheets/flatpickr/plugins/monthSelect/style.css +45 -7
  24. data/vendor/assets/stylesheets/flatpickr/themes/airbnb.css +4 -0
  25. data/vendor/assets/stylesheets/flatpickr/themes/confetti.css +4 -0
  26. data/vendor/assets/stylesheets/flatpickr/themes/dark.css +4 -0
  27. data/vendor/assets/stylesheets/flatpickr/themes/light.css +4 -0
  28. data/vendor/assets/stylesheets/flatpickr/themes/material_blue.css +4 -0
  29. data/vendor/assets/stylesheets/flatpickr/themes/material_green.css +4 -0
  30. data/vendor/assets/stylesheets/flatpickr/themes/material_orange.css +4 -0
  31. data/vendor/assets/stylesheets/flatpickr/themes/material_red.css +4 -0
  32. data/vendor/assets/stylesheets/flatpickr.css +4 -0
  33. metadata +5 -1
@@ -56,6 +56,7 @@
56
56
  return "일";
57
57
  },
58
58
  rangeSeparator: " ~ ",
59
+ amPM: ["오전", "오후"],
59
60
  };
60
61
  fp.l10ns.ko = Korean;
61
62
  var ko = fp.l10ns;
@@ -11,9 +11,9 @@
11
11
  };
12
12
  var Malaysian = {
13
13
  weekdays: {
14
- shorthand: ["Min", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab"],
14
+ shorthand: ["Aha", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab"],
15
15
  longhand: [
16
- "Minggu",
16
+ "Ahad",
17
17
  "Isnin",
18
18
  "Selasa",
19
19
  "Rabu",
@@ -0,0 +1,73 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.nn = {}));
5
+ }(this, (function (exports) { 'use strict';
6
+
7
+ var fp = typeof window !== 'undefined' && window.flatpickr !== undefined
8
+ ? window.flatpickr
9
+ : {
10
+ l10ns: {},
11
+ };
12
+ var NorwegianNynorsk = {
13
+ weekdays: {
14
+ shorthand: ['Sø.', 'Må.', 'Ty.', 'On.', 'To.', 'Fr.', 'La.'],
15
+ longhand: [
16
+ 'Søndag',
17
+ 'Måndag',
18
+ 'Tysdag',
19
+ 'Onsdag',
20
+ 'Torsdag',
21
+ 'Fredag',
22
+ 'Laurdag',
23
+ ],
24
+ },
25
+ months: {
26
+ shorthand: [
27
+ 'Jan',
28
+ 'Feb',
29
+ 'Mars',
30
+ 'Apr',
31
+ 'Mai',
32
+ 'Juni',
33
+ 'Juli',
34
+ 'Aug',
35
+ 'Sep',
36
+ 'Okt',
37
+ 'Nov',
38
+ 'Des',
39
+ ],
40
+ longhand: [
41
+ 'Januar',
42
+ 'Februar',
43
+ 'Mars',
44
+ 'April',
45
+ 'Mai',
46
+ 'Juni',
47
+ 'Juli',
48
+ 'August',
49
+ 'September',
50
+ 'Oktober',
51
+ 'November',
52
+ 'Desember',
53
+ ],
54
+ },
55
+ firstDayOfWeek: 1,
56
+ rangeSeparator: ' til ',
57
+ weekAbbreviation: 'Veke',
58
+ scrollTitle: 'Scroll for å endre',
59
+ toggleTitle: 'Klikk for å veksle',
60
+ time_24hr: true,
61
+ ordinal: function () {
62
+ return '.';
63
+ },
64
+ };
65
+ fp.l10ns.nn = NorwegianNynorsk;
66
+ var nn = fp.l10ns;
67
+
68
+ exports.NorwegianNynorsk = NorwegianNynorsk;
69
+ exports.default = nn;
70
+
71
+ Object.defineProperty(exports, '__esModule', { value: true });
72
+
73
+ })));
@@ -13,47 +13,48 @@
13
13
  firstDayOfWeek: 1,
14
14
  weekAbbreviation: "v",
15
15
  weekdays: {
16
- shorthand: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"],
16
+ shorthand: ["sön", "mån", "tis", "ons", "tor", "fre", "lör"],
17
17
  longhand: [
18
- "Söndag",
19
- "Måndag",
20
- "Tisdag",
21
- "Onsdag",
22
- "Torsdag",
23
- "Fredag",
24
- "Lördag",
18
+ "söndag",
19
+ "måndag",
20
+ "tisdag",
21
+ "onsdag",
22
+ "torsdag",
23
+ "fredag",
24
+ "lördag",
25
25
  ],
26
26
  },
27
27
  months: {
28
28
  shorthand: [
29
- "Jan",
30
- "Feb",
31
- "Mar",
32
- "Apr",
33
- "Maj",
34
- "Jun",
35
- "Jul",
36
- "Aug",
37
- "Sep",
38
- "Okt",
39
- "Nov",
40
- "Dec",
29
+ "jan",
30
+ "feb",
31
+ "mar",
32
+ "apr",
33
+ "maj",
34
+ "jun",
35
+ "jul",
36
+ "aug",
37
+ "sep",
38
+ "okt",
39
+ "nov",
40
+ "dec",
41
41
  ],
42
42
  longhand: [
43
- "Januari",
44
- "Februari",
45
- "Mars",
46
- "April",
47
- "Maj",
48
- "Juni",
49
- "Juli",
50
- "Augusti",
51
- "September",
52
- "Oktober",
53
- "November",
54
- "December",
43
+ "januari",
44
+ "februari",
45
+ "mars",
46
+ "april",
47
+ "maj",
48
+ "juni",
49
+ "juli",
50
+ "augusti",
51
+ "september",
52
+ "oktober",
53
+ "november",
54
+ "december",
55
55
  ],
56
56
  },
57
+ rangeSeparator: ' till ',
57
58
  time_24hr: true,
58
59
  ordinal: function () {
59
60
  return ".";
@@ -58,9 +58,13 @@
58
58
  return {};
59
59
  return __assign({ onKeyDown: function (_, __, ___, e) {
60
60
  var eventTarget = getEventTarget(e);
61
+ var isTargetLastFocusableElement = (!fp.config.time_24hr && eventTarget === fp.amPM) ||
62
+ (fp.config.time_24hr &&
63
+ ((fp.config.enableSeconds && eventTarget === fp.secondElement) ||
64
+ (!fp.config.enableSeconds && eventTarget === fp.minuteElement)));
61
65
  if (fp.config.enableTime &&
62
66
  e.key === "Tab" &&
63
- eventTarget === fp.amPM) {
67
+ isTargetLastFocusableElement) {
64
68
  e.preventDefault();
65
69
  confirmContainer.focus();
66
70
  }
@@ -259,6 +259,13 @@
259
259
  date1.getSeconds() -
260
260
  date2.getSeconds());
261
261
  }
262
+ var calculateSecondsSinceMidnight = function (hours, minutes, seconds) {
263
+ return hours * 3600 + minutes * 60 + seconds;
264
+ };
265
+ var parseSeconds = function (secondsSinceMidnight) {
266
+ var hours = Math.floor(secondsSinceMidnight / 3600), minutes = (secondsSinceMidnight - hours * 3600) / 60;
267
+ return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60];
268
+ };
262
269
 
263
270
  function minMaxTimePlugin(config) {
264
271
  if (config === void 0) { config = {}; }
@@ -297,11 +304,23 @@
297
304
  fp.config.maxTime.setMonth(latest.getMonth());
298
305
  fp.config.minTime.setDate(latest.getDate());
299
306
  fp.config.maxTime.setDate(latest.getDate());
300
- if (compareDates(latest, fp.config.maxTime, false) > 0) {
301
- fp.setDate(new Date(latest.getTime()).setHours(fp.config.maxTime.getHours(), fp.config.maxTime.getMinutes(), fp.config.maxTime.getSeconds(), fp.config.maxTime.getMilliseconds()), false);
307
+ if (fp.config.minTime > fp.config.maxTime) {
308
+ var minBound = calculateSecondsSinceMidnight(fp.config.minTime.getHours(), fp.config.minTime.getMinutes(), fp.config.minTime.getSeconds());
309
+ var maxBound = calculateSecondsSinceMidnight(fp.config.maxTime.getHours(), fp.config.maxTime.getMinutes(), fp.config.maxTime.getSeconds());
310
+ var currentTime = calculateSecondsSinceMidnight(latest.getHours(), latest.getMinutes(), latest.getSeconds());
311
+ if (currentTime > maxBound && currentTime < minBound) {
312
+ var result = parseSeconds(minBound);
313
+ fp.setDate(new Date(latest.getTime()).setHours(result[0], result[1], result[2]), false);
314
+ }
315
+ }
316
+ else {
317
+ if (compareDates(latest, fp.config.maxTime, false) > 0) {
318
+ fp.setDate(new Date(latest.getTime()).setHours(fp.config.maxTime.getHours(), fp.config.maxTime.getMinutes(), fp.config.maxTime.getSeconds(), fp.config.maxTime.getMilliseconds()), false);
319
+ }
320
+ else if (compareDates(latest, fp.config.minTime, false) < 0) {
321
+ fp.setDate(new Date(latest.getTime()).setHours(fp.config.minTime.getHours(), fp.config.minTime.getMinutes(), fp.config.minTime.getSeconds(), fp.config.minTime.getMilliseconds()), false);
322
+ }
302
323
  }
303
- else if (compareDates(latest, fp.config.minTime, false) < 0)
304
- fp.setDate(new Date(latest.getTime()).setHours(fp.config.minTime.getHours(), fp.config.minTime.getMinutes(), fp.config.minTime.getSeconds(), fp.config.minTime.getMilliseconds()), false);
305
324
  }
306
325
  else {
307
326
  var newMinMax = state.defaults || {
@@ -32,6 +32,10 @@
32
32
 
33
33
  var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? "shorthand" : "longhand"][monthNumber]; };
34
34
 
35
+ function clearNode(node) {
36
+ while (node.firstChild)
37
+ node.removeChild(node.firstChild);
38
+ }
35
39
  function getEventTarget(event) {
36
40
  try {
37
41
  if (typeof event.composedPath === "function") {
@@ -58,10 +62,9 @@
58
62
  fp.config.altFormat = config.altFormat;
59
63
  var self = { monthsContainer: null };
60
64
  function clearUnnecessaryDOMElements() {
61
- if (!fp.rContainer || !fp.daysContainer || !fp.weekdayContainer)
65
+ if (!fp.rContainer)
62
66
  return;
63
- fp.rContainer.removeChild(fp.daysContainer);
64
- fp.rContainer.removeChild(fp.weekdayContainer);
67
+ clearNode(fp.rContainer);
65
68
  for (var index = 0; index < fp.monthElements.length; index++) {
66
69
  var element = fp.monthElements[index];
67
70
  if (!element.parentNode)
@@ -69,49 +72,61 @@
69
72
  element.parentNode.removeChild(element);
70
73
  }
71
74
  }
72
- function addListeners() {
75
+ function build() {
76
+ if (!fp.rContainer)
77
+ return;
78
+ self.monthsContainer = fp._createElement("div", "flatpickr-monthSelect-months");
79
+ self.monthsContainer.tabIndex = -1;
80
+ buildMonths();
81
+ fp.rContainer.appendChild(self.monthsContainer);
82
+ fp.calendarContainer.classList.add("flatpickr-monthSelect-theme-" + config.theme);
83
+ }
84
+ function buildMonths() {
85
+ if (!self.monthsContainer)
86
+ return;
87
+ clearNode(self.monthsContainer);
88
+ var frag = document.createDocumentFragment();
89
+ for (var i = 0; i < 12; i++) {
90
+ var month = fp.createDay("flatpickr-monthSelect-month", new Date(fp.currentYear, i), 0, i);
91
+ if (month.dateObj.getMonth() === new Date().getMonth() &&
92
+ month.dateObj.getFullYear() === new Date().getFullYear())
93
+ month.classList.add("today");
94
+ month.textContent = monthToStr(i, config.shorthand, fp.l10n);
95
+ month.addEventListener("click", selectMonth);
96
+ frag.appendChild(month);
97
+ }
98
+ self.monthsContainer.appendChild(frag);
99
+ }
100
+ function bindEvents() {
73
101
  fp._bind(fp.prevMonthNav, "click", function (e) {
74
102
  e.preventDefault();
75
103
  e.stopPropagation();
76
104
  fp.changeYear(fp.currentYear - 1);
77
105
  selectYear();
106
+ buildMonths();
78
107
  });
79
108
  fp._bind(fp.nextMonthNav, "click", function (e) {
80
109
  e.preventDefault();
81
110
  e.stopPropagation();
82
111
  fp.changeYear(fp.currentYear + 1);
83
112
  selectYear();
113
+ buildMonths();
114
+ });
115
+ fp._bind(self.monthsContainer, "mouseover", function (e) {
116
+ if (fp.config.mode === "range")
117
+ fp.onMouseOver(getEventTarget(e), "flatpickr-monthSelect-month");
84
118
  });
85
- }
86
- function addMonths() {
87
- if (!fp.rContainer)
88
- return;
89
- self.monthsContainer = fp._createElement("div", "flatpickr-monthSelect-months");
90
- self.monthsContainer.tabIndex = -1;
91
- fp.calendarContainer.classList.add("flatpickr-monthSelect-theme-" + config.theme);
92
- for (var i = 0; i < 12; i++) {
93
- var month = fp._createElement("span", "flatpickr-monthSelect-month");
94
- month.dateObj = new Date(fp.currentYear, i);
95
- month.$i = i;
96
- month.textContent = monthToStr(i, config.shorthand, fp.l10n);
97
- month.tabIndex = -1;
98
- month.addEventListener("click", selectMonth);
99
- self.monthsContainer.appendChild(month);
100
- if ((fp.config.minDate && month.dateObj < fp.config.minDate) ||
101
- (fp.config.maxDate && month.dateObj > fp.config.maxDate)) {
102
- month.classList.add("disabled");
103
- }
104
- }
105
- fp.rContainer.appendChild(self.monthsContainer);
106
119
  }
107
120
  function setCurrentlySelected() {
108
121
  if (!fp.rContainer)
109
122
  return;
123
+ if (!fp.selectedDates.length)
124
+ return;
110
125
  var currentlySelected = fp.rContainer.querySelectorAll(".flatpickr-monthSelect-month.selected");
111
126
  for (var index = 0; index < currentlySelected.length; index++) {
112
127
  currentlySelected[index].classList.remove("selected");
113
128
  }
114
- var targetMonth = (fp.selectedDates[0] || new Date()).getMonth();
129
+ var targetMonth = fp.selectedDates[0].getMonth();
115
130
  var month = fp.rContainer.querySelector(".flatpickr-monthSelect-month:nth-child(" + (targetMonth + 1) + ")");
116
131
  if (month) {
117
132
  month.classList.add("selected");
@@ -137,10 +152,10 @@
137
152
  month.dateObj.setFullYear(fp.currentYear);
138
153
  if ((fp.config.minDate && month.dateObj < fp.config.minDate) ||
139
154
  (fp.config.maxDate && month.dateObj > fp.config.maxDate)) {
140
- month.classList.add("disabled");
155
+ month.classList.add("flatpickr-disabled");
141
156
  }
142
157
  else {
143
- month.classList.remove("disabled");
158
+ month.classList.remove("flatpickr-disabled");
144
159
  }
145
160
  });
146
161
  }
@@ -150,16 +165,37 @@
150
165
  e.preventDefault();
151
166
  e.stopPropagation();
152
167
  var eventTarget = getEventTarget(e);
153
- if (eventTarget instanceof Element &&
154
- !eventTarget.classList.contains("disabled")) {
155
- setMonth(eventTarget.dateObj);
156
- fp.close();
168
+ if (!(eventTarget instanceof Element))
169
+ return;
170
+ if (eventTarget.classList.contains("flatpickr-disabled"))
171
+ return;
172
+ if (eventTarget.classList.contains("notAllowed"))
173
+ return; // necessary??
174
+ setMonth(eventTarget.dateObj);
175
+ if (fp.config.closeOnSelect) {
176
+ var single = fp.config.mode === "single";
177
+ var range = fp.config.mode === "range" && fp.selectedDates.length === 2;
178
+ if (single || range)
179
+ fp.close();
157
180
  }
158
181
  }
159
182
  function setMonth(date) {
160
- var selectedDate = new Date(date);
161
- selectedDate.setFullYear(fp.currentYear);
162
- fp.setDate(selectedDate, true);
183
+ var selectedDate = new Date(fp.currentYear, date.getMonth(), date.getDate());
184
+ switch (fp.config.mode) {
185
+ case "single":
186
+ fp.selectedDates = [selectedDate];
187
+ break;
188
+ case "range":
189
+ if (fp.selectedDates.length === 2) {
190
+ fp.clear(false, false);
191
+ buildMonths();
192
+ }
193
+ fp.selectedDates.push(selectedDate);
194
+ fp.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });
195
+ break;
196
+ }
197
+ fp.latestSelectedDateObj = selectedDate;
198
+ fp.updateValue();
163
199
  setCurrentlySelected();
164
200
  }
165
201
  var shifts = {
@@ -190,6 +226,27 @@
190
226
  setMonth(document.activeElement.dateObj);
191
227
  }
192
228
  }
229
+ function closeHook() {
230
+ var _a;
231
+ if (((_a = fp.config) === null || _a === void 0 ? void 0 : _a.mode) === "range" &&
232
+ fp.selectedDates.length === 1)
233
+ fp.clear(false);
234
+ if (!fp.selectedDates.length)
235
+ buildMonths();
236
+ }
237
+ // Help the prev/next year nav honor config.minDate (see 3fa5a69)
238
+ function stubCurrentMonth() {
239
+ config._stubbedCurrentMonth = fp._initialDate.getMonth();
240
+ fp._initialDate.setMonth(0);
241
+ fp.currentMonth = 0;
242
+ }
243
+ function unstubCurrentMonth() {
244
+ if (!config._stubbedCurrentMonth)
245
+ return;
246
+ fp._initialDate.setMonth(config._stubbedCurrentMonth);
247
+ fp.currentMonth = config._stubbedCurrentMonth;
248
+ delete config._stubbedCurrentMonth;
249
+ }
193
250
  function destroyPluginInstance() {
194
251
  if (self.monthsContainer !== null) {
195
252
  var months = self.monthsContainer.querySelectorAll(".flatpickr-monthSelect-month");
@@ -200,24 +257,28 @@
200
257
  }
201
258
  return {
202
259
  onParseConfig: function () {
203
- fp.config.mode = "single";
204
260
  fp.config.enableTime = false;
205
261
  },
206
262
  onValueUpdate: setCurrentlySelected,
207
263
  onKeyDown: onKeyDown,
208
264
  onReady: [
209
- function () {
210
- fp.currentMonth = 0;
211
- },
265
+ stubCurrentMonth,
212
266
  clearUnnecessaryDOMElements,
213
- addListeners,
214
- addMonths,
267
+ build,
268
+ bindEvents,
215
269
  setCurrentlySelected,
216
270
  function () {
271
+ fp.config.onClose.push(closeHook);
217
272
  fp.loadedPlugins.push("monthSelect");
218
273
  },
219
274
  ],
220
- onDestroy: destroyPluginInstance,
275
+ onDestroy: [
276
+ unstubCurrentMonth,
277
+ destroyPluginInstance,
278
+ function () {
279
+ fp.config.onClose = fp.config.onClose.filter(function (hook) { return hook !== closeHook; });
280
+ },
281
+ ],
221
282
  };
222
283
  };
223
284
  }
@@ -156,6 +156,14 @@
156
156
  var newDates = _secondInputFocused
157
157
  ? [_prevDates[0], newSelectedDate]
158
158
  : [newSelectedDate, _prevDates[1]];
159
+ if (newDates[0].getTime() > newDates[1].getTime()) {
160
+ if (_secondInputFocused) {
161
+ newDates[0] = newDates[1];
162
+ }
163
+ else {
164
+ newDates[1] = newDates[0];
165
+ }
166
+ }
159
167
  fp.setDate(newDates, false);
160
168
  _prevDates = __spreadArrays(newDates);
161
169
  }
@@ -18,7 +18,7 @@
18
18
  }
19
19
 
20
20
  if (typeof window.CustomEvent !== "function") {
21
- function CustomEvent(typeArg, eventInitDict) {
21
+ var CustomEvent = function (typeArg, eventInitDict) {
22
22
  eventInitDict = eventInitDict || {
23
23
  bubbles: false,
24
24
  cancelable: false,
@@ -27,7 +27,7 @@
27
27
  var evt = document.createEvent("CustomEvent");
28
28
  evt.initCustomEvent(typeArg, eventInitDict.bubbles, eventInitDict.cancelable, eventInitDict.detail);
29
29
  return evt;
30
- }
30
+ };
31
31
  CustomEvent.prototype = window.Event.prototype;
32
32
  window.CustomEvent = CustomEvent;
33
33
  }
@@ -57,24 +57,32 @@
57
57
  if (fp.timeContainer) {
58
58
  fp.timeContainer.addEventListener("wheel", scroll);
59
59
  }
60
- fp.yearElements.forEach(function (yearElem) {
61
- return yearElem.addEventListener("wheel", scroll);
62
- });
63
- fp.monthElements.forEach(function (monthElem) {
64
- return monthElem.addEventListener("wheel", monthScroller);
65
- });
60
+ if (fp.yearElements) {
61
+ fp.yearElements.forEach(function (yearElem) {
62
+ return yearElem.addEventListener("wheel", scroll);
63
+ });
64
+ }
65
+ if (fp.monthElements) {
66
+ fp.monthElements.forEach(function (monthElem) {
67
+ return monthElem.addEventListener("wheel", monthScroller);
68
+ });
69
+ }
66
70
  fp.loadedPlugins.push("scroll");
67
71
  },
68
72
  onDestroy: function () {
69
73
  if (fp.timeContainer) {
70
74
  fp.timeContainer.removeEventListener("wheel", scroll);
71
75
  }
72
- fp.yearElements.forEach(function (yearElem) {
73
- return yearElem.removeEventListener("wheel", scroll);
74
- });
75
- fp.monthElements.forEach(function (monthElem) {
76
- return monthElem.removeEventListener("wheel", monthScroller);
77
- });
76
+ if (fp.yearElements) {
77
+ fp.yearElements.forEach(function (yearElem) {
78
+ return yearElem.removeEventListener("wheel", scroll);
79
+ });
80
+ }
81
+ if (fp.monthElements) {
82
+ fp.monthElements.forEach(function (monthElem) {
83
+ return monthElem.removeEventListener("wheel", monthScroller);
84
+ });
85
+ }
78
86
  },
79
87
  };
80
88
  };