UNPKG

preline

Version:

Preline UI is an open-source set of prebuilt UI components based on the utility-first Tailwind CSS framework.

16 lines 141 kB
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var s in n)("object"==typeof exports?exports:e)[s]=n[s]}}(self,(()=>{return e={128:function(e,t,n){"use strict"; /* * HSDatepicker * @version: 3.2.3 * @author: Preline Labs Ltd. * @license: Licensed under MIT and Preline UI Fair Use License (https://preline.co/docs/license.html) * Copyright 2024 Preline Labs Ltd. */var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(292),o=s(n(632)),a=n(191),l=n(852),r=n(292),d=s(n(442)),c=s(n(961));class u extends c.default{constructor(e,t,n){var s,l,r,d,c,u,h;super(e,t,n);const p=e.getAttribute("data-hs-datepicker")?JSON.parse(e.getAttribute("data-hs-datepicker")):{};this.dataOptions=Object.assign(Object.assign({},p),t);const m=void 0!==(null===(s=this.dataOptions)||void 0===s?void 0:s.removeDefaultStyles)&&(null===(l=this.dataOptions)||void 0===l?void 0:l.removeDefaultStyles);this.updatedStyles=_.mergeWith(m?{}:o.default.defaultStyles,(null===(r=this.dataOptions)||void 0===r?void 0:r.styles)||{},((e,t)=>{if("string"==typeof e&&"string"==typeof t)return`${e} ${t}`}));const v=new Date,g={selectedTheme:null!==(d=this.dataOptions.selectedTheme)&&void 0!==d?d:"",styles:this.updatedStyles,dateMin:null!==(c=this.dataOptions.dateMin)&&void 0!==c?c:v.toISOString().split("T")[0],dateMax:null!==(u=this.dataOptions.dateMax)&&void 0!==u?u:"2470-12-31",mode:null!==(h=this.dataOptions.mode)&&void 0!==h?h:"default",inputMode:void 0===this.dataOptions.inputMode||this.dataOptions.inputMode},y=(e,t)=>n=>{null==e||e(n),null==t||t(n)},b=e=>{this.hasTime(e)&&this.initCustomTime(e)},f={layouts:{month:a.templates.month(g.selectedTheme)},onInit:y(this.dataOptions.onInit,(e=>{"custom-select"!==g.mode||this.dataOptions.inputMode||b(e)})),onShow:y(this.dataOptions.onShow,(e=>{"custom-select"===g.mode&&(this.updateCustomSelects(e),b(e))})),onHide:y(this.dataOptions.onHide,(e=>{"custom-select"===g.mode&&this.destroySelects(e.context.mainElement)})),onUpdate:y(this.dataOptions.onUpdate,(e=>{this.updateCalendar(e.context.mainElement)})),onCreateDateEls:y(this.dataOptions.onCreateDateEls,(e=>{"custom-select"===g.mode&&this.updateCustomSelects(e)})),onChangeToInput:y(this.dataOptions.onChangeToInput,(e=>{if(!e.context.inputElement)return;this.setInputValue(e.context.inputElement,e.context.selectedDates);const t={selectedDates:e.context.selectedDates,selectedTime:e.context.selectedTime,rest:e.context};this.fireEvent("change",t),(0,i.dispatch)("change.hs.datepicker",this.el,t)})),onChangeTime:y(this.dataOptions.onChangeTime,b),onClickYear:y(this.dataOptions.onClickYear,b),onClickMonth:y(this.dataOptions.onClickMonth,b),onClickArrow:y(this.dataOptions.onClickArrow,(e=>{"custom-select"===g.mode&&setTimeout((()=>{this.disableNav(),this.disableOptions(),this.updateCalendar(e.context.mainElement)}))}))};this.concatOptions=_.merge(f,this.dataOptions);const w=Object.assign(Object.assign({},g),{layouts:{default:this.processCustomTemplate(a.templates.default(g.selectedTheme),"default"),multiple:this.processCustomTemplate(a.templates.multiple(g.selectedTheme),"multiple"),year:this.processCustomTemplate(a.templates.year(g.selectedTheme),"default")}});this.concatOptions=_.merge(this.concatOptions,w),this.vanillaCalendar=new o.default(this.el,this.concatOptions),this.init()}init(){var e,t;this.createCollection(window.$hsDatepickerCollection,this),this.vanillaCalendar.init(),(null===(e=this.dataOptions)||void 0===e?void 0:e.selectedDates)&&this.setInputValue(this.vanillaCalendar.context.inputElement,this.formatDateArrayToIndividualDates(null===(t=this.dataOptions)||void 0===t?void 0:t.selectedDates))}getTimeParts(e){const[t,n]=e.split(" "),[s,i]=t.split(":");return[s,i,n]}getCurrentMonthAndYear(e){const t=e.querySelector('[data-vc="month"]'),n=e.querySelector('[data-vc="year"]');return{month:+t.getAttribute("data-vc-month"),year:+n.getAttribute("data-vc-year")}}setInputValue(e,t){var n,s,i,o,a,l,r,d,c;const u=null===(n=this.dataOptions)||void 0===n?void 0:n.dateFormat,h=null!==(o=null===(i=null===(s=this.dataOptions)||void 0===s?void 0:s.inputModeOptions)||void 0===i?void 0:i.dateSeparator)&&void 0!==o?o:".",p=null!==(r=null===(l=null===(a=this.dataOptions)||void 0===a?void 0:a.inputModeOptions)||void 0===l?void 0:l.itemsSeparator)&&void 0!==r?r:", ",m=null!==(c=null===(d=this.dataOptions)||void 0===d?void 0:d.selectionDatesMode)&&void 0!==c?c:"single";if(t.length&&t.length>1)if("multiple"===m){const n=[];t.forEach((e=>n.push(u?this.formatDate(e,u):this.changeDateSeparator(e,h)))),e.value=n.join(p)}else{const n=u?this.formatDate(t[0],u):this.changeDateSeparator(t[0],h),s=u?this.formatDate(t[1],u):this.changeDateSeparator(t[1],h);e.value=[n,s].join(p)}else t.length&&1===t.length?e.value=u?this.formatDate(t[0],u):this.changeDateSeparator(t[0],h):e.value=""}getLocalizedTodayText(e){return l.todayTranslations[e]||"Today"}changeDateSeparator(e,t=".",n="-"){var s,i;const o=new Date(e);if(null===(s=this.dataOptions)||void 0===s?void 0:s.replaceTodayWithText){const e=new Date;if(o.toDateString()===e.toDateString()){const e=null===(i=this.dataOptions)||void 0===i?void 0:i.dateLocale;return this.getLocalizedTodayText(e)}}return e.split(n).join(t)}formatDateArrayToIndividualDates(e){var t,n;const s=null!==(n=null===(t=this.dataOptions)||void 0===t?void 0:t.selectionDatesMode)&&void 0!==n?n:"single";return e.flatMap((e=>{if("string"==typeof e){if("today"===e.toLowerCase())return[(new Date).toISOString().split("T")[0]];const t=e.match(/^(\d{4}-\d{2}-\d{2})\s*[^a-zA-Z0-9]*\s*(\d{4}-\d{2}-\d{2})$/);if(t){const[e,n,i]=t;return"multiple-ranged"===s?[n,i]:((e,t)=>{const n=new Date(e),s=new Date(t),i=[];for(;n<=s;)i.push(n.toISOString().split("T")[0]),n.setDate(n.getDate()+1);return i})(n.trim(),i.trim())}return[e]}return"number"==typeof e?[new Date(e).toISOString().split("T")[0]]:e instanceof Date?[e.toISOString().split("T")[0]]:[]}))}hasTime(e){const{mainElement:t}=e.context,n=t.querySelector("[data-hs-select].--hours"),s=t.querySelector("[data-hs-select].--minutes"),i=t.querySelector("[data-hs-select].--meridiem");return n&&s&&i}createArrowFromTemplate(e,t=!1){if(!t)return e;const n=(0,r.htmlToElement)(e);return(0,r.classToClassList)(t,n),n.outerHTML}concatObjectProperties(e,t){const n={};return new Set([...Object.keys(e||{}),...Object.keys(t||{})]).forEach((s=>{const i=e[s]||"",o=t[s]||"";n[s]=`${i} ${o}`.trim()})),n}updateTemplate(e,t,n){if(!t)return e;const s=JSON.parse(e.match(/data-hs-select='([^']+)'/)[1]),i=this.concatObjectProperties(t,n),o=_.merge(s,i);return e.replace(/data-hs-select='[^']+'/,`data-hs-select='${JSON.stringify(o)}'`)}initCustomTime(e){var t;const{mainElement:n}=e.context,s=this.getTimeParts(null!==(t=e.selectedTime)&&void 0!==t?t:"12:00 PM"),i={hours:n.querySelector("[data-hs-select].--hours"),minutes:n.querySelector("[data-hs-select].--minutes"),meridiem:n.querySelector("[data-hs-select].--meridiem")};Object.entries(i).forEach((([t,i])=>{if(!d.default.getInstance(i,!0)){const o=new d.default(i);o.setValue(s["meridiem"===t?2:"minutes"===t?1:0]),o.el.addEventListener("change.hs.select",(i=>{this.destroySelects(n);const o="hours"===t?i.detail.payload:s[0],a="minutes"===t?i.detail.payload:s[1],l="meridiem"===t?i.detail.payload:s[2];e.set({selectedTime:`${o}:${a} ${l}`},{dates:!1,year:!1,month:!1})}))}}))}initCustomMonths(e){const{mainElement:t}=e.context,n=Array.from(t.querySelectorAll(".--single-month"));n.length&&n.forEach(((n,s)=>{const i=n.querySelector("[data-hs-select].--month");if(d.default.getInstance(i,!0))return!1;const o=new d.default(i),{month:a,year:l}=this.getCurrentMonthAndYear(n);o.setValue(`${a}`),o.el.addEventListener("change.hs.select",(n=>{this.destroySelects(t),e.set({selectedMonth:+n.detail.payload-s<0?11:+n.detail.payload-s,selectedYear:+n.detail.payload-s<0?+l-1:l},{dates:!1,time:!1})}))}))}initCustomYears(e){const{mainElement:t}=e.context,n=Array.from(t.querySelectorAll(".--single-month"));n.length&&n.forEach((n=>{const s=n.querySelector("[data-hs-select].--year");if(d.default.getInstance(s,!0))return!1;const i=new d.default(s),{month:o,year:a}=this.getCurrentMonthAndYear(n);i.setValue(`${a}`),i.el.addEventListener("change.hs.select",(n=>{const{dateMax:s,displayMonthsCount:i}=this.vanillaCalendar.context,a=new Date(s).getFullYear(),l=new Date(s).getMonth();this.destroySelects(t),e.set({selectedMonth:o>l-i&&+n.detail.payload===a?l-i+1:o,selectedYear:n.detail.payload},{dates:!1,time:!1})}))}))}generateCustomTimeMarkup(){var e,t,n,s;const i=null===(e=this.updatedStyles)||void 0===e?void 0:e.customSelect,o=i?this.updateTemplate(a.templates.hours(this.concatOptions.selectedTheme),(null==i?void 0:i.shared)||{},(null==i?void 0:i.hours)||{}):a.templates.hours(this.concatOptions.selectedTheme),l=i?this.updateTemplate(a.templates.minutes(this.concatOptions.selectedTheme),(null==i?void 0:i.shared)||{},(null==i?void 0:i.minutes)||{}):a.templates.minutes(this.concatOptions.selectedTheme),r=i?this.updateTemplate(a.templates.meridiem(this.concatOptions.selectedTheme),(null==i?void 0:i.shared)||{},(null==i?void 0:i.meridiem)||{}):a.templates.meridiem(this.concatOptions.selectedTheme);return`<div class="--time">${null!==(s=null===(n=null===(t=null==this?void 0:this.dataOptions)||void 0===t?void 0:t.templates)||void 0===n?void 0:n.time)&&void 0!==s?s:`\n\t\t\t<div class="pt-3 flex justify-center items-center gap-x-2">\n ${o}\n <span class="text-gray-800 ${"light"!==this.concatOptions.selectedTheme?"dark:text-white":""}">:</span>\n ${l}\n ${r}\n </div>\n\t\t`}</div>`}generateCustomMonthMarkup(){var e,t,n;const s=null!==(t=null===(e=null==this?void 0:this.dataOptions)||void 0===e?void 0:e.mode)&&void 0!==t?t:"default",i=null===(n=this.updatedStyles)||void 0===n?void 0:n.customSelect,o=i?this.updateTemplate(a.templates.months(this.concatOptions.selectedTheme),(null==i?void 0:i.shared)||{},(null==i?void 0:i.months)||{}):a.templates.months(this.concatOptions.selectedTheme);return"custom-select"===s?o:"<#Month />"}generateCustomYearMarkup(){var e,t,n,s,i,o,l;if("custom-select"===(null!==(t=null===(e=null==this?void 0:this.dataOptions)||void 0===e?void 0:e.mode)&&void 0!==t?t:"default")){const e=new Date,t=null!==(s=null===(n=null==this?void 0:this.dataOptions)||void 0===n?void 0:n.dateMin)&&void 0!==s?s:e.toISOString().split("T")[0],r=null!==(o=null===(i=null==this?void 0:this.dataOptions)||void 0===i?void 0:i.dateMax)&&void 0!==o?o:"2470-12-31",d=new Date(t),c=new Date(r),u=d.getFullYear(),h=c.getFullYear(),p=()=>{let e="";for(let t=u;t<=h;t++)e+=`<option value="${t}">${t}</option>`;return e},m=a.templates.years(p(),this.concatOptions.selectedTheme),v=null===(l=this.updatedStyles)||void 0===l?void 0:l.customSelect;return v?this.updateTemplate(m,(null==v?void 0:v.shared)||{},(null==v?void 0:v.years)||{}):m}return"<#Year />"}generateCustomArrowPrevMarkup(){var e,t;return(null===(t=null===(e=null==this?void 0:this.dataOptions)||void 0===e?void 0:e.templates)||void 0===t?void 0:t.arrowPrev)?this.createArrowFromTemplate(this.dataOptions.templates.arrowPrev,this.updatedStyles.arrowPrev):"<#ArrowPrev [month] />"}generateCustomArrowNextMarkup(){var e,t;return(null===(t=null===(e=null==this?void 0:this.dataOptions)||void 0===e?void 0:e.templates)||void 0===t?void 0:t.arrowNext)?this.createArrowFromTemplate(this.dataOptions.templates.arrowNext,this.updatedStyles.arrowNext):"<#ArrowNext [month] />"}parseCustomTime(e){return e=e.replace(/<#CustomTime\s*\/>/g,this.generateCustomTimeMarkup())}parseCustomMonth(e){return e=e.replace(/<#CustomMonth\s*\/>/g,this.generateCustomMonthMarkup())}parseCustomYear(e){return e=e.replace(/<#CustomYear\s*\/>/g,this.generateCustomYearMarkup())}parseArrowPrev(e){return e=e.replace(/<#CustomArrowPrev\s*\/>/g,this.generateCustomArrowPrevMarkup())}parseArrowNext(e){return e=e.replace(/<#CustomArrowNext\s*\/>/g,this.generateCustomArrowNextMarkup())}processCustomTemplate(e,t){var n,s,i,o;const a="default"===t?null===(s=null===(n=null==this?void 0:this.dataOptions)||void 0===n?void 0:n.layouts)||void 0===s?void 0:s.default:null===(o=null===(i=null==this?void 0:this.dataOptions)||void 0===i?void 0:i.layouts)||void 0===o?void 0:o.multiple,l=this.parseCustomMonth(null!=a?a:e),r=this.parseCustomYear(l),d=this.parseCustomTime(r),c=this.parseArrowPrev(d);return this.parseArrowNext(c)}disableOptions(){const{mainElement:e,dateMax:t,displayMonthsCount:n}=this.vanillaCalendar.context,s=new Date(t);Array.from(e.querySelectorAll(".--single-month")).forEach(((e,t)=>{var i;const o=+(null===(i=e.querySelector('[data-vc="year"]'))||void 0===i?void 0:i.getAttribute("data-vc-year")),a=e.querySelectorAll("[data-hs-select].--month option"),l=e.querySelectorAll("[data-hs-select-dropdown] [data-value]"),r=e=>+e.getAttribute("data-value")>s.getMonth()-n+t+1&&o===s.getFullYear();Array.from(a).forEach((e=>e.toggleAttribute("disabled",r(e)))),Array.from(l).forEach((e=>e.classList.toggle("disabled",r(e))))}))}disableNav(){const{mainElement:e,dateMax:t,selectedYear:n,selectedMonth:s,displayMonthsCount:i}=this.vanillaCalendar.context,o=new Date(t).getFullYear(),a=e.querySelector('[data-vc-arrow="next"]');a.style.visibility=n===o&&s+i>11?"hidden":""}destroySelects(e){Array.from(e.querySelectorAll("[data-hs-select]")).forEach((e=>{const t=d.default.getInstance(e,!0);t&&t.element.destroy()}))}updateSelect(e,t){const n=d.default.getInstance(e,!0);n&&n.element.setValue(t)}updateCalendar(e){const t=e.querySelectorAll(".--single-month");t.length&&t.forEach((e=>{const{month:t,year:n}=this.getCurrentMonthAndYear(e);this.updateSelect(e.querySelector("[data-hs-select].--month"),`${t}`),this.updateSelect(e.querySelector("[data-hs-select].--year"),`${n}`)}))}updateCustomSelects(e){setTimeout((()=>{this.disableOptions(),this.disableNav(),this.initCustomMonths(e),this.initCustomYears(e)}))}getCurrentState(){return{selectedDates:this.vanillaCalendar.selectedDates,selectedTime:this.vanillaCalendar.selectedTime}}formatDate(e,t){var n,s,i,o,a,l,r;const d=t||(null===(n=this.dataOptions)||void 0===n?void 0:n.dateFormat),c=(null===(s=this.dataOptions)||void 0===s?void 0:s.dateLocale)||void 0;if(!d){const t=null!==(a=null===(o=null===(i=this.dataOptions)||void 0===i?void 0:i.inputModeOptions)||void 0===o?void 0:o.dateSeparator)&&void 0!==a?a:".";return this.changeDateSeparator(e,t)}const u=new Date(e);if(isNaN(u.getTime()))return this.changeDateSeparator(e);let h="",p=0;for(;p<d.length;)if("YYYY"===d.slice(p,p+4))h+=u.getFullYear().toString(),p+=4;else if("dddd"===d.slice(p,p+4)){const e=u.toLocaleDateString(c,{weekday:"long"});if(null===(l=this.dataOptions)||void 0===l?void 0:l.replaceTodayWithText){const t=new Date;h+=u.toDateString()===t.toDateString()?this.getLocalizedTodayText(c):e}else h+=e;p+=4}else if("MMMM"===d.slice(p,p+4))h+=u.toLocaleDateString(c,{month:"long"}),p+=4;else if("ddd"===d.slice(p,p+3)){const e=u.toLocaleDateString(c,{weekday:"short"});if(null===(r=this.dataOptions)||void 0===r?void 0:r.replaceTodayWithText){const t=new Date;h+=u.toDateString()===t.toDateString()?this.getLocalizedTodayText(c):e}else h+=e;p+=3}else"MMM"===d.slice(p,p+3)?(h+=u.toLocaleDateString(c,{month:"short"}),p+=3):"YY"===d.slice(p,p+2)?(h+=u.getFullYear().toString().slice(-2),p+=2):"MM"===d.slice(p,p+2)?(h+=String(u.getMonth()+1).padStart(2,"0"),p+=2):"DD"===d.slice(p,p+2)?(h+=String(u.getDate()).padStart(2,"0"),p+=2):"HH"===d.slice(p,p+2)?(h+=String(u.getHours()).padStart(2,"0"),p+=2):"mm"===d.slice(p,p+2)?(h+=String(u.getMinutes()).padStart(2,"0"),p+=2):"ss"===d.slice(p,p+2)?(h+=String(u.getSeconds()).padStart(2,"0"),p+=2):"Y"===d[p]?(h+=u.getFullYear().toString(),p+=1):"M"===d[p]?(h+=String(u.getMonth()+1),p+=1):"D"===d[p]?(h+=String(u.getDate()),p+=1):"H"===d[p]?(h+=String(u.getHours()),p+=1):"m"===d[p]?(h+=String(u.getMinutes()),p+=1):"s"===d[p]?(h+=String(u.getSeconds()),p+=1):(h+=d[p],p+=1);return h}destroy(){this.vanillaCalendar&&(this.vanillaCalendar.destroy(),this.vanillaCalendar=null),window.$hsDatepickerCollection=window.$hsDatepickerCollection.filter((({element:e})=>e.el!==this.el))}static getInstance(e,t){const n=window.$hsDatepickerCollection.find((t=>t.element.el===("string"==typeof e?document.querySelector(e):e)));return n?t?n:n.element.el:null}static autoInit(){window.$hsDatepickerCollection||(window.$hsDatepickerCollection=[]),document.querySelectorAll(".hs-datepicker:not(.--prevent-on-load-init)").forEach((e=>{window.$hsDatepickerCollection.find((t=>{var n;return(null===(n=null==t?void 0:t.element)||void 0===n?void 0:n.el)===e}))||new u(e)}))}}window.addEventListener("load",(()=>{u.autoInit()})),"undefined"!=typeof window&&(window.HSDatepicker=u),t.default=u},191:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.templates=void 0,t.templates={default:(e=!1)=>`<div class="--single-month flex flex-col overflow-hidden">\n <div class="grid grid-cols-5 items-center gap-x-3 mx-1.5 pb-3" data-vc="header">\n <div class="col-span-1">\n <#CustomArrowPrev />\n </div>\n <div class="col-span-3 flex justify-center items-center gap-x-1">\n <#CustomMonth />\n <span class="text-gray-800 ${"light"!==e?"dark:text-neutral-200":""}">/</span>\n <#CustomYear />\n </div>\n <div class="col-span-1 flex justify-end">\n <#CustomArrowNext />\n </div>\n </div>\n <div data-vc="wrapper">\n <div data-vc="content">\n <#Week />\n <#Dates />\n </div>\n </div>\n </div>`,multiple:(e=!1)=>`<div class="relative flex flex-col overflow-hidden">\n <div class="absolute top-2 start-2">\n <#CustomArrowPrev />\n </div>\n <div class="absolute top-2 end-2">\n <#CustomArrowNext />\n </div>\n <div class="sm:flex" data-vc="grid">\n <#Multiple>\n <div class="p-3 space-y-0.5 --single-month" data-vc="column">\n <div class="pb-3" data-vc="header">\n <div class="flex justify-center items-center gap-x-1" data-vc-header="content">\n <#CustomMonth />\n <span class="text-gray-800 ${"light"!==e?"dark:text-neutral-200":""}">/</span>\n <#CustomYear />\n </div>\n </div>\n <div data-vc="wrapper">\n <div data-vc="content">\n <#Week />\n <#Dates />\n </div>\n </div>\n </div>\n <#/Multiple>\n </div>\n </div>`,year:(e=!1)=>`<div class="relative bg-white ${"light"!==e?"dark:bg-neutral-900":""}" data-vc="header" role="toolbar">\n <div class="grid grid-cols-5 items-center gap-x-3 mx-1.5 pb-3" data-vc="header">\n <div class="col-span-1">\n <#CustomArrowPrev />\n </div>\n <div class="col-span-3 flex justify-center items-center gap-x-1">\n <#Month />\n <span class="text-gray-800 ${"light"!==e?"dark:text-neutral-200":""}">/</span>\n <#Year />\n </div>\n <div class="col-span-1 flex justify-end">\n <#CustomArrowNext />\n </div>\n </div>\n </div>\n <div data-vc="wrapper">\n <div data-vc="content">\n <#Years />\n </div>\n </div>`,month:(e=!1)=>`<div class="pb-3" data-vc="header" role="toolbar">\n <div class="flex justify-center items-center gap-x-1" data-vc-header="content">\n <#Month />\n <span class="text-gray-800 ${"light"!==e?"dark:text-neutral-200":""}">/</span>\n <#Year />\n </div>\n </div>\n <div data-vc="wrapper">\n <div data-vc="content">\n <#Months />\n </div>\n </div>`,years:(e,t=!1)=>`<div class="relative">\n <span class="hidden" data-vc="year"></span>\n <select data-hs-select='{\n "placeholder": "Select year",\n "dropdownScope": "parent",\n "dropdownVerticalFixedPlacement": "bottom",\n "toggleTag": "<button type=\\"button\\"><span data-title></span></button>",\n "toggleClasses": "hs-select-disabled:pointer-events-none hs-select-disabled:opacity-50 relative flex text-nowrap w-full cursor-pointer text-start font-medium text-gray-800 hover:text-gray-600 focus:outline-hidden focus:text-gray-600 before:absolute before:inset-0 before:z-1 ${"light"!==t?"dark:text-neutral-200 dark:hover:text-neutral-300 dark:focus:text-neutral-300":""}",\n "dropdownClasses": "mt-2 z-50 w-20 max-h-60 p-1 space-y-0.5 bg-white border border-gray-200 rounded-lg shadow-lg overflow-hidden overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 ${"light"!==t?"dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-900 dark:border-neutral-700":""}",\n "optionClasses": "p-2 w-full text-sm text-gray-800 cursor-pointer hover:bg-gray-100 rounded-lg focus:outline-hidden focus:bg-gray-100 ${"light"!==t?"dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:text-neutral-200 dark:focus:bg-neutral-800":""}",\n "optionTemplate": "<div class=\\"flex justify-between items-center w-full\\"><span data-title></span><span class=\\"hidden hs-selected:block\\"><svg class=\\"shrink-0 size-3.5 text-gray-800 ${"light"!==t?"dark:text-neutral-200":""}\\" xmlns=\\"http://www.w3.org/2000/svg\\" width=\\"24\\" height=\\"24\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" stroke=\\"currentColor\\" stroke-width=\\"2\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\"><polyline points=\\"20 6 9 17 4 12\\"/></svg></span></div>"\n }' class="hidden --year --prevent-on-load-init">\n ${e}\n </select>\n </div>`,months:(e=!1)=>`<div class="relative">\n <span class="hidden" data-vc="month"></span>\n <select data-hs-select='{\n "placeholder": "Select month",\n "dropdownScope": "parent",\n "dropdownVerticalFixedPlacement": "bottom",\n "toggleTag": "<button type=\\"button\\"><span data-title></span></button>",\n "toggleClasses": "hs-select-disabled:pointer-events-none hs-select-disabled:opacity-50 relative flex text-nowrap w-full cursor-pointer text-start font-medium text-gray-800 hover:text-gray-600 focus:outline-hidden focus:text-gray-600 before:absolute before:inset-0 before:z-1 ${"light"!==e?"dark:text-neutral-200 dark:hover:text-neutral-300 dark:focus:text-neutral-300":""}",\n "dropdownClasses": "mt-2 z-50 w-32 max-h-60 p-1 space-y-0.5 bg-white border border-gray-200 rounded-lg shadow-lg overflow-hidden overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 ${"light"!==e?"dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-900 dark:border-neutral-700":""}",\n "optionClasses": "p-2 w-full text-sm text-gray-800 cursor-pointer hover:bg-gray-100 rounded-lg hs-select-disabled:opacity-50 hs-select-disabled:pointer-events-none focus:outline-hidden focus:bg-gray-100 ${"light"!==e?"dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:text-neutral-200 dark:focus:bg-neutral-800":""}",\n "optionTemplate": "<div class=\\"flex justify-between items-center w-full\\"><span data-title></span><span class=\\"hidden hs-selected:block\\"><svg class=\\"shrink-0 size-3.5 text-gray-800 ${"light"!==e?"dark:text-neutral-200":""}\\" xmlns=\\"http://www.w3.org/2000/svg\\" width=\\"24\\" height=\\"24\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" stroke=\\"currentColor\\" stroke-width=\\"2\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\"><polyline points=\\"20 6 9 17 4 12\\"/></svg></span></div>"\n }' class="hidden --month --prevent-on-load-init">\n <option value="0">January</option>\n <option value="1">February</option>\n <option value="2">March</option>\n <option value="3">April</option>\n <option value="4">May</option>\n <option value="5">June</option>\n <option value="6">July</option>\n <option value="7">August</option>\n <option value="8">September</option>\n <option value="9">October</option>\n <option value="10">November</option>\n <option value="11">December</option>\n </select>\n </div>`,hours:(e=!1)=>`<div class="relative">\n <select class="--hours hidden" data-hs-select='{\n "placeholder": "Select option...",\n "dropdownVerticalFixedPlacement": "top",\n "toggleClasses": "hs-select-disabled:pointer-events-none hs-select-disabled:opacity-50 relative py-1 px-2 pe-6 flex text-nowrap w-full cursor-pointer bg-white border border-gray-200 rounded-lg text-start text-sm focus:border-blue-500 focus:ring-blue-500 before:absolute before:inset-0 before:z-1 ${"light"!==e?"dark:bg-neutral-900 dark:border-neutral-700 dark:text-neutral-400":""}",\n "dropdownClasses": "mt-2 z-50 w-full min-w-24 max-h-72 p-1 space-y-0.5 bg-white border border-gray-200 rounded-lg overflow-hidden overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 ${"light"!==e?"dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-900 dark:border-neutral-700":""}",\n "optionClasses": "hs-selected:bg-gray-100 ${"light"!==e?"dark:hs-selected:bg-neutral-800":""} py-2 px-4 w-full text-sm text-gray-800 cursor-pointer hover:bg-gray-100 rounded-lg focus:outline-hidden focus:bg-gray-100 ${"light"!==e?"dark:hs-selected:bg-gray-700":""} ${"light"!==e?"dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:text-neutral-200 dark:focus:bg-neutral-800":""}",\n "optionTemplate": "<div class=\\"flex justify-between items-center w-full\\"><span data-title></span></div>"\n }'>\n <option value="01">01</option>\n <option value="02">02</option>\n <option value="03">03</option>\n <option value="04">04</option>\n <option value="05">05</option>\n <option value="06">06</option>\n <option value="07">07</option>\n <option value="08">08</option>\n <option value="09">09</option>\n <option value="10">10</option>\n <option value="11">11</option>\n <option value="12" selected>12</option>\n </select>\n <div class="absolute top-1/2 end-2 -translate-y-1/2">\n <svg class="shrink-0 size-3 text-gray-500 ${"light"!==e?"dark:text-neutral-500":""}" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m7 15 5 5 5-5"/><path d="m7 9 5-5 5 5"/></svg>\n </div>\n </div>`,minutes:(e=!1)=>`<div class="relative">\n <select class="--minutes hidden" data-hs-select='{\n "placeholder": "Select option...",\n "dropdownVerticalFixedPlacement": "top",\n "toggleClasses": "hs-select-disabled:pointer-events-none hs-select-disabled:opacity-50 relative py-1 px-2 pe-6 flex text-nowrap w-full cursor-pointer bg-white border border-gray-200 rounded-lg text-start text-sm focus:border-blue-500 focus:ring-blue-500 before:absolute before:inset-0 before:z-1 ${"light"!==e?"dark:bg-neutral-900 dark:border-neutral-700 dark:text-neutral-400":""}",\n "dropdownClasses": "mt-2 z-50 w-full min-w-24 max-h-72 p-1 space-y-0.5 bg-white border border-gray-200 rounded-lg overflow-hidden overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 ${"light"!==e?"dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-900 dark:border-neutral-700":""}",\n "optionClasses": "hs-selected:bg-gray-100 ${"light"!==e?"dark:hs-selected:bg-neutral-800":""} py-2 px-4 w-full text-sm text-gray-800 cursor-pointer hover:bg-gray-100 rounded-lg focus:outline-hidden focus:bg-gray-100 ${"light"!==e?"dark:hs-selected:bg-gray-700":""} ${"light"!==e?"dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:text-neutral-200 dark:focus:bg-neutral-800":""}",\n "optionTemplate": "<div class=\\"flex justify-between items-center w-full\\"><span data-title></span></div>"\n }'>\n <option value="00" selected>00</option>\n <option value="01">01</option>\n <option value="02">02</option>\n <option value="03">03</option>\n <option value="04">04</option>\n <option value="05">05</option>\n <option value="06">06</option>\n <option value="07">07</option>\n <option value="08">08</option>\n <option value="09">09</option>\n <option value="10">10</option>\n <option value="11">11</option>\n <option value="12">12</option>\n <option value="13">13</option>\n <option value="14">14</option>\n <option value="15">15</option>\n <option value="16">16</option>\n <option value="17">17</option>\n <option value="18">18</option>\n <option value="19">19</option>\n <option value="20">20</option>\n <option value="21">21</option>\n <option value="22">22</option>\n <option value="23">23</option>\n <option value="24">24</option>\n <option value="25">25</option>\n <option value="26">26</option>\n <option value="27">27</option>\n <option value="28">28</option>\n <option value="29">29</option>\n <option value="30">30</option>\n <option value="31">31</option>\n <option value="32">32</option>\n <option value="33">33</option>\n <option value="34">34</option>\n <option value="35">35</option>\n <option value="36">36</option>\n <option value="37">37</option>\n <option value="38">38</option>\n <option value="39">39</option>\n <option value="40">40</option>\n <option value="41">41</option>\n <option value="42">42</option>\n <option value="43">43</option>\n <option value="44">44</option>\n <option value="45">45</option>\n <option value="46">46</option>\n <option value="47">47</option>\n <option value="48">48</option>\n <option value="49">49</option>\n <option value="50">50</option>\n <option value="51">51</option>\n <option value="52">52</option>\n <option value="53">53</option>\n <option value="54">54</option>\n <option value="55">55</option>\n <option value="56">56</option>\n <option value="57">57</option>\n <option value="58">58</option>\n <option value="59">59</option>\n </select>\n <div class="absolute top-1/2 end-2 -translate-y-1/2">\n <svg class="shrink-0 size-3 text-gray-500 ${"light"!==e?"dark:text-neutral-500":""}" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m7 15 5 5 5-5"/><path d="m7 9 5-5 5 5"/></svg>\n </div>\n </div>`,meridiem:(e=!1)=>`<div class="relative">\n <select class="--meridiem hidden" data-hs-select='{\n "placeholder": "Select option...",\n "dropdownVerticalFixedPlacement": "top",\n "toggleClasses": "hs-select-disabled:pointer-events-none hs-select-disabled:opacity-50 relative py-1 px-2 pe-6 flex text-nowrap w-full cursor-pointer bg-white border border-gray-200 rounded-lg text-start text-sm focus:border-blue-500 focus:ring-blue-500 before:absolute before:inset-0 before:z-1 ${"light"!==e?"dark:bg-neutral-900 dark:border-neutral-700 dark:text-neutral-400":""}",\n "dropdownClasses": "mt-2 z-50 w-full min-w-24 max-h-72 p-1 space-y-0.5 bg-white border border-gray-200 rounded-lg overflow-hidden overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 ${"light"!==e?"dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-900 dark:border-neutral-700":""}",\n "optionClasses": "hs-selected:bg-gray-100 ${"light"!==e?"dark:hs-selected:bg-neutral-800":""} py-2 px-4 w-full text-sm text-gray-800 cursor-pointer hover:bg-gray-100 rounded-lg focus:outline-hidden focus:bg-gray-100 ${"light"!==e?"dark:hs-selected:bg-gray-700":""} ${"light"!==e?"dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:text-neutral-200 dark:focus:bg-neutral-800":""}",\n "optionTemplate": "<div class=\\"flex justify-between items-center w-full\\"><span data-title></span></div>"\n }'>\n <option value="PM" selected>PM</option>\n <option value="AM">AM</option>\n </select>\n <div class="absolute top-1/2 end-2 -translate-y-1/2">\n <svg class="shrink-0 size-3 text-gray-500 ${"light"!==e?"dark:text-neutral-500":""}" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m7 15 5 5 5-5"/><path d="m7 9 5-5 5 5"/></svg>\n </div>\n </div>`}},223:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BREAKPOINTS=t.COMBO_BOX_ACCESSIBILITY_KEY_SET=t.SELECT_ACCESSIBILITY_KEY_SET=t.TABS_ACCESSIBILITY_KEY_SET=t.OVERLAY_ACCESSIBILITY_KEY_SET=t.DROPDOWN_ACCESSIBILITY_KEY_SET=t.POSITIONS=void 0,t.POSITIONS={auto:"auto","auto-start":"auto-start","auto-end":"auto-end",top:"top","top-left":"top-start","top-right":"top-end",bottom:"bottom","bottom-left":"bottom-start","bottom-right":"bottom-end",right:"right","right-start":"right-start","right-end":"right-end",left:"left","left-start":"left-start","left-end":"left-end"},t.DROPDOWN_ACCESSIBILITY_KEY_SET=["Escape","ArrowUp","ArrowDown","ArrowRight","ArrowLeft","Home","End","Enter"],t.OVERLAY_ACCESSIBILITY_KEY_SET=["Escape","Tab"],t.TABS_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End"],t.SELECT_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End","Escape","Enter","Space","Tab"],t.COMBO_BOX_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End","Escape","Enter"],t.BREAKPOINTS={xs:0,sm:640,md:768,lg:1024,xl:1280,"2xl":1536}},248:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(){this.components=[],this.currentlyOpenedComponents=[],this.activeComponent=null,this.allowedKeybindings=new Set(["Escape","Enter"," ","Space","ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Tab","Home","End"]),this.initGlobalListeners()}initGlobalListeners(){document.addEventListener("keydown",(e=>this.handleGlobalKeydown(e))),document.addEventListener("focusin",(e=>this.handleGlobalFocusin(e)))}isAllowedKeybinding(e){return!!this.allowedKeybindings.has(e.key)||!(1!==e.key.length||!/^[a-zA-Z]$/.test(e.key)||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)}getActiveComponent(e){if(!e)return null;const t=this.components.filter((t=>t.wrapper.contains(e)||t.context&&t.context.contains(e)));if(0===t.length)return null;if(1===t.length)return t[0];let n=null,s=Number.MAX_SAFE_INTEGER;for(const i of t){let t=0,o=e;for(;o&&o!==i.wrapper&&o!==i.context;)t++,o=o.parentElement;t<s&&(s=t,n=i)}return n}handleGlobalFocusin(e){const t=e.target;this.activeComponent=this.getActiveComponent(t)}handleGlobalKeydown(e){const t=e.target;if(this.activeComponent=this.getActiveComponent(t),this.activeComponent&&this.isAllowedKeybinding(e))switch(e.key){case"Escape":if(this.activeComponent.isOpened)this.activeComponent.handlers.onEsc&&(this.activeComponent.handlers.onEsc(),e.preventDefault(),e.stopPropagation());else{const n=this.findClosestOpenParent(t);(null==n?void 0:n.handlers.onEsc)&&(n.handlers.onEsc(),e.preventDefault(),e.stopPropagation())}break;case"Enter":this.activeComponent.handlers.onEnter&&(this.activeComponent.handlers.onEnter(),e.preventDefault(),e.stopPropagation());break;case" ":case"Space":if("INPUT"===t.tagName||"TEXTAREA"===t.tagName)return;this.activeComponent.handlers.onSpace&&(this.activeComponent.handlers.onSpace(),e.preventDefault(),e.stopPropagation());break;case"ArrowDown":case"ArrowUp":case"ArrowLeft":case"ArrowRight":if(this.activeComponent.handlers.onArrow){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;this.activeComponent.handlers.onArrow(e),e.preventDefault(),e.stopPropagation()}break;case"Tab":if(!this.activeComponent.handlers.onTab)break;const n=e.shiftKey?this.activeComponent.handlers.onShiftTab:this.activeComponent.handlers.onTab;n&&n();break;case"Home":this.activeComponent.handlers.onHome&&(this.activeComponent.handlers.onHome(),e.preventDefault(),e.stopPropagation());break;case"End":this.activeComponent.handlers.onEnd&&(this.activeComponent.handlers.onEnd(),e.preventDefault(),e.stopPropagation());break;default:this.activeComponent.handlers.onFirstLetter&&1===e.key.length&&/^[a-zA-Z]$/.test(e.key)&&(this.activeComponent.handlers.onFirstLetter(e.key),e.preventDefault(),e.stopPropagation())}}findClosestOpenParent(e){let t=e.parentElement;for(;t;){const e=this.currentlyOpenedComponents.find((e=>e.wrapper===t&&e!==this.activeComponent));if(e)return e;t=t.parentElement}return null}registerComponent(e,t,n=!0,s="",i="",o){const a={wrapper:e,handlers:t,isOpened:n,name:s,selector:i,context:o,isRegistered:!0};return this.components.push(a),a}updateComponentState(e,t){e.isOpened=t,t?this.currentlyOpenedComponents.includes(e)||this.currentlyOpenedComponents.push(e):this.currentlyOpenedComponents=this.currentlyOpenedComponents.filter((t=>t!==e))}unregisterComponent(e){this.components=this.components.filter((t=>t!==e)),this.currentlyOpenedComponents=this.currentlyOpenedComponents.filter((t=>t!==e))}addAllowedKeybinding(e){this.allowedKeybindings.add(e)}removeAllowedKeybinding(e){this.allowedKeybindings.delete(e)}getAllowedKeybindings(){return Array.from(this.allowedKeybindings)}}},292:function(e,t){"use strict"; /* * @version: 3.2.3 * @author: Preline Labs Ltd. * @license: Licensed under MIT and Preline UI Fair Use License (https://preline.co/docs/license.html) * Copyright 2024 Preline Labs Ltd. */Object.defineProperty(t,"__esModule",{value:!0}),t.stringToBoolean=t.menuSearchHistory=t.isScrollable=t.isParentOrElementHidden=t.isJson=t.isIpadOS=t.isIOS=t.isFormElement=t.isFocused=t.isEnoughSpace=t.isDirectChild=t.htmlToElement=t.getZIndex=t.getHighestZIndex=t.getClassPropertyAlt=t.getClassProperty=t.dispatch=t.debounce=t.classToClassList=t.afterTransition=void 0,t.stringToBoolean=e=>"true"===e,t.getClassProperty=(e,t,n="")=>(window.getComputedStyle(e).getPropertyValue(t)||n).replace(" ",""),t.getClassPropertyAlt=(e,t,n="")=>{let s="";return e.classList.forEach((e=>{e.includes(t)&&(s=e)})),s.match(/:(.*)]/)?s.match(/:(.*)]/)[1]:n};const n=e=>window.getComputedStyle(e).getPropertyValue("z-index");t.getZIndex=n,t.getHighestZIndex=e=>{let t=Number.NEGATIVE_INFINITY;return e.forEach((e=>{let s=n(e);"auto"!==s&&(s=parseInt(s,10),s>t&&(t=s))})),t},t.isDirectChild=(e,t)=>{const n=e.children;for(let e=0;e<n.length;e++)if(n[e]===t)return!0;return!1},t.isEnoughSpace=(e,t,n="auto",s=10,i=null)=>{const o=t.getBoundingClientRect(),a=i?i.getBoundingClientRect():null,l=window.innerHeight,r=a?o.top-a.top:o.top,d=(i?a.bottom:l)-o.bottom,c=e.clientHeight+s;return"bottom"===n?d>=c:"top"===n?r>=c:r>=c||d>=c},t.isFocused=e=>document.activeElement===e,t.isFormElement=e=>e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement,t.isIOS=()=>!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform),t.isIpadOS=()=>navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform),t.isJson=e=>{if("string"!=typeof e)return!1;const t=e.trim()[0],n=e.trim().slice(-1);if("{"===t&&"}"===n||"["===t&&"]"===n)try{return JSON.parse(e),!0}catch(e){return!1}return!1};const s=e=>!!e&&("none"===window.getComputedStyle(e).display||s(e.parentElement));t.isParentOrElementHidden=s,t.isScrollable=e=>{const t=window.getComputedStyle(e),n=t.overflowY,s=t.overflowX,i=("scroll"===n||"auto"===n)&&e.scrollHeight>e.clientHeight,o=("scroll"===s||"auto"===s)&&e.scrollWidth>e.clientWidth;return i||o},t.debounce=(e,t=200)=>{let n;return(...s)=>{clearTimeout(n),n=setTimeout((()=>{e.apply(this,s)}),t)}},t.dispatch=(e,t,n=null)=>{const s=new CustomEvent(e,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});t.dispatchEvent(s)},t.afterTransition=(e,t)=>{const n=()=>{t(),e.removeEventListener("transitionend",n,!0)},s=window.getComputedStyle(e),i=s.getPropertyValue("transition-duration");"none"!==s.getPropertyValue("transition-property")&&parseFloat(i)>0?e.addEventListener("transitionend",n,!0):t()},t.htmlToElement=e=>{const t=document.createElement("template");return e=e.trim(),t.innerHTML=e,t.content.firstChild},t.classToClassList=(e,t,n=" ",s="add")=>{e.split(n).forEach((e=>{e.trim()&&("add"===s?t.classList.add(e):t.classList.remove(e))}))};const i={historyIndex:-1,addHistory(e){this.historyIndex=e},existsInHistory(e){return e>this.historyIndex},clearHistory(){this.historyIndex=-1}};t.menuSearchHistory=i},359:function(e,t){ /*! name: vanilla-calendar-pro v3.0.5 | url: https://github.com/uvarov-frontend/vanilla-calendar-pro */ !function(e){"use strict";var t=Object.defineProperty,n=Object.defineProperties,s=Object.getOwnPropertyDescriptors,i=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,l=(e,n,s)=>n in e?t(e,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[n]=s,r=(e,t)=>{for(var n in t||(t={}))o.call(t,n)&&l(e,n,t[n]);if(i)for(var n of i(t))a.call(t,n)&&l(e,n,t[n]);return e},d=(e,t,n)=>(l(e,"symbol"!=typeof t?t+"":t,n),n);const c=e=>`${e} is not found, check the first argument passed to new Calendar.`,u='The calendar has not been initialized, please initialize it using the "init()" method first.',h="You specified an incorrect language label or did not specify the required number of values ​​for «locale.weekdays» or «locale.months».",p="The value of the time property can be: false, 12 or 24.",m="For the «multiple» calendar type, the «displayMonthsCount» parameter can have a value from 2 to 12, and for all others it cannot be greater than 1.",v=(e,t,n)=>{e.context[t]=n},g=e=>{e.context.isShowInInputMode&&e.context.currentType&&(e.context.mainElement.dataset.vcCalendarHidden="",v(e,"isShowInInputMode",!1),e.context.cleanupHandlers[0]&&(e.context.cleanupHandlers.forEach((e=>e())),v(e,"cleanupHandlers",[])),e.onHide&&e.onHide(e))};function y(e){if(!e||!e.getBoundingClientRect)return{top:0,bottom:0,left:0,right:0};const t=e.getBoundingClientRect(),n=document.documentElement;return{bottom:t.bottom,right:t.right,top:t.top+window.scrollY-n.clientTop,left:t.left+window.scrollX-n.clientLeft}}function b(){return{vw:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),vh:Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)}}function f(e){const{top:t,left:n}={left:window.scrollX||document.documentElement.scrollLeft||0,top:window.scrollY||document.documentElement.scrollTop||0},{top:s,left:i}=y(e),{vh:o,vw:a}=b(),l=s-t,r=i-n;return{top:l,bottom:o-(l+e.clientHeight),left:r,right:a-(r+e.clientWidth)}}function w(e,t,n=5){const s={top:!0,bottom:!0,left:!0,right:!0},i=[];if(!t||!e)return{canShow:s,parentPositions:i};const{bottom:o,top:a}=f(e),{top:l,left:r}=y(e),{height:d,width:c}=t.getBoundingClientRect(),{vh:u,vw:h}=b(),p=h/2,m=u/2;return[{condition:l<m,position:"top"},{condition:l>m,position:"bottom"},{condition:r<p,position:"left"},{condition:r>p,position:"right"}].forEach((({condition:e,position:t})=>{e&&i.push(t)})),Object.assign(s,{top:d<=a-n,bottom:d<=o-n,left:c<=r,right:c<=h-r}),{canShow:s,parentPositions:i}}const x=(e,t)=>{var n;e.popups&&(null==(n=Object.entries(e.popups))||n.forEach((([n,s])=>((e,t,n,s)=>{var i;const o=s.querySelector(`[data-vc-date="${t}"]`),a=null==o?void 0:o.querySelector("[data-vc-date-btn]");if(!o||!a)return;if((null==n?void 0:n.modifier)&&a.classList.add(...n.modifier.trim().split(" ")),!(null==n?void 0:n.html))return;const l=document.createElement("div");l.className=e.styles.datePopup,l.dataset.vcDatePopup="",l.innerHTML=e.sanitizerHTML(n.html),a.ariaExpanded="true",a.ariaLabel=`${a.ariaLabel}, ${null==(i=null==l?void 0:l.textContent)?void 0:i.replace(/^\s+|\s+(?=\s)|\s+$/g,"").replace(/&nbsp;/g," ")}`,o.appendChild(l),requestAnimationFrame((()=>{if(!l)return;const{canShow:e}=w(o,l),t=e.bottom?o.offsetHeight:-l.offsetHeight,n=e.left&&!e.right?o.offsetWidth-l.offsetWidth/2:!e.left&&e.right?l.offsetWidth/2:0;Object.assign(l.style,{left:`${n}px`,top:`${t}px`})}))})(e,n,s,t))))},M=e=>new Date(`${e}T00:00:00`),T=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,S=e=>e.reduce(((e,t)=>{if(t instanceof Date||"number"==typeof t){const n=t instanceof Date?t:new Date(t);e.push(n.toISOString().substring(0,10))}else t.match(/^(\d{4}-\d{2}-\d{2})$/g)?e.push(t):t.replace(/(\d{4}-\d{2}-\d{2}).*?(\d{4}-\d{2}-\d{2})/g,((t,n,s)=>{const i=M(n),o=M(s),a=new Date(i.getTime());for(;a<=o;a.setDate(a.getDate()+1))e.push(T(a));return t}));return e}),[]),E=(e,t,n,s="")=>{t?e.setAttribute(n,s):e.getAttribute(n)===s&&e.removeAttribute(n)},C=(e,t,n,s,i,o,a)=>{var l,r,d,c;const u=M(e.context.displayDateMin)>M(o)||M(e.context.displayDateMax)<M(o)||(null==(l=e.context.disableDates)?void 0:l.includes(o))||!e.selectionMonthsMode&&"current"!==a||!e.selectionYearsMode&&M(o).getFullYear()!==t;E(n,u,"data-vc-date-disabled"),s&&E(s,u,"aria-disabled","true"),s&&E(s,u,"tabindex","-1"),E(n,!e.disableToday&&e.context.dateToday===o,"data-vc-date-today"),E(n,!e.disableToday&&e.context.dateToday===o,"aria-current","date"),E(n,null==(r=e.selectedWeekends)?void 0:r.includes(i),"data-vc-date-weekend");const h=(null==(d=e.selectedHolidays)?void 0:d[0])?S(e.selectedHolidays):[];if(E(n,h.includes(o),"data-vc-date-holiday"),(null==(c=e.context.selectedDates)?void 0:c.includes(o))?(n.setAttribute("data-vc-date-selected",""),s&&s.setAttribute("aria-selected","true"),e.context.selectedDates.length>1&&"multiple-ranged"===e.selectionDatesMode&&(e.context.selectedDates[0]===o&&e.context.selectedDates[e.context.selectedDates.length-1]===o?n.setAttribute("data-vc-date-selected","first-and-last"):e.context.selectedDates[0]===o?n.setAttribute("data-vc-date-selected","first"):e.context.selectedDates[e.context.selectedDates.length-1]===o&&n.setAttribute("data-vc-date-selected","last"),e.context.selectedDates[0]!==o&&e.context.selectedDates[e.context.selectedDates.length-1]!==o&&n.setAttribute("data-vc-date-selected","middle"))):n.hasAttribute("data-vc-date-selected")&&(n.removeAttribute("data-vc-date-selected"),s&&s.removeAttribute("aria-selected")),!e.context.disableDates.includes(o)&&e.enableEdgeDatesOnly&&e.context.selectedDates.length>1&&"multiple-ranged"===e.selectionDatesMode){const t=M(e.context.selectedDates[0]),s=M(e.context.selectedDates[e.context.selectedDates.length-1]),i=M(o);E(n,i>t&&i<s,"data-vc-date-selected","middle")}},D=(e,t)=>{const n=M(e),s=(n.getDay()-t+7)%7;n.setDate(n.getDate()+4-s);const i=new Date(n.getFullYear(),0,1),o=Math.ceil(((+n-+i)/864e5+1)/7);return{year:n.getFullYear(),week:o}},k=(e,t,n,s,i,o)=>{const a=M(i).getDay(),l="string"==typeof e.locale&&e.locale.length?e.locale:"en",r=document.createElement("div");let d;r.className=e.styles.date,r.dataset.vcDate=i,r.dataset.vcDateMonth=o,r.dataset.vcDateWeekDay=String(a),("current"===o||e.displayDatesOutside)&&(d=document.createElement("button"),d.className=e.styles.dateBtn,d.type="button",d.role="gridcell",d.ariaLabel=((e,t,n)=>new Date(`${e}T00:00:00.000Z`).toLocaleString(t,n))(i,l,{dateStyle:"long",timeZone:"UTC"}),d.dataset.vcDateBtn="",d.innerText=String(s),r.appendChild(d)),e.enableWeekNumbers&&((e,t,n)=>{const s=D(n,e.firstWeekday);s&&(t.dataset.vcDateWeekNumber=String(s.week))})(e,r,i),((e,t,n)=>{var s,i,o,a,l;const r=null==(s=e.disableWeekdays)?void 0:s.includes(n),d=e.disableAllDates&&!!(null==(i=e.context.enableDates)?void 0:i[0]);!r&&!d||(null==(o=e.context.enableDates)?void 0:o.includes(t))||(null==(a=e.context.disableDates)?void 0:a.includes(t))||(e.context.disableDates.push(t),null==(l=e.context.disableDates)||l.sort(((e,t)=>+new Date(e)-+new Date(t))))})(e,i,a),C(e,t,r,d,a,i,o),n.appendChild(r),e.onCreateDateEls&&e.onCreateDateEls(e,r)},I=e=>{const t=new Date(e.context.selectedYear,e.context.selectedMonth,1),n=e.context.mainElement.querySelectorAll('[data-vc="dates"]'),s=e.context.mainElement.querySelectorAll('[data-vc-week="numbers"]');n.forEach(((n,i)=>{e.selectionDatesMode||(n.dataset.vcDatesDisabled=""),n.textContent="";const o=new Date(t);o.setMonth(o.getMonth()+i);const a=o.getMonth(),l=o.getFullYear(),r=(new Date(l,a,1).getDay()-e.firstWeekday+7)%7,d=new Date(l,a+1,0).getDate();((e,t,n,s,i)=>{let o=new Date(n,s,0).getDate()-(i-1);const a=0===s?n-1:n,l=0===s?12:s<10?`0${s}`:s;for(let s=i;s>0;s--,o++)k(e,n,t,o,`${a}-${l}-${o}`,"prev")})(e,n,l,a,r),((e,t,n,s,i)=>{for(let o=1;o<=n;o++){const n=new Date(s,i,o);k(e,s,t,o,T(n),"current")}})(e,n,d,l,a),((e,t,n,s,i,o)=>{const a=o+n,l=7*Math.ceil(a/7)-a,r=i+1===12?s+1:s,d=i+1===12?"01":i+2<10?`0${i+2}`:i+2;for(let n=1;n<=l;n++){const i=n<10?`0${n}`:String(n);k(e,s,t,n,`${r}-${d}-${i}`,"next")}})(e,n,d,l,a,r),x(e,n),((e,t,n,s,i)=>{if(!e.enableWeekNumbers)return;s.textContent="";const o=document.createElement("b");o.className=e.styles.weekNumbersTitle,o.innerText="#",o.dataset.vcWeekNumbers="title",s.appendChild(o);const a=document.createElement("div");a.className=e.styles.weekNumbersContent,a.dataset.vcWeekNumbers="content",s.appendChild(a);const l=document.createElement("button");l.type="button",l.className=e.styles.weekNumber;const r=i.querySelectorAll("[data-vc-date]"),d=Math.ceil((t+n)/7);for(let t=0;t<d;t++){const n=r[0===t?6:7*t].dataset.vcDate,s=D(n,e.firstWeekday