preline
Version:
Preline UI is an open-source set of prebuilt UI components based on the utility-first Tailwind CSS framework.
1 lines • 351 kB
JavaScript
var e={40:(e,t,i)=>{i.d(t,{A:()=>et});var s=i(926),n=Object.defineProperty,o=Object.defineProperties,l=Object.getOwnPropertyDescriptors,a=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable,d=(e,t,i)=>t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,h=(e,t)=>{for(var i in t||(t={}))r.call(t,i)&&d(e,i,t[i]);if(a)for(var i of a(t))c.call(t,i)&&d(e,i,t[i]);return e},u=(e,t,i)=>(d(e,"symbol"!=typeof t?t+"":t,i),i);const p=e=>`${e} is not found, check the first argument passed to new Calendar.`,m='The calendar has not been initialized, please initialize it using the "init()" method first.',g="You specified an incorrect language label or did not specify the required number of values for «locale.weekdays» or «locale.months».",v="The value of the time property can be: false, 12 or 24.",f="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,i)=>{e.context[t]=i},w=e=>{e.context.isShowInInputMode&&e.context.currentType&&(e.context.mainElement.dataset.vcCalendarHidden="",y(e,"isShowInInputMode",!1),e.context.cleanupHandlers[0]&&(e.context.cleanupHandlers.forEach((e=>e())),y(e,"cleanupHandlers",[])),e.onHide&&e.onHide(e))};function b(e){if(!e||!e.getBoundingClientRect)return{top:0,bottom:0,left:0,right:0};const t=e.getBoundingClientRect(),i=document.documentElement;return{bottom:t.bottom,right:t.right,top:t.top+window.scrollY-i.clientTop,left:t.left+window.scrollX-i.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 x(e){const{top:t,left:i}={left:window.scrollX||document.documentElement.scrollLeft||0,top:window.scrollY||document.documentElement.scrollTop||0},{top:s,left:n}=b(e),{vh:o,vw:l}=C(),a=s-t,r=n-i;return{top:a,bottom:o-(a+e.clientHeight),left:r,right:l-(r+e.clientWidth)}}function S(e,t,i=5){const s={top:!0,bottom:!0,left:!0,right:!0},n=[];if(!t||!e)return{canShow:s,parentPositions:n};const{bottom:o,top:l}=x(e),{top:a,left:r}=b(e),{height:c,width:d}=t.getBoundingClientRect(),{vh:h,vw:u}=C(),p=u/2,m=h/2;return[{condition:a<m,position:"top"},{condition:a>m,position:"bottom"},{condition:r<p,position:"left"},{condition:r>p,position:"right"}].forEach((({condition:e,position:t})=>{e&&n.push(t)})),Object.assign(s,{top:c<=l-i,bottom:c<=o-i,left:d<=r,right:d<=u-r}),{canShow:s,parentPositions:n}}const L=(e,t)=>{var i;e.popups&&(null==(i=Object.entries(e.popups))||i.forEach((([i,s])=>((e,t,i,s)=>{var n;const o=s.querySelector(`[data-vc-date="${t}"]`),l=null==o?void 0:o.querySelector("[data-vc-date-btn]");if(!o||!l)return;if((null==i?void 0:i.modifier)&&l.classList.add(...i.modifier.trim().split(" ")),!(null==i?void 0:i.html))return;const a=document.createElement("div");a.className=e.styles.datePopup,a.dataset.vcDatePopup="",a.innerHTML=e.sanitizerHTML(i.html),l.ariaExpanded="true",l.ariaLabel=`${l.ariaLabel}, ${null==(n=null==a?void 0:a.textContent)?void 0:n.replace(/^\s+|\s+(?=\s)|\s+$/g,"").replace(/ /g," ")}`,o.appendChild(a),requestAnimationFrame((()=>{if(!a)return;const{canShow:e}=S(o,a),t=e.bottom?o.offsetHeight:-a.offsetHeight,i=e.left&&!e.right?o.offsetWidth-a.offsetWidth/2:!e.left&&e.right?a.offsetWidth/2:0;Object.assign(a.style,{left:`${i}px`,top:`${t}px`})}))})(e,i,s,t))))},E=e=>new Date(`${e}T00:00:00`),k=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,T=e=>e.reduce(((e,t)=>{if(t instanceof Date||"number"==typeof t){const i=t instanceof Date?t:new Date(t);e.push(i.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,i,s)=>{const n=E(i),o=E(s),l=new Date(n.getTime());for(;l<=o;l.setDate(l.getDate()+1))e.push(k(l));return t}));return e}),[]),I=(e,t,i,s="")=>{t?e.setAttribute(i,s):e.getAttribute(i)===s&&e.removeAttribute(i)},A=(e,t,i,s,n,o,l)=>{var a,r,c,d;const h=E(e.context.displayDateMin)>E(o)||E(e.context.displayDateMax)<E(o)||(null==(a=e.context.disableDates)?void 0:a.includes(o))||!e.selectionMonthsMode&&"current"!==l||!e.selectionYearsMode&&E(o).getFullYear()!==t;I(i,h,"data-vc-date-disabled"),s&&I(s,h,"aria-disabled","true"),s&&I(s,h,"tabindex","-1"),I(i,!e.disableToday&&e.context.dateToday===o,"data-vc-date-today"),I(i,!e.disableToday&&e.context.dateToday===o,"aria-current","date"),I(i,null==(r=e.selectedWeekends)?void 0:r.includes(n),"data-vc-date-weekend");const u=(null==(c=e.selectedHolidays)?void 0:c[0])?T(e.selectedHolidays):[];if(I(i,u.includes(o),"data-vc-date-holiday"),(null==(d=e.context.selectedDates)?void 0:d.includes(o))?(i.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?i.setAttribute("data-vc-date-selected","first-and-last"):e.context.selectedDates[0]===o?i.setAttribute("data-vc-date-selected","first"):e.context.selectedDates[e.context.selectedDates.length-1]===o&&i.setAttribute("data-vc-date-selected","last"),e.context.selectedDates[0]!==o&&e.context.selectedDates[e.context.selectedDates.length-1]!==o&&i.setAttribute("data-vc-date-selected","middle"))):i.hasAttribute("data-vc-date-selected")&&(i.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=E(e.context.selectedDates[0]),s=E(e.context.selectedDates[e.context.selectedDates.length-1]),n=E(o);I(i,n>t&&n<s,"data-vc-date-selected","middle")}},D=(e,t)=>{const i=E(e),s=(i.getDay()-t+7)%7;i.setDate(i.getDate()+4-s);const n=new Date(i.getFullYear(),0,1),o=Math.ceil(((+i-+n)/864e5+1)/7);return{year:i.getFullYear(),week:o}},M=(e,t,i,s,n,o)=>{const l=E(n).getDay(),a="string"==typeof e.locale&&e.locale.length?e.locale:"en",r=document.createElement("div");let c;r.className=e.styles.date,r.dataset.vcDate=n,r.dataset.vcDateMonth=o,r.dataset.vcDateWeekDay=String(l),("current"===o||e.displayDatesOutside)&&(c=document.createElement("button"),c.className=e.styles.dateBtn,c.type="button",c.role="gridcell",c.ariaLabel=((e,t,i)=>new Date(`${e}T00:00:00.000Z`).toLocaleString(t,i))(n,a,{dateStyle:"long",timeZone:"UTC"}),c.dataset.vcDateBtn="",c.innerText=String(s),r.appendChild(c)),e.enableWeekNumbers&&((e,t,i)=>{const s=D(i,e.firstWeekday);s&&(t.dataset.vcDateWeekNumber=String(s.week))})(e,r,n),((e,t,i)=>{var s,n,o,l,a;const r=null==(s=e.disableWeekdays)?void 0:s.includes(i),c=e.disableAllDates&&!!(null==(n=e.context.enableDates)?void 0:n[0]);!r&&!c||(null==(o=e.context.enableDates)?void 0:o.includes(t))||(null==(l=e.context.disableDates)?void 0:l.includes(t))||(e.context.disableDates.push(t),null==(a=e.context.disableDates)||a.sort(((e,t)=>+new Date(e)-+new Date(t))))})(e,n,l),A(e,t,r,c,l,n,o),i.appendChild(r),e.onCreateDateEls&&e.onCreateDateEls(e,r)},$=e=>{const t=new Date(e.context.selectedYear,e.context.selectedMonth,1),i=e.context.mainElement.querySelectorAll('[data-vc="dates"]'),s=e.context.mainElement.querySelectorAll('[data-vc-week="numbers"]');i.forEach(((i,n)=>{e.selectionDatesMode||(i.dataset.vcDatesDisabled=""),i.textContent="";const o=new Date(t);o.setMonth(o.getMonth()+n);const l=o.getMonth(),a=o.getFullYear(),r=(new Date(a,l,1).getDay()-e.firstWeekday+7)%7,c=new Date(a,l+1,0).getDate();((e,t,i,s,n)=>{let o=new Date(i,s,0).getDate()-(n-1);const l=0===s?i-1:i,a=0===s?12:s<10?`0${s}`:s;for(let s=n;s>0;s--,o++)M(e,i,t,o,`${l}-${a}-${o}`,"prev")})(e,i,a,l,r),((e,t,i,s,n)=>{for(let o=1;o<=i;o++){const i=new Date(s,n,o);M(e,s,t,o,k(i),"current")}})(e,i,c,a,l),((e,t,i,s,n,o)=>{const l=o+i,a=7*Math.ceil(l/7)-l,r=n+1===12?s+1:s,c=n+1===12?"01":n+2<10?`0${n+2}`:n+2;for(let i=1;i<=a;i++){const n=i<10?`0${i}`:String(i);M(e,s,t,i,`${r}-${c}-${n}`,"next")}})(e,i,c,a,l,r),L(e,i),((e,t,i,s,n)=>{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 l=document.createElement("div");l.className=e.styles.weekNumbersContent,l.dataset.vcWeekNumbers="content",s.appendChild(l);const a=document.createElement("button");a.type="button",a.className=e.styles.weekNumber;const r=n.querySelectorAll("[data-vc-date]"),c=Math.ceil((t+i)/7);for(let t=0;t<c;t++){const i=r[0===t?6:7*t].dataset.vcDate,s=D(i,e.firstWeekday);if(!s)return;const n=a.cloneNode(!0);n.innerText=String(s.week),n.dataset.vcWeekNumber=String(s.week),n.dataset.vcWeekYear=String(s.year),n.role="rowheader",n.ariaLabel=`${s.week}`,l.appendChild(n)}})(e,r,c,s[n],i)}))},O=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">\n <#Week />\n <#Dates />\n <#DateRangeTooltip />\n </div>\n </div>\n <#ControlTime />\n`,P=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`,q=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">\n <#Week />\n <#Dates />\n </div>\n </div>\n </div>\n <#/Multiple>\n <#DateRangeTooltip />\n </div>\n <#ControlTime />\n`,N=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`,B={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" role="grid" 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>`},H=(e,t)=>t.replace(/[\n\t]/g,"").replace(/<#(?!\/?Multiple)(.*?)>/g,((t,i)=>{const s=(i.match(/\[(.*?)\]/)||[])[1],n=(e=>B[e])(i.replace(/[/\s\n\t]|\[(.*?)\]/g,"")),o=n?n(e,null!=s?s:null):"";return e.sanitizerHTML(o)})).replace(/[\n\t]/g,""),F=(e,t)=>{const i={default:O,month:P,year:N,multiple:q};if(Object.keys(i).forEach((t=>{const s=t;e.layouts[s].length||(e.layouts[s]=i[s](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 i=e.context.mainElement.querySelector('[data-vc="controls"]'),s=e.context.mainElement.querySelector('[data-vc="grid"]'),n=t.closest('[data-vc="column"]');return i&&e.context.mainElement.removeChild(i),s&&(s.dataset.vcGrid="hidden"),n&&(n.dataset.vcColumn=e.context.currentType),void(n&&(n.innerHTML=e.sanitizerHTML(H(e,e.layouts[e.context.currentType]))))}e.context.mainElement.innerHTML=e.sanitizerHTML(H(e,e.layouts[e.context.currentType]))}else e.context.mainElement.innerHTML=e.sanitizerHTML(((e,t)=>t.replace(new RegExp("<#Multiple>(.*?)<#\\/Multiple>","gs"),((t,i)=>{const s=Array(e.context.displayMonthsCount).fill(i).join("");return e.sanitizerHTML(s)})).replace(/[\n\t]/g,""))(e,H(e,e.layouts[e.context.currentType])))},R=(e,t,i,s)=>{e.style.visibility=i?"hidden":"",t.style.visibility=s?"hidden":""},V=e=>{if("month"===e.context.currentType)return;const t=e.context.mainElement.querySelector('[data-vc-arrow="prev"]'),i=e.context.mainElement.querySelector('[data-vc-arrow="next"]');t&&i&&{default:()=>((e,t,i)=>{const s=E(k(new Date(e.context.selectedYear,e.context.selectedMonth,1))),n=new Date(s.getTime()),o=new Date(s.getTime());n.setMonth(n.getMonth()-e.monthsToSwitch),o.setMonth(o.getMonth()+e.monthsToSwitch);const l=E(e.context.dateMin),a=E(e.context.dateMax);e.selectionYearsMode||(l.setFullYear(s.getFullYear()),a.setFullYear(s.getFullYear()));const r=!e.selectionMonthsMode||n.getFullYear()<l.getFullYear()||n.getFullYear()===l.getFullYear()&&n.getMonth()<l.getMonth(),c=!e.selectionMonthsMode||o.getFullYear()>a.getFullYear()||o.getFullYear()===a.getFullYear()&&o.getMonth()>a.getMonth()-(e.context.displayMonthsCount-1);R(t,i,r,c)})(e,t,i),year:()=>((e,t,i)=>{const s=E(e.context.dateMin),n=E(e.context.dateMax),o=!!(s.getFullYear()&&e.context.displayYear-7<=s.getFullYear()),l=!!(n.getFullYear()&&e.context.displayYear+7>=n.getFullYear());R(t,i,o,l)})(e,t,i)}["multiple"===e.context.currentType?"default":e.context.currentType]()},z=e=>{const t=e.context.mainElement.querySelectorAll('[data-vc="month"]'),i=e.context.mainElement.querySelectorAll('[data-vc="year"]'),s=new Date(e.context.selectedYear,e.context.selectedMonth,1);[t,i].forEach((t=>null==t?void 0:t.forEach(((t,i)=>((e,t,i,s,n)=>{const o=new Date(s.setFullYear(e.context.selectedYear,e.context.selectedMonth+i)).getFullYear(),l=new Date(s.setMonth(e.context.selectedMonth+i)).getMonth(),a=e.context.locale.months.long[l],r=t.closest('[data-vc="column"]');r&&(r.ariaLabel=`${a} ${o}`);const c={month:{id:l,label:a},year:{id:o,label:o}};t.innerText=String(c[n].label),t.dataset[`vc${n.charAt(0).toUpperCase()+n.slice(1)}`]=String(c[n].id),t.ariaLabel=`${e.labels[n]} ${c[n].label}`;const d={month:e.selectionMonthsMode,year:e.selectionYearsMode},h=!1===d[n]||"only-arrows"===d[n];h&&(t.tabIndex=-1),t.disabled=h})(e,t,i,s,t.dataset.vc)))))},W=(e,t,i,s,n)=>{var o;const l={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"}};n&&(null==(o=e.context.mainElement.querySelectorAll({month:"[data-vc-months-month]",year:"[data-vc-years-year]"}[i]))||o.forEach((e=>{e.removeAttribute(l[i].selected),e.removeAttribute(l[i].aria)})),y(e,l[i].selectedProperty,Number(t.dataset[l[i].value])),z(e),"year"===i&&V(e)),s&&(t.setAttribute(l[i].selected,""),t.setAttribute(l[i].aria,"true"))},j=(e,t)=>{var i;if("multiple"!==e.type)return{currentValue:null,columnID:0};const s=e.context.mainElement.querySelectorAll('[data-vc="column"]'),n=Array.from(s).findIndex((e=>e.closest(`[data-vc-column="${t}"]`)));return{currentValue:n>=0?Number(null==(i=s[n].querySelector(`[data-vc="${t}"]`))?void 0:i.getAttribute(`data-vc-${t}`)):null,columnID:Math.max(n,0)}},U=(e,t,i,s,n,o,l)=>{const a=t.cloneNode(!1);return a.className=e.styles.monthsMonth,a.innerText=s,a.ariaLabel=n,a.role="gridcell",a.dataset.vcMonthsMonth=`${l}`,o&&(a.ariaDisabled="true"),o&&(a.tabIndex=-1),a.disabled=o,W(e,a,"month",i===l,!1),a},Y=(e,t)=>{var i,s;const n=null==(i=null==t?void 0:t.closest('[data-vc="header"]'))?void 0:i.querySelector('[data-vc="year"]'),o=n?Number(n.dataset.vcYear):e.context.selectedYear,l=(null==t?void 0:t.dataset.vcMonth)?Number(t.dataset.vcMonth):e.context.selectedMonth;y(e,"currentType","month"),F(e,t),z(e);const a=e.context.mainElement.querySelector('[data-vc="months"]');if(!e.selectionMonthsMode||!a)return;const r=e.monthsToSwitch>1?e.context.locale.months.long.map(((t,i)=>l-e.monthsToSwitch*i)).concat(e.context.locale.months.long.map(((t,i)=>l+e.monthsToSwitch*i))).filter((e=>e>=0&&e<=12)):Array.from(Array(12).keys()),c=document.createElement("button");c.type="button";for(let t=0;t<12;t++){const i=E(e.context.dateMin),s=E(e.context.dateMax),n=e.context.displayMonthsCount-1,{columnID:d}=j(e,"month"),h=o<=i.getFullYear()&&t<i.getMonth()+d||o>=s.getFullYear()&&t>s.getMonth()-n+d||o>s.getFullYear()||t!==l&&!r.includes(t),u=U(e,c,l,e.context.locale.months.short[t],e.context.locale.months.long[t],h,t);a.appendChild(u),e.onCreateMonthEls&&e.onCreateMonthEls(e,u)}null==(s=e.context.mainElement.querySelector("[data-vc-months-month]:not([disabled])"))||s.focus()},J=(e,t,i,s,n)=>`\n <label class="${t}" data-vc-time-input="${e}">\n <input type="text" name="${e}" maxlength="2" aria-label="${i[`input${e.charAt(0).toUpperCase()+e.slice(1)}`]}" value="${s}" ${n?"disabled":""}>\n </label>\n`,Q=(e,t,i,s,n,o,l)=>`\n <label class="${t}" data-vc-time-range="${e}">\n <input type="range" name="${e}" min="${s}" max="${n}" step="${o}" aria-label="${i[`range${e.charAt(0).toUpperCase()+e.slice(1)}`]}" value="${l}">\n </label>\n`,K=(e,t,i,s)=>{({hour:()=>y(e,"selectedHours",i),minute:()=>y(e,"selectedMinutes",i)})[s](),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)},Z=(e,t)=>{var i;return(null==(i={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:i[t])||String(e)},X=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)),G=(e,t,i,s)=>{e.value=i,t.value=s},ee=(e,t,i,s,n,o,l)=>{const a={hour:(a,r,c)=>{e.selectionTimeMode&&{12:()=>{if(!e.context.selectedKeeping)return;const d=Number(Z(r,e.context.selectedKeeping));if(!(d<=o&&d>=l))return G(i,t,e.context.selectedHours,e.context.selectedHours),void(e.onChangeTime&&e.onChangeTime(e,c,!0));G(i,t,X(r),Z(r,e.context.selectedKeeping)),a>12&&((e,t,i)=>{t&&i&&(y(e,"selectedKeeping",i),t.innerText=i)})(e,s,"PM"),K(e,c,X(r),n)},24:()=>{if(!(a<=o&&a>=l))return G(i,t,e.context.selectedHours,e.context.selectedHours),void(e.onChangeTime&&e.onChangeTime(e,c,!0));G(i,t,r,r),K(e,c,r,n)}}[e.selectionTimeMode]()},minute:(s,a,r)=>{if(!(s<=o&&s>=l))return i.value=e.context.selectedMinutes,void(e.onChangeTime&&e.onChangeTime(e,r,!0));i.value=a,t.value=a,K(e,r,a,n)}},r=e=>{const t=Number(i.value),s=i.value.padStart(2,"0");a[n]&&a[n](t,s,e)};return i.addEventListener("change",r),()=>{i.removeEventListener("change",r)}},te=(e,t,i,s,n)=>{const o=o=>{const l=Number(t.value),a=t.value.padStart(2,"0"),r="hour"===n,c=24===e.selectionTimeMode,d=l>0&&l<12;r&&!c&&((e,t,i)=>{t&&(y(e,"selectedKeeping",i),t.innerText=i)})(e,s,0===l||d?"AM":"PM"),((e,t,i,s,n)=>{t.value=n,K(e,i,n,s)})(e,i,o,n,!r||c||d?a:X(t.value))};return t.addEventListener("input",o),()=>{t.removeEventListener("input",o)}},ie=e=>e.setAttribute("data-vc-input-focus",""),se=e=>e.removeAttribute("data-vc-input-focus"),ne=(e,t)=>{const i=t.querySelector('[data-vc-time-range="hour"] input[name="hour"]'),s=t.querySelector('[data-vc-time-range="minute"] input[name="minute"]'),n=t.querySelector('[data-vc-time-input="hour"] input[name="hour"]'),o=t.querySelector('[data-vc-time-input="minute"] input[name="minute"]'),l=t.querySelector('[data-vc-time="keeping"]');if(!(i&&s&&n&&o))return;const a=e=>{e.target===i&&ie(n),e.target===s&&ie(o)},r=e=>{e.target===i&&se(n),e.target===s&&se(o)};return t.addEventListener("mouseover",a),t.addEventListener("mouseout",r),ee(e,i,n,l,"hour",e.timeMaxHour,e.timeMinHour),ee(e,s,o,l,"minute",e.timeMaxMinute,e.timeMinMinute),te(e,i,n,l,"hour"),te(e,s,o,l,"minute"),l&&((e,t,i,s,n)=>{const o=o=>{const l="AM"===e.context.selectedKeeping?"PM":"AM",a=Z(e.context.selectedHours,l);Number(a)<=s&&Number(a)>=n?(y(e,"selectedKeeping",l),i.value=a,K(e,o,e.context.selectedHours,"hour"),t.ariaLabel=`${e.labels.btnKeeping} ${e.context.selectedKeeping}`,t.innerText=e.context.selectedKeeping):e.onChangeTime&&e.onChangeTime(e,o,!0)};t.addEventListener("click",o)})(e,l,i,e.timeMaxHour,e.timeMinHour),()=>{t.removeEventListener("mouseover",a),t.removeEventListener("mouseout",r)}},oe=e=>{const t=e.selectedWeekends?[...e.selectedWeekends]:[],i=[...e.context.locale.weekdays.long].reduce(((i,s,n)=>[...i,{id:n,titleShort:e.context.locale.weekdays.short[n],titleLong:s,isWeekend:t.includes(n)}]),[]),s=[...i.slice(e.firstWeekday),...i.slice(0,e.firstWeekday)];e.context.mainElement.querySelectorAll('[data-vc="week"]').forEach((t=>{const i=e.onClickWeekDay?document.createElement("button"):document.createElement("b");e.onClickWeekDay&&(i.type="button"),s.forEach((s=>{const n=i.cloneNode(!0);n.innerText=s.titleShort,n.className=e.styles.weekDay,n.role="columnheader",n.ariaLabel=s.titleLong,n.dataset.vcWeekDay=String(s.id),s.isWeekend&&(n.dataset.vcWeekDayOff=""),t.appendChild(n)}))}))},le=(e,t,i,s,n)=>{const o=t.cloneNode(!1);return o.className=e.styles.yearsYear,o.innerText=String(n),o.ariaLabel=String(n),o.role="gridcell",o.dataset.vcYearsYear=`${n}`,s&&(o.ariaDisabled="true"),s&&(o.tabIndex=-1),o.disabled=s,W(e,o,"year",i===n,!1),o},ae=(e,t)=>{var i;const s=(null==t?void 0:t.dataset.vcYear)?Number(t.dataset.vcYear):e.context.selectedYear;y(e,"currentType","year"),F(e,t),z(e),V(e);const n=e.context.mainElement.querySelector('[data-vc="years"]');if(!e.selectionYearsMode||!n)return;const o="multiple"!==e.type||e.context.selectedYear===s?0:1,l=document.createElement("button");l.type="button";for(let t=e.context.displayYear-7;t<e.context.displayYear+8;t++){const i=t<E(e.context.dateMin).getFullYear()+o||t>E(e.context.dateMax).getFullYear(),a=le(e,l,s,i,t);n.appendChild(a),e.onCreateYearEls&&e.onCreateYearEls(e,a)}null==(i=e.context.mainElement.querySelector("[data-vc-years-year]:not([disabled])"))||i.focus()},re={value:!1,set:()=>re.value=!0,check:()=>re.value},ce=(e,t)=>e.dataset.vcTheme=t,de=(e,t)=>{if(ce(e.context.mainElement,t.matches?"dark":"light"),"system"!==e.selectedTheme||re.check())return;const i=e=>{const t=document.querySelectorAll('[data-vc="calendar"]');null==t||t.forEach((t=>ce(t,e.matches?"dark":"light")))};t.addEventListener?t.addEventListener("change",i):t.addListener(i),re.set()},he=(e,t)=>{const i=e.themeAttrDetect.length?document.querySelector(e.themeAttrDetect):null,s=e.themeAttrDetect.replace(/^.*\[(.+)\]/g,((e,t)=>t));if(!i||"system"===i.getAttribute(s))return void de(e,t);const n=i.getAttribute(s);n?(ce(e.context.mainElement,n),((e,t,i)=>{new MutationObserver((e=>{for(let s=0;s<e.length;s++)if(e[s].attributeName===t){i();break}})).observe(e,{attributes:!0})})(i,s,(()=>{const t=i.getAttribute(s);t&&ce(e.context.mainElement,t)}))):de(e,t)},ue=e=>e.charAt(0).toUpperCase()+e.slice(1).replace(/\./,""),pe=e=>{var t,i,s,n,o,l,a,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(g);Array.from({length:7},((t,i)=>((e,t,i)=>{const s=new Date(`1978-01-0${t+1}T00:00:00.000Z`),n=s.toLocaleString(i,{weekday:"short",timeZone:"UTC"}),o=s.toLocaleString(i,{weekday:"long",timeZone:"UTC"});e.context.locale.weekdays.short.push(ue(n)),e.context.locale.weekdays.long.push(ue(o))})(e,i,e.locale))),Array.from({length:12},((t,i)=>((e,t,i)=>{const s=new Date(`1978-${String(t+1).padStart(2,"0")}-01T00:00:00.000Z`),n=s.toLocaleString(i,{month:"short",timeZone:"UTC"}),o=s.toLocaleString(i,{month:"long",timeZone:"UTC"});e.context.locale.months.short.push(ue(n)),e.context.locale.months.long.push(ue(o))})(e,i,e.locale)))}else{if(!((null==(i=null==(t=e.locale)?void 0:t.weekdays)?void 0:i.short[6])&&(null==(n=null==(s=e.locale)?void 0:s.weekdays)?void 0:n.long[6])&&(null==(l=null==(o=e.locale)?void 0:o.months)?void 0:l.short[11])&&(null==(r=null==(a=e.locale)?void 0:a.months)?void 0:r.long[11])))throw new Error(g);y(e,"locale",h({},e.locale))}},me=e=>{const t={default:()=>{oe(e),$(e)},multiple:()=>{oe(e),$(e)},month:()=>Y(e),year:()=>ae(e)};(e=>{"not all"!==window.matchMedia("(prefers-color-scheme)").media?"system"===e.selectedTheme?he(e,window.matchMedia("(prefers-color-scheme: dark)")):ce(e.context.mainElement,e.selectedTheme):ce(e.context.mainElement,"light")})(e),pe(e),F(e),z(e),V(e),(e=>{const t=e.context.mainElement.querySelector('[data-vc="time"]');if(!e.selectionTimeMode||!t)return;const[i,s]=[e.timeMinHour,e.timeMaxHour],[n,o]=[e.timeMinMinute,e.timeMaxMinute],l=e.context.selectedKeeping?Z(e.context.selectedHours,e.context.selectedKeeping):e.context.selectedHours,a="range"===e.timeControls;var r;t.innerHTML=e.sanitizerHTML(`\n <div class="${e.styles.timeContent}" data-vc-time="content">\n ${J("hour",e.styles.timeHour,e.labels,e.context.selectedHours,a)}\n ${J("minute",e.styles.timeMinute,e.labels,e.context.selectedMinutes,a)}\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" ${a?"disabled":""}>${r}</button>`):""}\n </div>\n <div class="${e.styles.timeRanges}" data-vc-time="ranges">\n ${Q("hour",e.styles.timeRange,e.labels,i,s,e.timeStepHour,l)}\n ${Q("minute",e.styles.timeRange,e.labels,n,o,e.timeStepMinute,e.context.selectedMinutes)}\n </div>\n `),ne(e,t)})(e),t[e.context.currentType]()},ge=e=>{const t=t=>{var i;const s=t.target;if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(t.key)||"button"!==s.localName)return;const n=Array.from(e.context.mainElement.querySelectorAll('[data-vc="calendar"] button')),o=n.indexOf(s);if(-1===o)return;const l=(a=n[o]).hasAttribute("data-vc-date-btn")?7:a.hasAttribute("data-vc-months-month")?4:a.hasAttribute("data-vc-years-year")?5:1;var a;const r=(0,{ArrowUp:()=>Math.max(0,o-l),ArrowDown:()=>Math.min(n.length-1,o+l),ArrowLeft:()=>Math.max(0,o-1),ArrowRight:()=>Math.min(n.length-1,o+1)}[t.key])();null==(i=n[r])||i.focus()};return e.context.mainElement.addEventListener("keydown",t),()=>e.context.mainElement.removeEventListener("keydown",t)},ve=(e,t)=>{const i=E(k(new Date(e.context.selectedYear,e.context.selectedMonth,1)));({prev:()=>i.setMonth(i.getMonth()-e.monthsToSwitch),next:()=>i.setMonth(i.getMonth()+e.monthsToSwitch)})[t](),y(e,"selectedMonth",i.getMonth()),y(e,"selectedYear",i.getFullYear()),z(e),V(e),$(e)},fe=e=>void 0===e.enableDateToggle||("function"==typeof e.enableDateToggle?e.enableDateToggle(e):e.enableDateToggle),ye=(e,t,i)=>{const s=t.dataset.vcDate,n=t.closest("[data-vc-date][data-vc-date-selected]"),o=fe(e);if(n&&!o)return;const l=n?e.context.selectedDates.filter((e=>e!==s)):i?[...e.context.selectedDates,s]:[s];y(e,"selectedDates",l)},we=(e,t,i)=>{if(!t)return;if(!i)return t.dataset.vcDateRangeTooltip="hidden",void(t.textContent="");const s=e.context.mainElement.getBoundingClientRect(),n=i.getBoundingClientRect();t.style.left=n.left-s.left+n.width/2+"px",t.style.top=n.bottom-s.top-n.height+"px",t.dataset.vcDateRangeTooltip="visible",t.innerHTML=e.sanitizerHTML(e.onCreateDateRangeTooltip(e,i,t,n,s))},be={self:null,lastDateEl:null,isHovering:!1,rangeMin:void 0,rangeMax:void 0,tooltipEl:null,timeoutId:null},Ce=(e,t,i)=>{var s,n,o;if(!(null==(n=null==(s=be.self)?void 0:s.context)?void 0:n.selectedDates[0]))return;const l=k(e);(null==(o=be.self.context.disableDates)?void 0:o.includes(l))||(be.self.context.mainElement.querySelectorAll(`[data-vc-date="${l}"]`).forEach((e=>e.dataset.vcDateHover="")),t.forEach((e=>e.dataset.vcDateHover="first")),i.forEach((e=>{"first"===e.dataset.vcDateHover?e.dataset.vcDateHover="first-and-last":e.dataset.vcDateHover="last"})))},xe=()=>{var e,t;(null==(t=null==(e=be.self)?void 0:e.context)?void 0:t.mainElement)&&be.self.context.mainElement.querySelectorAll("[data-vc-date-hover]").forEach((e=>e.removeAttribute("data-vc-date-hover")))},Se=e=>t=>{be.isHovering||(be.isHovering=!0,requestAnimationFrame((()=>{e(t),be.isHovering=!1})))},Le=Se((e=>{var t,i;if(!e.target||!(null==(i=null==(t=be.self)?void 0:t.context)?void 0:i.selectedDates[0]))return;if(!e.target.closest('[data-vc="dates"]'))return be.lastDateEl=null,we(be.self,be.tooltipEl,null),void xe();const s=e.target.closest("[data-vc-date]");if(!s||be.lastDateEl===s)return;be.lastDateEl=s,we(be.self,be.tooltipEl,s),xe();const n=s.dataset.vcDate,o=E(be.self.context.selectedDates[0]),l=E(n),a=be.self.context.mainElement.querySelectorAll(`[data-vc-date="${be.self.context.selectedDates[0]}"]`),r=be.self.context.mainElement.querySelectorAll(`[data-vc-date="${n}"]`),[c,d]=o<l?[a,r]:[r,a],[h,u]=o<l?[o,l]:[l,o];for(let e=new Date(h);e<=u;e.setDate(e.getDate()+1))Ce(e,c,d)})),Ee=Se((e=>{const t=e.target.closest("[data-vc-date-selected]");if(!t&&be.lastDateEl)return be.lastDateEl=null,void we(be.self,be.tooltipEl,null);t&&be.lastDateEl!==t&&(be.lastDateEl=t,we(be.self,be.tooltipEl,t))})),ke=e=>{be.self&&"Escape"===e.key&&(be.lastDateEl=null,y(be.self,"selectedDates",[]),be.self.context.mainElement.removeEventListener("mousemove",Le),be.self.context.mainElement.removeEventListener("keydown",ke),we(be.self,be.tooltipEl,null),xe())},Te=()=>{null!==be.timeoutId&&clearTimeout(be.timeoutId),be.timeoutId=setTimeout((()=>{be.lastDateEl=null,we(be.self,be.tooltipEl,null),xe()}),50)},Ie=(e,t)=>{be.self=e,be.lastDateEl=t,xe(),e.disableDatesGaps&&(be.rangeMin=be.rangeMin?be.rangeMin:e.context.displayDateMin,be.rangeMax=be.rangeMax?be.rangeMax:e.context.displayDateMax),e.onCreateDateRangeTooltip&&(be.tooltipEl=e.context.mainElement.querySelector("[data-vc-date-range-tooltip]"));const i=null==t?void 0:t.dataset.vcDate;if(i){const t=1===e.context.selectedDates.length&&e.context.selectedDates[0].includes(i),s=t&&!fe(e)?[i,i]:t&&fe(e)?[]:e.context.selectedDates.length>1?[i]:[...e.context.selectedDates,i];y(e,"selectedDates",s),e.context.selectedDates.length>1&&e.context.selectedDates.sort(((e,t)=>+new Date(e)-+new Date(t)))}({set:()=>(e.disableDatesGaps&&(()=>{var e,t,i,s;if(!(null==(i=null==(t=null==(e=be.self)?void 0:e.context)?void 0:t.selectedDates)?void 0:i[0])||!(null==(s=be.self.context.disableDates)?void 0:s[0]))return;const n=E(be.self.context.selectedDates[0]),[o,l]=be.self.context.disableDates.map((e=>E(e))).reduce((([e,t],i)=>[n>=i?i:e,n<i&&null===t?i:t]),[null,null]);o&&y(be.self,"displayDateMin",k(new Date(o.setDate(o.getDate()+1)))),l&&y(be.self,"displayDateMax",k(new Date(l.setDate(l.getDate()-1)))),be.self.disableDatesPast&&!be.self.disableAllDates&&E(be.self.context.displayDateMin)<E(be.self.context.dateToday)&&y(be.self,"displayDateMin",be.self.context.dateToday)})(),we(be.self,be.tooltipEl,t),be.self.context.mainElement.removeEventListener("mousemove",Ee),be.self.context.mainElement.removeEventListener("mouseleave",Te),be.self.context.mainElement.removeEventListener("keydown",ke),be.self.context.mainElement.addEventListener("mousemove",Le),be.self.context.mainElement.addEventListener("mouseleave",Te),be.self.context.mainElement.addEventListener("keydown",ke),()=>{be.self.context.mainElement.removeEventListener("mousemove",Le),be.self.context.mainElement.removeEventListener("mouseleave",Te),be.self.context.mainElement.removeEventListener("keydown",ke)}),reset:()=>{const[i,s]=[e.context.selectedDates[0],e.context.selectedDates[e.context.selectedDates.length-1]],n=e.context.selectedDates[0]!==e.context.selectedDates[e.context.selectedDates.length-1],o=T([`${i}:${s}`]).filter((t=>!e.context.disableDates.includes(t))),l=n?e.enableEdgeDatesOnly?[i,s]:o:[e.context.selectedDates[0],e.context.selectedDates[0]];if(y(e,"selectedDates",l),e.disableDatesGaps&&(y(e,"displayDateMin",be.rangeMin),y(e,"displayDateMax",be.rangeMax)),be.self.context.mainElement.removeEventListener("mousemove",Le),be.self.context.mainElement.removeEventListener("mouseleave",Te),be.self.context.mainElement.removeEventListener("keydown",ke),e.onCreateDateRangeTooltip)return e.context.selectedDates[0]||(be.self.context.mainElement.removeEventListener("mousemove",Ee),be.self.context.mainElement.removeEventListener("mouseleave",Te),we(be.self,be.tooltipEl,null)),e.context.selectedDates[0]&&(be.self.context.mainElement.addEventListener("mousemove",Ee),be.self.context.mainElement.addEventListener("mouseleave",Te),we(be.self,be.tooltipEl,t)),()=>{be.self.context.mainElement.removeEventListener("mousemove",Ee),be.self.context.mainElement.removeEventListener("mouseleave",Te)}}})[1===e.context.selectedDates.length?"set":"reset"]()},Ae=e=>{e.context.mainElement.querySelectorAll("[data-vc-date]").forEach((t=>{const i=t.querySelector("[data-vc-date-btn]"),s=t.dataset.vcDate,n=E(s).getDay();A(e,e.context.selectedYear,t,i,n,s,"current")}))},De=["month","year"],Me=(e,t,i)=>{const{currentValue:s,columnID:n}=j(e,t);return"month"===e.context.currentType&&n>=0?i-n:"year"===e.context.currentType&&e.context.selectedYear!==s?i-1:i},$e=(e,t,i,s)=>{var n;({year:()=>{if("multiple"===e.type)return((e,t)=>{const i=Me(e,"year",Number(t.dataset.vcYearsYear)),s=E(e.context.dateMin),n=E(e.context.dateMax),o=e.context.displayMonthsCount-1,{columnID:l}=j(e,"year"),a=e.context.selectedMonth<s.getMonth()&&i<=s.getFullYear(),r=e.context.selectedMonth>n.getMonth()-o+l&&i>=n.getFullYear(),c=i<s.getFullYear(),d=i>n.getFullYear(),h=a||c?s.getFullYear():r||d?n.getFullYear():i,u=a||c?s.getMonth():r||d?n.getMonth()-o+l:e.context.selectedMonth;y(e,"selectedYear",h),y(e,"selectedMonth",u)})(e,s);y(e,"selectedYear",Number(s.dataset.vcYearsYear))},month:()=>{if("multiple"===e.type)return((e,t)=>{const i=t.closest('[data-vc-column="month"]').querySelector('[data-vc="year"]'),s=Me(e,"month",Number(t.dataset.vcMonthsMonth)),n=Number(i.dataset.vcYear),o=E(e.context.dateMin),l=E(e.context.dateMax),a=s<o.getMonth()&&n<=o.getFullYear(),r=s>l.getMonth()&&n>=l.getFullYear();y(e,"selectedYear",n),y(e,"selectedMonth",a?o.getMonth():r?l.getMonth():s)})(e,s);y(e,"selectedMonth",Number(s.dataset.vcMonthsMonth))}})[i](),{year:()=>{var i;return null==(i=e.onClickYear)?void 0:i.call(e,e,t)},month:()=>{var i;return null==(i=e.onClickMonth)?void 0:i.call(e,e,t)}}[i](),e.context.currentType!==e.type?(y(e,"currentType",e.type),me(e),null==(n=e.context.mainElement.querySelector(`[data-vc="${i}"]`))||n.focus()):W(e,s,i,!0,!0)},Oe=(e,t)=>{const i={month:e.selectionMonthsMode,year:e.selectionYearsMode};De.forEach((s=>{i[s]&&t.target&&((e,t,i)=>{var s;const n=t.target,o=n.closest(`[data-vc="${i}"]`),l={year:()=>ae(e,n),month:()=>Y(e,n)};if(o&&e.onClickTitle&&e.onClickTitle(e,t),o&&e.context.currentType!==i)return l[i]();const a=n.closest(`[data-vc-${i}s-${i}]`);if(a)return $e(e,t,i,a);const r=n.closest('[data-vc="grid"]'),c=n.closest('[data-vc="column"]');(e.context.currentType===i&&o||"multiple"===e.type&&e.context.currentType===i&&r&&!c)&&(y(e,"currentType",e.type),me(e),null==(s=e.context.mainElement.querySelector(`[data-vc="${i}"]`))||s.focus())})(e,t,s)}))},Pe=e=>{const t=t=>{((e,t)=>{const i=t.target.closest("[data-vc-arrow]");if(i){if(["default","multiple"].includes(e.context.currentType))ve(e,i.dataset.vcArrow);else if("year"===e.context.currentType&&void 0!==e.context.displayYear){const s={prev:-15,next:15}[i.dataset.vcArrow];y(e,"displayYear",e.context.displayYear+s),ae(e,t.target)}e.onClickArrow&&e.onClickArrow(e,t)}})(e,t),((e,t)=>{if(!e.onClickWeekDay)return;const i=t.target.closest("[data-vc-week-day]"),s=t.target.closest('[data-vc="column"]'),n=s?s.querySelectorAll("[data-vc-date-week-day]"):e.context.mainElement.querySelectorAll("[data-vc-date-week-day]");if(!i||!n[0])return;const o=Number(i.dataset.vcWeekDay),l=Array.from(n).filter((e=>Number(e.dataset.vcDateWeekDay)===o));e.onClickWeekDay(e,o,l,t)})(e,t),((e,t)=>{if(!e.enableWeekNumbers||!e.onClickWeekNumber)return;const i=t.target.closest("[data-vc-week-number]"),s=e.context.mainElement.querySelectorAll("[data-vc-date-week-number]");if(!i||!s[0])return;const n=Number(i.innerText),o=Number(i.dataset.vcWeekYear),l=Array.from(s).filter((e=>Number(e.dataset.vcDateWeekNumber)===n));e.onClickWeekNumber(e,n,o,l,t)})(e,t),((e,t)=>{var i;const s=t.target,n=s.closest("[data-vc-date-btn]");if(!e.selectionDatesMode||!["single","multiple","multiple-ranged"].includes(e.selectionDatesMode)||!n)return;const o=n.closest("[data-vc-date]");({single:()=>ye(e,o,!1),multiple:()=>ye(e,o,!0),"multiple-ranged":()=>Ie(e,o)})[e.selectionDatesMode](),null==(i=e.context.selectedDates)||i.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 l=s.closest('[data-vc-date-month="prev"]'),a=s.closest('[data-vc-date-month="next"]');({prev:()=>e.enableMonthChangeOnDayClick?ve(e,"prev"):Ae(e),next:()=>e.enableMonthChangeOnDayClick?ve(e,"next"):Ae(e),current:()=>Ae(e)})[l?"prev":a?"next":"current"]()})(e,t),Oe(e,t)};return e.context.mainElement.addEventListener("click",t),()=>e.context.mainElement.removeEventListener("click",t)},qe=(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?T([e])[0]:t,Ne=(e,t,i)=>{y(e,"selectedMonth",t),y(e,"selectedYear",i),y(e,"displayYear",i)},Be=e=>{y(e,"currentType",e.type),(e=>{if("multiple"===e.type&&(e.displayMonthsCount<=1||e.displayMonthsCount>12))throw new Error(f);if("multiple"!==e.type&&e.displayMonthsCount>1)throw new Error(f);y(e,"displayMonthsCount",e.displayMonthsCount?e.displayMonthsCount:"multiple"===e.type?2:1)})(e),(e=>{var t,i,s;const n=qe(e.dateMin,e.dateMin),o=qe(e.dateMax,e.dateMax),l=qe(e.displayDateMin,n),a=qe(e.displayDateMax,o);y(e,"dateToday",qe(e.dateToday,e.dateToday)),y(e,"displayDateMin",l?E(n)>=E(l)?n:l:n),y(e,"displayDateMax",a?E(o)<=E(a)?o:a:o);const r=e.disableDatesPast&&!e.disableAllDates&&E(l)<E(e.context.dateToday);y(e,"displayDateMin",r||e.disableAllDates?e.context.dateToday:l),y(e,"displayDateMax",e.disableAllDates?e.context.dateToday:a),y(e,"disableDates",e.disableDates[0]&&!e.disableAllDates?T(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]?T(e.enableDates):[]),(null==(t=e.context.enableDates)?void 0:t[0])&&(null==(i=e.context.disableDates)?void 0:i[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==(s=e.context.enableDates)?void 0:s[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?n:e.context.displayDateMin),y(e,"dateMax",e.displayDisabledDates?o:e.context.displayDateMax)})(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=E(T(e.selectedDates)[0]);return void Ne(e,t.getMonth(),t.getFullYear())}const i=void 0!==e.selectedMonth&&Number(e.selectedMonth)>=0&&Number(e.selectedMonth)<12,s=void 0!==e.selectedYear&&Number(e.selectedYear)>=0&&Number(e.selectedYear)<=9999;Ne(e,i?Number(e.selectedMonth):E(e.context.dateToday).getMonth(),s?Number(e.selectedYear):E(e.context.dateToday).getFullYear())})(e),(e=>{var t;y(e,"selectedDates",(null==(t=e.selectedDates)?void 0:t[0])?T(e.selectedDates):[])})(e),(e=>{var t,i,s;if(!e.selectionTimeMode)return;if(![12,24].includes(e.selectionTimeMode))throw new Error(v);const n=12===e.selectionTimeMode,o=n?/^(0[1-9]|1[0-2]):([0-5][0-9]) ?(AM|PM)?$/i:/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/;let[l,a,r]=null!=(s=null==(i=null==(t=e.selectedTime)?void 0:t.match(o))?void 0:i.slice(1))?s:[];l?n&&!r&&(r="AM"):(l=n?X(String(e.timeMinHour)):String(e.timeMinHour),a=String(e.timeMinMinute),r=n?Number(X(String(e.timeMinHour)))>=12?"PM":"AM":null),y(e,"selectedHours",l.padStart(2,"0")),y(e,"selectedMinutes",a.padStart(2,"0")),y(e,"selectedKeeping",r),y(e,"selectedTime",`${e.context.selectedHours}:${e.context.selectedMinutes}${r?` ${r}`:""}`)})(e)},He=(e,{year:t,month:i,dates:s,time:n,locale:o},l=!0)=>{var a;const r={year:e.selectedYear,month:e.selectedMonth,dates:e.selectedDates,time:e.selectedTime};e.selectedYear=t?r.year:e.context.selectedYear,e.selectedMonth=i?r.month:e.context.selectedMonth,e.selectedTime=n?r.time:e.context.selectedTime,e.selectedDates="only-first"===s&&(null==(a=e.context.selectedDates)?void 0:a[0])?[e.context.selectedDates[0]]:!0===s?r.dates:e.context.selectedDates,o&&y(e,"locale",{months:{short:[],long:[]},weekdays:{short:[],long:[]}}),Be(e),l&&me(e),e.selectedYear=r.year,e.selectedMonth=r.month,e.selectedDates=r.dates,e.selectedTime=r.time,"multiple-ranged"===e.selectionDatesMode&&s&&Ie(e,null)},Fe=e=>{y(e,"inputElement",e.context.mainElement);const t=()=>{e.context.inputModeInit?queueMicrotask((()=>We(e))):(e=>{const t=document.createElement("div");t.className=e.styles.calendar,t.dataset.vc="calendar",t.dataset.vcInput="",t.dataset.vcCalendarHidden="",y(e,"inputModeInit",!0),y(e,"isShowInInputMode",!1),y(e,"mainElement",t),document.body.appendChild(e.context.mainElement),He(e,{year:!0,month:!0,dates:!0,time:!0,locale:!0}),queueMicrotask((()=>We(e))),e.onInit&&e.onInit(e),ge(e),Pe(e)})(e)};return e.context.inputElement.addEventListener("click",t),e.context.inputElement.addEventListener("focus",t),()=>{e.context.inputElement.removeEventListener("click",t),e.context.inputElement.removeEventListener("focus",t)}},Re=(e,t)=>{if(!e.context.isInit)throw new Error(m);He(e,h(h({},{year:!0,month:!0,dates:!0,time:!0,locale:!0}),t),!(e.inputMode&&!e.context.inputModeInit)),e.onUpdate&&e.onUpdate(e)},Ve=(e,t)=>{const i=Object.keys(t);for(let s=0;s<i.length;s++){const n=i[s];"object"!=typeof e[n]||"object"!=typeof t[n]||t[n]instanceof Date||Array.isArray(t[n])?void 0!==t[n]&&(e[n]=t[n]):Ve(e[n],t[n])}};const ze=(e,t,i)=>{if(!e)return;const s="auto"===i?function(e,t){const i="left";if(!t||!e)return i;const{canShow:s,parentPositions:n}=S(e,t),o=s.left&&s.right;return(o&&s.bottom?"center":o&&s.top?["top","center"]:Array.isArray(n)?["bottom"===n[0]?"top":"bottom",...n.slice(1)]:n)||i}(e,t):i,n={top:-t.offsetHeight,bottom:e.offsetHeight,left:0,center:e.offsetWidth/2-t.offsetWidth/2,right:e.offsetWidth-t.offsetWidth},o=Array.isArray(s)?s[0]:"bottom",l=Array.isArray(s)?s[1]:s;t.dataset.vcPosition=o;const{top:a,left:r}=b(e),c=a+n[o];let d=r+n[l];const{vw:h}=C();if(d+t.clientWidth>h){const e=window.innerWidth-document.body.clientWidth;d=h-t.clientWidth-e}else d<0&&(d=0);Object.assign(t.style,{left:`${d}px`,top:`${c}px`})},We=e=>{if(e.context.isShowInInputMode)return;if(!e.context.currentType)return void e.context.mainElement.click();y(e,"cleanupHandlers",[]),y(e,"isShowInInputMode",!0),ze(e.context.inputElement,e.context.mainElement,e.positionToInput),e.context.mainElement.removeAttribute("data-vc-calendar-hidden");const t=()=>{ze(e.context.inputElement,e.context.mainElement,e.positionToInput)};window.addEventListener("resize",t),e.context.cleanupHandlers.push((()=>window.removeEventListener("resize",t)));const i=t=>{"Escape"===t.key&&w(e)};document.addEventListener("keydown",i),e.context.cleanupHandlers.push((()=>document.removeEventListener("keydown",i)));const s=t=>{t.target===e.context.inputElement||e.context.mainElement.contains(t.target)||w(e)};document.addEventListener("click",s,{capture:!0}),e.context.cleanupHandlers.push((()=>document.removeEventListener("click",s,{capture:!0}))),e.onShow&&e.onShow(e)},je={application:"Calendar",navigation:"Calendar Navigation",arrowNext:{month:"Next month",year:"Next list of years"},arrowPrev:{month:"Previous month",year:"Previous list of years"},month:"Select month, current selected month:",months:"List of months",year:"Select year, current selected year:",years:"List of years",week:"Days of the week",weekNumber:"Numbers of weeks in a year",dates:"Dates in the current month",selectingTime:"Selecting a time ",inputHour:"Hours",inputMinute:"Minutes",rangeHour:"Slider for selecting hours",rangeMinute:"Slider for selecting minutes",btnKeeping:"Switch AM/PM, current position:"},Ue={calendar:"vc",controls:"vc-controls",grid:"vc-grid",column:"vc-column",header:"vc-header",headerContent:"vc-header__content",month:"vc-month",year:"vc-year",arrowPrev:"vc-arrow vc-arrow_prev",arrowNext:"vc-arrow vc-arrow_next",wrapper:"vc-wrapper",content:"vc-content",months:"vc-months",monthsMonth:"vc-months__month",years:"vc-years",yearsYear:"vc-years__year",week:"vc-week",weekDay:"vc-week__day",weekNumbers:"vc-week-numbers",weekNumbersTitle:"vc-week-numbers__title",weekNumbersContent:"vc-week-numbers__content",weekNumber:"vc-week-number",dates:"vc-dates",date:"vc-date",dateBtn:"vc-date__btn",datePopup:"vc-date__popup",dateRangeTooltip:"vc-date-range-tooltip",time:"vc-time",timeContent:"vc-time__content",timeHour:"vc-time__hour",timeMinute:"vc-time__minute",timeKeeping:"vc-time__keeping",timeRanges:"vc-time__ranges",timeRange:"vc-time__range"};class Ye{constructor(){u(this,"type","default"),u(this,"inputMode",!1),u(this,"positionToInput","left"),u(this,"firstWeekday",1),u(this,"monthsToSwitch",1),u(this,"themeAttrDetect","html[data-theme]"),u(this,"locale","en"),u(this,"dateToday","today"),u(this,"dateMin","1970-01-01"),u(this,"dateMax","2470-12-31"),u(this,"displayDateMin"),u(this,"displayDateMax"),u(this,"displayDatesOutside",!0),u(this,"displayDisabledDates",!1),u(this,"displayMonthsCount"),u(this,"disableDates",[]),u(this,"disableAllDates",!1),u(this,"disableDatesPast",!1),u(this,"disableDatesGaps",!1),u(this,"disableWeekdays",[]),u(this,"disableToday",!1),u(this,"enableDates",[]),u(this,"enableEdgeDatesOnly",!0),u(this,"enableDateToggle",!0),u(this,"enableWeekNumbers",!1),u(this,"enableMonthChangeOnDayClick",!0),u(this,"enableJumpToSelectedDate",!1),u(this,"selectionDatesMode","single"),u(this,"selectionMonthsMode",!0),u(this,"selectionYearsMode",!0),u(this,"selectionTimeMode",!1),u(this,"selectedDates",[]),u(this,"selectedMonth"),u(this,"selectedYear"),u(this,"selectedHolidays",[]),u(this,"selectedWeekends",[0,6]),u(this,"selectedTime"),u(this,"selectedTheme","system"),u(this,"timeMinHour",0),u(this,"timeMaxHour",23),u(this,"timeMinMinute",0),u(this,"timeMaxMinute",59),u(this,"timeControls","all"),u(this,"timeStepHour",1),u(this,"timeStepMinute",1),u(this,"sanitizerHTML",(e=>e)),u(this,"onClickDate"),u(this,"onClickWeekDay"),u(this,"onClickWeekNumber"),u(this,"onClickTitle"),u(this,"onClickMonth"),u(this,"onClickYear"),u(this,"onClickArrow"),u(this,"onChangeTime"),u(this,"onChangeToInput"),u(this,"onCreateDateRangeTooltip"),u(this,"onCreateDateEls"),u(this,"onCreateMonthEls"),u(this,"onCreateYearEls"),u(this,"onInit"),u(this,"onUpdate"),u(this,"onDestroy"),u(this,"onShow"),u(this,"onHide"),u(this,"popups",{}),u(this,"labels",h({},je)),u(this,"layouts",{default:"",multiple:"",month:"",year:""}),u(this,"styles",h({},Ue))}}const Je=class e extends Ye{constructor(t,i){var s;super(),u(this,"init",(()=>(e=>(y(e,"originalElement",e.context.mainElement.cloneNode(!0)),y(e,"isInit",!0),e.inputMode?Fe(e):(Be(e),me(e),e.onInit&&e.onInit(e),ge(e),Pe(e))))(this))),u(this,"update",(e=>Re(this,e))),u(this,"destroy",(()=>(e=>{var t,i,s,n,o;if(!e.context.isInit)throw new Error(m);e.inputMode?(null==(t=e.context.mainElement.parentElement)||t.removeChild(e.context.mainElement),null==(s=null==(i=e.context.inputElement)?void 0:i.replaceWith)||s.call(i,e.context.originalElement),y(e,"inputElement",void 0)):null==(o=(n=e.context.mainElement).replaceWith)||o.call(n,e.context.originalElement),y(e,"mainElement",e.context.originalElement),e.onDestroy&&e.onDestroy(e)})(this)