timepicker-ui 3.1.2 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +43 -25
- package/dist/css/index.css +1 -1
- package/dist/css/main.css +1 -1
- package/dist/css/themes/theme-ai.css +1 -1
- package/dist/css/themes/theme-crane-straight.css +1 -0
- package/dist/css/themes/theme-crane.css +1 -1
- package/dist/css/themes/theme-custom.css +1 -1
- package/dist/css/themes/theme-cyberpunk.css +1 -1
- package/dist/css/themes/theme-dark.css +1 -1
- package/dist/css/themes/theme-glassmorphic.css +1 -1
- package/dist/css/themes/theme-m2.css +1 -0
- package/dist/css/themes/theme-m3-green.css +1 -0
- package/dist/css/themes/theme-pastel.css +1 -1
- package/dist/index.cjs +43 -64
- package/dist/index.d.cts +40 -101
- package/dist/index.d.ts +40 -101
- package/dist/index.js +43 -64
- package/dist/index.umd.js +1 -1
- package/package.json +4 -3
- package/dist/css/themes/theme-m3.css +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,77 +1,56 @@
|
|
|
1
|
-
"use strict";var Te=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var Pe=Object.prototype.hasOwnProperty;var Ne=(n,e)=>()=>(n&&(e=n(n=0)),e);var _e=(n,e)=>{for(var t in e)Te(n,t,{get:e[t],enumerable:!0})},We=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Oe(e))!Pe.call(n,r)&&r!==t&&Te(n,r,{get:()=>e[r],enumerable:!(i=Fe(e,r))||i.enumerable});return n};var He=n=>We(Te({},"__esModule",{value:!0}),n);var Se={};_e(Se,{getMobileModalTemplate:()=>Ke,getModalTemplate:()=>Re,getNumberOfHours12:()=>B,getNumberOfHours24:()=>q,getNumberOfMinutes:()=>R});var q,B,R,Re,Ke,fe=Ne(()=>{"use strict";q=["00","13","14","15","16","17","18","19","20","21","22","23"],B=["12","1","2","3","4","5","6","7","8","9","10","11"],R=["00","05","10","15","20","25","30","35","40","45","50","55"],Re=(n,e)=>{let{iconTemplate:t,timeLabel:i,amLabel:r,pmLabel:s,cancelLabel:a,okLabel:o,enableSwitchIcon:c,animation:p,clockType:T,editable:l,theme:h}=n;return`
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
<div class="timepicker-ui-
|
|
1
|
+
"use strict";var _e=Object.defineProperty;var Ke=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var je=Object.prototype.hasOwnProperty;var Ye=(o,e)=>{for(var t in e)_e(o,t,{get:e[t],enumerable:!0})},Ge=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Ze(e))!je.call(o,r)&&r!==t&&_e(o,r,{get:()=>e[r],enumerable:!(i=Ke(e,r))||i.enumerable});return o};var Xe=o=>Ge(_e({},"__esModule",{value:!0}),o);var nt={};Ye(nt,{EventEmitter:()=>W,TimepickerUI:()=>$,default:()=>st});module.exports=Xe(nt);var Pe=(o,e)=>({...e,...o}),Oe=()=>{let o=document.createElement("div");o.className="timepicker-ui-measure",document.body.appendChild(o);let e=o.getBoundingClientRect().width-o.clientWidth;return document.body.removeChild(o),e};var T=(o,e)=>o?o.classList.contains(e):!1,C=(o,e,t,i)=>{if(o){if(e){let r=new CustomEvent(e,{detail:t,bubbles:!0,cancelable:!0});o.dispatchEvent(r)}if(i&&typeof i=="function")try{i(t)}catch(r){console.warn("TimepickerUI: Error in callback:",r)}}};var $e=o=>{if(!o)return;let e=JSON.parse(JSON.stringify(o)),t=Object.keys(e);return Object.values(e).reduce((i,r,s)=>(Number(r)?i[t[s]]=Number(r):r==="true"||r==="false"?i[t[s]]=JSON.parse(r):(typeof r=="string"||typeof r=="number"||typeof r=="boolean")&&(i[t[s]]=r),i),{})},B=(o,e)=>Array.from({length:Number(e)-Number(o)+1},(t,i)=>Number(o)+i),ue=(o,e)=>Array.from({length:Number(e)-Number(o)+1},(t,i)=>Number(e)-i).reverse(),U=o=>{o&&typeof o=="function"&&o()},N=(o="")=>{let e=o.replace(/(AM|PM|am|pm)/,s=>` ${s}`),t=new Date(`September 20, 2000 ${e}`),i=t.getHours().toString().padStart(2,"0"),r=t.getMinutes().toString().padStart(2,"0");return`${i}:${r}`},V=o=>{let[e,t]=o.split(":"),i=Number(e),r=Number(t);return`${i<=9?"0"+i:i}:${r<=9?"0"+r:r}`},he=(o,e)=>{if(o.length<2)return!1;let t=o.map(i=>{let[r,s]=i.trim().split("-"),n,a;if(e==="12h"){if(!/\s?(AM|PM|am|pm)\s?$/.test(r.trim())||!/\s?(AM|PM|am|pm)\s?$/.test(s.trim()))throw new Error(`Invalid 12h format in interval: "${i}". AM/PM is required for 12h clock type.`);n=N(r.trim()),a=N(s.trim())}else{if(/\s?(AM|PM|am|pm)\s?/.test(r.trim())||/\s?(AM|PM|am|pm)\s?/.test(s.trim()))throw new Error(`Invalid 24h format in interval: "${i}". AM/PM is not allowed for 24h clock type.`);n=V(r.trim()),a=V(s.trim())}return{start:n,end:a,original:i}});for(let i=0;i<t.length;i++)for(let r=i+1;r<t.length;r++){let s=t[i],n=t[r];if(s.start<=n.end&&s.end>=n.start||n.start<=s.end&&n.end>=s.start)throw new Error(`Overlapping time intervals detected: "${s.original}" overlaps with "${n.original}"`)}return!1},Ne=()=>typeof window<"u"&&window.crypto&&typeof window.crypto.randomUUID=="function"?window.crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,o=>{let e=Math.random()*16|0;return(o==="x"?e:e&3|8).toString(16)});var de=o=>o.replace(/[^0-9:APMapm\s]/g,"");var Ve=(o,e)=>{let t;return(...i)=>{clearTimeout(t),t=setTimeout(()=>{o(...i)},e)}};var Ae="timepicker-ui",Je="mousedown mouseup mousemove mouseleave mouseover",Qe="touchstart touchmove touchend",Ue=`${Je} ${Qe}`,L="active";var ke="is-rippling",ve="ripple-hold",F=null;function et(o){let e=o.target,t=e.hasAttribute("data-md3-ripple")?e:e.closest("[data-md3-ripple]");if(!t||o.button!==0&&o.pointerType==="mouse")return;let i=t.getBoundingClientRect(),s=Math.max(i.width,i.height)*2,n=o.clientX-i.left,a=o.clientY-i.top;t.style.setProperty("--ripple-size",`${s}px`),t.style.setProperty("--ripple-x",`${n}px`),t.style.setProperty("--ripple-y",`${a}px`),t.classList.remove(ke,ve),t.offsetWidth,t.classList.add(ke,ve),t._rippleHold=!0,F=t}function Fe(o){let e=o.target,i=(e.hasAttribute("data-md3-ripple")?e:e.closest("[data-md3-ripple]"))||F;i&&(i._rippleHold=!1,i.classList.remove(ve),setTimeout(()=>{i.classList.remove(ke),F===i&&(F=null)},1e3))}function tt(o){let e=o.currentTarget;!e||!e._rippleHold||(e._rippleHold=!1,e.classList.remove(ve),setTimeout(()=>{e.classList.remove(ke),F===e&&(F=null)},1e3))}function Re(o=document){o.addEventListener("pointerdown",et),o.addEventListener("pointerup",Fe),o.addEventListener("pointercancel",Fe),o.querySelectorAll("[data-md3-ripple]").forEach(t=>{t.addEventListener("mouseleave",tt)})}var H=(o,e,t,i)=>{let r={hour:"12",minutes:"00",type:e==="24h"?void 0:"PM"};if(!o)return r;let s=o.value.trim();if(!t&&s==="")return r;if(typeof t=="boolean"&&t){let M=new Date,[b,I]=M.toLocaleTimeString().split(":"),l=Number(b)<=9?`0${Number(b)}`:b;if(/[a-z]/i.test(I)&&e==="12h"){let[h,k]=I.split(" ");return{hour:l,minutes:h,type:k}}return{hour:l,minutes:I,type:void 0}}if(typeof t=="object"){let{time:M,locales:b,preventClockType:I}=t,l=M??new Date;if(I&&i){let[u,g]=new Date(l).toLocaleTimeString().split(":");if(/[a-z]/i.test(g)){let[_,w]=g.split(" ");return{hour:u,minutes:_,type:w}}return{hour:Number(u)<=9?`0${Number(u)}`:u,minutes:g,type:void 0}}let[h,k]=new Date(l).toLocaleTimeString(b,{timeStyle:"short"}).split(":"),E=Number(h)<=9?`0${Number(h)}`:h;if(/[a-z]/i.test(k)&&e==="12h"){let[u,g]=k.split(" ");return{hour:E,minutes:u,type:g}}if(e==="12h"){let[u,g]=new Date(`1970-01-01T${h}:${k}Z`).toLocaleTimeString("en-US",{timeZone:"UTC",hour12:!0,hour:"numeric",minute:"numeric"}).split(":"),[A,_]=g.split(" ");return{hour:Number(u)<=9?`0${Number(u)}`:u,minutes:A,type:_}}return{hour:E,minutes:k,type:void 0}}let[n,a]=s.split(" "),[c="",m=""]=n.split(":"),d=c.replace(/\D/g,""),p=m.replace(/\D/g,""),v={hour:d.padStart(2,"0"),minutes:p.padStart(2,"0"),type:e==="12h"?a:void 0};if(d.length>2||p.length>2)return{...v,error:"Invalid input: too many digits.",currentHour:c,currentMin:m};if(/[a-z]/i.test(n))return{...v,error:"Input contains invalid letters."};if(s.includes(" ")&&(!a||s.length>8||a!=="AM"&&a!=="PM"))return{...v,error:"Invalid AM/PM format or length.",currentLength:s.length,currentType:a};let f=Number(d),y=Number(p);if(e==="12h"){if(f<1||f>12||y<0||y>59||a!=="AM"&&a!=="PM")return{...v,error:"Invalid 12h time.",currentHour:f,currentMin:y,currentType:a}}else if(f<0||f>23||y<0||y>59)return{...v,error:"Invalid 24h time.",currentHour:f,currentMin:y};return v},D=(o,e,t)=>{let i=Number(o);if(Number.isNaN(i))return!1;switch(e){case"hour":return t==="24h"?i>=0&&i<=23:i>0&&i<=12;case"minutes":return i>=0&&i<=59;default:return}};var we={amLabel:"AM",animation:!0,appendModalSelector:"",backdrop:!0,cancelLabel:"Cancel",editable:!1,enableScrollbar:!1,enableSwitchIcon:!1,mobileTimeLabel:"Enter Time",focusInputAfterCloseModal:!1,hourMobileLabel:"Hour",iconTemplate:"",iconTemplateMobile:"",incrementHours:1,incrementMinutes:1,minuteMobileLabel:"Minute",mobile:!1,okLabel:"OK",pmLabel:"PM",timeLabel:"Select time",autoSwitchToMinutes:!1,theme:"basic",clockType:"12h",disabledTime:void 0,currentTime:void 0,focusTrap:!0,delayHandler:300,inline:void 0,cssClass:void 0};var qe=o=>{if(!o)return;let{disabledTime:e,clockType:t}=o;if(!e||Object.keys(e).length<=0||e.constructor.name!=="Object")return;let{hours:i,minutes:r,interval:s}=e;if(s){delete e.hours,delete e.minutes;let n=Array.isArray(s)?s:[s];if(!t)throw new Error("clockType is required when using disabledTime.interval");try{he(n,t)}catch(m){throw m}return{value:n.map(m=>{let[d,p]=m.trim().split("-"),{hour:v,minutes:f,type:y}=H({value:d.trim()},t),{hour:M,minutes:b,type:I}=H({value:p.trim()},t),l=B(v,M).map(u=>u==="00"||Number(u)===0?`0${Number(u)}`:`${Number(u)}`),h=[],k=Number(f),E=Number(b);if(I===y)return k>0&&E<=0?(h.push(l[0],l[l.length-1]),l=l.slice(1,-1)):E<59&&E>0&&k<=0?(h.push(void 0,l[l.length-1]),l=l.slice(0,-1)):E>0&&k>0?(h.push(l[0],l[l.length-1]),l=l.slice(1,-1)):E===0&&k===0&&(h.push(void 0,l[l.length-1]),l.pop()),{removedStartedHour:h[0]!==void 0&&Number(h[0])<=9?`0${h[0]}`:h[0],removedEndHour:h[1]!==void 0&&Number(h[1])<=9?`0${h[1]}`:h[1],rangeArrHour:l,startMinutes:B(f,59).map(u=>Number(u)<=9?`0${u}`:`${u}`),endMinutes:ue(0,b).map(u=>Number(u)<=9?`0${u}`:`${u}`),startType:y,endType:I};{let u=B(v,12).map(String),g=ue(1,M).map(String),A=[],_=[];return k>0&&E<=0?(_.push(g[g.length-1]),A.push(u[0]),g.pop(),u.shift()):E<59&&E>0&&k<=0?(A.push(u[0]),_.push(g[g.length-1]),g.pop()):E>0&&k>0?(_.push(g[g.length-1]),A.push(u[0]),g.pop(),u.shift()):E===0&&k===0&&(_.push(g[g.length-1]),A.push(u[0]),g.pop()),{startType:y,endType:I,amHours:u,pmHours:g,removedAmHour:A[0]&&Number(A[0])<=9?`0${A[0]}`:A[0],removedPmHour:_[0]&&Number(_[0])<=9?`0${_[0]}`:_[0],startMinutes:Number(f)===0?[]:B(f,59).map(w=>Number(w)<=9?`0${w}`:`${w}`),endMinutes:ue(0,b).map(w=>Number(w)<=9?`0${w}`:`${w}`)}}}).reduce((m,d)=>(Object.entries(d).forEach(([p,v])=>{Array.isArray(v)?m[p]=Array.isArray(m[p])?[...m[p],...v]:[...v]:m[p]=v}),m),{isInterval:!0,clockType:t,intervals:n})}}return i?.forEach(n=>{if(t==="12h"&&Number(n)>12)throw new Error("The disabled hours value has to be less than 13");if(t==="24h"&&Number(n)>23)throw new Error("The disabled hours value has to be less than 24")}),r?.forEach(n=>{if(Number(n)>59)throw new Error("The disabled minutes value has to be less than 60")}),{value:{hours:i?.map(n=>n==="00"||Number(n)===0?`0${Number(n)}`:`${Number(n)}`),minutes:r?.map(n=>Number(n)<=9?`0${n}`:`${n}`)}}},R=(o,e,t,i)=>{if(o){if(Array.isArray(o)&&o.length>0)return!o.map(s=>D(s,e,t)).some(s=>s===!1);if(typeof o=="string"||typeof o=="number"){let r=D(o,e,t),s=i?.map(Number).includes(Number(o));return!!(r&&!s)}}},z=(o,e,t,i,r)=>{if(!o||!e||!i||!r)return!1;let s=r==="12h"?N(`${o}:${e} ${t||""}`.trim()):V(`${o}:${e}`),n=Array.isArray(i)?i:[i];for(let a of n){let[c,m]=a.trim().split("-"),d,p;if(r==="12h"){let v=c.trim(),f=m.trim();if(!/\s?(AM|PM|am|pm)\s?$/.test(v)||!/\s?(AM|PM|am|pm)\s?$/.test(f)){console.warn(`Invalid 12h format in interval: "${a}". AM/PM is required for 12h clock type.`);continue}d=N(v),p=N(f)}else{let v=c.trim(),f=m.trim();if(/\s?(AM|PM|am|pm)\s?/.test(v)||/\s?(AM|PM|am|pm)\s?/.test(f)){console.warn(`Invalid 24h format in interval: "${a}". AM/PM is not allowed for 24h clock type.`);continue}d=V(v),p=V(f)}if(s>=d&&s<=p)return!1}return!0};var K=class{timepicker;cleanupHandlers;constructor(e,t){this.timepicker=e,this.cleanupHandlers=t}handleCancelButton=()=>{let e=()=>{let i={...H(this.timepicker.input,this.timepicker._options.clockType),hourNotAccepted:this.timepicker.hour.value,minutesNotAccepted:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes};C(this.timepicker._element,"timepicker:cancel",i,this.timepicker._options.onCancel),this.timepicker.emit?.("cancel",i),this.timepicker.close()()};this.timepicker.cancelButton.addEventListener("click",e),this.cleanupHandlers.push(()=>{this.timepicker.cancelButton?.removeEventListener("click",e)})};handleOkButton=()=>{let e=()=>{let{clockType:t,disabledTime:i}=this.timepicker._options,r=D(this.timepicker.hour.value,"hour",t),s=D(this.timepicker.minutes.value,"minutes",t),n,a=R(this.timepicker.hour.value,"hour",t,i?.hours),c=R(this.timepicker.minutes.value,"minutes",t,i?.minutes);if(i?.interval&&(n=z(this.timepicker.hour.value,this.timepicker.minutes.value,this.timepicker.activeTypeMode?.textContent||"",i.interval,t)),n===!1||r===!1||s===!1||a===!1||c===!1){(n===!1||!s||!c)&&this.timepicker.minutes.classList.add("invalid-value"),(n===!1||!r||!a)&&this.timepicker.hour.classList.add("invalid-value");return}this.timepicker.input.value=`${this.timepicker.hour.value}:${this.timepicker.minutes.value} ${this.timepicker._options.clockType==="24h"?"":this.timepicker.activeTypeMode?.dataset.type}`.trimEnd();let m={hour:this.timepicker.hour.value,minutes:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes};C(this.timepicker._element,"timepicker:confirm",m,this.timepicker._options.onConfirm),this.timepicker.emit?.("confirm",m),this.timepicker.close()()};this.timepicker.okButton?.addEventListener("click",e),this.cleanupHandlers.push(()=>{this.timepicker.okButton?.removeEventListener("click",e)})};handleBackdropClick=()=>{let e=t=>{let i=t.target;if(!T(i,"timepicker-ui-modal"))return;let s={...H(this.timepicker.input,this.timepicker._options.clockType),hourNotAccepted:this.timepicker.hour.value,minutesNotAccepted:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes};C(this.timepicker._element,"timepicker:cancel",s,this.timepicker._options.onCancel),this.timepicker.emit?.("cancel",s),this.timepicker.close()()};this.timepicker.modalElement?.addEventListener("click",e),this.cleanupHandlers.push(()=>{this.timepicker.modalElement?.removeEventListener("click",e)})}};var Se=(o,e)=>{if(!o)return;let t=o.querySelector(".timepicker-announcer");t&&(t.textContent="",setTimeout(()=>{t.textContent=e},100))},Z=(o,e)=>{o&&o.setAttribute("aria-pressed",String(e))};var j=class{timepicker;cleanupHandlers;constructor(e,t){this.timepicker=e,this.cleanupHandlers=t}handleAmClick=()=>{this.timepicker._clickTouchEvents.forEach(e=>{let t=i=>{let r=i.target;r.classList.add(L),this.timepicker.PM.classList.remove(L),Z(r,!0),Z(this.timepicker.PM,!1),Se(this.timepicker.modalElement,"AM selected"),this.timepicker.clockManager?.updateAmPm();let s={hour:this.timepicker.hour.value,minutes:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes};C(this.timepicker._element,"timepicker:select-am",s,this.timepicker._options.onSelectAM),this.timepicker.emit?.("select:am",s)};this.timepicker.AM.addEventListener(e,t),this.cleanupHandlers.push(()=>{this.timepicker.AM?.removeEventListener(e,t)})})};handlePmClick=()=>{this.timepicker._clickTouchEvents.forEach(e=>{let t=i=>{let r=i.target;r.classList.add(L),this.timepicker.AM.classList.remove(L),Z(r,!0),Z(this.timepicker.AM,!1),Se(this.timepicker.modalElement,"PM selected"),this.timepicker.clockManager?.updateAmPm();let s={hour:this.timepicker.hour.value,minutes:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes};C(this.timepicker._element,"timepicker:select-pm",s,this.timepicker._options.onSelectPM),this.timepicker.emit?.("select:pm",s)};this.timepicker.PM.addEventListener(e,t),this.cleanupHandlers.push(()=>{this.timepicker.PM?.removeEventListener(e,t)})})}};var Y=class{timepicker;cleanupHandlers;hourEventHandlers=new Map;minuteEventHandlers=new Map;constructor(e,t){this.timepicker=e,this.cleanupHandlers=t}handleClasses24h=(e,t,i=!1)=>{let r=e.target,s=e.relatedTarget;this.timepicker.hourTips&&this.timepicker._options.clockType==="24h"&&(Number(r.textContent)>12||Number(r.textContent)===0?this.timepicker.clockManager&&this.timepicker.clockManager.setCircleClockClasses24h():this.timepicker.clockManager&&this.timepicker.clockManager.removeCircleClockClasses24h(),this.timepicker._options.mobile||this.timepicker.tipsWrapperFor24h?.classList.remove("none")),!(!r||!t)&&(t.value=de(r.value.replace(/\D+/g,"")),i&&s?s.classList.contains("timepicker-ui-am")||s.classList.contains("timepicker-ui-pm")||t.click():i&&t.click())};handleHourEvents=()=>{this.hourEventHandlers.forEach((i,r)=>{this.timepicker.hour?.removeEventListener(r,i)}),this.hourEventHandlers.clear(),this.timepicker._inputEvents.forEach(i=>{let r=s=>{let n=s.target;this.timepicker.clockFace!==null&&this.timepicker.animationManager&&this.timepicker.animationManager.handleAnimationSwitchTipsMode(),this.timepicker._options.clockType==="24h"&&this.timepicker.clockFace!==null&&(Number(this.timepicker.hour.value)>12||this.timepicker.hour.value==="00"?this.timepicker.clockManager&&this.timepicker.clockManager.setCircleClockClasses24h():this.timepicker.clockManager&&this.timepicker.clockManager.removeCircleClockClasses24h(),this.timepicker._options.mobile||this.timepicker.tipsWrapperFor24h?.classList.remove("none")),this.timepicker.clockManager&&this.timepicker.clockManager.setHoursToClock(n.value),this.timepicker.minutes.classList.remove(L),this.timepicker.hour.classList.add(L);let a={hour:this.timepicker.hour.value,minutes:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes};C(this.timepicker._element,"timepicker:select-hour",a,this.timepicker._options.onSelectHour),this.timepicker.emit?.("select:hour",a),this.timepicker.clockFace!==null&&this.timepicker.circle.classList.remove("small-circle")};this.timepicker.hour?.addEventListener(i,r),this.hourEventHandlers.set(i,r)});let e=i=>this.handleClasses24h(i,this.timepicker.hour,!0),t=i=>this.handleClasses24h(i,this.timepicker.hour,!1);this.timepicker.hour?.addEventListener("blur",e),this.timepicker.hour?.addEventListener("focus",t),this.hourEventHandlers.set("blur",e),this.hourEventHandlers.set("focus",t)};handleMinutesEvents=()=>{this.minuteEventHandlers.forEach((i,r)=>{this.timepicker.minutes?.removeEventListener(r,i)}),this.minuteEventHandlers.clear(),this.timepicker._inputEvents.forEach(i=>{let r=s=>{let n=s.target;this.timepicker.clockFace!==null&&(this.timepicker.animationManager&&this.timepicker.animationManager.handleAnimationSwitchTipsMode(),this.timepicker.clockManager&&this.timepicker.clockManager.setMinutesToClock(n.value)),this.timepicker._options.clockType==="24h"&&(this.timepicker.clockManager&&this.timepicker.clockManager.removeCircleClockClasses24h(),this.timepicker._options.mobile||this.timepicker.tipsWrapperFor24h?.classList.add("none")),this.timepicker.hour.classList.remove(L),this.timepicker.minutes.classList.add(L);let a={hour:this.timepicker.hour.value,minutes:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes};C(this.timepicker._element,"timepicker:select-minute",a,this.timepicker._options.onSelectMinute),this.timepicker.emit?.("select:minute",a)};this.timepicker.minutes.addEventListener(i,r),this.minuteEventHandlers.set(i,r)});let e=i=>this.handleClasses24h(i,this.timepicker.minutes,!0),t=i=>this.handleClasses24h(i,this.timepicker.minutes,!1);this.timepicker.minutes?.addEventListener("blur",e),this.timepicker.minutes?.addEventListener("focus",t),this.minuteEventHandlers.set("blur",e),this.minuteEventHandlers.set("focus",t)};destroy(){this.hourEventHandlers.forEach((e,t)=>{this.timepicker.hour?.removeEventListener(t,e)}),this.hourEventHandlers.clear(),this.minuteEventHandlers.forEach((e,t)=>{this.timepicker.minutes?.removeEventListener(t,e)}),this.minuteEventHandlers.clear()}};var G=class{timepicker;cleanupHandlers;constructor(e,t){this.timepicker=e,this.cleanupHandlers=t}handleOpenOnClick=()=>{this.timepicker.openElement.forEach(e=>{let t=()=>this.timepicker._eventsBundle();e?.addEventListener("click",t),this.cleanupHandlers.push(()=>{e?.removeEventListener("click",t)})})};handleOpenOnEnterFocus=()=>{let e=({target:t,key:i})=>{t.disabled||i==="Enter"&&this.timepicker.open()};this.timepicker.input.addEventListener("keydown",e),this.cleanupHandlers.push(()=>{this.timepicker.input.removeEventListener("keydown",e)})};handleClickOnHourMobile=()=>{document.addEventListener("mousedown",this.timepicker._eventsClickMobileHandler),document.addEventListener("touchstart",this.timepicker._eventsClickMobileHandler),this.cleanupHandlers.push(()=>{document.removeEventListener("mousedown",this.timepicker._eventsClickMobileHandler),document.removeEventListener("touchstart",this.timepicker._eventsClickMobileHandler)})};handlerClickHourMinutes=async e=>{if(!this.timepicker.modalElement)return;let{clockType:t,editable:i}=this.timepicker._options,r=e.target,s=D(this.timepicker.hour.value,"hour",t),n=D(this.timepicker.minutes.value,"minutes",t);i&&(!T(r,"timepicker-ui-hour")&&!T(r,"timepicker-ui-minutes")?s===!0&&n===!0&&(n&&this.timepicker.minutes.classList.remove("invalid-value"),s&&this.timepicker.hour?.classList.remove("invalid-value")):(s===!1||n===!1)&&(n||this.timepicker.minutes.classList.add("invalid-value"),s||this.timepicker.hour?.classList.add("invalid-value")))};handleIconChangeView=async()=>{if(this.timepicker._options.enableSwitchIcon&&this.timepicker.configManager){let e=t=>{t.preventDefault(),this.timepicker.configManager&&this.timepicker.configManager.toggleMobileClockFace()};this.timepicker.keyboardClockIcon?.addEventListener("click",e),this.timepicker.keyboardClockIcon?.addEventListener("touchstart",e,{passive:!1}),this.cleanupHandlers.push(()=>{this.timepicker.keyboardClockIcon?.removeEventListener("click",e),this.timepicker.keyboardClockIcon?.removeEventListener("touchstart",e)})}};handleKeyPress=e=>{if(e.key==="Escape"&&this.timepicker.modalElement){let i={...H(this.timepicker.input,this.timepicker._options.clockType),hourNotAccepted:this.timepicker.hour.value,minutesNotAccepted:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes};C(this.timepicker._element,"timepicker:cancel",i,this.timepicker._options.onCancel),this.timepicker.emit?.("cancel",i),this.timepicker.close()()}};handleEscClick=()=>{document.addEventListener("keydown",this.handleKeyPress),this.cleanupHandlers.push(()=>{document.removeEventListener("keydown",this.handleKeyPress)})};focusTrapHandler=()=>{setTimeout(()=>{let e=this.timepicker.wrapper?.querySelectorAll('div[tabindex="0"]:not([disabled])'),t=this.timepicker.wrapper?.querySelectorAll('input[tabindex="0"]:not([disabled])');if(!e||e.length<=0||t.length<=0)return;let i=[...t,...e],r=i[0],s=i[i.length-1];this.timepicker.wrapper.focus();let n=a=>{let{key:c,shiftKey:m,target:d}=a,p=d;if(c==="Tab"&&(m?document.activeElement===r&&(s.focus(),a.preventDefault()):document.activeElement===s&&(r.focus(),a.preventDefault())),c==="ArrowUp"||c==="ArrowDown"||c==="ArrowLeft"||c==="ArrowRight"){let v=T(p,"timepicker-ui-value-tips")||T(p,"timepicker-ui-value-tips-24h"),f=T(p,"timepicker-ui-hour"),y=T(p,"timepicker-ui-minutes");if(v){let M=p.parentElement,b=T(M,"timepicker-ui-minutes-time"),I=T(M,"timepicker-ui-hour-time-12")||T(M,"timepicker-ui-hour-time-24");if(b){let l=parseInt(this.timepicker.minutes.value||"0"),h=l;c==="ArrowUp"||c==="ArrowRight"?h=l>=59?0:l+1:(c==="ArrowDown"||c==="ArrowLeft")&&(h=l<=0?59:l-1);let k=h<10?`0${h}`:`${h}`,E=this.timepicker.hour.value,u=this.timepicker.activeTypeMode?.textContent||"";if(this.timepicker._disabledTime?.value?.isInterval&&this.timepicker._disabledTime?.value?.intervals&&!z(E,k,u,this.timepicker._disabledTime.value.intervals,this.timepicker._options.clockType))return;this.timepicker.minutes.value=k,this.timepicker.minutes.setAttribute("aria-valuenow",this.timepicker.minutes.value),this.timepicker.clockManager&&(this.timepicker.clockManager.setTransformToCircleWithSwitchesMinutes(this.timepicker.minutes.value),this.timepicker.clockManager.toggleClassActiveToValueTips(h))}else if(I){let l=parseInt(this.timepicker.hour.value||"0"),h=this.timepicker._options.clockType==="24h",k=h?23:12,E=h?0:1,u=l;c==="ArrowUp"||c==="ArrowRight"?u=l>=k?E:l+1:(c==="ArrowDown"||c==="ArrowLeft")&&(u=l<=E?k:l-1);let g=u<10?`0${u}`:`${u}`,A=this.timepicker.activeTypeMode?.textContent||"";if(this.timepicker._disabledTime?.value?.isInterval&&this.timepicker._disabledTime?.value?.intervals){let _=!0;for(let w=0;w<60;w++){let ze=w.toString().padStart(2,"0");if(z(g,ze,A,this.timepicker._disabledTime.value.intervals,this.timepicker._options.clockType)){_=!1;break}}if(_)return}this.timepicker.hour.value=g,this.timepicker.hour.setAttribute("aria-valuenow",this.timepicker.hour.value),this.timepicker.clockManager&&(this.timepicker.clockManager.setTransformToCircleWithSwitchesHour(this.timepicker.hour.value),this.timepicker.clockManager.toggleClassActiveToValueTips(u))}}if(f||y){let M=parseInt(p.value)||0,b=f,I=b?this.timepicker._options.clockType==="12h"?12:23:59,l=b&&this.timepicker._options.clockType==="12h"?1:0,h=M;c==="ArrowUp"?h=M>=I?l:M+1:c==="ArrowDown"&&(h=M<=l?I:M-1),p.value=h<10?`0${h}`:`${h}`,p.setAttribute("aria-valuenow",p.value)}}(c==="a"||c==="A")&&this.timepicker.AM&&!T(p,"timepicker-ui-hour")&&!T(p,"timepicker-ui-minutes")&&this.timepicker.AM.click(),(c==="p"||c==="P")&&this.timepicker.PM&&!T(p,"timepicker-ui-hour")&&!T(p,"timepicker-ui-minutes")&&this.timepicker.PM.click(),c==="Enter"&&(T(p,"timepicker-ui-minutes")&&this.timepicker.minutes.click(),T(p,"timepicker-ui-hour")&&this.timepicker.hour.click(),T(p,"timepicker-ui-am")&&this.timepicker.AM.click(),T(p,"timepicker-ui-pm")&&this.timepicker.PM.click(),T(p,"timepicker-ui-ok-btn")&&this.timepicker.okButton.click(),T(p,"timepicker-ui-cancel-btn")&&this.timepicker.cancelButton.click(),T(p,"timepicker-ui-keyboard-icon-wrapper")&&this.timepicker.keyboardClockIcon.click())};this.timepicker.wrapper.addEventListener("keydown",n),this.cleanupHandlers.push(()=>{this.timepicker.wrapper?.removeEventListener("keydown",n)})},100)}};var X=class{timepicker;cleanupHandlers;constructor(e,t){this.timepicker=e,this.cleanupHandlers=t}handleInlineAutoUpdate=()=>{if(!this.timepicker._options.inline?.enabled||this.timepicker._options.inline.autoUpdate===!1)return;let e=()=>{let r=this.timepicker.hour?.value,s=this.timepicker.minutes?.value,n=this.timepicker.activeTypeMode?.textContent;if(r&&s){let a="";if(this.timepicker._options.clockType==="24h"){let c=r.padStart(2,"0"),m=s.padStart(2,"0");a=`${c}:${m}`}else{let c=r,m=s.padStart(2,"0");a=`${c}:${m} ${n||"AM"}`}if(this.timepicker.input){this.timepicker.input.value=a;let c=new Event("change",{bubbles:!0});this.timepicker.input.dispatchEvent(c);let m={hour:r,minutes:s,type:n,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes};C(this.timepicker._element,"timepicker:confirm",m,this.timepicker._options.onConfirm),this.timepicker.emit?.("confirm",m)}}};["input","change"].forEach(r=>{let s=()=>setTimeout(e,50),n=()=>setTimeout(e,50);this.timepicker.hour?.addEventListener(r,s),this.timepicker.minutes?.addEventListener(r,n),this.cleanupHandlers.push(()=>{this.timepicker.hour?.removeEventListener(r,s),this.timepicker.minutes?.removeEventListener(r,n)})}),this.timepicker._options.clockType!=="24h"&&this.timepicker._clickTouchEvents.forEach(r=>{let s=()=>setTimeout(e,50),n=()=>setTimeout(e,50);this.timepicker.AM?.addEventListener(r,s),this.timepicker.PM?.addEventListener(r,n),this.cleanupHandlers.push(()=>{this.timepicker.AM?.removeEventListener(r,s),this.timepicker.PM?.removeEventListener(r,n)})});let i=()=>setTimeout(e,100);this.timepicker.clockFace?.addEventListener("click",i),this.cleanupHandlers.push(()=>{this.timepicker.clockFace?.removeEventListener("click",i)})}};var J=class{_cleanupHandlers=[];buttonHandlers;typeModeHandlers;inputHandlers;miscHandlers;inlineHandlers;constructor(e){this.buttonHandlers=new K(e,this._cleanupHandlers),this.typeModeHandlers=new j(e,this._cleanupHandlers),this.inputHandlers=new Y(e,this._cleanupHandlers),this.miscHandlers=new G(e,this._cleanupHandlers),this.inlineHandlers=new X(e,this._cleanupHandlers)}destroy(){this._cleanupHandlers.forEach(e=>e()),this._cleanupHandlers=[],this.inputHandlers.destroy()}handleOpenOnClick=()=>this.miscHandlers.handleOpenOnClick();handleOpenOnEnterFocus=()=>this.miscHandlers.handleOpenOnEnterFocus();handleCancelButton=()=>this.buttonHandlers.handleCancelButton();handleOkButton=()=>this.buttonHandlers.handleOkButton();handleBackdropClick=()=>this.buttonHandlers.handleBackdropClick();handleAmClick=()=>this.typeModeHandlers.handleAmClick();handlePmClick=()=>this.typeModeHandlers.handlePmClick();handleHourEvents=()=>this.inputHandlers.handleHourEvents();handleMinutesEvents=()=>this.inputHandlers.handleMinutesEvents();handleClickOnHourMobile=()=>this.miscHandlers.handleClickOnHourMobile();handlerClickHourMinutes=e=>this.miscHandlers.handlerClickHourMinutes(e);handleIconChangeView=()=>this.miscHandlers.handleIconChangeView();handleEscClick=()=>this.miscHandlers.handleEscClick();focusTrapHandler=()=>this.miscHandlers.focusTrapHandler();handleInlineAutoUpdate=()=>this.inlineHandlers.handleInlineAutoUpdate();handleMoveHand=()=>{};handleEventToMoveHand=e=>{};get _isDragging(){return!1}get _animationFrameId(){return null}_onDragStart=e=>{};_onDragMove=e=>{};_onDragEnd=e=>{}};var Q=class{timepicker;timeouts=[];originalOverflow;originalPaddingRight;constructor(e){this.timepicker=e}runWithTimeout(e,t=300){let i=setTimeout(e,t);this.timeouts.push(i)}clearAllTimeouts(){this.timeouts.forEach(clearTimeout),this.timeouts=[]}clearExistingModal(){let e=document.querySelector(".timepicker-ui-modal");e&&e.remove()}setModalTemplate=()=>{if(!this.timepicker._options)return;if(this.clearExistingModal(),this.timepicker._options.inline?.enabled){let t=document.getElementById(this.timepicker._options.inline.containerId);if(!t)return;t.innerHTML="",t.insertAdjacentHTML("beforeend",this.timepicker.modalTemplate);let i=t.querySelector(".timepicker-ui-modal");if(i){i.classList.add("timepicker-ui--inline");let{showButtons:r}=this.timepicker._options.inline;(r===!1||r===void 0)&&i.querySelectorAll(".timepicker-ui-wrapper-btn, .timepicker-ui-wrapper-btn.mobile").forEach(s=>s.style.display="none")}return}let{appendModalSelector:e}=this.timepicker._options;e?document.querySelector(e)?.insertAdjacentHTML("beforeend",this.timepicker.modalTemplate):document.body.insertAdjacentHTML("beforeend",this.timepicker.modalTemplate)};setScrollbarOrNot=()=>{this.timepicker._options.inline?.enabled||(this.timepicker._options.enableScrollbar?this.runWithTimeout(()=>{document.body.style.overflowY=this.originalOverflow||"",document.body.style.paddingRight=this.originalPaddingRight||""},400):(this.originalOverflow=document.body.style.overflowY,this.originalPaddingRight=document.body.style.paddingRight,document.body.style.paddingRight=`${Oe()}px`,document.body.style.overflowY="hidden"))};removeBackdrop=()=>{this.timepicker._options.inline?.enabled||this.timepicker._options.backdrop||(this.timepicker.modalElement?.classList.add("removed"),this.timepicker.openElement.forEach(e=>e?.classList.add("disabled")))};setNormalizeClass=()=>{let e=this.timepicker.modalElement;if(!e)return;e.classList.add("timepicker-ui-normalize"),e.querySelectorAll(":scope > div").forEach(i=>i.classList.add("timepicker-ui-normalize"))};setShowClassToBackdrop=()=>{if(this.timepicker._options.inline?.enabled){this.timepicker.modalElement?.classList.add("show");return}this.timepicker._options.backdrop&&this.runWithTimeout(()=>{this.timepicker.modalElement?.classList.add("show")},300)};setFlexEndToFooterIfNoKeyboardIcon=()=>{!this.timepicker._options.enableSwitchIcon&&this.timepicker.footer&&(this.timepicker.footer.style.justifyContent="flex-end")};destroy(){this.clearAllTimeouts(),this.timepicker._options.inline?.enabled||(document.body.style.overflowY=this.originalOverflow||"",document.body.style.paddingRight=this.originalPaddingRight||""),this.clearExistingModal()}};var xe={MODAL:150,CLOCK:600,TIPS:401},ee=class{timepicker;timeouts=[];constructor(e){this.timepicker=e}runWithAnimation(e,t=xe.MODAL){if(this.timepicker._options.animation){let i=setTimeout(e,t);this.timeouts.push(i)}else e()}clearAllTimeouts(){this.timeouts.forEach(clearTimeout),this.timeouts=[]}setAnimationToOpen(){this.clearAllTimeouts(),this.timepicker.modalElement?.classList.add("opacity"),this.runWithAnimation(()=>{this.timepicker.modalElement?.classList.add("show")})}removeAnimationToClose(){this.clearAllTimeouts(),this.timepicker.modalElement&&this.runWithAnimation(()=>{this.timepicker.modalElement?.classList.remove("show"),this.timepicker.modalElement?.classList.remove("opacity")})}handleAnimationClock(){this.timepicker._options.animation&&this.runWithAnimation(()=>{this.timepicker.clockFace?.classList.add("timepicker-ui-clock-animation");let e=setTimeout(()=>{this.timepicker.clockFace?.classList.remove("timepicker-ui-clock-animation")},xe.CLOCK);this.timeouts.push(e)})}handleAnimationSwitchTipsMode(){let{clockHand:e}=this.timepicker;if(!e)return;e.classList.add("timepicker-ui-tips-animation");let t=setTimeout(()=>{e.classList.remove("timepicker-ui-tips-animation")},xe.TIPS);this.timeouts.push(t)}destroy(){this.clearAllTimeouts()}};var fe='<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M160-200q-33 0-56.5-23.5T80-280v-400q0-33 23.5-56.5T160-760h640q33 0 56.5 23.5T880-680v400q0 33-23.5 56.5T800-200H160Zm0-80h640v-400H160v400Zm160-40h320v-80H320v80ZM200-440h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80ZM200-560h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80Zm120 0h80v-80h-80v80ZM160-280v-400 400Z"/></svg>';var ge='<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-400Zm0 320q133 0 226.5-93.5T800-480q0-133-93.5-226.5T480-800q-133 0-226.5 93.5T160-480q0 133 93.5 226.5T480-160Z"/></svg>';var We=["00","13","14","15","16","17","18","19","20","21","22","23"],De=["12","1","2","3","4","5","6","7","8","9","10","11"],te=["00","05","10","15","20","25","30","35","40","45","50","55"],Be=(o,e)=>{let{iconTemplate:t,timeLabel:i,mobileTimeLabel:r,amLabel:s,pmLabel:n,cancelLabel:a,okLabel:c,iconTemplateMobile:m,minuteMobileLabel:d,hourMobileLabel:p,enableSwitchIcon:v,animation:f,clockType:y,editable:M,theme:b,mobile:I}=o,l=I?"mobile":"",h=`<button aria-label="Toggle keyboard" type="button" class="timepicker-ui-keyboard-icon">${t||fe}</button>`,k=m||`<button aria-label="Toggle clock" type="button" class="timepicker-ui-keyboard-icon">${m||ge}</button>`;return`
|
|
2
|
+
|
|
3
|
+
<div class="timepicker-ui-modal normalize ${l} ${b}" role="dialog" aria-modal="true" aria-labelledby="timepicker-ui-label-${e}" data-owner-id="${e}" style='transition:${f?"opacity 0.15s linear":"none"}'>
|
|
4
|
+
<div class="timepicker-ui-wrapper ${l}" tabindex="0">
|
|
5
|
+
<div class="timepicker-ui-select-time ${l}" id="timepicker-ui-label-${e}">${l?r:i}</div>
|
|
6
|
+
<div class="timepicker-ui-header ${l}">
|
|
7
|
+
<div class="timepicker-ui-wrapper-time ${l} ${y==="24h"?"timepicker-ui-wrapper-time-24h":""}" role="group" aria-label="${l?r:i}">
|
|
8
|
+
<div class="timepicker-ui-input-wrapper ${l}">
|
|
9
|
+
<div class="timepicker-ui-input-ripple-wrapper ${l}" data-md3-ripple>
|
|
10
|
+
<input name="hour" ${!M&&!l?"readonly":""} class="timepicker-ui-hour ${l}" tabindex="0" type="number" min="0" max="${y==="12h"?"12":"23"}" aria-label="${l?p:"Hour"}" role="spinbutton" aria-valuenow="12" />
|
|
11
|
+
</div>
|
|
12
|
+
<div class="timepicker-ui-hour-text ${l}">${p}</div>
|
|
13
|
+
</div>
|
|
14
|
+
<div class="timepicker-ui-dots ${l}" aria-hidden="true">
|
|
9
15
|
<span></span>
|
|
10
16
|
<span></span>
|
|
11
17
|
</div>
|
|
12
|
-
<
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<div class="timepicker-ui-wrapper-type-time" role="group" aria-label="Time period">
|
|
16
|
-
<div class="timepicker-ui-type-mode timepicker-ui-am" tabindex="0" role="button" aria-label="${r}" aria-pressed="false" data-type="AM">${r}</div>
|
|
17
|
-
<div class="timepicker-ui-type-mode timepicker-ui-pm" tabindex="0" role="button" aria-label="${s}" aria-pressed="false" data-type="PM">${s}</div>
|
|
18
|
-
</div>
|
|
19
|
-
`:""}
|
|
20
|
-
</div>
|
|
21
|
-
<div class="timepicker-ui-wrapper-landspace">
|
|
22
|
-
<div class="timepicker-ui-body">
|
|
23
|
-
<div class="timepicker-ui-clock-face" role="group" aria-label="Clock face">
|
|
24
|
-
<div class="timepicker-ui-dot" aria-hidden="true"></div>
|
|
25
|
-
<div class="timepicker-ui-clock-hand" aria-hidden="true">
|
|
26
|
-
<div class="timepicker-ui-circle-hand"></div>
|
|
18
|
+
<div class="timepicker-ui-input-wrapper ${l}">
|
|
19
|
+
<div class="timepicker-ui-input-ripple-wrapper ${l}" data-md3-ripple>
|
|
20
|
+
<input name="minutes" ${!M&&!l?"readonly":""} class="timepicker-ui-minutes ${l}" tabindex="0" type="number" min="0" max="59" aria-label="${l?d:"Minute"}" role="spinbutton" aria-valuenow="0" />
|
|
27
21
|
</div>
|
|
28
|
-
<div class="timepicker-ui-
|
|
29
|
-
${T==="24h"?'<div class="timepicker-ui-tips-wrapper-24h" role="listbox" aria-label="24-hour time values"></div>':""}
|
|
22
|
+
<div class="timepicker-ui-minute-text ${l}">${d}</div>
|
|
30
23
|
</div>
|
|
31
24
|
</div>
|
|
32
|
-
|
|
33
|
-
${
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
</div>`:""}
|
|
37
|
-
<div class="timepicker-ui-wrapper-btn" >
|
|
38
|
-
<div class="timepicker-ui-cancel-btn" tabindex="0" role="button" aria-pressed="false" aria-label="${a}">${a}</div>
|
|
39
|
-
<div class="timepicker-ui-ok-btn" tabindex="0" role="button" aria-pressed="false" aria-label="${o}">${o}</div>
|
|
40
|
-
</div>
|
|
25
|
+
${y!=="24h"?`
|
|
26
|
+
<div class="timepicker-ui-wrapper-type-time ${l}" role="group" aria-label="Time period">
|
|
27
|
+
<div class="timepicker-ui-type-mode timepicker-ui-am ${l?"mobile":"timepicker-ui-ripple"}" data-md3-ripple tabindex="0" role="button" aria-label="${s}" aria-pressed="false" data-type="AM">${s}</div>
|
|
28
|
+
<div class="timepicker-ui-type-mode timepicker-ui-pm ${l?"mobile":"timepicker-ui-ripple"}" data-md3-ripple tabindex="0" role="button" aria-label="${n}" aria-pressed="false" data-type="PM">${n}</div>
|
|
41
29
|
</div>
|
|
30
|
+
`:""}
|
|
42
31
|
</div>
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
<div class="timepicker-ui-dots mobile" aria-hidden="true">
|
|
54
|
-
<span></span>
|
|
55
|
-
<span></span>
|
|
56
|
-
</div>
|
|
57
|
-
<div class="timepicker-ui-minute-text mobile">${c}</div>
|
|
58
|
-
<input class="timepicker-ui-minutes mobile" tabindex="0" type="number" min="0" max="59" aria-label="${c}" role="spinbutton" aria-valuenow="0" />
|
|
32
|
+
<div class="timepicker-ui-mobile-clock-wrapper ${l}">
|
|
33
|
+
<div class="timepicker-ui-body ${l}">
|
|
34
|
+
<div class="timepicker-ui-clock-face ${l}" role="group" aria-label="Clock face">
|
|
35
|
+
<div class="timepicker-ui-dot ${l}" aria-hidden="true"></div>
|
|
36
|
+
<div class="timepicker-ui-clock-hand ${l}" aria-hidden="true">
|
|
37
|
+
<div class="timepicker-ui-circle-hand ${l}"></div>
|
|
38
|
+
</div>
|
|
39
|
+
<div class="timepicker-ui-tips-wrapper ${l}" role="listbox" aria-label="Time values"></div>
|
|
40
|
+
${y==="24h"?`<div class="timepicker-ui-tips-wrapper-24h ${l}" role="listbox" aria-label="24-hour time values"></div>`:""}
|
|
41
|
+
</div>
|
|
59
42
|
</div>
|
|
60
|
-
${h!=="24h"?`<div class="timepicker-ui-wrapper-type-time mobile" role="group" aria-label="Time period">
|
|
61
|
-
<div class="timepicker-ui-type-mode timepicker-ui-am mobile" data-type="AM" tabindex="0" role="button" aria-label="${i}" aria-pressed="false">${i}</div>
|
|
62
|
-
<div class="timepicker-ui-type-mode timepicker-ui-pm mobile" data-type="PM" tabindex="0" role="button" aria-label="${r}" aria-pressed="false">${r}</div>
|
|
63
|
-
</div>`:""}
|
|
64
|
-
</div>
|
|
65
|
-
<div class="timepicker-ui-footer mobile" data-view="mobile">
|
|
66
|
-
${T?`
|
|
67
|
-
<div class="timepicker-ui-keyboard-icon-wrapper mobile" role="button" aria-pressed="false" aria-label="Toggle keyboard mode" data-view="desktop" tabindex="0">
|
|
68
|
-
${o}
|
|
69
|
-
</div>`:""}
|
|
70
|
-
<div class="timepicker-ui-wrapper-btn mobile">
|
|
71
|
-
<div class="timepicker-ui-cancel-btn mobile" role="button" aria-pressed="false" aria-label="${s}" tabindex="0">${s}</div>
|
|
72
|
-
<div class="timepicker-ui-ok-btn mobile" role="button" aria-pressed="false" aria-label="${a}" tabindex="0">${a}</div>
|
|
73
43
|
</div>
|
|
44
|
+
<div class="timepicker-ui-footer ${l}" ${l?'data-view="mobile"':""}>
|
|
45
|
+
${v?`
|
|
46
|
+
<div class="timepicker-ui-keyboard-icon-wrapper ${l}" tabindex="0" role="button" aria-pressed="false" aria-label="Toggle keyboard mode" data-view="desktop">
|
|
47
|
+
${l?k:h}
|
|
48
|
+
</div>`:""}
|
|
49
|
+
<div class="timepicker-ui-wrapper-btn ${l}">
|
|
50
|
+
<div class="timepicker-ui-cancel-btn ${l}" data-md3-ripple tabindex="0" role="button" aria-pressed="false" aria-label="${a}">${a}</div>
|
|
51
|
+
<div class="timepicker-ui-ok-btn ${l}" data-md3-ripple tabindex="0" role="button" aria-pressed="false" aria-label="${c}">${c}</div>
|
|
52
|
+
</div>
|
|
74
53
|
</div>
|
|
75
54
|
</div>
|
|
76
55
|
<div class="timepicker-announcer sr-only" role="status" aria-live="polite" aria-atomic="true"></div>
|
|
77
|
-
</div>`}});var je={};_e(je,{EventEmitter:()=>W,TimepickerUI:()=>U,default:()=>ze});module.exports=He(je);var Ie=(n,e)=>({...e,...n}),Ce=()=>{let n=document.createElement("div");n.className="timepicker-ui-measure",document.body.appendChild(n);let e=n.getBoundingClientRect().width-n.clientWidth;return document.body.removeChild(n),e},Le=n=>n*(Math.PI/180),be=(n,e)=>{let{touches:t}=n,{clientX:i,clientY:r}=n;if(!e)return;let{left:s,top:a}=e.getBoundingClientRect(),o={x:0,y:0};if(t===void 0)o={x:i-s,y:r-a};else if(t!==void 0&&t.length>0&&Object.keys(t).length>0){let{clientX:c,clientY:p}=t[0];o={x:c-s,y:p-a}}if(!(Object.keys(o).length===0&&o.constructor===Object))return o},Ve=(n,e)=>Math.round(n/e)*e,m=(n,e)=>n?n.classList.contains(e):!1;var _=(n,e,t,i,r,s)=>{if(!n)return;let a=new CustomEvent(t,{detail:i,bubbles:!0,cancelable:!0});try{if(n.dispatchEvent(a)&&e!==t){let c=new CustomEvent(e,{detail:i,bubbles:!0,cancelable:!0});n.dispatchEvent(c)}if(s&&"emit"in s&&typeof s.emit=="function"){let c=t.replace("timepicker:","").replace(/-/g,":");s.emit(c,i)}}catch(o){console.warn(`TimepickerUI: Error dispatching event ${t}:`,o)}if(r&&typeof r=="function")try{r(i)}catch(o){console.warn(`TimepickerUI: Error in ${t} callback:`,o)}},we=()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),ue=(n,e,t)=>Ve(n,e*t),Ae=n=>{if(!n)return;let e=JSON.parse(JSON.stringify(n)),t=Object.keys(e);return Object.values(e).reduce((i,r,s)=>(Number(r)?i[t[s]]=Number(r):r==="true"||r==="false"?i[t[s]]=JSON.parse(r):(typeof r=="string"||typeof r=="number"||typeof r=="boolean")&&(i[t[s]]=r),i),{})},V=(n,e)=>Array.from({length:Number(e)-Number(n)+1},(t,i)=>Number(n)+i),de=(n,e)=>Array.from({length:Number(e)-Number(n)+1},(t,i)=>Number(e)-i).reverse(),P=n=>{n&&typeof n=="function"&&n()},F=(n="")=>{let e=n.replace(/(AM|PM|am|pm)/,s=>` ${s}`),t=new Date(`September 20, 2000 ${e}`),i=t.getHours().toString().padStart(2,"0"),r=t.getMinutes().toString().padStart(2,"0");return`${i}:${r}`},O=n=>{let[e,t]=n.split(":"),i=Number(e),r=Number(t);return`${i<=9?"0"+i:i}:${r<=9?"0"+r:r}`},he=(n,e)=>{if(n.length<2)return!1;let t=n.map(i=>{let[r,s]=i.trim().split("-"),a,o;if(e==="12h"){if(!/\s?(AM|PM|am|pm)\s?$/.test(r.trim())||!/\s?(AM|PM|am|pm)\s?$/.test(s.trim()))throw new Error(`Invalid 12h format in interval: "${i}". AM/PM is required for 12h clock type.`);a=F(r.trim()),o=F(s.trim())}else{if(/\s?(AM|PM|am|pm)\s?/.test(r.trim())||/\s?(AM|PM|am|pm)\s?/.test(s.trim()))throw new Error(`Invalid 24h format in interval: "${i}". AM/PM is not allowed for 24h clock type.`);a=O(r.trim()),o=O(s.trim())}return{start:a,end:o,original:i}});for(let i=0;i<t.length;i++)for(let r=i+1;r<t.length;r++){let s=t[i],a=t[r];if(s.start<=a.end&&s.end>=a.start||a.start<=s.end&&a.end>=s.start)throw new Error(`Overlapping time intervals detected: "${s.original}" overlaps with "${a.original}"`)}return!1},xe=()=>typeof window<"u"&&window.crypto&&typeof window.crypto.randomUUID=="function"?window.crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,n=>{let e=Math.random()*16|0;return(n==="x"?e:e&3|8).toString(16)});var ke=n=>n.replace(/[^0-9:APMapm\s]/g,"");var ve=(n,e)=>{let t;return(...i)=>{clearTimeout(t),t=setTimeout(()=>{n(...i)},e)}};var ye="timepicker-ui",qe="mousedown mouseup mousemove mouseleave mouseover",Be="touchstart touchmove touchend",De=`${qe} ${Be}`,H="active";fe();var C=(n,e,t,i)=>{let r={hour:"12",minutes:"00",type:e==="24h"?void 0:"PM"};if(!n)return r;let s=n.value.trim();if(!t&&s==="")return r;if(typeof t=="boolean"&&t){let k=new Date,[u,b]=k.toLocaleTimeString().split(":"),d=Number(u)<=9?`0${Number(u)}`:u;if(/[a-z]/i.test(b)&&e==="12h"){let[v,M]=b.split(" ");return{hour:d,minutes:v,type:M}}return{hour:d,minutes:b,type:void 0}}if(typeof t=="object"){let{time:k,locales:u,preventClockType:b}=t,d=k??new Date;if(b&&i){let[g,E]=new Date(d).toLocaleTimeString().split(":");if(/[a-z]/i.test(E)){let[L,x]=E.split(" ");return{hour:g,minutes:L,type:x}}return{hour:Number(g)<=9?`0${Number(g)}`:g,minutes:E,type:void 0}}let[v,M]=new Date(d).toLocaleTimeString(u,{timeStyle:"short"}).split(":"),I=Number(v)<=9?`0${Number(v)}`:v;if(/[a-z]/i.test(M)&&e==="12h"){let[g,E]=M.split(" ");return{hour:I,minutes:g,type:E}}if(e==="12h"){let[g,E]=new Date(`1970-01-01T${v}:${M}Z`).toLocaleTimeString("en-US",{timeZone:"UTC",hour12:!0,hour:"numeric",minute:"numeric"}).split(":"),[A,L]=E.split(" ");return{hour:Number(g)<=9?`0${Number(g)}`:g,minutes:A,type:L}}return{hour:I,minutes:M,type:void 0}}let[a,o]=s.split(" "),[c="",p=""]=a.split(":"),T=c.replace(/\D/g,""),l=p.replace(/\D/g,""),h={hour:T.padStart(2,"0"),minutes:l.padStart(2,"0"),type:e==="12h"?o:void 0};if(T.length>2||l.length>2)return{...h,error:"Invalid input: too many digits.",currentHour:c,currentMin:p};if(/[a-z]/i.test(a))return{...h,error:"Input contains invalid letters."};if(s.includes(" ")&&(!o||s.length>8||o!=="AM"&&o!=="PM"))return{...h,error:"Invalid AM/PM format or length.",currentLength:s.length,currentType:o};let f=Number(T),y=Number(l);if(e==="12h"){if(f<1||f>12||y<0||y>59||o!=="AM"&&o!=="PM")return{...h,error:"Invalid 12h time.",currentHour:f,currentMin:y,currentType:o}}else if(f<0||f>23||y<0||y>59)return{...h,error:"Invalid 24h time.",currentHour:f,currentMin:y};return h},D=(n,e,t)=>{let i=Number(n);if(Number.isNaN(i))return!1;switch(e){case"hour":return t==="24h"?i>=0&&i<=23:i>0&&i<=12;case"minutes":return i>=0&&i<=59;default:return}};var Me={amLabel:"AM",animation:!0,appendModalSelector:"",backdrop:!0,cancelLabel:"CANCEL",editable:!1,enableScrollbar:!1,enableSwitchIcon:!1,mobileTimeLabel:"Enter Time",focusInputAfterCloseModal:!1,hourMobileLabel:"Hour",iconTemplate:'<i class="material-icons timepicker-ui-keyboard-icon">keyboard</i>',iconTemplateMobile:'<i class="material-icons timepicker-ui-keyboard-icon">schedule</i>',incrementHours:1,incrementMinutes:1,minuteMobileLabel:"Minute",mobile:!1,okLabel:"OK",pmLabel:"PM",timeLabel:"Select Time",switchToMinutesAfterSelectHour:!1,theme:"basic",clockType:"12h",disabledTime:void 0,currentTime:void 0,focusTrap:!0,delayHandler:300,inline:void 0,cssClass:void 0};var $e=n=>{if(!n)return;let{disabledTime:e,clockType:t}=n;if(!e||Object.keys(e).length<=0||e.constructor.name!=="Object")return;let{hours:i,minutes:r,interval:s}=e;if(s){delete e.hours,delete e.minutes;let a=Array.isArray(s)?s:[s];if(!t)throw new Error("clockType is required when using disabledTime.interval");try{he(a,t)}catch(p){throw p}return{value:a.map(p=>{let[T,l]=p.trim().split("-"),{hour:h,minutes:f,type:y}=C({value:T.trim()},t),{hour:k,minutes:u,type:b}=C({value:l.trim()},t),d=V(h,k).map(g=>g==="00"||Number(g)===0?`0${Number(g)}`:`${Number(g)}`),v=[],M=Number(f),I=Number(u);if(b===y)return M>0&&I<=0?(v.push(d[0],d[d.length-1]),d=d.slice(1,-1)):I<59&&I>0&&M<=0?(v.push(void 0,d[d.length-1]),d=d.slice(0,-1)):I>0&&M>0?(v.push(d[0],d[d.length-1]),d=d.slice(1,-1)):I===0&&M===0&&(v.push(void 0,d[d.length-1]),d.pop()),{removedStartedHour:v[0]!==void 0&&Number(v[0])<=9?`0${v[0]}`:v[0],removedEndHour:v[1]!==void 0&&Number(v[1])<=9?`0${v[1]}`:v[1],rangeArrHour:d,startMinutes:V(f,59).map(g=>Number(g)<=9?`0${g}`:`${g}`),endMinutes:de(0,u).map(g=>Number(g)<=9?`0${g}`:`${g}`),startType:y,endType:b};{let g=V(h,12).map(String),E=de(1,k).map(String),A=[],L=[];return M>0&&I<=0?(L.push(E[E.length-1]),A.push(g[0]),E.pop(),g.shift()):I<59&&I>0&&M<=0?(A.push(g[0]),L.push(E[E.length-1]),E.pop()):I>0&&M>0?(L.push(E[E.length-1]),A.push(g[0]),E.pop(),g.shift()):I===0&&M===0&&(L.push(E[E.length-1]),A.push(g[0]),E.pop()),{startType:y,endType:b,amHours:g,pmHours:E,removedAmHour:A[0]&&Number(A[0])<=9?`0${A[0]}`:A[0],removedPmHour:L[0]&&Number(L[0])<=9?`0${L[0]}`:L[0],startMinutes:Number(f)===0?[]:V(f,59).map(x=>Number(x)<=9?`0${x}`:`${x}`),endMinutes:de(0,u).map(x=>Number(x)<=9?`0${x}`:`${x}`)}}}).reduce((p,T)=>(Object.entries(T).forEach(([l,h])=>{Array.isArray(h)?p[l]=Array.isArray(p[l])?[...p[l],...h]:[...h]:p[l]=h}),p),{isInterval:!0,clockType:t,intervals:a})}}return i?.forEach(a=>{if(t==="12h"&&Number(a)>12)throw new Error("The disabled hours value has to be less than 13");if(t==="24h"&&Number(a)>23)throw new Error("The disabled hours value has to be less than 24")}),r?.forEach(a=>{if(Number(a)>59)throw new Error("The disabled minutes value has to be less than 60")}),{value:{hours:i?.map(a=>a==="00"||Number(a)===0?`0${Number(a)}`:`${Number(a)}`),minutes:r?.map(a=>Number(a)<=9?`0${a}`:`${a}`)}}},N=(n,e,t,i)=>{if(n){if(Array.isArray(n)&&n.length>0)return!n.map(s=>D(s,e,t)).some(s=>s===!1);if(typeof n=="string"||typeof n=="number"){let r=D(n,e,t),s=i?.map(Number).includes(Number(n));return!!(r&&!s)}}},w=(n,e,t,i,r)=>{if(!n||!e||!i||!r)return!1;let s=r==="12h"?F(`${n}:${e} ${t||""}`.trim()):O(`${n}:${e}`),a=Array.isArray(i)?i:[i];for(let o of a){let[c,p]=o.trim().split("-"),T,l;if(r==="12h"){let h=c.trim(),f=p.trim();if(!/\s?(AM|PM|am|pm)\s?$/.test(h)||!/\s?(AM|PM|am|pm)\s?$/.test(f)){console.warn(`Invalid 12h format in interval: "${o}". AM/PM is required for 12h clock type.`);continue}T=F(h),l=F(f)}else{let h=c.trim(),f=p.trim();if(/\s?(AM|PM|am|pm)\s?/.test(h)||/\s?(AM|PM|am|pm)\s?/.test(f)){console.warn(`Invalid 24h format in interval: "${o}". AM/PM is not allowed for 24h clock type.`);continue}T=O(h),l=O(f)}if(s>=T&&s<=l)return!1}return!0};var K=class{array;classToAdd;clockFace;tipsWrapper;theme;clockType;disabledTime;hour;activeTypeMode;_tipsCache=new Map;constructor(e){Object.assign(this,e)}clean=()=>{let e=this.tipsWrapper?.querySelectorAll("span.timepicker-ui-hour-time-12"),t=this.tipsWrapper?.querySelectorAll("span.timepicker-ui-minutes-time");this._removeClasses(e),this._removeClasses(t)};create=()=>{if(!this.clockFace||!this.array||!this.classToAdd||!this.tipsWrapper)return;let e=(this.clockFace.offsetWidth-32)/2,t=(this.clockFace.offsetHeight-32)/2,i=e-9,r=new Set(this._tipsCache.keys()),s=document.createDocumentFragment();this.array.forEach((a,o,c)=>{let p=`${this.classToAdd}-${a}-${this.theme||"default"}`;r.delete(p);let T=this._tipsCache.get(p);T||(T=this._createTip(a),this._tipsCache.set(p,T));let{wrapper:l,tip:h}=T;this._updateTipState(l,h,a);let f=Le(o*(360/c.length));l.style.left=`${e+Math.sin(f)*i}px`,l.style.bottom=`${t+Math.cos(f)*i}px`,s.appendChild(l)}),r.forEach(a=>this._tipsCache.delete(a)),this.tipsWrapper.innerHTML="",this.tipsWrapper.appendChild(s)};_createTip(e){let t=document.createElement("span"),i=document.createElement("span");i.innerHTML=e,i.setAttribute("role","option"),i.setAttribute("aria-selected","false"),i.tabIndex=0;let r=this.clockType==="24h"?"timepicker-ui-value-tips-24h":"timepicker-ui-value-tips";return i.classList.add(r),t.classList.add(this.classToAdd||""),this.theme&&(t.classList.add(this.theme),i.classList.add(this.theme)),t.appendChild(i),{wrapper:t,tip:i}}_updateTipState(e,t,i){if(e.classList.remove("timepicker-ui-tips-disabled"),t.classList.remove("timepicker-ui-tips-disabled"),t.removeAttribute("aria-disabled"),t.tabIndex=0,this.disabledTime&&(Array.isArray(this.disabledTime)&&this.disabledTime.includes(i)&&(t.classList.add("timepicker-ui-tips-disabled"),e.classList.add("timepicker-ui-tips-disabled"),t.setAttribute("aria-disabled","true")),this.disabledTime.isInterval&&this.disabledTime.clockType)){let r=this.classToAdd?.includes("minutes"),s=this.classToAdd?.includes("hour");if(r&&this.hour)!w(this.hour,i,this.activeTypeMode||"",this.disabledTime.intervals||[],this.disabledTime.clockType)&&(t.classList.add("timepicker-ui-tips-disabled"),e.classList.add("timepicker-ui-tips-disabled"),t.tabIndex=-1,t.setAttribute("aria-disabled","true"));else if(s){let a=!0;for(let o=0;o<60;o++){let c=o.toString().padStart(2,"0");if(w(i,c,this.activeTypeMode||"",this.disabledTime.intervals||[],this.disabledTime.clockType)){a=!1;break}}a&&(t.classList.add("timepicker-ui-tips-disabled"),e.classList.add("timepicker-ui-tips-disabled"),t.tabIndex=-1,t.setAttribute("aria-disabled","true"))}}}updateDisable=(e,t)=>{let i=this.tipsWrapper?.querySelectorAll("span.timepicker-ui-hour-time-12"),r=this.tipsWrapper?.querySelectorAll("span.timepicker-ui-minutes-time");if(this._removeClasses(i),this._removeClasses(r),!this.disabledTime?.isInterval||!this.disabledTime?.intervals)return;let s=this.disabledTime.intervals,a=this.disabledTime.clockType,o=t||this.activeTypeMode||"";i?.forEach(c=>{let p=c.querySelector(".timepicker-ui-value-tips");if(!p)return;let T=p.innerHTML,l=!0;for(let h=0;h<60;h++){let f=h.toString().padStart(2,"0");if(w(T,f,o,s,a)){l=!1;break}}l&&(c.classList.add("timepicker-ui-tips-disabled"),p.classList.add("timepicker-ui-tips-disabled"),p.setAttribute("aria-disabled","true"),p.tabIndex=-1)}),r&&e&&r.forEach(c=>{let p=c.querySelector(".timepicker-ui-value-tips");if(!p)return;let T=p.innerHTML;!w(e,T,o,s,a)&&(c.classList.add("timepicker-ui-tips-disabled"),p.classList.add("timepicker-ui-tips-disabled"),p.setAttribute("aria-disabled","true"),p.tabIndex=-1)})};_removeClasses=e=>{e?.forEach(t=>{let i=t.children[0];t.classList.remove("timepicker-ui-tips-disabled"),i&&(i.classList.remove("timepicker-ui-tips-disabled"),i.removeAttribute("aria-disabled"),i.tabIndex=0)})};destroy(){this.tipsWrapper&&(this.tipsWrapper.innerHTML=""),this._tipsCache.clear(),this.array=this.classToAdd=this.theme=this.clockType=void 0,this.disabledTime=this.hour=this.activeTypeMode=void 0,this.clockFace=this.tipsWrapper=void 0}};var z=class{pool=[];maxSize=5;acquire(e){let t=this.pool.pop();return t?(Object.assign(t,e),t):new K(e)}release(e){this.pool.length<this.maxSize&&this.pool.push(e)}clear(){this.pool=[]}};var j=class{timepicker;cleanupHandlers;constructor(e,t){this.timepicker=e,this.cleanupHandlers=t}handleCancelButton=()=>{let e=()=>{let t=C(this.timepicker.input,this.timepicker._options.clockType);_(this.timepicker._element,"cancel","timepicker:cancel",{...t,hourNotAccepted:this.timepicker.hour.value,minutesNotAccepted:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes},this.timepicker._options.onCancel,this.timepicker),this.timepicker.close()()};this.timepicker.cancelButton.addEventListener("click",e),this.cleanupHandlers.push(()=>{this.timepicker.cancelButton?.removeEventListener("click",e)})};handleOkButton=()=>{let e=()=>{let{clockType:t,disabledTime:i}=this.timepicker._options,r=D(this.timepicker.hour.value,"hour",t),s=D(this.timepicker.minutes.value,"minutes",t),a,o=N(this.timepicker.hour.value,"hour",t,i?.hours),c=N(this.timepicker.minutes.value,"minutes",t,i?.minutes);if(i?.interval&&(a=w(this.timepicker.hour.value,this.timepicker.minutes.value,this.timepicker.activeTypeMode?.textContent||"",i.interval,t)),a===!1||r===!1||s===!1||o===!1||c===!1){(a===!1||!s||!c)&&this.timepicker.minutes.classList.add("invalid-value"),(a===!1||!r||!o)&&this.timepicker.hour.classList.add("invalid-value");return}this.timepicker.input.value=`${this.timepicker.hour.value}:${this.timepicker.minutes.value} ${this.timepicker._options.clockType==="24h"?"":this.timepicker.activeTypeMode?.dataset.type}`.trimEnd(),_(this.timepicker._element,"","timepicker:confirm",{hour:this.timepicker.hour.value,minutes:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes},this.timepicker._options.onConfirm,this.timepicker),this.timepicker.close()()};this.timepicker.okButton?.addEventListener("click",e),this.cleanupHandlers.push(()=>{this.timepicker.okButton?.removeEventListener("click",e)})};handleBackdropClick=()=>{let e=t=>{let i=t.target;if(!m(i,"timepicker-ui-modal"))return;let r=C(this.timepicker.input,this.timepicker._options.clockType);_(this.timepicker._element,"","timepicker:cancel",{...r,hourNotAccepted:this.timepicker.hour.value,minutesNotAccepted:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes},this.timepicker._options.onCancel,this.timepicker),this.timepicker.close()()};this.timepicker.modalElement?.addEventListener("click",e),this.cleanupHandlers.push(()=>{this.timepicker.modalElement?.removeEventListener("click",e)})}};var Y=class{timepicker;_isDragging=!1;_animationFrameId=null;_pendingUpdate=!1;updateHandPosition;constructor(e,t){this.timepicker=e,this.updateHandPosition=t}get isDragging(){return this._isDragging}get animationFrameId(){return this._animationFrameId}cleanup(){document.removeEventListener("mousedown",this._onDragStart,!1),document.removeEventListener("touchstart",this._onDragStart),document.removeEventListener("mousemove",this._onDragMove,!1),document.removeEventListener("mouseup",this._onDragEnd,!1),document.removeEventListener("touchmove",this._onDragMove),document.removeEventListener("touchend",this._onDragEnd,!1),document.removeEventListener("mouseleave",this._onDragEnd,!1),this._animationFrameId&&(cancelAnimationFrame(this._animationFrameId),this._animationFrameId=null),this._isDragging=!1,this._pendingUpdate=!1}_onDragStart=e=>{let t=e.target;(m(t,"timepicker-ui-clock-face")||m(t,"timepicker-ui-circle-hand")||m(t,"timepicker-ui-hour-time-12")||m(t,"timepicker-ui-minutes-time")||m(t,"timepicker-ui-clock-hand")||m(t,"timepicker-ui-value-tips")||m(t,"timepicker-ui-value-tips-24h")||m(t,"timepicker-ui-tips-wrapper")||m(t,"timepicker-ui-tips-wrapper-24h"))&&!m(t,"timepicker-ui-tips-disabled")&&(e.preventDefault(),this._isDragging=!0,this.timepicker._isTouchMouseMove=!0,document.addEventListener("mousemove",this._onDragMove,!1),document.addEventListener("mouseup",this._onDragEnd,!1),document.addEventListener("touchmove",this._onDragMove,{passive:!1}),document.addEventListener("touchend",this._onDragEnd,!1),document.addEventListener("mouseleave",this._onDragEnd,!1),this._scheduleUpdate(e))};_onDragMove=e=>{this._isDragging&&(e.preventDefault(),this._scheduleUpdate(e))};_onDragEnd=e=>{if(!this._isDragging)return;this._isDragging=!1,this.timepicker._isTouchMouseMove=!1,document.removeEventListener("mousemove",this._onDragMove,!1),document.removeEventListener("mouseup",this._onDragEnd,!1),document.removeEventListener("touchmove",this._onDragMove),document.removeEventListener("touchend",this._onDragEnd,!1),document.removeEventListener("mouseleave",this._onDragEnd,!1),this._animationFrameId&&(cancelAnimationFrame(this._animationFrameId),this._animationFrameId=null,this._pendingUpdate=!1);let t=e.target,{switchToMinutesAfterSelectHour:i}=this.timepicker._options;i&&(m(t,"timepicker-ui-value-tips")||m(t,"timepicker-ui-value-tips-24h")||m(t,"timepicker-ui-tips-wrapper"))&&this.timepicker.minutes.click()};_scheduleUpdate=e=>{this._pendingUpdate||(this._pendingUpdate=!0,this._animationFrameId=requestAnimationFrame(()=>{this._pendingUpdate=!1,this.updateHandPosition(e)}))};handleEventToMoveHand=e=>{let{type:t}=e;t==="mousedown"||t==="touchstart"?this._onDragStart(e):t==="mouseup"||t==="touchend"?this._onDragEnd(e):(t==="mousemove"||t==="touchmove")&&this._isDragging&&this._onDragMove(e)};handleMoveHand=()=>{this.timepicker._options.mobile||this.timepicker._isMobileView||(document.addEventListener("mousedown",this._onDragStart,!1),document.addEventListener("touchstart",this._onDragStart,{passive:!1}))}};var S=(n,e)=>{if(!n)return;let t=n.querySelector(".timepicker-announcer");t&&(t.textContent="",setTimeout(()=>{t.textContent=e},100))},Z=(n,e)=>{n&&n.setAttribute("aria-pressed",String(e))};var J=class{timepicker;cleanupHandlers;constructor(e,t){this.timepicker=e,this.cleanupHandlers=t}handleAmClick=()=>{this.timepicker._clickTouchEvents.forEach(e=>{let t=i=>{let r=i.target;r.classList.add(H),this.timepicker.PM.classList.remove(H),Z(r,!0),Z(this.timepicker.PM,!1),S(this.timepicker.modalElement,"AM selected"),this.timepicker._options.clockType==="12h"&&this.timepicker._options.disabledTime?.interval&&setTimeout(()=>{let s=this.timepicker.clockFacePool.acquire({clockFace:this.timepicker.clockFace,tipsWrapper:this.timepicker.tipsWrapper,disabledTime:this.timepicker._disabledTime?.value,clockType:this.timepicker._options.clockType,activeTypeMode:"AM"});s.updateDisable(this.timepicker.hour.value,"AM"),this.timepicker.clockFacePool.release(s)},300),_(this.timepicker._element,"","timepicker:select-am",{hour:this.timepicker.hour.value,minutes:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes},this.timepicker._options.onSelectAM,this.timepicker)};this.timepicker.AM.addEventListener(e,t),this.cleanupHandlers.push(()=>{this.timepicker.AM?.removeEventListener(e,t)})})};handlePmClick=()=>{this.timepicker._clickTouchEvents.forEach(e=>{let t=i=>{let r=i.target;r.classList.add(H),this.timepicker.AM.classList.remove(H),Z(r,!0),Z(this.timepicker.AM,!1),S(this.timepicker.modalElement,"PM selected"),this.timepicker._options.clockType==="12h"&&this.timepicker._options.disabledTime?.interval&&setTimeout(()=>{let s=this.timepicker.clockFacePool.acquire({clockFace:this.timepicker.clockFace,tipsWrapper:this.timepicker.tipsWrapper,disabledTime:this.timepicker._disabledTime?.value,clockType:this.timepicker._options.clockType,activeTypeMode:"PM"});s.updateDisable(this.timepicker.hour.value,"PM"),this.timepicker.clockFacePool.release(s)},300),_(this.timepicker._element,"","timepicker:select-pm",{hour:this.timepicker.hour.value,minutes:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes},this.timepicker._options.onSelectPM,this.timepicker)};this.timepicker.PM.addEventListener(e,t),this.cleanupHandlers.push(()=>{this.timepicker.PM?.removeEventListener(e,t)})})}};var X=class{timepicker;cleanupHandlers;constructor(e,t){this.timepicker=e,this.cleanupHandlers=t}handleClasses24h=(e,t,i=!1)=>{let r=e.target,s=e.relatedTarget;this.timepicker.hourTips&&this.timepicker._options.clockType==="24h"&&(Number(r.textContent)>12||Number(r.textContent)===0?this.timepicker.clockManager&&this.timepicker.clockManager.setCircleClockClasses24h():this.timepicker.clockManager&&this.timepicker.clockManager.removeCircleClockClasses24h(),this.timepicker._options.mobile||this.timepicker.tipsWrapperFor24h?.classList.remove("timepicker-ui-tips-wrapper-24h-disabled")),!(!r||!t)&&(t.value=ke(r.value.replace(/\D+/g,"")),i&&s?s.classList.contains("timepicker-ui-am")||s.classList.contains("timepicker-ui-pm")||t.click():i&&t.click())};handleHourEvents=()=>{this.timepicker._inputEvents.forEach(i=>{let r=s=>{let a=s.target;this.timepicker.clockFace!==null&&this.timepicker.animationManager&&this.timepicker.animationManager.handleAnimationSwitchTipsMode(),this.timepicker._options.clockType==="24h"&&this.timepicker.clockFace!==null&&(Number(this.timepicker.hour.value)>12||this.timepicker.hour.value==="00"?this.timepicker.clockManager&&this.timepicker.clockManager.setCircleClockClasses24h():this.timepicker.clockManager&&this.timepicker.clockManager.removeCircleClockClasses24h(),this.timepicker._options.mobile||this.timepicker.tipsWrapperFor24h?.classList.remove("timepicker-ui-tips-wrapper-24h-disabled")),this.timepicker.clockManager&&this.timepicker.clockManager.setHoursToClock(a.value),this.timepicker.minutes.classList.remove(H),this.timepicker.hour.classList.add(H),this.timepicker._options.clockType==="12h"&&this.timepicker._options.disabledTime?.interval&&setTimeout(()=>{let o=this.timepicker.clockFacePool.acquire({clockFace:this.timepicker.clockFace,tipsWrapper:this.timepicker.tipsWrapper,disabledTime:this.timepicker._disabledTime?.value,clockType:this.timepicker._options.clockType,activeTypeMode:this.timepicker.activeTypeMode?.textContent||""});o.updateDisable(this.timepicker.hour.value,this.timepicker.activeTypeMode?.textContent||""),this.timepicker.clockFacePool.release(o)},300),_(this.timepicker._element,"","timepicker:select-hour",{hour:this.timepicker.hour.value,minutes:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes},this.timepicker._options.onSelectHour,this.timepicker),this.timepicker.clockFace!==null&&this.timepicker.circle.classList.remove("small-circle")};this.timepicker.hour?.addEventListener(i,r),this.cleanupHandlers.push(()=>{this.timepicker.hour?.removeEventListener(i,r)})});let e=i=>this.handleClasses24h(i,this.timepicker.hour,!0),t=i=>this.handleClasses24h(i,this.timepicker.hour,!1);this.timepicker.hour?.addEventListener("blur",e),this.timepicker.hour?.addEventListener("focus",t),this.cleanupHandlers.push(()=>{this.timepicker.hour?.removeEventListener("blur",e),this.timepicker.hour?.removeEventListener("focus",t)})};handleMinutesEvents=()=>{this.timepicker._inputEvents.forEach(i=>{let r=s=>{let a=s.target;this.timepicker.clockFace!==null&&(this.timepicker.animationManager&&this.timepicker.animationManager.handleAnimationSwitchTipsMode(),this.timepicker.clockManager&&this.timepicker.clockManager.setMinutesToClock(a.value)),this.timepicker._options.clockType==="24h"&&(this.timepicker.clockManager&&this.timepicker.clockManager.removeCircleClockClasses24h(),this.timepicker._options.mobile||this.timepicker.tipsWrapperFor24h?.classList.add("timepicker-ui-tips-wrapper-24h-disabled")),this.timepicker.hour.classList.remove(H),this.timepicker.minutes.classList.add(H),this.timepicker._options.clockType==="12h"&&this.timepicker._options.disabledTime?.interval&&setTimeout(()=>{let o=this.timepicker.clockFacePool.acquire({clockFace:this.timepicker.clockFace,tipsWrapper:this.timepicker.tipsWrapper,disabledTime:this.timepicker._disabledTime?.value,clockType:this.timepicker._options.clockType,activeTypeMode:this.timepicker.activeTypeMode?.textContent||""});o.updateDisable(this.timepicker.hour.value,this.timepicker.activeTypeMode?.textContent||""),this.timepicker.clockFacePool.release(o)},300),_(this.timepicker._element,"","timepicker:select-minute",{hour:this.timepicker.hour.value,minutes:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes},this.timepicker._options.onSelectMinute,this.timepicker)};this.timepicker.minutes.addEventListener(i,r),this.cleanupHandlers.push(()=>{this.timepicker.minutes?.removeEventListener(i,r)})});let e=i=>this.handleClasses24h(i,this.timepicker.minutes,!0),t=i=>this.handleClasses24h(i,this.timepicker.minutes,!1);this.timepicker.minutes?.addEventListener("blur",e),this.timepicker.minutes?.addEventListener("focus",t),this.cleanupHandlers.push(()=>{this.timepicker.minutes?.removeEventListener("blur",e),this.timepicker.minutes?.removeEventListener("focus",t)})}};var G=class{timepicker;constructor(e){this.timepicker=e}updateHandPosition=e=>{let{target:t,type:i}=e,r=t,{incrementMinutes:s,incrementHours:a}=this.timepicker._options;if(!be(e,this.timepicker.clockFace))return;let o=be(e,this.timepicker.clockFace),c=this.timepicker.clockFace.offsetWidth/2,p=o&&Math.atan2(o.y-c,o.x-c);if(this.timepicker.minutesTips!==null){this.timepicker.minutes.classList.add(H);let f=p&&ue(Math.trunc(p*180/Math.PI)+90,s??1,6);if(f===void 0)return;let y;if(f<0?(y=Math.round(360+f/6)%60,f=360+Math.round(f/6)*6):(y=Math.round(f/6)%60,f=Math.round(f/6)*6),this.timepicker?._disabledTime?.value?.isInterval){let k=y<=9?`0${y}`:`${y}`,u=this.timepicker.hour.value,b=this.timepicker.activeTypeMode?.textContent||"";if(!w(u,k,b,this.timepicker._disabledTime.value.intervals,this.timepicker._options.clockType))return}else{let k=this.timepicker._disabledTime?.value?.minutes;if(k&&Array.isArray(k)&&k.includes(y<=9?`0${y}`:`${y}`))return}this.timepicker.minutes.value=y>=10?`${y}`:`0${y}`,this.timepicker.domBatcher.schedule(()=>{this.timepicker.minutes.setAttribute("aria-valuenow",this.timepicker.minutes.value),this.timepicker.clockHand.style.transform=`rotateZ(${f}deg)`}),this.timepicker._degreesMinutes=f,this.timepicker.clockManager&&(this.timepicker.clockManager.toggleClassActiveToValueTips(this.timepicker.minutes.value),this.timepicker.clockManager.removeBgColorToCirleWithMinutesTips(),this.timepicker.clockManager.setBgColorToCircleWithMinutesTips()),S(this.timepicker.modalElement,`Minute ${this.timepicker.minutes.value}`),_(this.timepicker._element,"update","timepicker:update",{...C(this.timepicker.input,this.timepicker._options.clockType),degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes,eventType:i,type:this.timepicker.activeTypeMode?.dataset.type},this.timepicker._options.onUpdate,this.timepicker)}let T=e.touches,l=T?T[0]:void 0,h=T&&l?document.elementFromPoint(l.clientX,l.clientY):null;if(this.timepicker.hourTips!==null){this.timepicker.hour?.classList.add(H);let f=this.timepicker._options.clockType==="24h",y=!1;if(f){let k=this.timepicker.clockFace.offsetWidth/2,u=o?Math.sqrt(Math.pow(o.x-k,2)+Math.pow(o.y-k,2)):0,b=k*.6;y=u<b}if(!m(h||r,"timepicker-ui-tips-disabled")&&(!f||!y)&&(m(h||r,"timepicker-ui-value-tips")||m(h||r,"timepicker-ui-tips-wrapper")||m(h||r,"timepicker-ui-value-tips-24h")||m(h||r,"timepicker-ui-tips-wrapper-24h"))){let k=p&&ue(Math.trunc(p*180/Math.PI)+90,a??1,30);if(this.timepicker._degreesHours=k,k===void 0)return;let u;if(k<0?(u=Math.round(360+k/30)%12,k=360+k):(u=Math.round(k/30)%12,(u===0||u>12)&&(u=12)),this.timepicker._disabledTime?.value?.isInterval){let b=u>9?`${u}`:`0${u}`,d=this.timepicker.activeTypeMode?.textContent||"",v=!0;for(let M=0;M<60;M++){let I=M<=9?`0${M}`:`${M}`;if(w(b,I,d,this.timepicker._disabledTime.value.intervals,this.timepicker._options.clockType)){v=!1;break}}if(v)return}else{let b=this.timepicker._disabledTime?.value?.hours;if(b&&Array.isArray(b)&&b.includes(u.toString()))return}this.timepicker.clockHand.style.transform=`rotateZ(${k}deg)`,this.timepicker.hour.value=u>9?`${u}`:`0${u}`,this.timepicker.hour.setAttribute("aria-valuenow",this.timepicker.hour.value),this.timepicker.clockManager&&(this.timepicker.clockManager.removeCircleClockClasses24h(),this.timepicker.clockManager.toggleClassActiveToValueTips(u)),S(this.timepicker.modalElement,`Hour ${this.timepicker.hour.value}`)}if(f&&!m(h||r,"timepicker-ui-tips-disabled")&&y&&(m(h||r,"timepicker-ui-value-tips-24h")||m(h||r,"timepicker-ui-tips-wrapper-24h")||m(h||r,"timepicker-ui-value-tips")||m(h||r,"timepicker-ui-tips-wrapper"))){let k=p&&ue(Math.trunc(p*180/Math.PI)+90,a??1,30);this.timepicker._degreesHours=k;let u;if(k===void 0)return;if(k<0?(u=Math.round(360+k/30)%24,k=360+k):(u=Math.round(k/30)+12,u===12&&(u="00")),this.timepicker._disabledTime?.value?.isInterval){let b=typeof u=="number"?u<=9?`0${u}`:`${u}`:u,d=!0;for(let v=0;v<60;v++){let M=v<=9?`0${v}`:`${v}`;if(w(b,M,"",this.timepicker._disabledTime.value.intervals,this.timepicker._options.clockType)){d=!1;break}}if(d)return}else{let b=this.timepicker._disabledTime?.value?.hours;if(b&&Array.isArray(b)&&b.includes(u.toString()))return}this.timepicker.clockManager&&this.timepicker.clockManager.setCircleClockClasses24h(),this.timepicker.clockHand.style.transform=`rotateZ(${k}deg)`,this.timepicker.hour.value=`${u}`,this.timepicker.hour.setAttribute("aria-valuenow",this.timepicker.hour.value),this.timepicker.clockManager&&this.timepicker.clockManager.toggleClassActiveToValueTips(u),S(this.timepicker.modalElement,`Hour ${this.timepicker.hour.value}`)}_(this.timepicker._element,"","timepicker:update",{...C(this.timepicker.input,this.timepicker._options.clockType),degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes,eventType:i,type:this.timepicker.activeTypeMode?.dataset.type},this.timepicker._options.onUpdate,this.timepicker)}}};var Q=class{timepicker;cleanupHandlers;constructor(e,t){this.timepicker=e,this.cleanupHandlers=t}handleOpenOnClick=()=>{this.timepicker.openElement.forEach(e=>{let t=()=>this.timepicker._eventsBundle();e?.addEventListener("click",t),this.cleanupHandlers.push(()=>{e?.removeEventListener("click",t)})})};handleOpenOnEnterFocus=()=>{let e=({target:t,key:i})=>{t.disabled||i==="Enter"&&this.timepicker.open()};this.timepicker.input.addEventListener("keydown",e),this.cleanupHandlers.push(()=>{this.timepicker.input.removeEventListener("keydown",e)})};handleClickOnHourMobile=()=>{document.addEventListener("mousedown",this.timepicker._eventsClickMobileHandler),document.addEventListener("touchstart",this.timepicker._eventsClickMobileHandler),this.cleanupHandlers.push(()=>{document.removeEventListener("mousedown",this.timepicker._eventsClickMobileHandler),document.removeEventListener("touchstart",this.timepicker._eventsClickMobileHandler)})};handlerClickHourMinutes=async e=>{if(!this.timepicker.modalElement)return;let{clockType:t,editable:i}=this.timepicker._options,r=e.target,s=D(this.timepicker.hour.value,"hour",t),a=D(this.timepicker.minutes.value,"minutes",t);i&&(!m(r,"timepicker-ui-hour")&&!m(r,"timepicker-ui-minutes")?s===!0&&a===!0&&(a&&this.timepicker.minutes.classList.remove("invalid-value"),s&&this.timepicker.hour?.classList.remove("invalid-value")):(s===!1||a===!1)&&(a||this.timepicker.minutes.classList.add("invalid-value"),s||this.timepicker.hour?.classList.add("invalid-value")))};handleIconChangeView=async()=>{if(this.timepicker._options.enableSwitchIcon&&this.timepicker.configManager){let e=this.timepicker.configManager.handlerViewChange();we()?(this.timepicker.keyboardClockIcon.addEventListener("touchstart",e),this.cleanupHandlers.push(()=>{this.timepicker.keyboardClockIcon?.removeEventListener("touchstart",e)})):(this.timepicker.keyboardClockIcon.addEventListener("click",e),this.cleanupHandlers.push(()=>{this.timepicker.keyboardClockIcon?.removeEventListener("click",e)}))}};handleKeyPress=e=>{if(e.key==="Escape"&&this.timepicker.modalElement){let t=C(this.timepicker.input,this.timepicker._options.clockType);_(this.timepicker._element,"","timepicker:cancel",{...t,hourNotAccepted:this.timepicker.hour.value,minutesNotAccepted:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes},this.timepicker._options.onCancel,this.timepicker),this.timepicker.close()()}};handleEscClick=()=>{document.addEventListener("keydown",this.handleKeyPress),this.cleanupHandlers.push(()=>{document.removeEventListener("keydown",this.handleKeyPress)})};focusTrapHandler=()=>{setTimeout(()=>{let e=this.timepicker.wrapper?.querySelectorAll('div[tabindex="0"]:not([disabled])'),t=this.timepicker.wrapper?.querySelectorAll('input[tabindex="0"]:not([disabled])');if(!e||e.length<=0||t.length<=0)return;let i=[...t,...e],r=i[0],s=i[i.length-1];this.timepicker.wrapper.focus();let a=o=>{let{key:c,shiftKey:p,target:T}=o,l=T;if(c==="Tab"&&(p?document.activeElement===r&&(s.focus(),o.preventDefault()):document.activeElement===s&&(r.focus(),o.preventDefault())),c==="ArrowUp"||c==="ArrowDown"||c==="ArrowLeft"||c==="ArrowRight"){let h=m(l,"timepicker-ui-value-tips")||m(l,"timepicker-ui-value-tips-24h"),f=m(l,"timepicker-ui-hour"),y=m(l,"timepicker-ui-minutes");if(h){let k=l.parentElement,u=m(k,"timepicker-ui-minutes-time"),b=m(k,"timepicker-ui-hour-time-12")||m(k,"timepicker-ui-hour-time-24");if(u){let d=parseInt(this.timepicker.minutes.value||"0"),v=d;c==="ArrowUp"||c==="ArrowRight"?v=d>=59?0:d+1:(c==="ArrowDown"||c==="ArrowLeft")&&(v=d<=0?59:d-1);let M=v<10?`0${v}`:`${v}`,I=this.timepicker.hour.value,g=this.timepicker.activeTypeMode?.textContent||"";if(this.timepicker._disabledTime?.value?.isInterval&&this.timepicker._disabledTime?.value?.intervals&&!w(I,M,g,this.timepicker._disabledTime.value.intervals,this.timepicker._options.clockType))return;this.timepicker.minutes.value=M,this.timepicker.minutes.setAttribute("aria-valuenow",this.timepicker.minutes.value),this.timepicker.clockManager&&(this.timepicker.clockManager.setTransformToCircleWithSwitchesMinutes(this.timepicker.minutes.value),this.timepicker.clockManager.toggleClassActiveToValueTips(v))}else if(b){let d=parseInt(this.timepicker.hour.value||"0"),v=this.timepicker._options.clockType==="24h",M=v?23:12,I=v?0:1,g=d;c==="ArrowUp"||c==="ArrowRight"?g=d>=M?I:d+1:(c==="ArrowDown"||c==="ArrowLeft")&&(g=d<=I?M:d-1);let E=g<10?`0${g}`:`${g}`,A=this.timepicker.activeTypeMode?.textContent||"";if(this.timepicker._disabledTime?.value?.isInterval&&this.timepicker._disabledTime?.value?.intervals){let L=!0;for(let x=0;x<60;x++){let Ue=x.toString().padStart(2,"0");if(w(E,Ue,A,this.timepicker._disabledTime.value.intervals,this.timepicker._options.clockType)){L=!1;break}}if(L)return}this.timepicker.hour.value=E,this.timepicker.hour.setAttribute("aria-valuenow",this.timepicker.hour.value),this.timepicker.clockManager&&(this.timepicker.clockManager.setTransformToCircleWithSwitchesHour(this.timepicker.hour.value),this.timepicker.clockManager.toggleClassActiveToValueTips(g))}}if(f||y){let k=parseInt(l.value)||0,u=f,b=u?this.timepicker._options.clockType==="12h"?12:23:59,d=u&&this.timepicker._options.clockType==="12h"?1:0,v=k;c==="ArrowUp"?v=k>=b?d:k+1:c==="ArrowDown"&&(v=k<=d?b:k-1),l.value=v<10?`0${v}`:`${v}`,l.setAttribute("aria-valuenow",l.value)}}(c==="a"||c==="A")&&this.timepicker.AM&&!m(l,"timepicker-ui-hour")&&!m(l,"timepicker-ui-minutes")&&this.timepicker.AM.click(),(c==="p"||c==="P")&&this.timepicker.PM&&!m(l,"timepicker-ui-hour")&&!m(l,"timepicker-ui-minutes")&&this.timepicker.PM.click(),c==="Enter"&&(m(l,"timepicker-ui-minutes")&&this.timepicker.minutes.click(),m(l,"timepicker-ui-hour")&&this.timepicker.hour.click(),m(l,"timepicker-ui-am")&&this.timepicker.AM.click(),m(l,"timepicker-ui-pm")&&this.timepicker.PM.click(),m(l,"timepicker-ui-ok-btn")&&this.timepicker.okButton.click(),m(l,"timepicker-ui-cancel-btn")&&this.timepicker.cancelButton.click(),m(l,"timepicker-ui-keyboard-icon-wrapper")&&this.timepicker.keyboardClockIcon.click())};this.timepicker.wrapper.addEventListener("keydown",a),this.cleanupHandlers.push(()=>{this.timepicker.wrapper?.removeEventListener("keydown",a)})},100)}};var ee=class{timepicker;cleanupHandlers;constructor(e,t){this.timepicker=e,this.cleanupHandlers=t}handleInlineAutoUpdate=()=>{if(!this.timepicker._options.inline?.enabled||this.timepicker._options.inline.autoUpdate===!1)return;let e=()=>{let r=this.timepicker.hour?.value,s=this.timepicker.minutes?.value,a=this.timepicker.activeTypeMode?.textContent;if(r&&s){let o="";if(this.timepicker._options.clockType==="24h"){let c=r.padStart(2,"0"),p=s.padStart(2,"0");o=`${c}:${p}`}else{let c=r,p=s.padStart(2,"0");o=`${c}:${p} ${a||"AM"}`}if(this.timepicker.input){this.timepicker.input.value=o;let c=new Event("change",{bubbles:!0});this.timepicker.input.dispatchEvent(c),_(this.timepicker._element,"","timepicker:confirm",{hour:r,minutes:s,type:a,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes},this.timepicker._options.onConfirm,this.timepicker)}}};["input","change"].forEach(r=>{let s=()=>setTimeout(e,50),a=()=>setTimeout(e,50);this.timepicker.hour?.addEventListener(r,s),this.timepicker.minutes?.addEventListener(r,a),this.cleanupHandlers.push(()=>{this.timepicker.hour?.removeEventListener(r,s),this.timepicker.minutes?.removeEventListener(r,a)})}),this.timepicker._options.clockType!=="24h"&&this.timepicker._clickTouchEvents.forEach(r=>{let s=()=>setTimeout(e,50),a=()=>setTimeout(e,50);this.timepicker.AM?.addEventListener(r,s),this.timepicker.PM?.addEventListener(r,a),this.cleanupHandlers.push(()=>{this.timepicker.AM?.removeEventListener(r,s),this.timepicker.PM?.removeEventListener(r,a)})});let i=()=>setTimeout(e,100);this.timepicker.clockFace?.addEventListener("click",i),this.cleanupHandlers.push(()=>{this.timepicker.clockFace?.removeEventListener("click",i)})}};var te=class{_cleanupHandlers=[];buttonHandlers;dragHandlers;typeModeHandlers;inputHandlers;clockHandPositionUpdater;miscHandlers;inlineHandlers;constructor(e){this.clockHandPositionUpdater=new G(e),this.dragHandlers=new Y(e,this.clockHandPositionUpdater.updateHandPosition),this.buttonHandlers=new j(e,this._cleanupHandlers),this.typeModeHandlers=new J(e,this._cleanupHandlers),this.inputHandlers=new X(e,this._cleanupHandlers),this.miscHandlers=new Q(e,this._cleanupHandlers),this.inlineHandlers=new ee(e,this._cleanupHandlers)}destroy(){this._cleanupHandlers.forEach(e=>{try{e()}catch(t){console.error("EventManager cleanup error:",t)}}),this._cleanupHandlers=[],this.dragHandlers.cleanup()}handleOpenOnClick=()=>this.miscHandlers.handleOpenOnClick();handleOpenOnEnterFocus=()=>this.miscHandlers.handleOpenOnEnterFocus();handleCancelButton=()=>this.buttonHandlers.handleCancelButton();handleOkButton=()=>this.buttonHandlers.handleOkButton();handleBackdropClick=()=>this.buttonHandlers.handleBackdropClick();handleAmClick=()=>this.typeModeHandlers.handleAmClick();handlePmClick=()=>this.typeModeHandlers.handlePmClick();handleHourEvents=()=>this.inputHandlers.handleHourEvents();handleMinutesEvents=()=>this.inputHandlers.handleMinutesEvents();handleEventToMoveHand=e=>this.dragHandlers.handleEventToMoveHand(e);handleMoveHand=()=>this.dragHandlers.handleMoveHand();handleClickOnHourMobile=()=>this.miscHandlers.handleClickOnHourMobile();handlerClickHourMinutes=e=>this.miscHandlers.handlerClickHourMinutes(e);handleIconChangeView=()=>this.miscHandlers.handleIconChangeView();handleEscClick=()=>this.miscHandlers.handleEscClick();focusTrapHandler=()=>this.miscHandlers.focusTrapHandler();handleInlineAutoUpdate=()=>this.inlineHandlers.handleInlineAutoUpdate();get _isDragging(){return this.dragHandlers.isDragging}get _animationFrameId(){return this.dragHandlers.animationFrameId}_onDragStart=e=>this.dragHandlers._onDragStart(e);_onDragMove=e=>this.dragHandlers._onDragMove(e);_onDragEnd=e=>this.dragHandlers._onDragEnd(e)};var ie=class{timepicker;timeouts=[];originalOverflow;originalPaddingRight;constructor(e){this.timepicker=e}runWithTimeout(e,t=300){let i=setTimeout(e,t);this.timeouts.push(i)}clearAllTimeouts(){this.timeouts.forEach(clearTimeout),this.timeouts=[]}clearExistingModal(){let e=document.querySelector(".timepicker-ui-modal");e&&e.remove()}setModalTemplate=()=>{if(!this.timepicker._options)return;if(this.clearExistingModal(),this.timepicker._options.inline?.enabled){let t=document.getElementById(this.timepicker._options.inline.containerId);if(!t)return;t.innerHTML="",t.insertAdjacentHTML("beforeend",this.timepicker.modalTemplate);let i=t.querySelector(".timepicker-ui-modal");if(i){i.classList.add("timepicker-ui--inline");let{showButtons:r}=this.timepicker._options.inline;(r===!1||r===void 0)&&i.querySelectorAll(".timepicker-ui-wrapper-btn, .timepicker-ui-wrapper-btn.mobile").forEach(s=>s.style.display="none")}return}let{appendModalSelector:e}=this.timepicker._options;e?document.querySelector(e)?.insertAdjacentHTML("beforeend",this.timepicker.modalTemplate):document.body.insertAdjacentHTML("beforeend",this.timepicker.modalTemplate)};setScrollbarOrNot=()=>{this.timepicker._options.inline?.enabled||(this.timepicker._options.enableScrollbar?this.runWithTimeout(()=>{document.body.style.overflowY=this.originalOverflow||"",document.body.style.paddingRight=this.originalPaddingRight||""},400):(this.originalOverflow=document.body.style.overflowY,this.originalPaddingRight=document.body.style.paddingRight,document.body.style.paddingRight=`${Ce()}px`,document.body.style.overflowY="hidden"))};removeBackdrop=()=>{this.timepicker._options.inline?.enabled||this.timepicker._options.backdrop||(this.timepicker.modalElement?.classList.add("removed"),this.timepicker.openElement.forEach(e=>e?.classList.add("disabled")))};setNormalizeClass=()=>{let e=this.timepicker.modalElement;if(!e)return;e.classList.add("timepicker-ui-normalize"),e.querySelectorAll(":scope > div").forEach(i=>i.classList.add("timepicker-ui-normalize"))};setShowClassToBackdrop=()=>{if(this.timepicker._options.inline?.enabled){this.timepicker.modalElement?.classList.add("show");return}this.timepicker._options.backdrop&&this.runWithTimeout(()=>{this.timepicker.modalElement?.classList.add("show")},300)};setFlexEndToFooterIfNoKeyboardIcon=()=>{!this.timepicker._options.enableSwitchIcon&&this.timepicker.footer&&(this.timepicker.footer.style.justifyContent="flex-end")};destroy(){this.clearAllTimeouts(),this.timepicker._options.inline?.enabled||(document.body.style.overflowY=this.originalOverflow||"",document.body.style.paddingRight=this.originalPaddingRight||""),this.clearExistingModal()}};var Ee={MODAL:150,CLOCK:600,TIPS:401},re=class{timepicker;timeouts=[];constructor(e){this.timepicker=e}runWithAnimation(e,t=Ee.MODAL){if(this.timepicker._options.animation){let i=setTimeout(e,t);this.timeouts.push(i)}else e()}clearAllTimeouts(){this.timeouts.forEach(clearTimeout),this.timeouts=[]}setAnimationToOpen(){this.clearAllTimeouts(),this.timepicker.modalElement?.classList.add("opacity"),this.runWithAnimation(()=>{this.timepicker.modalElement?.classList.add("show")})}removeAnimationToClose(){this.clearAllTimeouts(),this.timepicker.modalElement&&this.runWithAnimation(()=>{this.timepicker.modalElement?.classList.remove("show"),this.timepicker.modalElement?.classList.remove("opacity")})}handleAnimationClock(){this.timepicker._options.animation&&this.runWithAnimation(()=>{this.timepicker.clockFace?.classList.add("timepicker-ui-clock-animation");let e=setTimeout(()=>{this.timepicker.clockFace?.classList.remove("timepicker-ui-clock-animation")},Ee.CLOCK);this.timeouts.push(e)})}handleAnimationSwitchTipsMode(){let{clockHand:e}=this.timepicker;if(!e)return;e.classList.add("timepicker-ui-tips-animation");let t=setTimeout(()=>{e.classList.remove("timepicker-ui-tips-animation")},Ee.TIPS);this.timeouts.push(t)}destroy(){this.clearAllTimeouts()}};fe();var se=class{timepicker;constructor(e){this.timepicker=e}removeCircleClockClasses24h(){this.timepicker.circle?.classList.remove("timepicker-ui-circle-hand-24h"),this.timepicker.clockHand?.classList.remove("timepicker-ui-clock-hand-24h")}setCircleClockClasses24h(){this.timepicker.circle&&this.timepicker.circle?.classList.add("timepicker-ui-circle-hand-24h"),this.timepicker.clockHand&&this.timepicker.clockHand?.classList.add("timepicker-ui-clock-hand-24h")}setOnStartCSSClassesIfClockType24h(){if(this.timepicker._options.clockType==="24h"){let t=this.timepicker?.configManager?.getInputValue(this.timepicker.input,this.timepicker._options.clockType,this.timepicker._options.currentTime)?.hour;this.timepicker.input.value.length>0&&(t=this.timepicker.input.value.split(":")[0]),(Number(t)>12||Number(t)===0)&&this.setCircleClockClasses24h()}}setBgColorToCircleWithMinutesTips=()=>{if(this.timepicker.minutes.value&&R.includes(this.timepicker.minutes.value)){let e=getComputedStyle(this.timepicker.circle).getPropertyValue("--timepicker-primary").trim();e&&(this.timepicker.circle.style.backgroundColor=e),this.timepicker.circle.classList.remove("small-circle")}};removeBgColorToCirleWithMinutesTips=()=>{this.timepicker.minutes.value&&R.includes(this.timepicker.minutes.value)||(this.timepicker.circle.style.backgroundColor="",this.timepicker.circle.classList.add("small-circle"))};setClassActiveToHourOnOpen=()=>{this.timepicker._options.mobile||this.timepicker._isMobileView||this.timepicker.hour?.classList.add(H)};setMinutesToClock=e=>{this.timepicker.clockFace!==null&&this.setTransformToCircleWithSwitchesMinutes(e),this.removeBgColorToCirleWithMinutesTips();let t=this.timepicker._disabledTime?.value||null,i=this.timepicker.clockFacePool.acquire({array:R,classToAdd:"timepicker-ui-minutes-time",clockFace:this.timepicker.clockFace,tipsWrapper:this.timepicker.tipsWrapper,theme:this.timepicker._options.theme,disabledTime:t,hour:this.timepicker.hour.value,clockType:this.timepicker._options.clockType});i.create(),this.timepicker._options.clockType==="12h"&&i.updateDisable(),this.timepicker.clockFacePool.release(i),this.toggleClassActiveToValueTips(e),this.timepicker._options.clockType==="24h"&&(this.timepicker.tipsWrapperFor24h.innerHTML="")};setHoursToClock=e=>{if(this.timepicker.clockFace!==null){this.setTransformToCircleWithSwitchesHour(e);let t=this.timepicker._disabledTime?.value||null,i=this.timepicker.clockFacePool.acquire({array:B,classToAdd:"timepicker-ui-hour-time-12",clockFace:this.timepicker.clockFace,tipsWrapper:this.timepicker.tipsWrapper,theme:this.timepicker._options.theme,disabledTime:t,clockType:"12h",hour:this.timepicker.hour.value});if(i.create(),this.timepicker._options.clockType==="24h"){let r=this.timepicker.clockFacePool.acquire({array:q,classToAdd:"timepicker-ui-hour-time-24",clockFace:this.timepicker.tipsWrapperFor24h,tipsWrapper:this.timepicker.tipsWrapperFor24h,theme:this.timepicker._options.theme,clockType:"24h",disabledTime:t,hour:this.timepicker.hour.value});r.create(),this.timepicker.clockFacePool.release(r)}else i.updateDisable();this.timepicker.clockFacePool.release(i),this.toggleClassActiveToValueTips(e)}};setTransformToCircleWithSwitchesHour=e=>{if(!this.timepicker.clockHand)return;let t=Number(e),i=t>12?t*30-360:t*30;i===360&&(i=0),!(i>360)&&(this.timepicker.clockHand.style.transform=`rotateZ(${i}deg)`)};setTransformToCircleWithSwitchesMinutes=e=>{if(!this.timepicker.clockHand)return;let t=Number(e)*6;t>360||(this.timepicker.clockHand.style.transform=`rotateZ(${t}deg)`)};toggleClassActiveToValueTips=e=>{let t=this.timepicker.allValueTips.find(i=>Number(i.innerText)===Number(e));this.timepicker.allValueTips.map(i=>{i.classList.remove(H),i.setAttribute("aria-selected","false")}),t!==void 0&&(t.classList.add(H),t.setAttribute("aria-selected","true"))}};var ne=class{timepicker;constructor(e){this.timepicker=e}setErrorHandler(){let e=this.timepicker.input;if(!e)return;let{error:t,currentHour:i,currentMin:r,currentType:s,currentLength:a}=C(e,this.timepicker._options.clockType);if(this.removeErrorHandler(),t){let o=document.createElement("div");return o.classList.add("timepicker-ui-invalid-text"),o.innerHTML="<b>Invalid Time Format</b>",e.classList.add("timepicker-ui-invalid-format"),e.nextElementSibling?.classList.contains("timepicker-ui-invalid-text")||e.after(o),_(this.timepicker._element,"","timepicker:error",{error:t,currentHour:i,currentMin:r,currentType:s,currentLength:a},this.timepicker._options.onError,this.timepicker),console.error(`Invalid Time Format: ${t}`),!1}return!0}removeErrorHandler(){let e=this.timepicker.input;if(!e)return;e.classList.remove("timepicker-ui-invalid-format");let t=e.nextElementSibling;t?.classList.contains("timepicker-ui-invalid-text")&&t.remove()}checkDisabledValuesOnStart(){if(!this.timepicker._options.disabledTime)return;let{disabledTime:e,clockType:t}=this.timepicker._options;if(e.interval){if(!t)throw new Error("clockType is required when using disabledTime.interval");let o=Array.isArray(e.interval)?e.interval:[e.interval];try{he(o,t)}catch(c){throw new Error(`Invalid disabledTime.interval: ${c.message}`)}return}let{hours:i,minutes:r}=e,s=i?N(i,"hour",t):!0,a=r?N(r,"minutes",t):!0;if(!s||!a)throw new Error("You set wrong hours or minutes in disabled option")}destroy(){this.removeErrorHandler()}};var oe={"crane-straight":["crane-straight"],"crane-radius":["crane-straight","radius"],m3:["m3"],dark:["dark"],glassmorphic:["glassmorphic"],pastel:["pastel"],ai:["ai"],cyberpunk:["cyberpunk"],custom:["custom"]};var ae=class{timepicker;constructor(e){this.timepicker=e}setTheme=()=>{let e=this.timepicker.modalElement;if(!e||!this.timepicker._options)return;let{theme:t}=this.timepicker._options;if(!t||!oe[t])return;e.querySelectorAll("input, div").forEach(r=>{Object.values(oe).forEach(s=>r.classList.remove(...s)),r.classList.add(...oe[t])})};setInputClassToInputElement=()=>{let e=this.timepicker.input;e&&(m(e,"timepicker-ui-input")||e.classList.add("timepicker-ui-input"))};setDataOpenToInputIfDoesntExistInWrapper=()=>{this.timepicker.openElementData===null&&this.timepicker.input&&this.timepicker.input.setAttribute("data-open","timepicker-ui-input")};setClassTopOpenElement=()=>{for(let e of this.timepicker.openElement)e&&e.classList.add("timepicker-ui-open-element")};setTimepickerClassToElement=()=>{let e=this.timepicker._element;if(!e)return;e.classList.add(ye);let t=this.timepicker._options?.cssClass;t&&t!==ye&&e.classList.add(t)};destroy(){let e=this.timepicker.modalElement;if(!e)return;e.querySelectorAll("input, div").forEach(i=>{Object.values(oe).forEach(r=>i.classList.remove(...r))})}};var ce=class{timepicker;timeouts=[];debouncedHandler;constructor(e){this.timepicker=e}clearAllTimeouts(){this.timeouts.forEach(clearTimeout),this.timeouts=[]}runWithTimeout(e,t){let i=setTimeout(e,t);this.timeouts.push(i)}isCurrentTimeEnabled(e){let t=this.timepicker._options?.currentTime;return typeof t=="boolean"?t:!!t?.[e]}preventClockTypeByCurrentTime=()=>{if(!this.isCurrentTimeEnabled("preventClockType"))return;let{currentTime:e,clockType:t}=this.timepicker._options,{type:i}=C(this.timepicker.input,t,e,!0);this.timepicker._options.clockType=i?"12h":"24h"};updateInputValueWithCurrentTimeOnStart=()=>{if(!this.isCurrentTimeEnabled("updateInput"))return;let{hour:e,minutes:t,type:i}=C(this.timepicker.input,this.timepicker._options.clockType,this.timepicker._options.currentTime);this.timepicker.input.value=i?`${e}:${t} ${i}`:`${e}:${t}`};checkMobileOption(){this.timepicker._isMobileView=!!this.timepicker._options.mobile,this.timepicker._options.mobile&&(this.timepicker._options.editable=!0)}getDisableTime(){let e=$e(this.timepicker._options);this.timepicker._disabledTime=e||null}getInputValueOnOpenAndSet=()=>{let e=C(this.timepicker.input,this.timepicker._options.clockType,this.timepicker._options.currentTime);if(e===void 0){this.timepicker.hour.value="12",this.timepicker.minutes.value="00",_(this.timepicker._element,"show","timepicker:open",{hour:this.timepicker.hour.value,minutes:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes},this.timepicker._options.onOpen),this.timepicker._options.clockType!=="24h"&&this.timepicker.AM.classList.add(H);return}let[t,i,r]=this.timepicker.input.value.split(":").join(" ").split(" ");this.timepicker.input.value.length===0&&(t=e.hour,i=e.minutes,r=e.type),this.timepicker.hour.value=t,this.timepicker.minutes.value=i;let s=this.timepicker.modalElement?.querySelector(`[data-type='${r}']`);this.timepicker._options.clockType!=="24h"&&s&&s.classList.add(H),_(this.timepicker._element,"show","timepicker:open",{...e,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes},this.timepicker._options.onOpen)};handleModeSwitch(e){this.clearAllTimeouts();let t=this.timepicker.hour.value,i=this.timepicker.minutes.value,r=this.timepicker.activeTypeMode?.dataset.type;this.timepicker.close()(),this.timepicker._isMobileView=e,this.timepicker._options.mobile=e,this.runWithTimeout(()=>{this.timepicker.update({options:{mobile:e}}),this.runWithTimeout(()=>{if(this.timepicker.open(),this.timepicker.hour.value=t,this.timepicker.minutes.value=i,this.timepicker._options.clockType==="12h"){let s=r==="PM"?"PM":"AM",a=r==="PM"?"AM":"PM";this.timepicker[s].classList.add(H),this.timepicker[a].classList.remove(H)}this.timepicker.clockManager&&(this.timepicker.clockManager.setTransformToCircleWithSwitchesHour(this.timepicker.hour.value),this.timepicker.clockManager.toggleClassActiveToValueTips(this.timepicker.hour.value),Number(this.timepicker.hour.value)>12||Number(this.timepicker.hour.value)===0?this.timepicker.clockManager.setCircleClockClasses24h():this.timepicker.clockManager.removeCircleClockClasses24h())},300)},300)}handlerViewChange=()=>{let e=this.timepicker._options.delayHandler||300;return this.debouncedHandler=ve(()=>{let{clockType:t}=this.timepicker._options;if(!this.timepicker.modalElement?.classList.contains("mobile"))this.handleModeSwitch(!0);else{let i=D(this.timepicker.hour.value,"hour",t),r=D(this.timepicker.minutes.value,"minutes",t);if(!i||!r){r||this.timepicker.minutes.classList.add("invalid-value"),i||this.timepicker.hour.classList.add("invalid-value");return}this.timepicker.minutes.classList.remove("invalid-value"),this.timepicker.hour.classList.remove("invalid-value"),this.handleModeSwitch(!1)}},e),this.debouncedHandler};getInputValue=C;destroy(){this.clearAllTimeouts(),this.debouncedHandler&&"cancel"in this.debouncedHandler&&this.debouncedHandler.cancel?.()}};var W=class{events=new Map;on(e,t){this.events.has(e)||this.events.set(e,new Set),this.events.get(e).add(t)}once(e,t){let i=r=>{t(r),this.off(e,i)};this.on(e,i)}off(e,t){t?this.events.get(e)?.delete(t):this.events.delete(e)}emit(e,t){this.events.get(e)?.forEach(i=>{try{i(t)}catch(r){console.error(`EventEmitter: Error in handler for "${String(e)}":`,r)}})}clear(){this.events.clear()}hasListeners(e){return(this.events.get(e)?.size??0)>0}};var ge=class{updates=[];rafId=null;schedule(e){this.updates.push(e),this.rafId||(this.rafId=requestAnimationFrame(()=>this.flush()))}flush(){this.updates.forEach(e=>e()),this.updates=[],this.rafId=null}destroy(){this.rafId&&(cancelAnimationFrame(this.rafId),this.rafId=null),this.updates=[]}};var le=class{_degreesHours=null;_degreesMinutes=null;_options;_eventsClickMobile=()=>Promise.resolve();_eventsClickMobileHandler=()=>{};_mutliEventsMove=()=>{};_mutliEventsMoveHandler;_clickTouchEvents;_element;_instanceId;_isMobileView;_isTouchMouseMove;_disabledTime;_cloned;_inputEvents;_isModalRemove;_isInitialized=!1;_customId;_eventHandlersRegistered=!1;_isDestroyed=!1;_pendingThemeConfig;clockFacePool;eventManager;modalManager;animationManager;clockManager;validationManager;themeManager;configManager;domBatcher;_eventEmitter;constructor(e,t){if(typeof window>"u")throw new Error("TimepickerUI: Cannot initialize in non-browser environment (SSR/Node.js)");this._eventEmitter=new W,this.domBatcher=new ge;let i=t?.id;this._customId=i,this._instanceId=i||`timepicker-ui-${xe()}`;let r=null;if(typeof e=="string"){if(r=document.querySelector(e),!r){console.error(`TimepickerUI: Element with selector "${e}" not found`),this._isDestroyed=!0;return}}else if(e instanceof HTMLElement)r=e;else{console.error("TimepickerUI: First parameter must be a string selector or HTMLElement"),this._isDestroyed=!0;return}let s=null;if(r.tagName==="INPUT"?s=r:s=r.querySelector("input"),!s){let o=typeof e=="string"?`selector "${e}"`:"provided element";throw new Error(`TimepickerUI: No input element found for ${o}`)}if(r.tagName==="INPUT"){let o=document.createElement("div");o.className="timepicker-ui",r.parentNode?.insertBefore(o,r),o.appendChild(r),this._element=o}else this._element=r,this._element.classList.contains("timepicker-ui")||this._element.classList.add("timepicker-ui");this._cloned=null;let a=Ae(this._element?.dataset);if(this._options={...Ie({...Me,...t,...a},Me)},this._options.inline?.enabled&&typeof t?.focusTrap>"u"&&(this._options.focusTrap=!1),this._isTouchMouseMove=!1,this._degreesHours=Number(C(this._element?.querySelector("input"),this._options.clockType).hour)*30,this._degreesMinutes=Number(C(this._element?.querySelector("input"),this._options.clockType).minutes)*6,this._isMobileView=!1,this._mutliEventsMove=o=>this.eventManager.handleEventToMoveHand(o),this._mutliEventsMoveHandler=this._mutliEventsMove.bind(this),this._eventsClickMobile=o=>this.eventManager.handlerClickHourMinutes(o),this._eventsClickMobileHandler=this._eventsClickMobile.bind(this),this.clockFacePool=new z,this.eventManager=new te(this),this.modalManager=new ie(this),this.animationManager=new re(this),this.clockManager=new se(this),this.validationManager=new ne(this),this.themeManager=new ae(this),this.configManager=new ce(this),this.configManager.checkMobileOption(),this._clickTouchEvents=["click","mousedown","touchstart"],this._inputEvents=["change",...this._clickTouchEvents],this._disabledTime=null,this.configManager.preventClockTypeByCurrentTime(),this._isModalRemove=!0,this._isInitialized=!1,this._options.inline?.enabled){if(!this._options.inline.containerId)throw console.error("TimepickerUI: containerId is required when inline mode is enabled"),new Error("TimepickerUI: containerId is required when inline mode is enabled");if(!document.getElementById(this._options.inline.containerId))throw console.error(`TimepickerUI: Container element with ID "${this._options.inline.containerId}" not found`),new Error(`TimepickerUI: Container element with ID "${this._options.inline.containerId}" not found`)}}get modalTemplate(){let{getMobileModalTemplate:e,getModalTemplate:t}=(fe(),He(Se));return!this._options.mobile||!this._isMobileView?t(this._options,this._instanceId):e(this._options,this._instanceId)}get modalElement(){return document.querySelector(`[data-owner-id="${this._instanceId}"]`)}get clockFace(){return this.modalElement?.querySelector(".timepicker-ui-clock-face")}get input(){return this._element?.querySelector("input")}get clockHand(){return this.modalElement?.querySelector(".timepicker-ui-clock-hand")}get circle(){return this.modalElement?.querySelector(".timepicker-ui-circle-hand")}get tipsWrapper(){return this.modalElement?.querySelector(".timepicker-ui-tips-wrapper")}get tipsWrapperFor24h(){return this.modalElement?.querySelector(".timepicker-ui-tips-wrapper-24h")}get minutes(){return this.modalElement?.querySelector(".timepicker-ui-minutes")}get hour(){return this.modalElement?.querySelector(".timepicker-ui-hour")}get AM(){return this.modalElement?.querySelector(".timepicker-ui-am")}get PM(){return this.modalElement?.querySelector(".timepicker-ui-pm")}get minutesTips(){return this.modalElement?.querySelector(".timepicker-ui-minutes-time")}get hourTips(){return this.modalElement?.querySelector(".timepicker-ui-hour-time-12")}get allValueTips(){let e=this.modalElement;return e?[...e.querySelectorAll(".timepicker-ui-value-tips"),...e.querySelectorAll(".timepicker-ui-value-tips-24h")]:[]}get openElementData(){let e=this._element?.querySelectorAll("[data-open]");if(e?.length>0){let t=[];return e.forEach(({dataset:i})=>t.push(i.open??"")),[...new Set(t)]}return null}get openElement(){return this.openElementData===null?(this.input?.setAttribute("data-open","timepicker-ui-input"),[this.input]):this.openElementData.map(e=>this._element?.querySelectorAll(`[data-open='${e}']`))[0]??""}get cancelButton(){return this.modalElement?.querySelector(".timepicker-ui-cancel-btn")}get okButton(){return this.modalElement?.querySelector(".timepicker-ui-ok-btn")}get activeTypeMode(){return this.modalElement?.querySelector(".timepicker-ui-type-mode.active")}get keyboardClockIcon(){return this.modalElement?.querySelector(".timepicker-ui-keyboard-icon-wrapper")}get footer(){return this.modalElement?.querySelector(".timepicker-ui-footer")}get wrapper(){return this.modalElement?.querySelector(".timepicker-ui-wrapper")}getElement(){return this._element}on(e,t){if(this._isDestroyed){console.warn("TimepickerUI: Cannot add event listener - instance failed to initialize");return}this._eventEmitter.on(e,t)}once(e,t){if(this._isDestroyed){console.warn("TimepickerUI: Cannot add event listener - instance failed to initialize");return}this._eventEmitter.once(e,t)}off(e,t){if(this._isDestroyed){console.warn("TimepickerUI: Cannot remove event listener - instance failed to initialize");return}this._eventEmitter.off(e,t)}emit(e,t){this._eventEmitter.emit(e,t)}_applyThemeToWrapper(e){if(!this._pendingThemeConfig)return;let t={primaryColor:"--timepicker-primary",backgroundColor:"--timepicker-bg",surfaceColor:"--timepicker-surface",surfaceHoverColor:"--timepicker-surface-hover",textColor:"--timepicker-text",secondaryTextColor:"--timepicker-secondary-text",disabledTextColor:"--timepicker-disabled-text",onPrimaryColor:"--timepicker-on-primary",borderColor:"--timepicker-border",shadow:"--timepicker-shadow",borderRadius:"--timepicker-border-radius",fontFamily:"--timepicker-font-family"};Object.entries(this._pendingThemeConfig).forEach(([i,r])=>{r&&t[i]&&e.style.setProperty(t[i],r)})}};var pe=class extends le{create=()=>{if(this._isDestroyed){console.warn("TimepickerUI: Cannot create - instance failed to initialize");return}if(this._isInitialized){console.warn("TimepickerUI: Instance is already initialized");return}this.configManager.updateInputValueWithCurrentTimeOnStart(),this.validationManager.checkDisabledValuesOnStart(),this.themeManager.setTimepickerClassToElement(),this.themeManager.setInputClassToInputElement(),this.themeManager.setDataOpenToInputIfDoesntExistInWrapper(),this.themeManager.setClassTopOpenElement(),this._options.inline?.enabled?(this.eventManager.handleOpenOnEnterFocus(),this._eventsBundle()):(this.eventManager.handleOpenOnEnterFocus(),this.eventManager.handleOpenOnClick()),this.configManager.getDisableTime(),this._isInitialized=!0};open=e=>{if(this._isDestroyed){console.warn("TimepickerUI: Cannot open - instance failed to initialize");return}this._isInitialized||this.create(),this._eventsBundle(),P(e)};close=()=>ve((...e)=>{if(e.length>2||!this.modalElement)return;let[t]=e.filter(r=>typeof r=="boolean"),[i]=e.filter(r=>typeof r=="function");t&&(this.eventManager.handleOkButton(),this.okButton?.click()),this._isTouchMouseMove=!1,document.removeEventListener("mousedown",this.eventManager._onDragStart,!1),document.removeEventListener("touchstart",this.eventManager._onDragStart),document.removeEventListener("mousemove",this.eventManager._onDragMove,!1),document.removeEventListener("mouseup",this.eventManager._onDragEnd,!1),document.removeEventListener("touchmove",this.eventManager._onDragMove),document.removeEventListener("touchend",this.eventManager._onDragEnd,!1),document.removeEventListener("mouseleave",this.eventManager._onDragEnd,!1),document.removeEventListener("mousedown",this._eventsClickMobileHandler),document.removeEventListener("touchstart",this._eventsClickMobileHandler),document.removeEventListener("keypress",this.eventManager.handleEscClick),this.wrapper.removeEventListener("keydown",this.eventManager.focusTrapHandler),this._options.enableSwitchIcon&&(this.keyboardClockIcon.removeEventListener("touchstart",this.configManager.handlerViewChange()),this.keyboardClockIcon.removeEventListener("mousedown",this.configManager.handlerViewChange())),this.animationManager.removeAnimationToClose(),this.openElement.forEach(r=>r?.classList.remove("disabled")),setTimeout(()=>{document.body.style.overflowY="",document.body.style.paddingRight=""},400),this.openElement.forEach(r=>r?.classList.remove("disabled")),setTimeout(()=>{this._options.focusInputAfterCloseModal&&this.input?.focus(),this.modalElement!==null&&(this.modalElement.remove(),this._isModalRemove=!0)},300),P(i)},this._options.delayHandler||300);destroy=e=>{if(this._isDestroyed){console.warn("TimepickerUI: Instance is already destroyed");return}let t=typeof e=="function"?{callback:e}:e||{},{keepInputValue:i=!1,callback:r}=t,s=i?this.input?.value:null;this.clockFacePool.clear(),this.domBatcher.destroy(),De.split(" ").forEach(o=>{document.removeEventListener(o,this._mutliEventsMoveHandler,!1)}),document.removeEventListener("mousedown",this.eventManager._onDragStart,!1),document.removeEventListener("touchstart",this.eventManager._onDragStart),document.removeEventListener("mousemove",this.eventManager._onDragMove,!1),document.removeEventListener("mouseup",this.eventManager._onDragEnd,!1),document.removeEventListener("touchmove",this.eventManager._onDragMove),document.removeEventListener("touchend",this.eventManager._onDragEnd,!1),document.removeEventListener("mouseleave",this.eventManager._onDragEnd,!1),document.removeEventListener("mousedown",this._eventsClickMobileHandler),document.removeEventListener("touchstart",this._eventsClickMobileHandler),this.modalElement?.remove(),this.openElement?.forEach(o=>{o&&(o.classList.remove("disabled","active","timepicker-ui-open-element"),o.classList.remove("basic","crane-straight","crane-radius","m3"))}),this.input&&(this.input.classList.remove("timepicker-ui-invalid-format","invalid-value","error","active","timepicker-ui-input"),this.input.removeAttribute("data-open"),this.input.removeAttribute("data-owner-id"),i&&s!==null&&(this.input.value=s)),this._element&&(this._element.classList.remove("basic","crane-straight","crane-radius","m3"),this._element.classList.remove("error","active","disabled"),this._element.removeAttribute("data-owner-id"),this._element.removeAttribute("data-open"),this._options.cssClass&&this._element.classList.remove(this._options.cssClass)),this._element?.querySelectorAll(".timepicker-ui-invalid-text")?.forEach(o=>o.remove()),this._mutliEventsMoveHandler=()=>{},this._eventsClickMobileHandler=()=>{},this._mutliEventsMove=()=>{},this._eventsClickMobile=()=>Promise.resolve(),this._isModalRemove=!0,this._isTouchMouseMove=!1,this._disabledTime=null,this._cloned=null,this._degreesHours=null,this._degreesMinutes=null,this._isInitialized=!1,this._isDestroyed=!0,typeof document<"u"&&(document.body.style.overflowY="",document.body.style.paddingRight=""),this.onDestroy?.(),P(r)};onDestroy;_eventsBundle=()=>{if(this._isDestroyed){console.warn("TimepickerUI: Instance is destroyed");return}if(this._isModalRemove){if(this._options.inline?.enabled||this.eventManager.handleEscClick(),this.validationManager.setErrorHandler(),this.validationManager.removeErrorHandler(),this._options.inline?.enabled||(this.openElement.forEach(e=>e?.classList.add("disabled")),this.input?.blur()),this.modalManager.setScrollbarOrNot(),this.modalManager.setModalTemplate(),this.modalManager.setNormalizeClass(),this.modalManager.removeBackdrop(),this.clockManager.setOnStartCSSClassesIfClockType24h(),this.clockManager.setClassActiveToHourOnOpen(),this.clockFace!==null){let e=this.clockFacePool.acquire({array:B,classToAdd:"timepicker-ui-hour-time-12",clockFace:this.clockFace,tipsWrapper:this.tipsWrapper,theme:this._options.theme,disabledTime:this._disabledTime?.value?.isInterval?this._disabledTime?.value:this._disabledTime?.value?.hours,clockType:this._options.clockType,hour:this.hour.value,activeTypeMode:this.activeTypeMode?.textContent||""});if(e.create(),this._options.clockType==="24h"){let t=this.clockFacePool.acquire({array:q,classToAdd:"timepicker-ui-hour-time-24",clockFace:this.tipsWrapperFor24h,tipsWrapper:this.tipsWrapperFor24h,theme:this._options.theme,clockType:"24h",disabledTime:this._disabledTime?.value?.isInterval?this._disabledTime?.value:this._disabledTime?.value?.hours,hour:this.hour.value});t.create(),this.clockFacePool.release(t)}else this._options.clockType==="12h"&&this._disabledTime?.value?.isInterval&&setTimeout(()=>{e.updateDisable(this.hour.value,this.activeTypeMode?.textContent||"")},300);this.clockFacePool.release(e)}this.modalManager.setFlexEndToFooterIfNoKeyboardIcon(),setTimeout(()=>{this.themeManager.setTheme();let e=this.modalElement?.querySelector(".timepicker-ui-wrapper");e&&(this._options.cssClass&&e.classList.add(this._options.cssClass),this._pendingThemeConfig&&this._applyThemeToWrapper(e))},0),this.animationManager.setAnimationToOpen(),this.configManager.getInputValueOnOpenAndSet(),this.clockManager.toggleClassActiveToValueTips(this.hour.value),this._isMobileView||(this.clockManager.setTransformToCircleWithSwitchesHour(this.hour.value),this.animationManager.handleAnimationClock()),this.eventManager.handleMinutesEvents(),this.eventManager.handleHourEvents(),this._options.clockType!=="24h"&&(this.eventManager.handleAmClick(),this.eventManager.handlePmClick()),this.clockFace&&this.eventManager.handleMoveHand(),this.eventManager.handleCancelButton(),this.eventManager.handleOkButton(),this.modalElement&&(this.modalManager.setShowClassToBackdrop(),this._options.inline?.enabled||this.eventManager.handleBackdropClick()),this.eventManager.handleIconChangeView(),this.eventManager.handleClickOnHourMobile(),this._options.focusTrap&&this.eventManager.focusTrapHandler(),this._options.inline?.enabled&&this._options.inline.autoUpdate!==!1&&this.eventManager.handleInlineAutoUpdate()}}};var me=class extends pe{getValue=()=>{if(this._isDestroyed)return console.warn("TimepickerUI: Instance is destroyed"),{hour:"",minutes:"",time:"",degreesHours:null,degreesMinutes:null};let e=this.hour?.value||"12",t=this.minutes?.value||"00",i=this._options.clockType==="24h"?void 0:this.activeTypeMode?.textContent||"AM",r="";return this._options.clockType==="24h"?r=`${e.padStart(2,"0")}:${t.padStart(2,"0")}`:r=`${e}:${t.padStart(2,"0")} ${i}`,{hour:e,minutes:t,type:i,time:r,degreesHours:this._degreesHours,degreesMinutes:this._degreesMinutes}};setValue=(e,t=!0)=>{if(this._isDestroyed){console.warn("TimepickerUI: Instance is destroyed");return}if(!e||typeof e!="string")throw new Error("TimepickerUI: setValue requires a valid time string");let i=ke(e.trim()),r="12",s="00",a="AM";try{if(this._options.clockType==="24h"){let o=i.match(/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/);if(!o)throw new Error("Invalid 24h format. Expected HH:MM");r=o[1].padStart(2,"0"),s=o[2]}else{let o=i.match(/^(1[0-2]|[1-9]):([0-5][0-9])\s*(AM|PM)$/i);if(!o)throw new Error("Invalid 12h format. Expected HH:MM AM/PM");r=o[1],s=o[2],a=o[3].toUpperCase()}this.hour&&(this.hour.value=r,this.hour.setAttribute("aria-valuenow",r),this._degreesHours=Number(r)*30),this.minutes&&(this.minutes.value=s,this.minutes.setAttribute("aria-valuenow",s),this._degreesMinutes=Number(s)*6),this._options.clockType!=="24h"&&this.AM&&this.PM&&(a==="AM"?(this.AM.classList.add("active"),this.PM.classList.remove("active")):(this.PM.classList.add("active"),this.AM.classList.remove("active"))),t&&this.input&&(this.input.value=i),this.clockHand&&(this.clockHand.style.transform=`rotateZ(${this._degreesHours||0}deg)`)}catch(o){throw new Error(`TimepickerUI: ${o instanceof Error?o.message:"Invalid time format"}`)}};update=(e,t)=>{if(this._isDestroyed){console.warn("TimepickerUI: Instance is destroyed");return}this._options={...this._options,...e.options},this.configManager.checkMobileOption(),e.create&&this.create(),P(t)};setTheme(e){if(this._isDestroyed){console.warn("TimepickerUI: Cannot set theme on destroyed instance");return}this._pendingThemeConfig=e;let t=this.modalElement?.querySelector(".timepicker-ui-wrapper");t&&this._applyThemeToWrapper(t)}};var $=new Map,U=class extends me{constructor(e,t){if(super(e,t),this._isDestroyed)return;let i=t?.id;if(i&&$.has(i)){console.error(`TimepickerUI: Instance with ID "${i}" already exists`),this._isDestroyed=!0;return}$.set(this._instanceId,this),this.onDestroy=()=>{$.delete(this._instanceId)}}static getById(e){return $.get(e)}static getAllInstances(){return Array.from($.values())}static isAvailable(e){return typeof window>"u"?!1:typeof e=="string"?document.querySelector(e)!==null:e instanceof HTMLElement?document.contains(e):!1}static destroyAll(){Array.from($.values()).forEach(t=>t.destroy()),$.clear()}};var ze=U;0&&(module.exports={EventEmitter,TimepickerUI});
|
|
56
|
+
</div>`};var S=class{static angleToIndex(e,t,i){let r=Math.round(e/30)%12;if(t==="24h")if(i){let s=r+12;return s===12?0:s}else return r===0?12:r;return r===0?12:r}static indexToValue(e,t,i){if(t==="24h")return e.toString().padStart(2,"0");let r=e;return r===0&&(r=12),r>12&&(r=r-12),r.toString().padStart(2,"0")}static indexToAngle(e,t){return t==="24h"?e>=12?(e-12)%12*30:e%12*30:(e===0?12:e)%12*30}static isDisabled(e,t,i){return i?i.isInterval&&i.intervals&&i.clockType?this.isDisabledByInterval(e,t,i):i.hours?i.hours.some(r=>String(r)===e||Number(r)===Number(e)||r===e):!1:!1}static isDisabledByInterval(e,t,i){if(!i.intervals)return!1;for(let r=0;r<60;r++){let s=r.toString().padStart(2,"0");if(!this.isTimeInIntervals(e,s,t,i.intervals,i.clockType))return!1}return!0}static isTimeInIntervals(e,t,i,r,s){let n=s==="12h"?`${e}:${t} ${i}`:`${e}:${t}`;for(let a of r){let[c,m]=a.split("-").map(d=>d.trim());if(this.isTimeBetween(n,c,m,s))return!0}return!1}static isTimeBetween(e,t,i,r){let s=this.timeToMinutes(e,r),n=this.timeToMinutes(t,r),a=this.timeToMinutes(i,r);return s>=n&&s<=a}static timeToMinutes(e,t){if(t==="12h"){let i=e.match(/(\d{1,2}):(\d{2})\s*(AM|PM)/i);if(!i)return 0;let r=parseInt(i[1]),s=parseInt(i[2]),n=i[3].toUpperCase();return n==="PM"&&r!==12&&(r+=12),n==="AM"&&r===12&&(r=0),r*60+s}else{let[i,r]=e.split(":").map(Number);return i*60+r}}static findNearestValid(e,t,i,r,s){let n=t==="24h"?23:12;for(let a=0;a<=n;a++){let c=a===0?[e]:[e+a,e-a];for(let m of c){let d=m;d<0&&(d+=n+1),d>n&&(d=d%(n+1));let p=this.indexToValue(d,t,i);if(!this.isDisabled(p,i,r))return d}}return e}};var x=class{static angleToIndex(e){return Math.round(e/6)%60}static indexToValue(e){return e.toString().padStart(2,"0")}static indexToAngle(e){return e%60*6}static isDisabled(e,t,i,r,s){return r?r.isInterval&&r.intervals?this.isDisabledByInterval(e,t,i,r,s):r.minutes?r.minutes.some(n=>String(n)===e||Number(n)===Number(e)||n===e):!1:!1}static isDisabledByInterval(e,t,i,r,s){if(!r.intervals)return!1;let n=s==="12h"?`${t}:${e} ${i}`:`${t}:${e}`;for(let a of r.intervals){let[c,m]=a.split("-").map(d=>d.trim());if(this.isTimeBetween(n,c,m,s))return!0}return!1}static isTimeBetween(e,t,i,r){let s=this.timeToMinutes(e,r),n=this.timeToMinutes(t,r),a=this.timeToMinutes(i,r);return s>=n&&s<=a}static timeToMinutes(e,t){if(t==="12h"){let i=e.match(/(\d{1,2}):(\d{2})\s*(AM|PM)/i);if(!i)return 0;let r=parseInt(i[1]),s=parseInt(i[2]),n=i[3].toUpperCase();return n==="PM"&&r!==12&&(r+=12),n==="AM"&&r===12&&(r=0),r*60+s}else{let[i,r]=e.split(":").map(Number);return i*60+r}}static findNearestValid(e,t,i,r,s){for(let n=0;n<60;n++){let a=n===0?[e]:[e+n,e-n];for(let c of a){let m=c;m<0&&(m+=60),m>=60&&(m=m%60);let d=this.indexToValue(m);if(!this.isDisabled(d,t,i,r,s))return m}}return e}};var Te=class{config;currentAngle=0;tipsCache=new Map;constructor(e){this.config=e}setHandAngle(e){Math.abs(this.currentAngle-e)<.1||(this.currentAngle=e,this.config.clockHand.style.transform=`rotateZ(${e}deg)`)}setActiveValue(e){let t=[this.config.tipsWrapper];this.config.tipsWrapperFor24h&&t.push(this.config.tipsWrapperFor24h),t.forEach(i=>{i.querySelectorAll(".timepicker-ui-value-tips, .timepicker-ui-value-tips-24h").forEach(s=>{let n=s;n.textContent===e||Number(n.textContent)===Number(e)?(n.classList.add("active"),n.setAttribute("aria-selected","true")):(n.classList.remove("active"),n.setAttribute("aria-selected","false"))})})}renderTips(e,t,i,r,s,n=!0,a,c="",m="12"){let d=a||this.config.tipsWrapper;n&&(d.innerHTML="",this.tipsCache.clear());let p=(d.offsetWidth-32)/2,v=(d.offsetHeight-32)/2,f=p-9,y=document.createDocumentFragment(),M=`${t}-${this.config.theme||"default"}`;e.forEach((b,I)=>{let l=`${M}-${b}`,h=this.tipsCache.get(l);h||(h=this.createTip(b,t,s),this.tipsCache.set(l,h));let{wrapper:k,tip:E}=h;this.updateTipState(k,E,b,i,r,s,c,m);let u=I*(360/e.length)*(Math.PI/180);k.style.left=`${p+Math.sin(u)*f}px`,k.style.bottom=`${v+Math.cos(u)*f}px`,y.appendChild(k)}),d.appendChild(y)}createTip(e,t,i){let r=document.createElement("span"),s=document.createElement("span");s.textContent=e,s.setAttribute("role","option"),s.setAttribute("aria-selected","false"),s.tabIndex=0;let n=i==="24h"&&t.includes("24")?"timepicker-ui-value-tips-24h":"timepicker-ui-value-tips";return s.classList.add(n),r.classList.add(t),this.config.theme&&(r.classList.add(this.config.theme),s.classList.add(this.config.theme)),r.appendChild(s),{wrapper:r,tip:s}}updateTipState(e,t,i,r,s,n,a,c){e.classList.remove("timepicker-ui-tips-disabled"),t.classList.remove("timepicker-ui-tips-disabled"),t.removeAttribute("aria-disabled"),t.tabIndex=0,this.checkIfDisabled(i,r,s,n,a,c)&&(e.classList.add("timepicker-ui-tips-disabled"),t.classList.add("timepicker-ui-tips-disabled"),t.setAttribute("aria-disabled","true"),t.tabIndex=-1)}checkIfDisabled(e,t,i,r,s,n){return i?t==="hours"?S.isDisabled(e,s,i):t==="minutes"?x.isDisabled(e,n,s,i,r):!1:!1}setCircleSize(e){e?this.config.circle.classList.remove("small-circle"):this.config.circle.classList.add("small-circle")}setCircle24hMode(e){e?(this.config.circle.classList.add("timepicker-ui-circle-hand-24h"),this.config.clockHand.classList.add("timepicker-ui-clock-hand-24h")):(this.config.circle.classList.remove("timepicker-ui-circle-hand-24h"),this.config.clockHand.classList.remove("timepicker-ui-clock-hand-24h"))}destroy(){this.tipsCache.clear(),this.config.tipsWrapper.innerHTML=""}};var P=class{static normalizeAngle(e){let t=e%360;return t<0&&(t+=360),t}static calculateRawAngle(e,t){let i=e.x-t.x,r=e.y-t.y,n=Math.atan2(r,i)*180/Math.PI+90;return this.normalizeAngle(n)}static snapToIncrement(e,t){let i=Math.round(e/t)*t;return this.normalizeAngle(i)}static calculateDistance(e,t){let i=e.x-t.x,r=e.y-t.y;return Math.sqrt(i*i+r*r)}static isInnerCircle(e,t){return e<t*.6}};var ie=class{static processPointerInput(e){let t=P.calculateRawAngle(e.pointerPosition,e.clockCenter);return e.mode==="hours"?this.processHours(t,e):this.processMinutes(t,e)}static processHours(e,t){let i=t.incrementHours*30,r=P.snapToIncrement(e,i),s=P.calculateDistance(t.pointerPosition,t.clockCenter),n=t.clockType==="24h"&&P.isInnerCircle(s,t.clockRadius),a=S.angleToIndex(r,t.clockType,n),c=S.indexToValue(a,t.clockType,t.amPm),m=S.isDisabled(c,t.amPm,t.disabledTime);m&&(a=S.findNearestValid(a,t.clockType,t.amPm,t.disabledTime,n));let d=S.indexToValue(a,t.clockType,t.amPm);return{angle:S.indexToAngle(a,t.clockType),value:d,index:a,isValid:!m,isInnerCircle:t.clockType==="24h"?n:void 0}}static processMinutes(e,t){let i=t.incrementMinutes*6,r=P.snapToIncrement(e,i),s=x.angleToIndex(r),n=x.indexToValue(s),a=t.currentHour||"00",c=x.isDisabled(n,a,t.amPm,t.disabledTime,t.clockType);c&&(s=x.findNearestValid(s,a,t.amPm,t.disabledTime,t.clockType));let m=x.indexToValue(s);return{angle:x.indexToAngle(s),value:m,index:s,isValid:!c}}static valueToAngle(e,t,i){let r=parseInt(e,10);return t==="hours"?S.indexToAngle(r,i):x.indexToAngle(r)}};var Me=class{state;renderer;clockType;disabledTime;incrementHours;incrementMinutes;isDragging=!1;callbacks;constructor(e,t,i,r,s=1,n=1,a={}){this.renderer=e,this.state={...t},this.clockType=i,this.disabledTime=r,this.incrementHours=s,this.incrementMinutes=n,this.callbacks=a}handlePointerMove(e,t,i){this.isDragging=!0;let r={pointerPosition:e,clockCenter:t,clockRadius:i,mode:this.state.mode,clockType:this.clockType,amPm:this.state.amPm,disabledTime:this.disabledTime,incrementHours:this.incrementHours,incrementMinutes:this.incrementMinutes,currentHour:this.state.hour},s=ie.processPointerInput(r);s.isValid&&(this.state.mode==="hours"?(this.state.hour=s.value,this.state.hourAngle=s.angle,this.clockType==="24h"&&s.isInnerCircle!==void 0&&(this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(s.isInnerCircle)),this.callbacks.onHourChange&&this.callbacks.onHourChange(s.value)):(this.state.minute=s.value,this.state.minuteAngle=s.angle,this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(!1),this.callbacks.onMinuteChange&&this.callbacks.onMinuteChange(s.value)),this.renderer.setHandAngle(s.angle),this.renderer.setActiveValue(s.value))}handlePointerUp(){this.isDragging=!1}switchMode(e){if(this.state.mode===e)return;this.state.mode=e;let t=e==="hours"?this.state.hourAngle:this.state.minuteAngle,i=e==="hours"?this.state.hour:this.state.minute;if(e==="hours"&&this.clockType==="24h"){let s=parseInt(i,10)<12;this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(s)}else this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(!1);this.renderer.setHandAngle(t),this.renderer.setActiveValue(i)}setValue(e,t){let i=ie.valueToAngle(t,e,this.clockType);if(e==="hours")if(this.state.hour=t,this.state.hourAngle=i,this.clockType==="24h"){let r=parseInt(t,10),s=r===0||r>=13;this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(s)}else this.renderer.setCircle24hMode(!1);else this.state.minute=t,this.state.minuteAngle=i,this.renderer.setCircleSize(!0),this.renderer.setCircle24hMode(!1);this.state.mode===e&&(this.renderer.setHandAngle(i),this.renderer.setActiveValue(t))}setAmPm(e){this.state.amPm=e}getState(){return{...this.state}}getHour(){return this.state.hour}getMinute(){return this.state.minute}getAmPm(){return this.state.amPm}updateDisabledTime(e){this.disabledTime=e}destroy(){this.renderer.destroy()}};var ye=class{controller;clockFace;isActive=!1;timepicker;constructor(e,t,i){this.controller=e,this.clockFace=t,this.timepicker=i}attach(){this.clockFace.addEventListener("mousedown",this.handlePointerDown),this.clockFace.addEventListener("touchstart",this.handlePointerDown,{passive:!1})}detach(){this.clockFace.removeEventListener("mousedown",this.handlePointerDown),this.clockFace.removeEventListener("touchstart",this.handlePointerDown),this.removeGlobalListeners()}handlePointerDown=e=>{let t=e.target;t&&t.classList&&t.classList.contains("timepicker-ui-tips-disabled")||(e.preventDefault(),this.isActive=!0,this.processPointerEvent(e),document.addEventListener("mousemove",this.handlePointerMove),document.addEventListener("touchmove",this.handlePointerMove,{passive:!1}),document.addEventListener("mouseup",this.handlePointerUp),document.addEventListener("touchend",this.handlePointerUp))};handlePointerMove=e=>{if(!this.isActive)return;let t=this.getTargetElement(e);t&&t.classList&&t.classList.contains("timepicker-ui-tips-disabled")||(e.preventDefault(),this.processPointerEvent(e))};handlePointerUp=()=>{if(!this.isActive)return;this.isActive=!1,this.controller.handlePointerUp(),this.removeGlobalListeners();let{autoSwitchToMinutes:e}=this.timepicker._options,t=this.timepicker.hour,i=this.timepicker.minutes;e&&t?.classList.contains("active")&&!this.timepicker._isMobileView&&i?.click()};processPointerEvent(e){let t=this.getPointerPosition(e),i=this.getClockCenter(),r=this.getClockRadius();this.controller.handlePointerMove(t,i,r)}getPointerPosition(e){let t=this.clockFace.getBoundingClientRect();if(e instanceof TouchEvent){let i=e.touches[0]||e.changedTouches[0];return{x:i.clientX-t.left,y:i.clientY-t.top}}else return{x:e.clientX-t.left,y:e.clientY-t.top}}getTargetElement(e){if(e instanceof TouchEvent){let t=e.touches[0]||e.changedTouches[0];if(t)return document.elementFromPoint(t.clientX,t.clientY)}return e.target}getClockCenter(){let e=this.clockFace.offsetWidth,t=this.clockFace.offsetHeight;return{x:e/2,y:t/2}}getClockRadius(){return this.clockFace.offsetWidth/2}removeGlobalListeners(){document.removeEventListener("mousemove",this.handlePointerMove),document.removeEventListener("touchmove",this.handlePointerMove),document.removeEventListener("mouseup",this.handlePointerUp),document.removeEventListener("touchend",this.handlePointerUp)}};var re=class{renderer;controller;dragHandlers;clockType;disabledTime;tipsWrapper;tipsWrapperFor24h;constructor(e){this.clockType=e.clockType,this.disabledTime=e.disabledTime,this.tipsWrapper=e.tipsWrapper,this.tipsWrapperFor24h=e.tipsWrapperFor24h;let t={clockFace:e.clockFace,tipsWrapper:e.tipsWrapper,tipsWrapperFor24h:e.tipsWrapperFor24h,clockHand:e.clockHand,circle:e.circle,theme:e.theme};this.renderer=new Te(t);let i={hour:e.initialHour,minute:e.initialMinute,amPm:e.initialAmPm,hourAngle:this.calculateInitialAngle("hours",e.initialHour),minuteAngle:this.calculateInitialAngle("minutes",e.initialMinute),mode:"hours"},r={onHourChange:e.onHourChange,onMinuteChange:e.onMinuteChange};this.controller=new Me(this.renderer,i,e.clockType,e.disabledTime,e.incrementHours||1,e.incrementMinutes||1,r),this.dragHandlers=new ye(this.controller,e.clockFace,e.timepicker)}initialize(){this.dragHandlers.attach(),this.switchToHours()}switchToHours(){this.controller.switchMode("hours"),this.clockType==="24h"&&this.tipsWrapperFor24h&&this.tipsWrapperFor24h.classList.remove("none"),this.renderHourTips()}switchToMinutes(){this.controller.switchMode("minutes"),this.tipsWrapperFor24h&&this.tipsWrapperFor24h.classList.add("none"),this.renderMinuteTips()}setHour(e){this.controller.setValue("hours",e)}setMinute(e){this.controller.setValue("minutes",e)}setAmPm(e){this.controller.setAmPm(e);let t=this.controller.getState();t.mode==="hours"?(this.renderHourTips(),this.renderer.setHandAngle(t.hourAngle),this.renderer.setActiveValue(t.hour)):(this.renderMinuteTips(),this.renderer.setHandAngle(t.minuteAngle),this.renderer.setActiveValue(t.minute))}getHour(){return this.controller.getHour()}getMinute(){return this.controller.getMinute()}getAmPm(){return this.controller.getAmPm()}updateDisabledTime(e){this.controller.updateDisabledTime(e),this.controller.getState().mode==="hours"?this.renderHourTips():this.renderMinuteTips()}renderHourTips(){let t=this.controller.getState().amPm;this.clockType==="24h"?(this.renderer.renderTips(De,"timepicker-ui-hour-time-12","hours",this.disabledTime,this.clockType,!0,this.tipsWrapper,t),this.tipsWrapperFor24h&&this.renderer.renderTips(We,"timepicker-ui-hour-time-24","hours",this.disabledTime,this.clockType,!0,this.tipsWrapperFor24h,t)):this.renderer.renderTips(De,"timepicker-ui-hour-time-12","hours",this.disabledTime,this.clockType,!0,void 0,t)}renderMinuteTips(){let e=this.controller.getState(),t=e.amPm,i=e.hour;this.renderer.renderTips(te,"timepicker-ui-minutes-time","minutes",this.disabledTime,this.clockType,!0,void 0,t,i)}calculateInitialAngle(e,t){let i=parseInt(t,10);return e==="hours"?i%12*30:i*6}destroy(){this.dragHandlers.detach(),this.controller.destroy()}};var se=class{timepicker;clockSystem=null;constructor(e){this.timepicker=e}initializeClockSystem(){if(!this.timepicker.clockFace||!this.timepicker.clockHand||!this.timepicker.circle)return;let e=this.timepicker._options.clockType==="24h";if(!this.timepicker.tipsWrapper)return;let t={clockFace:this.timepicker.clockFace,tipsWrapper:this.timepicker.tipsWrapper,tipsWrapperFor24h:e?this.timepicker.tipsWrapperFor24h:void 0,clockHand:this.timepicker.clockHand,circle:this.timepicker.circle,clockType:this.timepicker._options.clockType||"12h",disabledTime:this.convertDisabledTime(),initialHour:this.timepicker.hour?.value||"12",initialMinute:this.timepicker.minutes?.value||"00",initialAmPm:this.getAmPmValue(),theme:this.timepicker._options.theme,incrementHours:this.timepicker._options.incrementHours||1,incrementMinutes:this.timepicker._options.incrementMinutes||1,timepicker:this.timepicker,onHourChange:i=>{this.timepicker.hour&&(this.timepicker.hour.value=i)},onMinuteChange:i=>{this.timepicker.minutes&&(this.timepicker.minutes.value=i)}};this.clockSystem=new re(t),this.clockSystem.initialize()}convertDisabledTime(){if(!this.timepicker._disabledTime?.value)return null;let e=this.timepicker._disabledTime.value,t;return e.intervals&&(t=Array.isArray(e.intervals)?e.intervals:[e.intervals]),{hours:e.hours,minutes:e.minutes,isInterval:e.isInterval,intervals:t,clockType:e.clockType}}getAmPmValue(){if(this.timepicker._options.clockType==="24h")return"";let e=this.timepicker.activeTypeMode;if(e){let t=e.textContent?.trim();if(t==="AM"||t==="PM")return t}return this.timepicker.AM?.classList.contains("active")?"AM":"PM"}destroyClockSystem(){this.clockSystem&&(this.clockSystem.destroy(),this.clockSystem=null)}removeCircleClockClasses24h(){this.timepicker.circle?.classList.remove("timepicker-ui-circle-hand-24h"),this.timepicker.clockHand?.classList.remove("timepicker-ui-clock-hand-24h")}setCircleClockClasses24h(){this.timepicker.circle&&this.timepicker.circle?.classList.add("timepicker-ui-circle-hand-24h"),this.timepicker.clockHand&&this.timepicker.clockHand?.classList.add("timepicker-ui-clock-hand-24h")}setOnStartCSSClassesIfClockType24h(){if(this.timepicker._options.clockType==="24h"){let t=this.timepicker?.configManager?.getInputValue(this.timepicker.input,this.timepicker._options.clockType,this.timepicker._options.currentTime)?.hour;this.timepicker.input.value.length>0&&(t=this.timepicker.input.value.split(":")[0]),(Number(t)>12||Number(t)===0)&&this.setCircleClockClasses24h()}}setBgColorToCircleWithMinutesTips=()=>{if(this.timepicker.minutes.value&&te.includes(this.timepicker.minutes.value)){let e=getComputedStyle(this.timepicker.circle).getPropertyValue("--timepicker-primary").trim();e&&(this.timepicker.circle.style.backgroundColor=e),this.timepicker.circle.classList.remove("small-circle")}};removeBgColorToCirleWithMinutesTips=()=>{this.timepicker.minutes.value&&te.includes(this.timepicker.minutes.value)||(this.timepicker.circle.style.backgroundColor="",this.timepicker.circle.classList.add("small-circle"))};setClassActiveToHourOnOpen=()=>{this.timepicker._options.mobile||this.timepicker._isMobileView||this.timepicker.hour?.classList.add(L)};setMinutesToClock=e=>{this.clockSystem&&(this.removeBgColorToCirleWithMinutesTips(),this.clockSystem.switchToMinutes(),e&&this.clockSystem.setMinute(e))};setHoursToClock=e=>{this.clockSystem&&(this.clockSystem.switchToHours(),e&&this.clockSystem.setHour(e))};setTransformToCircleWithSwitchesHour=e=>{!this.clockSystem||!e||this.clockSystem.setHour(e)};setTransformToCircleWithSwitchesMinutes=e=>{!this.clockSystem||!e||this.clockSystem.setMinute(e)};updateAmPm=()=>{if(!this.clockSystem||this.timepicker._options.clockType==="24h")return;let e=this.getAmPmValue();e!==""&&this.clockSystem.setAmPm(e)};toggleClassActiveToValueTips=e=>{if(this.clockSystem)return;let t=this.timepicker.allValueTips.find(i=>Number(i.innerText)===Number(e));this.timepicker.allValueTips.map(i=>{i.classList.remove(L),i.setAttribute("aria-selected","false")}),t!==void 0&&(t.classList.add(L),t.setAttribute("aria-selected","true"))}};var q=class o extends Error{constructor(t,i){super(`[TimepickerUI] ${t}`);this.code=i;this.name="TimepickerError",Object.setPrototypeOf(this,o.prototype)}},be={ELEMENT_NOT_FOUND:"ELEMENT_NOT_FOUND",INVALID_PARAMETER:"INVALID_PARAMETER",NO_INPUT_ELEMENT:"NO_INPUT_ELEMENT",INSTANCE_DESTROYED:"INSTANCE_DESTROYED",NOT_INITIALIZED:"NOT_INITIALIZED",INVALID_TIME_FORMAT:"INVALID_TIME_FORMAT",INLINE_CONFIG_ERROR:"INLINE_CONFIG_ERROR",CONTAINER_NOT_FOUND:"CONTAINER_NOT_FOUND",SSR_ENVIRONMENT:"SSR_ENVIRONMENT"};var ne=class{timepicker;constructor(e){this.timepicker=e}setErrorHandler(){let e=this.timepicker.input;if(!e)return;let{error:t,currentHour:i,currentMin:r,currentType:s,currentLength:n}=H(e,this.timepicker._options.clockType);if(this.removeErrorHandler(),t){let a=document.createElement("div");a.classList.add("timepicker-ui-invalid-text"),a.innerHTML="<b>Invalid Time Format</b>",e.classList.add("timepicker-ui-invalid-format"),e.nextElementSibling?.classList.contains("timepicker-ui-invalid-text")||e.after(a);let c={error:t,currentHour:i,currentMin:r,currentType:s,currentLength:n};return C(this.timepicker._element,"timepicker:error",c,this.timepicker._options.onError),this.timepicker.emit?.("error",c),!1}return!0}removeErrorHandler(){let e=this.timepicker.input;if(!e)return;e.classList.remove("timepicker-ui-invalid-format");let t=e.nextElementSibling;t?.classList.contains("timepicker-ui-invalid-text")&&t.remove()}checkDisabledValuesOnStart(){if(!this.timepicker._options.disabledTime)return;let{disabledTime:e,clockType:t}=this.timepicker._options;if(e.interval){if(!t)throw new q("clockType is required when using disabledTime.interval",be.INVALID_PARAMETER);let a=Array.isArray(e.interval)?e.interval:[e.interval];try{he(a,t)}catch(c){throw new q(`Invalid disabledTime.interval: ${c.message}`,be.INVALID_PARAMETER)}return}let{hours:i,minutes:r}=e,s=i?R(i,"hour",t):!0,n=r?R(r,"minutes",t):!0;if(!s||!n)throw new q("Invalid hours or minutes in disabledTime option",be.INVALID_PARAMETER)}destroy(){this.removeErrorHandler()}};var oe={crane:["crane"],"crane-straight":["crane-straight"],m2:["m2"],"m3-green":["m3-green"],dark:["dark"],glassmorphic:["glassmorphic"],pastel:["pastel"],ai:["ai"],cyberpunk:["cyberpunk"],custom:["custom"]};var ae=class{timepicker;constructor(e){this.timepicker=e}setTheme=()=>{let e=this.timepicker.modalElement;if(!e||!this.timepicker._options)return;let{theme:t}=this.timepicker._options;if(!t||!oe[t])return;e.querySelectorAll("input, div").forEach(r=>{Object.values(oe).forEach(s=>r.classList.remove(...s)),r.classList.add(...oe[t])})};setInputClassToInputElement=()=>{let e=this.timepicker.input;e&&(T(e,"timepicker-ui-input")||e.classList.add("timepicker-ui-input"))};setDataOpenToInputIfDoesntExistInWrapper=()=>{this.timepicker.openElementData===null&&this.timepicker.input&&this.timepicker.input.setAttribute("data-open","timepicker-ui-input")};setClassTopOpenElement=()=>{for(let e of this.timepicker.openElement)e&&e.classList.add("timepicker-ui-open-element")};setTimepickerClassToElement=()=>{let e=this.timepicker._element;if(!e)return;e.classList.add(Ae);let t=this.timepicker._options?.cssClass;t&&t!==Ae&&e.classList.add(t)};destroy(){let e=this.timepicker.modalElement;if(!e)return;e.querySelectorAll("input, div").forEach(i=>{Object.values(oe).forEach(r=>i.classList.remove(...r))})}};var Ee=class{timeouts=[];animationFrame;runWithTimeout(e,t){let i=setTimeout(e,t);this.timeouts.push(i)}clearAll(){this.timeouts.forEach(clearTimeout),this.timeouts=[],this.animationFrame&&(cancelAnimationFrame(this.animationFrame),this.animationFrame=void 0)}setAnimationFrame(e){this.animationFrame=e}};var Ce=class{constructor(e){this.timepicker=e}updateIconAndLabel(e,t,i){if(t&&(t.textContent=i?this.timepicker._options.mobileTimeLabel||"Enter Time":this.timepicker._options.timeLabel||"Select time"),e){let r=e.querySelector(".timepicker-ui-keyboard-icon");r&&(r.innerHTML=i?this.timepicker._options.iconTemplateMobile||ge:this.timepicker._options.iconTemplate||fe)}}toggleViewClasses(e){let t=e?"add":"remove";this.timepicker.inputWrappers?.forEach(i=>i.classList[t]("mobile")),this.timepicker.minutesText.classList[t]("show"),this.timepicker.dots.classList[t]("mobile"),this.timepicker.hourText.classList[t]("show"),this.timepicker.header.classList[t]("show")}updateReadonlyState(e,t,i){i?(e?.removeAttribute("readonly"),t?.removeAttribute("readonly")):this.timepicker._options.editable||(e?.setAttribute("readonly",""),t?.setAttribute("readonly",""))}switchView(e,t,i,r,s){this.timepicker._isMobileView=s,this.toggleViewClasses(s),this.updateIconAndLabel(t,e,s),this.updateReadonlyState(i,r,s)}};var He=class{constructor(e,t,i){this.timepicker=e;this.timeoutManager=t;this.viewSwitcher=i}isAnimating=!1;collapseClockFace(e,t,i,r,s,n,a){this.isAnimating=!0,this.viewSwitcher.switchView(s,r,n,a,!0),i?.forEach(c=>{c!==t&&c!==e&&c!==s&&(c.classList.remove("expanded"),c.classList.add("mobile"))}),s&&(s.classList.remove("expanded"),s.classList.add("mobile")),requestAnimationFrame(()=>{t?.classList.remove("expanded"),t?.classList.add("mobile"),e?.classList.remove("expanded"),e?.classList.add("mobile"),this.timepicker.clockFace?.classList.remove("scale-in"),this.timeoutManager.runWithTimeout(()=>{this.isAnimating=!1},450)}),r?.setAttribute("aria-label","Show clock face"),r?.setAttribute("aria-pressed","false")}expandClockFace(e,t,i,r,s,n,a){if(this.isAnimating=!0,!e.hasAttribute("data-clock-initialized")&&(e.setAttribute("data-clock-initialized","true"),this.timepicker.clockFace?.classList.remove("scale-in")),this.timepicker.clockManager){let m=this.timepicker.modalElement?.querySelector(".timepicker-ui-minutes");m?.classList.contains("active")&&m?this.timepicker.clockManager.setMinutesToClock(m.value):n&&this.timepicker.clockManager.setHoursToClock(n.value),this.timepicker.eventManager&&this.timepicker.eventManager.handleMoveHand()}i?.forEach(m=>{m!==t&&m!==e&&m!==s&&(m.classList.remove("mobile"),m.classList.add("expanded"))}),s&&(s.classList.remove("mobile"),s.classList.add("expanded")),this.viewSwitcher.switchView(s,r,n,a,!1),requestAnimationFrame(()=>{e.classList.remove("mobile"),e.classList.add("expanded"),requestAnimationFrame(()=>{t&&(t.classList.remove("mobile"),t.classList.add("expanded")),this.timeoutManager.runWithTimeout(()=>{this.timepicker.clockFace?.classList.add("scale-in")},150),this.timeoutManager.runWithTimeout(()=>{this.isAnimating=!1},450)})}),r?.setAttribute("aria-label","Hide clock face"),r?.setAttribute("aria-pressed","true")}toggle(){if(this.isAnimating)return;let e=this.timepicker.modalElement?.querySelector(".timepicker-ui-wrapper"),t=this.timepicker.keyboardClockIcon,i=this.timepicker.modalElement?.querySelector(".timepicker-ui-mobile-clock-wrapper"),r=this.timepicker.modalElement?.querySelectorAll("*"),s=this.timepicker.modalElement?.querySelector(".timepicker-ui-select-time"),n=this.timepicker.hour,a=this.timepicker.minutes;if(!e)return;e.classList.contains("expanded")?this.collapseClockFace(e,i,r,t,s,n,a):this.expandClockFace(e,i,r,t,s,n,a)}};var Ie=class{constructor(e){this.timepicker=e}isCurrentTimeEnabled(e){let t=this.timepicker._options?.currentTime;return typeof t=="boolean"?t:!!t?.[e]}preventClockTypeByCurrentTime(){if(!this.isCurrentTimeEnabled("preventClockType"))return;let{currentTime:e,clockType:t}=this.timepicker._options,{type:i}=H(this.timepicker.input,t,e,!0);this.timepicker._options.clockType=i?"12h":"24h"}updateInputValueWithCurrentTimeOnStart(){if(!this.isCurrentTimeEnabled("updateInput"))return;let{hour:e,minutes:t,type:i}=H(this.timepicker.input,this.timepicker._options.clockType,this.timepicker._options.currentTime);this.timepicker.input.value=i?`${e}:${t} ${i}`:`${e}:${t}`}checkMobileOption(){this.timepicker._isMobileView=!!this.timepicker._options.mobile,this.timepicker._options.mobile&&(this.timepicker._options.editable=!0)}getDisableTime(){let e=qe(this.timepicker._options);this.timepicker._disabledTime=e||null}getInputValueOnOpenAndSet(){let e=H(this.timepicker.input,this.timepicker._options.clockType,this.timepicker._options.currentTime);if(e===void 0){this.timepicker.hour.value="12",this.timepicker.minutes.value="00";let a={hour:this.timepicker.hour.value,minutes:this.timepicker.minutes.value,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes};C(this.timepicker._element,"timepicker:open",a,this.timepicker._options.onOpen),this.timepicker.emit?.("open",a),this.timepicker._options.clockType!=="24h"&&this.timepicker.AM.classList.add(L);return}let[t,i,r]=this.timepicker.input.value.split(":").join(" ").split(" ");this.timepicker.input.value.length===0&&(t=e.hour,i=e.minutes,r=e.type),this.timepicker.hour.value=t,this.timepicker.minutes.value=i;let s=this.timepicker.modalElement?.querySelector(`[data-type='${r}']`);this.timepicker._options.clockType!=="24h"&&s&&s.classList.add(L);let n={...e,type:this.timepicker.activeTypeMode?.dataset.type,degreesHours:this.timepicker._degreesHours,degreesMinutes:this.timepicker._degreesMinutes};C(this.timepicker._element,"timepicker:open",n,this.timepicker._options.onOpen),this.timepicker.emit?.("open",n)}};var le=class{timepicker;debouncedHandler;timeoutManager;viewSwitcher;mobileToggler;initManager;constructor(e){this.timepicker=e,this.timeoutManager=new Ee,this.viewSwitcher=new Ce(e),this.mobileToggler=new He(e,this.timeoutManager,this.viewSwitcher),this.initManager=new Ie(e)}preventClockTypeByCurrentTime=()=>{this.initManager.preventClockTypeByCurrentTime()};updateInputValueWithCurrentTimeOnStart=()=>{this.initManager.updateInputValueWithCurrentTimeOnStart()};checkMobileOption(){this.initManager.checkMobileOption()}getDisableTime(){this.initManager.getDisableTime()}getInputValueOnOpenAndSet=()=>{this.initManager.getInputValueOnOpenAndSet()};toggleMobileClockFace=()=>{this.mobileToggler.toggle()};getInputValue=H;destroy(){this.timeoutManager.clearAll(),this.debouncedHandler&&"cancel"in this.debouncedHandler&&this.debouncedHandler.cancel?.()}};var W=class{events=new Map;on(e,t){this.events.has(e)||this.events.set(e,new Set),this.events.get(e).add(t)}once(e,t){let i=r=>{t(r),this.off(e,i)};this.on(e,i)}off(e,t){t?this.events.get(e)?.delete(t):this.events.delete(e)}emit(e,t){this.events.get(e)?.forEach(i=>{i(t)})}clear(){this.events.clear()}hasListeners(e){return(this.events.get(e)?.size??0)>0}};var Le=class{updates=[];rafId=null;schedule(e){this.updates.push(e),this.rafId||(this.rafId=requestAnimationFrame(()=>this.flush()))}flush(){this.updates.forEach(e=>e()),this.updates=[],this.rafId=null}destroy(){this.rafId&&(cancelAnimationFrame(this.rafId),this.rafId=null),this.updates=[]}};var ce=class{_degreesHours=null;_degreesMinutes=null;_options;_eventsClickMobile=()=>Promise.resolve();_eventsClickMobileHandler=()=>{};_mutliEventsMove=()=>{};_mutliEventsMoveHandler;_clickTouchEvents;_element;_instanceId;_isMobileView;_isTouchMouseMove;_disabledTime;_cloned;_inputEvents;_isModalRemove;_isInitialized=!1;_customId;_eventHandlersRegistered=!1;_isDestroyed=!1;_pendingThemeConfig;eventManager;modalManager;animationManager;clockManager;validationManager;themeManager;configManager;domBatcher;_eventEmitter;constructor(e,t){if(typeof window>"u"){this._isDestroyed=!0;return}let i=null;try{i=this._resolveInputElement(e)}catch{this._isDestroyed=!0;return}if(!i){this._isDestroyed=!0;return}this._eventEmitter=new W,this.domBatcher=new Le;let r=t?.id;this._customId=r,this._instanceId=r||`timepicker-ui-${Ne()}`,this._element=this._createWrapperElement(i),this._cloned=null;let s=$e(this._element?.dataset);if(this._options={...Pe({...we,...t,...s},we)},this._options.inline?.enabled&&typeof t?.focusTrap>"u"&&(this._options.focusTrap=!1),this._isTouchMouseMove=!1,this._degreesHours=Number(H(this._element?.querySelector("input"),this._options.clockType).hour)*30,this._degreesMinutes=Number(H(this._element?.querySelector("input"),this._options.clockType).minutes)*6,this._isMobileView=!1,this._mutliEventsMove=n=>this.eventManager.handleEventToMoveHand(n),this._mutliEventsMoveHandler=this._mutliEventsMove.bind(this),this._eventsClickMobile=n=>this.eventManager.handlerClickHourMinutes(n),this._eventsClickMobileHandler=this._eventsClickMobile.bind(this),this.eventManager=new J(this),this.modalManager=new Q(this),this.animationManager=new ee(this),this.clockManager=new se(this),this.validationManager=new ne(this),this.themeManager=new ae(this),this.configManager=new le(this),this.configManager.checkMobileOption(),this._clickTouchEvents=["click","mousedown","touchstart"],this._inputEvents=["change",...this._clickTouchEvents],this._disabledTime=null,this.configManager.preventClockTypeByCurrentTime(),this._isModalRemove=!0,this._isInitialized=!1,this._options.inline?.enabled){if(!this._options.inline.containerId){this._isDestroyed=!0;return}if(!document.getElementById(this._options.inline.containerId)){this._isDestroyed=!0;return}}}get modalTemplate(){return Be(this._options,this._instanceId)}get modalElement(){return document.querySelector(`[data-owner-id="${this._instanceId}"]`)}get clockFace(){return this._isMobileView?this.modalElement?.querySelector(".timepicker-ui-clock-face.mobile"):this.modalElement?.querySelector(".timepicker-ui-clock-face:not(.mobile)")}get input(){return this._element?.querySelector("input")}get clockHand(){return this._isMobileView?this.modalElement?.querySelector(".timepicker-ui-mobile-clock-wrapper .timepicker-ui-clock-hand"):this.modalElement?.querySelector(".timepicker-ui-clock-hand:not(.mobile)")}get circle(){return this._isMobileView?this.modalElement?.querySelector(".timepicker-ui-mobile-clock-wrapper .timepicker-ui-circle-hand"):this.modalElement?.querySelector(".timepicker-ui-circle-hand:not(.mobile)")}get tipsWrapper(){return this._isMobileView?this.modalElement?.querySelector(".timepicker-ui-mobile-clock-wrapper .timepicker-ui-tips-wrapper"):this.modalElement?.querySelector(".timepicker-ui-tips-wrapper:not(.mobile)")}get tipsWrapperFor24h(){return this._isMobileView?this.modalElement?.querySelector(".timepicker-ui-mobile-clock-wrapper .timepicker-ui-tips-wrapper-24h"):this.modalElement?.querySelector(".timepicker-ui-tips-wrapper-24h:not(.mobile)")}get minutes(){return this.modalElement?.querySelector(".timepicker-ui-minutes")}get hour(){return this.modalElement?.querySelector(".timepicker-ui-hour")}get AM(){return this.modalElement?.querySelector(".timepicker-ui-am")}get PM(){return this.modalElement?.querySelector(".timepicker-ui-pm")}get hourText(){return this.modalElement?.querySelector(".timepicker-ui-hour-text")}get minutesText(){return this.modalElement?.querySelector(".timepicker-ui-minute-text")}get header(){return this.modalElement?.querySelector(".timepicker-ui-header")}get inputWrappers(){return this.modalElement?.querySelectorAll(".timepicker-ui-input-wrapper")}get dots(){return this.modalElement?.querySelector(".timepicker-ui-dots")}get minutesTips(){return this.modalElement?.querySelector(".timepicker-ui-minutes-time")}get hourTips(){return this.modalElement?.querySelector(".timepicker-ui-hour-time-12")}get allValueTips(){let e=this.modalElement;return e?[...e.querySelectorAll(".timepicker-ui-value-tips"),...e.querySelectorAll(".timepicker-ui-value-tips-24h")]:[]}get openElementData(){let e=this._element?.querySelectorAll("[data-open]");if(e?.length>0){let t=[];return e.forEach(({dataset:i})=>t.push(i.open??"")),[...new Set(t)]}return null}get openElement(){return this.openElementData===null?(this.input?.setAttribute("data-open","timepicker-ui-input"),[this.input]):this.openElementData.map(e=>this._element?.querySelectorAll(`[data-open='${e}']`))[0]??""}get cancelButton(){return this.modalElement?.querySelector(".timepicker-ui-cancel-btn")}get okButton(){return this.modalElement?.querySelector(".timepicker-ui-ok-btn")}get activeTypeMode(){return this.modalElement?.querySelector(".timepicker-ui-type-mode.active")}get keyboardClockIcon(){return this.modalElement?.querySelector(".timepicker-ui-keyboard-icon-wrapper")}get footer(){return this.modalElement?.querySelector(".timepicker-ui-footer")}get wrapper(){return this.modalElement?.querySelector(".timepicker-ui-wrapper")}getElement(){return this._element}on(e,t){this._isDestroyed||this._eventEmitter.on(e,t)}once(e,t){this._isDestroyed||this._eventEmitter.once(e,t)}off(e,t){this._isDestroyed||this._eventEmitter.off(e,t)}emit(e,t){this._eventEmitter.emit(e,t)}_applyThemeToWrapper(e){if(!this._pendingThemeConfig)return;let t={primaryColor:"--timepicker-primary",backgroundColor:"--timepicker-bg",surfaceColor:"--timepicker-surface",surfaceHoverColor:"--timepicker-surface-hover",textColor:"--timepicker-text",secondaryTextColor:"--timepicker-secondary-text",disabledTextColor:"--timepicker-disabled-text",onPrimaryColor:"--timepicker-on-primary",borderColor:"--timepicker-border",shadow:"--timepicker-shadow",borderRadius:"--timepicker-border-radius",fontFamily:"--timepicker-font-family"};Object.entries(this._pendingThemeConfig).forEach(([i,r])=>{r&&t[i]&&e.style.setProperty(t[i],r)})}_resolveInputElement(e){let t=null;if(typeof e=="string"){if(t=document.querySelector(e),!t)return null}else if(e instanceof HTMLElement)t=e;else return null;return t.tagName==="INPUT"?t:t.querySelector("input")}_createWrapperElement(e){let t=e.parentElement;if(e.tagName==="INPUT"&&!t?.classList.contains("timepicker-ui")){let i=document.createElement("div");return i.className="timepicker-ui",e.parentNode?.insertBefore(i,e),i.appendChild(e),i}return t&&!t.classList.contains("timepicker-ui")&&t.classList.add("timepicker-ui"),t||e}};var me=class extends ce{create=()=>{if(!this._isDestroyed&&!this._isInitialized){try{this.configManager.updateInputValueWithCurrentTimeOnStart(),this.validationManager.checkDisabledValuesOnStart()}catch{this._isDestroyed=!0;return}this.themeManager.setTimepickerClassToElement(),this.themeManager.setInputClassToInputElement(),this.themeManager.setDataOpenToInputIfDoesntExistInWrapper(),this.themeManager.setClassTopOpenElement(),this._options.inline?.enabled?(this.eventManager.handleOpenOnEnterFocus(),this._eventsBundle()):(this.eventManager.handleOpenOnEnterFocus(),this.eventManager.handleOpenOnClick()),this.configManager.getDisableTime(),this._isInitialized=!0}};open=e=>{this._isDestroyed||(this._isInitialized||this.create(),this._eventsBundle(),U(e))};close=()=>Ve((...e)=>{if(e.length>2||!this.modalElement)return;let[t]=e.filter(r=>typeof r=="boolean"),[i]=e.filter(r=>typeof r=="function");this._isMobileView=!!this._options.mobile,t&&(this.eventManager.handleOkButton(),this.okButton?.click()),this._isTouchMouseMove=!1,document.removeEventListener("mousedown",this.eventManager._onDragStart,!1),document.removeEventListener("touchstart",this.eventManager._onDragStart),document.removeEventListener("mousemove",this.eventManager._onDragMove,!1),document.removeEventListener("mouseup",this.eventManager._onDragEnd,!1),document.removeEventListener("touchmove",this.eventManager._onDragMove),document.removeEventListener("touchend",this.eventManager._onDragEnd,!1),document.removeEventListener("mouseleave",this.eventManager._onDragEnd,!1),document.removeEventListener("mousedown",this._eventsClickMobileHandler),document.removeEventListener("touchstart",this._eventsClickMobileHandler),document.removeEventListener("keypress",this.eventManager.handleEscClick),this.wrapper.removeEventListener("keydown",this.eventManager.focusTrapHandler),this.animationManager.removeAnimationToClose(),this.openElement.forEach(r=>r?.classList.remove("disabled")),setTimeout(()=>{document.body.style.overflowY="",document.body.style.paddingRight=""},400),this.openElement.forEach(r=>r?.classList.remove("disabled")),setTimeout(()=>{this._options.focusInputAfterCloseModal&&this.input?.focus(),this.modalElement!==null&&(this.clockManager.destroyClockSystem(),this.modalElement.remove(),this._isModalRemove=!0)},300),U(i)},this._options.delayHandler||300);destroy=e=>{if(this._isDestroyed)return;let t=typeof e=="function"?{callback:e}:e||{},{keepInputValue:i=!1,callback:r}=t,s=i?this.input?.value:null;this.domBatcher.destroy(),Ue.split(" ").forEach(a=>{document.removeEventListener(a,this._mutliEventsMoveHandler,!1)}),document.removeEventListener("mousedown",this.eventManager._onDragStart,!1),document.removeEventListener("touchstart",this.eventManager._onDragStart),document.removeEventListener("mousemove",this.eventManager._onDragMove,!1),document.removeEventListener("mouseup",this.eventManager._onDragEnd,!1),document.removeEventListener("touchmove",this.eventManager._onDragMove),document.removeEventListener("touchend",this.eventManager._onDragEnd,!1),document.removeEventListener("mouseleave",this.eventManager._onDragEnd,!1),document.removeEventListener("mousedown",this._eventsClickMobileHandler),document.removeEventListener("touchstart",this._eventsClickMobileHandler),this.modalElement?.remove(),this.openElement?.forEach(a=>{a&&(a.classList.remove("disabled","active","timepicker-ui-open-element"),a.classList.remove("basic","crane-straight","crane","m2","m3-green"))}),this.input&&(this.input.classList.remove("timepicker-ui-invalid-format","invalid-value","error","active","timepicker-ui-input"),this.input.removeAttribute("data-open"),this.input.removeAttribute("data-owner-id"),i&&s!==null&&(this.input.value=s)),this._element&&(this._element.classList.remove("basic","crane-straight","crane","m2","m3-green"),this._element.classList.remove("error","active","disabled"),this._element.removeAttribute("data-owner-id"),this._element.removeAttribute("data-open"),this._options.cssClass&&this._element.classList.remove(this._options.cssClass)),this._element?.querySelectorAll(".timepicker-ui-invalid-text")?.forEach(a=>a.remove()),this._mutliEventsMoveHandler=()=>{},this._eventsClickMobileHandler=()=>{},this._mutliEventsMove=()=>{},this._eventsClickMobile=()=>Promise.resolve(),this._isModalRemove=!0,this._isTouchMouseMove=!1,this._disabledTime=null,this._cloned=null,this._degreesHours=null,this._degreesMinutes=null,this._isInitialized=!1,this._isDestroyed=!0,typeof document<"u"&&(document.body.style.overflowY="",document.body.style.paddingRight=""),this.onDestroy?.(),U(r)};onDestroy;_eventsBundle=()=>{if(!this._isDestroyed&&this._isModalRemove){if(this._options.inline?.enabled||this.eventManager.handleEscClick(),this.validationManager.setErrorHandler(),this.validationManager.removeErrorHandler(),this._options.inline?.enabled||(this.openElement.forEach(e=>e?.classList.add("disabled")),this.input?.blur()),this.modalManager.setScrollbarOrNot(),this.modalManager.setModalTemplate(),this.modalManager.setNormalizeClass(),this.modalManager.removeBackdrop(),this.clockManager.setOnStartCSSClassesIfClockType24h(),this.clockManager.setClassActiveToHourOnOpen(),this.modalElement&&Re(this.modalElement),!this._isMobileView){let e=this.modalElement?.querySelector(".timepicker-ui-mobile-clock-wrapper"),t=this.modalElement?.querySelector(".timepicker-ui-wrapper"),i=this.modalElement?.querySelectorAll("*");e?.classList.add("expanded"),t?.classList.add("expanded"),i?.forEach(r=>{!r.classList.contains("timepicker-ui-select-time")&&!r.classList.contains("timepicker-ui-mobile-clock-wrapper")&&!r.classList.contains("timepicker-ui-wrapper")&&r.classList.add("expanded")})}this.modalManager.setFlexEndToFooterIfNoKeyboardIcon(),setTimeout(()=>{this.themeManager.setTheme();let e=this.modalElement?.querySelector(".timepicker-ui-wrapper");e&&(this._options.cssClass&&e.classList.add(this._options.cssClass),this._pendingThemeConfig&&this._applyThemeToWrapper(e))},0),this.animationManager.setAnimationToOpen(),this.configManager.getInputValueOnOpenAndSet(),this.clockManager.initializeClockSystem(),this.clockManager.toggleClassActiveToValueTips(this.hour.value),this._isMobileView||(this.clockManager.setTransformToCircleWithSwitchesHour(this.hour.value),this.animationManager.handleAnimationClock()),this.eventManager.handleMinutesEvents(),this.eventManager.handleHourEvents(),this._options.clockType!=="24h"&&(this.eventManager.handleAmClick(),this.eventManager.handlePmClick()),this.clockFace&&(this.eventManager.handleMoveHand(),requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.clockFace?.classList.add("scale-in")})})),this.eventManager.handleCancelButton(),this.eventManager.handleOkButton(),this.modalElement&&(this.modalManager.setShowClassToBackdrop(),this._options.inline?.enabled||this.eventManager.handleBackdropClick()),this.eventManager.handleClickOnHourMobile(),this.eventManager.handleIconChangeView(),this._options.focusTrap&&this.eventManager.focusTrapHandler(),this._options.inline?.enabled&&this._options.inline.autoUpdate!==!1&&this.eventManager.handleInlineAutoUpdate()}}};var pe=class extends me{getValue=()=>{if(this._isDestroyed)return{hour:"",minutes:"",type:void 0,time:"",degreesHours:null,degreesMinutes:null};let e=this.hour?.value||"12",t=this.minutes?.value||"00",i=this._options.clockType==="24h"?void 0:this.activeTypeMode?.textContent||"AM",r="";return this._options.clockType==="24h"?r=`${e.padStart(2,"0")}:${t.padStart(2,"0")}`:r=`${e}:${t.padStart(2,"0")} ${i}`,{hour:e,minutes:t,type:i,time:r,degreesHours:this._degreesHours,degreesMinutes:this._degreesMinutes}};setValue=(e,t=!0)=>{if(this._isDestroyed||!e||typeof e!="string")return;this._isInitialized||this.create();let i=de(e.trim()),r="12",s="00",n="AM";try{if(this._options.clockType==="24h"){let a=i.match(/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/);if(!a)throw new Error("Invalid 24h format. Expected HH:MM");r=a[1].padStart(2,"0"),s=a[2]}else{let a=i.match(/^(1[0-2]|[1-9]):([0-5][0-9])\s*(AM|PM)$/i);if(!a)throw new Error("Invalid 12h format. Expected HH:MM AM/PM");r=a[1],s=a[2],n=a[3].toUpperCase()}this.hour&&(this.hour.value=r,this.hour.setAttribute("aria-valuenow",r),this._degreesHours=Number(r)*30),this.minutes&&(this.minutes.value=s,this.minutes.setAttribute("aria-valuenow",s),this._degreesMinutes=Number(s)*6),this._options.clockType!=="24h"&&this.AM&&this.PM&&(n==="AM"?(this.AM.classList.add("active"),this.PM.classList.remove("active")):(this.PM.classList.add("active"),this.AM.classList.remove("active"))),t&&this.input&&(this.input.value=i),this.clockHand&&(this.clockHand.style.transform=`rotateZ(${this._degreesHours||0}deg)`)}catch{return}};update=(e,t)=>{this._isDestroyed||(this._options={...this._options,...e.options},this.configManager.checkMobileOption(),e.create&&this.create(),U(t))};setTheme(e){if(this._isDestroyed)return;this._pendingThemeConfig=e;let t=this.modalElement?.querySelector(".timepicker-ui-wrapper");t&&this._applyThemeToWrapper(t)}};var O=new Map,$=class extends pe{constructor(e,t){if(super(e,t),this._isDestroyed)return;let i=t?.id;if(i&&O.has(i)){this._isDestroyed=!0;return}O.set(this._instanceId,this),this.onDestroy=()=>{O.delete(this._instanceId)}}static getById(e){return O.get(e)}static getAllInstances(){return Array.from(O.values())}static isAvailable(e){return typeof window>"u"?!1:typeof e=="string"?document.querySelector(e)!==null:e instanceof HTMLElement?document.contains(e):!1}static destroyAll(){Array.from(O.values()).forEach(t=>t.destroy()),O.clear()}};var st=$;0&&(module.exports={EventEmitter,TimepickerUI});
|