preline
Version:
Preline UI is an open-source set of prebuilt UI components based on the utility-first Tailwind CSS framework.
9 lines • 168 kB
JavaScript
var e={189(e,t,n){n.d(t,{lP:()=>o});const o={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"}},8862(e,t,n){n.d(t,{A:()=>i});var o=n(1926);const i=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,o=Number.MAX_SAFE_INTEGER;for(const i of t){let t=0,s=e;for(;s&&s!==i.wrapper&&s!==i.context;)t++,s=s.parentElement;t<o&&(o=t,n=i)}return n}getActiveComponentForKey(e,t){if(!e)return null;const n=this.components.filter(t=>t.wrapper.contains(e)||t.context&&t.context.contains(e));if(0===n.length)return null;const o=n.filter(e=>{const n=e.handlers;switch(t){case"Escape":return!!n.onEsc;case"Enter":return!!n.onEnter;case" ":case"Space":return!!n.onSpace;case"ArrowDown":case"ArrowUp":case"ArrowLeft":case"ArrowRight":return!!n.onArrow;case"Tab":return!!n.onTab||!!n.onShiftTab;case"Home":return!!n.onHome;case"End":return!!n.onEnd;default:return!!n.onFirstLetter}});if(0===o.length)return this.getActiveComponent(e);if(1===o.length)return o[0];let i=null,s=Number.MAX_SAFE_INTEGER;for(const t of o){let n=0,o=e;for(;o&&o!==t.wrapper&&o!==t.context;)n++,o=o.parentElement;n<s&&(s=n,i=t)}return i}getDistanceToComponent(e,t){let n=0,o=e;for(;o&&o!==t.wrapper&&o!==t.context;)n++,o=o.parentElement;return n}getComponentsByNesting(e){if(!e)return[];const t=this.components.filter(t=>t.wrapper.contains(e)||t.context&&t.context.contains(e));return t.length<=1?t:[...t].sort((t,n)=>this.getDistanceToComponent(e,n)-this.getDistanceToComponent(e,t))}getSequentialHandlersForKey(e,t){const n=this.getComponentsByNesting(e);return 0===n.length?[]:n.map(e=>"Enter"===t?e.handlers.onEnter:e.handlers.onSpace).filter(e=>"function"==typeof e)}executeSequentialHandlers(e,t){let n=!1,o=!1;for(const i of e){n=!0;if(!1===i(t)){o=!0;break}}return{called:n,stopped:o}}handleGlobalFocusin(e){const t=e.target;this.activeComponent=this.getActiveComponent(t)}handleGlobalKeydown(e){var t;const n=e.target;this.activeComponent=this.getActiveComponentForKey(n,e.key);const i=this.activeComponent,s="Enter"===e.key||" "===e.key||"Space"===e.key;if((i||s)&&this.isAllowedKeybinding(e))switch(e.key){case"Escape":if(!i)break;if(i.isOpened){if(i.handlers.onEsc){const t=i.handlers.onEsc();if(e.preventDefault(),e.stopPropagation(),!1===t){const e=this.findClosestOpenParent(n);(null==e?void 0:e.handlers.onEsc)&&e.handlers.onEsc()}}}else{const t=this.findClosestOpenParent(n);(null==t?void 0:t.handlers.onEsc)&&(t.handlers.onEsc(),e.preventDefault(),e.stopPropagation())}break;case"Enter":{const t=this.getSequentialHandlersForKey(n,"Enter");if(0===t.length)break;const{called:i,stopped:s}=this.executeSequentialHandlers(t,e);if(i&&!(0,o.V6)(n)&&(e.stopPropagation(),e.preventDefault()),s)break;break}case" ":case"Space":{if("INPUT"===n.tagName||"TEXTAREA"===n.tagName)return;const t=this.getActiveComponent(n),o=this.getSequentialHandlersForKey(n,"Space");if(0===o.length)break;const{stopped:i}=this.executeSequentialHandlers(o);(i||(null==t?void 0:t.handlers.onSpace))&&(e.preventDefault(),e.stopPropagation());break}case"ArrowDown":case"ArrowUp":case"ArrowLeft":case"ArrowRight":if(!i)break;if(i.handlers.onArrow){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;i.handlers.onArrow(e),e.preventDefault(),e.stopPropagation()}break;case"Tab":if(!i)break;if(!i.handlers.onTab)break;const s=e.shiftKey?i.handlers.onShiftTab:i.handlers.onTab;s&&s(e);break;case"Home":if(!i)break;i.handlers.onHome&&(i.handlers.onHome(),e.preventDefault(),e.stopPropagation());break;case"End":if(!i)break;i.handlers.onEnd&&(i.handlers.onEnd(),e.preventDefault(),e.stopPropagation());break;default:if(!i)break;if(i.handlers.onFirstLetter&&1===e.key.length&&/^[a-zA-Z]$/.test(e.key)){if(i.handlers.onFirstLetter(e.key),!(null===(t=i.stopPropagation)||void 0===t?void 0:t.onFirstLetter))return;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,o="",i="",s,a){const l={wrapper:e,handlers:t,isOpened:n,name:o,selector:i,context:s,isRegistered:!0,stopPropagation:a};return this.components.push(l),l}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)}}},7615(e,t,n){n.d(t,{A:()=>o});
/*
* HSBasePlugin
* @version: 4.2.0
* @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.
*/
class o{constructor(e,t,n){this.el=e,this.options=t,this.events=n,this.el=e,this.options=t,this.events={}}createCollection(e,t){var n,o;let i=e;if(!Array.isArray(i)&&"undefined"!=typeof window){const e=null===(n=this.constructor)||void 0===n?void 0:n.name,t="string"==typeof e&&e.startsWith("HS")?`$hs${e.slice(2)}Collection`:null;t&&(Array.isArray(window[t])||(window[t]=[]),i=window[t])}Array.isArray(i)&&i.push({id:(null===(o=null==t?void 0:t.el)||void 0===o?void 0:o.id)||i.length+1,element:t})}fireEvent(e,t=null){if(this.events.hasOwnProperty(e))return this.events[e](t)}on(e,t){this.events[e]=t}}},63(e,t,n){n.d(t,{A:()=>dt});var o=n(1926),i=Object.defineProperty,s=Object.defineProperties,a=Object.getOwnPropertyDescriptors,l=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,d=Object.prototype.propertyIsEnumerable,c=(e,t,n)=>t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,u=(e,t)=>{for(var n in t||(t={}))r.call(t,n)&&c(e,n,t[n]);if(l)for(var n of l(t))d.call(t,n)&&c(e,n,t[n]);return e},h=(e,t,n)=>(c(e,"symbol"!=typeof t?t+"":t,n),n);const p=e=>`${e} is not found, check the first argument passed to new Calendar.`,v='The calendar has not been initialized, please initialize it using the "init()" method first.',m="You specified an incorrect language label or did not specify the required number of values for «locale.weekdays» or «locale.months».",g="The value of the time property can be: false, 12 or 24.",b="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.",y=(e,t,n)=>{e.context[t]=n},f=new WeakSet,w="data-vc-prev-tabindex",x=e=>e.tabIndex>=0&&!e.hasAttribute("disabled")&&"true"!==e.getAttribute("aria-disabled"),M=e=>{if(e.hasAttribute(w))return;const t=e.getAttribute("tabindex");e.setAttribute(w,null!=t?t:"")},k=e=>{if(!e.hasAttribute(w))return;const t=e.getAttribute(w);""===t||null===t?e.removeAttribute("tabindex"):e.setAttribute("tabindex",t),e.removeAttribute(w)},S=e=>{e.context.isShowInInputMode&&e.context.currentType&&(e.context.mainElement.dataset.vcCalendarHidden="",y(e,"isShowInInputMode",!1),e.inputMode&&(e=>{x(e)&&(M(e),e.tabIndex=-1);const t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>x(e)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;t.nextNode();){const e=t.currentNode;M(e),e.tabIndex=-1}})(e.context.mainElement),e.context.cleanupHandlers[0]&&(e.context.cleanupHandlers.forEach(e=>e()),y(e,"cleanupHandlers",[])),e.inputMode&&e.context.inputElement&&e.context.mainElement.contains(document.activeElement)&&(("function"==typeof e.openOnFocus||!0===e.openOnFocus)&&(e=>{f.add(e)})(e),e.context.inputElement.focus()),e.onHide&&e.onHide(e))};function T(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 C(){return{vw:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),vh:Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)}}function D(e){const{top:t,left:n}={left:window.scrollX||document.documentElement.scrollLeft||0,top:window.scrollY||document.documentElement.scrollTop||0},{top:o,left:i}=T(e),{vh:s,vw:a}=C(),l=o-t,r=i-n;return{top:l,bottom:s-(l+e.clientHeight),left:r,right:a-(r+e.clientWidth)}}function E(e,t,n=5){const o={top:!0,bottom:!0,left:!0,right:!0},i=[];if(!t||!e)return{canShow:o,parentPositions:i};const{bottom:s,top:a}=D(e),{top:l,left:r}=T(e),{height:d,width:c}=t.getBoundingClientRect(),{vh:u,vw:h}=C(),p=h/2,v=u/2;return[{condition:l<v,position:"top"},{condition:l>v,position:"bottom"},{condition:r<p,position:"left"},{condition:r>p,position:"right"}].forEach(({condition:e,position:t})=>{e&&i.push(t)}),Object.assign(o,{top:d<=a-n,bottom:d<=s-n,left:c<=r,right:c<=h-r}),{canShow:o,parentPositions:i}}const A=(e,t)=>{var n;e.popups&&(null==(n=Object.entries(e.popups))||n.forEach(([n,o])=>((e,t,n,o)=>{var i;const s=o.querySelector(`[data-vc-date="${t}"]`),a=null==s?void 0:s.querySelector("[data-vc-date-btn]");if(!s||!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(/ /g," ")}`,s.appendChild(l),requestAnimationFrame(()=>{if(!l)return;const{canShow:e}=E(s,l),t=e.bottom?s.offsetHeight:-l.offsetHeight,n=e.left&&!e.right?s.offsetWidth-l.offsetWidth/2:!e.left&&e.right?l.offsetWidth/2:0;Object.assign(l.style,{left:`${n}px`,top:`${t}px`})})})(e,n,o,t)))},I=e=>new Date(`${e}T00:00:00`),O=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,L=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,o)=>{const i=I(n),s=I(o),a=new Date(i.getTime());for(;a<=s;a.setDate(a.getDate()+1))e.push(O(a));return t});return e},[]),$=(e,t,n,o="")=>{t?e.setAttribute(n,o):e.getAttribute(n)===o&&e.removeAttribute(n)},F=(e,t,n,o,i,s,a)=>{var l,r,d,c;const u=I(e.context.displayDateMin)>I(s)||I(e.context.displayDateMax)<I(s)||(null==(l=e.context.disableDates)?void 0:l.includes(s))||!e.selectionMonthsMode&&"current"!==a||!e.selectionYearsMode&&I(s).getFullYear()!==t;$(n,u,"data-vc-date-disabled"),o&&$(o,u,"aria-disabled","true"),o&&$(o,u,"tabindex","-1"),$(n,!e.disableToday&&e.context.dateToday===s,"data-vc-date-today"),$(n,!e.disableToday&&e.context.dateToday===s,"aria-current","date"),$(n,null==(r=e.selectedWeekends)?void 0:r.includes(i),"data-vc-date-weekend");const h=(null==(d=e.selectedHolidays)?void 0:d[0])?L(e.selectedHolidays):[];if($(n,h.includes(s),"data-vc-date-holiday"),(null==(c=e.context.selectedDates)?void 0:c.includes(s))?(n.setAttribute("data-vc-date-selected",""),o&&o.setAttribute("aria-selected","true"),e.context.selectedDates.length>1&&"multiple-ranged"===e.selectionDatesMode&&(e.context.selectedDates[0]===s&&e.context.selectedDates[e.context.selectedDates.length-1]===s?n.setAttribute("data-vc-date-selected","first-and-last"):e.context.selectedDates[0]===s?n.setAttribute("data-vc-date-selected","first"):e.context.selectedDates[e.context.selectedDates.length-1]===s&&n.setAttribute("data-vc-date-selected","last"),e.context.selectedDates[0]!==s&&e.context.selectedDates[e.context.selectedDates.length-1]!==s&&n.setAttribute("data-vc-date-selected","middle"))):n.hasAttribute("data-vc-date-selected")&&(n.removeAttribute("data-vc-date-selected"),o&&o.removeAttribute("aria-selected")),!e.context.disableDates.includes(s)&&e.enableEdgeDatesOnly&&e.context.selectedDates.length>1&&"multiple-ranged"===e.selectionDatesMode){const t=I(e.context.selectedDates[0]),o=I(e.context.selectedDates[e.context.selectedDates.length-1]),i=I(s);$(n,i>t&&i<o,"data-vc-date-selected","middle")}},N=(e,t)=>{const n=I(e),o=(n.getDay()-t+7)%7;n.setDate(n.getDate()+4-o);const i=new Date(n.getFullYear(),0,1),s=Math.ceil(((+n-+i)/864e5+1)/7);return{year:n.getFullYear(),week:s}},H=(e,t,n,o,i,s)=>{const a=I(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=s,r.dataset.vcDateWeekDay=String(a),r.role="gridcell",("current"===s||e.displayDatesOutside)&&(d=document.createElement("button"),d.className=e.styles.dateBtn,d.type="button",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(o),r.appendChild(d)),e.enableWeekNumbers&&((e,t,n)=>{const o=N(n,e.firstWeekday);o&&(t.dataset.vcDateWeekNumber=String(o.week))})(e,r,i),((e,t,n)=>{var o,i,s,a,l;const r=null==(o=e.disableWeekdays)?void 0:o.includes(n),d=e.disableAllDates&&!!(null==(i=e.context.enableDates)?void 0:i[0]);!r&&!d||(null==(s=e.context.enableDates)?void 0:s.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),F(e,t,r,d,a,i,s),n.addDate(r),e.onCreateDateEls&&e.onCreateDateEls(e,r)},P=e=>{const t=new Date(e.context.selectedYear,e.context.selectedMonth,1),n=e.context.mainElement.querySelectorAll('[data-vc="dates"]'),o=e.context.mainElement.querySelectorAll('[data-vc-week="numbers"]');n.forEach((n,i)=>{e.selectionDatesMode||(n.dataset.vcDatesDisabled=""),n.textContent="";const s=new Date(t);s.setMonth(s.getMonth()+i);const a=s.getMonth(),l=s.getFullYear(),r=(new Date(l,a,1).getDay()-e.firstWeekday+7)%7,d=new Date(l,a+1,0).getDate(),c=r+d,u=Math.ceil(c/7),h=7*u-c,p=[];for(let t=0;t<u;t++){const t=document.createElement("div");t.className=e.styles.datesRow,t.setAttribute("data-vc-dates","row"),t.setAttribute("role","row"),p.push(t)}let v=0,m=0;const g={addDate:e=>{p[v].appendChild(e),m++,m>=7&&(v++,m=0)}};((e,t,n,o,i)=>{let s=new Date(n,o,0).getDate()-(i-1);const a=0===o?n-1:n,l=0===o?12:o<10?`0${o}`:o;for(let o=i;o>0;o--,s++)H(e,n,t,s,`${a}-${l}-${s}`,"prev")})(e,g,l,a,r),((e,t,n,o,i)=>{for(let s=1;s<=n;s++){const n=new Date(o,i,s);H(e,o,t,s,O(n),"current")}})(e,g,d,l,a),((e,t,n,o,i)=>{const s=i+1===12?o+1:o,a=i+1===12?"01":i+2<10?`0${i+2}`:i+2;for(let i=1;i<=n;i++){const n=i<10?`0${i}`:String(i);H(e,o,t,i,`${s}-${a}-${n}`,"next")}})(e,g,h,l,a);for(const e of p)n.appendChild(e);A(e,n),((e,t,n,o,i)=>{if(!e.enableWeekNumbers)return;o.textContent="";const s=document.createElement("b");s.className=e.styles.weekNumbersTitle,s.innerText="#",s.dataset.vcWeekNumbers="title",o.appendChild(s);const a=document.createElement("div");a.className=e.styles.weekNumbersContent,a.dataset.vcWeekNumbers="content",o.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,o=N(n,e.firstWeekday);if(!o)return;const i=l.cloneNode(!0);i.innerText=String(o.week),i.dataset.vcWeekNumber=String(o.week),i.dataset.vcWeekYear=String(o.year),i.role="rowheader",i.ariaLabel=`${o.week}`,a.appendChild(i)}})(e,r,d,o[i],n)})},q=e=>`\n <div class="${e.styles.header}" data-vc="header" role="toolbar" aria-label="${e.labels.navigation}">\n <#ArrowPrev [month] />\n <div class="${e.styles.headerContent}" data-vc-header="content">\n <#Month />\n <#Year />\n </div>\n <#ArrowNext [month] />\n </div>\n <div class="${e.styles.wrapper}" data-vc="wrapper">\n <#WeekNumbers />\n <div class="${e.styles.content}" data-vc="content" role="grid">\n <#Week />\n <#Dates />\n <#DateRangeTooltip />\n </div>\n </div>\n <#ControlTime />\n`,Y=e=>`\n <div class="${e.styles.header}" data-vc="header" role="toolbar" aria-label="${e.labels.navigation}">\n <div class="${e.styles.headerContent}" data-vc-header="content">\n <#Month />\n <#Year />\n </div>\n </div>\n <div class="${e.styles.wrapper}" data-vc="wrapper">\n <div class="${e.styles.content}" data-vc="content">\n <#Months />\n </div>\n </div>\n`,W=e=>`\n <div class="${e.styles.controls}" data-vc="controls" role="toolbar" aria-label="${e.labels.navigation}">\n <#ArrowPrev [month] />\n <#ArrowNext [month] />\n </div>\n <div class="${e.styles.grid}" data-vc="grid">\n <#Multiple>\n <div class="${e.styles.column}" data-vc="column" role="region">\n <div class="${e.styles.header}" data-vc="header">\n <div class="${e.styles.headerContent}" data-vc-header="content">\n <#Month />\n <#Year />\n </div>\n </div>\n <div class="${e.styles.wrapper}" data-vc="wrapper">\n <#WeekNumbers />\n <div class="${e.styles.content}" data-vc="content" role="grid">\n <#Week />\n <#Dates />\n </div>\n </div>\n </div>\n <#/Multiple>\n <#DateRangeTooltip />\n </div>\n <#ControlTime />\n`,j=e=>`\n <div class="${e.styles.header}" data-vc="header" role="toolbar" aria-label="${e.labels.navigation}">\n <#ArrowPrev [year] />\n <div class="${e.styles.headerContent}" data-vc-header="content">\n <#Month />\n <#Year />\n </div>\n <#ArrowNext [year] />\n </div>\n <div class="${e.styles.wrapper}" data-vc="wrapper">\n <div class="${e.styles.content}" data-vc="content">\n <#Years />\n </div>\n </div>\n`,R={ArrowNext:(e,t)=>`<button type="button" class="${e.styles.arrowNext}" data-vc-arrow="next" aria-label="${e.labels.arrowNext[t]}"></button>`,ArrowPrev:(e,t)=>`<button type="button" class="${e.styles.arrowPrev}" data-vc-arrow="prev" aria-label="${e.labels.arrowPrev[t]}"></button>`,ControlTime:e=>e.selectionTimeMode?`<div class="${e.styles.time}" data-vc="time" role="group" aria-label="${e.labels.selectingTime}"></div>`:"",Dates:e=>`<div class="${e.styles.dates}" data-vc="dates" aria-live="assertive" aria-label="${e.labels.dates}" ${"multiple"===e.type?"aria-multiselectable":""}></div>`,DateRangeTooltip:e=>e.onCreateDateRangeTooltip?`<div class="${e.styles.dateRangeTooltip}" data-vc-date-range-tooltip="hidden"></div>`:"",Month:e=>`<button type="button" class="${e.styles.month}" data-vc="month"></button>`,Months:e=>`<div class="${e.styles.months}" data-vc="months" role="grid" aria-live="assertive" aria-label="${e.labels.months}"></div>`,Week:e=>`<div class="${e.styles.week}" data-vc="week" role="row" aria-label="${e.labels.week}"></div>`,WeekNumbers:e=>e.enableWeekNumbers?`<div class="${e.styles.weekNumbers}" data-vc-week="numbers" role="row" aria-label="${e.labels.weekNumber}"></div>`:"",Year:e=>`<button type="button" class="${e.styles.year}" data-vc="year"></button>`,Years:e=>`<div class="${e.styles.years}" data-vc="years" role="grid" aria-live="assertive" aria-label="${e.labels.years}"></div>`},z=(e,t)=>t.replace(/[\n\t]/g,"").replace(/<#(?!\/?Multiple)(.*?)>/g,(t,n)=>{const o=(n.match(/\[(.*?)\]/)||[])[1],i=(e=>R[e])(n.replace(/[/\s\n\t]|\[(.*?)\]/g,"")),s=i?i(e,null!=o?o:null):"";return e.sanitizerHTML(s)}).replace(/[\n\t]/g,""),U=(e,t)=>{const n={default:q,month:Y,year:j,multiple:W};if(Object.keys(n).forEach(t=>{const o=t;e.layouts[o].length||(e.layouts[o]=n[o](e))}),e.context.mainElement.className=e.styles.calendar,e.context.mainElement.dataset.vc="calendar",e.context.mainElement.dataset.vcType=e.context.currentType,e.context.mainElement.role="application",e.context.mainElement.tabIndex=0,e.context.mainElement.ariaLabel=e.labels.application,"multiple"!==e.context.currentType){if("multiple"===e.type&&t){const n=e.context.mainElement.querySelector('[data-vc="controls"]'),o=e.context.mainElement.querySelector('[data-vc="grid"]'),i=t.closest('[data-vc="column"]');return n&&n.remove(),o&&(o.dataset.vcGrid="hidden"),i&&(i.dataset.vcColumn=e.context.currentType),void(i&&(i.innerHTML=e.sanitizerHTML(z(e,e.layouts[e.context.currentType]))))}e.context.mainElement.innerHTML=e.sanitizerHTML(z(e,e.layouts[e.context.currentType]))}else e.context.mainElement.innerHTML=e.sanitizerHTML(((e,t)=>t.replace(new RegExp("<#Multiple>(.*?)<#\\/Multiple>","gs"),(t,n)=>{const o=Array(e.context.displayMonthsCount).fill(n).join("");return e.sanitizerHTML(o)}).replace(/[\n\t]/g,""))(e,z(e,e.layouts[e.context.currentType])))},V=(e,t,n,o)=>{e.style.visibility=n?"hidden":"",t.style.visibility=o?"hidden":""},K=e=>{if("month"===e.context.currentType)return;const t=e.context.mainElement.querySelector('[data-vc-arrow="prev"]'),n=e.context.mainElement.querySelector('[data-vc-arrow="next"]');t&&n&&{default:()=>((e,t,n)=>{const o=I(O(new Date(e.context.selectedYear,e.context.selectedMonth,1))),i=new Date(o.getTime()),s=new Date(o.getTime());i.setMonth(i.getMonth()-e.monthsToSwitch),s.setMonth(s.getMonth()+e.monthsToSwitch);const a=I(e.context.dateMin),l=I(e.context.dateMax);e.selectionYearsMode||(a.setFullYear(o.getFullYear()),l.setFullYear(o.getFullYear()));const r=!e.selectionMonthsMode||i.getFullYear()<a.getFullYear()||i.getFullYear()===a.getFullYear()&&i.getMonth()<a.getMonth(),d=!e.selectionMonthsMode||s.getFullYear()>l.getFullYear()||s.getFullYear()===l.getFullYear()&&s.getMonth()>l.getMonth()-(e.context.displayMonthsCount-1);V(t,n,r,d)})(e,t,n),year:()=>((e,t,n)=>{const o=I(e.context.dateMin),i=I(e.context.dateMax),s=!!(o.getFullYear()&&e.context.displayYear-7<=o.getFullYear()),a=!!(i.getFullYear()&&e.context.displayYear+7>=i.getFullYear());V(t,n,s,a)})(e,t,n)}["multiple"===e.context.currentType?"default":e.context.currentType]()},B=e=>{const t=e.context.mainElement.querySelectorAll('[data-vc="month"]'),n=e.context.mainElement.querySelectorAll('[data-vc="year"]'),o=new Date(e.context.selectedYear,e.context.selectedMonth,1);[t,n].forEach(t=>null==t?void 0:t.forEach((t,n)=>((e,t,n,o,i)=>{const s=new Date(o.setFullYear(e.context.selectedYear,e.context.selectedMonth+n)).getFullYear(),a=new Date(o.setMonth(e.context.selectedMonth+n)).getMonth(),l=e.context.locale.months.long[a],r=t.closest('[data-vc="column"]');r&&(r.ariaLabel=`${l} ${s}`);const d={month:{id:a,label:l},year:{id:s,label:s}};t.innerText=String(d[i].label),t.dataset[`vc${i.charAt(0).toUpperCase()+i.slice(1)}`]=String(d[i].id),t.ariaLabel=`${e.labels[i]} ${d[i].label}`;const c={month:e.selectionMonthsMode,year:e.selectionYearsMode},u=!1===c[i]||"only-arrows"===c[i];u&&(t.tabIndex=-1),t.disabled=u})(e,t,n,o,t.dataset.vc)))},G=(e,t,n,o,i)=>{var s;const a={month:{selected:"data-vc-months-month-selected",aria:"aria-selected",value:"vcMonthsMonth",selectedProperty:"selectedMonth"},year:{selected:"data-vc-years-year-selected",aria:"aria-selected",value:"vcYearsYear",selectedProperty:"selectedYear"}};i&&(null==(s=e.context.mainElement.querySelectorAll({month:"[data-vc-months-month]",year:"[data-vc-years-year]"}[n]))||s.forEach(e=>{e.removeAttribute(a[n].selected),e.removeAttribute(a[n].aria)}),y(e,a[n].selectedProperty,Number(t.dataset[a[n].value])),B(e),"year"===n&&K(e)),o&&(t.setAttribute(a[n].selected,""),t.setAttribute(a[n].aria,"true"))},Z=(e,t)=>{var n;if("multiple"!==e.type)return{currentValue:null,columnID:0};const o=e.context.mainElement.querySelectorAll('[data-vc="column"]'),i=Array.from(o).findIndex(e=>e.closest(`[data-vc-column="${t}"]`));return{currentValue:i>=0?Number(null==(n=o[i].querySelector(`[data-vc="${t}"]`))?void 0:n.getAttribute(`data-vc-${t}`)):null,columnID:Math.max(i,0)}},J=(e,t,n,o,i,s,a)=>{const l=t.cloneNode(!1);return l.className=e.styles.monthsMonth,l.innerText=o,l.ariaLabel=i,l.role="gridcell",l.dataset.vcMonthsMonth=`${a}`,s&&(l.ariaDisabled="true"),s&&(l.tabIndex=-1),l.disabled=s,G(e,l,"month",n===a,!1),l},Q=(e,t)=>{var n,o;const i=null==(n=null==t?void 0:t.closest('[data-vc="header"]'))?void 0:n.querySelector('[data-vc="year"]'),s=i?Number(i.dataset.vcYear):e.context.selectedYear,a=(null==t?void 0:t.dataset.vcMonth)?Number(t.dataset.vcMonth):e.context.selectedMonth;y(e,"currentType","month"),U(e,t),B(e);const l=e.context.mainElement.querySelector('[data-vc="months"]');if(!e.selectionMonthsMode||!l)return;const r=e.monthsToSwitch>1?e.context.locale.months.long.map((t,n)=>a-e.monthsToSwitch*n).concat(e.context.locale.months.long.map((t,n)=>a+e.monthsToSwitch*n)).filter(e=>e>=0&&e<=12):Array.from(Array(12).keys()),d=document.createElement("button");d.type="button";for(let t=0;t<12;t++){const n=I(e.context.dateMin),o=I(e.context.dateMax),i=e.context.displayMonthsCount-1,{columnID:c}=Z(e,"month"),u=s<=n.getFullYear()&&t<n.getMonth()+c||s>=o.getFullYear()&&t>o.getMonth()-i+c||s>o.getFullYear()||t!==a&&!r.includes(t),h=J(e,d,a,e.context.locale.months.short[t],e.context.locale.months.long[t],u,t);l.appendChild(h),e.onCreateMonthEls&&e.onCreateMonthEls(e,h)}null==(o=e.context.mainElement.querySelector("[data-vc-months-month]:not([disabled])"))||o.focus()},X=(e,t,n,o,i)=>`\n <label class="${t}" data-vc-time-input="${e}">\n <input type="text" name="${e}" maxlength="2" aria-label="${n[`input${e.charAt(0).toUpperCase()+e.slice(1)}`]}" value="${o}" ${i?"disabled":""}>\n </label>\n`,ee=(e,t,n,o,i,s,a)=>`\n <label class="${t}" data-vc-time-range="${e}">\n <input type="range" name="${e}" min="${o}" max="${i}" step="${s}" aria-label="${n[`range${e.charAt(0).toUpperCase()+e.slice(1)}`]}" value="${a}">\n </label>\n`,te=(e,t,n,o)=>{({hour:()=>y(e,"selectedHours",n),minute:()=>y(e,"selectedMinutes",n)})[o](),y(e,"selectedTime",`${e.context.selectedHours}:${e.context.selectedMinutes}${e.context.selectedKeeping?` ${e.context.selectedKeeping}`:""}`),e.onChangeTime&&e.onChangeTime(e,t,!1),e.inputMode&&e.context.inputElement&&e.context.mainElement&&e.onChangeToInput&&e.onChangeToInput(e,t)},ne=(e,t)=>{var n;return(null==(n={0:{AM:"00",PM:"12"},1:{AM:"01",PM:"13"},2:{AM:"02",PM:"14"},3:{AM:"03",PM:"15"},4:{AM:"04",PM:"16"},5:{AM:"05",PM:"17"},6:{AM:"06",PM:"18"},7:{AM:"07",PM:"19"},8:{AM:"08",PM:"20"},9:{AM:"09",PM:"21"},10:{AM:"10",PM:"22"},11:{AM:"11",PM:"23"},12:{AM:"00",PM:"12"}}[Number(e)])?void 0:n[t])||String(e)},oe=e=>({0:"12",13:"01",14:"02",15:"03",16:"04",17:"05",18:"06",19:"07",20:"08",21:"09",22:"10",23:"11"}[Number(e)]||String(e)),ie=(e,t,n,o)=>{e.value=n,t.value=o},se=(e,t,n,o,i,s,a)=>{const l={hour:(l,r,d)=>{e.selectionTimeMode&&{12:()=>{if(!e.context.selectedKeeping)return;const c=Number(ne(r,e.context.selectedKeeping));if(!(c<=s&&c>=a))return ie(n,t,e.context.selectedHours,e.context.selectedHours),void(e.onChangeTime&&e.onChangeTime(e,d,!0));ie(n,t,oe(r),ne(r,e.context.selectedKeeping)),l>12&&((e,t,n)=>{t&&n&&(y(e,"selectedKeeping",n),t.innerText=n)})(e,o,"PM"),te(e,d,oe(r),i)},24:()=>{if(!(l<=s&&l>=a))return ie(n,t,e.context.selectedHours,e.context.selectedHours),void(e.onChangeTime&&e.onChangeTime(e,d,!0));ie(n,t,r,r),te(e,d,r,i)}}[e.selectionTimeMode]()},minute:(o,l,r)=>{if(!(o<=s&&o>=a))return n.value=e.context.selectedMinutes,void(e.onChangeTime&&e.onChangeTime(e,r,!0));n.value=l,t.value=l,te(e,r,l,i)}},r=e=>{const t=Number(n.value),o=n.value.padStart(2,"0");l[i]&&l[i](t,o,e)};return n.addEventListener("change",r),()=>{n.removeEventListener("change",r)}},ae=(e,t,n,o,i)=>{const s=s=>{const a=Number(t.value),l=t.value.padStart(2,"0"),r="hour"===i,d=24===e.selectionTimeMode,c=a>0&&a<12;r&&!d&&((e,t,n)=>{t&&(y(e,"selectedKeeping",n),t.innerText=n)})(e,o,0===a||c?"AM":"PM"),((e,t,n,o,i)=>{t.value=i,te(e,n,i,o)})(e,n,s,i,!r||d||c?l:oe(t.value))};return t.addEventListener("input",s),()=>{t.removeEventListener("input",s)}},le=e=>e.setAttribute("data-vc-input-focus",""),re=e=>e.removeAttribute("data-vc-input-focus"),de=(e,t)=>{const n=t.querySelector('[data-vc-time-range="hour"] input[name="hour"]'),o=t.querySelector('[data-vc-time-range="minute"] input[name="minute"]'),i=t.querySelector('[data-vc-time-input="hour"] input[name="hour"]'),s=t.querySelector('[data-vc-time-input="minute"] input[name="minute"]'),a=t.querySelector('[data-vc-time="keeping"]');if(!(n&&o&&i&&s))return;const l=e=>{e.target===n&&le(i),e.target===o&&le(s)},r=e=>{e.target===n&&re(i),e.target===o&&re(s)};return t.addEventListener("mouseover",l),t.addEventListener("mouseout",r),se(e,n,i,a,"hour",e.timeMaxHour,e.timeMinHour),se(e,o,s,a,"minute",e.timeMaxMinute,e.timeMinMinute),ae(e,n,i,a,"hour"),ae(e,o,s,a,"minute"),a&&((e,t,n,o,i)=>{const s=s=>{const a="AM"===e.context.selectedKeeping?"PM":"AM",l=ne(e.context.selectedHours,a);Number(l)<=o&&Number(l)>=i?(y(e,"selectedKeeping",a),n.value=l,te(e,s,e.context.selectedHours,"hour"),t.ariaLabel=`${e.labels.btnKeeping} ${e.context.selectedKeeping}`,t.innerText=e.context.selectedKeeping):e.onChangeTime&&e.onChangeTime(e,s,!0)};t.addEventListener("click",s)})(e,a,n,e.timeMaxHour,e.timeMinHour),()=>{t.removeEventListener("mouseover",l),t.removeEventListener("mouseout",r)}},ce=e=>{const t=e.selectedWeekends?[...e.selectedWeekends]:[],n=[...e.context.locale.weekdays.long].reduce((n,o,i)=>[...n,{id:i,titleShort:e.context.locale.weekdays.short[i],titleLong:o,isWeekend:t.includes(i)}],[]),o=[...n.slice(e.firstWeekday),...n.slice(0,e.firstWeekday)];e.context.mainElement.querySelectorAll('[data-vc="week"]').forEach(t=>{const n=e.onClickWeekDay?document.createElement("button"):document.createElement("b");e.onClickWeekDay&&(n.type="button"),o.forEach(o=>{const i=n.cloneNode(!0);i.innerText=o.titleShort,i.className=e.styles.weekDay,i.role="columnheader",i.ariaLabel=o.titleLong,i.dataset.vcWeekDay=String(o.id),o.isWeekend&&(i.dataset.vcWeekDayOff=""),t.appendChild(i)})})},ue=(e,t,n,o,i)=>{const s=t.cloneNode(!1);return s.className=e.styles.yearsYear,s.innerText=String(i),s.ariaLabel=String(i),s.role="gridcell",s.dataset.vcYearsYear=`${i}`,o&&(s.ariaDisabled="true"),o&&(s.tabIndex=-1),s.disabled=o,G(e,s,"year",n===i,!1),s},he=(e,t)=>{var n;const o=(null==t?void 0:t.dataset.vcYear)?Number(t.dataset.vcYear):e.context.selectedYear;y(e,"currentType","year"),U(e,t),B(e),K(e);const i=e.context.mainElement.querySelector('[data-vc="years"]');if(!e.selectionYearsMode||!i)return;const s="multiple"!==e.type||e.context.selectedYear===o?0:1,a=document.createElement("button");a.type="button";for(let t=e.context.displayYear-7;t<e.context.displayYear+8;t++){const n=t<I(e.context.dateMin).getFullYear()+s||t>I(e.context.dateMax).getFullYear(),l=ue(e,a,o,n,t);i.appendChild(l),e.onCreateYearEls&&e.onCreateYearEls(e,l)}null==(n=e.context.mainElement.querySelector("[data-vc-years-year]:not([disabled])"))||n.focus()},pe={value:!1,set:()=>pe.value=!0,check:()=>pe.value},ve=(e,t)=>e.dataset.vcTheme=t,me=(e,t)=>{if(ve(e.context.mainElement,t.matches?"dark":"light"),"system"!==e.selectedTheme||pe.check())return;const n=e=>{const t=document.querySelectorAll('[data-vc="calendar"]');null==t||t.forEach(t=>ve(t,e.matches?"dark":"light"))};t.addEventListener?t.addEventListener("change",n):t.addListener(n),pe.set()},ge=(e,t)=>{const n=e.themeAttrDetect.length?document.querySelector(e.themeAttrDetect):null,o=e.themeAttrDetect.replace(/^.*\[(.+)\]/g,(e,t)=>t);if(!n||"system"===n.getAttribute(o))return void me(e,t);const i=n.getAttribute(o);i?(ve(e.context.mainElement,i),((e,t,n)=>{new MutationObserver(e=>{for(let o=0;o<e.length;o++)if(e[o].attributeName===t){n();break}}).observe(e,{attributes:!0})})(n,o,()=>{const t=n.getAttribute(o);t&&ve(e.context.mainElement,t)})):me(e,t)},be=e=>e.charAt(0).toUpperCase()+e.slice(1).replace(/\./,""),ye=e=>{var t,n,o,i,s,a,l,r;if(!(e.context.locale.weekdays.short[6]&&e.context.locale.weekdays.long[6]&&e.context.locale.months.short[11]&&e.context.locale.months.long[11]))if("string"==typeof e.locale){if("string"==typeof e.locale&&!e.locale.length)throw new Error(m);Array.from({length:7},(t,n)=>((e,t,n)=>{const o=new Date(`1978-01-0${t+1}T00:00:00.000Z`),i=o.toLocaleString(n,{weekday:"short",timeZone:"UTC"}),s=o.toLocaleString(n,{weekday:"long",timeZone:"UTC"});e.context.locale.weekdays.short.push(be(i)),e.context.locale.weekdays.long.push(be(s))})(e,n,e.locale)),Array.from({length:12},(t,n)=>((e,t,n)=>{const o=new Date(`1978-${String(t+1).padStart(2,"0")}-01T00:00:00.000Z`),i=o.toLocaleString(n,{month:"short",timeZone:"UTC"}),s=o.toLocaleString(n,{month:"long",timeZone:"UTC"});e.context.locale.months.short.push(be(i)),e.context.locale.months.long.push(be(s))})(e,n,e.locale))}else{if(!((null==(n=null==(t=e.locale)?void 0:t.weekdays)?void 0:n.short[6])&&(null==(i=null==(o=e.locale)?void 0:o.weekdays)?void 0:i.long[6])&&(null==(a=null==(s=e.locale)?void 0:s.months)?void 0:a.short[11])&&(null==(r=null==(l=e.locale)?void 0:l.months)?void 0:r.long[11])))throw new Error(m);y(e,"locale",u({},e.locale))}},fe=e=>{const t={default:()=>{ce(e),P(e)},multiple:()=>{ce(e),P(e)},month:()=>Q(e),year:()=>he(e)};(e=>{"not all"!==window.matchMedia("(prefers-color-scheme)").media?"system"===e.selectedTheme?ge(e,window.matchMedia("(prefers-color-scheme: dark)")):ve(e.context.mainElement,e.selectedTheme):ve(e.context.mainElement,"light")})(e),ye(e),U(e),B(e),K(e),(e=>{const t=e.context.mainElement.querySelector('[data-vc="time"]');if(!e.selectionTimeMode||!t)return;const[n,o]=[e.timeMinHour,e.timeMaxHour],[i,s]=[e.timeMinMinute,e.timeMaxMinute],a=e.context.selectedKeeping?ne(e.context.selectedHours,e.context.selectedKeeping):e.context.selectedHours,l="range"===e.timeControls;var r;t.innerHTML=e.sanitizerHTML(`\n <div class="${e.styles.timeContent}" data-vc-time="content">\n ${X("hour",e.styles.timeHour,e.labels,e.context.selectedHours,l)}\n ${X("minute",e.styles.timeMinute,e.labels,e.context.selectedMinutes,l)}\n ${12===e.selectionTimeMode?(r=e.context.selectedKeeping,`<button type="button" class="${e.styles.timeKeeping}" aria-label="${e.labels.btnKeeping} ${r}" data-vc-time="keeping" ${l?"disabled":""}>${r}</button>`):""}\n </div>\n <div class="${e.styles.timeRanges}" data-vc-time="ranges">\n ${ee("hour",e.styles.timeRange,e.labels,n,o,e.timeStepHour,a)}\n ${ee("minute",e.styles.timeRange,e.labels,i,s,e.timeStepMinute,e.context.selectedMinutes)}\n </div>\n `),de(e,t)})(e),t[e.context.currentType]()},we=e=>{const t=t=>{var n;const o=t.target;if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(t.key)||"button"!==o.localName)return;const i=Array.from(e.context.mainElement.querySelectorAll('[data-vc="calendar"] button')),s=i.indexOf(o);if(-1===s)return;const a=(l=i[s]).hasAttribute("data-vc-date-btn")?7:l.hasAttribute("data-vc-months-month")?4:l.hasAttribute("data-vc-years-year")?5:1;var l;const r=(0,{ArrowUp:()=>Math.max(0,s-a),ArrowDown:()=>Math.min(i.length-1,s+a),ArrowLeft:()=>Math.max(0,s-1),ArrowRight:()=>Math.min(i.length-1,s+1)}[t.key])();null==(n=i[r])||n.focus()};return e.context.mainElement.addEventListener("keydown",t),()=>e.context.mainElement.removeEventListener("keydown",t)},xe=(e,t)=>{const n=I(O(new Date(e.context.selectedYear,e.context.selectedMonth,1)));({prev:()=>n.setMonth(n.getMonth()-e.monthsToSwitch),next:()=>n.setMonth(n.getMonth()+e.monthsToSwitch)})[t](),y(e,"selectedMonth",n.getMonth()),y(e,"selectedYear",n.getFullYear()),B(e),K(e),P(e)},Me=(e,t)=>void 0===t||("function"==typeof t?t(e):t),ke=e=>Me(e,e.enableDateToggle),Se=(e,t,n)=>{const o=t.dataset.vcDate,i=t.closest("[data-vc-date][data-vc-date-selected]"),s=ke(e);if(i&&!s)return;const a=i?e.context.selectedDates.filter(e=>e!==o):n?[...e.context.selectedDates,o]:[o];y(e,"selectedDates",a)},Te=(e,t,n)=>{if(!t)return;if(!n)return t.dataset.vcDateRangeTooltip="hidden",void(t.textContent="");const o=e.context.mainElement.getBoundingClientRect(),i=n.getBoundingClientRect();t.style.left=i.left-o.left+i.width/2+"px",t.style.top=i.bottom-o.top-i.height+"px",t.dataset.vcDateRangeTooltip="visible",t.innerHTML=e.sanitizerHTML(e.onCreateDateRangeTooltip(e,n,t,i,o))},Ce={self:null,lastDateEl:null,isHovering:!1,rangeMin:void 0,rangeMax:void 0,tooltipEl:null,timeoutId:null},De=(e,t,n)=>{var o,i,s;if(!(null==(i=null==(o=Ce.self)?void 0:o.context)?void 0:i.selectedDates[0]))return;const a=O(e);(null==(s=Ce.self.context.disableDates)?void 0:s.includes(a))||(Ce.self.context.mainElement.querySelectorAll(`[data-vc-date="${a}"]`).forEach(e=>e.dataset.vcDateHover=""),t.forEach(e=>e.dataset.vcDateHover="first"),n.forEach(e=>{"first"===e.dataset.vcDateHover?e.dataset.vcDateHover="first-and-last":e.dataset.vcDateHover="last"}))},Ee=()=>{var e,t;(null==(t=null==(e=Ce.self)?void 0:e.context)?void 0:t.mainElement)&&Ce.self.context.mainElement.querySelectorAll("[data-vc-date-hover]").forEach(e=>e.removeAttribute("data-vc-date-hover"))},Ae=e=>t=>{const n=t.target;Ce.isHovering||(Ce.isHovering=!0,requestAnimationFrame(()=>{e(n),Ce.isHovering=!1}))},Ie=Ae(e=>{var t,n;if(!e||!(null==(n=null==(t=Ce.self)?void 0:t.context)?void 0:n.selectedDates[0]))return;if(!e.closest('[data-vc="dates"]'))return Ce.lastDateEl=null,Te(Ce.self,Ce.tooltipEl,null),void Ee();const o=e.closest("[data-vc-date]");if(!o||Ce.lastDateEl===o)return;Ce.lastDateEl=o,Te(Ce.self,Ce.tooltipEl,o),Ee();const i=o.dataset.vcDate,s=I(Ce.self.context.selectedDates[0]),a=I(i),l=Ce.self.context.mainElement.querySelectorAll(`[data-vc-date="${Ce.self.context.selectedDates[0]}"]`),r=Ce.self.context.mainElement.querySelectorAll(`[data-vc-date="${i}"]`),[d,c]=s<a?[l,r]:[r,l],[u,h]=s<a?[s,a]:[a,s];for(let e=new Date(u);e<=h;e.setDate(e.getDate()+1))De(e,d,c)}),Oe=Ae(e=>{const t=null==e?void 0:e.closest("[data-vc-date-selected]");if(!t&&Ce.lastDateEl)return Ce.lastDateEl=null,void Te(Ce.self,Ce.tooltipEl,null);t&&Ce.lastDateEl!==t&&(Ce.lastDateEl=t,Te(Ce.self,Ce.tooltipEl,t))}),Le=e=>{Ce.self&&"Escape"===e.key&&(Ce.lastDateEl=null,y(Ce.self,"selectedDates",[]),Ce.self.context.mainElement.removeEventListener("mousemove",Ie),Ce.self.context.mainElement.removeEventListener("keydown",Le),Te(Ce.self,Ce.tooltipEl,null),Ee())},$e=()=>{null!==Ce.timeoutId&&clearTimeout(Ce.timeoutId),Ce.timeoutId=setTimeout(()=>{Ce.lastDateEl=null,Te(Ce.self,Ce.tooltipEl,null),Ee()},50)},Fe=(e,t)=>{Ce.self=e,Ce.lastDateEl=t,Ee(),e.disableDatesGaps&&(Ce.rangeMin=Ce.rangeMin?Ce.rangeMin:e.context.displayDateMin,Ce.rangeMax=Ce.rangeMax?Ce.rangeMax:e.context.displayDateMax),e.onCreateDateRangeTooltip&&(Ce.tooltipEl=e.context.mainElement.querySelector("[data-vc-date-range-tooltip]"));const n=null==t?void 0:t.dataset.vcDate;if(n){const t=1===e.context.selectedDates.length&&e.context.selectedDates[0].includes(n),o=t&&!ke(e)?[n,n]:t&&ke(e)?[]:e.context.selectedDates.length>1?[n]:[...e.context.selectedDates,n];y(e,"selectedDates",o),e.context.selectedDates.length>1&&e.context.selectedDates.sort((e,t)=>+new Date(e)-+new Date(t))}({set:()=>(e.disableDatesGaps&&(()=>{var e,t,n,o;if(!(null==(n=null==(t=null==(e=Ce.self)?void 0:e.context)?void 0:t.selectedDates)?void 0:n[0])||!(null==(o=Ce.self.context.disableDates)?void 0:o[0]))return;const i=I(Ce.self.context.selectedDates[0]),[s,a]=Ce.self.context.disableDates.map(e=>I(e)).reduce(([e,t],n)=>[i>=n?n:e,i<n&&null===t?n:t],[null,null]);s&&y(Ce.self,"displayDateMin",O(new Date(s.setDate(s.getDate()+1)))),a&&y(Ce.self,"displayDateMax",O(new Date(a.setDate(a.getDate()-1)))),Ce.self.disableDatesPast&&!Ce.self.disableAllDates&&I(Ce.self.context.displayDateMin)<I(Ce.self.context.dateToday)&&y(Ce.self,"displayDateMin",Ce.self.context.dateToday)})(),Te(Ce.self,Ce.tooltipEl,t),Ce.self.context.mainElement.removeEventListener("mousemove",Oe),Ce.self.context.mainElement.removeEventListener("mouseleave",$e),Ce.self.context.mainElement.removeEventListener("keydown",Le),Ce.self.context.mainElement.addEventListener("mousemove",Ie),Ce.self.context.mainElement.addEventListener("mouseleave",$e),Ce.self.context.mainElement.addEventListener("keydown",Le),()=>{Ce.self.context.mainElement.removeEventListener("mousemove",Ie),Ce.self.context.mainElement.removeEventListener("mouseleave",$e),Ce.self.context.mainElement.removeEventListener("keydown",Le)}),reset:()=>{const[n,o]=[e.context.selectedDates[0],e.context.selectedDates[e.context.selectedDates.length-1]],i=e.context.selectedDates[0]!==e.context.selectedDates[e.context.selectedDates.length-1],s=L([`${n}:${o}`]).filter(t=>!e.context.disableDates.includes(t)),a=i?e.enableEdgeDatesOnly?[n,o]:s:[e.context.selectedDates[0],e.context.selectedDates[0]];if(y(e,"selectedDates",a),e.disableDatesGaps&&(y(e,"displayDateMin",Ce.rangeMin),y(e,"displayDateMax",Ce.rangeMax)),Ce.self.context.mainElement.removeEventListener("mousemove",Ie),Ce.self.context.mainElement.removeEventListener("mouseleave",$e),Ce.self.context.mainElement.removeEventListener("keydown",Le),e.onCreateDateRangeTooltip)return e.context.selectedDates[0]||(Ce.self.context.mainElement.removeEventListener("mousemove",Oe),Ce.self.context.mainElement.removeEventListener("mouseleave",$e),Te(Ce.self,Ce.tooltipEl,null)),e.context.selectedDates[0]&&(Ce.self.context.mainElement.addEventListener("mousemove",Oe),Ce.self.context.mainElement.addEventListener("mouseleave",$e),Te(Ce.self,Ce.tooltipEl,t)),()=>{Ce.self.context.mainElement.removeEventListener("mousemove",Oe),Ce.self.context.mainElement.removeEventListener("mouseleave",$e)}}})[1===e.context.selectedDates.length?"set":"reset"]()},Ne=e=>{e.context.mainElement.querySelectorAll("[data-vc-date]").forEach(t=>{const n=t.querySelector("[data-vc-date-btn]"),o=t.dataset.vcDate,i=I(o).getDay();F(e,e.context.selectedYear,t,n,i,o,"current")})},He=["month","year"],Pe=(e,t,n)=>{const{currentValue:o,columnID:i}=Z(e,t);return"month"===e.context.currentType&&i>=0?n-i:"year"===e.context.currentType&&e.context.selectedYear!==o?n-1:n},qe=(e,t,n,o)=>{var i;({year:()=>{if("multiple"===e.type)return((e,t)=>{const n=Pe(e,"year",Number(t.dataset.vcYearsYear)),o=I(e.context.dateMin),i=I(e.context.dateMax),s=e.context.displayMonthsCount-1,{columnID:a}=Z(e,"year"),l=e.context.selectedMonth<o.getMonth()&&n<=o.getFullYear(),r=e.context.selectedMonth>i.getMonth()-s+a&&n>=i.getFullYear(),d=n<o.getFullYear(),c=n>i.getFullYear(),u=l||d?o.getFullYear():r||c?i.getFullYear():n,h=l||d?o.getMonth():r||c?i.getMonth()-s+a:e.context.selectedMonth;y(e,"selectedYear",u),y(e,"selectedMonth",h)})(e,o);y(e,"selectedYear",Number(o.dataset.vcYearsYear))},month:()=>{if("multiple"===e.type)return((e,t)=>{const n=t.closest('[data-vc-column="month"]').querySelector('[data-vc="year"]'),o=Pe(e,"month",Number(t.dataset.vcMonthsMonth)),i=Number(n.dataset.vcYear),s=I(e.context.dateMin),a=I(e.context.dateMax),l=o<s.getMonth()&&i<=s.getFullYear(),r=o>a.getMonth()&&i>=a.getFullYear();y(e,"selectedYear",i),y(e,"selectedMonth",l?s.getMonth():r?a.getMonth():o)})(e,o);y(e,"selectedMonth",Number(o.dataset.vcMonthsMonth))}})[n](),{year:()=>{var n;return null==(n=e.onClickYear)?void 0:n.call(e,e,t)},month:()=>{var n;return null==(n=e.onClickMonth)?void 0:n.call(e,e,t)}}[n](),e.context.currentType!==e.type?(y(e,"currentType",e.type),fe(e),null==(i=e.context.mainElement.querySelector(`[data-vc="${n}"]`))||i.focus()):G(e,o,n,!0,!0)},Ye=(e,t)=>{const n={month:e.selectionMonthsMode,year:e.selectionYearsMode};He.forEach(o=>{n[o]&&t.target&&((e,t,n)=>{var o;const i=t.target,s=i.closest(`[data-vc="${n}"]`),a={year:()=>he(e,i),month:()=>Q(e,i)};if(s&&e.onClickTitle&&e.onClickTitle(e,t),s&&e.context.currentType!==n)return a[n]();const l=i.closest(`[data-vc-${n}s-${n}]`);if(l)return qe(e,t,n,l);const r=i.closest('[data-vc="grid"]'),d=i.closest('[data-vc="column"]');(e.context.currentType===n&&s||"multiple"===e.type&&e.context.currentType===n&&r&&!d)&&(y(e,"currentType",e.type),fe(e),null==(o=e.context.mainElement.querySelector(`[data-vc="${n}"]`))||o.focus())})(e,t,o)})},We=e=>{const t=t=>{((e,t)=>{const n=t.target.closest("[data-vc-arrow]");if(n){if(["default","multiple"].includes(e.context.currentType))xe(e,n.dataset.vcArrow);else if("year"===e.context.currentType&&void 0!==e.context.displayYear){const o={prev:-15,next:15}[n.dataset.vcArrow];y(e,"displayYear",e.context.displayYear+o),he(e,t.target)}e.onClickArrow&&e.onClickArrow(e,t)}})(e,t),((e,t)=>{if(!e.onClickWeekDay)return;const n=t.target.closest("[data-vc-week-day]"),o=t.target.closest('[data-vc="column"]'),i=o?o.querySelectorAll("[data-vc-date-week-day]"):e.context.mainElement.querySelectorAll("[data-vc-date-week-day]");if(!n||!i[0])return;const s=Number(n.dataset.vcWeekDay),a=Array.from(i).filter(e=>Number(e.dataset.vcDateWeekDay)===s);e.onClickWeekDay(e,s,a,t)})(e,t),((e,t)=>{if(!e.enableWeekNumbers||!e.onClickWeekNumber)return;const n=t.target.closest("[data-vc-week-number]"),o=e.context.mainElement.querySelectorAll("[data-vc-date-week-number]");if(!n||!o[0])return;const i=Number(n.innerText),s=Number(n.dataset.vcWeekYear),a=Array.from(o).filter(e=>Number(e.dataset.vcDateWeekNumber)===i);e.onClickWeekNumber(e,i,s,a,t)})(e,t),((e,t)=>{var n;const o=t.target,i=o.closest("[data-vc-date-btn]");if(!e.selectionDatesMode||!["single","multiple","multiple-ranged"].includes(e.selectionDatesMode)||!i)return;const s=i.closest("[data-vc-date]");({single:()=>Se(e,s,!1),multiple:()=>Se(e,s,!0),"multiple-ranged":()=>Fe(e,s)})[e.selectionDatesMode](),null==(n=e.context.selectedDates)||n.sort((e,t)=>+new Date(e)-+new Date(t)),e.onClickDate&&e.onClickDate(e,t),e.inputMode&&e.context.inputElement&&e.context.mainElement&&e.onChangeToInput&&e.onChangeToInput(e,t);const a=o.closest('[data-vc-date-month="prev"]'),l=o.closest('[data-vc-date-month="next"]');({prev:()=>e.enableMonthChangeOnDayClick?xe(e,"prev"):Ne(e),next:()=>e.enableMonthChangeOnDayClick?xe(e,"next"):Ne(e),current:()=>Ne(e)})[a?"prev":l?"next":"current"]()})(e,t),Ye(e,t)};return e.context.mainElement.addEventListener("click",t),()=>e.context.mainElement.removeEventListener("click",t)},je=(e,t)=>"today"===e?(()=>{const e=new Date;return new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().substring(0,10)})():e instanceof Date||"number"==typeof e||"string"==typeof e?L([e])[0]:t,Re=(e,t,n)=>{y(e,"selectedMonth",t),y(e,"selectedYear",n),y(e,"displayYear",n)},_e=e=>{var t;if(e.enableJumpToSelectedDate&&(null==(t=e.selectedDates)?void 0:t[0])&&void 0===e.selectedMonth&&void 0===e.selectedYear){const t=I(L(e.selectedDates)[0]);return void Re(e,t.getMonth(),t.getFullYear())}if((e=>{const t=t=>{const n=new Date(t);Re(e,n.getMonth(),n.getFullYear())};if(e.displayDateMin&&"today"!==e.displayDateMin&&(n=e.displayDateMin,o=new Date,new Date(n).getTime()>o.getTime())){const n=e.selectedDates.length&&e.selectedDates[0]?L(e.selectedDates)[0]:e.displayDateMin;return t(I(je(n,e.displayDateMin))),!0}var n,o;if(e.displayDateMax&&"today"!==e.displayDateMax&&((e,t)=>new Date(e).getTime()<t.getTime())(e.displayDateMax,new Date)){const n=e.selectedDates.length&&e.selectedDates[0]?L(e.selectedDates)[0]:e.displayDateMax;return t(I(je(n,e.displayDateMax))),!0}return!1})(e))return;const n=void 0!==e.selectedMonth&&Number(e.selectedMonth)>=0&&Number(e.selectedMonth)<12,o=void 0!==e.selectedYear&&Number(e.selectedYear)>=0&&Number(e.selectedYear)<=9999;Re(e,n?Number(e.selectedMonth):I(e.context.dateToday).getMonth(),o?Number(e.selectedYear):I(e.context.dateToday).getFullYear())},ze=e=>{y(e,"currentType",e.type),(e=>{if("multiple"===e.type&&(e.displayMonthsCount<=1||e.displayMonthsCount>12))throw new Error(b);if("multiple"!==e.type&&e.displayMonthsCount>1)throw new Error(b);y(e,"displayMonthsCount",e.displayMonthsCount?e.displayMonthsCount:"multiple"===e.type?2:1)})(e),(e=>{var t,n,o;const i=je(e.dateMin,e.dateMin),s=je(e.dateMax,e.dateMax),a=je(e.displayDateMin,i),l=je(e.displayDateMax,s);y(e,"dateToday",je(e.dateToday,e.dateToday)),y(e,"displayDateMin",a?I(i)>=I(a)?i:a:i),y(e,"displayDateMax",l?I(s)<=I(l)?s:l:s);const r=e.disableDatesPast&&!e.disableAllDates&&I(a)<I(e.context.dateToday);y(e,"displayDateMin",r||e.disableAllDates?e.context.dateToday:a),y(e,"displayDateMax",e.disableAllDates?e.context.dateToday:l),y(e,"disableDates",e.disableDates[0]&&!e.disableAllDates?L(e.disableDates):e.disableAllDates?[e.context.displayDateMin]:[]),e.context.disableDates.length>1&&e.context.disableDates.sort((e,t)=>+new Date(e)-+new Date(t)),y(e,"enableDates",e.enableDates[0]?L(e.enableDates):[]),(null==(t=e.context.enableDates)?void 0:t[0])&&(null==(n=e.context.disableDates)?void 0:n[0])&&y(e,"disableDates",e.context.disableDates.filter(t=>!e.context.enableDates.includes(t))),e.context.enableDates.length>1&&e.context.enableDates.sort((e,t)=>+new Date(e)-+new Date(t)),(null==(o=e.context.enableDates)?void 0:o[0])&&e.disableAllDates&&(y(e,"displayDateMin",e.context.enableDates[0]),y(e,"displayDateMax",e.context.enableDates[e.context.enableDates.length-1])),y(e,"dateMin",e.displayDisabledDates?i:e.context.displayDateMin),y(e,"dateMax",e.displayDisabledDates?s:e.context.displayDateMax)})(e),_e(e),(e=>{var t;y(e,"selectedDates",(null==(t=e.selectedDates)?void 0:t[0])?L(e.selectedDates):[])})(e),(e=>{var t,n,o;if(!e.selectionTimeMode)return;if(![12,24].includes(e.selectionTimeMode))throw new Error(g);const i=12===e