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.