PageSourceSearch

https://www.eurostarshotels.com/js/libraries/vanillaCalendar/js/vanilla-calendar.min.js

js eurostarshotels.com collected 2026-10-09 21:30:29 UTC 69,057 bytes, 1,845 lines download raw bytes

1/*! name: vanilla-calendar-pro v2.9.9 | url: https://github.com/uvarov-frontend/vanilla-calendar-pro */
2!(function (e, t) {
3  "object" == typeof exports && "undefined" != typeof module
4    ? (module.exports = t())
5    : "function" == typeof define && define.amd
6    ? define(t)
7    : ((e =
8        "undefined" != typeof globalThis
9          ? globalThis
10          : e || self).VanillaCalendar = t());
11})(this, function () {
12  "use strict";
13  var e = Object.defineProperty,
14    t = Object.getOwnPropertySymbols,
15    n = Object.prototype.hasOwnProperty,
16    a = Object.prototype.propertyIsEnumerable,
17    s = (t, n, a) =>
18      n in t
19        ? e(t, n, { enumerable: !0, configurable: !0, writable: !0, value: a })
20        : (t[n] = a),
21    l = (e, l) => {
22      for (var i in l || (l = {})) n.call(l, i) && s(e, i, l[i]);
23      if (t) for (var i of t(l)) a.call(l, i) && s(e, i, l[i]);
24      return e;
25    },
26    i = (e, t, n) => (s(e, "symbol" != typeof t ? t + "" : t, n), n);
27  const r = {
28      calendar: "vanilla-calendar",
29      calendarDefault: "vanilla-calendar_default",
30      calendarMultiple: "vanilla-calendar_multiple",
31      calendarMonth: "vanilla-calendar_month",
32      calendarYear: "vanilla-calendar_year",
33      calendarHidden: "vanilla-calendar_hidden",
34      calendarToInput: "vanilla-calendar_to-input",
35      calendarToInputTop: "vanilla-calendar_to-input_top",
36      calendarToInputBottom: "vanilla-calendar_to-input_bottom",
37      controls: "vanilla-calendar-controls",
38      grid: "vanilla-calendar-grid",
39      gridDisabled: "vanilla-calendar-grid_disabled",
40      column: "vanilla-calendar-column",
41      columnMonth: "vanilla-calendar-column_month",
42      columnYear: "vanilla-calendar-column_year",
43      header: "vanilla-calendar-header",
44      headerContent: "vanilla-calendar-header__content",
45      month: "vanilla-calendar-month",
46      monthDisabled: "vanilla-calendar-month_disabled",
47      year: "vanilla-calendar-year",
48      yearDisabled: "vanilla-calendar-year_disabled",
49      arrow: "vanilla-calendar-arrow",
50      arrowPrev: "vanilla-calendar-arrow_prev",
51      arrowNext: "vanilla-calendar-arrow_next",
52      wrapper: "vanilla-calendar-wrapper",
53      content: "vanilla-calendar-content",
54      week: "vanilla-calendar-week",
55      weekDay: "vanilla-calendar-week__day",
56      weekDayWeekend: "vanilla-calendar-week__day_weekend",
57      days: "vanilla-calendar-days",
58      daysSelecting: "vanilla-calendar-days_selecting",
59      months: "vanilla-calendar-months",
60      monthsSelecting: "vanilla-calendar-months_selecting",
61      monthsMonth: "vanilla-calendar-months__month",
62      monthsMonthSelected: "vanilla-calendar-months__month_selected",
63      monthsMonthDisabled: "vanilla-calendar-months__month_disabled",
64      years: "vanilla-calendar-years",
65      yearsSelecting: "vanilla-calendar-years_selecting",
66      yearsYear: "vanilla-calendar-years__year",
67      yearsYearSelected: "vanilla-calendar-years__year_selected",
68      yearsYearDisabled: "vanilla-calendar-years__year_disabled",
69      time: "vanilla-calendar-time",
70      timeContent: "vanilla-calendar-time__content",
71      timeHours: "vanilla-calendar-time__hours",
72      timeMinutes: "vanilla-calendar-time__minutes",
73      timeKeeping: "vanilla-calendar-time__keeping",
74      timeRanges: "vanilla-calendar-time__ranges",
75      timeRange: "vanilla-calendar-time__range",
76      day: "vanilla-calendar-day",
77      dayHoverFirst: "vanilla-calendar-day_hover-first",
78      dayHoverLast: "vanilla-calendar-day_hover-last",
79      dayHoverIntermediate: "vanilla-calendar-day_hover-intermediate",
80      daySelectedFirst: "vanilla-calendar-day_selected-first",
81      daySelectedLast: "vanilla-calendar-day_selected-last",
82      daySelectedIntermediate: "vanilla-calendar-day_selected-intermediate",
83      dayPopup: "vanilla-calendar-day__popup",
84      dayBtn: "vanilla-calendar-day__btn",
85      dayBtnPrev: "vanilla-calendar-day__btn_prev",
86      dayBtnNext: "vanilla-calendar-day__btn_next",
87      dayBtnToday: "vanilla-calendar-day__btn_today",
88      dayBtnSelected: "vanilla-calendar-day__btn_selected",
89      dayBtnHover: "vanilla-calendar-day__btn_hover",
90      dayBtnDisabled: "vanilla-calendar-day__btn_disabled",
91      dayBtnWeekend: "vanilla-calendar-day__btn_weekend",
92      dayBtnHoliday: "vanilla-calendar-day__btn_holiday",
93      weekNumbers: "vanilla-calendar-week-numbers",
94      weekNumbersTitle: "vanilla-calendar-week-numbers__title",
95      weekNumbersContent: "vanilla-calendar-week-numbers__content",
96      weekNumber: "vanilla-calendar-week-number",
97      isFocus: "vanilla-calendar-is-focus",
98    },
99    d = (e) =>
100      `<div class="${e.controls}"><#ArrowPrev /><#ArrowNext /></div><div class="${e.grid}"><#Multiple><div class="${e.column}"><div class="${e.header}"><div class="${e.headerContent}"><#Month /><#Year /></div></div><div class="${e.wrapper}"><#WeekNumbers /><div class="${e.content}"><#Week /><#Days /></div></div></div><#/Multiple></div><#ControlTime />`,
101    o = (e) =>
102      `<div class="${e.header}"><div class="${e.headerContent}"><#Month /><#Year /></div></div><div class="${e.wrapper}"><div class="${e.content}"><#Months /></div></div>`,
103    c = (e) =>
104      `<div class="${e.header}"><#ArrowPrev /><div class="${e.headerContent}"><#Month /><#Year /></div><#ArrowNext /></div><div class="${e.wrapper}"><div class="${e.content}"><#Years /></div></div>`;
105  class u {
106    constructor() {
107      var e;
108      i(this, "isInit", !1),
109        i(this, "isInputInit", !1),
110        i(this, "input", !1),
111        i(this, "type", "default"),
112        i(this, "months", 2),
113        i(this, "jumpMonths", 1),
114        i(this, "jumpToSelectedDate", !1),
115        i(this, "toggleSelected", !0),
116        i(this, "date", {
117          min: "1970-01-01",
118          max: "2470-12-31",
119          today: new Date(),
120        }),
121        i(this, "settings", {
122          lang: "en",
123          iso8601: !0,
124          range: {
125            min: void 0,
126            max: void 0,
127            disablePast: !1,
128            disableGaps: !1,
129            edgesOnly: !1,
130            disableAllDays: !1,
131            disableWeekday: void 0,
132            disabled: void 0,
133            enabled: void 0,
134          },
135          selection: {
136            day: "single",
137            month: !0,
138            year: !0,
139            time: !1,
140            controlTime: "all",
141            stepHours: 1,
142            stepMinutes: 1,
143            cancelableDay: !0,
144          },
145          selected: {
146            dates: void 0,
147            month: void 0,
148            year: void 0,
149            holidays: void 0,
150            time: void 0,
151          },
152          visibility: {
153            theme: "system",
154            themeDetect: "html[data-theme]",
155            monthShort: !0,
156            weekNumbers: !1,
157            weekend: !0,
158            today: !0,
159            disabled: !1,
160            daysOutside: !0,
161            positionToInput: "left",
162          },
163        }),
164        i(this, "locale", { months: [], weekday: [] }),
165        i(this, "sanitizer", (e) => e),
166        i(this, "actions", {
167          clickDay: null,
168          clickWeekNumber: null,
169          clickMonth: null,
170          clickYear: null,
171          clickArrow: null,
172          changeTime: null,
173          changeToInput: null,
174          getDays: null,
175          getMonths: null,
176          getYears: null,
177          initCalendar: null,
178          updateCalendar: null,
179          destroyCalendar: null,
180          showCalendar: null,
181          hideCalendar: null,
182        }),
183        i(this, "popups", {}),
184        i(this, "CSSClasses", l({}, r)),
185        i(this, "DOMTemplates", {
186          default:
187            ((e = this.CSSClasses),
188            `<div class="${e.header}"><#ArrowPrev /><div class="${e.headerContent}"><#Month /><#Year /></div><#ArrowNext /></div><div class="${e.wrapper}"><#WeekNumbers /><div class="${e.content}"><#Week /><#Days /></div></div><#ControlTime />`),
189          multiple: d(this.CSSClasses),
190          month: o(this.CSSClasses),
191          year: c(this.CSSClasses),
192        }),
193        i(this, "HTMLElement"),
194        i(this, "HTMLOriginalElement"),
195        i(this, "HTMLInputElement"),
196        i(this, "rangeMin"),
197        i(this, "rangeMax"),
198        i(this, "rangeDisabled"),
199        i(this, "rangeEnabled"),
200        i(this, "selectedDates"),
201        i(this, "selectedHolidays"),
202        i(this, "selectedMonth"),
203        i(this, "selectedYear"),
204        i(this, "selectedHours"),
205        i(this, "selectedMinutes"),
206        i(this, "selectedKeeping"),
207        i(this, "selectedTime"),
208        i(this, "currentType"),
209        i(this, "correctMonths"),
210        i(this, "viewYear"),
211        i(this, "dateMin"),
212        i(this, "dateMax");
213    }
214  }
215  const m = (e) =>
216      `${e.getFullYear()}-${String(e.getMonth() + 1).padStart(2, "0")}-${String(
217        e.getDate()
218      ).padStart(2, "0")}`,
219    g = (e) => new Date(`${e}T00:00:00`),
220    h = (e) =>
221      e.reduce((e, t) => {
222        if (t instanceof Date || "number" == typeof t) {
223          const n = t instanceof Date ? t : new Date(t);
224          e.push(n.toISOString().substring(0, 10));
225        } else
226          t.match(/^(\d{4}-\d{2}-\d{2})$/g)
227            ? e.push(t)
228            : t.replace(
229                /(\d{4}-\d{2}-\d{2}).*?(\d{4}-\d{2}-\d{2})/g,
230                (t, n, a) => {
231                  const s = g(n),
232                    l = g(a),
233                    i = new Date(s.getTime());
234                  for (; i <= l; i.setDate(i.getDate() + 1)) e.push(m(i));
235                  return t;
236                }
237              );
238        return e;
239      }, []),
240    y = () => {
241      const e = new Date();
242      return new Date(e.getTime() - 6e4 * e.getTimezoneOffset())
243        .toISOString()
244        .substring(0, 10);
245    },
246    v = (e) =>
247      e
248        ? {
249            0: "12",
250            13: "01",
251            14: "02",
252            15: "03",
253            16: "04",
254            17: "05",
255            18: "06",
256            19: "07",
257            20: "08",
258            21: "09",
259            22: "10",
260            23: "11",
261          }[Number(e)] || String(e)
262        : "",
263    p = (e) =>
264      `${e} is not found, check the first argument passed to new VanillaCalendar.`,
265    S =
266      'The calendar has not been initialized, please initialize it using the "init()" method first.',
267    M =
268      'You specified "define" for "settings.lang" but did not provide the required values for "locale.weekday" or "locale.months".',
269    C = 'Incorrect name of theme in "settings.visibility.theme".',
270    b = "The value of the time property can be: false, true, 12 or 24.",
271    f = (e) => {
272      (e.currentType = e.type),
273        ((e) => {
274          var t;
275          if (
276            e.jumpToSelectedDate &&
277            (null == (t = e.settings.selected.dates) ? void 0 : t.length) &&
278            void 0 === e.settings.selected.month &&
279            void 0 === e.settings.selected.year
280          ) {
281            const t = g(h(e.settings.selected.dates)[0]);
282            (e.settings.selected.month = t.getMonth()),
283              (e.settings.selected.year = t.getFullYear());
284          }
285          const n =
286              void 0 !== e.settings.selected.month &&
287              Number(e.settings.selected.month) >= 0 &&
288              Number(e.settings.selected.month) < 12,
289            a =
290              void 0 !== e.settings.selected.year &&
291              Number(e.settings.selected.year) >= 0 &&
292              Number(e.settings.selected.year) <= 9999;
293          (e.selectedMonth = n
294            ? Number(e.settings.selected.month)
295            : e.date.today.getMonth()),
296            (e.selectedYear = a
297              ? Number(e.settings.selected.year)
298              : e.date.today.getFullYear()),
299            (e.viewYear = e.selectedYear);
300        })(e),
301        ((e) => {
302          var t, n, a;
303          "today" === e.date.min && (e.date.min = y()),
304            "today" === e.date.max && (e.date.max = y()),
305            "today" === e.settings.range.min && (e.settings.range.min = y()),
306            "today" === e.settings.range.max && (e.settings.range.max = y()),
307            (e.settings.range.min = e.settings.range.min
308              ? g(e.date.min) >= g(e.settings.range.min)
309                ? e.date.min
310                : e.settings.range.min
311              : e.date.min),
312            (e.settings.range.max = e.settings.range.max
313              ? g(e.date.max) <= g(e.settings.range.max)
314                ? e.date.max
315                : e.settings.range.max
316              : e.date.max);
317          const s =
318            e.settings.range.disablePast &&
319            !e.settings.range.disableAllDays &&
320            g(e.settings.range.min) < e.date.today;
321          (e.rangeMin =
322            s || e.settings.range.disableAllDays
323              ? m(e.date.today)
324              : e.settings.range.min),
325            (e.rangeMax = e.settings.range.disableAllDays
326              ? m(e.date.today)
327              : e.settings.range.max),
328            (e.rangeDisabled =
329              e.settings.range.disabled && !e.settings.range.disableAllDays
330                ? h(e.settings.range.disabled)
331                : e.settings.range.disableAllDays
332                ? [e.rangeMin]
333                : []),
334            e.rangeDisabled.length > 1 &&
335              e.rangeDisabled.sort((e, t) => +new Date(e) - +new Date(t)),
336            (e.rangeEnabled = e.settings.range.enabled
337              ? h(e.settings.range.enabled)
338              : []),
339            (null == (t = e.rangeEnabled) ? void 0 : t[0]) &&
340              (null == (n = e.rangeDisabled) ? void 0 : n[0]) &&
341              (e.rangeDisabled = e.rangeDisabled.filter(
342                (t) => !e.rangeEnabled.includes(t)
343              )),
344            e.rangeEnabled.length > 1 &&
345              e.rangeEnabled.sort((e, t) => +new Date(e) - +new Date(t)),
346            (null == (a = e.rangeEnabled) ? void 0 : a[0]) &&
347              e.settings.range.disableAllDays &&
348              ((e.rangeMin = e.rangeEnabled[0]),
349              (e.rangeMax = e.rangeEnabled[e.rangeEnabled.length - 1]));
350        })(e),
351        ((e) => {
352          var t, n;
353          (e.selectedDates = (
354            null == (t = e.settings.selected.dates) ? void 0 : t[0]
355          )
356            ? h(e.settings.selected.dates)
357            : []),
358            (e.selectedHolidays = (
359              null == (n = e.settings.selected.holidays) ? void 0 : n[0]
360            )
361              ? h(e.settings.selected.holidays)
362              : []);
363        })(e),
364        ((e) => {
365          (e.dateMin = e.settings.visibility.disabled
366            ? g(e.date.min)
367            : g(e.rangeMin)),
368            (e.dateMax = e.settings.visibility.disabled
369              ? g(e.date.max)
370              : g(e.rangeMax));
371        })(e),
372        ((e) => {
373          const t =
374            !0 === e.settings.selection.time ||
375            12 === e.settings.selection.time;
376          if (t || 24 === e.settings.selection.time) {
377            let n = !1;
378            if ("string" == typeof e.settings.selected.time) {
379              const a = t
380                ? /^([0-9]|0[1-9]|1[0-2]):([0-5][0-9])|(AM|PM)/g
381                : /^([0-1]?[0-9]|2[0-3]):([0-5][0-9])/g;
382              e.settings.selected.time.replace(
383                a,
384                (a, s, l, i) => (
385                  s &&
386                    l &&
387                    ((n = !0), (e.selectedHours = s), (e.selectedMinutes = l)),
388                  i && t
389                    ? (e.selectedKeeping = i)
390                    : t && (e.selectedKeeping = "AM"),
391                  ""
392                )
393              );
394            }
395            !n && t
396              ? ((e.selectedHours = v(String(e.date.today.getHours()))),
397                (e.selectedMinutes = String(e.date.today.getMinutes())),
398                (e.selectedKeeping =
399                  Number(e.date.today.getHours()) >= 12 ? "PM" : "AM"))
400              : n ||
401                ((e.selectedHours = String(e.date.today.getHours())),
402                (e.selectedMinutes = String(e.date.today.getMinutes()))),
403              (e.selectedHours =
404                Number(e.selectedHours) < 10
405                  ? `0${Number(e.selectedHours)}`
406                  : `${e.selectedHours}`),
407              (e.selectedMinutes =
408                Number(e.selectedMinutes) < 10
409                  ? `0${Number(e.selectedMinutes)}`
410                  : `${e.selectedMinutes}`),
411              (e.selectedTime = `${e.selectedHours}:${e.selectedMinutes}${
412                e.selectedKeeping ? ` ${e.selectedKeeping}` : ""
413              }`);
414          } else if (e.settings.selection.time) throw new Error(b);
415        })(e),
416        ((e) => {
417          e.correctMonths =
418            "multiple" === e.type
419              ? 1 === e.months
420                ? 2
421                : e.months > 12
422                ? 12
423                : e.months
424              : 1;
425        })(e);
426    },
427    w = ({ arrowPrev: e, arrowNext: t, isPrevHidden: n, isNextHidden: a }) => {
428      (e.style.visibility = n ? "hidden" : ""),
429        (t.style.visibility = a ? "hidden" : "");
430    },
431    D = (e) => {
432      var t, n;
433      if ("month" === e.currentType) return;
434      const a =
435          null == (t = e.HTMLElement)
436            ? void 0
437            : t.querySelector(`.${e.CSSClasses.arrowPrev}`),
438        s =
439          null == (n = e.HTMLElement)
440            ? void 0
441            : n.querySelector(`.${e.CSSClasses.arrowNext}`);
442      if (!a || !s) return;
443      ({
444        default: () => {
445          const t = g(m(new Date(e.selectedYear, e.selectedMonth, 1))),
446            n = new Date(t.getTime()),
447            l = new Date(t.getTime());
448          n.setMonth(n.getMonth() - e.jumpMonths),
449            l.setMonth(l.getMonth() + e.jumpMonths),
450            e.settings.selection.year ||
451              (e.dateMin.setFullYear(t.getFullYear()),
452              e.dateMax.setFullYear(t.getFullYear()));
453          const i =
454              !e.settings.selection.month ||
455              n.getFullYear() < e.dateMin.getFullYear() ||
456              (n.getFullYear() === e.dateMin.getFullYear() &&
457                n.getMonth() < e.dateMin.getMonth()),
458            r =
459              !e.settings.selection.month ||
460              l.getFullYear() > e.dateMax.getFullYear() ||
461              (l.getFullYear() === e.dateMax.getFullYear() &&
462                l.getMonth() > e.dateMax.getMonth());
463          w({ arrowPrev: a, arrowNext: s, isPrevHidden: i, isNextHidden: r });
464        },
465        year: () => {
466          w({
467            arrowPrev: a,
468            arrowNext: s,
469            isPrevHidden:
470              e.dateMin.getFullYear() &&
471              e.viewYear - 7 <= e.dateMin.getFullYear(),
472            isNextHidden:
473              e.dateMax.getFullYear() &&
474              e.viewYear + 7 >= e.dateMax.getFullYear(),
475          });
476        },
477      })["multiple" === e.currentType ? "default" : e.currentType]();
478    },
479    T = (e, t) => {
480      if (!e) return null;
481      const n = g(e),
482        a = t ? n.getDay() || 7 : n.getDay();
483      n.setDate(n.getDate() + 4 - a);
484      const s = new Date(n.getFullYear(), 0, 1),
485        l = Math.ceil(((+n - +s) / 864e5 + 1) / 7);
486      return { year: n.getFullYear(), week: l };
487    };
488  function L(e) {
489    if (!e || !e.getBoundingClientRect)
490      return { top: 0, bottom: 0, left: 0, right: 0 };
491    const t = e.getBoundingClientRect(),
492      n = document.documentElement;
493    return {
494      bottom: t.bottom,
495      right: t.right,
496      top: t.top + window.scrollY - n.clientTop,
497      left: t.left + window.scrollX - n.clientLeft,
498    };
499  }
500  function E() {
501    return {
502      vw: Math.max(
503        document.documentElement.clientWidth || 0,
504        window.innerWidth || 0
505      ),
506      vh: Math.max(
507        document.documentElement.clientHeight || 0,
508        window.innerHeight || 0
509      ),
510    };
511  }
512  function $(e) {
513    const { top: t, left: n } = {
514        left: window.scrollX || document.documentElement.scrollLeft || 0,
515        top: window.scrollY || document.documentElement.scrollTop || 0,
516      },
517      { top: a, left: s } = L(e),
518      { vh: l, vw: i } = E(),
519      r = a - t,
520      d = s - n;
521    return {
522      top: r,
523      bottom: l - (r + e.clientHeight),
524      left: d,
525      right: i - (d + e.clientWidth),
526    };
527  }
528  function H(e, t, n = 5) {
529    const a = { top: !0, bottom: !0, left: !0, right: !0 },
530      s = [];
531    if (!t || !e) return { canShow: a, parentPositions: s };
532    const { bottom: l, top: i } = $(e),
533      { top: r, left: d } = L(e),
534      { height: o, width: c } = t.getBoundingClientRect(),
535      { vh: u, vw: m } = E(),
536      g = m / 2,
537      h = u / 2;
538    return (
539      [
540        { condition: r < h, position: "top" },
541        { condition: r > h, position: "bottom" },
542        { condition: d < g, position: "left" },
543        { condition: d > g, position: "right" },
544      ].forEach(({ condition: e, position: t }) => {
545        e && s.push(t);
546      }),
547      Object.assign(a, {
548        top: o <= i - n,
549        bottom: o <= l - n,
550        left: c <= d,
551        right: c <= m - d,
552      }),
553      { canShow: a, parentPositions: s }
554    );
555  }
556  const k = (e, t, n, a) => {
557      if (e) {
558        const s =
559            "auto" === n
560              ? (function (e, t) {
561                  const n = "left";
562                  if (!t || !e) return n;
563                  const { canShow: a, parentPositions: s } = H(e, t),
564                    l = a.left && a.right;
565                  return (
566                    (l && a.bottom
567                      ? "center"
568                      : l && a.top
569                      ? ["top", "center"]
570                      : Array.isArray(s)
571                      ? ["bottom" === s[0] ? "top" : "bottom", ...s.slice(1)]
572                      : s) || n
573                  );
574                })(e, t)
575              : n,
576          l = {
577            top: -t.offsetHeight,
578            bottom: e.offsetHeight,
579            left: 0,
580            center: e.offsetWidth / 2 - t.offsetWidth / 2,
581            right: e.offsetWidth - t.offsetWidth,
582          },
583          i = Array.isArray(s) ? s[0] : "bottom",
584          r = Array.isArray(s) ? s[1] : s;
585        "bottom" === i
586          ? (t.classList.remove(a.calendarToInputTop),
587            t.classList.add(a.calendarToInputBottom))
588          : (t.classList.remove(a.calendarToInputBottom),
589            t.classList.add(a.calendarToInputTop));
590        const { top: d, left: o } = L(e),
591          c = d + l[i],
592          u = o + l[r];
593        Object.assign(t.style, { left: `${u}px`, top: `${c}px` });
594      }
595    },
596    x = (e, t) => {
597      var n;
598      e.popups &&
599        (null == (n = Object.entries(e.popups)) ||
600          n.forEach(([n, a]) =>
601            ((e, t, n, a) => {
602              const s = e.CSSClasses.dayPopup,
603                l = a.querySelector(`[data-calendar-day="${t}"]`);
604              if (
605                l &&
606                ((null == n ? void 0 : n.modifier) &&
607                  l.classList.add(...n.modifier.trim().split(" ")),
608                null == n ? void 0 : n.html)
609              ) {
610                const t = l.parentElement,
611                  a = document.createElement("div");
612                (a.className = s),
613                  (a.innerHTML = e.sanitizer(n.html)),
614                  t.appendChild(a),
615                  setTimeout(() => {
616                    if (a) {
617                      const { canShow: e } = H(t, a),
618                        n = 5;
619                      let s = t.offsetHeight,
620                        l = 0;
621                      e.bottom || (s = -a.offsetHeight - n),
622                        e.left &&
623                          !e.right &&
624                          (l = t.offsetWidth - a.offsetWidth / 2),
625                        !e.left && e.right && (l = a.offsetWidth / 2),
626                        Object.assign(a.style, {
627                          left: `${l}px`,
628                          top: `${s}px`,
629                        });
630                    }
631                  });
632              }
633            })(e, n, a, t)
634          ));
635    },
636    Y = (e, t, n, a, s) => {
637      const l = t[n].querySelector(`.${e.CSSClasses.dayBtn}`),
638        i = T(null == l ? void 0 : l.dataset.calendarDay, e.settings.iso8601);
639      if (!i) return;
640      const r = a.cloneNode(!0);
641      (r.innerText = String(i.week)),
642        (r.dataset.calendarYearWeek = String(i.year)),
643        s.appendChild(r);
644    },
645    _ = (e, t, n, a, s, l, i, r) => {
646      const d = document.createElement("div");
647      d.className = e.CSSClasses.day;
648      const o = document.createElement("button");
649      (o.className = `${e.CSSClasses.dayBtn}${r ? ` ${r}` : ""}`),
650        (o.type = "button"),
651        (o.innerText = String(a)),
652        (o.dataset.calendarDay = l);
653      e.settings.visibility.weekNumbers &&
654        (() => {
655          const t = T(l, e.settings.iso8601);
656          t && (o.dataset.calendarWeekNumber = String(t.week));
657        })(),
658        i
659          ? e.settings.visibility.daysOutside && d.appendChild(o)
660          : d.appendChild(o),
661        ((e, t, n) => {
662          var a, s, l, i, r;
663          const d =
664              null == (a = e.settings.range.disableWeekday)
665                ? void 0
666                : a.includes(n),
667            o =
668              e.settings.range.disableAllDays &&
669              !!(null == (s = e.rangeEnabled) ? void 0 : s[0]);
670          (!d && !o) ||
671            (null == (l = e.rangeEnabled) ? void 0 : l.includes(t)) ||
672            (null == (i = e.rangeDisabled) ? void 0 : i.includes(t)) ||
673            (e.rangeDisabled.push(t),
674            null == (r = e.rangeDisabled) ||
675              r.sort((e, t) => +new Date(e) - +new Date(t)));
676        })(e, l, s),
677        ((e, t, n, a, s, l, i) => {
678          var r, d, o;
679          if (
680            ((g(e.rangeMin) > g(l) ||
681              g(e.rangeMax) < g(l) ||
682              (null == (r = e.rangeDisabled) ? void 0 : r.includes(l)) ||
683              (!e.settings.selection.month && i) ||
684              (!e.settings.selection.year && g(l).getFullYear() !== t)) &&
685              (a.classList.add(e.CSSClasses.dayBtnDisabled), (a.tabIndex = -1)),
686            e.settings.visibility.today &&
687              m(e.date.today) === l &&
688              a.classList.add(e.CSSClasses.dayBtnToday),
689            !e.settings.visibility.weekend ||
690              (0 !== s && 6 !== s) ||
691              a.classList.add(e.CSSClasses.dayBtnWeekend),
692            (null == (d = e.selectedHolidays) ? void 0 : d.includes(l)) &&
693              a.classList.add(e.CSSClasses.dayBtnHoliday),
694            (null == (o = e.selectedDates) ? void 0 : o.includes(l)) &&
695              (a.classList.add(e.CSSClasses.dayBtnSelected),
696              e.selectedDates.length > 1 &&
697                "multiple-ranged" === e.settings.selection.day &&
698                (e.selectedDates[0] === l &&
699                  n.classList.add(e.CSSClasses.daySelectedFirst),
700                e.selectedDates[e.selectedDates.length - 1] === l &&
701                  n.classList.add(e.CSSClasses.daySelectedLast),
702                e.selectedDates[0] !== l &&
703                  e.selectedDates[e.selectedDates.length - 1] !== l &&
704                  n.classList.add(e.CSSClasses.daySelectedIntermediate))),
705            e.settings.range.edgesOnly &&
706              e.selectedDates.length > 1 &&
707              "multiple-ranged" === e.settings.selection.day)
708          ) {
709            const t = +new Date(e.selectedDates[0]),
710              s = +new Date(e.selectedDates[e.selectedDates.length - 1]),
711              i = +new Date(l);
712            i > t &&
713              i < s &&
714              (a.classList.add(e.CSSClasses.dayBtnSelected),
715              n.classList.add(e.CSSClasses.daySelectedIntermediate));
716          }
717        })(e, t, d, o, s, l, i),
718        n.appendChild(d),
719        e.actions.getDays && e.actions.getDays(a, l, d, o, e);
720    },
721    N = (e) => {
722      const t = e.HTMLElement.querySelectorAll(`.${e.CSSClasses.days}`),
723        n = e.HTMLElement.querySelectorAll(`.${e.CSSClasses.weekNumbers}`),
724        a = new Date(e.selectedYear, e.selectedMonth, 1);
725      t.forEach((t, s) => {
726        const l = new Date(a);
727        l.setMonth(l.getMonth() + s);
728        const i = l.getMonth(),
729          r = l.getFullYear(),
730          d = new Date(r, i, 1),
731          o = new Date(r, i + 1, 0).getDate(),
732          c = e.settings.iso8601
733            ? (0 !== d.getDay() ? d.getDay() : 7) - 1
734            : d.getDay();
735        e.settings.selection.day && t.classList.add(e.CSSClasses.daysSelecting),
736          (t.textContent = ""),
737          ((e, t, n, a, s) => {
738            let l = new Date(n, a, 0).getDate() - (s - 1);
739            const i = 0 === a ? n - 1 : n,
740              r = 0 === a ? 12 : a < 10 ? `0${a}` : a;
741            for (let a = s; a > 0; a--, l++) {
742              const a = `${i}-${r}-${l}`,
743                s = g(a).getDay();
744              _(e, n, t, l, s, a, !0, e.CSSClasses.dayBtnPrev);
745            }
746          })(e, t, r, i, c),
747          ((e, t, n, a, s) => {
748            for (let l = 1; l <= n; l++) {
749              const n = new Date(a, s, l),
750                i = m(n),
751                r = n.getDay();
752              _(e, a, t, l, r, i, !1, null);
753            }
754          })(e, t, o, r, i),
755          ((e, t, n, a, s, l) => {
756            const i = l + n,
757              r = 7 * Math.ceil(i / 7) - i,
758              d = s + 1 === 12 ? a + 1 : a,
759              o = s + 1 === 12 ? "01" : s + 2 < 10 ? `0${s + 2}` : s + 2;
760            for (let n = 1; n <= r; n++) {
761              const s = `${d}-${o}-${n < 10 ? `0${n}` : String(n)}`,
762                l = g(s).getDay();
763              _(e, a, t, n, l, s, !0, e.CSSClasses.dayBtnNext);
764            }
765          })(e, t, o, r, i, c),
766          ((e, t, n, a, s) => {
767            if (!e.settings.visibility.weekNumbers) return;
768            a.textContent = "";
769            const l = document.createElement("b");
770            (l.className = e.CSSClasses.weekNumbersTitle),
771              (l.innerText = "#"),
772              a.appendChild(l);
773            const i = document.createElement("div");
774            (i.className = e.CSSClasses.weekNumbersContent), a.appendChild(i);
775            const r = document.createElement("button");
776            (r.type = "button"), (r.className = e.CSSClasses.weekNumber);
777            const d = s.querySelectorAll(`.${e.CSSClasses.day}`),
778              o = Math.ceil((t + n) / 7);
779            for (let t = 0; t < o; t++) Y(e, d, 0 === t ? 6 : 7 * t, r, i);
780          })(e, c, o, n[s], t),
781          x(e, t);
782      });
783    },
784    A = (e) => {
785      var t, n;
786      const a =
787          null == (t = e.HTMLElement)
788            ? void 0
789            : t.querySelectorAll("[data-calendar-selected-month]"),
790        s =
791          null == (n = e.HTMLElement)
792            ? void 0
793            : n.querySelectorAll("[data-calendar-selected-year]");
794      if (!(null == a ? void 0 : a[0]) && (null == s ? void 0 : s[0])) return;
795      const l = new Date(e.selectedYear, e.selectedMonth, 1);
796      null == a ||
797        a.forEach((t, n) =>
798          ((e, t, n, a) => {
799            const s = new Date(a.setMonth(e.selectedMonth + n)).getMonth(),
800              l =
801                !1 === e.settings.selection.month ||
802                "only-arrows" === e.settings.selection.month;
803            (t.tabIndex = l ? -1 : 0),
804              t.classList.toggle(e.CSSClasses.monthDisabled, l),
805              t.setAttribute("data-calendar-selected-month", String(s)),
806              (t.innerText = e.locale.months[s]);
807          })(e, t, n, l)
808        ),
809        null == s ||
810          s.forEach((t, n) =>
811            ((e, t, n, a) => {
812              const s = new Date(
813                  a.setFullYear(e.selectedYear, e.selectedMonth + n)
814                ).getFullYear(),
815                l =
816                  !1 === e.settings.selection.year ||
817                  "only-arrows" === e.settings.selection.year;
818              (t.tabIndex = l ? -1 : 0),
819                t.classList.toggle(e.CSSClasses.yearDisabled, l),
820                t.setAttribute("data-calendar-selected-year", String(s)),
821                (t.innerText = String(s));
822            })(e, t, n, l)
823          );
824    },
825    I = (e, t) => {
826      const n = g(m(new Date(e.selectedYear, e.selectedMonth, 1)));
827      ({
828        prev: () => n.setMonth(n.getMonth() - e.jumpMonths),
829        next: () => n.setMonth(n.getMonth() + e.jumpMonths),
830      })[t](),
831        ([e.selectedMonth, e.selectedYear] = [n.getMonth(), n.getFullYear()]),
832        A(e),
833        D(e),
834        N(e);
835    },
836    P = Object.freeze(
837      Object.defineProperty(
838        {
839          __proto__: null,
840          ArrowNext: (e) =>
841            `<button type="button"class="${e.CSSClasses.arrow} ${e.CSSClasses.arrowNext}"data-calendar-arrow="next"></button>`,
842          ArrowPrev: (e) =>
843            `<button type="button"class="${e.CSSClasses.arrow} ${e.CSSClasses.arrowPrev}"data-calendar-arrow="prev"></button>`,
844          ControlTime: (e) =>
845            e.settings.selection.time
846              ? `<div class="${e.CSSClasses.time}"></div>`
847              : "",
848          Days: (e) => `<div class="${e.CSSClasses.days}"></div>`,
849          Month: (e) =>
850            `<button type="button"class="${e.CSSClasses.month}"data-calendar-selected-month></button>`,
851          Months: (e) => `<div class="${e.CSSClasses.months}"></div>`,
852          Week: (e) => `<div class="${e.CSSClasses.week}"></div>`,
853          WeekNumbers: (e) =>
854            e.settings.visibility.weekNumbers
855              ? `<div class="${e.CSSClasses.weekNumbers}"></div>`
856              : "",
857          Year: (e) =>
858            `<button type="button"class="${e.CSSClasses.year}"data-calendar-selected-year></button>`,
859          Years: (e) => `<div class="${e.CSSClasses.years}"></div>`,
860        },
861        Symbol.toStringTag,
862        { value: "Module" }
863      )
864    ),
865    F = (e, t) =>
866      t
867        .replace(/[\n\t]/g, "")
868        .replace(/<#(?!\/?Multiple)(.*?)>/g, (t, n) => {
869          const a = ((s = n.replace(/[/\s\n\t]/g, "")), P[s]);
870          var s;
871          const l = a ? a(e) : "";
872          return e.sanitizer(l);
873        })
874        .replace(/[\n\t]/g, ""),
875    q = (e, t) => {
876      const {
877          HTMLElement: n,
878          CSSClasses: a,
879          DOMTemplates: s,
880          type: l,
881          currentType: i,
882          correctMonths: r,
883        } = e,
884        d = (s, l) => {
885          if (!t) return;
886          const i = n.querySelector(`.${a.controls}`);
887          i && n.removeChild(i);
888          n.querySelector(`.${a.grid}`).classList.add(a.gridDisabled);
889          const r = t.closest(`.${a.column}`);
890          r.classList.add(s), (r.innerHTML = F(e, l));
891        },
892        o = {
893          default: () => {
894            n.classList.add(a.calendarDefault),
895              n.classList.remove(a.calendarMonth, a.calendarYear),
896              (n.innerHTML = F(e, s.default));
897          },
898          multiple: () => {
899            r &&
900              (n.classList.add(a.calendarMultiple),
901              n.classList.remove(a.calendarMonth, a.calendarYear),
902              (n.innerHTML = ((e, t) =>
903                t
904                  .replace(/<#Multiple>(.*?)<#\/Multiple>/g, (t, n) => {
905                    let a = "";
906                    for (let t = 0; t < e.correctMonths; t++) a += n;
907                    return e.sanitizer(a);
908                  })
909                  .replace(/[\n\t]/g, ""))(e, F(e, s.multiple))));
910          },
911          month: () => {
912            "multiple" !== l
913              ? (n.classList.add(a.calendarMonth),
914                n.classList.remove(a.calendarDefault, a.calendarYear),
915                (n.innerHTML = F(e, s.month)))
916              : d(a.columnMonth, s.month);
917          },
918          year: () => {
919            "multiple" !== l
920              ? (n.classList.add(a.calendarYear),
921                n.classList.remove(a.calendarDefault, a.calendarMonth),
922                (n.innerHTML = F(e, s.year)))
923              : d(a.columnYear, s.year);
924          },
925        };
926      n.classList.add(a.calendar), o[i]();
927    },
928    B = (e, t, n, a, s) => {
929      const l = t.cloneNode(!1);
930      return (
931        (l.className = `${e.CSSClasses.yearsYear}${
932          n === s
933            ? ` ${e.CSSClasses.yearsYearSelected}`
934            : a
935            ? ` ${e.CSSClasses.yearsYearDisabled}`
936            : ""
937        }`),
938        (l.dataset.calendarYear = String(s)),
939        (l.title = String(s)),
940        (l.innerText = String(s)),
941        a && (l.tabIndex = -1),
942        l
943      );
944    },
945    W = (e, t) => {
946      const n = (null == t ? void 0 : t.dataset.calendarSelectedYear)
947        ? Number(null == t ? void 0 : t.dataset.calendarSelectedYear)
948        : e.selectedYear;
949      (e.currentType = "year"), q(e, t), A(e), D(e);
950      const a = e.HTMLElement.querySelector(`.${e.CSSClasses.years}`);
951      if (!e.settings.selection.year || !a) return;
952      a.classList.add(e.CSSClasses.yearsSelecting);
953      const s = "multiple" !== e.type || e.selectedYear === n ? 0 : 1,
954        l = document.createElement("button");
955      l.type = "button";
956      for (let t = e.viewYear - 7; t < e.viewYear + 8; t++) {
957        const i =
958            t < e.dateMin.getFullYear() + s || t > e.dateMax.getFullYear(),
959          r = B(e, l, n, i, t);
960        a.appendChild(r), e.actions.getYears && e.actions.getYears(t, r, e);
961      }
962    },
963    O = (e) =>
964      `${e.charAt(0).toUpperCase()}${e.substring(1, e.length)}`.replace(
965        /\./,
966        ""
967      ),
968    j = (e, t) => {
969      const n = new Date(`1978-01-0${t + 1}T00:00:00.000Z`).toLocaleString(
970        e.settings.lang,
971        { weekday: "short", timeZone: "UTC" }
972      );
973      e.locale.weekday.push(O(n));
974    },
975    K = (e, t) => {
976      const n = new Date(
977        `1978-${t + 1 <= 9 ? `0${t + 1}` : t + 1}-01T00:00:00.000Z`
978      ).toLocaleString(e.settings.lang, { month: "long", timeZone: "UTC" });
979      e.locale.months.push(O(n));
980    },
981    z = (e) => {
982      if ("multiple" !== e.type) return 0;
983      const t = e.HTMLElement.querySelectorAll(`.${e.CSSClasses.column}`),
984        n = Array.from(t).findIndex((t) =>
985          t.classList.contains(`${e.CSSClasses.columnMonth}`)
986        );
987      return n > 0 ? n : 0;
988    },
989    R = (e, t, n, a, s, l) => {
990      const i = t.cloneNode(!1);
991      return (
992        (i.className = `${e.CSSClasses.monthsMonth}${
993          n === l
994            ? ` ${e.CSSClasses.monthsMonthSelected}`
995            : s
996            ? ` ${e.CSSClasses.monthsMonthDisabled}`
997            : ""
998        }`),
999        (i.title = a),
1000        (i.innerText = `${
1001          e.settings.visibility.monthShort ? a.substring(0, 3) : a
1002        }`),
1003        (i.dataset.calendarMonth = String(l)),
1004        s && (i.tabIndex = -1),
1005        i
1006      );
1007    },
1008    G = (e, t) => {
1009      var n, a;
1010      const s = (null == t ? void 0 : t.dataset.calendarSelectedMonth)
1011          ? Number(t.dataset.calendarSelectedMonth)
1012          : e.selectedMonth,
1013        l =
1014          null ==
1015          (n = null == t ? void 0 : t.closest(`.${e.CSSClasses.column}`))
1016            ? void 0
1017            : n.querySelector(`.${e.CSSClasses.year}`),
1018        i = l ? Number(l.dataset.calendarSelectedYear) : e.selectedYear;
1019      (e.currentType = "month"), q(e, t), A(e);
1020      const r =
1021        null == (a = e.HTMLElement)
1022          ? void 0
1023          : a.querySelector(`.${e.CSSClasses.months}`);
1024      if (!e.settings.selection.month || !r) return;
1025      r.classList.add(e.CSSClasses.monthsSelecting);
1026      const d =
1027          e.jumpMonths > 1
1028            ? e.locale.months
1029                .map((t, n) => s - e.jumpMonths * n)
1030                .concat(e.locale.months.map((t, n) => s + e.jumpMonths * n))
1031                .filter((e) => e >= 0 && e <= 12)
1032            : Array.from(Array(12).keys()),
1033        o = document.createElement("button");
1034      o.type = "button";
1035      for (let t = 0; t < 12; t++) {
1036        const n = e.locale.months[t],
1037          a =
1038            (t < e.dateMin.getMonth() + z(e) && i <= e.dateMin.getFullYear()) ||
1039            (t > e.dateMax.getMonth() + z(e) && i >= e.dateMax.getFullYear()) ||
1040            (t !== s && !d.includes(t)),
1041          l = R(e, o, s, n, a, t);
1042        r.appendChild(l), e.actions.getMonths && e.actions.getMonths(t, l, e);
1043      }
1044    },
1045    Z = (e, t) =>
1046      e && t
1047        ? {
1048            0: { AM: "00", PM: "12" },
1049            1: { AM: "01", PM: "13" },
1050            2: { AM: "02", PM: "14" },
1051            3: { AM: "03", PM: "15" },
1052            4: { AM: "04", PM: "16" },
1053            5: { AM: "05", PM: "17" },
1054            6: { AM: "06", PM: "18" },
1055            7: { AM: "07", PM: "19" },
1056            8: { AM: "08", PM: "20" },
1057            9: { AM: "09", PM: "21" },
1058            10: { AM: "10", PM: "22" },
1059            11: { AM: "11", PM: "23" },
1060            12: { AM: "12", PM: "12" },
1061          }[Number(e)][t]
1062        : "",
1063    U = (e, t, n) => e.querySelector(`.${t}${n ? ` input[name="${n}"]` : ""}`),
1064    V = (e, t, n) => {
1065      e.addEventListener("mouseover", () => t.classList.add(n)),
1066        e.addEventListener("mouseout", () => t.classList.remove(n));
1067    },
1068    X = (e, t, n, a) => {
1069      ({
1070        hours: () => {
1071          e.selectedHours = n;
1072        },
1073        minutes: () => {
1074          e.selectedMinutes = n;
1075        },
1076      })[a](),
1077        (e.selectedTime = `${e.selectedHours}:${e.selectedMinutes}${
1078          e.selectedKeeping ? ` ${e.selectedKeeping}` : ""
1079        }`),
1080        e.actions.changeTime && e.actions.changeTime(t, e),
1081        e.input &&
1082          e.HTMLInputElement &&
1083          e.actions.changeToInput &&
1084          e.actions.changeToInput(t, e);
1085    },
1086    J = (e, t, n, a, s, l) => {
1087      t.addEventListener("input", (t) => {
1088        const i = t.target,
1089          r = Number(i.value),
1090          d = r < 10 ? `0${r}` : `${r}`;
1091        if ("hours" !== s || 12 !== l) return (n.value = d), void X(e, t, d, s);
1092        r < l && r > 0
1093          ? ((n.value = d),
1094            (e.selectedKeeping = "AM"),
1095            (a.innerText = e.selectedKeeping),
1096            X(e, t, d, s))
1097          : (0 === r
1098              ? ((e.selectedKeeping = "AM"), (a.innerText = "AM"))
1099              : ((e.selectedKeeping = "PM"), (a.innerText = "PM")),
1100            (n.value = v(i.value)),
1101            X(e, t, v(i.value), s));
1102      });
1103    },
1104    Q = (e, t, n, a, s, l) => {
1105      n.addEventListener("change", (n) => {
1106        const i = n.target,
1107          r = Number(i.value),
1108          d = r < 10 ? `0${r}` : `${r}`;
1109        "hours" === s && 12 === l
1110          ? i.value && r <= l && r > 0
1111            ? ((i.value = d),
1112              (t.value = Z(d, e.selectedKeeping)),
1113              X(e, n, d, s))
1114            : i.value && r < 24 && (r > l || 0 === r)
1115            ? (0 === r
1116                ? ((e.selectedKeeping = "AM"), (a.innerText = "AM"))
1117                : ((e.selectedKeeping = "PM"), (a.innerText = "PM")),
1118              (i.value = v(i.value)),
1119              (t.value = d),
1120              X(e, n, v(i.value), s))
1121            : (i.value = e.selectedHours)
1122          : i.value && r <= l && r >= 0
1123          ? ((i.value = d), (t.value = d), X(e, n, d, s))
1124          : "hours" === s
1125          ? (i.value = e.selectedHours)
1126          : "minutes" === s && (i.value = e.selectedMinutes);
1127      });
1128    },
1129    ee = (e, t, n) => {
1130      const a = 24 === n ? 23 : n || 12,
1131        s = U(t, e.CSSClasses.timeRange, "hours"),
1132        l = U(t, e.CSSClasses.timeRange, "minutes"),
1133        i = U(t, e.CSSClasses.timeHours, "hours"),
1134        r = U(t, e.CSSClasses.timeMinutes, "minutes"),
1135        d = t.querySelector(`.${e.CSSClasses.timeKeeping}`);
1136      V(s, i, e.CSSClasses.isFocus),
1137        V(l, r, e.CSSClasses.isFocus),
1138        J(e, s, i, d, "hours", a),
1139        J(e, l, r, d, "minutes", 0),
1140        Q(e, s, i, d, "hours", a),
1141        Q(e, l, r, d, "minutes", 59),
1142        d &&
1143          ((e, t, n) => {
1144            t.addEventListener("click", (a) => {
1145              (e.selectedKeeping = t.innerText.includes("AM") ? "PM" : "AM"),
1146                (t.innerText = e.selectedKeeping),
1147                (n.value = Z(e.selectedHours, e.selectedKeeping)),
1148                X(e, a, e.selectedHours, "hours");
1149            });
1150          })(e, d, s);
1151    },
1152    te = (e, t, n, a) =>
1153      `<label class="${t}"><input type="text"name="${e}"maxlength="2"value="${n}"${
1154        a ? "disabled" : ""
1155      }></label>`,
1156    ne = (e, t, n, a, s, l) =>
1157      `<label class="${t}"><input type="range"name="${e}"min="${n}"max="${a}"step="${s}"value="${l}"></label>`,
1158    ae = (e) => {
1159      const t = [...e.locale.weekday];
1160      if (!t[0]) return;
1161      e.settings.iso8601 && t.push(t.shift());
1162      e.HTMLElement.querySelectorAll(`.${e.CSSClasses.week}`).forEach((n) =>
1163        ((e, t, n) => {
1164          const a = document.createElement("b");
1165          t.textContent = "";
1166          for (let s = 0; s < n.length; s++) {
1167            const l = n[s],
1168              i = a.cloneNode(!0);
1169            (i.className = `${e.CSSClasses.weekDay}`),
1170              (i.className = `${e.CSSClasses.weekDay}${
1171                e.settings.visibility.weekend && e.settings.iso8601
1172                  ? 5 === s || 6 === s
1173                    ? ` ${e.CSSClasses.weekDayWeekend}`
1174                    : ""
1175                  : !e.settings.visibility.weekend ||
1176                    e.settings.iso8601 ||
1177                    (0 !== s && 6 !== s)
1178                  ? ""
1179                  : ` ${e.CSSClasses.weekDayWeekend}`
1180              }`),
1181              (i.innerText = `${l}`),
1182              t.appendChild(i);
1183          }
1184        })(e, n, t)
1185      );
1186    },
1187    se = ["light", "dark", "system"],
1188    le = {
1189      value: !1,
1190      set: () => {
1191        le.value = !0;
1192      },
1193      check: () => le.value,
1194    },
1195    ie = (e, t) =>
1196      se.find((n) => {
1197        var a;
1198        return (
1199          "system" !== n &&
1200          (null == (a = e.getAttribute(t)) ? void 0 : a.includes(n))
1201        );
1202      }),
1203    re = (e, t) => {
1204      e.dataset.calendarTheme = t;
1205    },
1206    de = (e, t) => {
1207      var n;
1208      if (
1209        ((n = t),
1210        re(e.HTMLElement, n.matches ? "dark" : "light"),
1211        "system" !== e.settings.visibility.theme || le.check())
1212      )
1213        return;
1214      const a = (t) => {
1215        const n = document.querySelectorAll(`.${e.CSSClasses.calendar}`);
1216        null == n || n.forEach((e) => re(e, t.matches ? "dark" : "light"));
1217      };
1218      t.addEventListener ? t.addEventListener("change", a) : t.addListener(a),
1219        le.set();
1220    },
1221    oe = (e, t) => {
1222      const n = e.settings.visibility.themeDetect
1223        ? document.querySelector(e.settings.visibility.themeDetect)
1224        : null;
1225      if (!n) return void de(e, t);
1226      const a = e.settings.visibility.themeDetect.replace(
1227          /^.*\[(.+)\]/g,
1228          (e, t) => t
1229        ),
1230        s = ie(n, a);
1231      s
1232        ? (re(e.HTMLElement, s),
1233          ((e, t, n) => {
1234            new MutationObserver((a) => {
1235              for (let s = 0; s < a.length; s++)
1236                if (a[s].attributeName === n) {
1237                  const a = ie(t, n);
1238                  a && re(e.HTMLElement, a);
1239                  break;
1240                }
1241            }).observe(t, { attributes: !0 });
1242          })(e, n, a))
1243        : de(e, t);
1244    },
1245    ce = (e) => {
1246      const t = {
1247        default: () => {
1248          ae(e), N(e);
1249        },
1250        multiple: () => {
1251          ae(e), N(e);
1252        },
1253        month: () => G(e),
1254        year: () => W(e),
1255      };
1256      ((e) => {
1257        if (!se.includes(e.settings.visibility.theme)) throw new Error(C);
1258        if ("not all" === window.matchMedia("(prefers-color-scheme)").media)
1259          return void re(e.HTMLElement, "light");
1260        ({
1261          light: () => re(e.HTMLElement, "light"),
1262          dark: () => re(e.HTMLElement, "dark"),
1263          system: () =>
1264            oe(e, window.matchMedia("(prefers-color-scheme: dark)")),
1265        })[e.settings.visibility.theme]();
1266      })(e),
1267        ((e) => {
1268          if (
1269            "define" !== e.settings.lang ||
1270            !e.locale.weekday[6] ||
1271            !e.locale.months[11]
1272          ) {
1273            if ("define" === e.settings.lang) throw new Error(M);
1274            (e.locale.weekday = []), (e.locale.months = []);
1275            for (let t = 0; t < 7; t++) j(e, t);
1276            for (let t = 0; t < 12; t++) K(e, t);
1277          }
1278        })(e),
1279        q(e),
1280        A(e),
1281        D(e),
1282        ((e) => {
1283          const t = e.HTMLElement.querySelector(`.${e.CSSClasses.time}`);
1284          if (!t) return;
1285          const n =
1286              !0 === e.settings.selection.time ? 12 : e.settings.selection.time,
1287            a = "range" === e.settings.selection.controlTime,
1288            [s, l] = [0, 23],
1289            [i, r] = [0, 59];
1290          (t.innerHTML = e.sanitizer(
1291            `<div class="${e.CSSClasses.timeContent}">${te(
1292              "hours",
1293              e.CSSClasses.timeHours,
1294              e.selectedHours,
1295              a
1296            )}${te("minutes", e.CSSClasses.timeMinutes, e.selectedMinutes, a)}${
1297              12 === n
1298                ? `<button type="button" class="${e.CSSClasses.timeKeeping}"${
1299                    a ? "disabled" : ""
1300                  }>${e.selectedKeeping}</button>`
1301                : ""
1302            }</div><div class="${e.CSSClasses.timeRanges}">${ne(
1303              "hours",
1304              e.CSSClasses.timeRange,
1305              s,
1306              l,
1307              e.settings.selection.stepHours,
1308              e.selectedKeeping
1309                ? Z(e.selectedHours, e.selectedKeeping)
1310                : e.selectedHours
1311            )}${ne(
1312              "minutes",
1313              e.CSSClasses.timeRange,
1314              i,
1315              r,
1316              e.settings.selection.stepMinutes,
1317              e.selectedMinutes
1318            )}</div>`
1319          )),
1320            ee(e, t, n);
1321        })(e),
1322        t[e.currentType]();
1323    },
1324    ue = { self: null, rangeMin: void 0, rangeMax: void 0 },
1325    me = () => {
1326      var e;
1327      if (!(null == (e = ue.self) ? void 0 : e.HTMLElement)) return;
1328      const { CSSClasses: t } = ue.self;
1329      ue.self.HTMLElement.querySelectorAll(
1330        `.${ue.self.CSSClasses.dayBtnHover}`
1331      ).forEach((e) => {
1332        var n;
1333        e.classList.remove(ue.self.CSSClasses.dayBtnHover),
1334          null == (n = e.parentElement) ||
1335            n.classList.remove(
1336              t.dayHoverIntermediate,
1337              t.dayHoverFirst,
1338              t.dayHoverLast
1339            );
1340      });
1341    },
1342    ge = (e, t, n) => {
1343      var a, s, l;
1344      if (!(null == (a = ue.self) ? void 0 : a.selectedDates)) return;
1345      const i = m(e),
1346        { CSSClasses: r } = ue.self;
1347      if (null == (s = ue.self.rangeDisabled) ? void 0 : s.includes(i)) return;
1348      const d =
1349        null == (l = ue.self.HTMLElement)
1350          ? void 0
1351          : l.querySelectorAll(`[data-calendar-day="${i}"]`);
1352      null == d ||
1353        d.forEach((e) => {
1354          var t;
1355          e.classList.add(r.dayBtnHover),
1356            null == (t = e.parentElement) ||
1357              t.classList.add(r.dayHoverIntermediate);
1358        }),
1359        null == t ||
1360          t.forEach((e) => {
1361            var t;
1362            return null == (t = e.parentElement)
1363              ? void 0
1364              : t.classList.add(r.dayHoverFirst);
1365          }),
1366        null == n ||
1367          n.forEach((e) => {
1368            var t;
1369            return null == (t = e.parentElement)
1370              ? void 0
1371              : t.classList.add(r.dayHoverLast);
1372          });
1373    },
1374    he = (e) => {
1375      var t;
1376      if (!e.target || !(null == (t = ue.self) ? void 0 : t.selectedDates))
1377        return;
1378      if (!e.target.closest(`.${ue.self.CSSClasses.days}`)) return void me();
1379      const n = e.target.closest("[data-calendar-day]");
1380      if (!n) return;
1381      const a = n.dataset.calendarDay,
1382        s = g(ue.self.selectedDates[0]),
1383        l = g(a),
1384        i = ue.self.HTMLElement.querySelectorAll(
1385          `[data-calendar-day="${ue.self.selectedDates[0]}"]`
1386        ),
1387        r = ue.self.HTMLElement.querySelectorAll(`[data-calendar-day="${a}"]`),
1388        [d, o] = s < l ? [i, r] : [r, i],
1389        [c, u] = s < l ? [s, l] : [l, s];
1390      me();
1391      for (let e = new Date(c); e <= u; e.setDate(e.getDate() + 1)) ge(e, d, o);
1392    },
1393    ye = (e) => {
1394      ue.self &&
1395        "Escape" === e.key &&
1396        ((ue.self.selectedDates = []),
1397        ue.self.HTMLElement.removeEventListener("mousemove", he),
1398        document.removeEventListener("keydown", ye),
1399        ce(ue.self));
1400    },
1401    ve = (e, t) => {
1402      var n;
1403      if (t) {
1404        const a =
1405          1 === e.selectedDates.length && e.selectedDates[0].includes(t);
1406        (e.selectedDates =
1407          a && !e.settings.selection.cancelableDay
1408            ? [t, t]
1409            : a && e.settings.selection.cancelableDay
1410            ? []
1411            : e.selectedDates.length > 1
1412            ? [t]
1413            : [...e.selectedDates, t]),
1414          null == (n = e.selectedDates) ||
1415            n.sort((e, t) => +new Date(e) - +new Date(t));
1416      }
1417      e.settings.range.disableGaps &&
1418        ((ue.rangeMin = ue.rangeMin ? ue.rangeMin : e.rangeMin),
1419        (ue.rangeMax = ue.rangeMax ? ue.rangeMax : e.rangeMax)),
1420        (ue.self = e);
1421      const a = {
1422        set: () => {
1423          e.HTMLElement.addEventListener("mousemove", he),
1424            document.addEventListener("keydown", ye),
1425            e.settings.range.disableGaps &&
1426              (() => {
1427                var e, t, n;
1428                if (
1429                  !(null ==
1430                  (t = null == (e = ue.self) ? void 0 : e.selectedDates)
1431                    ? void 0
1432                    : t[0]) ||
1433                  !(null == (n = ue.self.rangeDisabled) ? void 0 : n[0])
1434                )
1435                  return;
1436                const a = g(ue.self.selectedDates[0]),
1437                  [s, l] = ue.self.rangeDisabled
1438                    .map((e) => g(e))
1439                    .reduce(
1440                      ([e, t], n) => [
1441                        a >= n ? n : e,
1442                        a < n && null === t ? n : t,
1443                      ],
1444                      [null, null]
1445                    );
1446                s &&
1447                  (ue.self.rangeMin = m(new Date(s.setDate(s.getDate() + 1)))),
1448                  l &&
1449                    (ue.self.rangeMax = m(
1450                      new Date(l.setDate(l.getDate() - 1))
1451                    ));
1452              })();
1453        },
1454        reset: () => {
1455          const [t, n] = [
1456            e.selectedDates[0],
1457            e.selectedDates[e.selectedDates.length - 1],
1458          ];
1459          (e.selectedDates =
1460            e.selectedDates[0] !== e.selectedDates[e.selectedDates.length - 1]
1461              ? e.settings.range.edgesOnly
1462                ? [t, n]
1463                : h([`${t}:${n}`])
1464              : [e.selectedDates[0], e.selectedDates[0]]),
1465            e.HTMLElement.removeEventListener("mousemove", he),
1466            document.removeEventListener("keydown", ye),
1467            e.settings.range.disableGaps &&
1468              ue.self &&
1469              ((ue.self.rangeMin = ue.rangeMin),
1470              (ue.self.rangeMax = ue.rangeMax));
1471        },
1472      };
1473      a[1 === e.selectedDates.length ? "set" : "reset"]();
1474    },
1475    pe = (e, t, n) => {
1476      if (!t.dataset.calendarDay) return;
1477      const a = t.dataset.calendarDay,
1478        s = t.classList.contains(e.CSSClasses.dayBtnSelected);
1479      if (s && !e.settings.selection.cancelableDay) return;
1480      let l = !0;
1481      void 0 !== e.toggleSelected &&
1482        (l =
1483          "function" == typeof e.toggleSelected
1484            ? e.toggleSelected(e)
1485            : e.toggleSelected),
1486        (s && !l) ||
1487          (e.selectedDates = s
1488            ? e.selectedDates.filter((e) => e !== a)
1489            : n
1490            ? [...e.selectedDates, a]
1491            : [a]);
1492    },
1493    Se = (e, t, n, a, s) => {
1494      const l = e.HTMLElement.querySelectorAll(`.${e.CSSClasses.column}`),
1495        i = Array.from(l).findIndex((e) => e.classList.contains(t)),
1496        r = Number(l[i].querySelector(`.${n}`).getAttribute(s));
1497      return "month" === e.currentType && i >= 0
1498        ? a - i
1499        : "year" === e.currentType && e.selectedYear !== r
1500        ? a - 1
1501        : a;
1502    },
1503    Me = (e, t, n, a) => {
1504      if (!e.settings.selection[n]) return;
1505      const s = t.target,
1506        l = (e) => s.closest(`.${e}`),
1507        i = l(a.header),
1508        r = l(a.item),
1509        d = l(e.CSSClasses.grid),
1510        o = l(e.CSSClasses.column);
1511      if (e.currentType !== n && i) {
1512        ({ year: () => W(e, s), month: () => G(e, s) })[n]();
1513      } else
1514        r
1515          ? ((e, t, n, a, s) => {
1516              const l = {
1517                year: () => {
1518                  var n, a;
1519                  return null == (a = (n = e.actions).clickYear)
1520                    ? void 0
1521                    : a.call(n, t, e);
1522                },
1523                month: () => {
1524                  var n, a;
1525                  return null == (a = (n = e.actions).clickMonth)
1526                    ? void 0
1527                    : a.call(n, t, e);
1528                },
1529              };
1530              ({
1531                year: () => {
1532                  if ("multiple" === e.type) {
1533                    const t = Se(
1534                        e,
1535                        e.CSSClasses.columnYear,
1536                        e.CSSClasses.year,
1537                        Number(s.dataset.calendarYear),
1538                        "data-calendar-selected-year"
1539                      ),
1540                      n =
1541                        e.selectedMonth < e.dateMin.getMonth() &&
1542                        t <= e.dateMin.getFullYear(),
1543                      a =
1544                        e.selectedMonth > e.dateMax.getMonth() &&
1545                        t >= e.dateMax.getFullYear(),
1546                      l = t < e.dateMin.getFullYear(),
1547                      i = t > e.dateMax.getFullYear();
1548                    n || l
1549                      ? ((e.selectedYear = e.dateMin.getFullYear()),
1550                        (e.selectedMonth = e.dateMin.getMonth()))
1551                      : a || i
1552                      ? ((e.selectedYear = e.dateMax.getFullYear()),
1553                        (e.selectedMonth = e.dateMax.getMonth()))
1554                      : (e.selectedYear = t);
1555                  } else e.selectedYear = Number(s.dataset.calendarYear);
1556                },
1557                month: () => {
1558                  if ("multiple" === e.type) {
1559                    const t = Se(
1560                        e,
1561                        e.CSSClasses.columnMonth,
1562                        e.CSSClasses.month,
1563                        Number(s.dataset.calendarMonth),
1564                        "data-calendar-selected-month"
1565                      ),
1566                      n = s
1567                        .closest(`.${a.column}`)
1568                        .querySelector(`.${e.CSSClasses.year}`);
1569                    e.selectedYear = Number(n.dataset.calendarSelectedYear);
1570                    const l =
1571                        t < e.dateMin.getMonth() &&
1572                        e.selectedYear <= e.dateMin.getFullYear(),
1573                      i =
1574                        t > e.dateMax.getMonth() &&
1575                        e.selectedYear >= e.dateMax.getFullYear();
1576                    e.selectedMonth = l
1577                      ? e.dateMin.getMonth()
1578                      : i
1579                      ? e.dateMax.getMonth()
1580                      : t;
1581                  } else e.selectedMonth = Number(s.dataset.calendarMonth);
1582                },
1583              })[n](),
1584                l[n](),
1585                (e.currentType = e.type),
1586                ce(e);
1587            })(e, t, n, a, r)
1588          : ((e.currentType === n && i) ||
1589              ("multiple" === e.type && e.currentType === n && d && !o)) &&
1590            ((e.currentType = e.type), ce(e));
1591    },
1592    Ce = (e) => {
1593      const t = (t) => {
1594        ((e, t) => {
1595          const n = t.target.closest(`.${e.CSSClasses.arrow}`);
1596          n &&
1597            (["default", "multiple"].includes(e.currentType)
1598              ? I(e, n.dataset.calendarArrow)
1599              : "year" === e.currentType &&
1600                void 0 !== e.viewYear &&
1601                ((e.viewYear += { prev: -15, next: 15 }[
1602                  n.dataset.calendarArrow
1603                ]),
1604                W(e, t.target)),
1605            e.actions.clickArrow && e.actions.clickArrow(t, e));
1606        })(e, t),
1607          ((e, t) => {
1608            var n;
1609            if (
1610              !e.settings.visibility.weekNumbers ||
1611              !e.actions.clickWeekNumber
1612            )
1613              return;
1614            const a = t.target.closest(`.${e.CSSClasses.weekNumber}`),
1615              s =
1616                null == (n = e.HTMLElement)
1617                  ? void 0
1618                  : n.querySelectorAll("[data-calendar-week-number]");
1619            if (!a || !s) return;
1620            const l = Number(a.innerText),
1621              i = Number(a.dataset.calendarYearWeek),
1622              r = Array.from(s).filter(
1623                (e) => Number(e.dataset.calendarWeekNumber) === l
1624              );
1625            e.actions.clickWeekNumber(t, l, r, i, e);
1626          })(e, t),
1627          ((e, t) => {
1628            var n;
1629            const a = t.target,
1630              s = (e) => a.closest(`.${e}`),
1631              l = s(e.CSSClasses.dayBtn);
1632            if (
1633              !e.settings.selection.day ||
1634              !["single", "multiple", "multiple-ranged"].includes(
1635                e.settings.selection.day
1636              ) ||
1637              !l
1638            )
1639              return;
1640            ({
1641              single: () => pe(e, l, !1),
1642              multiple: () => pe(e, l, !0),
1643              "multiple-ranged": () => ve(e, l.dataset.calendarDay),
1644            })[e.settings.selection.day](),
1645              null == (n = e.selectedDates) ||
1646                n.sort((e, t) => +new Date(e) - +new Date(t)),
1647              e.actions.clickDay && e.actions.clickDay(t, e),
1648              e.input &&
1649                e.HTMLInputElement &&
1650                e.HTMLElement &&
1651                e.actions.changeToInput &&
1652                e.actions.changeToInput(t, e);
1653            const i = s(e.CSSClasses.dayBtnPrev),
1654              r = s(e.CSSClasses.dayBtnNext);
1655            ({
1656              prev: () => I(e, "prev"),
1657              next: () => I(e, "next"),
1658              default: () => N(e),
1659            })[i ? "prev" : r ? "next" : "default"]();
1660          })(e, t),
1661          Me(e, t, "month", {
1662            header: e.CSSClasses.month,
1663            item: e.CSSClasses.monthsMonth,
1664            column: e.CSSClasses.columnMonth,
1665          }),
1666          Me(e, t, "year", {
1667            header: e.CSSClasses.year,
1668            item: e.CSSClasses.yearsYear,
1669            column: e.CSSClasses.columnYear,
1670          });
1671      };
1672      return (
1673        e.HTMLElement.addEventListener("click", t),
1674        () => e.HTMLElement.removeEventListener("click", t)
1675      );
1676    },
1677    be = (e, { year: t, month: n, dates: a, holidays: s, time: i } = {}) => {
1678      var r;
1679      const d = l({}, e.settings.selected);
1680      (e.settings.selected.year = t ? d.year : e.selectedYear),
1681        (e.settings.selected.month = n ? d.month : e.selectedMonth),
1682        (e.settings.selected.holidays = s ? d.holidays : e.selectedHolidays),
1683        (e.settings.selected.time = i ? d.time : e.selectedTime),
1684        (e.settings.selected.dates =
1685          "only-first" === a && (null == (r = e.selectedDates) ? void 0 : r[0])
1686            ? [e.selectedDates[0]]
1687            : !0 === a
1688            ? d.dates
1689            : e.selectedDates),
1690        f(e),
1691        ce(e),
1692        (e.settings.selected = d),
1693        "multiple-ranged" === e.settings.selection.day && a && ve(e);
1694    },
1695    fe = (e, t = !0) => {
1696      e.isInputInit = !0;
1697      const n = document.createElement("div");
1698      return (
1699        (n.className = `${e.CSSClasses.calendar} ${e.CSSClasses.calendarToInput} ${e.CSSClasses.calendarHidden}`),
1700        (e.HTMLElement = n),
1701        document.body.appendChild(e.HTMLElement),
1702        (e.HTMLElement.style.visibility = "hidden"),
1703        t &&
1704          queueMicrotask(() => {
1705            k(
1706              e.HTMLInputElement,
1707              n,
1708              e.settings.visibility.positionToInput,
1709              e.CSSClasses
1710            ),
1711              (e.HTMLElement.style.visibility = "visible"),
1712              e.show();
1713          }),
1714        be(e, { year: !0, month: !0, dates: !0, holidays: !0, time: !0 }),
1715        e.actions.initCalendar && e.actions.initCalendar(e),
1716        Ce(e)
1717      );
1718    },
1719    we = (e) => (
1720      (e.HTMLOriginalElement = e.HTMLElement.cloneNode(!0)),
1721      (e.isInit = !0),
1722      e.input
1723        ? ((e) => {
1724            const t = [];
1725            e.HTMLInputElement = e.HTMLElement;
1726            const n = () =>
1727                k(
1728                  e.HTMLInputElement,
1729                  e.HTMLElement,
1730                  e.settings.visibility.positionToInput,
1731                  e.CSSClasses
1732                ),
1733              a = (t) => {
1734                "Escape" === t.key &&
1735                  ((null == e ? void 0 : e.HTMLInputElement) &&
1736                    (null == e ? void 0 : e.HTMLElement) &&
1737                    e.hide(),
1738                  document.removeEventListener("keydown", a));
1739              },
1740              s = (t) => {
1741                var a;
1742                e &&
1743                  t.target !== e.HTMLInputElement &&
1744                  !(null == (a = e.HTMLElement)
1745                    ? void 0
1746                    : a.contains(t.target)) &&
1747                  (e.HTMLInputElement && e.HTMLElement && e.hide(),
1748                  window.removeEventListener("resize", n),
1749                  document.removeEventListener("click", s, { capture: !0 }));
1750              },
1751              l = () => {
1752                e.isInputInit
1753                  ? (k(
1754                      e.HTMLInputElement,
1755                      e.HTMLElement,
1756                      e.settings.visibility.positionToInput,
1757                      e.CSSClasses
1758                    ),
1759                    (e.HTMLElement.style.visibility = "visible"),
1760                    e.show())
1761                  : t.push(fe(e)),
1762                  window.addEventListener("resize", n),
1763                  document.addEventListener("click", s, { capture: !0 }),
1764                  document.addEventListener("keydown", a);
1765              };
1766            return (
1767              e.HTMLInputElement.addEventListener("click", l),
1768              e.HTMLInputElement.addEventListener("focus", l),
1769              () => {
1770                t.forEach((e) => e());
1771              }
1772            );
1773          })(e)
1774        : (f(e),
1775          ce(e),
1776          e.actions.initCalendar && e.actions.initCalendar(e),
1777          Ce(e))
1778    );
1779  return class extends u {
1780    constructor(e, t) {
1781      if (
1782        (super(),
1783        i(this, "init", () => we(this)),
1784        i(this, "update", (e) =>
1785          ((e, { year: t, month: n, dates: a, holidays: s, time: l } = {}) => {
1786            if (!e.isInit) throw new Error(S);
1787            e.input && !e.isInputInit && fe(e, !1),
1788              be(e, { year: t, month: n, dates: a, holidays: s, time: l }),
1789              e.actions.updateCalendar && e.actions.updateCalendar(e);
1790          })(this, e)
1791        ),
1792        i(this, "destroy", () =>
1793          ((e) => {
1794            var t, n, a, s, l, i;
1795            if (!e.isInit) throw new Error(S);
1796            e.input
1797              ? (null ==
1798                  (n =
1799                    null == (t = e.HTMLElement) ? void 0 : t.parentElement) ||
1800                  n.removeChild(e.HTMLElement),
1801                null ==
1802                  (s =
1803                    null == (a = e.HTMLInputElement)
1804                      ? void 0
1805                      : a.replaceWith) || s.call(a, e.HTMLOriginalElement),
1806                (e.HTMLInputElement = void 0))
1807              : null ==
1808                  (i = null == (l = e.HTMLElement) ? void 0 : l.replaceWith) ||
1809                i.call(l, e.HTMLOriginalElement),
1810              (e.HTMLElement = e.HTMLOriginalElement),
1811              e.actions.destroyCalendar && e.actions.destroyCalendar(e);
1812          })(this)
1813        ),
1814        i(this, "show", () => {
1815          var e;
1816          (e = this).currentType
1817            ? (e.HTMLElement.classList.remove(e.CSSClasses.calendarHidden),
1818              e.actions.showCalendar && e.actions.showCalendar(e))
1819            : e.HTMLElement.click();
1820        }),
1821        i(this, "hide", () => {
1822          var e;
1823          (e = this).currentType &&
1824            (e.HTMLElement.classList.add(e.CSSClasses.calendarHidden),
1825            e.actions.hideCalendar && e.actions.hideCalendar(e));
1826        }),
1827        (this.HTMLElement =
1828          "string" == typeof e ? document.querySelector(e) : e),
1829        !this.HTMLElement)
1830      )
1831        throw new Error(p(e));
1832      if (!t) return;
1833      const n = (e, t) => {
1834        Object.keys(t).forEach((a) => {
1835          "object" != typeof e[a] ||
1836          "object" != typeof t[a] ||
1837          t[a] instanceof Date
1838            ? (e[a] = t[a])
1839            : n(e[a], t[a]);
1840        });
1841      };
1842      n(this, t);
1843    }
1844  };
1845});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.