New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

vanilla-calendar-picker

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vanilla-calendar-picker - npm Package Compare versions

Comparing version 2.11.5 to 2.11.6

2

build/vanilla-calendar.min.js
/*! name: vanilla-calendar-picker | url: https://github.com/uvarov-frontend/vanilla-calendar-picker */
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).VanillaCalendar={})}(this,(function(e){"use strict";var t=Object.defineProperty,n=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable,l=(e,n,a)=>n in e?t(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,i=(e,t)=>{for(var i in t||(t={}))a.call(t,i)&&l(e,i,t[i]);if(n)for(var i of n(t))s.call(t,i)&&l(e,i,t[i]);return e},r=(e,t,n)=>(l(e,"symbol"!=typeof t?t+"":t,n),n);const d={calendar:"vanilla-calendar",calendarDefault:"vanilla-calendar_default",calendarMultiple:"vanilla-calendar_multiple",calendarMonth:"vanilla-calendar_month",calendarYear:"vanilla-calendar_year",calendarHidden:"vanilla-calendar_hidden",calendarToInput:"vanilla-calendar_to-input",calendarToInputTop:"vanilla-calendar_to-input_top",calendarToInputBottom:"vanilla-calendar_to-input_bottom",controls:"vanilla-calendar-controls",grid:"vanilla-calendar-grid",gridDisabled:"vanilla-calendar-grid_disabled",column:"vanilla-calendar-column",columnMonth:"vanilla-calendar-column_month",columnYear:"vanilla-calendar-column_year",header:"vanilla-calendar-header",headerContent:"vanilla-calendar-header__content",month:"vanilla-calendar-month",monthDisabled:"vanilla-calendar-month_disabled",year:"vanilla-calendar-year",yearDisabled:"vanilla-calendar-year_disabled",arrow:"vanilla-calendar-arrow",arrowPrev:"vanilla-calendar-arrow_prev",arrowNext:"vanilla-calendar-arrow_next",wrapper:"vanilla-calendar-wrapper",content:"vanilla-calendar-content",week:"vanilla-calendar-week",weekDay:"vanilla-calendar-week__day",weekDayWeekend:"vanilla-calendar-week__day_weekend",days:"vanilla-calendar-days",daysSelecting:"vanilla-calendar-days_selecting",months:"vanilla-calendar-months",monthsSelecting:"vanilla-calendar-months_selecting",monthsMonth:"vanilla-calendar-months__month",monthsMonthSelected:"vanilla-calendar-months__month_selected",monthsMonthDisabled:"vanilla-calendar-months__month_disabled",years:"vanilla-calendar-years",yearsSelecting:"vanilla-calendar-years_selecting",yearsYear:"vanilla-calendar-years__year",yearsYearSelected:"vanilla-calendar-years__year_selected",yearsYearDisabled:"vanilla-calendar-years__year_disabled",time:"vanilla-calendar-time",timeContent:"vanilla-calendar-time__content",timeHours:"vanilla-calendar-time__hours",timeMinutes:"vanilla-calendar-time__minutes",timeKeeping:"vanilla-calendar-time__keeping",timeRanges:"vanilla-calendar-time__ranges",timeRange:"vanilla-calendar-time__range",day:"vanilla-calendar-day",dayHoverFirst:"vanilla-calendar-day_hover-first",dayHoverLast:"vanilla-calendar-day_hover-last",dayHoverIntermediate:"vanilla-calendar-day_hover-intermediate",daySelectedFirst:"vanilla-calendar-day_selected-first",daySelectedLast:"vanilla-calendar-day_selected-last",daySelectedIntermediate:"vanilla-calendar-day_selected-intermediate",dayPopup:"vanilla-calendar-day__popup",dayBtn:"vanilla-calendar-day__btn",dayBtnPrev:"vanilla-calendar-day__btn_prev",dayBtnNext:"vanilla-calendar-day__btn_next",dayBtnToday:"vanilla-calendar-day__btn_today",dayBtnSelected:"vanilla-calendar-day__btn_selected",dayBtnHover:"vanilla-calendar-day__btn_hover",dayBtnDisabled:"vanilla-calendar-day__btn_disabled",dayBtnWeekend:"vanilla-calendar-day__btn_weekend",dayBtnHoliday:"vanilla-calendar-day__btn_holiday",weekNumbers:"vanilla-calendar-week-numbers",weekNumbersTitle:"vanilla-calendar-week-numbers__title",weekNumbersContent:"vanilla-calendar-week-numbers__content",weekNumber:"vanilla-calendar-week-number",isFocus:"vanilla-calendar-is-focus"},o=e=>`<div class="${e.controls}"><#ArrowPrev /><#ArrowNext /></div><div class="${e.grid}"><#Multiple><div class="${e.column}"><div class="${e.header}"><div class="${e.headerContent}"><#Month /><#Year /></div></div><div class="${e.wrapper}"><#WeekNumbers /><div class="${e.content}"><#Week /><#Days /></div></div></div><#/Multiple></div><#ControlTime />`,c=e=>`<div class="${e.header}"><div class="${e.headerContent}"><#Month /><#Year /></div></div><div class="${e.wrapper}"><div class="${e.content}"><#Months /></div></div>`,u=e=>`<div class="${e.header}"><#ArrowPrev /><div class="${e.headerContent}"><#Month /><#Year /></div><#ArrowNext /></div><div class="${e.wrapper}"><div class="${e.content}"><#Years /></div></div>`;class m{constructor(){var e;r(this,"isInit",!1),r(this,"input",!1),r(this,"type","default"),r(this,"months",2),r(this,"jumpMonths",1),r(this,"toggleSelected",!0),r(this,"jumpToSelectedDate",!1),r(this,"date",{min:"1970-01-01",max:"2470-12-31",today:new Date}),r(this,"settings",{lang:"en",iso8601:!0,range:{min:this.date.min,max:this.date.max,disablePast:!1,disableGaps:!1,edgesOnly:!1,disableAllDays:!1,disableWeekday:void 0,disabled:void 0,enabled:void 0},selection:{day:"single",month:!0,year:!0,time:!1,controlTime:"all",stepHours:1,stepMinutes:1,cancelableDay:!0},selected:{dates:void 0,month:void 0,year:void 0,holidays:void 0,time:void 0},visibility:{theme:"system",themeDetect:"html[data-theme]",monthShort:!0,weekNumbers:!1,weekend:!0,today:!0,disabled:!1,daysOutside:!0,positionToInput:"left"}}),r(this,"locale",{months:[],weekday:[]}),r(this,"sanitizer",(e=>e)),r(this,"actions",{clickDay:null,clickWeekNumber:null,clickMonth:null,clickYear:null,clickArrow:null,changeTime:null,changeToInput:null,getDays:null,getMonths:null,getYears:null,initCalendar:null,updateCalendar:null,destroyCalendar:null,showCalendar:null,hideCalendar:null}),r(this,"popups",{}),r(this,"CSSClasses",i({},d)),r(this,"DOMTemplates",{default:(e=this.CSSClasses,`<div class="${e.header}"><#ArrowPrev /><div class="${e.headerContent}"><#Month /><#Year /></div><#ArrowNext /></div><div class="${e.wrapper}"><#WeekNumbers /><div class="${e.content}"><#Week /><#Days /></div></div><#ControlTime />`),multiple:o(this.CSSClasses),month:c(this.CSSClasses),year:u(this.CSSClasses)}),r(this,"HTMLElement"),r(this,"HTMLOriginalElement"),r(this,"HTMLInputElement"),r(this,"rangeMin"),r(this,"rangeMax"),r(this,"rangeDisabled"),r(this,"rangeEnabled"),r(this,"selectedDates"),r(this,"selectedHolidays"),r(this,"selectedMonth"),r(this,"selectedYear"),r(this,"selectedHours"),r(this,"selectedMinutes"),r(this,"selectedKeeping"),r(this,"selectedTime"),r(this,"currentType"),r(this,"correctMonths"),r(this,"viewYear"),r(this,"dateMin"),r(this,"dateMax")}}const g=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,h=e=>new Date(`${e}T00:00:00`),y=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,a)=>{const s=h(n),l=h(a),i=new Date(s.getTime());for(;i<=l;i.setDate(i.getDate()+1))e.push(g(i));return t}));return e}),[]),v=()=>{const e=new Date;return new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().substring(0,10)},p=e=>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):"",S=e=>`${e} is not found, check the first argument passed to new VanillaCalendar.`,M='The calendar has not been initialized, please initialize it using the "init()" method first.',C='You specified "define" for "settings.lang" but did not provide the required values for "locale.weekday" or "locale.months".',b='Incorrect name of theme in "settings.visibility.theme".',f="The value of the time property can be: false, true, 12 or 24.",w=e=>{e.currentType=e.type,(e=>{var t;if(e.jumpToSelectedDate&&(null==(t=e.settings.selected.dates)?void 0:t.length)&&void 0===e.settings.selected.month&&void 0===e.settings.selected.year){const t=h(y(e.settings.selected.dates)[0]);e.settings.selected.month=t.getMonth(),e.settings.selected.year=t.getFullYear()}const n=void 0!==e.settings.selected.month&&Number(e.settings.selected.month)>=0&&Number(e.settings.selected.month)<12,a=void 0!==e.settings.selected.year&&Number(e.settings.selected.year)>=0&&Number(e.settings.selected.year)<=9999;e.selectedMonth=n?Number(e.settings.selected.month):e.date.today.getMonth(),e.selectedYear=a?Number(e.settings.selected.year):e.date.today.getFullYear(),e.viewYear=e.selectedYear})(e),(e=>{var t,n,a;"today"===e.settings.range.min&&(e.settings.range.min=v()),"today"===e.settings.range.max&&(e.settings.range.max=v()),e.settings.range.min=h(e.date.min)>=h(e.settings.range.min)?e.date.min:e.settings.range.min,e.settings.range.max=h(e.date.max)<=h(e.settings.range.max)?e.date.max:e.settings.range.max;const s=e.settings.range.disablePast&&!e.settings.range.disableAllDays&&h(e.settings.range.min)<e.date.today;e.rangeMin=s||e.settings.range.disableAllDays?g(e.date.today):e.settings.range.min,e.rangeMax=e.settings.range.disableAllDays?g(e.date.today):e.settings.range.max,e.rangeDisabled=e.settings.range.disabled&&!e.settings.range.disableAllDays?y(e.settings.range.disabled):e.settings.range.disableAllDays?[e.rangeMin]:[],e.rangeDisabled.length>1&&e.rangeDisabled.sort(((e,t)=>+new Date(e)-+new Date(t))),e.rangeEnabled=e.settings.range.enabled?y(e.settings.range.enabled):[],(null==(t=e.rangeEnabled)?void 0:t[0])&&(null==(n=e.rangeDisabled)?void 0:n[0])&&(e.rangeDisabled=e.rangeDisabled.filter((t=>!e.rangeEnabled.includes(t)))),e.rangeEnabled.length>1&&e.rangeEnabled.sort(((e,t)=>+new Date(e)-+new Date(t))),(null==(a=e.rangeEnabled)?void 0:a[0])&&e.settings.range.disableAllDays&&(e.rangeMin=e.rangeEnabled[0],e.rangeMax=e.rangeEnabled[e.rangeEnabled.length-1])})(e),(e=>{var t,n;e.selectedDates=(null==(t=e.settings.selected.dates)?void 0:t[0])?y(e.settings.selected.dates):[],e.selectedHolidays=(null==(n=e.settings.selected.holidays)?void 0:n[0])?y(e.settings.selected.holidays):[]})(e),(e=>{e.dateMin=e.settings.visibility.disabled?h(e.date.min):h(e.rangeMin),e.dateMax=e.settings.visibility.disabled?h(e.date.max):h(e.rangeMax)})(e),(e=>{const t=!0===e.settings.selection.time||12===e.settings.selection.time;if(t||24===e.settings.selection.time){let n=!1;if("string"==typeof e.settings.selected.time){const a=t?/^([0-9]|0[1-9]|1[0-2]):([0-5][0-9])|(AM|PM)/g:/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])/g;e.settings.selected.time.replace(a,((a,s,l,i)=>(s&&l&&(n=!0,e.selectedHours=s,e.selectedMinutes=l),i&&t?e.selectedKeeping=i:t&&(e.selectedKeeping="AM"),"")))}!n&&t?(e.selectedHours=p(String(e.date.today.getHours())),e.selectedMinutes=String(e.date.today.getMinutes()),e.selectedKeeping=Number(e.date.today.getHours())>=12?"PM":"AM"):n||(e.selectedHours=String(e.date.today.getHours()),e.selectedMinutes=String(e.date.today.getMinutes())),e.selectedHours=Number(e.selectedHours)<10?`0${Number(e.selectedHours)}`:`${e.selectedHours}`,e.selectedMinutes=Number(e.selectedMinutes)<10?`0${Number(e.selectedMinutes)}`:`${e.selectedMinutes}`,e.selectedTime=`${e.selectedHours}:${e.selectedMinutes}${e.selectedKeeping?` ${e.selectedKeeping}`:""}`}else if(e.settings.selection.time)throw new Error(f)})(e),(e=>{e.correctMonths="multiple"===e.type?1===e.months?2:e.months>12?12:e.months:1})(e)},D=({arrowPrev:e,arrowNext:t,isPrevHidden:n,isNextHidden:a})=>{e.style.visibility=n?"hidden":"",t.style.visibility=a?"hidden":""},T=e=>{var t,n;if("month"===e.currentType)return;const a=null==(t=e.HTMLElement)?void 0:t.querySelector(`.${e.CSSClasses.arrowPrev}`),s=null==(n=e.HTMLElement)?void 0:n.querySelector(`.${e.CSSClasses.arrowNext}`);if(!a||!s)return;({default:()=>{const t=h(g(new Date(e.selectedYear,e.selectedMonth,1))),n=new Date(t.getTime()),l=new Date(t.getTime());n.setMonth(n.getMonth()-e.jumpMonths),l.setMonth(l.getMonth()+e.jumpMonths),e.settings.selection.year||(e.dateMin.setFullYear(t.getFullYear()),e.dateMax.setFullYear(t.getFullYear()));const i=!e.settings.selection.month||n.getFullYear()<e.dateMin.getFullYear()||n.getFullYear()===e.dateMin.getFullYear()&&n.getMonth()<e.dateMin.getMonth(),r=!e.settings.selection.month||l.getFullYear()>e.dateMax.getFullYear()||l.getFullYear()===e.dateMax.getFullYear()&&l.getMonth()>e.dateMax.getMonth();D({arrowPrev:a,arrowNext:s,isPrevHidden:i,isNextHidden:r})},year:()=>{D({arrowPrev:a,arrowNext:s,isPrevHidden:e.dateMin.getFullYear()&&e.viewYear-7<=e.dateMin.getFullYear(),isNextHidden:e.dateMax.getFullYear()&&e.viewYear+7>=e.dateMax.getFullYear()})}})["multiple"===e.currentType?"default":e.currentType]()},$=(e,t)=>{if(!e)return null;const n=h(e),a=t?n.getDay()||7:n.getDay();n.setDate(n.getDate()+4-a);const s=new Date(n.getFullYear(),0,1),l=Math.ceil(((+n-+s)/864e5+1)/7);return{year:n.getFullYear(),week:l}},L=(e,t,n,a,s)=>{const l=t[n].querySelector(`.${e.CSSClasses.dayBtn}`),i=$(null==l?void 0:l.dataset.calendarDay,e.settings.iso8601);if(!i)return;const r=a.cloneNode(!0);r.innerText=String(i.week),r.dataset.calendarYearWeek=String(i.year),s.appendChild(r)},E=(e,t,n,a,s,l,i,r)=>{const d=document.createElement("div");d.className=e.CSSClasses.day;const o=document.createElement("button");o.className=`${e.CSSClasses.dayBtn}${r?` ${r}`:""}`,o.type="button",o.innerText=String(a),o.dataset.calendarDay=l;e.settings.visibility.weekNumbers&&(()=>{const t=$(l,e.settings.iso8601);t&&(o.dataset.calendarWeekNumber=String(t.week))})(),i?e.settings.visibility.daysOutside&&d.appendChild(o):d.appendChild(o),((e,t,n)=>{var a,s,l,i,r;const d=null==(a=e.settings.range.disableWeekday)?void 0:a.includes(n),o=e.settings.range.disableAllDays&&!!(null==(s=e.rangeEnabled)?void 0:s[0]);!d&&!o||(null==(l=e.rangeEnabled)?void 0:l.includes(t))||(null==(i=e.rangeDisabled)?void 0:i.includes(t))||(e.rangeDisabled.push(t),null==(r=e.rangeDisabled)||r.sort(((e,t)=>+new Date(e)-+new Date(t))))})(e,l,s),((e,t,n,a,s,l,i)=>{var r,d,o;if((h(e.rangeMin)>h(l)||h(e.rangeMax)<h(l)||(null==(r=e.rangeDisabled)?void 0:r.includes(l))||!e.settings.selection.month&&i||!e.settings.selection.year&&h(l).getFullYear()!==t)&&(a.classList.add(e.CSSClasses.dayBtnDisabled),a.tabIndex=-1),e.settings.visibility.today&&g(e.date.today)===l&&a.classList.add(e.CSSClasses.dayBtnToday),!e.settings.visibility.weekend||0!==s&&6!==s||a.classList.add(e.CSSClasses.dayBtnWeekend),(null==(d=e.selectedHolidays)?void 0:d.includes(l))&&a.classList.add(e.CSSClasses.dayBtnHoliday),(null==(o=e.selectedDates)?void 0:o.includes(l))&&(a.classList.add(e.CSSClasses.dayBtnSelected),e.selectedDates.length>1&&"multiple-ranged"===e.settings.selection.day&&(e.selectedDates[0]===l&&n.classList.add(e.CSSClasses.daySelectedFirst),e.selectedDates[e.selectedDates.length-1]===l&&n.classList.add(e.CSSClasses.daySelectedLast),e.selectedDates[0]!==l&&e.selectedDates[e.selectedDates.length-1]!==l&&n.classList.add(e.CSSClasses.daySelectedIntermediate))),e.settings.range.edgesOnly&&e.selectedDates.length>1&&"multiple-ranged"===e.settings.selection.day){const t=+new Date(e.selectedDates[0]),s=+new Date(e.selectedDates[e.selectedDates.length-1]),i=+new Date(l);i>t&&i<s&&(a.classList.add(e.CSSClasses.dayBtnSelected),n.classList.add(e.CSSClasses.daySelectedIntermediate))}})(e,t,d,o,s,l,i),n.appendChild(d),e.actions.getDays&&e.actions.getDays(a,l,d,o,e)},H=e=>{const t=e.HTMLElement.querySelectorAll(`.${e.CSSClasses.days}`),n=e.HTMLElement.querySelectorAll(`.${e.CSSClasses.weekNumbers}`),a=new Date(e.selectedYear,e.selectedMonth,1);t.forEach(((t,s)=>{const l=new Date(a);l.setMonth(l.getMonth()+s);const i=l.getMonth(),r=l.getFullYear(),d=new Date(r,i,1),o=new Date(r,i+1,0).getDate(),c=e.settings.iso8601?(0!==d.getDay()?d.getDay():7)-1:d.getDay();e.settings.selection.day&&t.classList.add(e.CSSClasses.daysSelecting),t.textContent="",((e,t,n,a,s)=>{let l=new Date(n,a,0).getDate()-(s-1);const i=0===a?n-1:n,r=0===a?12:a<10?`0${a}`:a;for(let a=s;a>0;a--,l++){const a=`${i}-${r}-${l}`,s=h(a).getDay();E(e,n,t,l,s,a,!0,e.CSSClasses.dayBtnPrev)}})(e,t,r,i,c),((e,t,n,a,s)=>{for(let l=1;l<=n;l++){const n=new Date(a,s,l),i=g(n),r=n.getDay();E(e,a,t,l,r,i,!1,null)}})(e,t,o,r,i),((e,t,n,a,s,l)=>{const i=l+n,r=7*Math.ceil(i/7)-i,d=s+1===12?a+1:a,o=s+1===12?"01":s+2<10?`0${s+2}`:s+2;for(let n=1;n<=r;n++){const s=`${d}-${o}-${n<10?`0${n}`:String(n)}`,l=h(s).getDay();E(e,a,t,n,l,s,!0,e.CSSClasses.dayBtnNext)}})(e,t,o,r,i,c),((e,t,n,a,s)=>{if(!e.settings.visibility.weekNumbers)return;a.textContent="";const l=document.createElement("b");l.className=e.CSSClasses.weekNumbersTitle,l.innerText="#",a.appendChild(l);const i=document.createElement("div");i.className=e.CSSClasses.weekNumbersContent,a.appendChild(i);const r=document.createElement("button");r.type="button",r.className=e.CSSClasses.weekNumber;const d=s.querySelectorAll(`.${e.CSSClasses.day}`),o=Math.ceil((t+n)/7);for(let t=0;t<o;t++)L(e,d,0===t?6:7*t,r,i)})(e,c,o,n[s],t),((e,t)=>{var n;e.popups&&(null==(n=Object.entries(e.popups))||n.forEach((([n,a])=>((e,t,n,a)=>{const s=n.querySelector(`[data-calendar-day="${e}"]`);s&&((null==t?void 0:t.modifier)&&s.classList.add(...t.modifier.trim().split(" ")),(null==t?void 0:t.html)&&(s.parentElement.innerHTML+=`<div class="${a}">${t.html}</div>`))})(n,a,t,e.CSSClasses.dayPopup))))})(e,t)}))},x=e=>{var t,n;const a=null==(t=e.HTMLElement)?void 0:t.querySelectorAll("[data-calendar-selected-month]"),s=null==(n=e.HTMLElement)?void 0:n.querySelectorAll("[data-calendar-selected-year]");if(!(null==a?void 0:a[0])&&(null==s?void 0:s[0]))return;const l=new Date(e.selectedYear,e.selectedMonth,1);null==a||a.forEach(((t,n)=>((e,t,n,a)=>{const s=new Date(a.setMonth(e.selectedMonth+n)).getMonth(),l=!1===e.settings.selection.month||"only-arrows"===e.settings.selection.month;t.tabIndex=l?-1:0,t.classList.toggle(e.CSSClasses.monthDisabled,l),t.setAttribute("data-calendar-selected-month",String(s)),t.innerText=e.locale.months[s]})(e,t,n,l))),null==s||s.forEach(((t,n)=>((e,t,n,a)=>{const s=new Date(a.setFullYear(e.selectedYear,e.selectedMonth+n)).getFullYear(),l=!1===e.settings.selection.year||"only-arrows"===e.settings.selection.year;t.tabIndex=l?-1:0,t.classList.toggle(e.CSSClasses.yearDisabled,l),t.setAttribute("data-calendar-selected-year",String(s)),t.innerText=String(s)})(e,t,n,l)))},Y=(e,t)=>{const n=h(g(new Date(e.selectedYear,e.selectedMonth,1)));({prev:()=>n.setMonth(n.getMonth()-e.jumpMonths),next:()=>n.setMonth(n.getMonth()+e.jumpMonths)})[t](),[e.selectedMonth,e.selectedYear]=[n.getMonth(),n.getFullYear()],x(e),T(e),H(e)},k=Object.freeze(Object.defineProperty({__proto__:null,ArrowNext:e=>`<button type="button"class="${e.CSSClasses.arrow} ${e.CSSClasses.arrowNext}"data-calendar-arrow="next"></button>`,ArrowPrev:e=>`<button type="button"class="${e.CSSClasses.arrow} ${e.CSSClasses.arrowPrev}"data-calendar-arrow="prev"></button>`,ControlTime:e=>e.settings.selection.time?`<div class="${e.CSSClasses.time}"></div>`:"",Days:e=>`<div class="${e.CSSClasses.days}"></div>`,Month:e=>`<button type="button"class="${e.CSSClasses.month}"data-calendar-selected-month></button>`,Months:e=>`<div class="${e.CSSClasses.months}"></div>`,Week:e=>`<div class="${e.CSSClasses.week}"></div>`,WeekNumbers:e=>e.settings.visibility.weekNumbers?`<div class="${e.CSSClasses.weekNumbers}"></div>`:"",Year:e=>`<button type="button"class="${e.CSSClasses.year}"data-calendar-selected-year></button>`,Years:e=>`<div class="${e.CSSClasses.years}"></div>`},Symbol.toStringTag,{value:"Module"})),_=(e,t)=>t.replace(/[\n\t]/g,"").replace(/<#(?!\/?Multiple)(.*?)>/g,((t,n)=>{const a=(s=n.replace(/[/\s\n\t]/g,""),k[s]);var s;const l=a?a(e):"";return e.sanitizer(l)})).replace(/[\n\t]/g,""),N=(e,t)=>{const{HTMLElement:n,CSSClasses:a,DOMTemplates:s,type:l,currentType:i,correctMonths:r}=e,d=(s,l)=>{if(!t)return;const i=n.querySelector(`.${a.controls}`);i&&n.removeChild(i);n.querySelector(`.${a.grid}`).classList.add(a.gridDisabled);const r=t.closest(`.${a.column}`);r.classList.add(s),r.innerHTML=_(e,l)},o={default:()=>{n.classList.add(a.calendarDefault),n.classList.remove(a.calendarMonth,a.calendarYear),n.innerHTML=_(e,s.default)},multiple:()=>{r&&(n.classList.add(a.calendarMultiple),n.classList.remove(a.calendarMonth,a.calendarYear),n.innerHTML=((e,t)=>t.replace(/<#Multiple>(.*?)<#\/Multiple>/g,((t,n)=>{let a="";for(let t=0;t<e.correctMonths;t++)a+=n;return e.sanitizer(a)})).replace(/[\n\t]/g,""))(e,_(e,s.multiple)))},month:()=>{"multiple"!==l?(n.classList.add(a.calendarMonth),n.classList.remove(a.calendarDefault,a.calendarYear),n.innerHTML=_(e,s.month)):d(a.columnMonth,s.month)},year:()=>{"multiple"!==l?(n.classList.add(a.calendarYear),n.classList.remove(a.calendarDefault,a.calendarMonth),n.innerHTML=_(e,s.year)):d(a.columnYear,s.year)}};n.classList.add(a.calendar),o[i]()},A=(e,t,n,a,s)=>{const l=t.cloneNode(!1);return l.className=`${e.CSSClasses.yearsYear}${n===s?` ${e.CSSClasses.yearsYearSelected}`:a?` ${e.CSSClasses.yearsYearDisabled}`:""}`,l.dataset.calendarYear=String(s),l.title=String(s),l.innerText=String(s),a&&(l.tabIndex=-1),l},I=(e,t)=>{const n=(null==t?void 0:t.dataset.calendarSelectedYear)?Number(null==t?void 0:t.dataset.calendarSelectedYear):e.selectedYear;e.currentType="year",N(e,t),x(e),T(e);const a=e.HTMLElement.querySelector(`.${e.CSSClasses.years}`);if(!e.settings.selection.year||!a)return;a.classList.add(e.CSSClasses.yearsSelecting);const s="multiple"!==e.type||e.selectedYear===n?0:1,l=document.createElement("button");l.type="button";for(let t=e.viewYear-7;t<e.viewYear+8;t++){const i=t<e.dateMin.getFullYear()+s||t>e.dateMax.getFullYear(),r=A(e,l,n,i,t);a.appendChild(r),e.actions.getYears&&e.actions.getYears(t,r,e)}},P=e=>`${e.charAt(0).toUpperCase()}${e.substring(1,e.length)}`.replace(/\./,""),F=(e,t)=>{const n=new Date(`1978-01-0${t+1}T00:00:00.000Z`).toLocaleString(e.settings.lang,{weekday:"short",timeZone:"UTC"});e.locale.weekday.push(P(n))},O=(e,t)=>{const n=new Date(`1978-${t+1<=9?`0${t+1}`:t+1}-01T00:00:00.000Z`).toLocaleString(e.settings.lang,{month:"long",timeZone:"UTC"});e.locale.months.push(P(n))},B=e=>{if("multiple"!==e.type)return 0;const t=e.HTMLElement.querySelectorAll(`.${e.CSSClasses.column}`),n=Array.from(t).findIndex((t=>t.classList.contains(`${e.CSSClasses.columnMonth}`)));return n>0?n:0},q=(e,t,n,a,s,l)=>{const i=t.cloneNode(!1);return i.className=`${e.CSSClasses.monthsMonth}${n===l?` ${e.CSSClasses.monthsMonthSelected}`:s?` ${e.CSSClasses.monthsMonthDisabled}`:""}`,i.title=a,i.innerText=`${e.settings.visibility.monthShort?a.substring(0,3):a}`,i.dataset.calendarMonth=String(l),s&&(i.tabIndex=-1),i},W=(e,t)=>{var n,a;const s=(null==t?void 0:t.dataset.calendarSelectedMonth)?Number(t.dataset.calendarSelectedMonth):e.selectedMonth,l=null==(n=null==t?void 0:t.closest(`.${e.CSSClasses.column}`))?void 0:n.querySelector(`.${e.CSSClasses.year}`),i=l?Number(l.dataset.calendarSelectedYear):e.selectedYear;e.currentType="month",N(e,t),x(e);const r=null==(a=e.HTMLElement)?void 0:a.querySelector(`.${e.CSSClasses.months}`);if(!e.settings.selection.month||!r)return;r.classList.add(e.CSSClasses.monthsSelecting);const d=e.jumpMonths>1?e.locale.months.map(((t,n)=>s-e.jumpMonths*n)).concat(e.locale.months.map(((t,n)=>s+e.jumpMonths*n))).filter((e=>e>=0&&e<=12)):Array.from(Array(12).keys()),o=document.createElement("button");o.type="button";for(let t=0;t<12;t++){const n=e.locale.months[t],a=t<e.dateMin.getMonth()+B(e)&&i<=e.dateMin.getFullYear()||t>e.dateMax.getMonth()+B(e)&&i>=e.dateMax.getFullYear()||t!==s&&!d.includes(t),l=q(e,o,s,n,a,t);r.appendChild(l),e.actions.getMonths&&e.actions.getMonths(t,l,e)}},j=(e,t)=>e&&t?{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:"12",PM:"12"}}[Number(e)][t]:"",K=(e,t,n)=>e.querySelector(`.${t}${n?` input[name="${n}"]`:""}`),R=(e,t,n)=>{e.addEventListener("mouseover",(()=>t.classList.add(n))),e.addEventListener("mouseout",(()=>t.classList.remove(n)))},z=(e,t,n,a)=>{({hours:()=>{e.selectedHours=n},minutes:()=>{e.selectedMinutes=n}})[a](),e.selectedTime=`${e.selectedHours}:${e.selectedMinutes}${e.selectedKeeping?` ${e.selectedKeeping}`:""}`,e.actions.changeTime&&e.actions.changeTime(t,e),e.input&&e.HTMLInputElement&&e.actions.changeToInput&&e.actions.changeToInput(t,e)},G=(e,t,n,a,s,l)=>{t.addEventListener("input",(t=>{const i=t.target,r=Number(i.value),d=r<10?`0${r}`:`${r}`;if("hours"!==s||12!==l)return n.value=d,void z(e,t,d,s);r<l&&r>0?(n.value=d,e.selectedKeeping="AM",a.innerText=e.selectedKeeping,z(e,t,d,s)):(0===r?(e.selectedKeeping="AM",a.innerText="AM"):(e.selectedKeeping="PM",a.innerText="PM"),n.value=p(i.value),z(e,t,p(i.value),s))}))},Z=(e,t,n,a,s,l)=>{n.addEventListener("change",(n=>{const i=n.target,r=Number(i.value),d=r<10?`0${r}`:`${r}`;"hours"===s&&12===l?i.value&&r<=l&&r>0?(i.value=d,t.value=j(d,e.selectedKeeping),z(e,n,d,s)):i.value&&r<24&&(r>l||0===r)?(0===r?(e.selectedKeeping="AM",a.innerText="AM"):(e.selectedKeeping="PM",a.innerText="PM"),i.value=p(i.value),t.value=d,z(e,n,p(i.value),s)):i.value=e.selectedHours:i.value&&r<=l&&r>=0?(i.value=d,t.value=d,z(e,n,d,s)):"hours"===s?i.value=e.selectedHours:"minutes"===s&&(i.value=e.selectedMinutes)}))},U=(e,t,n)=>{const a=24===n?23:n||12,s=K(t,e.CSSClasses.timeRange,"hours"),l=K(t,e.CSSClasses.timeRange,"minutes"),i=K(t,e.CSSClasses.timeHours,"hours"),r=K(t,e.CSSClasses.timeMinutes,"minutes"),d=t.querySelector(`.${e.CSSClasses.timeKeeping}`);R(s,i,e.CSSClasses.isFocus),R(l,r,e.CSSClasses.isFocus),G(e,s,i,d,"hours",a),G(e,l,r,d,"minutes",0),Z(e,s,i,d,"hours",a),Z(e,l,r,d,"minutes",59),d&&((e,t,n)=>{t.addEventListener("click",(a=>{e.selectedKeeping=t.innerText.includes("AM")?"PM":"AM",t.innerText=e.selectedKeeping,n.value=j(e.selectedHours,e.selectedKeeping),z(e,a,e.selectedHours,"hours")}))})(e,d,s)},V=(e,t,n,a)=>`<label class="${t}"><input type="text"name="${e}"maxlength="2"value="${n}"${a?"disabled":""}></label>`,X=(e,t,n,a,s,l)=>`<label class="${t}"><input type="range"name="${e}"min="${n}"max="${a}"step="${s}"value="${l}"></label>`,J=e=>{const t=[...e.locale.weekday];if(!t[0])return;e.settings.iso8601&&t.push(t.shift());e.HTMLElement.querySelectorAll(`.${e.CSSClasses.week}`).forEach((n=>((e,t,n)=>{const a=document.createElement("b");t.textContent="";for(let s=0;s<n.length;s++){const l=n[s],i=a.cloneNode(!0);i.className=`${e.CSSClasses.weekDay}`,i.className=`${e.CSSClasses.weekDay}${e.settings.visibility.weekend&&e.settings.iso8601?5===s||6===s?` ${e.CSSClasses.weekDayWeekend}`:"":!e.settings.visibility.weekend||e.settings.iso8601||0!==s&&6!==s?"":` ${e.CSSClasses.weekDayWeekend}`}`,i.innerText=`${l}`,t.appendChild(i)}})(e,n,t)))},Q=["light","dark","system"],ee={value:!1,set:()=>{ee.value=!0},check:()=>ee.value},te=(e,t)=>Q.find((n=>{var a;return"system"!==n&&(null==(a=e.getAttribute(t))?void 0:a.includes(n))})),ne=(e,t)=>{e.dataset.calendarTheme=t},ae=(e,t)=>{var n;if(n=t,ne(e.HTMLElement,n.matches?"dark":"light"),"system"!==e.settings.visibility.theme||ee.check())return;const a=t=>{const n=document.querySelectorAll(`.${e.CSSClasses.calendar}`);null==n||n.forEach((e=>ne(e,t.matches?"dark":"light")))};t.addEventListener?t.addEventListener("change",a):t.addListener(a),ee.set()},se=(e,t)=>{const n=e.settings.visibility.themeDetect?document.querySelector(e.settings.visibility.themeDetect):null;if(!n)return void ae(e,t);const a=e.settings.visibility.themeDetect.replace(/^.*\[(.+)\]/g,((e,t)=>t)),s=te(n,a);s?(ne(e.HTMLElement,s),((e,t,n)=>{new MutationObserver((a=>{for(let s=0;s<a.length;s++)if(a[s].attributeName===n){const a=te(t,n);a&&ne(e.HTMLElement,a);break}})).observe(t,{attributes:!0})})(e,n,a)):ae(e,t)},le=e=>{const t={default:()=>{J(e),H(e)},multiple:()=>{J(e),H(e)},month:()=>W(e),year:()=>I(e)};(e=>{if(!Q.includes(e.settings.visibility.theme))throw new Error(b);if("not all"===window.matchMedia("(prefers-color-scheme)").media)return void ne(e.HTMLElement,"light");({light:()=>ne(e.HTMLElement,"light"),dark:()=>ne(e.HTMLElement,"dark"),system:()=>se(e,window.matchMedia("(prefers-color-scheme: dark)"))})[e.settings.visibility.theme]()})(e),(e=>{if("define"!==e.settings.lang||!e.locale.weekday[6]||!e.locale.months[11]){if("define"===e.settings.lang)throw new Error(C);e.locale.weekday=[],e.locale.months=[];for(let t=0;t<7;t++)F(e,t);for(let t=0;t<12;t++)O(e,t)}})(e),N(e),x(e),T(e),(e=>{const t=e.HTMLElement.querySelector(`.${e.CSSClasses.time}`);if(!t)return;const n=!0===e.settings.selection.time?12:e.settings.selection.time,a="range"===e.settings.selection.controlTime,[s,l]=[0,23],[i,r]=[0,59];t.innerHTML=e.sanitizer(`<div class="${e.CSSClasses.timeContent}">${V("hours",e.CSSClasses.timeHours,e.selectedHours,a)}${V("minutes",e.CSSClasses.timeMinutes,e.selectedMinutes,a)}${12===n?`<button type="button" class="${e.CSSClasses.timeKeeping}"${a?"disabled":""}>${e.selectedKeeping}</button>`:""}</div><div class="${e.CSSClasses.timeRanges}">${X("hours",e.CSSClasses.timeRange,s,l,e.settings.selection.stepHours,e.selectedKeeping?j(e.selectedHours,e.selectedKeeping):e.selectedHours)}${X("minutes",e.CSSClasses.timeRange,i,r,e.settings.selection.stepMinutes,e.selectedMinutes)}</div>`),U(e,t,n)})(e),t[e.currentType]()},ie={self:null,rangeMin:void 0,rangeMax:void 0},re=()=>{var e;if(!(null==(e=ie.self)?void 0:e.HTMLElement))return;const{CSSClasses:t}=ie.self;ie.self.HTMLElement.querySelectorAll(`.${ie.self.CSSClasses.dayBtnHover}`).forEach((e=>{var n;e.classList.remove(ie.self.CSSClasses.dayBtnHover),null==(n=e.parentElement)||n.classList.remove(t.dayHoverIntermediate,t.dayHoverFirst,t.dayHoverLast)}))},de=(e,t,n)=>{var a,s,l;if(!(null==(a=ie.self)?void 0:a.selectedDates))return;const i=g(e),{CSSClasses:r}=ie.self;if(null==(s=ie.self.rangeDisabled)?void 0:s.includes(i))return;const d=null==(l=ie.self.HTMLElement)?void 0:l.querySelectorAll(`[data-calendar-day="${i}"]`);null==d||d.forEach((e=>{var t;e.classList.add(r.dayBtnHover),null==(t=e.parentElement)||t.classList.add(r.dayHoverIntermediate)})),null==t||t.forEach((e=>{var t;return null==(t=e.parentElement)?void 0:t.classList.add(r.dayHoverFirst)})),null==n||n.forEach((e=>{var t;return null==(t=e.parentElement)?void 0:t.classList.add(r.dayHoverLast)}))},oe=e=>{var t;if(!e.target||!(null==(t=ie.self)?void 0:t.selectedDates))return;if(!e.target.closest(`.${ie.self.CSSClasses.days}`))return void re();const n=e.target.closest("[data-calendar-day]");if(!n)return;const a=n.dataset.calendarDay,s=h(ie.self.selectedDates[0]),l=h(a),i=ie.self.HTMLElement.querySelectorAll(`[data-calendar-day="${ie.self.selectedDates[0]}"]`),r=ie.self.HTMLElement.querySelectorAll(`[data-calendar-day="${a}"]`),[d,o]=s<l?[i,r]:[r,i],[c,u]=s<l?[s,l]:[l,s];re();for(let e=new Date(c);e<=u;e.setDate(e.getDate()+1))de(e,d,o)},ce=e=>{ie.self&&"Escape"===e.key&&(ie.self.selectedDates=[],ie.self.HTMLElement.removeEventListener("mousemove",oe),document.removeEventListener("keydown",ce),le(ie.self))},ue=(e,t)=>{var n;if(t){const a=1===e.selectedDates.length&&e.selectedDates[0].includes(t);e.selectedDates=a&&!e.settings.selection.cancelableDay?[t,t]:a&&e.settings.selection.cancelableDay?[]:e.selectedDates.length>1?[t]:[...e.selectedDates,t],null==(n=e.selectedDates)||n.sort(((e,t)=>+new Date(e)-+new Date(t)))}e.settings.range.disableGaps&&(ie.rangeMin=ie.rangeMin?ie.rangeMin:e.rangeMin,ie.rangeMax=ie.rangeMax?ie.rangeMax:e.rangeMax),ie.self=e;const a={set:()=>{e.HTMLElement.addEventListener("mousemove",oe),document.addEventListener("keydown",ce),e.settings.range.disableGaps&&(()=>{var e,t,n;if(!(null==(t=null==(e=ie.self)?void 0:e.selectedDates)?void 0:t[0])||!ie.self.rangeDisabled||(null==(n=ie.self.rangeDisabled)?void 0:n.length)<2)return;const a=h(ie.self.selectedDates[0]),[s,l]=ie.self.rangeDisabled.map((e=>h(e))).reduce((([e,t],n)=>[a>=n?n:e,a<n&&null===t?n:t]),[null,null]);s&&(ie.self.rangeMin=g(new Date(s.setDate(s.getDate()+1)))),l&&(ie.self.rangeMax=g(new Date(l.setDate(l.getDate()-1))))})()},reset:()=>{const[t,n]=[e.selectedDates[0],e.selectedDates[e.selectedDates.length-1]];e.selectedDates=e.selectedDates[0]!==e.selectedDates[e.selectedDates.length-1]?e.settings.range.edgesOnly?[t,n]:y([`${t}:${n}`]):[e.selectedDates[0],e.selectedDates[0]],e.HTMLElement.removeEventListener("mousemove",oe),document.removeEventListener("keydown",ce),e.settings.range.disableGaps&&ie.self&&(ie.self.rangeMin=ie.rangeMin,ie.self.rangeMax=ie.rangeMax)}};a[1===e.selectedDates.length?"set":"reset"]()},me=(e,t,n)=>{if(!t.dataset.calendarDay)return;const a=t.dataset.calendarDay,s=t.classList.contains(e.CSSClasses.dayBtnSelected);if(s&&!e.settings.selection.cancelableDay)return;let l=!0;void 0!==e.toggleSelected&&(l="function"==typeof e.toggleSelected?e.toggleSelected(e):e.toggleSelected),s&&!l||(e.selectedDates=s?e.selectedDates.filter((e=>e!==a)):n?[...e.selectedDates,a]:[a])},ge=(e,t,n,a,s)=>{const l=e.HTMLElement.querySelectorAll(`.${e.CSSClasses.column}`),i=Array.from(l).findIndex((e=>e.classList.contains(t))),r=Number(l[i].querySelector(`.${n}`).getAttribute(s));return"month"===e.currentType&&i>=0?a-i:"year"===e.currentType&&e.selectedYear!==r?a-1:a},he=(e,t,n,a)=>{if(!e.settings.selection[n])return;const s=t.target,l=e=>s.closest(`.${e}`),i=l(a.header),r=l(a.item),d=l(e.CSSClasses.grid),o=l(e.CSSClasses.column);if(e.currentType!==n&&i){({year:()=>I(e,s),month:()=>W(e,s)})[n]()}else r?((e,t,n,a,s)=>{const l={year:()=>{var n,a;return null==(a=(n=e.actions).clickYear)?void 0:a.call(n,t,e)},month:()=>{var n,a;return null==(a=(n=e.actions).clickMonth)?void 0:a.call(n,t,e)}};({year:()=>{if("multiple"===e.type){const t=ge(e,e.CSSClasses.columnYear,e.CSSClasses.year,Number(s.dataset.calendarYear),"data-calendar-selected-year"),n=e.selectedMonth<e.dateMin.getMonth()&&t<=e.dateMin.getFullYear(),a=e.selectedMonth>e.dateMax.getMonth()&&t>=e.dateMax.getFullYear(),l=t<e.dateMin.getFullYear(),i=t>e.dateMax.getFullYear();n||l?(e.selectedYear=e.dateMin.getFullYear(),e.selectedMonth=e.dateMin.getMonth()):a||i?(e.selectedYear=e.dateMax.getFullYear(),e.selectedMonth=e.dateMax.getMonth()):e.selectedYear=t}else e.selectedYear=Number(s.dataset.calendarYear)},month:()=>{if("multiple"===e.type){const t=ge(e,e.CSSClasses.columnMonth,e.CSSClasses.month,Number(s.dataset.calendarMonth),"data-calendar-selected-month"),n=s.closest(`.${a.column}`).querySelector(`.${e.CSSClasses.year}`);e.selectedYear=Number(n.dataset.calendarSelectedYear);const l=t<e.dateMin.getMonth()&&e.selectedYear<=e.dateMin.getFullYear(),i=t>e.dateMax.getMonth()&&e.selectedYear>=e.dateMax.getFullYear();e.selectedMonth=l?e.dateMin.getMonth():i?e.dateMax.getMonth():t}else e.selectedMonth=Number(s.dataset.calendarMonth)}})[n](),l[n](),e.currentType=e.type,le(e)})(e,t,n,a,r):(e.currentType===n&&i||"multiple"===e.type&&e.currentType===n&&d&&!o)&&(e.currentType=e.type,le(e))},ye=e=>{const t=t=>{((e,t)=>{const n=t.target.closest(`.${e.CSSClasses.arrow}`);n&&(["default","multiple"].includes(e.currentType)?Y(e,n.dataset.calendarArrow):"year"===e.currentType&&void 0!==e.viewYear&&(e.viewYear+={prev:-15,next:15}[n.dataset.calendarArrow],I(e,t.target)),e.actions.clickArrow&&e.actions.clickArrow(t,e))})(e,t),((e,t)=>{var n;if(!e.settings.visibility.weekNumbers||!e.actions.clickWeekNumber)return;const a=t.target.closest(`.${e.CSSClasses.weekNumber}`),s=null==(n=e.HTMLElement)?void 0:n.querySelectorAll("[data-calendar-week-number]");if(!a||!s)return;const l=Number(a.innerText),i=Number(a.dataset.calendarYearWeek),r=Array.from(s).filter((e=>Number(e.dataset.calendarWeekNumber)===l));e.actions.clickWeekNumber(t,l,r,i,e)})(e,t),((e,t)=>{var n;const a=t.target,s=e=>a.closest(`.${e}`),l=s(e.CSSClasses.dayBtn);if(!e.settings.selection.day||!["single","multiple","multiple-ranged"].includes(e.settings.selection.day)||!l)return;({single:()=>me(e,l,!1),multiple:()=>me(e,l,!0),"multiple-ranged":()=>ue(e,l.dataset.calendarDay)})[e.settings.selection.day](),null==(n=e.selectedDates)||n.sort(((e,t)=>+new Date(e)-+new Date(t))),e.actions.clickDay&&e.actions.clickDay(t,e),e.input&&e.HTMLInputElement&&e.HTMLElement&&e.actions.changeToInput&&e.actions.changeToInput(t,e);const i=s(e.CSSClasses.dayBtnPrev),r=s(e.CSSClasses.dayBtnNext);({prev:()=>Y(e,"prev"),next:()=>Y(e,"next"),default:()=>H(e)})[i?"prev":r?"next":"default"]()})(e,t),he(e,t,"month",{header:e.CSSClasses.month,item:e.CSSClasses.monthsMonth,column:e.CSSClasses.columnMonth}),he(e,t,"year",{header:e.CSSClasses.year,item:e.CSSClasses.yearsYear,column:e.CSSClasses.columnYear})};return e.HTMLElement.addEventListener("click",t),()=>e.HTMLElement.removeEventListener("click",t)},ve=(e,{year:t,month:n,dates:a,holidays:s,time:l}={})=>{var r;const d=i({},e.settings.selected);e.settings.selected.year=t?d.year:e.selectedYear,e.settings.selected.month=n?d.month:e.selectedMonth,e.settings.selected.holidays=s?d.holidays:e.selectedHolidays,e.settings.selected.time=l?d.time:e.selectedTime,e.settings.selected.dates="only-first"===a&&(null==(r=e.selectedDates)?void 0:r[0])?[e.selectedDates[0]]:!0===a?d.dates:e.selectedDates,w(e),le(e),e.settings.selected=d,"multiple-ranged"===e.settings.selection.day&&a&&ue(e)};function pe(e){if(!e||!e.getBoundingClientRect)return;const t=e.getBoundingClientRect(),n=document.documentElement;return{bottom:t.bottom,right:t.right,top:t.top+window.pageYOffset-n.clientTop,left:t.left+window.pageXOffset-n.clientLeft}}function Se(){return{vw:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),vh:Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)}}function Me(e){var t,n;let a=0,s=0,l=0,i=0;const r={left:window.pageXOffset||document.documentElement.scrollLeft||0,top:window.pageYOffset||document.documentElement.scrollTop||0},d=pe(e),{vh:o,vw:c}=Se(),u=r.top,m=r.left;if(d){const r=null!=(t=d.top)?t:0,g=null!=(n=d.left)?n:0;s=r-u,l=g-m,a=o-(r-u+e.clientHeight),i=c-(g-m+e.clientWidth)}return{top:s,bottom:a,left:l,right:i}}function Ce(e,t){let n="left";if(t&&e){const{canShow:a,parentPositions:s}=function(e,t,n=5){const a={top:!0,bottom:!0,left:!0,right:!0},s=[];if(t&&e){const{bottom:l,top:i}=Me(e),{top:r,left:d}=pe(e),{height:o,width:c}=t.getBoundingClientRect(),{vh:u,vw:m}=Se(),g={x:m/2,y:u/2};r<g.y&&s.push("top"),r>g.y&&s.push("bottom"),d<g.x&&s.push("left"),d>g.x&&s.push("right"),o>i-n&&(a.top=!1),o>l-n&&(a.bottom=!1),c>d&&(a.left=!1),m-d<c&&(a.right=!1)}return{canShow:a,parentPositions:s}}(e,t);if(!a.left||!a.right)return Array.isArray(s)?(s[0]="bottom"===s[0]?"top":"bottom",s):s;a.bottom?n="center":a.top&&(n=["top","center"])}return n}const be=(e,t,n,a)=>{if(e){const s="auto"===n?Ce(e,t):n,l={top:-t.offsetHeight,bottom:e.offsetHeight,left:0,center:e.offsetWidth/2-t.offsetWidth/2,right:e.offsetWidth-t.offsetWidth},i=Array.isArray(s)?s[0]:"bottom",r=Array.isArray(s)?s[1]:s;t.classList.add("bottom"===i?a.calendarToInputBottom:a.calendarToInputTop);const d=e.getBoundingClientRect(),o=window.scrollX||document.documentElement.scrollLeft,c=window.scrollY||document.documentElement.scrollTop,u=d.top+c+l[i],m=d.left+o+l[r];Object.assign(t.style,{left:`${m}px`,top:`${u}px`})}},fe=e=>{let t=!0;const n=[];e.HTMLInputElement=e.HTMLElement;const a=()=>be(e.HTMLInputElement,e.HTMLElement,e.settings.visibility.positionToInput,e.CSSClasses),s=t=>{var n;e&&t.target!==e.HTMLInputElement&&!(null==(n=e.HTMLElement)?void 0:n.contains(t.target))&&(e.HTMLInputElement&&e.HTMLElement&&e.hide(),window.removeEventListener("resize",a),document.removeEventListener("click",s,{capture:!0}))};return e.HTMLInputElement.addEventListener("click",(()=>{t?n.push((()=>{const n=document.createElement("div");return n.className=`${e.CSSClasses.calendar} ${e.CSSClasses.calendarToInput} ${e.CSSClasses.calendarHidden}`,e.HTMLElement=n,document.body.appendChild(e.HTMLElement),t=!1,setTimeout((()=>{be(e.HTMLInputElement,n,e.settings.visibility.positionToInput,e.CSSClasses),e.show()}),0),ve(e,{year:!0,month:!0,dates:!0,holidays:!0,time:!0}),e.actions.initCalendar&&e.actions.initCalendar(e),ye(e)})()):(be(e.HTMLInputElement,e.HTMLElement,e.settings.visibility.positionToInput,e.CSSClasses),e.show()),window.addEventListener("resize",a),document.addEventListener("click",s,{capture:!0})})),()=>{n.forEach((e=>e()))}};function we(e,...t){const n=e=>e&&"object"==typeof e&&!Array.isArray(e);if(!t.length)return e;const a=t.shift();return n(e)&&n(a)&&Object.keys(a).forEach((t=>{n(a[t])?(e[t]||Object.assign(e,{[t]:{}}),we(e[t],a[t])):Object.assign(e,{[t]:a[t]})})),we(e,...t)}function De(e,t,n){e.settings=we(e.settings,{[t]:n})}e.VanillaCalendar=class extends m{constructor(e,t){if(super(),r(this,"init",(()=>{return(e=this).HTMLOriginalElement=e.HTMLElement.cloneNode(!0),e.isInit=!0,e.input?fe(e):(w(e),le(e),e.actions.initCalendar&&e.actions.initCalendar(e),ye(e));var e})),r(this,"update",(e=>((e,{year:t,month:n,dates:a,holidays:s,time:l}={})=>{if(!e.isInit)throw new Error(M);ve(e,{year:t,month:n,dates:a,holidays:s,time:l}),e.actions.updateCalendar&&e.actions.updateCalendar(e)})(this,e))),r(this,"destroy",(()=>(e=>{var t,n,a,s,l,i;if(!e.isInit)throw new Error(M);e.input?(null==(n=null==(t=e.HTMLElement)?void 0:t.parentElement)||n.removeChild(e.HTMLElement),null==(s=null==(a=e.HTMLInputElement)?void 0:a.replaceWith)||s.call(a,e.HTMLOriginalElement),e.HTMLInputElement=void 0):null==(i=null==(l=e.HTMLElement)?void 0:l.replaceWith)||i.call(l,e.HTMLOriginalElement),e.HTMLElement=e.HTMLOriginalElement,e.actions.destroyCalendar&&e.actions.destroyCalendar(e)})(this))),r(this,"show",(()=>{var e;(e=this).currentType?(e.HTMLElement.classList.remove(e.CSSClasses.calendarHidden),e.actions.showCalendar&&e.actions.showCalendar(e)):e.HTMLElement.click()})),r(this,"hide",(()=>{var e;(e=this).currentType&&(e.HTMLElement.classList.add(e.CSSClasses.calendarHidden),e.actions.hideCalendar&&e.actions.hideCalendar(e))})),r(this,"changeSetting",((e,t)=>De(this,e,t))),this.HTMLElement="string"==typeof e?document.querySelector(e):e,!this.HTMLElement)throw new Error(S(e));if(!t)return;const n=(e,t)=>{Object.keys(t).forEach((a=>{"object"!=typeof e[a]||"object"!=typeof t[a]||t[a]instanceof Date?e[a]=t[a]:n(e[a],t[a])}))};n(this,t)}},Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).VanillaCalendar={})}(this,(function(e){"use strict";var t=Object.defineProperty,n=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable,l=(e,n,a)=>n in e?t(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,i=(e,t)=>{for(var i in t||(t={}))a.call(t,i)&&l(e,i,t[i]);if(n)for(var i of n(t))s.call(t,i)&&l(e,i,t[i]);return e},r=(e,t,n)=>(l(e,"symbol"!=typeof t?t+"":t,n),n);const d={calendar:"vanilla-calendar",calendarDefault:"vanilla-calendar_default",calendarMultiple:"vanilla-calendar_multiple",calendarMonth:"vanilla-calendar_month",calendarYear:"vanilla-calendar_year",calendarHidden:"vanilla-calendar_hidden",calendarToInput:"vanilla-calendar_to-input",calendarToInputTop:"vanilla-calendar_to-input_top",calendarToInputBottom:"vanilla-calendar_to-input_bottom",controls:"vanilla-calendar-controls",grid:"vanilla-calendar-grid",gridDisabled:"vanilla-calendar-grid_disabled",column:"vanilla-calendar-column",columnMonth:"vanilla-calendar-column_month",columnYear:"vanilla-calendar-column_year",header:"vanilla-calendar-header",headerContent:"vanilla-calendar-header__content",month:"vanilla-calendar-month",monthDisabled:"vanilla-calendar-month_disabled",year:"vanilla-calendar-year",yearDisabled:"vanilla-calendar-year_disabled",arrow:"vanilla-calendar-arrow",arrowPrev:"vanilla-calendar-arrow_prev",arrowNext:"vanilla-calendar-arrow_next",wrapper:"vanilla-calendar-wrapper",content:"vanilla-calendar-content",week:"vanilla-calendar-week",weekDay:"vanilla-calendar-week__day",weekDayWeekend:"vanilla-calendar-week__day_weekend",days:"vanilla-calendar-days",daysSelecting:"vanilla-calendar-days_selecting",months:"vanilla-calendar-months",monthsSelecting:"vanilla-calendar-months_selecting",monthsMonth:"vanilla-calendar-months__month",monthsMonthSelected:"vanilla-calendar-months__month_selected",monthsMonthDisabled:"vanilla-calendar-months__month_disabled",years:"vanilla-calendar-years",yearsSelecting:"vanilla-calendar-years_selecting",yearsYear:"vanilla-calendar-years__year",yearsYearSelected:"vanilla-calendar-years__year_selected",yearsYearDisabled:"vanilla-calendar-years__year_disabled",time:"vanilla-calendar-time",timeContent:"vanilla-calendar-time__content",timeHours:"vanilla-calendar-time__hours",timeMinutes:"vanilla-calendar-time__minutes",timeKeeping:"vanilla-calendar-time__keeping",timeRanges:"vanilla-calendar-time__ranges",timeRange:"vanilla-calendar-time__range",day:"vanilla-calendar-day",dayHoverFirst:"vanilla-calendar-day_hover-first",dayHoverLast:"vanilla-calendar-day_hover-last",dayHoverIntermediate:"vanilla-calendar-day_hover-intermediate",daySelectedFirst:"vanilla-calendar-day_selected-first",daySelectedLast:"vanilla-calendar-day_selected-last",daySelectedIntermediate:"vanilla-calendar-day_selected-intermediate",dayPopup:"vanilla-calendar-day__popup",dayBtn:"vanilla-calendar-day__btn",dayBtnPrev:"vanilla-calendar-day__btn_prev",dayBtnNext:"vanilla-calendar-day__btn_next",dayBtnToday:"vanilla-calendar-day__btn_today",dayBtnSelected:"vanilla-calendar-day__btn_selected",dayBtnHover:"vanilla-calendar-day__btn_hover",dayBtnDisabled:"vanilla-calendar-day__btn_disabled",dayBtnWeekend:"vanilla-calendar-day__btn_weekend",dayBtnHoliday:"vanilla-calendar-day__btn_holiday",weekNumbers:"vanilla-calendar-week-numbers",weekNumbersTitle:"vanilla-calendar-week-numbers__title",weekNumbersContent:"vanilla-calendar-week-numbers__content",weekNumber:"vanilla-calendar-week-number",isFocus:"vanilla-calendar-is-focus"},o=e=>`<div class="${e.controls}"><#ArrowPrev /><#ArrowNext /></div><div class="${e.grid}"><#Multiple><div class="${e.column}"><div class="${e.header}"><div class="${e.headerContent}"><#Month /><#Year /></div></div><div class="${e.wrapper}"><#WeekNumbers /><div class="${e.content}"><#Week /><#Days /></div></div></div><#/Multiple></div><#ControlTime />`,c=e=>`<div class="${e.header}"><div class="${e.headerContent}"><#Month /><#Year /></div></div><div class="${e.wrapper}"><div class="${e.content}"><#Months /></div></div>`,u=e=>`<div class="${e.header}"><#ArrowPrev /><div class="${e.headerContent}"><#Month /><#Year /></div><#ArrowNext /></div><div class="${e.wrapper}"><div class="${e.content}"><#Years /></div></div>`;class m{constructor(){var e;r(this,"isInit",!1),r(this,"input",!1),r(this,"type","default"),r(this,"months",2),r(this,"jumpMonths",1),r(this,"toggleSelected",!0),r(this,"jumpToSelectedDate",!1),r(this,"date",{min:"1970-01-01",max:"2470-12-31",today:new Date}),r(this,"settings",{lang:"en",iso8601:!0,range:{min:this.date.min,max:this.date.max,disablePast:!1,disableGaps:!1,edgesOnly:!1,disableAllDays:!1,disableWeekday:void 0,disabled:void 0,enabled:void 0},selection:{day:"single",month:!0,year:!0,time:!1,controlTime:"all",stepHours:1,stepMinutes:1,cancelableDay:!0},selected:{dates:void 0,month:void 0,year:void 0,holidays:void 0,time:void 0},visibility:{theme:"system",themeDetect:"html[data-theme]",monthShort:!0,weekNumbers:!1,weekend:!0,today:!0,disabled:!1,daysOutside:!0,positionToInput:"left"}}),r(this,"locale",{months:[],weekday:[]}),r(this,"sanitizer",(e=>e)),r(this,"actions",{clickDay:null,clickWeekNumber:null,clickMonth:null,clickYear:null,clickArrow:null,changeTime:null,changeToInput:null,getDays:null,getMonths:null,getYears:null,initCalendar:null,updateCalendar:null,destroyCalendar:null,showCalendar:null,hideCalendar:null}),r(this,"popups",{}),r(this,"CSSClasses",i({},d)),r(this,"DOMTemplates",{default:(e=this.CSSClasses,`<div class="${e.header}"><#ArrowPrev /><div class="${e.headerContent}"><#Month /><#Year /></div><#ArrowNext /></div><div class="${e.wrapper}"><#WeekNumbers /><div class="${e.content}"><#Week /><#Days /></div></div><#ControlTime />`),multiple:o(this.CSSClasses),month:c(this.CSSClasses),year:u(this.CSSClasses)}),r(this,"HTMLElement"),r(this,"HTMLOriginalElement"),r(this,"HTMLInputElement"),r(this,"rangeMin"),r(this,"rangeMax"),r(this,"rangeDisabled"),r(this,"rangeEnabled"),r(this,"selectedDates"),r(this,"selectedHolidays"),r(this,"selectedMonth"),r(this,"selectedYear"),r(this,"selectedHours"),r(this,"selectedMinutes"),r(this,"selectedKeeping"),r(this,"selectedTime"),r(this,"currentType"),r(this,"correctMonths"),r(this,"viewYear"),r(this,"dateMin"),r(this,"dateMax")}}const g=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,h=e=>new Date(`${e}T00:00:00`),y=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,a)=>{const s=h(n),l=h(a),i=new Date(s.getTime());for(;i<=l;i.setDate(i.getDate()+1))e.push(g(i));return t}));return e}),[]),v=()=>{const e=new Date;return new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().substring(0,10)},p=e=>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):"",S=e=>`${e} is not found, check the first argument passed to new VanillaCalendar.`,M='The calendar has not been initialized, please initialize it using the "init()" method first.',C='You specified "define" for "settings.lang" but did not provide the required values for "locale.weekday" or "locale.months".',b='Incorrect name of theme in "settings.visibility.theme".',f="The value of the time property can be: false, true, 12 or 24.",w=e=>{e.currentType=e.type,(e=>{var t;if(e.jumpToSelectedDate&&(null==(t=e.settings.selected.dates)?void 0:t.length)&&void 0===e.settings.selected.month&&void 0===e.settings.selected.year){const t=h(y(e.settings.selected.dates)[0]);e.settings.selected.month=t.getMonth(),e.settings.selected.year=t.getFullYear()}const n=void 0!==e.settings.selected.month&&Number(e.settings.selected.month)>=0&&Number(e.settings.selected.month)<12,a=void 0!==e.settings.selected.year&&Number(e.settings.selected.year)>=0&&Number(e.settings.selected.year)<=9999;e.selectedMonth=n?Number(e.settings.selected.month):e.date.today.getMonth(),e.selectedYear=a?Number(e.settings.selected.year):e.date.today.getFullYear(),e.viewYear=e.selectedYear})(e),(e=>{var t,n,a;"today"===e.settings.range.min&&(e.settings.range.min=v()),"today"===e.settings.range.max&&(e.settings.range.max=v()),e.settings.range.min=h(e.date.min)>=h(e.settings.range.min)?e.date.min:e.settings.range.min,e.settings.range.max=h(e.date.max)<=h(e.settings.range.max)?e.date.max:e.settings.range.max;const s=e.settings.range.disablePast&&!e.settings.range.disableAllDays&&h(e.settings.range.min)<e.date.today;e.rangeMin=s||e.settings.range.disableAllDays?g(e.date.today):e.settings.range.min,e.rangeMax=e.settings.range.disableAllDays?g(e.date.today):e.settings.range.max,e.rangeDisabled=e.settings.range.disabled&&!e.settings.range.disableAllDays?y(e.settings.range.disabled):e.settings.range.disableAllDays?[e.rangeMin]:[],e.rangeDisabled.length>1&&e.rangeDisabled.sort(((e,t)=>+new Date(e)-+new Date(t))),e.rangeEnabled=e.settings.range.enabled?y(e.settings.range.enabled):[],(null==(t=e.rangeEnabled)?void 0:t[0])&&(null==(n=e.rangeDisabled)?void 0:n[0])&&(e.rangeDisabled=e.rangeDisabled.filter((t=>!e.rangeEnabled.includes(t)))),e.rangeEnabled.length>1&&e.rangeEnabled.sort(((e,t)=>+new Date(e)-+new Date(t))),(null==(a=e.rangeEnabled)?void 0:a[0])&&e.settings.range.disableAllDays&&(e.rangeMin=e.rangeEnabled[0],e.rangeMax=e.rangeEnabled[e.rangeEnabled.length-1])})(e),(e=>{var t,n;e.selectedDates=(null==(t=e.settings.selected.dates)?void 0:t[0])?y(e.settings.selected.dates):[],e.selectedHolidays=(null==(n=e.settings.selected.holidays)?void 0:n[0])?y(e.settings.selected.holidays):[]})(e),(e=>{e.dateMin=e.settings.visibility.disabled?h(e.date.min):h(e.rangeMin),e.dateMax=e.settings.visibility.disabled?h(e.date.max):h(e.rangeMax)})(e),(e=>{const t=!0===e.settings.selection.time||12===e.settings.selection.time;if(t||24===e.settings.selection.time){let n=!1;if("string"==typeof e.settings.selected.time){const a=t?/^([0-9]|0[1-9]|1[0-2]):([0-5][0-9])|(AM|PM)/g:/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])/g;e.settings.selected.time.replace(a,((a,s,l,i)=>(s&&l&&(n=!0,e.selectedHours=s,e.selectedMinutes=l),i&&t?e.selectedKeeping=i:t&&(e.selectedKeeping="AM"),"")))}!n&&t?(e.selectedHours=p(String(e.date.today.getHours())),e.selectedMinutes=String(e.date.today.getMinutes()),e.selectedKeeping=Number(e.date.today.getHours())>=12?"PM":"AM"):n||(e.selectedHours=String(e.date.today.getHours()),e.selectedMinutes=String(e.date.today.getMinutes())),e.selectedHours=Number(e.selectedHours)<10?`0${Number(e.selectedHours)}`:`${e.selectedHours}`,e.selectedMinutes=Number(e.selectedMinutes)<10?`0${Number(e.selectedMinutes)}`:`${e.selectedMinutes}`,e.selectedTime=`${e.selectedHours}:${e.selectedMinutes}${e.selectedKeeping?` ${e.selectedKeeping}`:""}`}else if(e.settings.selection.time)throw new Error(f)})(e),(e=>{e.correctMonths="multiple"===e.type?1===e.months?2:e.months>12?12:e.months:1})(e)},D=({arrowPrev:e,arrowNext:t,isPrevHidden:n,isNextHidden:a})=>{e.style.visibility=n?"hidden":"",t.style.visibility=a?"hidden":""},T=e=>{var t,n;if("month"===e.currentType)return;const a=null==(t=e.HTMLElement)?void 0:t.querySelector(`.${e.CSSClasses.arrowPrev}`),s=null==(n=e.HTMLElement)?void 0:n.querySelector(`.${e.CSSClasses.arrowNext}`);if(!a||!s)return;({default:()=>{const t=h(g(new Date(e.selectedYear,e.selectedMonth,1))),n=new Date(t.getTime()),l=new Date(t.getTime());n.setMonth(n.getMonth()-e.jumpMonths),l.setMonth(l.getMonth()+e.jumpMonths),e.settings.selection.year||(e.dateMin.setFullYear(t.getFullYear()),e.dateMax.setFullYear(t.getFullYear()));const i=!e.settings.selection.month||n.getFullYear()<e.dateMin.getFullYear()||n.getFullYear()===e.dateMin.getFullYear()&&n.getMonth()<e.dateMin.getMonth(),r=!e.settings.selection.month||l.getFullYear()>e.dateMax.getFullYear()||l.getFullYear()===e.dateMax.getFullYear()&&l.getMonth()>e.dateMax.getMonth();D({arrowPrev:a,arrowNext:s,isPrevHidden:i,isNextHidden:r})},year:()=>{D({arrowPrev:a,arrowNext:s,isPrevHidden:e.dateMin.getFullYear()&&e.viewYear-7<=e.dateMin.getFullYear(),isNextHidden:e.dateMax.getFullYear()&&e.viewYear+7>=e.dateMax.getFullYear()})}})["multiple"===e.currentType?"default":e.currentType]()},$=(e,t)=>{if(!e)return null;const n=h(e),a=t?n.getDay()||7:n.getDay();n.setDate(n.getDate()+4-a);const s=new Date(n.getFullYear(),0,1),l=Math.ceil(((+n-+s)/864e5+1)/7);return{year:n.getFullYear(),week:l}},L=(e,t,n,a,s)=>{const l=t[n].querySelector(`.${e.CSSClasses.dayBtn}`),i=$(null==l?void 0:l.dataset.calendarDay,e.settings.iso8601);if(!i)return;const r=a.cloneNode(!0);r.innerText=String(i.week),r.dataset.calendarYearWeek=String(i.year),s.appendChild(r)},E=(e,t,n,a,s,l,i,r)=>{const d=document.createElement("div");d.className=e.CSSClasses.day;const o=document.createElement("button");o.className=`${e.CSSClasses.dayBtn}${r?` ${r}`:""}`,o.type="button",o.innerText=String(a),o.dataset.calendarDay=l;e.settings.visibility.weekNumbers&&(()=>{const t=$(l,e.settings.iso8601);t&&(o.dataset.calendarWeekNumber=String(t.week))})(),i?e.settings.visibility.daysOutside&&d.appendChild(o):d.appendChild(o),((e,t,n)=>{var a,s,l,i,r;const d=null==(a=e.settings.range.disableWeekday)?void 0:a.includes(n),o=e.settings.range.disableAllDays&&!!(null==(s=e.rangeEnabled)?void 0:s[0]);!d&&!o||(null==(l=e.rangeEnabled)?void 0:l.includes(t))||(null==(i=e.rangeDisabled)?void 0:i.includes(t))||(e.rangeDisabled.push(t),null==(r=e.rangeDisabled)||r.sort(((e,t)=>+new Date(e)-+new Date(t))))})(e,l,s),((e,t,n,a,s,l,i)=>{var r,d,o;if((h(e.rangeMin)>h(l)||h(e.rangeMax)<h(l)||(null==(r=e.rangeDisabled)?void 0:r.includes(l))||!e.settings.selection.month&&i||!e.settings.selection.year&&h(l).getFullYear()!==t)&&(a.classList.add(e.CSSClasses.dayBtnDisabled),a.tabIndex=-1),e.settings.visibility.today&&g(e.date.today)===l&&a.classList.add(e.CSSClasses.dayBtnToday),!e.settings.visibility.weekend||0!==s&&6!==s||a.classList.add(e.CSSClasses.dayBtnWeekend),(null==(d=e.selectedHolidays)?void 0:d.includes(l))&&a.classList.add(e.CSSClasses.dayBtnHoliday),(null==(o=e.selectedDates)?void 0:o.includes(l))&&(a.classList.add(e.CSSClasses.dayBtnSelected),e.selectedDates.length>1&&"multiple-ranged"===e.settings.selection.day&&(e.selectedDates[0]===l&&n.classList.add(e.CSSClasses.daySelectedFirst),e.selectedDates[e.selectedDates.length-1]===l&&n.classList.add(e.CSSClasses.daySelectedLast),e.selectedDates[0]!==l&&e.selectedDates[e.selectedDates.length-1]!==l&&n.classList.add(e.CSSClasses.daySelectedIntermediate))),e.settings.range.edgesOnly&&e.selectedDates.length>1&&"multiple-ranged"===e.settings.selection.day){const t=+new Date(e.selectedDates[0]),s=+new Date(e.selectedDates[e.selectedDates.length-1]),i=+new Date(l);i>t&&i<s&&(a.classList.add(e.CSSClasses.dayBtnSelected),n.classList.add(e.CSSClasses.daySelectedIntermediate))}})(e,t,d,o,s,l,i),n.appendChild(d),e.actions.getDays&&e.actions.getDays(a,l,d,o,e)},H=e=>{const t=e.HTMLElement.querySelectorAll(`.${e.CSSClasses.days}`),n=e.HTMLElement.querySelectorAll(`.${e.CSSClasses.weekNumbers}`),a=new Date(e.selectedYear,e.selectedMonth,1);t.forEach(((t,s)=>{const l=new Date(a);l.setMonth(l.getMonth()+s);const i=l.getMonth(),r=l.getFullYear(),d=new Date(r,i,1),o=new Date(r,i+1,0).getDate(),c=e.settings.iso8601?(0!==d.getDay()?d.getDay():7)-1:d.getDay();e.settings.selection.day&&t.classList.add(e.CSSClasses.daysSelecting),t.textContent="",((e,t,n,a,s)=>{let l=new Date(n,a,0).getDate()-(s-1);const i=0===a?n-1:n,r=0===a?12:a<10?`0${a}`:a;for(let a=s;a>0;a--,l++){const a=`${i}-${r}-${l}`,s=h(a).getDay();E(e,n,t,l,s,a,!0,e.CSSClasses.dayBtnPrev)}})(e,t,r,i,c),((e,t,n,a,s)=>{for(let l=1;l<=n;l++){const n=new Date(a,s,l),i=g(n),r=n.getDay();E(e,a,t,l,r,i,!1,null)}})(e,t,o,r,i),((e,t,n,a,s,l)=>{const i=l+n,r=7*Math.ceil(i/7)-i,d=s+1===12?a+1:a,o=s+1===12?"01":s+2<10?`0${s+2}`:s+2;for(let n=1;n<=r;n++){const s=`${d}-${o}-${n<10?`0${n}`:String(n)}`,l=h(s).getDay();E(e,a,t,n,l,s,!0,e.CSSClasses.dayBtnNext)}})(e,t,o,r,i,c),((e,t,n,a,s)=>{if(!e.settings.visibility.weekNumbers)return;a.textContent="";const l=document.createElement("b");l.className=e.CSSClasses.weekNumbersTitle,l.innerText="#",a.appendChild(l);const i=document.createElement("div");i.className=e.CSSClasses.weekNumbersContent,a.appendChild(i);const r=document.createElement("button");r.type="button",r.className=e.CSSClasses.weekNumber;const d=s.querySelectorAll(`.${e.CSSClasses.day}`),o=Math.ceil((t+n)/7);for(let t=0;t<o;t++)L(e,d,0===t?6:7*t,r,i)})(e,c,o,n[s],t),((e,t)=>{var n;e.popups&&(null==(n=Object.entries(e.popups))||n.forEach((([n,a])=>((e,t,n,a)=>{const s=n.querySelector(`[data-calendar-day="${e}"]`);s&&((null==t?void 0:t.modifier)&&s.classList.add(...t.modifier.trim().split(" ")),(null==t?void 0:t.html)&&(s.parentElement.innerHTML+=`<div class="${a}">${t.html}</div>`))})(n,a,t,e.CSSClasses.dayPopup))))})(e,t)}))},x=e=>{var t,n;const a=null==(t=e.HTMLElement)?void 0:t.querySelectorAll("[data-calendar-selected-month]"),s=null==(n=e.HTMLElement)?void 0:n.querySelectorAll("[data-calendar-selected-year]");if(!(null==a?void 0:a[0])&&(null==s?void 0:s[0]))return;const l=new Date(e.selectedYear,e.selectedMonth,1);null==a||a.forEach(((t,n)=>((e,t,n,a)=>{const s=new Date(a.setMonth(e.selectedMonth+n)).getMonth(),l=!1===e.settings.selection.month||"only-arrows"===e.settings.selection.month;t.tabIndex=l?-1:0,t.classList.toggle(e.CSSClasses.monthDisabled,l),t.setAttribute("data-calendar-selected-month",String(s)),t.innerText=e.locale.months[s]})(e,t,n,l))),null==s||s.forEach(((t,n)=>((e,t,n,a)=>{const s=new Date(a.setFullYear(e.selectedYear,e.selectedMonth+n)).getFullYear(),l=!1===e.settings.selection.year||"only-arrows"===e.settings.selection.year;t.tabIndex=l?-1:0,t.classList.toggle(e.CSSClasses.yearDisabled,l),t.setAttribute("data-calendar-selected-year",String(s)),t.innerText=String(s)})(e,t,n,l)))},Y=(e,t)=>{const n=h(g(new Date(e.selectedYear,e.selectedMonth,1)));({prev:()=>n.setMonth(n.getMonth()-e.jumpMonths),next:()=>n.setMonth(n.getMonth()+e.jumpMonths)})[t](),[e.selectedMonth,e.selectedYear]=[n.getMonth(),n.getFullYear()],x(e),T(e),H(e)},k=Object.freeze(Object.defineProperty({__proto__:null,ArrowNext:e=>`<button type="button"class="${e.CSSClasses.arrow} ${e.CSSClasses.arrowNext}"data-calendar-arrow="next"></button>`,ArrowPrev:e=>`<button type="button"class="${e.CSSClasses.arrow} ${e.CSSClasses.arrowPrev}"data-calendar-arrow="prev"></button>`,ControlTime:e=>e.settings.selection.time?`<div class="${e.CSSClasses.time}"></div>`:"",Days:e=>`<div class="${e.CSSClasses.days}"></div>`,Month:e=>`<button type="button"class="${e.CSSClasses.month}"data-calendar-selected-month></button>`,Months:e=>`<div class="${e.CSSClasses.months}"></div>`,Week:e=>`<div class="${e.CSSClasses.week}"></div>`,WeekNumbers:e=>e.settings.visibility.weekNumbers?`<div class="${e.CSSClasses.weekNumbers}"></div>`:"",Year:e=>`<button type="button"class="${e.CSSClasses.year}"data-calendar-selected-year></button>`,Years:e=>`<div class="${e.CSSClasses.years}"></div>`},Symbol.toStringTag,{value:"Module"})),_=(e,t)=>t.replace(/[\n\t]/g,"").replace(/<#(?!\/?Multiple)(.*?)>/g,((t,n)=>{const a=(s=n.replace(/[/\s\n\t]/g,""),k[s]);var s;const l=a?a(e):"";return e.sanitizer(l)})).replace(/[\n\t]/g,""),N=(e,t)=>{const{HTMLElement:n,CSSClasses:a,DOMTemplates:s,type:l,currentType:i,correctMonths:r}=e,d=(s,l)=>{if(!t)return;const i=n.querySelector(`.${a.controls}`);i&&n.removeChild(i);n.querySelector(`.${a.grid}`).classList.add(a.gridDisabled);const r=t.closest(`.${a.column}`);r.classList.add(s),r.innerHTML=_(e,l)},o={default:()=>{n.classList.add(a.calendarDefault),n.classList.remove(a.calendarMonth,a.calendarYear),n.innerHTML=_(e,s.default)},multiple:()=>{r&&(n.classList.add(a.calendarMultiple),n.classList.remove(a.calendarMonth,a.calendarYear),n.innerHTML=((e,t)=>t.replace(/<#Multiple>(.*?)<#\/Multiple>/g,((t,n)=>{let a="";for(let t=0;t<e.correctMonths;t++)a+=n;return e.sanitizer(a)})).replace(/[\n\t]/g,""))(e,_(e,s.multiple)))},month:()=>{"multiple"!==l?(n.classList.add(a.calendarMonth),n.classList.remove(a.calendarDefault,a.calendarYear),n.innerHTML=_(e,s.month)):d(a.columnMonth,s.month)},year:()=>{"multiple"!==l?(n.classList.add(a.calendarYear),n.classList.remove(a.calendarDefault,a.calendarMonth),n.innerHTML=_(e,s.year)):d(a.columnYear,s.year)}};n.classList.add(a.calendar),o[i]()},A=(e,t,n,a,s)=>{const l=t.cloneNode(!1);return l.className=`${e.CSSClasses.yearsYear}${n===s?` ${e.CSSClasses.yearsYearSelected}`:a?` ${e.CSSClasses.yearsYearDisabled}`:""}`,l.dataset.calendarYear=String(s),l.title=String(s),l.innerText=String(s),a&&(l.tabIndex=-1),l},I=(e,t)=>{const n=(null==t?void 0:t.dataset.calendarSelectedYear)?Number(null==t?void 0:t.dataset.calendarSelectedYear):e.selectedYear;e.currentType="year",N(e,t),x(e),T(e);const a=e.HTMLElement.querySelector(`.${e.CSSClasses.years}`);if(!e.settings.selection.year||!a)return;a.classList.add(e.CSSClasses.yearsSelecting);const s="multiple"!==e.type||e.selectedYear===n?0:1,l=document.createElement("button");l.type="button";for(let t=e.viewYear-7;t<e.viewYear+8;t++){const i=t<e.dateMin.getFullYear()+s||t>e.dateMax.getFullYear(),r=A(e,l,n,i,t);a.appendChild(r),e.actions.getYears&&e.actions.getYears(t,r,e)}},P=e=>`${e.charAt(0).toUpperCase()}${e.substring(1,e.length)}`.replace(/\./,""),F=(e,t)=>{const n=new Date(`1978-01-0${t+1}T00:00:00.000Z`).toLocaleString(e.settings.lang,{weekday:"short",timeZone:"UTC"});e.locale.weekday.push(P(n))},O=(e,t)=>{const n=new Date(`1978-${t+1<=9?`0${t+1}`:t+1}-01T00:00:00.000Z`).toLocaleString(e.settings.lang,{month:"long",timeZone:"UTC"});e.locale.months.push(P(n))},B=e=>{if("multiple"!==e.type)return 0;const t=e.HTMLElement.querySelectorAll(`.${e.CSSClasses.column}`),n=Array.from(t).findIndex((t=>t.classList.contains(`${e.CSSClasses.columnMonth}`)));return n>0?n:0},q=(e,t,n,a,s,l)=>{const i=t.cloneNode(!1);return i.className=`${e.CSSClasses.monthsMonth}${n===l?` ${e.CSSClasses.monthsMonthSelected}`:s?` ${e.CSSClasses.monthsMonthDisabled}`:""}`,i.title=a,i.innerText=`${e.settings.visibility.monthShort?a.substring(0,3):a}`,i.dataset.calendarMonth=String(l),s&&(i.tabIndex=-1),i},W=(e,t)=>{var n,a;const s=(null==t?void 0:t.dataset.calendarSelectedMonth)?Number(t.dataset.calendarSelectedMonth):e.selectedMonth,l=null==(n=null==t?void 0:t.closest(`.${e.CSSClasses.column}`))?void 0:n.querySelector(`.${e.CSSClasses.year}`),i=l?Number(l.dataset.calendarSelectedYear):e.selectedYear;e.currentType="month",N(e,t),x(e);const r=null==(a=e.HTMLElement)?void 0:a.querySelector(`.${e.CSSClasses.months}`);if(!e.settings.selection.month||!r)return;r.classList.add(e.CSSClasses.monthsSelecting);const d=e.jumpMonths>1?e.locale.months.map(((t,n)=>s-e.jumpMonths*n)).concat(e.locale.months.map(((t,n)=>s+e.jumpMonths*n))).filter((e=>e>=0&&e<=12)):Array.from(Array(12).keys()),o=document.createElement("button");o.type="button";for(let t=0;t<12;t++){const n=e.locale.months[t],a=t<e.dateMin.getMonth()+B(e)&&i<=e.dateMin.getFullYear()||t>e.dateMax.getMonth()+B(e)&&i>=e.dateMax.getFullYear()||t!==s&&!d.includes(t),l=q(e,o,s,n,a,t);r.appendChild(l),e.actions.getMonths&&e.actions.getMonths(t,l,e)}},j=(e,t)=>e&&t?{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:"12",PM:"12"}}[Number(e)][t]:"",K=(e,t,n)=>e.querySelector(`.${t}${n?` input[name="${n}"]`:""}`),R=(e,t,n)=>{e.addEventListener("mouseover",(()=>t.classList.add(n))),e.addEventListener("mouseout",(()=>t.classList.remove(n)))},z=(e,t,n,a)=>{({hours:()=>{e.selectedHours=n},minutes:()=>{e.selectedMinutes=n}})[a](),e.selectedTime=`${e.selectedHours}:${e.selectedMinutes}${e.selectedKeeping?` ${e.selectedKeeping}`:""}`,e.actions.changeTime&&e.actions.changeTime(t,e),e.input&&e.HTMLInputElement&&e.actions.changeToInput&&e.actions.changeToInput(t,e)},G=(e,t,n,a,s,l)=>{t.addEventListener("input",(t=>{const i=t.target,r=Number(i.value),d=r<10?`0${r}`:`${r}`;if("hours"!==s||12!==l)return n.value=d,void z(e,t,d,s);r<l&&r>0?(n.value=d,e.selectedKeeping="AM",a.innerText=e.selectedKeeping,z(e,t,d,s)):(0===r?(e.selectedKeeping="AM",a.innerText="AM"):(e.selectedKeeping="PM",a.innerText="PM"),n.value=p(i.value),z(e,t,p(i.value),s))}))},Z=(e,t,n,a,s,l)=>{n.addEventListener("change",(n=>{const i=n.target,r=Number(i.value),d=r<10?`0${r}`:`${r}`;"hours"===s&&12===l?i.value&&r<=l&&r>0?(i.value=d,t.value=j(d,e.selectedKeeping),z(e,n,d,s)):i.value&&r<24&&(r>l||0===r)?(0===r?(e.selectedKeeping="AM",a.innerText="AM"):(e.selectedKeeping="PM",a.innerText="PM"),i.value=p(i.value),t.value=d,z(e,n,p(i.value),s)):i.value=e.selectedHours:i.value&&r<=l&&r>=0?(i.value=d,t.value=d,z(e,n,d,s)):"hours"===s?i.value=e.selectedHours:"minutes"===s&&(i.value=e.selectedMinutes)}))},U=(e,t,n)=>{const a=24===n?23:n||12,s=K(t,e.CSSClasses.timeRange,"hours"),l=K(t,e.CSSClasses.timeRange,"minutes"),i=K(t,e.CSSClasses.timeHours,"hours"),r=K(t,e.CSSClasses.timeMinutes,"minutes"),d=t.querySelector(`.${e.CSSClasses.timeKeeping}`);R(s,i,e.CSSClasses.isFocus),R(l,r,e.CSSClasses.isFocus),G(e,s,i,d,"hours",a),G(e,l,r,d,"minutes",0),Z(e,s,i,d,"hours",a),Z(e,l,r,d,"minutes",59),d&&((e,t,n)=>{t.addEventListener("click",(a=>{e.selectedKeeping=t.innerText.includes("AM")?"PM":"AM",t.innerText=e.selectedKeeping,n.value=j(e.selectedHours,e.selectedKeeping),z(e,a,e.selectedHours,"hours")}))})(e,d,s)},V=(e,t,n,a)=>`<label class="${t}"><input type="text"name="${e}"maxlength="2"value="${n}"${a?"disabled":""}></label>`,X=(e,t,n,a,s,l)=>`<label class="${t}"><input type="range"name="${e}"min="${n}"max="${a}"step="${s}"value="${l}"></label>`,J=e=>{const t=[...e.locale.weekday];if(!t[0])return;e.settings.iso8601&&t.push(t.shift());e.HTMLElement.querySelectorAll(`.${e.CSSClasses.week}`).forEach((n=>((e,t,n)=>{const a=document.createElement("b");t.textContent="";for(let s=0;s<n.length;s++){const l=n[s],i=a.cloneNode(!0);i.className=`${e.CSSClasses.weekDay}`,i.className=`${e.CSSClasses.weekDay}${e.settings.visibility.weekend&&e.settings.iso8601?5===s||6===s?` ${e.CSSClasses.weekDayWeekend}`:"":!e.settings.visibility.weekend||e.settings.iso8601||0!==s&&6!==s?"":` ${e.CSSClasses.weekDayWeekend}`}`,i.innerText=`${l}`,t.appendChild(i)}})(e,n,t)))},Q=["light","dark","system"],ee={value:!1,set:()=>{ee.value=!0},check:()=>ee.value},te=(e,t)=>Q.find((n=>{var a;return"system"!==n&&(null==(a=e.getAttribute(t))?void 0:a.includes(n))})),ne=(e,t)=>{e.dataset.calendarTheme=t},ae=(e,t)=>{var n;if(n=t,ne(e.HTMLElement,n.matches?"dark":"light"),"system"!==e.settings.visibility.theme||ee.check())return;const a=t=>{const n=document.querySelectorAll(`.${e.CSSClasses.calendar}`);null==n||n.forEach((e=>ne(e,t.matches?"dark":"light")))};t.addEventListener?t.addEventListener("change",a):t.addListener(a),ee.set()},se=(e,t)=>{const n=e.settings.visibility.themeDetect?document.querySelector(e.settings.visibility.themeDetect):null;if(!n)return void ae(e,t);const a=e.settings.visibility.themeDetect.replace(/^.*\[(.+)\]/g,((e,t)=>t)),s=te(n,a);s?(ne(e.HTMLElement,s),((e,t,n)=>{new MutationObserver((a=>{for(let s=0;s<a.length;s++)if(a[s].attributeName===n){const a=te(t,n);a&&ne(e.HTMLElement,a);break}})).observe(t,{attributes:!0})})(e,n,a)):ae(e,t)},le=e=>{const t={default:()=>{J(e),H(e)},multiple:()=>{J(e),H(e)},month:()=>W(e),year:()=>I(e)};(e=>{if(!Q.includes(e.settings.visibility.theme))throw new Error(b);if("not all"===window.matchMedia("(prefers-color-scheme)").media)return void ne(e.HTMLElement,"light");({light:()=>ne(e.HTMLElement,"light"),dark:()=>ne(e.HTMLElement,"dark"),system:()=>se(e,window.matchMedia("(prefers-color-scheme: dark)"))})[e.settings.visibility.theme]()})(e),(e=>{if("define"!==e.settings.lang||!e.locale.weekday[6]||!e.locale.months[11]){if("define"===e.settings.lang)throw new Error(C);e.locale.weekday=[],e.locale.months=[];for(let t=0;t<7;t++)F(e,t);for(let t=0;t<12;t++)O(e,t)}})(e),N(e),x(e),T(e),(e=>{const t=e.HTMLElement.querySelector(`.${e.CSSClasses.time}`);if(!t)return;const n=!0===e.settings.selection.time?12:e.settings.selection.time,a="range"===e.settings.selection.controlTime,[s,l]=[0,23],[i,r]=[0,59];t.innerHTML=e.sanitizer(`<div class="${e.CSSClasses.timeContent}">${V("hours",e.CSSClasses.timeHours,e.selectedHours,a)}${V("minutes",e.CSSClasses.timeMinutes,e.selectedMinutes,a)}${12===n?`<button type="button" class="${e.CSSClasses.timeKeeping}"${a?"disabled":""}>${e.selectedKeeping}</button>`:""}</div><div class="${e.CSSClasses.timeRanges}">${X("hours",e.CSSClasses.timeRange,s,l,e.settings.selection.stepHours,e.selectedKeeping?j(e.selectedHours,e.selectedKeeping):e.selectedHours)}${X("minutes",e.CSSClasses.timeRange,i,r,e.settings.selection.stepMinutes,e.selectedMinutes)}</div>`),U(e,t,n)})(e),t[e.currentType]()},ie={self:null,rangeMin:void 0,rangeMax:void 0},re=()=>{var e;if(!(null==(e=ie.self)?void 0:e.HTMLElement))return;const{CSSClasses:t}=ie.self;ie.self.HTMLElement.querySelectorAll(`.${ie.self.CSSClasses.dayBtnHover}`).forEach((e=>{var n;e.classList.remove(ie.self.CSSClasses.dayBtnHover),null==(n=e.parentElement)||n.classList.remove(t.dayHoverIntermediate,t.dayHoverFirst,t.dayHoverLast)}))},de=(e,t,n)=>{var a,s,l;if(!(null==(a=ie.self)?void 0:a.selectedDates))return;const i=g(e),{CSSClasses:r}=ie.self;if(null==(s=ie.self.rangeDisabled)?void 0:s.includes(i))return;const d=null==(l=ie.self.HTMLElement)?void 0:l.querySelectorAll(`[data-calendar-day="${i}"]`);null==d||d.forEach((e=>{var t;e.classList.add(r.dayBtnHover),null==(t=e.parentElement)||t.classList.add(r.dayHoverIntermediate)})),null==t||t.forEach((e=>{var t;return null==(t=e.parentElement)?void 0:t.classList.add(r.dayHoverFirst)})),null==n||n.forEach((e=>{var t;return null==(t=e.parentElement)?void 0:t.classList.add(r.dayHoverLast)}))},oe=e=>{var t;if(!e.target||!(null==(t=ie.self)?void 0:t.selectedDates))return;if(!e.target.closest(`.${ie.self.CSSClasses.days}`))return void re();const n=e.target.closest("[data-calendar-day]");if(!n)return;const a=n.dataset.calendarDay,s=h(ie.self.selectedDates[0]),l=h(a),i=ie.self.HTMLElement.querySelectorAll(`[data-calendar-day="${ie.self.selectedDates[0]}"]`),r=ie.self.HTMLElement.querySelectorAll(`[data-calendar-day="${a}"]`),[d,o]=s<l?[i,r]:[r,i],[c,u]=s<l?[s,l]:[l,s];re();for(let e=new Date(c);e<=u;e.setDate(e.getDate()+1))de(e,d,o)},ce=e=>{ie.self&&"Escape"===e.key&&(ie.self.selectedDates=[],ie.self.HTMLElement.removeEventListener("mousemove",oe),document.removeEventListener("keydown",ce),le(ie.self))},ue=(e,t)=>{var n;if(t){const a=1===e.selectedDates.length&&e.selectedDates[0].includes(t);e.selectedDates=a&&!e.settings.selection.cancelableDay?[t,t]:a&&e.settings.selection.cancelableDay?[]:e.selectedDates.length>1?[t]:[...e.selectedDates,t],null==(n=e.selectedDates)||n.sort(((e,t)=>+new Date(e)-+new Date(t)))}e.settings.range.disableGaps&&(ie.rangeMin=ie.rangeMin?ie.rangeMin:e.rangeMin,ie.rangeMax=ie.rangeMax?ie.rangeMax:e.rangeMax),ie.self=e;const a={set:()=>{e.HTMLElement.addEventListener("mousemove",oe),document.addEventListener("keydown",ce),e.settings.range.disableGaps&&(()=>{var e,t,n;if(!(null==(t=null==(e=ie.self)?void 0:e.selectedDates)?void 0:t[0])||!ie.self.rangeDisabled||(null==(n=ie.self.rangeDisabled)?void 0:n.length)<2)return;const a=h(ie.self.selectedDates[0]),[s,l]=ie.self.rangeDisabled.map((e=>h(e))).reduce((([e,t],n)=>[a>=n?n:e,a<n&&null===t?n:t]),[null,null]);s&&(ie.self.rangeMin=g(new Date(s.setDate(s.getDate()+1)))),l&&(ie.self.rangeMax=g(new Date(l.setDate(l.getDate()-1))))})()},reset:()=>{const[t,n]=[e.selectedDates[0],e.selectedDates[e.selectedDates.length-1]];e.selectedDates=e.selectedDates[0]!==e.selectedDates[e.selectedDates.length-1]?e.settings.range.edgesOnly?[t,n]:y([`${t}:${n}`]):[e.selectedDates[0],e.selectedDates[0]],e.HTMLElement.removeEventListener("mousemove",oe),document.removeEventListener("keydown",ce),e.settings.range.disableGaps&&ie.self&&(ie.self.rangeMin=ie.rangeMin,ie.self.rangeMax=ie.rangeMax)}};a[1===e.selectedDates.length?"set":"reset"]()},me=(e,t,n)=>{if(!t.dataset.calendarDay)return;const a=t.dataset.calendarDay,s=t.classList.contains(e.CSSClasses.dayBtnSelected);if(s&&!e.settings.selection.cancelableDay)return;let l=!0;void 0!==e.toggleSelected&&(l="function"==typeof e.toggleSelected?e.toggleSelected(e):e.toggleSelected),s&&!l||(e.selectedDates=s?e.selectedDates.filter((e=>e!==a)):n?[...e.selectedDates,a]:[a])},ge=(e,t,n,a,s)=>{const l=e.HTMLElement.querySelectorAll(`.${e.CSSClasses.column}`),i=Array.from(l).findIndex((e=>e.classList.contains(t))),r=Number(l[i].querySelector(`.${n}`).getAttribute(s));return"month"===e.currentType&&i>=0?a-i:"year"===e.currentType&&e.selectedYear!==r?a-1:a},he=(e,t,n,a)=>{if(!e.settings.selection[n])return;const s=t.target,l=e=>s.closest(`.${e}`),i=l(a.header),r=l(a.item),d=l(e.CSSClasses.grid),o=l(e.CSSClasses.column);if(e.currentType!==n&&i){({year:()=>I(e,s),month:()=>W(e,s)})[n]()}else r?((e,t,n,a,s)=>{const l={year:()=>{var n,a;return null==(a=(n=e.actions).clickYear)?void 0:a.call(n,t,e)},month:()=>{var n,a;return null==(a=(n=e.actions).clickMonth)?void 0:a.call(n,t,e)}};({year:()=>{if("multiple"===e.type){const t=ge(e,e.CSSClasses.columnYear,e.CSSClasses.year,Number(s.dataset.calendarYear),"data-calendar-selected-year"),n=e.selectedMonth<e.dateMin.getMonth()&&t<=e.dateMin.getFullYear(),a=e.selectedMonth>e.dateMax.getMonth()&&t>=e.dateMax.getFullYear(),l=t<e.dateMin.getFullYear(),i=t>e.dateMax.getFullYear();n||l?(e.selectedYear=e.dateMin.getFullYear(),e.selectedMonth=e.dateMin.getMonth()):a||i?(e.selectedYear=e.dateMax.getFullYear(),e.selectedMonth=e.dateMax.getMonth()):e.selectedYear=t}else e.selectedYear=Number(s.dataset.calendarYear)},month:()=>{if("multiple"===e.type){const t=ge(e,e.CSSClasses.columnMonth,e.CSSClasses.month,Number(s.dataset.calendarMonth),"data-calendar-selected-month"),n=s.closest(`.${a.column}`).querySelector(`.${e.CSSClasses.year}`);e.selectedYear=Number(n.dataset.calendarSelectedYear);const l=t<e.dateMin.getMonth()&&e.selectedYear<=e.dateMin.getFullYear(),i=t>e.dateMax.getMonth()&&e.selectedYear>=e.dateMax.getFullYear();e.selectedMonth=l?e.dateMin.getMonth():i?e.dateMax.getMonth():t}else e.selectedMonth=Number(s.dataset.calendarMonth)}})[n](),l[n](),e.currentType=e.type,le(e)})(e,t,n,a,r):(e.currentType===n&&i||"multiple"===e.type&&e.currentType===n&&d&&!o)&&(e.currentType=e.type,le(e))},ye=e=>{const t=t=>{((e,t)=>{const n=t.target.closest(`.${e.CSSClasses.arrow}`);n&&(["default","multiple"].includes(e.currentType)?Y(e,n.dataset.calendarArrow):"year"===e.currentType&&void 0!==e.viewYear&&(e.viewYear+={prev:-15,next:15}[n.dataset.calendarArrow],I(e,t.target)),e.actions.clickArrow&&e.actions.clickArrow(t,e))})(e,t),((e,t)=>{var n;if(!e.settings.visibility.weekNumbers||!e.actions.clickWeekNumber)return;const a=t.target.closest(`.${e.CSSClasses.weekNumber}`),s=null==(n=e.HTMLElement)?void 0:n.querySelectorAll("[data-calendar-week-number]");if(!a||!s)return;const l=Number(a.innerText),i=Number(a.dataset.calendarYearWeek),r=Array.from(s).filter((e=>Number(e.dataset.calendarWeekNumber)===l));e.actions.clickWeekNumber(t,l,r,i,e)})(e,t),((e,t)=>{var n;const a=t.target,s=e=>a.closest(`.${e}`),l=s(e.CSSClasses.dayBtn);if(!e.settings.selection.day||!["single","multiple","multiple-ranged"].includes(e.settings.selection.day)||!l)return;({single:()=>me(e,l,!1),multiple:()=>me(e,l,!0),"multiple-ranged":()=>ue(e,l.dataset.calendarDay)})[e.settings.selection.day](),null==(n=e.selectedDates)||n.sort(((e,t)=>+new Date(e)-+new Date(t))),e.actions.clickDay&&e.actions.clickDay(t,e),e.input&&e.HTMLInputElement&&e.HTMLElement&&e.actions.changeToInput&&e.actions.changeToInput(t,e);const i=s(e.CSSClasses.dayBtnPrev),r=s(e.CSSClasses.dayBtnNext);({prev:()=>Y(e,"prev"),next:()=>Y(e,"next"),default:()=>H(e)})[i?"prev":r?"next":"default"]()})(e,t),he(e,t,"month",{header:e.CSSClasses.month,item:e.CSSClasses.monthsMonth,column:e.CSSClasses.columnMonth}),he(e,t,"year",{header:e.CSSClasses.year,item:e.CSSClasses.yearsYear,column:e.CSSClasses.columnYear})};return e.HTMLElement.addEventListener("click",t),()=>e.HTMLElement.removeEventListener("click",t)},ve=(e,{year:t,month:n,dates:a,holidays:s,time:l}={})=>{var r;const d=i({},e.settings.selected);e.settings.selected.year=t?d.year:e.selectedYear,e.settings.selected.month=n?d.month:e.selectedMonth,e.settings.selected.holidays=s?d.holidays:e.selectedHolidays,e.settings.selected.time=l?d.time:e.selectedTime,e.settings.selected.dates="only-first"===a&&(null==(r=e.selectedDates)?void 0:r[0])?[e.selectedDates[0]]:!0===a?d.dates:e.selectedDates,w(e),le(e),e.settings.selected=d,"multiple-ranged"===e.settings.selection.day&&a&&ue(e)};function pe(e){if(!e||!e.getBoundingClientRect)return;const t=e.getBoundingClientRect(),n=document.documentElement;return{bottom:t.bottom,right:t.right,top:t.top+window.pageYOffset-n.clientTop,left:t.left+window.pageXOffset-n.clientLeft}}function Se(){return{vw:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),vh:Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)}}function Me(e){var t,n;let a=0,s=0,l=0,i=0;const r={left:window.pageXOffset||document.documentElement.scrollLeft||0,top:window.pageYOffset||document.documentElement.scrollTop||0},d=pe(e),{vh:o,vw:c}=Se(),u=r.top,m=r.left;if(d){const r=null!=(t=d.top)?t:0,g=null!=(n=d.left)?n:0;s=r-u,l=g-m,a=o-(r-u+e.clientHeight),i=c-(g-m+e.clientWidth)}return{top:s,bottom:a,left:l,right:i}}function Ce(e,t){let n="left";if(t&&e){const{canShow:a,parentPositions:s}=function(e,t,n=5){const a={top:!0,bottom:!0,left:!0,right:!0},s=[];if(t&&e){const{bottom:l,top:i}=Me(e),{top:r,left:d}=pe(e),{height:o,width:c}=t.getBoundingClientRect(),{vh:u,vw:m}=Se(),g={x:m/2,y:u/2};r<g.y&&s.push("top"),r>g.y&&s.push("bottom"),d<g.x&&s.push("left"),d>g.x&&s.push("right"),o>i-n&&(a.top=!1),o>l-n&&(a.bottom=!1),c>d&&(a.left=!1),m-d<c&&(a.right=!1)}return{canShow:a,parentPositions:s}}(e,t);if(!a.left||!a.right)return Array.isArray(s)?(s[0]="bottom"===s[0]?"top":"bottom",s):s;a.bottom?n="center":a.top&&(n=["top","center"])}return n}const be=(e,t,n,a)=>{if(e){const s="auto"===n?Ce(e,t):n,l={top:-t.offsetHeight,bottom:e.offsetHeight,left:0,center:e.offsetWidth/2-t.offsetWidth/2,right:e.offsetWidth-t.offsetWidth},i=Array.isArray(s)?s[0]:"bottom",r=Array.isArray(s)?s[1]:s;t.classList.add("bottom"===i?a.calendarToInputBottom:a.calendarToInputTop);const d=e.getBoundingClientRect(),o=window.scrollX||document.documentElement.scrollLeft,c=window.scrollY||document.documentElement.scrollTop,u=d.top+c+l[i],m=d.left+o+l[r];Object.assign(t.style,{left:`${m}px`,top:`${u}px`})}},fe=e=>{let t=!0;const n=[];e.HTMLInputElement=e.HTMLElement;const a=()=>be(e.HTMLInputElement,e.HTMLElement,e.settings.visibility.positionToInput,e.CSSClasses),s=t=>{var n;e&&t.target!==e.HTMLInputElement&&!(null==(n=e.HTMLElement)?void 0:n.contains(t.target))&&(e.HTMLInputElement&&e.HTMLElement&&e.hide(),window.removeEventListener("resize",a),document.removeEventListener("click",s,{capture:!0}))};return e.HTMLInputElement.addEventListener("click",(()=>{t?n.push((()=>{const n=document.createElement("div");return n.className=`${e.CSSClasses.calendar} ${e.CSSClasses.calendarToInput} ${e.CSSClasses.calendarHidden}`,e.HTMLElement=n,document.body.appendChild(e.HTMLElement),t=!1,e.HTMLElement.style.visibility="hidden",setTimeout((()=>{be(e.HTMLInputElement,n,e.settings.visibility.positionToInput,e.CSSClasses),e.HTMLElement.style.visibility="visible",e.show()}),0),ve(e,{year:!0,month:!0,dates:!0,holidays:!0,time:!0}),e.actions.initCalendar&&e.actions.initCalendar(e),ye(e)})()):(be(e.HTMLInputElement,e.HTMLElement,e.settings.visibility.positionToInput,e.CSSClasses),e.show()),window.addEventListener("resize",a),document.addEventListener("click",s,{capture:!0})})),()=>{n.forEach((e=>e()))}};function we(e,...t){const n=e=>e&&"object"==typeof e&&!Array.isArray(e);if(!t.length)return e;const a=t.shift();return n(e)&&n(a)&&Object.keys(a).forEach((t=>{n(a[t])?(e[t]||Object.assign(e,{[t]:{}}),we(e[t],a[t])):Object.assign(e,{[t]:a[t]})})),we(e,...t)}function De(e,t,n){e.settings=we(e.settings,{[t]:n})}e.VanillaCalendar=class extends m{constructor(e,t){if(super(),r(this,"init",(()=>{return(e=this).HTMLOriginalElement=e.HTMLElement.cloneNode(!0),e.isInit=!0,e.input?fe(e):(w(e),le(e),e.actions.initCalendar&&e.actions.initCalendar(e),ye(e));var e})),r(this,"update",(e=>((e,{year:t,month:n,dates:a,holidays:s,time:l}={})=>{if(!e.isInit)throw new Error(M);ve(e,{year:t,month:n,dates:a,holidays:s,time:l}),e.actions.updateCalendar&&e.actions.updateCalendar(e)})(this,e))),r(this,"destroy",(()=>(e=>{var t,n,a,s,l,i;if(!e.isInit)throw new Error(M);e.input?(null==(n=null==(t=e.HTMLElement)?void 0:t.parentElement)||n.removeChild(e.HTMLElement),null==(s=null==(a=e.HTMLInputElement)?void 0:a.replaceWith)||s.call(a,e.HTMLOriginalElement),e.HTMLInputElement=void 0):null==(i=null==(l=e.HTMLElement)?void 0:l.replaceWith)||i.call(l,e.HTMLOriginalElement),e.HTMLElement=e.HTMLOriginalElement,e.actions.destroyCalendar&&e.actions.destroyCalendar(e)})(this))),r(this,"show",(()=>{var e;(e=this).currentType?(e.HTMLElement.classList.remove(e.CSSClasses.calendarHidden),e.actions.showCalendar&&e.actions.showCalendar(e)):e.HTMLElement.click()})),r(this,"hide",(()=>{var e;(e=this).currentType&&(e.HTMLElement.classList.add(e.CSSClasses.calendarHidden),e.actions.hideCalendar&&e.actions.hideCalendar(e))})),r(this,"changeSetting",((e,t)=>De(this,e,t))),this.HTMLElement="string"==typeof e?document.querySelector(e):e,!this.HTMLElement)throw new Error(S(e));if(!t)return;const n=(e,t)=>{Object.keys(t).forEach((a=>{"object"!=typeof e[a]||"object"!=typeof t[a]||t[a]instanceof Date?e[a]=t[a]:n(e[a],t[a])}))};n(this,t)}},Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
{
"name": "vanilla-calendar-picker",
"version": "2.11.5",
"version": "2.11.6",
"description": "Vanilla Calendar is a versatile JavaScript date and time picker with TypeScript support, making it compatible with any JavaScript framework or library. It is designed to be lightweight, simple to use, and feature-rich without relying on external dependencies.",

@@ -5,0 +5,0 @@ "homepage": "https://github.com/ghiscoding/vanilla-calendar-picker",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc