{e.classList.remove(...i)})):e.classList.remove(...i)}(this.$el.querySelectorAll(".air-datepicker-nav--action"),"-disabled-")}_buildBaseHtml(){let{prevHtml:e,nextHtml:t}=this.opts;this.$el.innerHTML=''.concat(e,"
")+''+''.concat(t,"
")}get isNavIsFunction(){let{navTitles:e}=this.opts;return Object.keys(e).find((t=>"function"==typeof e[t]))}}var S={today:{content:e=>e.locale.today,onClick:e=>e.setViewDate(new Date)},clear:{content:e=>e.locale.clear,onClick:e=>e.clear()}};class ${constructor(e){let{dp:t,opts:i}=e;this.dp=t,this.opts=i,this.init()}init(){this.createElement(),this.render()}createElement(){this.$el=n({className:"air-datepicker-buttons"})}destroy(){this.$el.parentNode.removeChild(this.$el)}clearHtml(){return this.$el.innerHTML="",this}generateButtons(){let{buttons:e}=this.opts;Array.isArray(e)||(e=[e]),e.forEach((e=>{let t=e;"string"==typeof e&&S[e]&&(t=S[e]);let i=this.createButton(t);t.onClick&&this.attachEventToButton(i,t.onClick),this.$el.appendChild(i)}))}attachEventToButton(e,t){e.addEventListener("click",(()=>{t(this.dp)}))}createButton(e){let{content:t,className:i,tagName:s="button",attrs:a={}}=e,r="function"==typeof t?t(this.dp):t;return n({tagName:s,innerHtml:"".concat(r,""),className:c("air-datepicker-button",i),attrs:a})}render(){this.generateButtons()}}function A(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class F{constructor(){let{opts:e,dp:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};A(this,"toggleTimepickerIsActive",(e=>{this.dp.timepickerIsActive=e})),A(this,"onChangeSelectedDate",(e=>{let{date:t,updateTime:i=!1}=e;t&&(this.setMinMaxTime(t),this.setCurrentTime(!!i&&t),this.addTimeToDate(t))})),A(this,"onChangeLastSelectedDate",(e=>{e&&(this.setTime(e),this.render())})),A(this,"onChangeInputRange",(e=>{let t=e.target;this[t.getAttribute("name")]=t.value,this.updateText(),this.dp.trigger(i.eventChangeTime,{hours:this.hours,minutes:this.minutes})})),A(this,"onMouseEnterLeave",(e=>{let t=e.target.getAttribute("name"),i=this.$minutesText;"hours"===t&&(i=this.$hoursText),i.classList.toggle("-focus-")})),A(this,"onFocus",(()=>{this.toggleTimepickerIsActive(!0)})),A(this,"onBlur",(()=>{this.toggleTimepickerIsActive(!1)})),this.opts=e,this.dp=t;let{timeFormat:s}=this.dp.locale;s&&(s.match(w("h"))||s.match(w("hh")))&&(this.ampm=!0),this.init()}init(){this.setTime(this.dp.lastSelectedDate||this.dp.viewDate),this.createElement(),this.buildHtml(),this.defineDOM(),this.render(),this.bindDatepickerEvents(),this.bindDOMEvents()}bindDatepickerEvents(){this.dp.on(i.eventChangeSelectedDate,this.onChangeSelectedDate),this.dp.on(i.eventChangeLastSelectedDate,this.onChangeLastSelectedDate)}bindDOMEvents(){let e="input";navigator.userAgent.match(/trident/gi)&&(e="change"),g(this.$ranges,e,this.onChangeInputRange),g(this.$ranges,"mouseenter",this.onMouseEnterLeave),g(this.$ranges,"mouseleave",this.onMouseEnterLeave),g(this.$ranges,"focus",this.onFocus),g(this.$ranges,"mousedown",this.onFocus),g(this.$ranges,"blur",this.onBlur)}createElement(){this.$el=n({className:c("air-datepicker-time",{"-am-pm-":this.dp.ampm})})}destroy(){this.dp.off(i.eventChangeSelectedDate,this.onChangeSelectedDate),this.dp.off(i.eventChangeLastSelectedDate,this.onChangeLastSelectedDate),this.$el.parentNode.removeChild(this.$el)}buildHtml(){let{ampm:e,hours:t,displayHours:i,minutes:s,minHours:a,minMinutes:n,maxHours:r,maxMinutes:o,dayPeriod:l,opts:{hoursStep:d,minutesStep:c}}=this;this.$el.innerHTML=''+' '.concat(h(i),"")+' :'+' '.concat(h(s),"")+" ".concat(e?"".concat(l,""):"")+'
"}defineDOM(){let e=e=>a(e,this.$el);this.$ranges=this.$el.querySelectorAll('[type="range"]'),this.$hours=e('[name="hours"]'),this.$minutes=e('[name="minutes"]'),this.$hoursText=e(".air-datepicker-time--current-hours"),this.$minutesText=e(".air-datepicker-time--current-minutes"),this.$ampm=e(".air-datepicker-time--current-ampm")}setTime(e){this.setMinMaxTime(e),this.setCurrentTime(e)}addTimeToDate(e){e&&(e.setHours(this.hours),e.setMinutes(this.minutes))}setMinMaxTime(e){if(this.setMinMaxTimeFromOptions(),e){let{minDate:t,maxDate:i}=this.dp;t&&u(e,t)&&this.setMinTimeFromMinDate(t),i&&u(e,i)&&this.setMaxTimeFromMaxDate(i)}}setCurrentTime(e){let{hours:t,minutes:i}=e?l(e):this;this.hours=y(t,this.minHours,this.maxHours),this.minutes=y(i,this.minMinutes,this.maxMinutes)}setMinMaxTimeFromOptions(){let{minHours:e,minMinutes:t,maxHours:i,maxMinutes:s}=this.opts;this.minHours=y(e,0,23),this.minMinutes=y(t,0,59),this.maxHours=y(i,0,23),this.maxMinutes=y(s,0,59)}setMinTimeFromMinDate(e){let{lastSelectedDate:t}=this.dp;this.minHours=e.getHours(),t&&t.getHours()>e.getHours()?this.minMinutes=this.opts.minMinutes:this.minMinutes=e.getMinutes()}setMaxTimeFromMaxDate(e){let{lastSelectedDate:t}=this.dp;this.maxHours=e.getHours(),t&&t.getHours()11:a="pm"}s=s%12==0?12:s%12}return{hours:s,dayPeriod:a}}updateSliders(){r(this.$hours,{min:this.minHours,max:this.maxHours}).value=this.hours,r(this.$minutes,{min:this.minMinutes,max:this.maxMinutes}).value=this.minutes}updateText(){this.$hoursText.innerHTML=h(this.displayHours),this.$minutesText.innerHTML=h(this.minutes),this.ampm&&(this.$ampm.innerHTML=this.dayPeriod)}set hours(e){this._hours=e;let{hours:t,dayPeriod:i}=this.getDayPeriod(e);this.displayHours=t,this.dayPeriod=i}get hours(){return this._hours}render(){this.updateSliders(),this.updateText()}}function V(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class O{constructor(e){let{dp:t,opts:i}=e;V(this,"pressedKeys",new Set),V(this,"hotKeys",new Map([[[["Control","ArrowRight"],["Control","ArrowUp"]],e=>e.month++],[[["Control","ArrowLeft"],["Control","ArrowDown"]],e=>e.month--],[[["Shift","ArrowRight"],["Shift","ArrowUp"]],e=>e.year++],[[["Shift","ArrowLeft"],["Shift","ArrowDown"]],e=>e.year--],[[["Alt","ArrowRight"],["Alt","ArrowUp"]],e=>e.year+=10],[[["Alt","ArrowLeft"],["Alt","ArrowDown"]],e=>e.year-=10],[["Control","Shift","ArrowUp"],(e,t)=>t.up()]])),V(this,"handleHotKey",(e=>{let t=this.hotKeys.get(e),i=l(this.getInitialFocusDate());t(i,this.dp);let{year:s,month:a,date:n}=i,r=o(new Date(s,a));r{let e=!1,t=this.pressedKeys.size,i=e=>this.pressedKeys.has(e);for(let[s]of this.hotKeys){if(e)break;if(Array.isArray(s[0]))s.forEach((a=>{e||t!==a.length||(e=a.every(i)&&s)}));else{if(t!==s.length)continue;e=s.every(i)&&s}}return e})),V(this,"isArrow",(e=>e>=37&&e<=40)),V(this,"onKeyDown",(e=>{let{key:t,which:i}=e,{dp:s,dp:{focusDate:a},opts:n}=this;this.registerKey(t);let r=this.isHotKeyPressed();if(r)return e.preventDefault(),void this.handleHotKey(r);if(this.isArrow(i))return e.preventDefault(),void this.focusNextCell(t);if("Enter"===t){if(s.currentView!==n.minView)return void s.down();if(a){let e=s._checkIfDateIsSelected(a);return void(e?s._handleAlreadySelectedDates(e,a):s.selectDate(a))}}"Escape"===t&&this.dp.hide()})),V(this,"onKeyUp",(e=>{this.removeKey(e.key)})),this.dp=t,this.opts=i,this.init()}init(){this.bindKeyboardEvents()}bindKeyboardEvents(){let{$el:e}=this.dp;e.addEventListener("keydown",this.onKeyDown),e.addEventListener("keyup",this.onKeyUp)}destroy(){let{$el:e}=this.dp;e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("keyup",this.onKeyUp),this.hotKeys=null,this.pressedKeys=null}getInitialFocusDate(){let{focusDate:e,currentView:t,selectedDates:s,parsedViewDate:{year:a,month:n}}=this.dp,r=e||s[s.length-1];if(!r)switch(t){case i.days:r=new Date(a,n,(new Date).getDate());break;case i.months:r=new Date(a,n,1);break;case i.years:r=new Date(a,0,1)}return r}focusNextCell(e){let t=this.getInitialFocusDate(),{currentView:s}=this.dp,{days:a,months:n,years:r}=i,o=l(t),h=o.year,d=o.month,c=o.date;switch(e){case"ArrowLeft":s===a&&(c-=1),s===n&&(d-=1),s===r&&(h-=1);break;case"ArrowUp":s===a&&(c-=7),s===n&&(d-=3),s===r&&(h-=4);break;case"ArrowRight":s===a&&(c+=1),s===n&&(d+=1),s===r&&(h+=1);break;case"ArrowDown":s===a&&(c+=7),s===n&&(d+=3),s===r&&(h+=4)}let u=this.dp.getClampedDate(new Date(h,d,c));this.dp.setFocusDate(u,{viewDateTransition:!0})}registerKey(e){this.pressedKeys.add(e)}removeKey(e){this.pressedKeys.delete(e)}}let H={on(e,t){this.__events||(this.__events={}),this.__events[e]?this.__events[e].push(t):this.__events[e]=[t]},off(e,t){this.__events&&this.__events[e]&&(this.__events[e]=this.__events[e].filter((e=>e!==t)))},removeAllEvents(){this.__events={}},trigger(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s{e(...i)}))}};function N(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}let I="",B="",R="",j=!1;class P{constructor(e,t){var r=this;if(N(this,"viewIndexes",[i.days,i.months,i.years]),N(this,"next",(()=>{let{year:e,month:t}=this.parsedViewDate;switch(this.currentView){case i.days:this.setViewDate(new Date(e,t+1,1));break;case i.months:this.setViewDate(new Date(e+1,t,1));break;case i.years:this.setViewDate(new Date(e+10,0,1))}})),N(this,"prev",(()=>{let{year:e,month:t}=this.parsedViewDate;switch(this.currentView){case i.days:this.setViewDate(new Date(e,t-1,1));break;case i.months:this.setViewDate(new Date(e-1,t,1));break;case i.years:this.setViewDate(new Date(e-10,0,1))}})),N(this,"_finishHide",(()=>{this.hideAnimation=!1,this._destroyComponents(),this.$container.removeChild(this.$datepicker)})),N(this,"setPosition",(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("function"==typeof(e=e||r.opts.position))return void(r.customHide=e({$datepicker:r.$datepicker,$target:r.$el,$pointer:r.$pointer,isViewChange:t,done:r._finishHide}));let i,s,{isMobile:a}=r.opts,n=r.$el.getBoundingClientRect(),o=r.$el.getBoundingClientRect(),l=r.$datepicker.offsetParent,h=r.$el.offsetParent,d=r.$datepicker.getBoundingClientRect(),c=e.split(" "),u=window.scrollY,p=window.scrollX,m=r.opts.offset,v=c[0],g=c[1];if(a)r.$datepicker.style.cssText="left: 50%; top: 50%";else{if(l===h&&l!==document.body&&(o={top:r.$el.offsetTop,left:r.$el.offsetLeft,width:n.width,height:r.$el.offsetHeight},u=0,p=0),l!==h&&l!==document.body){let e=l.getBoundingClientRect();o={top:n.top-e.top,left:n.left-e.left,width:n.width,height:n.height},u=0,p=0}switch(v){case"top":i=o.top-d.height-m;break;case"right":s=o.left+o.width+m;break;case"bottom":i=o.top+o.height+m;break;case"left":s=o.left-d.width-m}switch(g){case"top":i=o.top;break;case"right":s=o.left+o.width-d.width;break;case"bottom":i=o.top+o.height-d.height;break;case"left":s=o.left;break;case"center":/left|right/.test(v)?i=o.top+o.height/2-d.height/2:s=o.left+o.width/2-d.width/2}r.$datepicker.style.cssText="left: ".concat(s+p,"px; top: ").concat(i+u,"px")}})),N(this,"_setInputValue",(()=>{let{opts:e,$altField:t,locale:{dateFormat:i}}=this,{altFieldDateFormat:s,altField:a}=e;a&&t&&(t.value=this._getInputValue(s)),this.$el.value=this._getInputValue(i)})),N(this,"_getInputValue",(e=>{let{selectedDates:t,opts:i}=this,{multipleDates:s,multipleDatesSeparator:a}=i;if(!t.length)return"";let n="function"==typeof e,r=n?e(s?t:t[0]):t.map((t=>this.formatDate(t,e)));return r=n?r:r.join(a),r})),N(this,"_checkIfDateIsSelected",(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.days,s=!1;return r.selectedDates.some((i=>{let a=u(e,i,t);return s=a&&i,a})),s})),N(this,"_scheduleCallAfterTransition",(e=>{this._cancelScheduledCall(),e&&e(!1),this._onTransitionEnd=()=>{e&&e(!0)},this.$datepicker.addEventListener("transitionend",this._onTransitionEnd,{once:!0})})),N(this,"_cancelScheduledCall",(()=>{this.$datepicker.removeEventListener("transitionend",this._onTransitionEnd)})),N(this,"setViewDate",(e=>{if(!((e=b(e))instanceof Date))return;if(u(e,this.viewDate))return;let t=this.viewDate;this.viewDate=e;let{onChangeViewDate:s}=this.opts;if(s){let{month:e,year:t}=this.parsedViewDate;s({month:e,year:t,decade:this.curDecade})}this.trigger(i.eventChangeViewDate,e,t)})),N(this,"setFocusDate",(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(!e||(e=b(e))instanceof Date)&&(r.focusDate=e,r.opts.range&&e&&r._handleRangeOnFocus(),r.trigger(i.eventChangeFocusDate,e,t))})),N(this,"setCurrentView",(e=>{if(this.viewIndexes.includes(e)){if(this.currentView=e,this.elIsInput&&this.visible&&this.setPosition(void 0,!0),this.trigger(i.eventChangeCurrentView,e),!this.views[e]){let t=this.views[e]=new T({dp:this,opts:this.opts,type:e});this.shouldUpdateDOM&&this.$content.appendChild(t.$el)}this.opts.onChangeView&&this.opts.onChangeView(e)}})),N(this,"_updateLastSelectedDate",(e=>{this.lastSelectedDate=e,this.trigger(i.eventChangeLastSelectedDate,e)})),N(this,"destroy",(()=>{let{showEvent:e,isMobile:t}=this.opts,i=this.$datepicker.parentNode;i&&i.removeChild(this.$datepicker),this.$el.removeEventListener(e,this._onFocus),this.$el.removeEventListener("blur",this._onBlur),window.removeEventListener("resize",this._onResize),t&&this._removeMobileAttributes(),this.keyboardNav&&this.keyboardNav.destroy(),this.views=null,this.nav=null,this.$datepicker=null,this.opts=null,this.$customContainer=null,this.viewDate=null,this.focusDate=null,this.selectedDates=null,this.rangeDateFrom=null,this.rangeDateTo=null})),N(this,"update",(e=>{let t=D({},this.opts);D(this.opts,e);let{timepicker:s,buttons:a,range:n,selectedDates:r,isMobile:o}=this.opts,l=this.visible||this.treatAsInline;this._createMinMaxDates(),this._limitViewDateByMaxMinDates(),this._handleLocale(),!t.selectedDates&&r&&this.selectDate(r),e.view&&this.setCurrentView(e.view),this._setInputValue(),t.range&&!n?(this.rangeDateTo=!1,this.rangeDateFrom=!1):!t.range&&n&&this.selectedDates.length&&(this.rangeDateFrom=this.selectedDates[0],this.rangeDateTo=this.selectedDates[1]),t.timepicker&&!s?(l&&this.timepicker.destroy(),this.timepicker=!1,this.$timepicker.parentNode.removeChild(this.$timepicker)):!t.timepicker&&s&&this._addTimepicker(),!t.buttons&&a?this._addButtons():t.buttons&&!a?(this.buttons.destroy(),this.$buttons.parentNode.removeChild(this.$buttons)):l&&t.buttons&&a&&this.buttons.clearHtml().render(),!t.isMobile&&o?(this.treatAsInline||R||this._createMobileOverlay(),this._addMobileAttributes(),this.visible&&this._showMobileOverlay()):t.isMobile&&!o&&(this._removeMobileAttributes(),this.visible&&(R.classList.remove("-active-"),"function"!=typeof this.opts.position&&this.setPosition())),l&&(this.nav.update(),this.views[this.currentView].render(),this.currentView===i.days&&this.views[this.currentView].renderDayNames())})),N(this,"isOtherMonth",(e=>{let{month:t}=l(e);return t!==this.parsedViewDate.month})),N(this,"isOtherYear",(e=>{let{year:t}=l(e);return t!==this.parsedViewDate.year})),N(this,"isOtherDecade",(e=>{let{year:t}=l(e),[i,s]=d(this.viewDate);return ts})),N(this,"_onChangeSelectedDate",(e=>{let{silent:t}=e;setTimeout((()=>{this._setInputValue(),this.opts.onSelect&&!t&&this._triggerOnSelect()}))})),N(this,"_onChangeFocusedDate",(function(e){let{viewDateTransition:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return;let i=!1;t&&(i=r.isOtherMonth(e)||r.isOtherYear(e)||r.isOtherDecade(e)),i&&r.setViewDate(e)})),N(this,"_onChangeTime",(e=>{let{hours:t,minutes:i}=e,s=new Date,{lastSelectedDate:a,opts:{onSelect:n}}=this,r=a;a||(r=s);let o=this.getCell(r,this.currentViewSingular),l=o&&o.adpCell;l&&l.isDisabled||(r.setHours(t),r.setMinutes(i),a?(this._setInputValue(),n&&this._triggerOnSelect()):this.selectDate(r))})),N(this,"_onFocus",(e=>{this.visible||this.show()})),N(this,"_onBlur",(e=>{this.inFocus||!this.visible||this.opts.isMobile||this.hide()})),N(this,"_onMouseDown",(e=>{this.inFocus=!0})),N(this,"_onMouseUp",(e=>{this.inFocus=!1,this.$el.focus()})),N(this,"_onResize",(()=>{this.visible&&"function"!=typeof this.opts.position&&this.setPosition()})),N(this,"_onClickOverlay",(()=>{this.visible&&this.hide()})),N(this,"isWeekend",(e=>this.opts.weekends.includes(e))),N(this,"getClampedDate",(e=>{let{minDate:t,maxDate:i}=this,s=e;return i&&p(e,i)?s=i:t&&m(e,t)&&(s=t),s})),this.$el=a(e),!this.$el)return;this.$datepicker=n({className:"air-datepicker"}),this.opts=D({},s,t),this.$customContainer=!!this.opts.container&&a(this.opts.container),this.$altField=a(this.opts.altField||!1),I||(I=a("body"));let{view:o,startDate:h}=this.opts;h||(this.opts.startDate=new Date),"INPUT"===this.$el.nodeName&&(this.elIsInput=!0),this.inited=!1,this.visible=!1,this.viewDate=b(this.opts.startDate),this.focusDate=!1,this.initialReadonly=this.$el.getAttribute("readonly"),this.customHide=!1,this.currentView=o,this.selectedDates=[],this.views={},this.keys=[],this.rangeDateFrom="",this.rangeDateTo="",this.timepickerIsActive=!1,this.treatAsInline=this.opts.inline||!this.elIsInput,this.init()}init(){let{opts:e,treatAsInline:t,opts:{inline:i,isMobile:s,selectedDates:a,keyboardNav:r,onlyTimepicker:o}}=this;var l;j||i||!this.elIsInput||(j=!0,B=n({className:l=P.defaultContainerId,id:l}),I.appendChild(B)),!s||R||t||this._createMobileOverlay(),this._handleLocale(),this._bindSubEvents(),this._createMinMaxDates(),this._limitViewDateByMaxMinDates(),this.elIsInput&&(i||this._bindEvents(),r&&!o&&(this.keyboardNav=new O({dp:this,opts:e}))),a&&this.selectDate(a,{silent:!0}),this.opts.visible&&!t&&this.show(),s&&!t&&this.$el.setAttribute("readonly",!0),t&&this._createComponents()}_createMobileOverlay(){R=n({className:"air-datepicker-overlay"}),B.appendChild(R)}_createComponents(){let{opts:e,treatAsInline:t,opts:{inline:i,buttons:s,timepicker:a,position:n,classes:r,onlyTimepicker:o,isMobile:l}}=this;this._buildBaseHtml(),this.elIsInput&&(i||this._setPositionClasses(n)),!i&&this.elIsInput||this.$datepicker.classList.add("-inline-"),r&&this.$datepicker.classList.add(...r.split(" ")),o&&this.$datepicker.classList.add("-only-timepicker-"),l&&!t&&this._addMobileAttributes(),this.views[this.currentView]=new T({dp:this,type:this.currentView,opts:e}),this.nav=new E({dp:this,opts:e}),a&&this._addTimepicker(),s&&this._addButtons(),this.$content.appendChild(this.views[this.currentView].$el),this.$nav.appendChild(this.nav.$el)}_destroyComponents(){for(let e in this.views)this.views[e].destroy();this.views={},this.nav.destroy(),this.timepicker&&this.timepicker.destroy()}_addMobileAttributes(){R.addEventListener("click",this._onClickOverlay),this.$datepicker.classList.add("-is-mobile-"),this.$el.setAttribute("readonly",!0)}_removeMobileAttributes(){R.removeEventListener("click",this._onClickOverlay),this.$datepicker.classList.remove("-is-mobile-"),this.initialReadonly||""===this.initialReadonly||this.$el.removeAttribute("readonly")}_createMinMaxDates(){let{minDate:e,maxDate:t}=this.opts;this.minDate=!!e&&b(e),this.maxDate=!!t&&b(t)}_addTimepicker(){this.$timepicker=n({className:"air-datepicker--time"}),this.$datepicker.appendChild(this.$timepicker),this.timepicker=new F({dp:this,opts:this.opts}),this.$timepicker.appendChild(this.timepicker.$el)}_addButtons(){this.$buttons=n({className:"air-datepicker--buttons"}),this.$datepicker.appendChild(this.$buttons),this.buttons=new $({dp:this,opts:this.opts}),this.$buttons.appendChild(this.buttons.$el)}_bindSubEvents(){this.on(i.eventChangeSelectedDate,this._onChangeSelectedDate),this.on(i.eventChangeFocusDate,this._onChangeFocusedDate),this.on(i.eventChangeTime,this._onChangeTime)}_buildBaseHtml(){let{inline:e}=this.opts;var t,i;this.elIsInput?e?(t=this.$datepicker,(i=this.$el).parentNode.insertBefore(t,i.nextSibling)):this.$container.appendChild(this.$datepicker):this.$el.appendChild(this.$datepicker),this.$datepicker.innerHTML='',this.$content=a(".air-datepicker--content",this.$datepicker),this.$pointer=a(".air-datepicker--pointer",this.$datepicker),this.$nav=a(".air-datepicker--navigation",this.$datepicker)}_handleLocale(){let{locale:e,dateFormat:t,firstDay:i,timepicker:s,onlyTimepicker:a,timeFormat:n,dateTimeSeparator:r}=this.opts;var o;this.locale=(o=e,JSON.parse(JSON.stringify(o))),t&&(this.locale.dateFormat=t),void 0!==n&&""!==n&&(this.locale.timeFormat=n);let{timeFormat:l}=this.locale;if(""!==i&&(this.locale.firstDay=i),s&&"function"!=typeof t){let e=l?r:"";this.locale.dateFormat=[this.locale.dateFormat,l||""].join(e)}a&&"function"!=typeof t&&(this.locale.dateFormat=this.locale.timeFormat)}_setPositionClasses(e){if("function"==typeof e)return void this.$datepicker.classList.add("-custom-position-");let t=(e=e.split(" "))[0],i=e[1],s="air-datepicker -".concat(t,"-").concat(i,"- -from-").concat(t,"-");this.$datepicker.classList.add(...s.split(" "))}_bindEvents(){this.$el.addEventListener(this.opts.showEvent,this._onFocus),this.$el.addEventListener("blur",this._onBlur),this.$datepicker.addEventListener("mousedown",this._onMouseDown),this.$datepicker.addEventListener("mouseup",this._onMouseUp),window.addEventListener("resize",this._onResize)}_limitViewDateByMaxMinDates(){let{viewDate:e,minDate:t,maxDate:i}=this;i&&p(e,i)&&this.setViewDate(i),t&&m(e,t)&&this.setViewDate(t)}formatDate(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.viewDate,t=arguments.length>1?arguments[1]:void 0;if(e=b(e),!(e instanceof Date))return;let i=t,s=this.locale,a=l(e),n=d(e),r=P.replacer,o="am";this.opts.timepicker&&this.timepicker&&(o=this.timepicker.getDayPeriod(e).dayPeriod);let h={T:e.getTime(),m:a.minutes,mm:a.fullMinutes,h:a.hours12,hh:a.fullHours12,H:a.hours,HH:a.fullHours,aa:o,AA:o.toUpperCase(),E:s.daysShort[a.day],EEEE:s.days[a.day],d:a.date,dd:a.fullDate,M:a.month+1,MM:a.fullMonth,MMM:s.monthsShort[a.month],MMMM:s.months[a.month],yy:a.year.toString().slice(-2),yyyy:a.year,yyyy1:n[0],yyyy2:n[1]};for(let[e,t]of Object.entries(h))i=r(i,w(e),t);return i}down(e){this._handleUpDownActions(e,"down")}up(e){this._handleUpDownActions(e,"up")}selectDate(e){let t,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{currentView:a,parsedViewDate:n,selectedDates:r}=this,{updateTime:o}=s,{moveToOtherMonthsOnSelect:l,moveToOtherYearsOnSelect:h,multipleDates:d,range:c,autoClose:u}=this.opts,m=r.length;if(Array.isArray(e))return e.forEach((e=>{this.selectDate(e,s)})),new Promise((e=>{setTimeout(e)}));if((e=b(e))instanceof Date){if(a===i.days&&e.getMonth()!==n.month&&l&&(t=new Date(e.getFullYear(),e.getMonth(),1)),a===i.years&&e.getFullYear()!==n.year&&h&&(t=new Date(e.getFullYear(),0,1)),t&&this.setViewDate(t),d&&!c){if(m===d)return;this._checkIfDateIsSelected(e)||r.push(e)}else if(c)switch(m){case 1:r.push(e),this.rangeDateTo||(this.rangeDateTo=e),p(this.rangeDateFrom,this.rangeDateTo)&&(this.rangeDateTo=this.rangeDateFrom,this.rangeDateFrom=e),this.selectedDates=[this.rangeDateFrom,this.rangeDateTo];break;case 2:this.selectedDates=[e],this.rangeDateFrom=e,this.rangeDateTo="";break;default:this.selectedDates=[e],this.rangeDateFrom=e}else this.selectedDates=[e];return this.trigger(i.eventChangeSelectedDate,{action:i.actionSelectDate,silent:null==s?void 0:s.silent,date:e,updateTime:o}),this._updateLastSelectedDate(e),u&&!this.timepickerIsActive&&this.visible&&(d||c?c&&1===m&&this.hide():this.hide()),new Promise((e=>{setTimeout(e)}))}}unselectDate(e){let t=this.selectedDates,s=this;if((e=b(e))instanceof Date)return t.some(((a,n)=>{if(u(a,e))return t.splice(n,1),s.selectedDates.length?s._updateLastSelectedDate(s.selectedDates[s.selectedDates.length-1]):(s.rangeDateFrom="",s.rangeDateTo="",s._updateLastSelectedDate(!1)),this.trigger(i.eventChangeSelectedDate,{action:i.actionUnselectDate,date:e}),!0}))}replaceDate(e,t){let s=this.selectedDates.find((t=>u(t,e,this.currentView))),a=this.selectedDates.indexOf(s);a<0||u(this.selectedDates[a],t,this.currentView)||(this.selectedDates[a]=t,this.trigger(i.eventChangeSelectedDate,{action:i.actionSelectDate,date:t,updateTime:!0}),this._updateLastSelectedDate(t))}clear(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.selectedDates=[],this.rangeDateFrom=!1,this.rangeDateTo=!1,this.trigger(i.eventChangeSelectedDate,{action:i.actionUnselectDate,silent:e.silent}),new Promise((e=>{setTimeout(e)}))}show(){let{onShow:e,isMobile:t}=this.opts;this._cancelScheduledCall(),this.visible||this.hideAnimation||this._createComponents(),this.setPosition(this.opts.position),this.$datepicker.classList.add("-active-"),this.visible=!0,e&&this._scheduleCallAfterTransition(e),t&&this._showMobileOverlay()}hide(){let{onHide:e,isMobile:t}=this.opts,i=this._hasTransition();this.visible=!1,this.hideAnimation=!0,this.$datepicker.classList.remove("-active-"),this.customHide&&this.customHide(),this.elIsInput&&this.$el.blur(),this._scheduleCallAfterTransition((t=>{!this.customHide&&(t&&i||!t&&!i)&&this._finishHide(),e&&e(t)})),t&&R.classList.remove("-active-")}_triggerOnSelect(){let e=[],t=[],{selectedDates:i,locale:s,opts:{onSelect:a,multipleDates:n,range:r}}=this,o=n||r,l="function"==typeof s.dateFormat;i.length&&(e=i.map(v),t=l?n?s.dateFormat(e):e.map((e=>s.dateFormat(e))):e.map((e=>this.formatDate(e,s.dateFormat)))),a({date:o?e:e[0],formattedDate:o?t:t[0],datepicker:this})}_handleAlreadySelectedDates(e,t){let{range:i,toggleSelected:s}=this.opts;i?s?this.unselectDate(t):2!==this.selectedDates.length&&this.selectDate(t):s&&this.unselectDate(t),s||this._updateLastSelectedDate(e)}_handleUpDownActions(e,t){if(!((e=b(e||this.focusDate||this.viewDate))instanceof Date))return;let i="up"===t?this.viewIndex+1:this.viewIndex-1;i>2&&(i=2),i<0&&(i=0),this.setViewDate(new Date(e.getFullYear(),e.getMonth(),1)),this.setCurrentView(this.viewIndexes[i])}_handleRangeOnFocus(){1===this.selectedDates.length&&(p(this.selectedDates[0],this.focusDate)?(this.rangeDateTo=this.selectedDates[0],this.rangeDateFrom=this.focusDate):(this.rangeDateTo=this.focusDate,this.rangeDateFrom=this.selectedDates[0]))}getCell(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.day;if(!((e=b(e))instanceof Date))return;let{year:s,month:a,date:n}=l(e),r='[data-year="'.concat(s,'"]'),o='[data-month="'.concat(a,'"]'),h='[data-date="'.concat(n,'"]'),d={[i.day]:"".concat(r).concat(o).concat(h),[i.month]:"".concat(r).concat(o),[i.year]:"".concat(r)};return this.views[this.currentView].$el.querySelector(d[t])}_showMobileOverlay(){R.classList.add("-active-")}_hasTransition(){return window.getComputedStyle(this.$datepicker).getPropertyValue("transition-duration").split(", ").reduce(((e,t)=>parseFloat(t)+e),0)>0}get shouldUpdateDOM(){return this.visible||this.treatAsInline}get parsedViewDate(){return l(this.viewDate)}get currentViewSingular(){return this.currentView.slice(0,-1)}get curDecade(){return d(this.viewDate)}get viewIndex(){return this.viewIndexes.indexOf(this.currentView)}get isFinalView(){return this.currentView===i.years}get hasSelectedDates(){return this.selectedDates.length>0}get isMinViewReached(){return this.currentView===this.opts.minView||this.currentView===i.days}get $container(){return this.$customContainer||B}static replacer(e,t,i){return e.replace(t,(function(e,t,s,a){return t+i+a}))}}var K;return N(P,"defaults",s),N(P,"version","3.3.1"),N(P,"defaultContainerId","air-datepicker-global-container"),K=P.prototype,Object.assign(K,H),t.default}()})),function(e,t){"use strict";"function"==typeof define&&define.amd?define([],(function(){return e.Waves=t.call(e),e.Waves})):"object"==typeof exports?module.exports=t.call(e):e.Waves=t.call(e)}("object"==typeof global?global:this,(function(){"use strict";function e(e){return function(e){return null!==e&&e===e.window}(e)?e:9===e.nodeType&&e.defaultView}function t(e){var t=typeof e;return"function"===t||"object"===t&&!!e}function i(e){var i=h.call(e);return"[object String]"===i?l(e):t(e)&&/^\[object (Array|HTMLCollection|NodeList|Object)\]$/.test(i)&&e.hasOwnProperty("length")?e:function(e){return t(e)&&e.nodeType>0}(e)?[e]:[]}function s(t){var i,s,a={top:0,left:0},n=t&&t.ownerDocument;return i=n.documentElement,void 0!==t.getBoundingClientRect&&(a=t.getBoundingClientRect()),s=e(n),{top:a.top+s.pageYOffset-i.clientTop,left:a.left+s.pageXOffset-i.clientLeft}}function a(e){var t="";for(var i in e)e.hasOwnProperty(i)&&(t+=i+":"+e[i]+";");return t}function n(e,t,i){if(i){i.classList.remove("waves-rippling");var s=i.getAttribute("data-x"),n=i.getAttribute("data-y"),r=i.getAttribute("data-scale"),o=i.getAttribute("data-translate"),l=350-(Date.now()-Number(i.getAttribute("data-hold")));l<0&&(l=0),"mousemove"===e.type&&(l=150);var h="mousemove"===e.type?2500:c.duration;setTimeout((function(){var e={top:n+"px",left:s+"px",opacity:"0","-webkit-transition-duration":h+"ms","-moz-transition-duration":h+"ms","-o-transition-duration":h+"ms","transition-duration":h+"ms","-webkit-transform":r+" "+o,"-moz-transform":r+" "+o,"-ms-transform":r+" "+o,"-o-transform":r+" "+o,transform:r+" "+o};i.setAttribute("style",a(e)),setTimeout((function(){try{t.removeChild(i)}catch(e){return!1}}),h)}),l)}}function r(e){var t=function(e){if(!1===p.allowEvent(e))return null;for(var t=null,i=e.target||e.srcElement;i.parentElement;){if(!(i instanceof SVGElement)&&i.classList.contains("waves-effect")){t=i;break}i=i.parentElement}return t}(e);if(null!==t){if(t.disabled||t.getAttribute("disabled")||t.classList.contains("disabled"))return;if(p.registerEvent(e),"touchstart"===e.type&&c.delay){var i=!1,s=setTimeout((function(){s=null,c.show(e,t)}),c.delay),a=function(a){s&&(clearTimeout(s),s=null,c.show(e,t)),i||(i=!0,c.hide(a,t)),r()},n=function(e){s&&(clearTimeout(s),s=null),a(e),r()};t.addEventListener("touchmove",n,!1),t.addEventListener("touchend",a,!1),t.addEventListener("touchcancel",a,!1);var r=function(){t.removeEventListener("touchmove",n),t.removeEventListener("touchend",a),t.removeEventListener("touchcancel",a)}}else c.show(e,t),d&&(t.addEventListener("touchend",c.hide,!1),t.addEventListener("touchcancel",c.hide,!1)),t.addEventListener("mouseup",c.hide,!1),t.addEventListener("mouseleave",c.hide,!1)}}var o=o||{},l=document.querySelectorAll.bind(document),h=Object.prototype.toString,d="ontouchstart"in window,c={duration:750,delay:200,show:function(e,t,i){if(2===e.button)return!1;t=t||this;var n=document.createElement("div");n.className="waves-ripple waves-rippling",t.appendChild(n);var r=s(t),o=0,l=0;"touches"in e&&e.touches.length?(o=e.touches[0].pageY-r.top,l=e.touches[0].pageX-r.left):(o=e.pageY-r.top,l=e.pageX-r.left),l=l>=0?l:0,o=o>=0?o:0;var h="scale("+t.clientWidth/100*3+")",d="translate(0,0)";i&&(d="translate("+i.x+"px, "+i.y+"px)"),n.setAttribute("data-hold",Date.now()),n.setAttribute("data-x",l),n.setAttribute("data-y",o),n.setAttribute("data-scale",h),n.setAttribute("data-translate",d);var u={top:o+"px",left:l+"px"};n.classList.add("waves-notransition"),n.setAttribute("style",a(u)),n.classList.remove("waves-notransition"),u["-webkit-transform"]=h+" "+d,u["-moz-transform"]=h+" "+d,u["-ms-transform"]=h+" "+d,u["-o-transform"]=h+" "+d,u.transform=h+" "+d,u.opacity="1";var p="mousemove"===e.type?2500:c.duration;u["-webkit-transition-duration"]=p+"ms",u["-moz-transition-duration"]=p+"ms",u["-o-transition-duration"]=p+"ms",u["transition-duration"]=p+"ms",n.setAttribute("style",a(u))},hide:function(e,t){for(var i=(t=t||this).getElementsByClassName("waves-rippling"),s=0,a=i.length;s=0&&null!==t.wait){setTimeout(function(e,t){return function(){c.hide(e,t)}}({type:"mouseup",button:1},n),t.wait)}},o.calm=function(e){for(var t={type:"mouseup",button:1},s=0,a=(e=i(e)).length;s{var e="dual-listbox__title",t="dual-listbox__item",i="dual-listbox__search",s="dual-listbox__item--selected",a="down",n=class{constructor(e,t={}){this.setDefaults(),this.dragged=null,this.options=[],n.isDomElement(e)?this.select=e:this.select=document.querySelector(e),this._initOptions(t),this._initReusableElements(),void 0!==t.options?this.options=t.options:this._splitOptions(this.select.options),this._buildDualListbox(this.select.parentNode),this._addActions(),this.showSortButtons&&this._initializeSortButtons(),this.redraw()}setDefaults(){this.availableTitle="Available options",this.selectedTitle="Selected options",this.showAddButton=!0,this.addButtonText="add",this.showRemoveButton=!0,this.removeButtonText="remove",this.showAddAllButton=!0,this.addAllButtonText="add all",this.showRemoveAllButton=!0,this.removeAllButtonText="remove all",this.searchPlaceholder="Search",this.showSortButtons=!1,this.sortFunction=(e,t)=>e.selected?-1:t.selected?1:e.ordert.order?1:0,this.upButtonText="up",this.downButtonText="down",this.enableDoubleClick=!0,this.draggable=!0}changeOrder(e,t){console.log(e);let i=this.options.findIndex((t=>(console.log(t,e.dataset.id),t.value===e.dataset.id)));console.log(i);let s=this.options.splice(i,1);console.log(s),this.options.splice(t,0,s[0])}addOptions(e){e.forEach((e=>{this.addOption(e)}))}addOption(e,t=null){t?this.options.splice(t,0,e):this.options.push(e)}addEventListener(e,t){this.dualListbox.addEventListener(e,t)}changeSelected(e){let t=this.options.find((t=>t.value===e.dataset.id));t.selected=!t.selected,this.redraw(),setTimeout((()=>{let i=document.createEvent("HTMLEvents");t.selected?(i.initEvent("added",!1,!0),i.addedElement=e):(i.initEvent("removed",!1,!0),i.removedElement=e),this.dualListbox.dispatchEvent(i)}),0)}actionAllSelected(e){e&&e.preventDefault(),this.options.forEach((e=>e.selected=!0)),this.redraw()}actionAllDeselected(e){e&&e.preventDefault(),this.options.forEach((e=>e.selected=!1)),this.redraw()}redraw(){this.options.sort(this.sortFunction),this.updateAvailableListbox(),this.updateSelectedListbox(),this.syncSelect()}searchLists(e,i){let s=i.querySelectorAll(`.${t}`),a=e.toLowerCase();for(let e=0;e!e.selected)))}updateSelectedListbox(){this._updateListbox(this.selectedList,this.options.filter((e=>e.selected)))}syncSelect(){for(;this.select.firstChild;)this.select.removeChild(this.select.lastChild);this.options.forEach((e=>{let t=document.createElement("option");t.value=e.value,t.innerText=e.text,e.selected&&t.setAttribute("selected","selected"),this.select.appendChild(t)}))}_updateListbox(e,t){for(;e.firstChild;)e.removeChild(e.firstChild);t.forEach((t=>{e.appendChild(this._createListItem(t))}))}actionItemSelected(e){e.preventDefault();let t=this.availableList.querySelector(`.${s}`);t&&this.changeSelected(t)}actionItemDeselected(e){e.preventDefault();let t=this.selectedList.querySelector(`.${s}`);t&&this.changeSelected(t)}_actionItemDoubleClick(e,t=null){t&&(t.preventDefault(),t.stopPropagation()),this.enableDoubleClick&&this.changeSelected(e)}_actionItemClick(e,i,a=null){a&&a.preventDefault();let n=i.querySelectorAll(`.${t}`);for(let t=0;tthis.actionAllSelected(e))),this.add_button.addEventListener("click",(e=>this.actionItemSelected(e))),this.remove_button.addEventListener("click",(e=>this.actionItemDeselected(e))),this.remove_all_button.addEventListener("click",(e=>this.actionAllDeselected(e)))}_addClickActions(e){return e.addEventListener("dblclick",(t=>this._actionItemDoubleClick(e,t))),e.addEventListener("click",(t=>this._actionItemClick(e,this.dualListbox,t))),e}_addSearchActions(){this.search_left.addEventListener("change",(e=>this.searchLists(e.target.value,this.availableList))),this.search_left.addEventListener("keyup",(e=>this.searchLists(e.target.value,this.availableList))),this.search_right.addEventListener("change",(e=>this.searchLists(e.target.value,this.selectedList))),this.search_right.addEventListener("keyup",(e=>this.searchLists(e.target.value,this.selectedList)))}_buildDualListbox(e){this.select.style.display="none",this.dualListBoxContainer.appendChild(this._createList(this.search_left,this.availableListTitle,this.availableList)),this.dualListBoxContainer.appendChild(this.buttons),this.dualListBoxContainer.appendChild(this._createList(this.search_right,this.selectedListTitle,this.selectedList)),this.dualListbox.appendChild(this.dualListBoxContainer),e.insertBefore(this.dualListbox,this.select)}_createList(e,t,i){let s=document.createElement("div");return s.appendChild(e),s.appendChild(t),s.appendChild(i),s}_createButtons(){this.buttons=document.createElement("div"),this.buttons.classList.add("dual-listbox__buttons"),this.add_all_button=document.createElement("button"),this.add_all_button.innerHTML=this.addAllButtonText,this.add_button=document.createElement("button"),this.add_button.innerHTML=this.addButtonText,this.remove_button=document.createElement("button"),this.remove_button.innerHTML=this.removeButtonText,this.remove_all_button=document.createElement("button"),this.remove_all_button.innerHTML=this.removeAllButtonText;let e={showAddAllButton:this.add_all_button,showAddButton:this.add_button,showRemoveButton:this.remove_button,showRemoveAllButton:this.remove_all_button};for(let t in e)if(t){let i=this[t],s=e[t];s.setAttribute("type","button"),s.classList.add("dual-listbox__button"),i&&this.buttons.appendChild(s)}}_createListItem(e){let i=document.createElement("li");return i.classList.add(t),i.innerHTML=e.text,i.dataset.id=e.value,this._liListeners(i),this._addClickActions(i),this.draggable&&i.setAttribute("draggable","true"),i}_liListeners(e){e.addEventListener("dragstart",(e=>{console.log("drag start",e),this.dragged=e.currentTarget,e.currentTarget.classList.add("dragging")})),e.addEventListener("dragend",(e=>{e.currentTarget.classList.remove("dragging")})),e.addEventListener("dragover",(e=>{e.preventDefault()}),!1),e.addEventListener("dragenter",(e=>{e.target.classList.add("drop-above")})),e.addEventListener("dragleave",(e=>{e.target.classList.remove("drop-above")})),e.addEventListener("drop",(e=>{e.preventDefault(),e.stopPropagation(),e.target.classList.remove("drop-above");let t=this.options.findIndex((t=>t.value===e.target.dataset.id));e.target.parentElement===this.dragged.parentElement?(this.changeOrder(this.dragged,t),this.redraw()):(this.changeSelected(this.dragged),this.changeOrder(this.dragged,t),this.redraw())}))}_createSearchLeft(){this.search_left=document.createElement("input"),this.search_left.classList.add(i),this.search_left.placeholder=this.searchPlaceholder}_createSearchRight(){this.search_right=document.createElement("input"),this.search_right.classList.add(i),this.search_right.placeholder=this.searchPlaceholder}_createDragListeners(){[this.availableList,this.selectedList].forEach((e=>{e.addEventListener("dragover",(e=>{e.preventDefault()}),!1),e.addEventListener("dragenter",(e=>{e.target.classList.add("drop-in")})),e.addEventListener("dragleave",(e=>{e.target.classList.remove("drop-in")})),e.addEventListener("drop",(t=>{t.preventDefault(),t.target.classList.remove("drop-in"),(e.classList.contains("dual-listbox__selected")||e.classList.contains("dual-listbox__available"))&&this.changeSelected(this.dragged)}))}))}_initOptions(e){for(let t in e)e.hasOwnProperty(t)&&(this[t]=e[t])}_initReusableElements(){this.dualListbox=document.createElement("div"),this.dualListbox.classList.add("dual-listbox"),this.select.id&&this.dualListbox.classList.add(this.select.id),this.dualListBoxContainer=document.createElement("div"),this.dualListBoxContainer.classList.add("dual-listbox__container"),this.availableList=document.createElement("ul"),this.availableList.classList.add("dual-listbox__available"),this.selectedList=document.createElement("ul"),this.selectedList.classList.add("dual-listbox__selected"),this.availableListTitle=document.createElement("div"),this.availableListTitle.classList.add(e),this.availableListTitle.innerText=this.availableTitle,this.selectedListTitle=document.createElement("div"),this.selectedListTitle.classList.add(e),this.selectedListTitle.innerText=this.selectedTitle,this._createButtons(),this._createSearchLeft(),this._createSearchRight(),this.draggable&&setTimeout((()=>{this._createDragListeners()}),10)}_splitOptions(e){[...e].forEach(((e,t)=>{this.addOption({text:e.innerHTML,value:e.value,selected:e.attributes.selected||!1,order:t})}))}_initializeSortButtons(){let e=document.createElement("button");e.classList.add("dual-listbox__button"),e.innerText=this.upButtonText,e.addEventListener("click",(e=>this._onSortButtonClick(e,"up")));let t=document.createElement("button");t.classList.add("dual-listbox__button"),t.innerText=this.downButtonText,t.addEventListener("click",(e=>this._onSortButtonClick(e,a)));let i=document.createElement("div");i.classList.add("dual-listbox__buttons"),i.appendChild(e),i.appendChild(t),this.dualListBoxContainer.appendChild(i)}_onSortButtonClick(e,t){e.preventDefault();let i=this.dualListbox.querySelector(".dual-listbox__item--selected");this.options.find((e=>e.value===i.dataset.id));if(i){let e=this._getNewIndex(i,t);e>=0&&(this.changeOrder(i,e),this.redraw())}}_getNewIndex(e,t){let i=this.options.findIndex((t=>t.value===e.dataset.id)),s=i;return"up"===t?s-=1:a===t&&i0){var m=e(this[0]).data(e.mask.dataName);return m?m():void 0}return r=e.extend({autoclear:e.mask.autoclear,placeholder:e.mask.placeholder,completed:null},r),o=e.mask.definitions,l=[],h=u=i.length,d=null,e.each(i.split(""),(function(e,t){"?"==t?(u--,h=e):o[t]?(l.push(new RegExp(o[t])),null===d&&(d=l.length-1),h>e&&(c=l.length-1)):l.push(null)})),this.trigger("unmask").each((function(){function m(){if(r.completed){for(var e=d;c>=e;e++)if(l[e]&&k[e]===v(e))return;r.completed.call(_)}}function v(e){return r.placeholder.charAt(ee)){for(i=e,s=g(t);u>i;i++)if(l[i]){if(!(u>s&&l[i].test(k[s])))break;k[i]=k[s],k[s]=v(s),s=g(s)}b(),_.caret(Math.max(d,e))}}function y(){w(),_.val()!=L&&_.change()}function D(e,t){var i;for(i=e;t>i&&u>i;i++)l[i]&&(k[i]=v(i))}function b(){_.val(k.join(""))}function w(e){var t,i,s,a=_.val(),n=-1;for(t=0,s=0;u>t;t++)if(l[t]){for(k[t]=v(t);s++a.length){D(t+1,u);break}}else k[t]===a.charAt(s)&&s++,h>t&&(n=t);return e?b():h>n+1?r.autoclear||k.join("")===C?(_.val()&&_.val(""),D(0,u)):b():(b(),_.val(_.val().substring(0,n+1))),h?t:d}var _=e(this),k=e.map(i.split(""),(function(e,t){return"?"!=e?o[e]?v(t):e:void 0})),C=k.join(""),L=_.val();_.data(e.mask.dataName,(function(){return e.map(k,(function(e,t){return l[t]&&e!=v(t)?e:null})).join("")})),_.one("unmask",(function(){_.off(".mask").removeData(e.mask.dataName)})).on("focus.mask",(function(){var e;_.prop("readonly")||(clearTimeout(t),L=_.val(),e=w(),t=setTimeout((function(){_.get(0)===document.activeElement&&(b(),e==i.replace("?","").length?_.caret(0,e):_.caret(e))}),10))})).on("blur.mask",y).on("keydown.mask",(function(e){if(!_.prop("readonly")){var t,i,a,n=e.which||e.keyCode;p=_.val(),8===n||46===n||s&&127===n?(i=(t=_.caret()).begin,(a=t.end)-i==0&&(i=46!==n?function(e){for(;--e>=0&&!l[e];);return e}(i):a=g(i-1),a=46===n?g(a):a),D(i,a),f(i,a-1),e.preventDefault()):13===n?y.call(this,e):27===n&&(_.val(L),_.caret(0,w()),e.preventDefault())}})).on("keypress.mask",(function(t){if(!_.prop("readonly")){var i,s,a,r=t.which||t.keyCode,o=_.caret();if(!(t.ctrlKey||t.altKey||t.metaKey||32>r)&&r&&13!==r){if(o.end-o.begin!=0&&(D(o.begin,o.end),f(o.begin,o.end-1)),i=g(o.begin-1),u>i&&(s=String.fromCharCode(r),l[i].test(s))){if(function(e){var t,i,s,a;for(t=e,i=v(e);u>t;t++)if(l[t]){if(s=g(t),a=k[t],k[t]=i,!(u>s&&l[s].test(a)))break;i=a}}(i),k[i]=s,b(),a=g(i),n){setTimeout((function(){e.proxy(e.fn.caret,_,a)()}),0)}else _.caret(a);o.begin<=c&&m()}t.preventDefault()}}})).on("input.mask paste.mask",(function(){_.prop("readonly")||setTimeout((function(){var e=w(!0);_.caret(e),m()}),0)})),a&&n&&_.off("input.mask").on("input.mask",(function(){var e=_.val(),t=_.caret();if(p&&p.length&&p.length>e.length){for(w(!0);t.begin>0&&!l[t.begin-1];)t.begin--;if(0===t.begin)for(;t.begin