UNPKG

@tiaohsun/vue-datepicker

Version:

A Vue 3 datepicker with multi-calendar support, styled with Tailwind CSS

2 lines 186 kB
(function(fe,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("vue"),require("dayjs")):typeof define=="function"&&define.amd?define(["exports","vue","dayjs"],a):(fe=typeof globalThis<"u"?globalThis:fe||self,a(fe.VueDatePicker={},fe.Vue,fe.dayjs))})(this,function(fe,a,ae){"use strict";function Le(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Qe={exports:{}},ir=Qe.exports,Zt;function cr(){return Zt||(Zt=1,function(n,e){(function(t,r){n.exports=r()})(ir,function(){var t="minute",r=/[+-]\d\d(?::?\d\d)?/g,o=/([+-]|\d\d)/g;return function(l,s,i){var u=s.prototype;i.utc=function(f){var y={date:f,utc:!0,args:arguments};return new s(y)},u.utc=function(f){var y=i(this.toDate(),{locale:this.$L,utc:!0});return f?y.add(this.utcOffset(),t):y},u.local=function(){return i(this.toDate(),{locale:this.$L,utc:!1})};var c=u.parse;u.parse=function(f){f.utc&&(this.$u=!0),this.$utils().u(f.$offset)||(this.$offset=f.$offset),c.call(this,f)};var h=u.init;u.init=function(){if(this.$u){var f=this.$d;this.$y=f.getUTCFullYear(),this.$M=f.getUTCMonth(),this.$D=f.getUTCDate(),this.$W=f.getUTCDay(),this.$H=f.getUTCHours(),this.$m=f.getUTCMinutes(),this.$s=f.getUTCSeconds(),this.$ms=f.getUTCMilliseconds()}else h.call(this)};var v=u.utcOffset;u.utcOffset=function(f,y){var m=this.$utils().u;if(m(f))return this.$u?0:m(this.$offset)?v.call(this):this.$offset;if(typeof f=="string"&&(f=function(b){b===void 0&&(b="");var D=b.match(r);if(!D)return null;var d=(""+D[0]).match(o)||["-",0,0],$=d[0],k=60*+d[1]+ +d[2];return k===0?0:$==="+"?k:-k}(f),f===null))return this;var S=Math.abs(f)<=16?60*f:f,w=this;if(y)return w.$offset=S,w.$u=f===0,w;if(f!==0){var p=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(w=this.local().add(S+p,t)).$offset=S,w.$x.$localOffset=p}else w=this.utc();return w};var g=u.format;u.format=function(f){var y=f||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return g.call(this,y)},u.valueOf=function(){var f=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*f},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var T=u.toDate;u.toDate=function(f){return f==="s"&&this.$offset?i(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():T.call(this)};var x=u.diff;u.diff=function(f,y,m){if(f&&this.$u===f.$u)return x.call(this,f,y,m);var S=this.local(),w=i(f).local();return x.call(S,w,y,m)}}})}(Qe)),Qe.exports}var ur=cr();const dr=Le(ur);var Ze={exports:{}},mr=Ze.exports,Gt;function fr(){return Gt||(Gt=1,function(n,e){(function(t,r){n.exports=r()})(mr,function(){var t={year:0,month:1,day:2,hour:3,minute:4,second:5},r={};return function(o,l,s){var i,u=function(g,T,x){x===void 0&&(x={});var f=new Date(g),y=function(m,S){S===void 0&&(S={});var w=S.timeZoneName||"short",p=m+"|"+w,b=r[p];return b||(b=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:m,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:w}),r[p]=b),b}(T,x);return y.formatToParts(f)},c=function(g,T){for(var x=u(g,T),f=[],y=0;y<x.length;y+=1){var m=x[y],S=m.type,w=m.value,p=t[S];p>=0&&(f[p]=parseInt(w,10))}var b=f[3],D=b===24?0:b,d=f[0]+"-"+f[1]+"-"+f[2]+" "+D+":"+f[4]+":"+f[5]+":000",$=+g;return(s.utc(d).valueOf()-($-=$%1e3))/6e4},h=l.prototype;h.tz=function(g,T){g===void 0&&(g=i);var x,f=this.utcOffset(),y=this.toDate(),m=y.toLocaleString("en-US",{timeZone:g}),S=Math.round((y-new Date(m))/1e3/60),w=15*-Math.round(y.getTimezoneOffset()/15)-S;if(!Number(w))x=this.utcOffset(0,T);else if(x=s(m,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(w,!0),T){var p=x.utcOffset();x=x.add(f-p,"minute")}return x.$x.$timezone=g,x},h.offsetName=function(g){var T=this.$x.$timezone||s.tz.guess(),x=u(this.valueOf(),T,{timeZoneName:g}).find(function(f){return f.type.toLowerCase()==="timezonename"});return x&&x.value};var v=h.startOf;h.startOf=function(g,T){if(!this.$x||!this.$x.$timezone)return v.call(this,g,T);var x=s(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return v.call(x,g,T).tz(this.$x.$timezone,!0)},s.tz=function(g,T,x){var f=x&&T,y=x||T||i,m=c(+s(),y);if(typeof g!="string")return s(g).tz(y);var S=function(D,d,$){var k=D-60*d*1e3,O=c(k,$);if(d===O)return[k,d];var H=c(k-=60*(O-d)*1e3,$);return O===H?[k,O]:[D-60*Math.min(O,H)*1e3,Math.max(O,H)]}(s.utc(g,f).valueOf(),m,y),w=S[0],p=S[1],b=s(w).utcOffset(p);return b.$x.$timezone=y,b},s.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},s.tz.setDefault=function(g){i=g}}})}(Ze)),Ze.exports}var hr=fr();const pr=Le(hr);var Ge={exports:{}},gr=Ge.exports,Xt;function yr(){return Xt||(Xt=1,function(n,e){(function(t,r){n.exports=r()})(gr,function(){var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},r=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,o=/\d/,l=/\d\d/,s=/\d\d?/,i=/\d*[^-_:/,()\s\d]+/,u={},c=function(y){return(y=+y)+(y>68?1900:2e3)},h=function(y){return function(m){this[y]=+m}},v=[/[+-]\d\d:?(\d\d)?|Z/,function(y){(this.zone||(this.zone={})).offset=function(m){if(!m||m==="Z")return 0;var S=m.match(/([+-]|\d\d)/g),w=60*S[1]+(+S[2]||0);return w===0?0:S[0]==="+"?-w:w}(y)}],g=function(y){var m=u[y];return m&&(m.indexOf?m:m.s.concat(m.f))},T=function(y,m){var S,w=u.meridiem;if(w){for(var p=1;p<=24;p+=1)if(y.indexOf(w(p,0,m))>-1){S=p>12;break}}else S=y===(m?"pm":"PM");return S},x={A:[i,function(y){this.afternoon=T(y,!1)}],a:[i,function(y){this.afternoon=T(y,!0)}],Q:[o,function(y){this.month=3*(y-1)+1}],S:[o,function(y){this.milliseconds=100*+y}],SS:[l,function(y){this.milliseconds=10*+y}],SSS:[/\d{3}/,function(y){this.milliseconds=+y}],s:[s,h("seconds")],ss:[s,h("seconds")],m:[s,h("minutes")],mm:[s,h("minutes")],H:[s,h("hours")],h:[s,h("hours")],HH:[s,h("hours")],hh:[s,h("hours")],D:[s,h("day")],DD:[l,h("day")],Do:[i,function(y){var m=u.ordinal,S=y.match(/\d+/);if(this.day=S[0],m)for(var w=1;w<=31;w+=1)m(w).replace(/\[|\]/g,"")===y&&(this.day=w)}],w:[s,h("week")],ww:[l,h("week")],M:[s,h("month")],MM:[l,h("month")],MMM:[i,function(y){var m=g("months"),S=(g("monthsShort")||m.map(function(w){return w.slice(0,3)})).indexOf(y)+1;if(S<1)throw new Error;this.month=S%12||S}],MMMM:[i,function(y){var m=g("months").indexOf(y)+1;if(m<1)throw new Error;this.month=m%12||m}],Y:[/[+-]?\d+/,h("year")],YY:[l,function(y){this.year=c(y)}],YYYY:[/\d{4}/,h("year")],Z:v,ZZ:v};function f(y){var m,S;m=y,S=u&&u.formats;for(var w=(y=m.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(O,H,U){var q=U&&U.toUpperCase();return H||S[U]||t[U]||S[q].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(j,_,V){return _||V.slice(1)})})).match(r),p=w.length,b=0;b<p;b+=1){var D=w[b],d=x[D],$=d&&d[0],k=d&&d[1];w[b]=k?{regex:$,parser:k}:D.replace(/^\[|\]$/g,"")}return function(O){for(var H={},U=0,q=0;U<p;U+=1){var j=w[U];if(typeof j=="string")q+=j.length;else{var _=j.regex,V=j.parser,R=O.slice(q),M=_.exec(R)[0];V.call(H,M),O=O.replace(M,"")}}return function(F){var N=F.afternoon;if(N!==void 0){var K=F.hours;N?K<12&&(F.hours+=12):K===12&&(F.hours=0),delete F.afternoon}}(H),H}}return function(y,m,S){S.p.customParseFormat=!0,y&&y.parseTwoDigitYear&&(c=y.parseTwoDigitYear);var w=m.prototype,p=w.parse;w.parse=function(b){var D=b.date,d=b.utc,$=b.args;this.$u=d;var k=$[1];if(typeof k=="string"){var O=$[2]===!0,H=$[3]===!0,U=O||H,q=$[2];H&&(q=$[2]),u=this.$locale(),!O&&q&&(u=S.Ls[q]),this.$d=function(R,M,F,N){try{if(["x","X"].indexOf(M)>-1)return new Date((M==="X"?1e3:1)*R);var K=f(M)(R),ne=K.year,te=K.month,Y=K.day,C=K.hours,P=K.minutes,Q=K.seconds,W=K.milliseconds,L=K.zone,z=K.week,Z=new Date,le=Y||(ne||te?1:Z.getDate()),se=ne||Z.getFullYear(),me=0;ne&&!te||(me=te>0?te-1:Z.getMonth());var ie,B=C||0,E=P||0,A=Q||0,G=W||0;return L?new Date(Date.UTC(se,me,le,B,E,A,G+60*L.offset*1e3)):F?new Date(Date.UTC(se,me,le,B,E,A,G)):(ie=new Date(se,me,le,B,E,A,G),z&&(ie=N(ie).week(z).toDate()),ie)}catch{return new Date("")}}(D,k,d,S),this.init(),q&&q!==!0&&(this.$L=this.locale(q).$L),U&&D!=this.format(k)&&(this.$d=new Date("")),u={}}else if(k instanceof Array)for(var j=k.length,_=1;_<=j;_+=1){$[1]=k[_-1];var V=S.apply(this,$);if(V.isValid()){this.$d=V.$d,this.$L=V.$L,this.init();break}_===j&&(this.$d=new Date(""))}else p.call(this,b)}}})}(Ge)),Ge.exports}var vr=yr();const ea=Le(vr);var Xe={exports:{}},$r=Xe.exports,ta;function Dr(){return ta||(ta=1,function(n,e){(function(t,r){n.exports=r()})($r,function(){var t="week",r="year";return function(o,l,s){var i=l.prototype;i.week=function(u){if(u===void 0&&(u=null),u!==null)return this.add(7*(u-this.week()),"day");var c=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var h=s(this).startOf(r).add(1,r).date(c),v=s(this).endOf(t);if(h.isBefore(v))return 1}var g=s(this).startOf(r).date(c).startOf(t).subtract(1,"millisecond"),T=this.diff(g,t,!0);return T<0?s(this).startOf("week").week():Math.ceil(T)},i.weeks=function(u){return u===void 0&&(u=null),this.week(u)}}})}(Xe)),Xe.exports}var kr=Dr();const br=Le(kr);var et={exports:{}},Mr=et.exports,aa;function Sr(){return aa||(aa=1,function(n,e){(function(t,r){n.exports=r()})(Mr,function(){return function(t,r,o){var l=r.prototype,s=function(v){return v&&(v.indexOf?v:v.s)},i=function(v,g,T,x,f){var y=v.name?v:v.$locale(),m=s(y[g]),S=s(y[T]),w=m||S.map(function(b){return b.slice(0,x)});if(!f)return w;var p=y.weekStart;return w.map(function(b,D){return w[(D+(p||0))%7]})},u=function(){return o.Ls[o.locale()]},c=function(v,g){return v.formats[g]||function(T){return T.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(x,f,y){return f||y.slice(1)})}(v.formats[g.toUpperCase()])},h=function(){var v=this;return{months:function(g){return g?g.format("MMMM"):i(v,"months")},monthsShort:function(g){return g?g.format("MMM"):i(v,"monthsShort","months",3)},firstDayOfWeek:function(){return v.$locale().weekStart||0},weekdays:function(g){return g?g.format("dddd"):i(v,"weekdays")},weekdaysMin:function(g){return g?g.format("dd"):i(v,"weekdaysMin","weekdays",2)},weekdaysShort:function(g){return g?g.format("ddd"):i(v,"weekdaysShort","weekdays",3)},longDateFormat:function(g){return c(v.$locale(),g)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};l.localeData=function(){return h.bind(this)()},o.localeData=function(){var v=u();return{firstDayOfWeek:function(){return v.weekStart||0},weekdays:function(){return o.weekdays()},weekdaysShort:function(){return o.weekdaysShort()},weekdaysMin:function(){return o.weekdaysMin()},months:function(){return o.months()},monthsShort:function(){return o.monthsShort()},longDateFormat:function(g){return c(v,g)},meridiem:v.meridiem,ordinal:v.ordinal}},o.months=function(){return i(u(),"months")},o.monthsShort=function(){return i(u(),"monthsShort","months",3)},o.weekdays=function(v){return i(u(),"weekdays",null,null,v)},o.weekdaysShort=function(v){return i(u(),"weekdaysShort","weekdays",3,v)},o.weekdaysMin=function(v){return i(u(),"weekdaysMin","weekdays",2,v)}}})}(et)),et.exports}var wr=Sr();const Tr=Le(wr);ae.extend(ea);const ra={"en-US":["MM/DD/YYYY","M/D/YYYY"],"en-GB":["DD/MM/YYYY","D/M/YYYY"],"zh-TW":["YYYY-MM-DD","YYYY/MM/DD"],"zh-CN":["YYYY-MM-DD","YYYY/MM/DD"]},na=["YYYY-MM-DD","YYYY/MM/DD","DD/MM/YYYY","MM/DD/YYYY","DD-MM-YYYY","MM-DD-YYYY","YY-MM-DD","YY/MM/DD"];class xr{locale;calendar;preferredFormats;constructor(e="zh-TW",t="gregory"){this.locale=e,this.calendar=t,this.preferredFormats=[...ra[e]||[],...na]}parse(e){if(!e||typeof e!="string")return{success:!1,date:null,format:null,confidence:0};const t=e.trim();try{const r=this.tryParseWithPlugins(t);if(r.success)return r;for(const o of this.preferredFormats){const l=this.tryParseWithFormat(t,o);if(l.success)return{...l,confidence:.9}}return this.fallbackParse(t)}catch(r){return console.warn("日期解析失敗:",r),{success:!1,date:null,format:null,confidence:0}}}tryParseWithPlugins(e){switch(this.calendar){case"roc":const t=new Lt;if(t.canParseInput(e)){const r=t.parseInput(e,this.locale);if(r)return{success:!0,date:r,format:"roc-plugin",confidence:.95,calendarSystem:"roc"}}break}return{success:!1,date:null,format:null,confidence:0}}tryParseWithFormat(e,t){try{const r=ae(e,t,!0);if(r.isValid())return{success:!0,date:{year:r.year(),month:r.month()+1,day:r.date(),hour:r.hour()||0,minute:r.minute()||0,second:r.second()||0},format:t,confidence:1,calendarSystem:"gregory"}}catch{}return{success:!1,date:null,format:null,confidence:0}}fallbackParse(e){try{const t=ae(e);if(t.isValid())return{success:!0,date:{year:t.year(),month:t.month()+1,day:t.date(),hour:t.hour()||0,minute:t.minute()||0,second:t.second()||0},format:"auto-detected",confidence:.6,calendarSystem:"gregory"}}catch{}return{success:!1,date:null,format:null,confidence:0}}setLocale(e){this.locale=e,this.preferredFormats=[...ra[e]||[],...na]}setCalendar(e){this.calendar=e}}const He=new xr;function Er(n,e="zh-TW",t="gregory"){return e!==He.locale&&He.setLocale(e),t!==He.calendar&&He.setCalendar(t),He.parse(n)}function Ce(n,e){return n-e*Math.floor(n/e)}const oa=1721426;function Te(n,e,t,r){e=qe(n,e);let o=e-1,l=-2;return t<=2?l=0:Me(e)&&(l=-1),oa-1+365*o+Math.floor(o/4)-Math.floor(o/100)+Math.floor(o/400)+Math.floor((367*t-362)/12+l+r)}function Me(n){return n%4===0&&(n%100!==0||n%400===0)}function qe(n,e){return n==="BC"?1-e:e}function tt(n){let e="AD";return n<=0&&(e="BC",n=1-n),[e,n]}const Cr={standard:[31,28,31,30,31,30,31,31,30,31,30,31],leapyear:[31,29,31,30,31,30,31,31,30,31,30,31]};class ce{fromJulianDay(e){let t=e,r=t-oa,o=Math.floor(r/146097),l=Ce(r,146097),s=Math.floor(l/36524),i=Ce(l,36524),u=Math.floor(i/1461),c=Ce(i,1461),h=Math.floor(c/365),v=o*400+s*100+u*4+h+(s!==4&&h!==4?1:0),[g,T]=tt(v),x=t-Te(g,T,1,1),f=2;t<Te(g,T,3,1)?f=0:Me(T)&&(f=1);let y=Math.floor(((x+f)*12+373)/367),m=t-Te(g,T,y,1)+1;return new ee(g,T,y,m)}toJulianDay(e){return Te(e.era,e.year,e.month,e.day)}getDaysInMonth(e){return Cr[Me(e.year)?"leapyear":"standard"][e.month-1]}getMonthsInYear(e){return 12}getDaysInYear(e){return Me(e.year)?366:365}getYearsInEra(e){return 9999}getEras(){return["BC","AD"]}isInverseEra(e){return e.era==="BC"}balanceDate(e){e.year<=0&&(e.era=e.era==="BC"?"AD":"BC",e.year=1-e.year)}constructor(){this.identifier="gregory"}}const Yr={"001":1,AD:1,AE:6,AF:6,AI:1,AL:1,AM:1,AN:1,AR:1,AT:1,AU:1,AX:1,AZ:1,BA:1,BE:1,BG:1,BH:6,BM:1,BN:1,BY:1,CH:1,CL:1,CM:1,CN:1,CR:1,CY:1,CZ:1,DE:1,DJ:6,DK:1,DZ:6,EC:1,EE:1,EG:6,ES:1,FI:1,FJ:1,FO:1,FR:1,GB:1,GE:1,GF:1,GP:1,GR:1,HR:1,HU:1,IE:1,IQ:6,IR:6,IS:1,IT:1,JO:6,KG:1,KW:6,KZ:1,LB:1,LI:1,LK:1,LT:1,LU:1,LV:1,LY:6,MC:1,MD:1,ME:1,MK:1,MN:1,MQ:1,MV:5,MY:1,NL:1,NO:1,NZ:1,OM:6,PL:1,QA:6,RE:1,RO:1,RS:1,RU:1,SD:6,SE:1,SI:1,SK:1,SM:1,SY:6,TJ:1,TM:1,TR:1,UA:1,UY:1,UZ:1,VA:1,VN:1,XK:1};function Rr(n,e){var t,r,o,l;return(l=(o=(t=n.isEqual)===null||t===void 0?void 0:t.call(n,e))!==null&&o!==void 0?o:(r=e.isEqual)===null||r===void 0?void 0:r.call(e,n))!==null&&l!==void 0?l:n.identifier===e.identifier}function la(n,e,t){let r=n.calendar.toJulianDay(n),o=Pr(e),l=Math.ceil(r+1-o)%7;return l<0&&(l+=7),l}function Vr(n){return ve(Date.now(),n)}function Ir(n){return Hr(Vr(n))}function sa(n,e){return n.calendar.toJulianDay(n)-e.calendar.toJulianDay(e)}function Br(n,e){return ia(n)-ia(e)}function ia(n){return n.hour*36e5+n.minute*6e4+n.second*1e3+n.millisecond}let vt=null;function $t(){return vt==null&&(vt=new Intl.DateTimeFormat().resolvedOptions().timeZone),vt}function Or(n){return n.subtract({days:n.day-1})}const ca=new Map;function Fr(n){if(Intl.Locale){let t=ca.get(n);return t||(t=new Intl.Locale(n).maximize().region,t&&ca.set(n,t)),t}let e=n.split("-")[1];return e==="u"?void 0:e}function Pr(n){let e=Fr(n);return e&&Yr[e]||0}function Nr(n,e,t){let r=n.calendar.getDaysInMonth(n);return Math.ceil((la(Or(n),e)+r)/7)}function Ye(n){n=ue(n,new ce);let e=qe(n.era,n.year);return ua(e,n.month,n.day,n.hour,n.minute,n.second,n.millisecond)}function ua(n,e,t,r,o,l,s){let i=new Date;return i.setUTCHours(r,o,l,s),i.setUTCFullYear(n,e-1,t),i.getTime()}function Dt(n,e){if(e==="UTC")return 0;if(n>0&&e===$t())return new Date(n).getTimezoneOffset()*-6e4;let{year:t,month:r,day:o,hour:l,minute:s,second:i}=ma(n,e);return ua(t,r,o,l,s,i,0)-Math.floor(n/1e3)*1e3}const da=new Map;function ma(n,e){let t=da.get(e);t||(t=new Intl.DateTimeFormat("en-US",{timeZone:e,hour12:!1,era:"short",year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"}),da.set(e,t));let r=t.formatToParts(new Date(n)),o={};for(let l of r)l.type!=="literal"&&(o[l.type]=l.value);return{year:o.era==="BC"||o.era==="B"?-o.year+1:+o.year,month:+o.month,day:+o.day,hour:o.hour==="24"?0:+o.hour,minute:+o.minute,second:+o.second}}const fa=864e5;function Ar(n,e,t,r){return(t===r?[t]:[t,r]).filter(l=>Lr(n,e,l))}function Lr(n,e,t){let r=ma(t,e);return n.year===r.year&&n.month===r.month&&n.day===r.day&&n.hour===r.hour&&n.minute===r.minute&&n.second===r.second}function ye(n,e,t="compatible"){let r=Re(n);if(e==="UTC")return Ye(r);if(e===$t()&&t==="compatible"){r=ue(r,new ce);let u=new Date,c=qe(r.era,r.year);return u.setFullYear(c,r.month-1,r.day),u.setHours(r.hour,r.minute,r.second,r.millisecond),u.getTime()}let o=Ye(r),l=Dt(o-fa,e),s=Dt(o+fa,e),i=Ar(r,e,o-l,o-s);if(i.length===1)return i[0];if(i.length>1)switch(t){case"compatible":case"earlier":return i[0];case"later":return i[i.length-1];case"reject":throw new RangeError("Multiple possible absolute times found")}switch(t){case"earlier":return Math.min(o-l,o-s);case"compatible":case"later":return Math.max(o-l,o-s);case"reject":throw new RangeError("No such absolute time found")}}function ha(n,e,t="compatible"){return new Date(ye(n,e,t))}function ve(n,e){let t=Dt(n,e),r=new Date(n+t),o=r.getUTCFullYear(),l=r.getUTCMonth()+1,s=r.getUTCDate(),i=r.getUTCHours(),u=r.getUTCMinutes(),c=r.getUTCSeconds(),h=r.getUTCMilliseconds();return new ze(o<1?"BC":"AD",o<1?-o+1:o,l,s,e,t,i,u,c,h)}function Hr(n){return new ee(n.calendar,n.era,n.year,n.month,n.day)}function Re(n,e){let t=0,r=0,o=0,l=0;if("timeZone"in n)({hour:t,minute:r,second:o,millisecond:l}=n);else if("hour"in n&&!e)return n;return e&&({hour:t,minute:r,second:o,millisecond:l}=e),new Ve(n.calendar,n.era,n.year,n.month,n.day,t,r,o,l)}function ue(n,e){if(Rr(n.calendar,e))return n;let t=e.fromJulianDay(n.calendar.toJulianDay(n)),r=n.copy();return r.calendar=e,r.era=t.era,r.year=t.year,r.month=t.month,r.day=t.day,xe(r),r}function qr(n,e,t){if(n instanceof ze)return n.timeZone===e?n:zr(n,e);let r=ye(n,e,t);return ve(r,e)}function Ur(n){let e=Ye(n)-n.offset;return new Date(e)}function zr(n,e){let t=Ye(n)-n.offset;return ue(ve(t,e),n.calendar)}const Ue=36e5;function at(n,e){let t=n.copy(),r="hour"in t?jr(t,e):0;kt(t,e.years||0),t.calendar.balanceYearMonth&&t.calendar.balanceYearMonth(t,n),t.month+=e.months||0,bt(t),pa(t),t.day+=(e.weeks||0)*7,t.day+=e.days||0,t.day+=r,Wr(t),t.calendar.balanceDate&&t.calendar.balanceDate(t),t.year<1&&(t.year=1,t.month=1,t.day=1);let o=t.calendar.getYearsInEra(t);if(t.year>o){var l,s;let u=(l=(s=t.calendar).isInverseEra)===null||l===void 0?void 0:l.call(s,t);t.year=o,t.month=u?1:t.calendar.getMonthsInYear(t),t.day=u?1:t.calendar.getDaysInMonth(t)}t.month<1&&(t.month=1,t.day=1);let i=t.calendar.getMonthsInYear(t);return t.month>i&&(t.month=i,t.day=t.calendar.getDaysInMonth(t)),t.day=Math.max(1,Math.min(t.calendar.getDaysInMonth(t),t.day)),t}function kt(n,e){var t,r;!((t=(r=n.calendar).isInverseEra)===null||t===void 0)&&t.call(r,n)&&(e=-e),n.year+=e}function bt(n){for(;n.month<1;)kt(n,-1),n.month+=n.calendar.getMonthsInYear(n);let e=0;for(;n.month>(e=n.calendar.getMonthsInYear(n));)n.month-=e,kt(n,1)}function Wr(n){for(;n.day<1;)n.month--,bt(n),n.day+=n.calendar.getDaysInMonth(n);for(;n.day>n.calendar.getDaysInMonth(n);)n.day-=n.calendar.getDaysInMonth(n),n.month++,bt(n)}function pa(n){n.month=Math.max(1,Math.min(n.calendar.getMonthsInYear(n),n.month)),n.day=Math.max(1,Math.min(n.calendar.getDaysInMonth(n),n.day))}function xe(n){n.calendar.constrainDate&&n.calendar.constrainDate(n),n.year=Math.max(1,Math.min(n.calendar.getYearsInEra(n),n.year)),pa(n)}function ga(n){let e={};for(let t in n)typeof n[t]=="number"&&(e[t]=-n[t]);return e}function ya(n,e){return at(n,ga(e))}function Mt(n,e){let t=n.copy();return e.era!=null&&(t.era=e.era),e.year!=null&&(t.year=e.year),e.month!=null&&(t.month=e.month),e.day!=null&&(t.day=e.day),xe(t),t}function rt(n,e){let t=n.copy();return e.hour!=null&&(t.hour=e.hour),e.minute!=null&&(t.minute=e.minute),e.second!=null&&(t.second=e.second),e.millisecond!=null&&(t.millisecond=e.millisecond),Jr(t),t}function _r(n){n.second+=Math.floor(n.millisecond/1e3),n.millisecond=nt(n.millisecond,1e3),n.minute+=Math.floor(n.second/60),n.second=nt(n.second,60),n.hour+=Math.floor(n.minute/60),n.minute=nt(n.minute,60);let e=Math.floor(n.hour/24);return n.hour=nt(n.hour,24),e}function Jr(n){n.millisecond=Math.max(0,Math.min(n.millisecond,1e3)),n.second=Math.max(0,Math.min(n.second,59)),n.minute=Math.max(0,Math.min(n.minute,59)),n.hour=Math.max(0,Math.min(n.hour,23))}function nt(n,e){let t=n%e;return t<0&&(t+=e),t}function jr(n,e){return n.hour+=e.hours||0,n.minute+=e.minutes||0,n.second+=e.seconds||0,n.millisecond+=e.milliseconds||0,_r(n)}function St(n,e,t,r){let o=n.copy();switch(e){case"era":{let i=n.calendar.getEras(),u=i.indexOf(n.era);if(u<0)throw new Error("Invalid era: "+n.era);u=$e(u,t,0,i.length-1,r?.round),o.era=i[u],xe(o);break}case"year":var l,s;!((l=(s=o.calendar).isInverseEra)===null||l===void 0)&&l.call(s,o)&&(t=-t),o.year=$e(n.year,t,-1/0,9999,r?.round),o.year===-1/0&&(o.year=1),o.calendar.balanceYearMonth&&o.calendar.balanceYearMonth(o,n);break;case"month":o.month=$e(n.month,t,1,n.calendar.getMonthsInYear(n),r?.round);break;case"day":o.day=$e(n.day,t,1,n.calendar.getDaysInMonth(n),r?.round);break;default:throw new Error("Unsupported field "+e)}return n.calendar.balanceDate&&n.calendar.balanceDate(o),xe(o),o}function va(n,e,t,r){let o=n.copy();switch(e){case"hour":{let l=n.hour,s=0,i=23;if(r?.hourCycle===12){let u=l>=12;s=u?12:0,i=u?23:11}o.hour=$e(l,t,s,i,r?.round);break}case"minute":o.minute=$e(n.minute,t,0,59,r?.round);break;case"second":o.second=$e(n.second,t,0,59,r?.round);break;case"millisecond":o.millisecond=$e(n.millisecond,t,0,999,r?.round);break;default:throw new Error("Unsupported field "+e)}return o}function $e(n,e,t,r,o=!1){if(o){n+=Math.sign(e),n<t&&(n=r);let l=Math.abs(e);e>0?n=Math.ceil(n/l)*l:n=Math.floor(n/l)*l,n>r&&(n=t)}else n+=e,n<t?n=r-(t-n-1):n>r&&(n=t+(n-r-1));return n}function $a(n,e){let t;if(e.years!=null&&e.years!==0||e.months!=null&&e.months!==0||e.weeks!=null&&e.weeks!==0||e.days!=null&&e.days!==0){let o=at(Re(n),{years:e.years,months:e.months,weeks:e.weeks,days:e.days});t=ye(o,n.timeZone)}else t=Ye(n)-n.offset;t+=e.milliseconds||0,t+=(e.seconds||0)*1e3,t+=(e.minutes||0)*6e4,t+=(e.hours||0)*36e5;let r=ve(t,n.timeZone);return ue(r,n.calendar)}function Kr(n,e){return $a(n,ga(e))}function Qr(n,e,t,r){switch(e){case"hour":{let o=0,l=23;if(r?.hourCycle===12){let x=n.hour>=12;o=x?12:0,l=x?23:11}let s=Re(n),i=ue(rt(s,{hour:o}),new ce),u=[ye(i,n.timeZone,"earlier"),ye(i,n.timeZone,"later")].filter(x=>ve(x,n.timeZone).day===i.day)[0],c=ue(rt(s,{hour:l}),new ce),h=[ye(c,n.timeZone,"earlier"),ye(c,n.timeZone,"later")].filter(x=>ve(x,n.timeZone).day===c.day).pop(),v=Ye(n)-n.offset,g=Math.floor(v/Ue),T=v%Ue;return v=$e(g,t,Math.floor(u/Ue),Math.floor(h/Ue),r?.round)*Ue+T,ue(ve(v,n.timeZone),n.calendar)}case"minute":case"second":case"millisecond":return va(n,e,t,r);case"era":case"year":case"month":case"day":{let o=St(Re(n),e,t,r),l=ye(o,n.timeZone);return ue(ve(l,n.timeZone),n.calendar)}default:throw new Error("Unsupported field "+e)}}function Zr(n,e,t){let r=Re(n),o=rt(Mt(r,e),e);if(o.compare(r)===0)return n;let l=ye(o,n.timeZone,t);return ue(ve(l,n.timeZone),n.calendar)}function Gr(n){return`${String(n.hour).padStart(2,"0")}:${String(n.minute).padStart(2,"0")}:${String(n.second).padStart(2,"0")}${n.millisecond?String(n.millisecond/1e3).slice(1):""}`}function Da(n){let e=ue(n,new ce),t;return e.era==="BC"?t=e.year===1?"0000":"-"+String(Math.abs(1-e.year)).padStart(6,"00"):t=String(e.year).padStart(4,"0"),`${t}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`}function ka(n){return`${Da(n)}T${Gr(n)}`}function Xr(n){let e=Math.sign(n)<0?"-":"+";n=Math.abs(n);let t=Math.floor(n/36e5),r=n%36e5/6e4;return`${e}${String(t).padStart(2,"0")}:${String(r).padStart(2,"0")}`}function en(n){return`${ka(n)}${Xr(n.offset)}[${n.timeZone}]`}function tn(n,e){if(e.has(n))throw new TypeError("Cannot initialize the same private elements twice on an object")}function wt(n,e,t){tn(n,e),e.set(n,t)}function Tt(n){let e=typeof n[0]=="object"?n.shift():new ce,t;if(typeof n[0]=="string")t=n.shift();else{let s=e.getEras();t=s[s.length-1]}let r=n.shift(),o=n.shift(),l=n.shift();return[e,t,r,o,l]}var an=new WeakMap;class ee{copy(){return this.era?new ee(this.calendar,this.era,this.year,this.month,this.day):new ee(this.calendar,this.year,this.month,this.day)}add(e){return at(this,e)}subtract(e){return ya(this,e)}set(e){return Mt(this,e)}cycle(e,t,r){return St(this,e,t,r)}toDate(e){return ha(this,e)}toString(){return Da(this)}compare(e){return sa(this,e)}constructor(...e){wt(this,an,{writable:!0,value:void 0});let[t,r,o,l,s]=Tt(e);this.calendar=t,this.era=r,this.year=o,this.month=l,this.day=s,xe(this)}}var rn=new WeakMap;class Ve{copy(){return this.era?new Ve(this.calendar,this.era,this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond):new Ve(this.calendar,this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond)}add(e){return at(this,e)}subtract(e){return ya(this,e)}set(e){return Mt(rt(this,e),e)}cycle(e,t,r){switch(e){case"era":case"year":case"month":case"day":return St(this,e,t,r);default:return va(this,e,t,r)}}toDate(e,t){return ha(this,e,t)}toString(){return ka(this)}compare(e){let t=sa(this,e);return t===0?Br(this,Re(e)):t}constructor(...e){wt(this,rn,{writable:!0,value:void 0});let[t,r,o,l,s]=Tt(e);this.calendar=t,this.era=r,this.year=o,this.month=l,this.day=s,this.hour=e.shift()||0,this.minute=e.shift()||0,this.second=e.shift()||0,this.millisecond=e.shift()||0,xe(this)}}var nn=new WeakMap;class ze{copy(){return this.era?new ze(this.calendar,this.era,this.year,this.month,this.day,this.timeZone,this.offset,this.hour,this.minute,this.second,this.millisecond):new ze(this.calendar,this.year,this.month,this.day,this.timeZone,this.offset,this.hour,this.minute,this.second,this.millisecond)}add(e){return $a(this,e)}subtract(e){return Kr(this,e)}set(e,t){return Zr(this,e,t)}cycle(e,t,r){return Qr(this,e,t,r)}toDate(){return Ur(this)}toString(){return en(this)}toAbsoluteString(){return this.toDate().toISOString()}compare(e){return this.toDate().getTime()-qr(e,this.timeZone).toDate().getTime()}constructor(...e){wt(this,nn,{writable:!0,value:void 0});let[t,r,o,l,s]=Tt(e),i=e.shift(),u=e.shift();this.calendar=t,this.era=r,this.year=o,this.month=l,this.day=s,this.timeZone=i,this.offset=u,this.hour=e.shift()||0,this.minute=e.shift()||0,this.second=e.shift()||0,this.millisecond=e.shift()||0,xe(this)}}const Ie=[[1868,9,8],[1912,7,30],[1926,12,25],[1989,1,8],[2019,5,1]],on=[[1912,7,29],[1926,12,24],[1989,1,7],[2019,4,30]],ot=[1867,1911,1925,1988,2018],Se=["meiji","taisho","showa","heisei","reiwa"];function ba(n){const e=Ie.findIndex(([t,r,o])=>n.year<t||n.year===t&&n.month<r||n.year===t&&n.month===r&&n.day<o);return e===-1?Ie.length-1:e===0?0:e-1}function xt(n){let e=ot[Se.indexOf(n.era)];if(!e)throw new Error("Unknown era: "+n.era);return new ee(n.year+e,n.month,n.day)}class ln extends ce{fromJulianDay(e){let t=super.fromJulianDay(e),r=ba(t);return new ee(this,Se[r],t.year-ot[r],t.month,t.day)}toJulianDay(e){return super.toJulianDay(xt(e))}balanceDate(e){let t=xt(e),r=ba(t);Se[r]!==e.era&&(e.era=Se[r],e.year=t.year-ot[r]),this.constrainDate(e)}constrainDate(e){let t=Se.indexOf(e.era),r=on[t];if(r!=null){let[o,l,s]=r,i=o-ot[t];e.year=Math.max(1,Math.min(i,e.year)),e.year===i&&(e.month=Math.min(l,e.month),e.month===l&&(e.day=Math.min(s,e.day)))}if(e.year===1&&t>=0){let[,o,l]=Ie[t];e.month=Math.max(o,e.month),e.month===o&&(e.day=Math.max(l,e.day))}}getEras(){return Se}getYearsInEra(e){let t=Se.indexOf(e.era),r=Ie[t],o=Ie[t+1];if(o==null)return 9999-r[0]+1;let l=o[0]-r[0];return(e.month<o[1]||e.month===o[1]&&e.day<o[2])&&l++,l}getDaysInMonth(e){return super.getDaysInMonth(xt(e))}getMinimumMonthInYear(e){let t=Ma(e);return t?t[1]:1}getMinimumDayInMonth(e){let t=Ma(e);return t&&e.month===t[1]?t[2]:1}constructor(...e){super(...e),this.identifier="japanese"}}function Ma(n){if(n.year===1){let e=Se.indexOf(n.era);return Ie[e]}}const Sa=-543;class sn extends ce{fromJulianDay(e){let t=super.fromJulianDay(e),r=qe(t.era,t.year);return new ee(this,r-Sa,t.month,t.day)}toJulianDay(e){return super.toJulianDay(wa(e))}getEras(){return["BE"]}getDaysInMonth(e){return super.getDaysInMonth(wa(e))}balanceDate(){}constructor(...e){super(...e),this.identifier="buddhist"}}function wa(n){let[e,t]=tt(n.year+Sa);return new ee(e,t,n.month,n.day)}const lt=1911;function Ta(n){return n.era==="minguo"?n.year+lt:1-n.year+lt}function xa(n){let e=n-lt;return e>0?["minguo",e]:["before_minguo",1-e]}class cn extends ce{fromJulianDay(e){let t=super.fromJulianDay(e),r=qe(t.era,t.year),[o,l]=xa(r);return new ee(this,o,l,t.month,t.day)}toJulianDay(e){return super.toJulianDay(Ea(e))}getEras(){return["before_minguo","minguo"]}balanceDate(e){let[t,r]=xa(Ta(e));e.era=t,e.year=r}isInverseEra(e){return e.era==="before_minguo"}getDaysInMonth(e){return super.getDaysInMonth(Ea(e))}getYearsInEra(e){return e.era==="before_minguo"?9999:9999-lt}constructor(...e){super(...e),this.identifier="roc"}}function Ea(n){let[e,t]=tt(Ta(n));return new ee(e,t,n.month,n.day)}const Ca=1948320,Ya=[0,31,62,93,124,155,186,216,246,276,306,336];class un{fromJulianDay(e){let t=e-Ca,r=1+Math.floor((33*t+3)/12053),o=365*(r-1)+Math.floor((8*r+21)/33),l=t-o,s=l<216?Math.floor(l/31):Math.floor((l-6)/30),i=l-Ya[s]+1;return new ee(this,r,s+1,i)}toJulianDay(e){let t=Ca-1+365*(e.year-1)+Math.floor((8*e.year+21)/33);return t+=Ya[e.month-1],t+=e.day,t}getMonthsInYear(){return 12}getDaysInMonth(e){return e.month<=6?31:e.month<=11||Ce(25*e.year+11,33)<8?30:29}getEras(){return["AP"]}getYearsInEra(){return 9377}constructor(){this.identifier="persian"}}const Et=78,Ra=80;class dn extends ce{fromJulianDay(e){let t=super.fromJulianDay(e),r=t.year-Et,o=e-Te(t.era,t.year,1,1),l;o<Ra?(r--,l=Me(t.year-1)?31:30,o+=l+155+90+10):(l=Me(t.year)?31:30,o-=Ra);let s,i;if(o<l)s=1,i=o+1;else{let u=o-l;u<155?(s=Math.floor(u/31)+2,i=u%31+1):(u-=155,s=Math.floor(u/30)+7,i=u%30+1)}return new ee(this,r,s,i)}toJulianDay(e){let t=e.year+Et,[r,o]=tt(t),l,s;return Me(o)?(l=31,s=Te(r,o,3,21)):(l=30,s=Te(r,o,3,22)),e.month===1?s+e.day-1:(s+=l+Math.min(e.month-2,5)*31,e.month>=8&&(s+=(e.month-7)*30),s+=e.day-1,s)}getDaysInMonth(e){return e.month===1&&Me(e.year+Et)||e.month>=2&&e.month<=6?31:30}getYearsInEra(){return 9919}getEras(){return["saka"]}balanceDate(){}constructor(...e){super(...e),this.identifier="indian"}}const st=1948440,Va=1948439,he=1300,Be=1600,mn=460322;function it(n,e,t,r){return r+Math.ceil(29.5*(t-1))+(e-1)*354+Math.floor((3+11*e)/30)+n-1}function Ia(n,e,t){let r=Math.floor((30*(t-e)+10646)/10631),o=Math.min(12,Math.ceil((t-(29+it(e,r,1,1)))/29.5)+1),l=t-it(e,r,o,1)+1;return new ee(n,r,o,l)}function Ba(n){return(14+11*n)%30<11}class Ct{fromJulianDay(e){return Ia(this,st,e)}toJulianDay(e){return it(st,e.year,e.month,e.day)}getDaysInMonth(e){let t=29+e.month%2;return e.month===12&&Ba(e.year)&&t++,t}getMonthsInYear(){return 12}getDaysInYear(e){return Ba(e.year)?355:354}getYearsInEra(){return 9665}getEras(){return["AH"]}constructor(){this.identifier="islamic-civil"}}class fn extends Ct{fromJulianDay(e){return Ia(this,Va,e)}toJulianDay(e){return it(Va,e.year,e.month,e.day)}constructor(...e){super(...e),this.identifier="islamic-tbla"}}const hn="qgpUDckO1AbqBmwDrQpVBakGkgepC9QF2gpcBS0NlQZKB1QLagutBa4ETwoXBYsGpQbVCtYCWwmdBE0KJg2VDawFtgm6AlsKKwWVCsoG6Qr0AnYJtgJWCcoKpAvSC9kF3AJtCU0FpQpSC6ULtAW2CVcFlwJLBaMGUgdlC2oFqworBZUMSg2lDcoF1gpXCasESwmlClILagt1BXYCtwhbBFUFqQW0BdoJ3QRuAjYJqgpUDbIN1QXaAlsJqwRVCkkLZAtxC7QFtQpVCiUNkg7JDtQG6QprCasEkwpJDaQNsg25CroEWworBZUKKgtVC1wFvQQ9Ah0JlQpKC1oLbQW2AjsJmwRVBqkGVAdqC2wFrQpVBSkLkgupC9QF2gpaBasKlQVJB2QHqgu1BbYCVgpNDiULUgtqC60FrgIvCZcESwalBqwG1gpdBZ0ETQoWDZUNqgW1BdoCWwmtBJUFygbkBuoK9QS2AlYJqgpUC9IL2QXqAm0JrQSVCkoLpQuyBbUJ1gSXCkcFkwZJB1ULagVrCisFiwpGDaMNygXWCtsEawJLCaUKUgtpC3UFdgG3CFsCKwVlBbQF2gntBG0BtgimClINqQ3UBdoKWwmrBFMGKQdiB6kLsgW1ClUFJQuSDckO0gbpCmsFqwRVCikNVA2qDbUJugQ7CpsETQqqCtUK2gJdCV4ELgqaDFUNsga5BroEXQotBZUKUguoC7QLuQXaAloJSgukDdEO6AZqC20FNQWVBkoNqA3UDdoGWwWdAisGFQtKC5ULqgWuCi4JjwwnBZUGqgbWCl0FnQI=";let Yt,Oe;function ct(n){return mn+Oe[n-he]}function We(n,e){let t=n-he,r=1<<11-(e-1);return(Yt[t]&r)===0?29:30}function Oa(n,e){let t=ct(n);for(let r=1;r<e;r++)t+=We(n,r);return t}function Fa(n){return Oe[n+1-he]-Oe[n-he]}class pn extends Ct{fromJulianDay(e){let t=e-st,r=ct(he),o=ct(Be);if(t<r||t>o)return super.fromJulianDay(e);{let l=he-1,s=1,i=1;for(;i>0;){l++,i=t-ct(l)+1;let u=Fa(l);if(i===u){s=12;break}else if(i<u){let c=We(l,s);for(s=1;i>c;)i-=c,s++,c=We(l,s);break}}return new ee(this,l,s,t-Oa(l,s)+1)}}toJulianDay(e){return e.year<he||e.year>Be?super.toJulianDay(e):st+Oa(e.year,e.month)+(e.day-1)}getDaysInMonth(e){return e.year<he||e.year>Be?super.getDaysInMonth(e):We(e.year,e.month)}getDaysInYear(e){return e.year<he||e.year>Be?super.getDaysInYear(e):Fa(e.year)}constructor(){if(super(),this.identifier="islamic-umalqura",Yt||(Yt=new Uint16Array(Uint8Array.from(atob(hn),e=>e.charCodeAt(0)).buffer)),!Oe){Oe=new Uint32Array(Be-he+1);let e=0;for(let t=he;t<=Be;t++){Oe[t-he]=e;for(let r=1;r<=12;r++)e+=We(t,r)}}}}const Pa=347997,Na=1080,Aa=24*Na,gn=29,yn=12*Na+793,vn=gn*Aa+yn;function Ee(n){return Ce(n*7+1,19)<7}function ut(n){let e=Math.floor((235*n-234)/19),t=12084+13753*e,r=e*29+Math.floor(t/25920);return Ce(3*(r+1),7)<3&&(r+=1),r}function $n(n){let e=ut(n-1),t=ut(n);return ut(n+1)-t===356?2:t-e===382?1:0}function _e(n){return ut(n)+$n(n)}function La(n){return _e(n+1)-_e(n)}function Dn(n){let e=La(n);switch(e>380&&(e-=30),e){case 353:return 0;case 354:return 1;case 355:return 2}}function dt(n,e){if(e>=6&&!Ee(n)&&e++,e===4||e===7||e===9||e===11||e===13)return 29;let t=Dn(n);return e===2?t===2?30:29:e===3?t===0?29:30:e===6?Ee(n)?30:0:30}class kn{fromJulianDay(e){let t=e-Pa,r=t*Aa/vn,o=Math.floor((19*r+234)/235)+1,l=_e(o),s=Math.floor(t-l);for(;s<1;)o--,l=_e(o),s=Math.floor(t-l);let i=1,u=0;for(;u<s;)u+=dt(o,i),i++;i--,u-=dt(o,i);let c=s-u;return new ee(this,o,i,c)}toJulianDay(e){let t=_e(e.year);for(let r=1;r<e.month;r++)t+=dt(e.year,r);return t+e.day+Pa}getDaysInMonth(e){return dt(e.year,e.month)}getMonthsInYear(e){return Ee(e.year)?13:12}getDaysInYear(e){return La(e.year)}getYearsInEra(){return 9999}getEras(){return["AM"]}balanceYearMonth(e,t){t.year!==e.year&&(Ee(t.year)&&!Ee(e.year)&&t.month>6?e.month--:!Ee(t.year)&&Ee(e.year)&&t.month>6&&e.month++)}constructor(){this.identifier="hebrew"}}const Rt=1723856,Ha=1824665,Vt=5500;function mt(n,e,t,r){return n+365*e+Math.floor(e/4)+30*(t-1)+r-1}function It(n,e){let t=Math.floor(4*(e-n)/1461),r=1+Math.floor((e-mt(n,t,1,1))/30),o=e+1-mt(n,t,r,1);return[t,r,o]}function qa(n){return Math.floor(n%4/3)}function Ua(n,e){return e%13!==0?30:qa(n)+5}class Bt{fromJulianDay(e){let[t,r,o]=It(Rt,e),l="AM";return t<=0&&(l="AA",t+=Vt),new ee(this,l,t,r,o)}toJulianDay(e){let t=e.year;return e.era==="AA"&&(t-=Vt),mt(Rt,t,e.month,e.day)}getDaysInMonth(e){return Ua(e.year,e.month)}getMonthsInYear(){return 13}getDaysInYear(e){return 365+qa(e.year)}getYearsInEra(e){return e.era==="AA"?9999:9991}getEras(){return["AA","AM"]}constructor(){this.identifier="ethiopic"}}class bn extends Bt{fromJulianDay(e){let[t,r,o]=It(Rt,e);return t+=Vt,new ee(this,"AA",t,r,o)}getEras(){return["AA"]}getYearsInEra(){return 9999}constructor(...e){super(...e),this.identifier="ethioaa"}}class Mn extends Bt{fromJulianDay(e){let[t,r,o]=It(Ha,e),l="CE";return t<=0&&(l="BCE",t=1-t),new ee(this,l,t,r,o)}toJulianDay(e){let t=e.year;return e.era==="BCE"&&(t=1-t),mt(Ha,t,e.month,e.day)}getDaysInMonth(e){let t=e.year;return e.era==="BCE"&&(t=1-t),Ua(t,e.month)}isInverseEra(e){return e.era==="BCE"}balanceDate(e){e.year<=0&&(e.era=e.era==="BCE"?"CE":"BCE",e.year=1-e.year)}getEras(){return["BCE","CE"]}getYearsInEra(e){return e.era==="BCE"?9999:9715}constructor(...e){super(...e),this.identifier="coptic"}}function Sn(n){switch(n){case"buddhist":return new sn;case"ethiopic":return new Bt;case"ethioaa":return new bn;case"coptic":return new Mn;case"hebrew":return new kn;case"indian":return new dn;case"islamic-civil":return new Ct;case"islamic-tbla":return new fn;case"islamic-umalqura":return new pn;case"japanese":return new ln;case"persian":return new un;case"roc":return new cn;case"gregory":default:return new ce}}let Ot=new Map;class ft{format(e){return this.formatter.format(e)}formatToParts(e){return this.formatter.formatToParts(e)}formatRange(e,t){if(typeof this.formatter.formatRange=="function")return this.formatter.formatRange(e,t);if(t<e)throw new RangeError("End date must be >= start date");return`${this.formatter.format(e)} – ${this.formatter.format(t)}`}formatRangeToParts(e,t){if(typeof this.formatter.formatRangeToParts=="function")return this.formatter.formatRangeToParts(e,t);if(t<e)throw new RangeError("End date must be >= start date");let r=this.formatter.formatToParts(e),o=this.formatter.formatToParts(t);return[...r.map(l=>({...l,source:"startRange"})),{type:"literal",value:" – ",source:"shared"},...o.map(l=>({...l,source:"endRange"}))]}resolvedOptions(){let e=this.formatter.resolvedOptions();return xn()&&(this.resolvedHourCycle||(this.resolvedHourCycle=En(e.locale,this.options)),e.hourCycle=this.resolvedHourCycle,e.hour12=this.resolvedHourCycle==="h11"||this.resolvedHourCycle==="h12"),e.calendar==="ethiopic-amete-alem"&&(e.calendar="ethioaa"),e}constructor(e,t={}){this.formatter=za(e,t),this.options=t}}const wn={true:{ja:"h11"},false:{}};function za(n,e={}){if(typeof e.hour12=="boolean"&&Tn()){e={...e};let o=wn[String(e.hour12)][n.split("-")[0]],l=e.hour12?"h12":"h23";e.hourCycle=o??l,delete e.hour12}let t=n+(e?Object.entries(e).sort((o,l)=>o[0]<l[0]?-1:1).join():"");if(Ot.has(t))return Ot.get(t);let r=new Intl.DateTimeFormat(n,e);return Ot.set(t,r),r}let Ft=null;function Tn(){return Ft==null&&(Ft=new Intl.DateTimeFormat("en-US",{hour:"numeric",hour12:!1}).format(new Date(2020,2,3,0))==="24"),Ft}let Pt=null;function xn(){return Pt==null&&(Pt=new Intl.DateTimeFormat("fr",{hour:"numeric",hour12:!1}).resolvedOptions().hourCycle==="h12"),Pt}function En(n,e){if(!e.timeStyle&&!e.hour)return;n=n.replace(/(-u-)?-nu-[a-zA-Z0-9]+/,""),n+=(n.includes("-u-")?"":"-u")+"-nu-latn";let t=za(n,{...e,timeZone:void 0}),r=parseInt(t.formatToParts(new Date(2020,2,3,0)).find(l=>l.type==="hour").value,10),o=parseInt(t.formatToParts(new Date(2020,2,3,23)).find(l=>l.type==="hour").value,10);if(r===0&&o===23)return"h23";if(r===24&&o===23)return"h24";if(r===0&&o===11)return"h11";if(r===12&&o===11)return"h12";throw new Error("Unexpected hour cycle result")}ae.extend(dr),ae.extend(pr),ae.extend(ea),ae.extend(br),ae.extend(Tr);function Fe(){const n=new Date;return{year:n.getFullYear(),month:n.getMonth()+1,day:n.getDate()}}function Cn(n){try{const e=$t(),t=Ir(e);if(n.calendar.identifier!==t.calendar.identifier){const r=ue(t,n.calendar);return n.compare(r)===0}return n.compare(t)===0}catch(e){return console.error("Error checking if date is today:",e),!1}}function Pe(){const n=new Date;return{year:n.getFullYear(),month:n.getMonth()+1,day:n.getDate(),hour:n.getHours(),minute:n.getMinutes(),second:n.getSeconds()}}function De(n,e,t,r,o,l){const s={year:n,month:e,day:t};return r!==void 0&&(s.hour=r),o!==void 0&&(s.minute=o),l!==void 0&&(s.second=l),s}function oe(n,e="zh-TW",t="gregory"){if(!n)return null;try{if(Bn(n))return n;if(n instanceof Date&&!isNaN(n.getTime()))return{year:n.getFullYear(),month:n.getMonth()+1,day:n.getDate(),hour:n.getHours(),minute:n.getMinutes(),second:n.getSeconds()};if(typeof n=="string"){const r=Er(n,e,t);return r.success?r.date:null}return null}catch(r){return console.error("Failed to parse date:",r),null}}function de(n,e="YYYY-MM-DD"){if(!n)return null;try{return ae("2000-01-01 00:00:00").year(n.year).month(n.month-1).date(n.day).hour(n.hour||0).minute(n.minute||0).second(n.second||0).format(e)}catch(t){return console.error("Failed to format date:",t),null}}function ht(n,e="iso",t="YYYY-MM-DD",r,o=!1,l="gregory",s="zh-TW",i=!1,u=!0){if(!n)return null;try{switch(e){case"iso":if(o){let c;return u?c=i?"YYYY-MM-DDTHH:mm:ss":"YYYY-MM-DD HH:mm:ss":c=i?"YYYY-MM-DDTHH:mm":"YYYY-MM-DD HH:mm",de(n,c)}else return de(n,"YYYY-MM-DD");case"date":return new Date(n.year,n.month-1,n.day,n.hour||0,n.minute||0,n.second||0);case"object":return n;case"custom":return re.formatOutput(n,t,r,o,l,s);default:return console.warn(`不支援的輸出類型: ${e},回退到 ISO 格式`),de(n,"YYYY-MM-DD")}}catch(c){return console.error("formatOutput 失敗:",c),n}}function pt(n,e){const t=n.year*1e4+n.month*100+n.day,r=e.year*1e4+e.month*100+e.day;return t<r?-1:t>r?1:0}function Nt(n,e){const t=new Date(n.year,n.month-1,n.day);return t.setDate(t.getDate()+e),{year:t.getFullYear(),month:t.getMonth()+1,day:t.getDate(),hour:n.hour,minute:n.minute,second:n.second}}function Wa(n,e){const t=new Date(n.year,n.month-1,n.day).getTime(),r=new Date(e.year,e.month-1,e.day).getTime();return Math.ceil((r-t)/(1e3*60*60*24))}function Yn(){const n=Pe(),e=De(n.year,n.month,1,0,0,0),t=n.month===12?1:n.month+1,r=n.month===12?n.year+1:n.year,o=De(r,t,1),l=Nt(o,-1);return{start:e,end:l}}function Rn(n,e){if(!n||typeof n!="string")return!1;try{const t=_a(n);let r=!0;if(e&&(r=At(e)),!t)return console.warn(`日期格式語義驗證失敗: "${n}"`),!1;if(e&&!r)return console.warn(`時間格式語義驗證失敗: "${e}"`),!1;const o=ae("2000-12-31 23:59:59");let l=!1;try{const c=o.format(n);l=c!==n&&c.length>0}catch(c){console.warn(`日期格式 dayjs 驗證失敗: "${n}"`,c),l=!1}let s=!0;if(e)try{const c=o.format(e);s=c!==e&&c.length>0}catch(c){console.warn(`時間格式 dayjs 驗證失敗: "${e}"`,c),s=!1}let i=!0;if(e)try{const c=`${n} ${e}`,h=o.format(c);i=h!==c&&h.length>0}catch(c){console.warn(`組合格式 dayjs 驗證失敗: "${n} ${e}"`,c),i=!1}return l&&s&&i}catch(t){return console.error("格式驗證時發生錯誤:",t),!1}}function _a(n){const e=["YYYY","YY","MM","M","DD","D"],t=["-","/","."," "];let r=n;t.forEach(g=>{r=r.replace(new RegExp(`\\${g}`,"g")," ")});const o=r.split(/\s+/).filter(Boolean);if(!o.every(g=>e.includes(g)))return!1;const s=o.some(g=>g==="YYYY"||g==="YY"),i=o.some(g=>g==="MM"||g==="M"),u=o.some(g=>g==="DD"||g==="D"),c=o.filter(g=>g==="YYYY"||g==="YY").length,h=o.filter(g=>g==="MM"||g==="M").length,v=o.filter(g=>g==="DD"||g==="D").length;return c>1||h>1||v>1?!1:s&&i&&u}function At(n){if(!n||typeof n!="string")return!1;const e=["HH","H","hh","h","mm","m","ss","s","A","a"],r=n.replace(/[^\w]/g," ").split(/\s+/).filter(Boolean);if(!r.every(h=>e.includes(h)))return!1;const l=r.some(h=>["HH","H"].includes(h)),s=r.some(h=>["hh","h"].includes(h)),i=r.some(h=>["mm","m"].includes(h));if(r.some(h=>["A","a"].includes(h)),!(l||s)||!i||s&&l)return!1;const c=e.reduce((h,v)=>(h[v]=r.filter(g=>g===v).length,h),{});return!Object.values(c).some(h=>h>1)}function Vn(n){return n.replace(/yyyy/g,"YYYY").replace(/yy/g,"YY").replace(/mm/g,"MM").replace(/dd/g,"DD")}function In(n){let e=n;return e=e.replace(/HH/g,"HH").replace(/hh/g,"hh").replace(/MM/g,"mm").replace(/SS/g,"ss").replace(/aa/g,"a").replace(/AA/g,"A"),e}function Bn(n){return!n||typeof n!="object"?!1:typeof n.year=="number"&&typeof n.month=="number"&&typeof n.day=="number"}class Lt{id="roc";yearRange={min:1,max:200};displayName={"zh-TW":"民國曆","zh-CN":"民国历","en-US":"ROC Calendar","ja-JP":"中華民国暦","ko-KR":"중화민국력"};YEAR_OFFSET=1911;parseInput(e,t){if(!e||typeof e!="string")return null;const o=e.trim().replace(/^(民國|民国|ROC\s*)/i,"").trim();if(/[上下]午|時|分|秒|\d{1,2}:\d{2}/.test(o))return this.parseDateTime(o);{if(/\d+年\d+月\d+日/.test(o))return this.parseDatePart(o);const s=o.replace(/[年月日時分秒]/g,""),i=["-","/","."," "];for(const u of i){const c=this.tryParseWithSeparator(s,u);if(c)return c}}return null}parseDateTime(e){const t=e.match(/^(\d+年\d+月\d+日)\s*(.*)$/);if(!t)return null;const[,r,o]=t,l=this.parseDatePart(r);if(!l)return null;const s=this.parseTimePart(o);return s?{...l,...s}:l}parseDatePart(e){const t=e.match(/(\d+)年(\d+)月(\d+)日/);if(!t)return null;const[,r,o,l]=t,s=parseInt(r),i=parseInt(o),u=parseInt(l);return this.validateAndConvertRocDate(s,i,u)}parseTimePart(e){if(!e)return null;const t=e.trim(),r=t.match(/(上午|下午)\s*(\d{1,2})時(\d{2})分(?:(\d{2})秒)?/);if(r){const[,l,s,i,u]=r;let c=parseInt(s);const h=parseInt(i),v=u?parseInt(u):0;return l==="下午"&&c!==12?c+=12:l==="上午"&&c===12&&(c=0),c<0||c>23||h<0||h>59||v<0||v>59?null:{hour:c,minute:h,second:v}}const o=t.match(/(\d{1,2}):(\d{2})(?::(\d{2}))?/);if(o){const[,l,s,i]=o,u=parseInt(l),c=parseInt(s),h=i?parseInt(i):0;return u<0||u>23||c<0||c>59||h<0||h>59?null:{hour:u,minute:c,second:h}}return null}canParseInput(e){return/^(民國|民国|ROC\s*)/i.test(e.trim())}tryParseWithSeparator(e,t){const r=e.split(t).map(i=>i.trim()).filter(Boolean);if(r.length<3)return null;const o=parseInt(r[0]),l=parseInt(r[1]),s=parseInt(r[2]);return this.validateAndConvertRocDate(o,l,s)}validateAndConvertRocDate(e,t,r){if(isNaN(e)||isNaN(t)||isNaN(r)||e<this.yearRange.min||e>this.yearRange.max)return null;const o=e+this.YEAR_OFFSET;if(t<1||t>12||r<1||r>31)return null;const l=`${o}-${t.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}`,s=ae(l,"YYYY-MM-DD",!0);return!s.isValid()||s.year()!==o||s.month()+1!==t||s.date()!==r?null:{year:o,month:t,day:r}}supportsFormat(e){return e.includes("ROC-")||e.includes("民國")}format(e,t,r){if(!this.supportsFormat(t))throw new Error(`RocFormatPlugin 不支援格式: ${t}`);const o=e.hour!==void 0&&e.hour!==null,l=t.split(" "),s=l[0],i=l.slice(1).join(" "),u=this.formatDatePart(e,s,r);if(i&&o){const c=this.detectTimeFormat(i),h=this.formatTimePart(e,i,c);return`${u} ${h}`}return u}detectTimeFormat(e){return!e.includes("A")&&!e.includes("a")&&!e.includes("hh")}formatDatePart(e,t,r){const o=e.year-this.YEAR_OFFSET,l=e.month,s=e.day,i={"ROC-YYYY":`民國${o}年`,"ROC-YYYY-MM-DD":`民國${o}年${l.toString().padStart(2,"0")}月${s.toString().padStart(2,"0")}日`,"ROC-YYYY/MM/DD":`民國${o}/${l.toString().padStart(2,"0")}/${s.toString().padStart(2,"0")}`,"ROC-NUM-YYYY-MM-DD":`${o}-${l.toString().padStart(2,"0")}-${s.toString().padStart(2,"0")}`,"ROC-NUM-YYYY/MM/DD":`${o}/${l.toString().padStart(2,"0")}/${s.toString().padStart(2,"0")}`};if(i[t])return i[t];const u=new Date(e.year,e.month-1,e.day);let c=ae(u).format(t);if(t.includes("YYYY"))c=c.replace(e.year.toString(),o.toString());else if(t.includes("YY")){const h=e.year.toString().slice(-2),v=o.toString().slice(-2);c=c.replace(h,v)}return c}formatTimePart(e,t,r){if(!e)return"";const o=e.hour||0,l=e.minute||0,s=e.second||0,i=this.getFormattedTime(o,l,s,t,r);return i||this.fallbackToDateJs(e,t,r)}getFormattedTime(e,t,r,o,l){if(l){const s={"HH:mm:ss":()=>this.formatBasicTime(e,t,r,!0),"HH:mm":()=>this.formatBasicTime(e,t,0,!1),HH時mm分ss秒:()=>this.formatChineseTime(e,t,r,!0),HH時mm分:()=>this.formatChineseTime(e,t,0,!1)};if(s[o])return s[o]()}else{const s={"hh:mm:ss A":()=>this.format12HourTime(e,t,r,!0,"suffix"),"hh:mm A":()=>this.format12HourTime(e,t,0,!1,"suffix"),"h:mm A":()=>this.format12HourTime(e,t,0,!1,"suffix",!1),"A hh:mm:ss":()=>this.format12HourTime(e,t,r,!0,"prefix"),"A hh:mm":()=>this.format12HourTime(e,t,0,!1,"prefix"),"A HH時mm分ss秒":()=>this.format12HourTime(e,t,r,!0,"chinese"),"A HH時mm分":()=>this.format12HourTime(e,t,0,!1,"chinese")};if(s[o])return s[o]()}return null}formatBasicTime(e,t,r,o){const l=e.toString().padStart(2,"0"),s=t.toString().padStart(2,"0");if(o){const i=r.toString().padStart(2,"0");return`${l}:${s}:${i}`}return`${l}:${s}`}formatChineseTime(e,t,r,o){const l=e.toString().padStart(2,"0"),s=t.toString().padStart(2,"0");if(o){const i=r.toString().padStart(2,"0");return`${l}時${s}分${i}秒`}return`${l}時${s}分`}format12HourTime(e,t,r,o,l,s=!0){const i=e<12?"上午":"下午",u=e===0?12:e>12?e-12:e,c=s?u.toString().padStart(2,"0"):u.toString(),h=t.toString().padStart(2,"0"),v=o?r.toString().padStart(2,"0"):"";switch(l){case"suffix":return o?`${c}:${h}:${v} ${i}`:`${c}:${h} ${i}`;case"prefix":return o?`${i} ${c}:${h}:${v}`:`${i} ${c}:${h}`;case"chinese":return o?`${i} ${c}時${h}分${v}秒`:`${i} ${c}時${h}分`;default:return""}}fallbackToDateJs(e,t,r){const o=new Date(e.year,e.month-1,e.day,e.hour||0,e.minute||0,e.second||0);if(!o||isNaN(o.getTime()))return"";let l=ae(o).format(t);return!r&&(t.includes("A")||t.includes("a"))&&(l=l.replace(/AM/g,"上午").replace(/PM/g,"下午"),l=l.replace(/am/g,"上午").replace(/pm/g,"下午")),l}}class re{static createSafeCalendar(e){try{return Sn(e)}catch(t){return console.warn(`無法創建日曆 ${e},回退到西元曆:`,t),new ce}}static safeToCalendar(e,t){try{return ue(e,t)}catch(r){return console.warn("日曆轉換失敗,返回原始日期:",r),e}}static convertToCalendarDateSmart=(e,t)=>e?e.hour!==void 0||e.minute!==void 0||e.second!==void 0?this.convertToCalendarDateTime(e,t):this.convertToCalendarDate(e,t):null;static convertToCalendarDate=(e,t)=>{if(!e||e.year<=0||e.month<=0||e.day<=0||e.month>12||e.day>31)return null;try{if(t==="gregory")return new ee(e.year,e.month,e.day);{const r=this.createSafeCalendar(t),o=new ee(e.year,e.month,e.day);return this.safeToCalendar(o,r)}}catch(r){return console.error("轉換為 CalendarDate 失敗:",r),null}};static convertToCalendarDateTime=(e,t)=>{if(!e)return null;try{if(t==="gregory")return new Ve(e.year,e.month,e.day,e.hour||0,e.minute||0,e.second||0);{const r=this.createSafeCalendar(t),o=new Ve(e.year,e.month,e.day,e.hour||0,e.minute||0,e.second||0);return ue(o,r)}}catch(r){return console.error("轉換為 CalendarDateTime 失敗:",r),null}};static convertFromCalendarDate=(e,t)=>{if(!e)return null;try{if(e.calendar.identifier==="gregory"||t==="gregory")return{year:e.year,month:e.month,day:e.day};{const r=this.createSafeCalendar("gregory"),o=this.safeToCalendar(e,r);return{year:o.year,month:o.month,day:o.day}}}catch(r){return console.error("轉換從 CalendarDate 失敗:",r),null}};static generateCalendarDays(e,t,r,o,l=0){try{if(!this.isCalendarSupported(r))return console.warn(`不支持的日曆系統: ${r}`),[];const s=this.createSafeCalendar(r),i=new ee(e,t,1),u=r==="gregory"?i:this.safeToCalendar(i,s),c=Nr(u,o)??6,v=(la(u,o)-l+7)%7,g=u.subtract({days:v}),T=[];let x=g;const f=c*7;for(let y=0;y<f;y++)T.push(x),x=x.add({days:1});return T}catch(s){return console.error("生成日曆網格失敗:",s),[]}}static getCalendarRange(e){const t=new Date().getFullYear();return{gregory:{min:1,max:t+100},japanese:{min:1868,max:t+100},roc:{min:1912,max:t+100},buddhist:{min:544,max:t+643},islamic:{min:622,max:t+100},persian:{min:622,max:t+100},hebrew:{min:1,max:t+3860}}[e]||{min:1,max:t+100}}static convertGregorianYear(e,t){if(t==="gregory")return{localYear:e,isValid:!0};try{const r=new ee(e,1,1),o=this.createSafeCalendar(t),l=this.safeToCalendar(r,o),s=this.getCalendarRange(t),i=e>=s.min&&e<=s.max;return{localYear:l.year,isValid:i}}catch(r){return console.warn(`年份轉換失敗 ${e} -> ${t}:`,r),{localYear:e,isValid:!1}}}static convertToGregorianYear(e,t){if(t==="gregory")return e;try{const r=this.createSafeCalendar(t),o=new ee(r,e,1,1);return this.safeToCalendar(o,new ce).year}catch(r){return console.warn(`年份轉換失敗 ${e} ${t} -> Gregory:`,r),e}}static getMonthNames(e,t="gregory"){try{const r=new Intl.DateTimeFormat(e,{month:"short"});return Array.from({length:12},(o,l)=>{const s=new Date(2e3,l,1);return r.format(s)})}catch(r){return console.warn(`獲取月份名稱失敗 ${t}:`,r),e.startsWith("zh")?Array.from({length:12},(o,l)=>`${l+1}月`):e.startsWith("ja")?Array.from({length:12},(o,l)=>`${l+1}月`):["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}}static getCalendarDisplayName(e,t="zh-TW"){const r={gregory:{"zh-TW":"西元","zh-CN":"西元","en-US":"Gregorian","ja-JP":"西暦","ko-KR":"서력"},roc:{"zh-TW":"民國","zh-CN":"民国","en-US":"ROC","ja-JP":"中華民国","ko-KR":"중화민국"},buddhist:{"zh-TW":"佛曆","zh-CN":"佛历","en-US":"Buddhist","ja-JP":"仏暦","ko-KR":"불력"},japanese:{"zh-TW":"和曆","zh-CN":"和历","en-US":"Japanese","ja-JP":"和暦","ko-KR":"일본력"},islamic:{"zh-TW":"伊斯蘭曆","zh-CN":"伊斯兰历","en-US":"Islamic","ja-JP":"イスラム暦","ko-KR":"이슬람력"},persian:{"zh-TW":"波斯曆","zh-CN":"波斯历","en-US":"Persian","ja-JP":"ペルシア暦","ko-KR":"페르시아력"},hebrew:{"zh-TW":"希伯來曆","zh-CN":"希伯来历","en-US":"Hebrew","ja-JP":"ヘブライ暦","ko-KR":"히브리력"}};return r[e]?.[t]||r[e]?.["en-US"]||e}static isValidDate(e,t,r,o){try{if(!this.isCalendarSupported(o))return console.warn(`不支持的日曆系統: ${o}`),!1;if(e<=0||t<=0||r<=0||t>12||r>31)return!1;let l;if(o==="gregory")l=new ee(e,t,r);else{const i=this.createSafeCalendar(o);l=new ee(i,e,t,r)}return l.year===e&&l.month===t&&l.day===r}catch(l){return console.warn(`日期驗證失敗 ${e}-${t}-${r} in ${o}:`,l),!1}}static isCalendarSupported(e){return["gregory","buddhist","ethiopic","ethioaa","coptic","hebrew","indian","islamic-civil","islamic-tbla","islamic-umalqura","japanese","persian","roc"].includes(e)}static formatOutput(e,t="YYYY-MM-DD",r,o=!1,l="gregory",s="zh-TW"){if(!e)return"";let i;if(o&&r)i=`${t} ${r}`;else if(o){const u=e.hour!==void 0||e.minute!==void 0||e.second!==void 0;i=`${t} HH:mm:ss`}else i=t;try{switch(l){case"gregory":Rn(t,r)||(i=e.hour!==void 0||e.minute!==void 0||e.second!==void 0?"YYYY-MM-DD HH:mm:ss":"YYYY-MM-DD");const h=new Date(e.year,e.month-1,e.day,e.hour||0,e.minute||0,e.second||0);return ae(h).format(i);case"roc":const v=new Lt;if(v.supportsFormat(i)&&v.canParseInput(i))return v.format(e,i,s);break;case"buddhist":case"japanese":case"islamic":case"persian":case"hebrew":break}const u=this.convertToCalendarDateSmart(e,l);if(u){const h=e.hour!==void 0||e.minute!==void 0||e.second!==void 0,v={calendar:l,year:"numeric",month:"long",day:"numeric"};return h&&(v.hour="numeric",v.minute="numeric",e.second!==void 0&&(v.second="numeric")),new ft(s,v).format(u.toDate(Intl.DateTimeFormat().resolvedOptions().timeZone))}const c=new Date(e.year,e.month-1,e.day,e.hour||0,e.minute||0,e.second||0);return ae(c).format(i)}catch(u){console.warn("所有格式化方法都失敗,使用基本回退:",u);let c=`${e.year}-${e.month.toString().padStart(2,"0")}-${e.day.toString().padStart(2,"0")}`;return(e.hour!==void 0||e.minute!==void 0||e.second!==void 0)&&(c+=` ${(e.hour||0).toString().padStart(2,"0")}:${(e.minute||0).toString().padStart(2,"0")}`,e.second!==void 0&&(c+=`:${e.second.toString().padStart(2,"0")}`)),c}}}const{convertToCalendarDate:as,convertFromCalendarDate:rs,createSafeCalendar:ns,safeToCalendar:os,generateCalendarDays:ls,convertGregorianYear:ss,convertToGregorianYear:is,getCalendarRange:cs,getMonthNames:us,getCalendarDisplayName:ds,isCalendarSupported:ms,formatOutput:fs}=re,Ne=n=>/^\d+$/.test(n),Ja=n=>n%4===0&&n%100!==0||n%400===0;let ke=null;function On(){return ke||(ke=document.createElement("span"),ke.style.visibility="hidden",ke.style.position="absolute",ke.style.top="-9999px",ke.style.left="-9999px",ke.style.whiteSpace="pre",document.body.appendChild(ke)),ke}const Ht=new WeakMap;function Fn(n,e=""){const t=On(),r=getComputedStyle(n);return t.style.font=r.font,t.style.fontSize=r.fontSize,t.style.fontWeight=r.fontWeight,t.style.letterSpacing=r.letterSpacing,t.style.padding=r.padding,t.style.border=r.border,t.style.boxSizing=r.boxSizing,t.textContent=n.value||e||"",t.offsetWidth+4}function Je(n){const e=n.placeholder||"",t=Fn(n,e),r=Ht.get(n)||0;n.style.width=`${Math.max(t,r)}px`}const Ae={mounted(n,e){e.value&&typeof e.value=="number"&&Ht.set(n,e.value),Je(n),n.addEventListener("input",()=>Je(n)),document.fonts&&document.fonts.ready&&document.fonts.ready.then(()=>Je(n))},updated(n,e){e.value&&typeof e.value=="number"&&e.oldValue!==e.value&&Ht.set(n,e.value),Je(n)},beforeUnmount(n){n.removeEventListener("input",()=>Je(n))}},Pn={class:"date-input-container flex items-center justify-start"},Nn=["placeholder","aria-invalid","aria-errormessage"],An=["placeholder","aria-invalid","aria-errormessage"],Ln=["placeholder","aria-invalid","aria-errormessage"],Hn={key:3,class:"text-gray-400"},qn=a.defineComponent({__name:"DateInput",props:{modelValue:{default:null},yearPlaceholder:{default:""},monthPlaceholder:{default:""},dayPlaceholder:{default:""},minDate:{default:null},maxDate:{default:null},required:{type:Boolean,default:!0},separator:{default:"-"},dateFormat:{default:"YYYY-MM-DD"}},emits:["update:modelValue","validation","complete"],setup(n,{expose:e,emit:t}){const r={mounted:Ae.mounted,updated:Ae.updated,beforeUnmount:Ae.beforeUnmount},o=n,l=t,s=a.ref(""),i=a.ref(""),u=a.ref(""),c=a.ref({}),h=a.ref({}),v=a.ref(null),g=a.ref(!1),T=a.ref(!1),x=a.ref(null),f=a.ref(new Map),y=(Y,C)=>{Y&&Y instanceof HTMLInputElement?f.value.set(C,Y):f.value.delete(C)},m=Y=>f.value.get(Y),S=a.computed(()=>{const Y={};return Object.entries(c.value).forEach(([C,P])=>{Y[C]=P.key}),Y}),w=a.computed(()=>Object.keys(c.value).length>0),p=a.computed(()=>Object.values(S.value)),b=a.computed(()=>{const Y=o.dateFormat.toUpperCase(),C=[];return Y.split(/[^A-Z]+/).filter(Boolean).forEach(Q=>{Q.includes("Y")?C.push("year"):Q.includes("M")?C.push("month"):Q.includes("D")&&C.push("day")}),C.length!==3?(console.warn(`Invalid date format: ${o.dateFormat}, falling back to YYYY-MM-DD`),["year","month","day"]):C}),D=a.computed(()=>{if(!s.value||!i.value||!u.value)return null;const Y=s.value.padStart(4,"0"),C=i.value.padStart(2,"0"),P=u.value.padStart(2,"0");return`${Y}-${C}-${P}`}),d=a.computed(()=>{if(!D.value)return null;const Y=ae(D.value);return Y.isValid()?Y.format(o.dateFormat):null});a.watch(()=>o.modelValue,Y=>{if(g.value||(g.value=!0),Y){const C=oe(Y);C&&(s.value=C.year.toString(),i.value=C.month.toString().padStart(2,"0"),u.value=C.day.toString().padStart(2,"0"))}else s.value="",i.value="",u.value="";Y||(x.value=null,T.value=!1)},{immediate:!0});const $=()=>{if(b.value.length===0)return;const Y=b.value[0],C=m(Y);if(C&&typeof C.focus=="function")try{C.focus()}catch(P){console.warn("無法聚焦到輸入框:",P)}else for(const P of b.value){const Q=m(P);if(Q&&typeof Q.focus=="function")try{Q.focus();break}catch(W){console.warn("無法聚焦到輸入框:",W)}}},k=Y=>{const C=m(Y);if(C&&typeof C.focus=="function")try{C.focus()}catch(P){console.warn(`無法聚焦到 ${Y} 輸入框:`,P)}},O=(Y,C)=>{const P=m(Y);if(P)try{if(typeof P.focus=="function"&&P.focus(),typeof P.setSelectionRange=="function"){const Q=C==="end"?P.value.length:0;P.setSelectionRange(Q,Q)}}catch(Q){console.warn(`無法聚焦或設置游標位置到 ${Y} 輸入框:`,Q)}},H=(Y,C)=>{const P=[0,31,28,31,30,31,30,31,31,30,31,30,31];return C===2?Ja(Y)?29:28:P[C]},U=(Y,C)=>{if(!C)return{valid:!0};const P=parseInt(C);switch(Y){case"year":if(C.length<4)return{valid:!0};const Q=o.maxDate?ae(o.maxDate).year():new Date().getFullYear()+50,W=o.minDate?ae(o.minDate).year():1;if(!Ne(C)||P<W||P>Q)return{valid:!1,error:{key:"year.outOfRange",params:{min:W,max:Q}}};if(i.value==="02"&&u.value==="29"&&!Ja(P))return{valid:!1,error:{key:"year.notLeapYear",params:{year:P}}};break;case"month":if(!Ne(C)||P<1||P>12)return{valid:!1,error:{key:"month.outOfRange"}};if(u.value&&s.value){const L=parseInt(s.value),z=H(L,P);if(parseInt(u.value)>z)return{valid:!1,error:{key:"day.notExistInMonth",params:{month:C,maxDays:z}}}}break;case"day":if(!Ne(C)||P<1||P>31)return{valid:!1,error:{key:"day.outOfRange"}};if(s.value&&i.value){const L=parseInt(s.value),z=parseInt(i.value),Z=H(L,z);if(P>Z)return z===2&&P===29?{valid:!1,error:{key:"year.notLeapYear",params:{year:L}}}:{valid:!1,error:{key:"day.notExistInMonth",params:{month:i.value,maxDays:Z}}}}break}return c.value[Y]&&(delete c.value[Y],delete h.value[Y]),{valid:!0}},q=()=>{if(!g.value)return;c.value={},h.value={};const Y=U("year",s.value),C=U("month",i.value),P=U("day",u.value);if(!Y.valid&&Y.error&&(c.value.year=Y.error,Y.error.params&&(h.value.year=Y.error.params)),!C.valid&&C.error&&(c.value.month=C.error,C.error.params&&(h.value.month=C.error.params)),!P.valid&&P.error&&(c.value.day=P.error,P.error.params&&(h.value.day=P.error.params)),o.required&&(s.value||(c.value.year={key:"year.required"}),i.value||(c.value.month={key:"month.required"}),u.value||(c.value.day={key:"day.required"})),D.value&&Object.keys(c.value).length===0){const Q=ae(D.value);if(!Q.isValid())c.value.day={key:"day.invalid"};else if(o.minDate&&Q.isBefore(ae(o.minDate)))c.value.day={key:"date.beforeMin",params:{minDate:ae(o.minDate).format(o.dateFormat)}},h.value.day={minDate:ae(o.minDate).format(o.dateFormat)};else if(o.maxDate&&Q.isAfter(ae(o.maxDate)))c.value.day={key:"date.afterMax",params:{maxDate:ae(o.maxDate).format(o.dateFormat)}},h.value.day={maxDate:ae(o.maxDate).format(o.dateFormat)};else if(d.value){l("update:modelValue",d.value);const W=d.value;W!==x.value&&!T.value&&(x.value=W,l("complete",d.value))}}else g.value&&!s.value&&!i.value&&!u.value&&(l("update:modelValue",null),x.value=null);l("validation",!w.value,S.value,h.value)},j=()=>{s.value="",i.value="",u.value="",c.value={}},_=Y=>{const C=b.value.findIndex(Q=>Q===Y),P=C<b.value.length-1?b.value[C+1]:null;P?a.nextTick(()=>{k(P)}):q()},V=(Y,C,P,Q)=>{const W=C.replace(/\D/g,"");if(W.length===1&&T.value&&(T.value=!1),W.length<=P){if(Q&&W.length===1&&parseInt(W)>Q){const L=W.padStart(2,"0");Y==="year"?s.value=L:Y==="month"?i.value=L:Y==="day"&&(u.value=L),_(Y)}else Y==="year"?s.value=W:Y==="month"?i.value=W:Y==="day"&&(u.value=W);W.length===P&&_(Y)}},R=Y=>{const C=Y.target;V("year",C.value,4)},M=Y=>{const C=Y.target;V("month",C.value,2,1)},F=Y=>{const C=Y.target;V("day",C.value,2,3)},N=()=>{a.nextTick(()=>{if(b.value.length===0)return;const Y=b.value[b.value.length-1],C=m(Y);if(C&&typeof C.focus=="function")try{C.focus();const P=C.value.length;C.setSelectionRange(P,P)}catch(P){console.warn("無法聚焦到最後一個輸入框:",P)}})},K=(Y,C)=>{const P=Y.target,Q=b.value.findIndex(z=>z===C),W=Q>0?b.value[Q-1]:null,L=Q<b.value.length-1?b.value[Q+1]:null;Y.key==="Backspace"&&P.value===""&&W&&(Y.preventDefault(),T.value=!0,O(W,"end")),Y.key==="ArrowLeft"&&P.selectionStart===0&&W&&(Y.preventDefault(),T.value=!0,O(W,"end")),Y.key==="ArrowRight"&&P.selectionStart===P.value.length&&L&&(Y.preventDefault(),T.value=!0,O(L,"start")),Y.key==="Enter"&&q()},ne=Y=>{v.value=Y},te=Y=>{q(),v.value=null};return e({validate:q,reset:()=>{j(),l("update:modelValue",null)},getErrors:()=>({...c.value}),hasErrors:()=>w.value,errorMessages:()=>p.value,focus:$,focusLast:N,setDate:Y=>{if(Y){const C=oe(Y);C&&(s.value=C.year.toString(),i.value=C.month.toString().padStart(2,"0"),u.value=C.day.toString().padStart(2,"0"),q())}else j(),l("update:modelValue",null)},resetCompletionState:()=>{T.value=!1,x.value=null}}),(Y,C)=>(a.openBlock(),a.createElementBlock("div",Pn,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(b.value,(P,Q)=>(a.openBlock(),a.createElementBlock(a.Fragment,{key:P},[P==="year"?a.withDirectives((a.openBlock(),a.createElementBlock("input",{key:0,ref_for:!0,ref:W=>y(W,"year"),"onUpdate:modelValue":C[0]||(C[0]=W=>s.value=W),type:"text",inputmode:"numeric",placeholder:Y.yearPlaceholder,maxlength:4,class:"date-input text-sm text-center active:bg-vdt-theme-100",onInput:R,onKeydown:C[1]||(C[1]=W=>K(W,"year")),onFocus:C[2]||(C[2]=W=>ne("year")),onBlur:C[3]||(C[3]=W=>te()),"aria-label":"year","aria-invalid":!!S.value.year,"aria-errormessage":S.value.year?"year-error":void 0},null,40,Nn)),[[a.vModelText,s.value],[r,20]]):P==="month"?a.withDirectives((a.openBlock(),a.createElementBlock("input",{key:1,ref_for:!0,ref:W=>y(W,"month"),"onUpdate:modelValue":C[4]||(C[4]=W=>i.value=W),type:"text",inputmode:"numeric",placeholder:Y.monthPlaceholder,maxlength:2,class:"date-input text-sm text-center",onInput:M,onKeydown:C[5]||(C[5]=W=>K(W,"month")),onFocus:C[6]||(C[6]=W=>ne("month")),onBlur:C[7]||(C[7]=W=>te()),"aria-label":"month","aria-invalid":!!S.value.month,"aria-errormessage":S.value.month?"month-error":void 0},null,40,An)),[[a.vModelText,i.value],[r,20]]):P==="day"?a.withDirectives((a.openBlock(),a.createElementBlock("input",{key:2,ref_for:!0,ref:W=>y(W,"day"),"onUpdate:modelValue":C[8]||(C[8]=W=>u.value=W),type:"text",inputmode:"numeric",placeholder:Y.dayPlaceholder,maxlength:2,class:"date-input text-sm text-center",onInput:F,onKeydown:C[9]||(C[9]=W=>K(W,"day")),onFocus:C[10]||(C[10]=W=>ne("day")),onBlur:C[11]||(C[11]=W=>te()),"aria-label":"day","aria-invalid":!!S.value.day,"aria-errormessage":S.value.day?"day-error":void 0},null,40,Ln)),[[a.vModelText,u.value],[r,20]]):a.createCommentVNode("",!0),Q<b.value.length-1?(a.openBlock(),a.createElementBlock("span",Hn,a.toDisplayString(Y.separator),1)):a.createCommentVNode("",!0)],64))),128))]))}}),we=(n,e)=>{const t=n.__vccOpts||n;for(const[r,o]of e)t[r]=o;return t},qt=we(qn,[["__scopeId","data-v-917a492c"]]),Un={class:"time-input-container flex items-center justify-center"},zn=["placeholder","aria-invalid","aria-errormessage"],Wn=["placeholder","aria-invalid","aria-errormessage"],_n=["placeholder","aria-invalid","aria-errormessage"],Ut=we(a.defineComponent({__name:"TimeInput",props:{modelValue:{default:null},hourPlaceholder:{default:"HH"},minutePlaceholder:{default:"MM"},secondPlaceholder:{default:"SS"},enableSeconds:{type:Boolean,default:!0},use24Hour:{type:Boolean,default:!0},required:{type:Boolean,default:!1},locale:{default:"zh-TW"},useLocalizedPeriod:{type:Boolean,default:!1},minuteStep:{default:1}},emits:["update:modelValue","validation","complete","navigate-to-date"],setup(n,{expose:e,emit:t}){const r={mounted:Ae.mounted,updated:Ae.updated,beforeUnmount:Ae.beforeUnmount},o=n,l=t,s=a.ref(""),i=a.ref(""),u=a.ref(""),c=a.ref("AM"),h=a.ref({}),v=a.ref({}),g=a.ref(null),T=a.ref(!1),x=a.ref(),f=a.ref(),y=a.ref(),m=a.computed(()=>Object.keys(h.value).length>0),S=a.computed(()=>{const V={};return Object.entries(h.value).forEach(([R,M])=>{V[R]=M.key}),V}),w=()=>{s.value="",i.value="",u.value="",c.value="AM"},p=a.computed(()=>{if(!o.useLocalizedPeriod)return c.value;try{const V=new Date;V.setHours(9,0,0);const R=new Date;R.setHours(15,0,0);const M=new Intl.DateTimeFormat(o.locale,{hour:"numeric",hour12:!0}),F=M.formatToParts(V),N=M.formatToParts(R),K=F.find(te=>te.type==="dayPeriod")?.value||"AM",ne=N.find(te=>te.type==="dayPeriod")?.value||"PM";return c.value==="AM"?K:ne}catch(V){return console.error("Error getting localized period:",V),c.value}}),b=a.computed(()=>p.value),D=a.computed(()=>{if(s.value===""||i.value===""||o.enableSeconds&&u.value==="")return null;let V=parseInt(s.value,10);o.use24Hour||(c.value==="PM"&&V<12?V+=12:c.value==="AM"&&V===12&&(V=0));const R=V.toString().padStart(2,"0"),M=i.value.padStart(2,"0");if(o.enableSeconds){const F=u.value.padStart(2,"0");return`${R}:${M}:${F}`}else return`${R}:${M}`});a.watch(()=>o.modelValue,V=>{if(T.value||(T.value=!0),V){const R=V.split(":");let M=parseInt(R[0]||"0",10);const F=(R[1]||"").replace(/\D/g,""),N=(R[2]||"").replace(/\D/g,"");o.use24Hour||(M>=12?(c.value="PM",M=M===12?12:M-12):(c.value="AM",M=M===0?12:M)),s.value=M.toString().padStart(2,"0"),i.value=F,o.enableSeconds&&(u.value=N)}else w()},{immediate:!0});const d=(V,R)=>{if(!R)return{valid:!0};const M=parseInt(R);switch(V){case"hour":const F=o.use24Hour?23:12,N=o.use24Hour?0:1;if(!Ne(R)||M<N||M>F)return{valid:!1,error:{key:"time.hourOutOfRange",params:{min:N,max:F}}};break;case"minute":if(!Ne(R)||M<0||M>59)return{valid:!1,error:{key:"time.minuteOutOfRange",params:{min:0,max:59}}};if(o.minuteStep>1&&M%o.minuteStep!==0)return{valid:!1,error:{key:"time.minuteStepInvalid",params:{step:o.minuteStep}}};break;case"second":if(!Ne(R)||M<0||M>59)return{valid:!1,error:{key:"time.secondOutOfRange",params:{min:0,max:59}}};break}return h.value[V]&&(delete h.value[V],delete v.value[V]),{valid:!0}},$=()=>{c.value=c.value==="AM"?"PM":"AM",k()},k=()=>{if(!T.value)return;h.value={},v.value={};const V=d("hour",s.value),R=d("minute",i.value),M=o.enableSeconds?d("second",u.value):{valid:!0};!V.valid&&V.error&&(h.value.hour=V.error,V.error.params&&(v.value.hour=V.error.params)),!R.valid&&R.error&&(h.value.minute=R.error,R.error.params&&(v.value.minute=R.error.params)),!M.valid&&M.error&&(h.value.second=M.error,M.error.params&&(v.value.second=M.error.params)),o.required&&(s.value||(h.value.hour={key:"time.hourRequired"}),i.value||(h.value.minute={key:"time.minuteRequired"}),o.enableSeconds&&!u.value&&(h.value.second={key:"time.secondRequired"})),l("validation",!m.value,S.value,v.value),D.value?(l("update:modelValue",D.value),l("complete",D.value)):T.value&&l("update:modelValue",null)},O=V=>{const M=V.target.value.replace(/\D/g,"");if(M.length<=2){if(s.value=M,!d("hour",M).valid)return;(M.length===2||o.use24Hour&&parseInt(M)>2||!o.use24Hour&&parseInt(M)>1)&&a.nextTick(()=>{f.value?.focus()})}},H=V=>{const M=V.target.value.replace(/\D/g,"");if(M.length<=2){if(M.length===1&&parseInt(M)>5?(i.value=M.padStart(2,"0"),a.nextTick(()=>{o.enableSeconds&&y.value?y.value.focus():k()})):i.value=M,!d("minute",M).valid)return;M.length===2&&a.nextTick(()=>{o.enableSeconds&&y.value?y.value.focus():k()})}},U=V=>{const M=V.target.value.replace(/\D/g,"");if(M.length<=2){if(M.length===1&&parseInt(M)>5?(u.value=M.padStart(2,"0"),k()):u.value=M,!d("second",M).valid)return;M.length===2&&k()}},q=(V,R)=>{const M=V.target;if(V.key==="Backspace"&&M.value==="")switch(R){case"hour":V.preventDefault(),l("navigate-to-date");break;case"minute":V.preventDefault(),x.value?.focus(),x.value?.setSelectionRange(-1,-1);break;case"second":V.preventDefault(),f.value?.focus(),f.value?.setSelectionRange(-1,-1);break}if(V.key==="ArrowLeft"&&M.selectionStart===0)switch(R){case"hour":V.preventDefault(),l("navigate-to-date");break;case"minute":V.preventDefault(),x.value?.focus(),x.value?.setSelectionRange(-1,-1);break;case"second":V.preventDefault(),f.value?.focus(),f.value?.setSelectionRange(-1,-1);break}if(V.key==="ArrowRight"&&M.selectionStart===M.value.length)switch(R){case"hour":V.preventDefault(),f.value?.focus(),f.value?.setSelectionRange(0,0);break;case"minute":o.enableSeconds&&(V.preventDefault(),y.value?.focus(),y.value?.setSelectionRange(0,0));break}V.key==="Enter"&&k()},j=V=>{g.value=V},_=V=>{g.value=null,k()};return e({validate:k,reset:()=>{w(),h.value={},v.value={},l("update:modelValue",null)},getErrors:()=>S.value,hasErrors:m,setTime:V=>{if(V){const[R,M,F]=V.split(":");let N=parseInt(R);o.use24Hour||(N>=12?(c.value="PM",N=N===12?12:N-12):(c.value="AM",N=N===0?12:N)),s.value=N.toString().padStart(2,"0"),i.value=M,o.enableSeconds&&F&&(u.value=F),k()}else w(),l("update:modelValue",null)},focus:()=>{x.value?.focus()},focusLast:()=>{o.enableSeconds&&y.value?(y.value.focus(),y.value.setSelectionRange(0,0)):f.value?(f.value.focus(),f.value.setSelectionRange(0,0)):x.value&&(x.value.focus(),x.value.setSelectionRange(0,0))}}),(V,R)=>(a.openBlock(),a.createElementBlock("div",Un,[a.withDirectives(a.createElementVNode("input",{ref_key:"hourRef",ref:x,"onUpdate:modelValue":R[0]||(R[0]=M=>s.value=M),type:"text",inputmode:"numeric",placeholder:V.hourPlaceholder,maxlength:2,class:"time-input text-sm text-center",onInput:O,onKeydown:R[1]||(R[1]=M=>q(M,"hour")),onFocus:R[2]||(R[2]=M=>j("hour")),onBlur:R[3]||(R[3]=M=>_()),"aria-label":"hour","aria-invalid":!!h.value.hour,"aria-errormessage":h.value.hour?"hour-error":void 0},null,40,zn),[[a.vModelText,s.value],[r,20]]),R[13]||(R[13]=a.createElementVNode("span",{class:"text-gray-400 mx-1"},":",-1)),a.withDirectives(a.createElementVNode("input",{ref_key:"minuteRef",ref:f,"onUpdate:modelValue":R[4]||(R[4]=M=>i.value=M),type:"text",inputmode:"numeric",placeholder:V.minutePlaceholder,maxlength:2,class:"time-input text-sm text-center",onInput:H,onKeydown:R[5]||(R[5]=M=>q(M,"minute")),onFocus:R[6]||(R[6]=M=>j("minute")),onBlur:R[7]||(R[7]=M=>_()),"aria-label":"minute","aria-invalid":!!h.value.minute,"aria-errormessage":h.value.minute?"minute-error":void 0},null,40,Wn),[[a.vModelText,i.value],[r,20]]),V.enableSeconds?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[R[12]||(R[12]=a.createElementVNode("span",{class:"text-gray-400 mx-1"},":",-1)),a.withDirectives(a.createElementVNode("input",{ref_key:"secondRef",ref:y,"onUpdate:modelValue":R[8]||(R[8]=M=>u.value=M),type:"text",inputmode:"numeric",placeholder:V.secondPlaceholder,maxlength:2,class:"time-input text-sm text-center",onInput:U,onKeydown:R[9]||(R[9]=M=>q(M,"second")),onFocus:R[10]||(R[10]=M=>j("second")),onBlur:R[11]||(R[11]=M=>_()),"aria-label":"second","aria-invalid":!!h.value.second,"aria-errormessage":h.value.second?"second-error":void 0},null,40,_n),[[a.vModelText,u.value],[r,20]])],64)):a.createCommentVNode("",!0),V.use24Hour?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("button",{key:1,type:"button",class:a.normalizeClass(["time-period pl-2 text-sm cursor-pointer",s.value?"text-vdt-content":"text-gray-400"]),onClick:a.withModifiers($,["stop"])},a.toDisplayString(b.value),3))]))}}),[["__scopeId","data-v-fb3720c7"]]),be={"zh-TW":{error:{calendar:{unsupported:"不支援的日曆"},date:{required:"請選擇日期",invalid:"無效的日期",outOfRange:"日期超出允許範圍",beforeMin:"日期不能早於 {minDate}",afterMax:"日期不能晚於 {maxDate}",unsupportedFormat:"不支援的日期格式,支援格式: {formats}",parseError:"日期解析失敗,請檢查日期格式"},time:{required:"請選擇時間",invalid:"無效的時間",hourOutOfRange:"小時必須是 {min}-{max} 之間的數字",minuteOutOfRange:"分鐘必須是 0-59 之間的數字",secondOutOfRange:"秒鐘必須是 0-59 之間的數字",hourRequired:"請輸入小時",minuteRequired:"請輸入分鐘",secondRequired:"請輸入秒鐘",minuteStepInvalid:"分鐘必須是 {step} 的倍數"},year:{required:"請輸入年份",invalid:"年份格式不正確",outOfRange:"年份必須是 {min}-{max} 之間的數字",notLeapYear:"{year}年2月沒有29日,不是閏年"},month:{required:"請輸入月份",invalid:"月份格式不正確",outOfRange:"月份必須是 1-12 之間的數字"},day:{required:"請輸入日期",invalid:"日期格式不正確",outOfRange:"日期必須是 1-31 之間的數字",notExistInMonth:"{month}月最多只有{maxDays}天"},range:{startRequired:"請選擇開始日期",endRequired:"請選擇結束日期",startAfterEnd:"開始日期不能晚於結束日期",exceedsMaxRange:"選擇範圍不能超過 {maxRange} 天",belowMinRange:"選擇範圍不能少於 {minRange} 天"},format:{dateFormat:'日期格式不正確: "{original}" 已自動修復為 "{fixed}"',timeFormat:'時間格式不正確: "{original}" 已自動修復為 "{fixed}"'}},placeholder:{date:{year:"年",month:"月",day:"日"},time:{hour:"時",minute:"分",second:"秒"},general:{selectDate:"請選擇日期",selectTime:"請選擇時間",clear:"清除",time:"時間"},range:{start:"開始日期",end:"結束日期"}},yearSelector:{jumpToYear:"跳至年份",inputYearPlaceholder:"輸入西元年...",yearRangeInfo:"{calendar}年範圍: {min} - {max}",noYearsToDisplay:"沒有可顯示的年份",returnToValidRange:"返回有效範圍"}},"zh-CN":{error:{calendar:{unsupported:"不支持的日历"},date:{required:"请选择日期",invalid:"无效的日期",outOfRange:"日期超出允许范围",beforeMin:"日期不能早于 {minDate}",afterMax:"日期不能晚于 {maxDate}",unsupportedFormat:"不支持的日期格式,支持格式: {formats}",parseError:"日期解析失败,请检查日期格式"},time:{required:"请选择时间",invalid:"无效的时间",hourOutOfRange:"小时必须是 {min}-{max} 之间的数字",minuteOutOfRange:"分钟必须是 0-59 之间的数字",secondOutOfRange:"秒钟必须是 0-59 之间的数字",hourRequired:"请输入小时",minuteRequired:"请输入分钟",secondRequired:"请输入秒钟",minuteStepInvalid:"分钟必须是 {step} 的倍数"},year:{required:"请输入年份",invalid:"年份格式不正确",outOfRange:"年份必须是 {min}-{max} 之间的数字",notLeapYear:"{year}年2月没有29日,不是闰年"},month:{required:"请输入月份",invalid:"月份格式不正确",outOfRange:"月份必须是 1-12 之间的数字"},day:{required:"请输入日期",invalid:"日期格式不正确",outOfRange:"日期必须是 1-31 之间的数字",notExistInMonth:"{month}月最多只有{maxDays}天"},range:{startRequired:"请选择开始日期",endRequired:"请选择结束日期",startAfterEnd:"开始日期不能晚于结束日期",exceedsMaxRange:"选择范围不能超过 {maxRange} 天",belowMinRange:"选择范围不能少于 {minRange} 天"},format:{dateFormat:'日期格式不正确: "{original}" 已自动修复为 "{fixed}"',timeFormat:'时间格式不正确: "{original}" 已自动修复为 "{fixed}"'}},placeholder:{date:{year:"年",month:"月",day:"日"},time:{hour:"时",minute:"分",second:"秒"},general:{selectDate:"请选择日期",selectTime:"请选择时间",clear:"清除",time:"时间"},range:{start:"开始日期",end:"结束日期"}},yearSelector:{jumpToYear:"跳至年份",inputYearPlaceholder:"输入公历年...",yearRangeInfo:"{calendar}年范围: {min} - {max}",noYearsToDisplay:"没有可显示的年份",returnToValidRange:"返回有效范围"}},"en-US":{error:{calendar:{unsupported:"Unsupported calendar"},date:{required:"Please select a date",invalid:"Invalid date",outOfRange:"Date is out of allowed range",beforeMin:"Date cannot be before {minDate}",afterMax:"Date cannot be after {maxDate}",unsupportedFormat:"Unsupported date format, supported formats: {formats}",parseError:"Failed to parse date, please check the date format"},time:{required:"Please select a time",invalid:"Invalid time",hourOutOfRange:"Hour must be between {min}-{max}",minuteOutOfRange:"Minute must be between 0-59",secondOutOfRange:"Second must be between 0-59",hourRequired:"Please enter hour",minuteRequired:"Please enter minute",secondRequired:"Please enter second",minuteStepInvalid:"Minute must be a multiple of {step}"},year:{required:"Please enter year",invalid:"Invalid year format",outOfRange:"Year must be between {min}-{max}",notLeapYear:"February 29th does not exist in {year}, not a leap year"},month:{required:"Please enter month",invalid:"Invalid month format",outOfRange:"Month must be between 1-12"},day:{required:"Please enter day",invalid:"Invalid day format",outOfRange:"Day must be between 1-31",notExistInMonth:"Month {month} has maximum {maxDays} days"},range:{startRequired:"Please select start date",endRequired:"Please select end date",startAfterEnd:"Start date cannot be after end date",exceedsMaxRange:"Selection range cannot exceed {maxRange} days",belowMinRange:"Selection range cannot be less than {minRange} days"},format:{dateFormat:'Invalid date format: "{original}" auto-fixed to "{fixed}"',timeFormat:'Invalid time format: "{original}" auto-fixed to "{fixed}"'}},placeholder:{date:{year:"YYYY",month:"MM",day:"DD"},time:{hour:"HH",minute:"mm",second:"ss"},general:{selectDate:"Please select a date",selectTime:"Please select a time",clear:"Clear",time:"Time"},range:{start:"Start date",end:"End date"}},yearSelector:{jumpToYear:"Jump to Year",inputYearPlaceholder:"Enter Gregorian year...",yearRangeInfo:"{calendar} Year Range: {min} - {max}",noYearsToDisplay:"No years to display",returnToValidRange:"Return to valid range"}},"ja-JP":{error:{calendar:{unsupported:"サポートされていないカレンダーIDです"},date:{required:"日付を選択してください",invalid:"無効な日付",outOfRange:"日付が許可範囲外です",beforeMin:"日付は {minDate} より前にはできません",afterMax:"日付は {maxDate} より後にはできません",unsupportedFormat:"サポートされていない日付形式です。サポート形式: {formats}",parseError:"日付の解析に失敗しました。日付形式を確認してください"},time:{required:"時刻を選択してください",invalid:"無効な時刻",hourOutOfRange:"時間は {min}-{max} の間で入力してください",minuteOutOfRange:"分は 0-59 の間で入力してください",secondOutOfRange:"秒は 0-59 の間で入力してください",hourRequired:"時間を入力してください",minuteRequired:"分を入力してください",secondRequired:"秒を入力してください",minuteStepInvalid:"分は {step} の倍数でなければなりません"},year:{required:"年を入力してください",invalid:"年の形式が正しくありません",outOfRange:"年は {min}-{max} の間で入力してください",notLeapYear:"{year}年2月29日は存在しません(うるう年ではありません)"},month:{required:"月を入力してください",invalid:"月の形式が正しくありません",outOfRange:"月は 1-12 の間で入力してください"},day:{required:"日を入力してください",invalid:"日の形式が正しくありません",outOfRange:"日は 1-31 の間で入力してください",notExistInMonth:"{month}月は最大 {maxDays} 日までです"},range:{startRequired:"開始日を選択してください",endRequired:"終了日を選択してください",startAfterEnd:"開始日は終了日より後にはできません",exceedsMaxRange:"選択範囲は {maxRange} 日を超えることはできません",belowMinRange:"選択範囲は {minRange} 日未満にはできません"},format:{dateFormat:'日付形式が正しくありません: "{original}" を "{fixed}" に自動修正しました',timeFormat:'時刻形式が正しくありません: "{original}" を "{fixed}" に自動修正しました'}},placeholder:{date:{year:"年",month:"月",day:"日"},time:{hour:"時",minute:"分",second:"秒"},general:{selectDate:"日付を選択してください",selectTime:"時刻を選択してください",clear:"クリア",time:"時刻"},range:{start:"開始日を",end:"終了日を"}},yearSelector:{jumpToYear:"年にジャンプ",inputYearPlaceholder:"西暦年を入力...",yearRangeInfo:"{calendar}年の範囲: {min} - {max}",noYearsToDisplay:"表示する年はありません",returnToValidRange:"有効な範囲に戻る"}},"ko-KR":{error:{calendar:{unsupported:"지원하지 않는 달력 ID입니다"},date:{required:"날짜를 선택해주세요",invalid:"유효하지 않은 날짜",outOfRange:"날짜가 허용 범위를 벗어났습니다",beforeMin:"날짜는 {minDate}보다 이전일 수 없습니다",afterMax:"날짜는 {maxDate}보다 이후일 수 없습니다",unsupportedFormat:"지원하지 않는 날짜 형식입니다. 지원 형식: {formats}",parseError:"날짜를 파싱하는 데 실패했습니다. 날짜 형식을 확인해주세요"},time:{required:"시간을 선택해주세요",invalid:"유효하지 않은 시간",hourOutOfRange:"시간은 {min}-{max} 사이의 숫자여야 합니다",minuteOutOfRange:"분은 0-59 사이의 숫자여야 합니다",secondOutOfRange:"초는 0-59 사이의 숫자여야 합니다",hourRequired:"시간을 입력해주세요",minuteRequired:"분을 입력해주세요",secondRequired:"초을 입력해주세요",minuteStepInvalid:"분은 {step}의 배수여야 합니다"},year:{required:"연도를 입력해주세요",invalid:"연도 형식이 올바르지 않습니다",outOfRange:"연도는 {min}-{max} 사이의 숫자여야 합니다",notLeapYear:"{year}년 2월 29일은 존재하지 않습니다 (윤년이 아님)"},month:{required:"월을 입력해주세요",invalid:"월 형식이 올바르지 않습니다",outOfRange:"월은 1-12 사이의 숫자여야 합니다"},day:{required:"일을 입력해주세요",invalid:"일 형식이 올바르지 않습니다",outOfRange:"일은 1-31 사이의 숫자여야 합니다",notExistInMonth:"{month}월은 최대 {maxDays}일까지입니다"},range:{startRequired:"시작 날짜를 선택해주세요",endRequired:"종료 날짜를 선택해주세요",startAfterEnd:"시작 날짜는 종료 날짜보다 늦을 수 없습니다",exceedsMaxRange:"선택 범위는 {maxRange}일을 초과할 수 없습니다",belowMinRange:"선택 범위는 {minRange}일 미만일 수 없습니다"},format:{dateFormat:'날짜 형식이 올바르지 않습니다: "{original}"을(를) "{fixed}"로 자동 수정했습니다',timeFormat:'시간 형식이 올바르지 않습니다: "{original}"을(를) "{fixed}"로 자동 수정했습니다'}},placeholder:{date:{year:"년",month:"월",day:"일"},time:{hour:"시",minute:"분",second:"초"},general:{selectDate:"날짜를 선택해주세요",selectTime:"시간을 선택해주세요",clear:"지우기",time:"시간"},range:{start:"시작 날짜",end:"종료 날짜"}},yearSelector:{jumpToYear:"연도로 이동",inputYearPlaceholder:"서기 연도를 입력...",yearRangeInfo:"{calendar}년 범위: {min} - {max}",noYearsToDisplay:"표시한 연도는 없습니다",returnToValidRange:"유효한 범위로 이동"}}};function ja(n,e){return n.replace(/\{(\w+)\}/g,(t,r)=>e[r]?.toString()||t)}class Jn{currentLocale="zh-TW";setLocale(e){if(!be[e]){console.warn(`Locale '${e}' not found, falling back to 'zh-TW'`),this.currentLocale="zh-TW";return}this.currentLocale=e}registerLocale(e,t){be[e]=t}hasLocale(e){return!!be[e]}getAvailableLocales(){return Object.keys(be)}getCurrentLocale(){return this.currentLocale}getMessage(e,t){const r=e.split(".");let o=be[this.currentLocale];for(const l of r)o=o?.[l];return typeof o!="string"?(console.warn(`Missing translation for path: ${e} in locale: ${this.currentLocale}`),e):t?ja(o,t):o}getErrorMessage(e,t){return this.getMessage(`error.${e}`,t)}getPlaceholderMessage(e,t){return this.getMessage(`placeholder.${e}`,t)}addCustomMessages(e,t){if(!be[e]){console.warn(`Locale '${e}' not found. Please register it first using registerLocale().`);return}be[e]={...be[e],...this.deepMerge(be[e],t)}}getParameterizedErrorMessage(e,t={}){const r=this.getErrorMessage(e);return this.interpolateParameters(r,t)}interpolateParameters(e,t={}){return!t||Object.keys(t).length===0?e:e.replace(/\{(\w+)\}/g,(r,o)=>{const l=t[o];return l==null?(console.warn(`Missing variable '${o}' for template: "${e}"`),r):String(l)})}deepMerge(e,t){const r={...e};for(const o in t)t[o]&&typeof t[o]=="object"&&!Array.isArray(t[o])?r[o]=this.deepMerge(r[o]||{},t[o]):r[o]=t[o];return r}}function je(n="en-US",e){const t=new Jn,r=a.ref(n);e&&n&&t.registerLocale(n,e),t.setLocale(n);const o=(v,g)=>{r.value=v,g&&t.registerLocale(v,g),t.setLocale(v)},l=(v,g)=>t.getMessage(v,g),s=(v,g)=>t.getErrorMessage(v,g),i=(v,g)=>t.getPlaceholderMessage(v,g),u=(v,g)=>ja(v,g),c=(v,g)=>{t.registerLocale(v,g)},h=v=>t.hasLocale(v);return{currentLocale:a.computed(()=>r.value),setLocale:o,getMessage:l,getErrorMessage:s,getPlaceholderMessage:i,formatText:u,registerCustomLocale:c,hasLocale:h}}const jn={key:0,class:"date-error-message mt-1 text-sm text-red-500"},Kn={key:0},Qn={key:1},Zn={key:2},Ka=a.defineComponent({__name:"DateErrorMessage",props:{errors:{default:void 0},errorParams:{default:()=>({})},locale:{default:"zh-TW"},useI18n:{type:Boolean,default:!0},customMessages:{default:()=>({})},messageKeyMap:{default:()=>({})},debug:{type:Boolean,default:!1}},setup(n,{expose:e}){const t=n,{currentLocale:r,setLocale:o,getErrorMessage:l}=je(t.locale);a.watch(()=>t.locale,m=>{m&&t.useI18n&&o(m)},{immediate:!0});const s=a.ref({}),i=a.ref({}),u=a.computed(()=>({...t.customMessages,...s.value})),c=a.computed(()=>t.errors?Array.isArray(t.errors)?t.errors.length>0:typeof t.errors=="string"?t.errors.trim().length>0:typeof t.errors=="object"?Object.values(t.errors).some(m=>m&&m.trim().length>0):!1:!1),h=a.computed(()=>{if(!t.errors)return null;if(typeof t.errors=="string")return f(t.errors);if(Array.isArray(t.errors))return t.errors.map((m,S)=>({field:`item-${S}`,message:f(m),originalKey:m,params:{}}));if(typeof t.errors=="object"){const m={};return Object.entries(t.errors).forEach(([S,w])=>{if(w){i.value[S]=w;const p=t.errorParams?.[S]||{};m[S]=f(w,S,p),t.debug&&console.log(`Processing error for field "${S}":`,{original:w,params:p,translated:m[S],field:S,slotName:T(S)})}}),m}return t.errors}),v=a.computed(()=>t.errorParams||{});function g(m){return i.value[m]}function T(m){return`error-${m.replace(/^(date|time|range)\./,"")}`}function x(m){return m.startsWith("date.")?"date":m.startsWith("time.")?"time":m.startsWith("range.")?"range":"unknown"}function f(m,S,w={}){if(t.debug&&console.log(`翻譯訊息: "${m}", field: "${S}", params:`,w),u.value[m])return u.value[m];if(!t.useI18n)return m;if(/^[a-zA-Z]+\.[a-zA-Z]+$/.test(m))try{const D=l(m,w);if(t.debug&&console.log(`Locale key 翻譯: "${m}" -> "${D}" with params:`,w),D&&D!==m)return D}catch(D){t.debug&&console.warn(`Locale key 翻譯失敗: ${m}`,D)}const b=t.messageKeyMap[m];if(b)try{const D=l(b,w);if(t.debug&&console.log(`MessageKeyMap 翻譯: "${m}" -> "${D}" with params:`,w),D&&D!==b)return D}catch(D){t.debug&&console.warn(`MessageKeyMap 翻譯失敗: ${b}`,D)}return y(m,S,w)}function y(m,S,w={}){t.debug&&console.log(`smartTranslateError: "${m}", field: "${S}", params:`,w);const p={請選擇日期:"date.required",請選擇時間:"time.required",請選擇開始日期:"range.startRequired",請選擇結束日期:"range.endRequired","Please select a date":"date.required","Please select a time":"time.required","Please select start date":"range.startRequired","Please select end date":"range.endRequired"};if(p[m])try{const $=l(p[m],w);if(t.debug&&console.log(`直接匹配翻譯: "${m}" -> "${$}" with params:`,w),$&&$!==p[m])return $}catch($){t.debug&&console.warn(`直接匹配翻譯失敗: ${p[m]}`,$)}function b($,k){if(/請輸入|please enter|required/i.test($)){if(k?.includes("year")||$.includes("年份"))return"year.required";if(k?.includes("month")||$.includes("月份"))return"month.required";if(k?.includes("day")||$.includes("日期"))return"day.required";if(k?.includes("hour")||$.includes("小時"))return"time.hourRequired";if(k?.includes("minute")||$.includes("分鐘"))return"time.minuteRequired";if(k?.includes("second")||$.includes("秒鐘"))return"time.secondRequired";if(k?.includes("startDate")||$.includes("開始日期"))return"range.startRequired";if(k?.includes("endDate")||$.includes("結束日期"))return"range.endRequired";if(k?.includes("time")||$.includes("時間"))return"time.required";if(k?.includes("date")||$.includes("日期"))return"date.required"}return null}const D=b(m,S);if(D)try{const $=l(D,w);if(t.debug&&console.log(`智能匹配翻譯: "${m}" -> "${$}" with params:`,w),$&&$!==D)return $}catch($){t.debug&&console.warn(`智能匹配翻譯失敗: ${D}`,$)}const d=[{regex:/(年份|year).*(\d+)-(\d+).*數字/i,key:"year.outOfRange"},{regex:/(月份|month).*1-12.*數字/i,key:"month.outOfRange"},{regex:/(日期|day).*1-31.*數字/i,key:"day.outOfRange"},{regex:/(小時|hour).*(\d+)-(\d+)/i,key:"time.hourOutOfRange"},{regex:/(分鐘|minute).*0-59/i,key:"time.minuteOutOfRange"},{regex:/(秒鐘|second).*0-59/i,key:"time.secondOutOfRange"},{regex:/無效|invalid/i,key:null,handler:$=>$?.includes("year")?"year.invalid":$?.includes("month")?"month.invalid":$?.includes("day")?"day.invalid":$?.includes("time")||$?.includes("hour")||$?.includes("minute")||$?.includes("second")?"time.invalid":"date.invalid"}];for(const $ of d)if($.regex.test(m)){const k=$.handler?$.handler(S):$.key;if(k)try{const O=l(k,w);if(t.debug&&console.log(`模式匹配翻譯: "${m}" -> "${O}" (key: ${k}) with params:`,w),O&&O!==k)return O}catch(O){t.debug&&console.warn(`模式匹配翻譯失敗: ${k}`,O)}}return t.debug&&console.log(`無法翻譯,返回原始訊息: "${m}"`),m}return e({hasErrors:c,processedErrors:h,processedErrorParams:v,translateMessage:f,getOriginalKey:g,getSlotName:T,getFieldType:x,setLocale:m=>{o(m)},addCustomTranslation:(m,S)=>{s.value[m]=S},currentLocale:r}),(m,S)=>c.value?(a.openBlock(),a.createElementBlock("div",jn,[Array.isArray(h.value)?(a.openBlock(),a.createElementBlock("div",Kn,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(h.value,(w,p)=>(a.openBlock(),a.createElementBlock("div",{key:p},[a.renderSlot(m.$slots,`error-${w.field}`,{error:w,message:w.message,field:w.field,errorParams:w.params},()=>[a.createElementVNode("span",null,a.toDisplayString(w.message),1)])]))),128))])):typeof h.value=="string"?(a.openBlock(),a.createElementBlock("div",Qn,[a.renderSlot(m.$slots,"error-single",{error:h.value,message:h.value},()=>[a.createElementVNode("span",null,a.toDisplayString(h.value),1)])])):typeof h.value=="object"?(a.openBlock(),a.createElementBlock("div",Zn,[a.renderSlot(m.$slots,"error",{errors:h.value,errorParams:t.errorParams},()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(h.value,(w,p)=>(a.openBlock(),a.createElementBlock("div",{key:p},[a.renderSlot(m.$slots,T(p),{field:p,error:w,message:w,originalKey:g(p),fieldType:x(p),errorParams:t.errorParams[p]||{}},()=>[a.createElementVNode("span",null,a.toDisplayString(w),1)])]))),128))])])):a.createCommentVNode("",!0)])):a.createCommentVNode("",!0)}}),Gn={},Xn={xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"};function eo(n,e){return a.openBlock(),a.createElementBlock("svg",Xn,e[0]||(e[0]=[a.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"},null,-1)]))}const Qa=we(Gn,[["render",eo]]),to={},ao={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor"};function ro(n,e){return a.openBlock(),a.createElementBlock("svg",ao,e[0]||(e[0]=[a.createElementVNode("path",{"fill-rule":"evenodd",d:"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z","clip-rule":"evenodd"},null,-1)]))}const Za=we(to,[["render",ro]]),no={},oo={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor"};function lo(n,e){return a.openBlock(),a.createElementBlock("svg",oo,e[0]||(e[0]=[a.createElementVNode("path",{"fill-rule":"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z","clip-rule":"evenodd"},null,-1)]))}const Ga=we(no,[["render",lo]]),so={class:"p-2 flex items-center justify-between border-b border-vdt-outline"},io=["disabled"],co={class:"text-sm font-medium"},uo=["disabled"],mo={key:0,class:"grid grid-cols-4 gap-1 p-2"},fo=["onClick","title"],ho={class:"font-medium"},po={key:0},go={key:0,class:"text-xs opacity-60 mt-0.5"},yo={key:1,class:"p-4 text-center text-sm text-vdt-content-muted"},vo={class:"mb-2"},$o={class:"p-2 border-t border-vdt-outline"},Do={class:"text-xs text-gray-400 mb-1"},ko=["placeholder","min","max"],bo={class:"text-xs text-vdt-content-muted mt-1"},Mo=we(a.defineComponent({__name:"YearSelector",props:{selectedYear:{},showSelector:{type:Boolean},pageSize:{default:12},calendar:{default:"gregory"},locale:{default:"zh-TW"}},emits:["year-selected","update:showSelector"],setup(n,{expose:e,emit:t}){const r=n,o=t,{getMessage:l,formatText:s}=je(r.locale),i=a.ref(null),u=a.ref(null),c=a.computed(()=>re.getCalendarRange(r.calendar)),h=a.computed(()=>re.getCalendarDisplayName(r.calendar,r.locale)),v=a.computed(()=>r.calendar==="gregory"),g=a.computed(()=>r.calendar==="japanese"),T=a.computed(()=>D.value[0]),x=a.computed(()=>D.value[D.value.length-1]),f=a.ref(0),y=M=>{const F=Math.floor(M/r.pageSize)*r.pageSize;return Math.max(F,c.value.min)},m=()=>{f.value=y(r.selectedYear)},S=new Map,w=(M,F)=>{const N=`${M}-${F}`;if(!S.has(N))try{S.set(N,new ft(F,{calendar:M,year:"numeric",era:"short"}))}catch{S.set(N,new ft(F,{year:"numeric"}))}return S.get(N)},p=M=>{const F={gregorianYear:M,displayEra:"",displayYear:M.toString(),showReference:!1,displayWarning:!1};if(v.value)return F;try{const N=new ee(M,6,1),K=re.safeToCalendar(N,re.createSafeCalendar(r.calendar)),te=w(r.calendar,r.locale).formatToParts(K.toDate("UTC"));F.displayYear=te.find(P=>P.type==="year")?.value||M.toString(),F.displayEra=te.find(P=>P.type==="era")?.value||"";const Y=!!F.displayEra,C=F.displayEra!==M.toString();(Y||C)&&(F.showReference=!0,F.referenceYear=M.toString())}catch{if(F.displayWarning=!0,F.warningMessage=`無法轉換為${h.value}`,r.calendar==="roc"){const K=M-1911;F.displayYear=K>0?K.toString():`民國前${Math.abs(K-1)}年`}}return F},b=M=>M>=c.value.min&&M<=c.value.max,D=a.computed(()=>{const M=f.value,F=[];for(let N=0;N<r.pageSize;N++){const K=M+N;if(K>c.value.max)break;K<c.value.min||F.push(p(K))}return F}),d=a.computed(()=>{const M=D.value;if(M.length===0)return"";const F=M[0],N=M[M.length-1];if(v.value)return`${F.displayYear} - ${N.displayYear}`;if(F.gregorianYear===N.gregorianYear)return F.displayYear;const K=F.displayEra,ne=N.displayEra;return K&&ne&&K===ne?`${K} ${F.displayYear} - ${N.displayYear}`:`${F.displayEra} ${F.displayYear} - ${N.displayEra} ${N.displayYear}`}),$=a.computed(()=>f.value>c.value.min),k=a.computed(()=>f.value+r.pageSize<=c.value.max),O=()=>{$.value&&(f.value=Math.max(f.value-r.pageSize,c.value.min))},H=()=>{k.value&&(f.value=Math.min(f.value+r.pageSize,c.value.max))},U=M=>{b(M)&&(o("year-selected",M),o("update:showSelector",!1))},q=()=>{u.value&&(b(u.value)?(f.value=y(u.value),o("year-selected",u.value),o("update:showSelector",!1),u.value=null):console.warn(`年份 ${u.value} 超出範圍 ${c.value.min}-${c.value.max}`))},j=()=>{const M=Math.max(c.value.min,Math.min(new Date().getFullYear(),c.value.max));o("year-selected",M)},_=M=>l(`yearSelector.${M}`),V=()=>{b(r.selectedYear)&&(f.value=y(r.selectedYear))};a.watch([()=>r.selectedYear,()=>r.calendar],V,{immediate:!0});const R=M=>{if(r.showSelector&&i.value){const F=M.target,N=!!F.closest("[data-year-selector-button]");!i.value.contains(F)&&!N&&o("update:showSelector",!1)}};return a.onMounted(()=>{m(),document.addEventListener("mousedown",R)}),a.onBeforeUnmount(()=>{document.removeEventListener("mousedown",R)}),e({getLocalizedText:_,formatText:s,goToSpecificYear:q,goToValidRange:j}),(M,F)=>M.showSelector?(a.openBlock(),a.createElementBlock("div",{key:0,ref_key:"yearSelectorRef",ref:i,class:"absolute top-full mt-1 right-0 min-w-56 max-h-72 overflow-auto bg-vdt-surface-elevated text-vdt-content border border-vdt-outline rounded-md shadow-lg z-20"},[a.createElementVNode("div",so,[a.createElementVNode("button",{type:"button",onClick:O,class:a.normalizeClass(["p-1 hover:bg-vdt-interactive-hover rounded focus:outline-none",{"opacity-50 cursor-not-allowed":!$.value}]),disabled:!$.value,"aria-label":"previous year"},[a.createVNode(Za,{class:"h-4 w-4"})],10,io),a.createElementVNode("span",co,[a.renderSlot(M.$slots,"year-range-display",{firstYear:T.value,lastYear:x.value,displayText:d.value},()=>[a.createTextVNode(a.toDisplayString(d.value),1)],!0)]),a.createElementVNode("button",{type:"button",onClick:H,class:a.normalizeClass(["p-1 hover:bg-vdt-interactive-hover rounded focus:outline-none",{"opacity-50 cursor-not-allowed":!k.value}]),disabled:!k.value,"aria-label":"next year"},[a.createVNode(Ga,{class:"h-4 w-4"})],10,uo)]),D.value.length>0?(a.openBlock(),a.createElementBlock("div",mo,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(D.value,N=>(a.openBlock(),a.createElementBlock("button",{type:"button",key:N.gregorianYear,onClick:K=>U(N.gregorianYear),class:a.normalizeClass(["p-1 text-xs rounded focus:outline-none focus:ring-1 focus:ring-vdt-theme-500 leading-tight min-h-[2.5rem] flex flex-col justify-center items-center transition duration-200",M.selectedYear===N.gregorianYear?"bg-vdt-theme-500 text-white":"hover:bg-vdt-interactive-hover text-vdt-content",N.displayWarning?"ring-1 ring-amber-400":""]),title:N.warningMessage},[a.renderSlot(M.$slots,"year-display",{yearData:N,isSelected:M.selectedYear===N.gregorianYear},()=>[a.createElementVNode("div",ho,[g.value?(a.openBlock(),a.createElementBlock("div",po,a.toDisplayString(N.displayEra),1)):a.createCommentVNode("",!0),a.createTextVNode(" "+a.toDisplayString(N.displayYear),1)]),N.showReference?(a.openBlock(),a.createElementBlock("div",go,a.toDisplayString(N.referenceYear),1)):a.createCommentVNode("",!0)],!0)],10,fo))),128))])):(a.openBlock(),a.createElementBlock("div",yo,[a.renderSlot(M.$slots,"no-years-display",{calendarRange:c.value,goToValidRange:j},()=>[a.createElementVNode("div",vo,a.toDisplayString(_("noYearsToDisplay")),1),a.createElementVNode("button",{type:"button",onClick:j,class:"text-xs bg-vdt-theme-100 hover:bg-vdt-theme-200 px-3 py-1 rounded text-vdt-theme-700"},a.toDisplayString(_("returnToValidRange")),1)],!0)])),a.createElementVNode("div",$o,[a.renderSlot(M.$slots,"year-input",{yearInput:u.value,calendarRange:c.value,calendarDisplayName:h.value,goToSpecificYear:q,getLocalizedText:_,formatText:a.unref(s)},()=>[a.createElementVNode("div",Do,a.toDisplayString(_("jumpToYear")),1),a.withDirectives(a.createElementVNode("input",{type:"number","onUpdate:modelValue":F[0]||(F[0]=N=>u.value=N),onKeydown:a.withKeys(q,["enter"]),placeholder:_("inputYearPlaceholder"),min:c.value.min,max:c.value.max,class:"w-full p-1 text-sm border border-vdt-outline bg-vdt-surface text-vdt-content rounded focus:outline-none focus:ring-2 focus:ring-vdt-theme-200 focus-within:ring-vdt-theme-500"},null,40,ko),[[a.vModelText,u.value]]),a.createElementVNode("div",bo,a.toDisplayString(a.unref(s)(_("yearRangeInfo"),{calendar:h.value,min:c.value.min,max:c.value.max})),1)],!0)])],512)):a.createCommentVNode("",!0)}}),[["__scopeId","data-v-f14c8987"]]),So={class:"flex justify-between items-center mb-4 gap-2"},wo=["disabled"],To={class:"grow grid grid-cols-2 gap-2"},xo=["value"],Eo={class:"relative"},Co=["disabled"],Yo=a.defineComponent({__name:"CalendarHeader",props:{month:{},year:{},locale:{default:"en-US"},minYear:{default:1900},maxYear:{default:2100},calendar:{default:"gregory"}},emits:["update:month","update:year"],setup(n,{emit:e}){const t=n,r=e,o=a.ref(t.month),l=a.ref(t.year),s=a.ref(!1),i=a.computed(()=>t.calendar||"gregory"),u=a.computed(()=>re.getCalendarRange(t.calendar));a.watch(()=>t.month,p=>{o.value=p},{immediate:!0}),a.watch(()=>t.year,p=>{l.value=p},{immediate:!0});const c=a.computed(()=>{if(t.calendar==="gregory")return l.value.toString();try{const p=new ee(l.value,6,1),b=re.safeToCalendar(p,re.createSafeCalendar(t.calendar));return new ft(t.locale,{calendar:t.calendar,year:"numeric"}).format(b.toDate("UTC"))}catch{return l.value.toString()}}),h=a.computed(()=>re.getMonthNames(t.locale,t.calendar)),v=a.computed(()=>{let p=l.value,b=o.value-1;return b<1&&(b=12,p=l.value-1),p>=u.value.min}),g=a.computed(()=>{let p=l.value,b=o.value+1;return b>12&&(b=1,p=l.value+1),p<=u.value.max}),T=()=>{if(!v.value)return;let p=o.value-1,b=l.value;p<1&&(p=12,b-=1),b>=u.value.min&&S(p,b)},x=()=>{if(!g.value)return;let p=o.value+1,b=l.value;p>12&&(p=1,b+=1),b<=u.value.max&&S(p,b)},f=()=>{S(o.value,l.value)},y=p=>{p!==void 0&&(o.value=p),S(o.value,l.value)},m=p=>{p>=u.value.min&&p<=u.value.max&&(l.value=p,S(o.value,p))},S=(p,b)=>{o.value=p,l.value=b,r("update:month",p),r("update:year",b)},w=()=>{s.value=!s.value};return(p,b)=>(a.openBlock(),a.createElementBlock("div",So,[a.createElementVNode("button",{type:"button",onClick:T,class:"p-2 text-vdt-content-secondary hover:bg-vdt-interactive-hover rounded-full focus:outline-none focus:ring-2 focus:ring-vdt-theme-500 disabled:opacity-50 disabled:cursor-not-allowed","aria-label":"上個月",disabled:!v.value},[a.createVNode(Za,{class:"h-5 w-5"})],8,wo),a.createElementVNode("div",To,[a.renderSlot(p.$slots,"month-selector",{monthNames:h.value,selectedMonth:o.value,onMonthChange:y},()=>[a.withDirectives(a.createElementVNode("select",{"onUpdate:modelValue":b[0]||(b[0]=D=>o.value=D),onChange:f,class:"appearance-none bg-none w-full py-1 px-2 border border-vdt-outline bg-vdt-surface text-vdt-content rounded-sm text-sm focus:ring-2 focus:ring-vdt-theme-200 focus:border-vdt-theme-500","aria-label":"選擇月份",role:"combobox"},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(h.value,(D,d)=>(a.openBlock(),a.createElementBlock("option",{key:d,value:d+1},a.toDisplayString(D),9,xo))),128))],544),[[a.vModelSelect,o.value]])]),a.createElementVNode("div",Eo,[a.renderSlot(p.$slots,"year-selector",{displayYear:c.value,toggleYearSelector:w,showYearSelector:s.value},()=>[a.createElementVNode("button",{type:"button",onClick:w,"data-year-selector-button":"",class:"inline-flex truncate items-center px-2 py-1 bg-vdt-surface text-vdt-content w-full border border-vdt-outline rounded-sm text-sm focus-within:ring-2 focus-within:border-vdt-theme-500 focus-within:ring-vdt-theme-200","aria-label":"選擇年份"},a.toDisplayString(c.value),1)]),a.createVNode(Mo,{"selected-year":l.value,"show-selector":s.value,"onUpdate:showSelector":b[1]||(b[1]=D=>s.value=D),calendar:i.value,locale:p.locale,onYearSelected:m},a.createSlots({_:2},[a.renderList(p.$slots,(D,d)=>({name:d,fn:a.withCtx($=>[a.renderSlot(p.$slots,d,a.normalizeProps(a.guardReactiveProps($)))])}))]),1032,["selected-year","show-selector","calendar","locale"])])]),a.createElementVNode("button",{type:"button",onClick:x,class:"p-2 text-vdt-content-secondary hover:bg-vdt-interactive-hover rounded-full focus:outline-none focus:ring-2 focus:ring-vdt-theme-500 disabled:opacity-50 disabled:cursor-not-allowed","aria-label":"下個月",disabled:!g.value},[a.createVNode(Ga,{class:"h-5 w-5"})],8,Co)]))}}),Ro={class:"grid grid-cols-7 mb-2"},Vo=a.defineComponent({__name:"WeekdayHeader",props:{locale:{default:"en-US"},weekStartsOn:{default:0},calendar:{default:"gregory"}},setup(n){const e=n,t=a.computed(()=>{const r=new Intl.DateTimeFormat(e.locale,{weekday:"short",calendar:e.calendar}),o=new Date(2023,0,1);return Array.from({length:7},(l,s)=>{const i=new Date(o);return i.setDate(o.getDate()+(s+e.weekStartsOn)%7),r.format(i)})});return(r,o)=>(a.openBlock(),a.createElementBlock("div",Ro,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.value,(l,s)=>(a.openBlock(),a.createElementBlock("div",{key:s,class:"text-center text-vdt-content text-sm py-2"},a.toDisplayString(l),1))),128))]))}}),Io={class:"calendar-cell text-center relative"},Bo=["disabled","tabindex","aria-selected","aria-disabled","aria-current","data-in-current-month"],Oo=we(a.defineComponent({__name:"CalendarCell",props:{date:{},currentMonth:{},selected:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},isToday:{type:Boolean,default:!1},focusable:{type:Boolean,default:!1},selectionMode:{default:"single"},isRangeStart:{type:Boolean,default:!1},isRangeEnd:{type:Boolean,default:!1},isInRange:{type:Boolean,default:!1}},emits:["select","nav"],setup(n,{emit:e}){const t=n,r=e,o=a.computed(()=>t.date.month!==t.currentMonth),l=a.computed(()=>{const i={};return i["flex justify-center items-center w-8 h-8 rounded-md mx-auto relative z-10"]=!0,t.disabled?(i["opacity-40 cursor-not-allowed"]=!0,i["bg-vdt-surface text-vdt-content"]=!0,i):(t.selectionMode==="range"?(t.isRangeStart||t.isRangeEnd?i["bg-vdt-theme-500 text-white"]=!0:t.isInRange?i["bg-vdt-outline text-vdt-content"]=!0:(i["bg-vdt-surface text-vdt-content"]=!0,i["hover:bg-vdt-interactive-hover cursor-pointer"]=!0),t.isToday&&!t.isRangeStart&&!t.isRangeEnd&&!t.isInRange&&(i["ring-2 ring-vdt-theme-500"]=!0)):(t.selected?i["bg-vdt-theme-500 text-white"]=!0:(i["bg-vdt-surface text-vdt-content"]=!0,i["hover:bg-vdt-interactive-hover cursor-pointer"]=!0),t.isToday&&!t.selected&&(i["ring-2 ring-vdt-theme-500"]=!0)),o.value&&!t.selected&&!t.isRangeStart&&!t.isRangeEnd&&(i["text-vdt-content-muted"]=!0,i["text-vdt-content"]=!1),i)}),s=()=>{t.disabled||r("select",t.date)};return(i,u)=>(a.openBlock(),a.createElementBlock("div",Io,[a.createElementVNode("button",{type:"button",class:a.normalizeClass(["calendar-cell-button",l.value]),disabled:i.disabled,tabindex:i.focusable?0:-1,"aria-selected":i.selected||i.isRangeStart||i.isRangeEnd,"aria-disabled":i.disabled,"aria-current":i.isToday?"date":void 0,"data-in-current-month":!o.value,onClick:s,onKeydown:[a.withKeys(s,["enter"]),a.withKeys(s,["space"]),u[0]||(u[0]=a.withKeys(c=>r("nav","up"),["up"])),u[1]||(u[1]=a.withKeys(c=>r("nav","down"),["down"])),u[2]||(u[2]=a.withKeys(c=>r("nav","left"),["left"])),u[3]||(u[3]=a.withKeys(c=>r("nav","right"),["right"]))]},a.toDisplayString(i.date.day),43,Bo)]))}}),[["__scopeId","data-v-9018b2ca"]]),Fo={class:"grid grid-cols-7 gap-1"},Po=a.defineComponent({__name:"DateGridView",props:{year:{},month:{},selectedDate:{default:null},rangeStart:{default:null},rangeEnd:{default:null},selectionMode:{default:"single"},minDate:{default:void 0},maxDate:{default:void 0},locale:{default:"en-US"},weekStartsOn:{default:0},calendar:{default:"gregory"}},emits:["select","range-select","navigate"],setup(n,{expose:e,emit:t}){const r=n,o=t,l=a.computed(()=>r.month),s=a.computed(()=>r.year);a.computed(()=>{const f=Fe();return`${f.year}-${f.month}-${f.day}`});const i=a.computed(()=>re.generateCalendarDays(r.year,r.month,r.calendar,r.locale,r.weekStartsOn)),u=f=>{if(!r.rangeStart||!r.rangeEnd)return!1;try{return f.compare(r.rangeStart)>=0&&f.compare(r.rangeEnd)<=0}catch{return!1}},c=(f,y)=>{if(!f||!y)return!1;try{return f.compare(y)===0}catch{return!1}},h=f=>{try{return!!(r.minDate&&f.compare(r.minDate)<0||r.maxDate&&f.compare(r.maxDate)>0)}catch{return!0}},v=f=>Cn(f),g=a.computed(()=>i.value.map((f,y)=>{const m=`${f.year}-${f.month}-${f.day}`,S=v(f),w=f.month!==l.value,p=h(f),b=r.selectionMode==="single"&&c(f,r.selectedDate),D=r.selectionMode==="range"&&c(f,r.rangeStart),d=r.selectionMode==="range"&&c(f,r.rangeEnd),$=r.selectionMode==="range"&&u(f)&&!D&&!d&&!p,k=f.day===1&&f.month===l.value,O=[m,b,S,p,D,d,$,r.selectionMode,r.calendar];return{key:`${r.calendar}-${s.value}-${l.value}-${m}-${y}`,memoKey:O,date:f,isToday:S,isSelected:b,isDisabled:p,isOutsideMonth:w,isRangeStart:D,isRangeEnd:d,isInRange:$,isFocusable:k}})),T=f=>{r.selectionMode==="single"?o("select",f):r.selectionMode==="range"&&o("range-select",f,null)},x=f=>{const y=g.value;if(y.length===0)return;const m=y[0],S=y[y.length-1];switch(f){case"left":m.date.day<15&&m.date.month!==l.value&&o("navigate","prev-month");break;case"right":S.date.day>15&&S.date.month!==l.value&&o("navigate","next-month");break}};return e({getCalendarDays:()=>i.value,getCellStates:()=>g.value}),(f,y)=>(a.openBlock(),a.createElementBlock("div",Fo,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(g.value,(m,S,w,p)=>{const b=m.memoKey;if(p&&p.key===m.key&&a.isMemoSame(p,b))return p;const D=(a.openBlock(),a.createBlock(Oo,{key:m.key,date:m.date,"current-month":l.value,selected:m.isSelected,"is-today":m.isToday,disabled:m.isDisabled,focusable:m.isFocusable,"is-range-start":m.isRangeStart,"is-range-end":m.isRangeEnd,"is-in-range":m.isInRange,"selection-mode":f.selectionMode,onSelect:T,onNav:x},null,8,["date","current-month","selected","is-today","disabled","focusable","is-range-start","is-range-end","is-in-range","selection-mode"]));return D.memo=b,D},y,0),128))]))}}),No={key:0},Ao={class:"flex flex-row items-center justify-between"},Lo={class:"text-sm font-medium text-vdt-content uppercase"},Ho={class:"flex flex-row items-center gap-1"},qo={class:"time-selector-container pt-1"},Uo={class:"flex flex-row items-center gap-1"},zo={class:"flex-1"},Wo=["value"],_o={class:"flex-1"},Jo=["value"],jo={key:0,class:"flex-1"},Ko=["value"],Qo={key:1,class:"flex-shrink-0"},Zo={class:"isolate inline-flex rounded-md border border-vdt-outline bg-vdt-surface overflow-hidden"},Go=a.defineComponent({__name:"TimeSelector",props:{show:{type:Boolean,default:!0},timeValue:{default:null},enableSeconds:{type:Boolean,default:!0},use24Hour:{type:Boolean,default:!1},defaultTime:{default:"00:00:00"},locale:{default:"zh-TW"},selectionMode:{default:"single"}},emits:["time-change","today-click"],setup(n,{expose:e,emit:t}){const r=n,o=t,{getPlaceholderMessage:l}=je(r.locale),s=a.ref(0),i=a.ref(0),u=a.ref(0),c=a.ref("AM"),h=a.ref(!1),v=a.computed(()=>r.use24Hour?Array.from({length:24},(d,$)=>$):Array.from({length:12},(d,$)=>$+1)),g=a.computed(()=>Array.from({length:60},(d,$)=>$)),T=a.computed(()=>Array.from({length:60},(d,$)=>$)),x=a.computed(()=>{let d=s.value;r.use24Hour||(c.value==="PM"&&d<12?d+=12:c.value==="AM"&&d===12&&(d=0));const $=f(d),k=f(i.value);if(r.enableSeconds){const O=f(u.value);return`${$}:${k}:${O}`}else return`${$}:${k}`}),f=d=>d.toString().padStart(2,"0"),y=d=>f(d),m=d=>{if(!d)return;const[$,k,O]=d.split(":");let H=parseInt($)||0;r.use24Hour||(H>=12?(c.value="PM",H=H===12?12:H-12):(c.value="AM",H=H===0?12:H)),s.value=H,i.value=parseInt(k)||0,r.enableSeconds&&O&&(u.value=parseInt(O)||0),h.value=!0},S=()=>{m(r.defaultTime)},w=d=>{c.value=d},p=d=>{const $=new Date;return $.setHours(d==="AM"?6:18,0,0,0),new Intl.DateTimeFormat(r.locale||navigator.language,{hour12:!0,hour:"numeric"}).formatToParts($).find(U=>U.type==="dayPeriod")?.value||d},b=()=>{const d=new Date;if(r.use24Hour)s.value=d.getHours();else{const $=d.getHours();c.value=$>=12?"PM":"AM",s.value=$%12||12}i.value=d.getMinutes(),r.enableSeconds&&(u.value=d.getSeconds()),h.value=!0},D=()=>{o("today-click")};return a.watch(()=>r.timeValue,d=>{d?m(d):!h.value&&r.show&&S()},{immediate:!0}),a.watch([s,i,u,c],()=>{h.value&&o("time-change",x.value)}),e({getCurrentTime:()=>x.value,setTime:d=>m(d),resetToDefault:()=>S()}),(d,$)=>d.show?(a.openBlock(),a.createElementBlock("div",No,[$[5]||($[5]=a.createElementVNode("hr",{class:"my-2 border-vdt-outline"},null,-1)),a.createElementVNode("div",Ao,[a.createElementVNode("label",Lo,a.toDisplayString(a.unref(l)("general.time"))+": ",1),a.createElementVNode("div",Ho,[a.createElementVNode("button",{type:"button",onClick:b,class:"px-2 py-1 text-xs transition-colors rounded-sm bg-vdt-outline text-vdt-content hover:bg-vdt-interactive-active cursor-pointer"}," Now "),d.selectionMode==="single"?(a.openBlock(),a.createElementBlock("button",{key:0,type:"button",onClick:D,class:"px-2 py-1 text-xs transition-colors rounded-sm bg-vdt-outline text-vdt-content hover:bg-vdt-interactive-active cursor-pointer"}," Today ")):a.createCommentVNode("",!0)])]),a.createElementVNode("div",qo,[a.createElementVNode("div",Uo,[a.createElementVNode("div",zo,[a.withDirectives(a.createElementVNode("select",{"onUpdate:modelValue":$[0]||($[0]=k=>s.value=k),class:"appearance-none bg-none w-full py-1 px-2 border border-vdt-outline bg-vdt-surface text-vdt-content rounded-sm text-sm focus:ring-2 focus:ring-vdt-theme-200 focus:border-vdt-theme-500"},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(v.value,k=>(a.openBlock(),a.createElementBlock("option",{key:k,value:k},a.toDisplayString(y(k)),9,Wo))),128))],512),[[a.vModelSelect,s.value]])]),a.createElementVNode("div",_o,[a.withDirectives(a.createElementVNode("select",{"onUpdate:modelValue":$[1]||($[1]=k=>i.value=k),class:"appearance-none bg-none w-full py-1 px-2 border border-vdt-outline bg-vdt-surface text-vdt-content rounded-sm text-sm focus:ring-2 focus:ring-vdt-theme-200 focus:border-vdt-theme-500"},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(g.value,k=>(a.openBlock(),a.createElementBlock("option",{key:k,value:k},a.toDisplayString(f(k)),9,Jo))),128))],512),[[a.vModelSelect,i.value]])]),d.enableSeconds?(a.openBlock(),a.createElementBlock("div",jo,[a.withDirectives(a.createElementVNode("select",{"onUpdate:modelValue":$[2]||($[2]=k=>u.value=k),class:"appearance-none bg-none w-full py-1 px-2 border border-vdt-outline bg-vdt-surface text-vdt-content rounded-sm text-sm focus:ring-2 focus:ring-vdt-theme-200 focus:border-vdt-theme-500"},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(T.value,k=>(a.openBlock(),a.createElementBlock("option",{key:k,value:k},a.toDisplayString(f(k)),9,Ko))),128))],512),[[a.vModelSelect,u.value]])])):a.createCommentVNode("",!0),d.use24Hour?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("div",Qo,[a.createElementVNode("div",Zo,[a.createElementVNode("button",{type:"button",onClick:$[3]||($[3]=k=>w("AM")),class:a.normalizeClass(["px-2 py-1 text-sm transition-colors",c.value==="AM"?"bg-vdt-theme-500 text-white":"text-vdt-content hover:bg-vdt-interactive-hover"])},a.toDisplayString(p("AM")),3),a.createElementVNode("button",{type:"button",onClick:$[4]||($[4]=k=>w("PM")),class:a.normalizeClass(["px-2 py-1 text-sm transition-colors",c.value==="PM"?"bg-vdt-theme-500 text-white":"text-vdt-content hover:bg-vdt-interactive-hover"])},a.toDisplayString(p("PM")),3)])]))])])])):a.createCommentVNode("",!0)}}),Xo={class:"vdt-date-picker calendar-grid w-full max-w-xs rounded-lg shadow p-2"},zt=a.defineComponent({__name:"CalendarGrid",props:{value:{default:null},rangeStart:{default:null},rangeEnd:{default:null},selectionMode:{default:"single"},year:{default:void 0},month:{default:void 0},minDate:{default:void 0},maxDate:{default:void 0},locale:{default:"en-US"},weekStartsOn:{default:0},showTimeSelector:{type:Boolean,default:!1},timeValue:{default:null},enableSeconds:{type:Boolean,default:!0},use24Hour:{type:Boolean,default:!1},defaultTime:{default:"00:00:00"},calendar:{default:"gregory"}},emits:["select","time-select","range-select"],setup(n,{expose:e,emit:t}){const r=n,o=t,l=()=>{if(r.year!==void 0&&r.month!==void 0)return{year:r.year,month:r.month};if(r.value)return{year:r.value.year,month:r.value.month};if(r.rangeStart)return{year:r.rangeStart.year,month:r.rangeStart.month};const d=Fe();return{year:d.year,month:d.month}},{year:s,month:i}=l(),u=a.ref(s),c=a.ref(i),h=a.ref(r.timeValue),v=a.computed(()=>re.convertToCalendarDate(r.value,r.calendar)),g=a.computed(()=>re.convertToCalendarDate(r.rangeStart,r.calendar)),T=a.computed(()=>re.convertToCalendarDate(r.rangeEnd,r.calendar)),x=a.computed(()=>re.convertToCalendarDate(r.minDate||null,r.calendar)),f=a.computed(()=>re.convertToCalendarDate(r.maxDate||null,r.calendar)),y=a.computed(()=>r.minDate?.year||1900),m=a.computed(()=>r.maxDate?.year||2100),S=a.computed(()=>{if(r.year!==void 0&&r.month!==void 0)return{year:r.year,month:r.month};const d=r.selectionMode==="range"?r.rangeStart:r.value;return d?{year:d.year,month:d.month}:{year:u.value,month:c.value}});a.watch(S,({year:d,month:$})=>{u.value=d,c.value=$},{immediate:!0}),a.watch(()=>r.timeValue,d=>{h.value=d},{immediate:!0});const w=d=>{if(r.selectionMode==="single"){const $=re.convertFromCalendarDate(d,r.calendar);$&&(o("select",$,!0),r.showTimeSelector&&h.value&&o("time-select",h.value))}},p=(d,$)=>{if(r.selectionMode==="range"){const k=re.convertFromCalendarDate(d,r.calendar),O=re.convertFromCalendarDate($,r.calendar);o("range-select",k,O)}},b=d=>{h.value=d,o("time-select",d)},D=()=>{if(r.selectionMode==="single"){const d=Fe();u.value=d.year,c.value=d.month,o("select",d,!1)}};return e({getSelectedDate:()=>r.value,getSelectedRange:()=>({start:r.rangeStart,end:r.rangeEnd}),setDisplayMonth:(d,$)=>{u.value=d,c.value=$},previousMonth:()=>{c.value===1?(c.value=12,u.value-=1):c.value-=1},nextMonth:()=>{c.value===12?(c.value=1,u.value+=1):c.value+=1}}),(d,$)=>(a.openBlock(),a.createElementBlock("div",Xo,[a.createVNode(Yo,{month:c.value,"onUpdate:month":$[0]||($[0]=k=>c.value=k),year:u.value,"onUpdate:year":$[1]||($[1]=k=>u.value=k),locale:d.locale,"min-year":y.value,"max-year":m.value,calendar:d.calendar},a.createSlots({_:2},[a.renderList(d.$slots,(k,O)=>({name:O,fn:a.withCtx(H=>[a.renderSlot(d.$slots,O,a.normalizeProps(a.guardReactiveProps(H)))])}))]),1032,["month","year","locale","min-year","max-year","calendar"]),a.createVNode(Vo,{locale:d.locale,"week-starts-on":d.weekStartsOn,calendar:d.calendar},null,8,["locale","week-starts-on","calendar"]),a.createVNode(Po,{year:u.value,month:c.value,"selected-date":v.value,"range-start":g.value,"range-end":T.value,"selection-mode":d.selectionMode,"min-date":x.value,"max-date":f.value,locale:d.locale,"week-starts-on":d.weekStartsOn,calendar:d.calendar,onSelect:w,onRangeSelect:p},null,8,["year","month","selected-date","range-start","range-end","selection-mode","min-date","max-date","locale","week-starts-on","calendar"]),a.createVNode(Go,{locale:d.locale,show:d.showTimeSelector,"time-value":h.value,"enable-seconds":d.enableSeconds,"use24-hour":d.use24Hour,"default-time":d.defaultTime,selectionMode:d.selectionMode,onTimeChange:b,onTodayClick:D},null,8,["locale","show","time-value","enable-seconds","use24-hour","default-time","selectionMode"])]))}}),el={},tl={xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"};function al(n,e){return a.openBlock(),a.createElementBlock("svg",tl,e[0]||(e[0]=[a.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"},null,-1)]))}const Xa=we(el,[["render",al]]);function Wt(n,e){const{dateInputRef:t,timeInputRef:r}=n,{showTime:o,autoFocusTimeAfterDate:l=!0}=e;return{focusFirstInput:()=>{a.nextTick(()=>{t.value?.focus&&t.value.focus()})},focusLastInput:()=>{a.nextTick(()=>{o&&r.value?.focusLast?r.value.focusLast():t.value?.focusLast?t.value.focusLast():t.value?.focus&&t.value.focus()})},handleNavigateToTime:v=>{o&&a.nextTick(()=>{r.value?.focus&&r.value.focus()})},handleNavigateToDate:()=>{a.nextTick(()=>{t.value?.focusLast?t.value.focusLast():t.value?.focus&&t.value.focus()})},autoFocusTimeAfterDateComplete:(v,g)=>{!o||!l||(g&&!v.inputTimeValue.value&&(v.inputTimeValue.value=g,v.updateFromInputs()),a.nextTick(()=>{r.value?.focus&&r.value.focus()}))}}}function _t(n={}){const{required:e=!0,showTime:t=!1,minDate:r,maxDate:o,dateFormat:l="YYYY-MM-DD"}=n,s=a.ref({}),i=a.ref({}),u=a.ref({}),c=a.computed(()=>({...s.value,...i.value})),h=a.computed(()=>({...u.value})),v=a.computed(()=>Object.keys(c.value).length>0),g=(b,D,d="date",$={})=>{["date","year","month","day"].forEach(k=>{f(`${d}.${k}`),y(`${d}.${k}`)}),b||Object.entries(D).forEach(([k,O])=>{const H=`${d}.${k}`;s.value[H]=O,$[k]&&(u.value[H]=$[k])})},T=(b,D,d="time",$={})=>(["time","hour","minute","second"].forEach(k=>{f(`${d}.${k}`),y(`${d}.${k}`)}),b||Object.entries(D).forEach(([k,O])=>{const H=`${d}.${k}`;s.value[H]=O,$[k]&&(u.value[H]=$[k])}),!v.value),x=b=>{if(!b)return!1;if(r){const D=oe(r);if(D&&pt(b,D)<0)return g(!1,{date:"date.beforeMin"},"date",{date:{minDate:de(D,l)}}),!1}if(o){const D=oe(o);if(D&&pt(b,D)>0)return g(!1,{date:"date.afterMax"},"date",{date:{maxDate:de(D,l)}}),!1}return!0},f=b=>{Object.keys(s.value).forEach(D=>{D.startsWith(b)&&delete s.value[D]})},y=b=>{Object.keys(u.value).forEach(D=>{D.startsWith(b)&&delete u.value[D]})};return{errors:s,formatErrors:i,mergedErrors:c,hasErrors:v,errorParams:u,mergedErrorParams:h,handleDateValidation:g,handleTimeValidation:T,validateDateTime:(b,D)=>{const d={isValid:!0,errors:{}};return e&&(b||(d.errors.date="date.required",d.isValid=!1),t&&!D&&(d.errors.time="time.required",d.isValid=!1)),Object.assign(s.value,d.errors),d.isValid&&!v.value},validateDateRange:x,clearFieldErrors:f,clearFieldParams:y,clearAllErrors:()=>{s.value={},i.value={},u.value={}},setFormatError:(b,D)=>{i.value[b]=D},clearFormatError:b=>{delete i.value[b]}}}function Jt(n={}){const{showTime:e=!1,dateFormat:t="YYYY-MM-DD",timeFormat:r="HH:mm:ss",outputType:o="iso",defaultTime:l,enableSeconds:s=!0}=n,i=a.ref(null),u=a.ref(null),c=a.ref(null),h=d=>{if(!d||d.hour===void 0)return null;const $=d.hour.toString().padStart(2,"0"),k=(d.minute||0).toString().padStart(2,"0");if(s){const O=(d.second||0).toString().padStart(2,"0");return`${$}:${k}:${O}`}else return`${$}:${k}`},v=(d,$)=>{if(!d)return null;const k=oe(d);if(!k)return null;if(!$&&!e)return De(k.year,k.month,k.day);if(!$)if(l){const j=l.split(":").map(Number),_=j[0]||0,V=j[1]||0,R=j[2]||0;return De(k.year,k.month,k.day,_,V,R)}else return De(k.year,k.month,k.day);const O=$.split(":").map(Number),H=O[0]||0,U=O[1]||0,q=O[2]||0;return De(k.year,k.month,k.day,H,U,q)},g=d=>{const $=oe(d);i.value=$,$?(u.value=de($,t),c.value=h($)):(u.value=null,c.value=null)},T=(d,$)=>{const k=d!==void 0?d:u.value,O=$!==void 0?$:c.value,H=v(k,O);return i.value=H,H},x=d=>{if(!d){i.value=null,u.value=null,c.value=null;return}if(e&&l&&(d.hour===void 0||d.hour===null)&&!c.value){const $=l.split(":").map(Number),k=$[0]||0,O=$[1]||0,H=$[2]||0,U=De(d.year,d.month,d.day,k,O,H);i.value=U,c.value=l}else i.value=d,c.value=h(d);i.value&&(u.value=de(i.value))},f=d=>{if(!i.value)return null;const $=d.split(":").map(Number),k={...i.value,hour:$[0]||0,minute:$[1]||0,second:$[2]||0};return i.value=k,c.value=d,k},y=d=>{const $=d!==void 0?d:i.value,k=e?`${t} ${r}`:t;return ht($,o,k)},m=()=>{i.value=null,u.value=null,c.value=null},S=a.computed(()=>!!(u.value||c.value||i.value)),w=()=>e&&!c.value&&l?(c.value=l,!0):!1,p=a.computed(()=>!!u.value),b=a.computed(()=>!!c.value),D=a.computed(()=>e?p.value&&b.value:p.value);return{internalDateTime:i,inputDateValue:u,inputTimeValue:c,hasDateValue:p,hasTimeValue:b,hasCompleteValue:D,hasValue:S,updateFromInputs:T,setInternalDateTime:x,updateTimeOnly:f,setExternalValue:g,getFormattedOutput:y,clearValues:m,applyDefaultTime:w,getTimeFromDateTime:h,createDateTimeFromInputs:v}}function er(n,e,t={}){const{disabled:r,onOutsideClick:o}=t,l=a.ref(!1),s=()=>{r?.value||(l.value=!l.value,l.value&&a.nextTick(()=>{c()}))},i=()=>{r?.value||(l.value=!0,a.nextTick(()=>{c()}))},u=()=>{l.value=!1},c=()=>{if(!n.value||!e.value)return;const f=n.value.getBoundingClientRect(),y=e.value,m={width:window.innerWidth,height:window.innerHeight};y.style.position="absolute",y.style.visibility="hidden",y.style.display="block";const S=y.getBoundingClientRect();let w=f.height+5,p=0;const b=m.height-f.bottom,D=f.top,d=S.height;b<d&&D>b&&(w=-d-5);const $=m.width-f.left,k=S.width;$<k&&(p=Math.max(-(k-$+10),-f.left+10)),f.left+p<0&&(p=-f.left+10),y.style.top=`${w}px`,y.style.left=`${p}px`,y.style.zIndex="50",y.style.visibility="visible"},h=f=>{const y=e.value,m=n.value,S=f.target;l.value&&y&&!y.contains(S)&&m&&!m.contains(S)&&(u(),o?.())},v=(f,y)=>{if(r?.value)return;const m=f.target;m.classList.contains("date-input")||m.classList.contains("time-input")||m.closest("input")||m.closest("button")||(f.preventDefault(),y?.())},g=f=>{if(r?.value)return;const y=f.target;y.classList.contains("date-input")||y.classList.contains("time-input")||y.closest("input")||y.closest("button")||f.preventDefault()},T=()=>{l.value&&c()},x=()=>{l.value&&c()};return a.onMounted(()=>{document.addEventListener("mousedown",h),window.addEventListener("resize",T),window.addEventListener("scroll",x)}),a.onBeforeUnmount(()=>{document.removeEventListener("mousedown",h),window.removeEventListener("resize",T),window.removeEventListener("scroll",x)}),{showCalendar:l,toggleCalendar:s,showCalendarPopup:i,hideCalendar:u,updateCalendarPosition:c,handleContainerClick:v,handleContainerMouseDown:g}}function rl(n={}){const{customDefaultTime:e="00:00:00",enableSeconds:t=!0}=n,r=c=>{if(!c)return!1;if(!/^([0-1]?[0-9]|2[0-3]):([0-5]?[0-9])(?::([0-5]?[0-9]))?$/.test(c))return console.warn(`時間格式不正確: ${c},應為 HH:mm:ss 或 HH:mm 格式`),!1;const v=c.split(":"),g=parseInt(v[0]),T=parseInt(v[1]),x=v[2]?parseInt(v[2]):0;return g<0||g>23||T<0||T>59||x<0||x>59?(console.warn(`時間值超出範圍: ${c}`),!1):!0},o=(c,h=t)=>{const v=c.split(":"),g=v[0].padStart(2,"0"),T=v[1].padStart(2,"0"),x=v[2]?v[2].padStart(2,"0"):"00";return h?`${g}:${T}:${x}`:`${g}:${T}`};return{getValidDefaultTime:a.computed(()=>{if(e&&r(e))return o(e,t)}),isValidTimeValue:r,formatTimeString:o,getCurrentTimeString:()=>{const c=new Date,h=c.getHours().toString().padStart(2,"0"),v=c.getMinutes().toString().padStart(2,"0"),g=c.getSeconds().toString().padStart(2,"0");return t?`${h}:${v}:${g}`:`${h}:${v}`},parseTimeString:c=>{const h=c.split(":");return{hours:parseInt(h[0])||0,minutes:parseInt(h[1])||0,seconds:parseInt(h[2])||0}},buildTimeString:(c,h,v=0)=>{const g=c.toString().padStart(2,"0"),T=h.toString().padStart(2,"0"),x=v.toString().padStart(2,"0");return t?`${g}:${T}:${x}`:`${g}:${T}`}}}function nl(n={},e){const{modelValue:t=null,showTime:r=!1,required:o=!0,disabled:l=!1,dateFormat:s="YYYY-MM-DD",timeFormat:i="HH:mm:ss",useStrictISO:u=!1,customDefaultTime:c,enableSeconds:h=!0,autoFocusTimeAfterDate:v=!0,minDate:g,maxDate:T}=n,{containerRef:x,calendarRef:f,dateInputRef:y,timeInputRef:m}=e,S=a.computed(()=>n.calendar?.value||"gregory"),w=a.computed(()=>n.locale?.value||"zh-TW"),p=a.computed(()=>n.outputType?.value||"iso"),b=a.ref(l),D=_t({required:o,showTime:r,minDate:g,maxDate:T,dateFormat:s}),d=Jt({showTime:r,dateFormat:s,timeFormat:i,outputType:p.value,defaultTime:c,enableSeconds:h}),$=Wt({dateInputRef:y,timeInputRef:m},{showTime:r,autoFocusTimeAfterDate:v}),k=er(x,f,{disabled:b,onOutsideClick:()=>{}}),O=rl({customDefaultTime:c,enableSeconds:h}),H=a.computed(()=>{const L=oe(g,w.value);return L||null}),U=a.computed(()=>{const L=oe(T,w.value);return L||null});let q=null,j=null,_=null;const V=L=>{q=L.update||null,j=L.change||null,_=L.validation||null},R=async(L=d.internalDateTime.value)=>{let z=null;if(L){const le=r?i:void 0;z=ht(L,p.value,s,le,r,S.value,w.value,u,h)}q?.(z),j?.(z);const Z=!D.hasErrors.value;_?.(Z,D.mergedErrors.value,D.errorParams.value)};a.watch(()=>t,L=>{const z=oe(L,w.value,S.value);L&&!z?(D.handleDateValidation(!1,{date:"無效的日期格式"}),d.setExternalValue(null)):z&&!D.validateDateRange(z)?d.setExternalValue(null):(D.clearFieldErrors("date"),D.clearFieldErrors("invalidInput"),d.setExternalValue(z))},{immediate:!0});const M=(L,z,Z={})=>{D.handleDateValidation(L,z,"date",Z),_?.(!D.hasErrors.value,D.mergedErrors.value,D.errorParams.value)},F=(L,z,Z={})=>{D.handleTimeValidation(L,z,"time",Z),_?.(!D.hasErrors.value,D.mergedErrors.value,D.errorParams.value)},N=async L=>{d.inputDateValue.value=L;const z=d.updateFromInputs();if(!z){D.handleDateValidation(!1,{date:"date.invalid"});return}D.validateDateRange(z)&&(await R(z),["date","year","month","day"].forEach(Z=>{D.clearFieldErrors(Z)}),$.autoFocusTimeAfterDateComplete(d,c?O.getValidDefaultTime.value:void 0))},K=async L=>{d.inputTimeValue.value=L;const z=d.updateFromInputs();await R(z),["time","hour","minute","second"].forEach(Z=>{D.clearFieldErrors(Z)})},ne=async(L,z=!0)=>{try{if(!D.validateDateRange(L))return;d.setInternalDateTime(L),await R(d.internalDateTime.value),["date","year","month","day"].forEach(Z=>{D.clearFieldErrors(Z)}),z&&k.hideCalendar()}catch(Z){console.error("處理日曆選擇失敗:",Z)}},te=async L=>{const z=d.updateTimeOnly(L);z&&await R(z),["time","hour","minute","second"].forEach(Z=>{D.clearFieldErrors(Z)})},Y=L=>{k.handleContainerClick(L,()=>{$.focusFirstInput()}),k.toggleCalendar()},C=()=>{d.clearValues(),D.clearAllErrors(),R(null)},P=async()=>{const L=await y.value?.validate(),z=r?await m.value?.validate():!0;let Z=!0;d.internalDateTime.value&&(Z=re.isValidDate(d.internalDateTime.value.year,d.internalDateTime.value.month,d.internalDateTime.value.day,"gregory"),Z||D.handleDateValidation(!1,{date:"date.invalid"}));const le=D.validateDateTime(d.inputDateValue.value,d.inputTimeValue.value),se=L&&z&&Z&&le;return _?.(se,D.mergedErrors.value,D.errorParams.value),se},Q=async()=>{const L=new Date,z={year:L.getFullYear(),month:L.getMonth()+1,day:L.getDate(),hour:L.getHours(),minute:L.getMinutes(),second:L.getSeconds()};try{d.setInternalDateTime(z),await R(z),["date","year","month","day","time","hour","minute","second"].forEach(Z=>{D.clearFieldErrors(Z)})}catch(Z){console.warn("設置當前時間失敗:",Z);const le=`${z.year}-${z.month.toString().padStart(2,"0")}-${z.day.toString().padStart(2,"0")}`,se=r?`${(z.hour||0).toString().padStart(2,"0")}:${(z.minute||0).toString().padStart(2,"0")}:${(z.second||0).toString().padStart(2,"0")}`:null;d.inputDateValue.value=le,r&&se&&(d.inputTimeValue.value=se);const me=d.updateFromInputs();await R(me)}},W=()=>{$.focusFirstInput()};return{isDisabled:b,calendar:S,...D,...d,...k,calendarMinDate:H,calendarMaxDate:U,getValidDefaultTime:O.getValidDefaultTime,setEmitters:V,validateDateInput:M,validateTimeInput:F,handleDateComplete:N,handleTimeComplete:K,handleCalendarSelect:ne,handleTimeSelect:te,handleContainerClick:Y,handleContainerMouseDown:k.handleContainerMouseDown,handleNavigateToDate:$.handleNavigateToDate,handleNavigateToTime:$.handleNavigateToTime,reset:C,validate:P,selectNow:Q,focus:W,focusFirstInput:$.focusFirstInput,focusLastInput:$.focusLastInput}}const jt={slate:{50:"oklch(98.4% 0.003 247.858)",100:"oklch(96.8% 0.007 247.896)",200:"oklch(92.9% 0.013 255.508)",300:"oklch(86.9% 0.022 252.894)",400:"oklch(70.4% 0.04 256.788)",500:"oklch(55.4% 0.046 257.417)",600:"oklch(44.6% 0.043 257.281)",700:"oklch(37.2% 0.044 257.287)",800:"oklch(27.9% 0.041 260.031)",900:"oklch(20.8% 0.042 265.755)",950:"oklch(12.9% 0.042 264.695)"},gray:{50:"oklch(98.5% 0.002 247.839)",100:"oklch(96.7% 0.003 264.542)",200:"oklch(92.8% 0.006 264.531)",300:"oklch(87.2% 0.01 258.338)",400:"oklch(70.7% 0.022 261.325)",500:"oklch(55.1% 0.027 264.364)",600:"oklch(44.6% 0.03 256.802)",700:"oklch(37.3% 0.034 259.733)",800:"oklch(27.8% 0.033 256.848)",900:"oklch(21% 0.034 264.665)",950:"oklch(13% 0.028 261.692)"},zinc:{50:"oklch(98.5% 0 0)",100:"oklch(96.7% 0.001 286.375)",200:"oklch(92% 0.004 286.32)",300:"oklch(87.1% 0.006 286.286)",400:"oklch(70.5% 0.015 286.067)",500:"oklch(55.2% 0.016 285.938)",600:"oklch(44.2% 0.017 285.786)",700:"oklch(37% 0.013 285.805)",800:"oklch(27.4% 0.006 286.033)",900:"oklch(21% 0.006 285.885)",950:"oklch(14.1% 0.005 285.823)"},neutral:{50:"oklch(98.5% 0 0)",100:"oklch(97% 0 0)",200:"oklch(92.2% 0 0)",300:"oklch(87% 0 0)",400:"oklch(70.8% 0 0)",500:"oklch(55.6% 0 0)",600:"oklch(43.9% 0 0)",700:"oklch(37.1% 0 0)",800:"oklch(26.9% 0 0)",900:"oklch(20.5% 0 0)",950:"oklch(14.5% 0 0)"},stone:{50:"oklch(98.5% 0.001 106.423)",100:"oklch(97% 0.001 106.424)",200:"oklch(92.3% 0.003 48.717)",300:"oklch(86.9% 0.005 56.366)",400:"oklch(70.9% 0.01 56.259)",500:"oklch(55.3% 0.013 58.071)",600:"oklch(44.4% 0.011 73.639)",700:"oklch(37.4% 0.01 67.558)",800:"oklch(26.8% 0.007 34.298)",900:"oklch(21.6% 0.006 56.043)",950:"oklch(14.7% 0.004 49.25)"},red:{50:"oklch(97.1% 0.013 17.38)",100:"oklch(93.6% 0.032 17.717)",200:"oklch(88.5% 0.062 18.334)",300:"oklch(80.8% 0.114 19.571)",400:"oklch(70.4% 0.191 22.216)",500:"oklch(63.7% 0.237 25.331)",600:"oklch(57.7% 0.245 27.325)",700:"oklch(50.5% 0.213 27.518)",800:"oklch(44.4% 0.177 26.899)",900:"oklch(39.6% 0.141 25.723)",950:"oklch(25.8% 0.092 26.042)"},orange:{50:"oklch(98% 0.016 73.684)",100:"oklch(95.4% 0.038 75.164)",200:"oklch(90.1% 0.076 70.697)",300:"oklch(83.7% 0.128 66.29)",400:"oklch(75% 0.183 55.934)",500:"oklch(70.5% 0.213 47.604)",600:"oklch(64.6% 0.222 41.116)",700:"oklch(55.3% 0.195 38.402)",800:"oklch(47% 0.157 37.304)",900:"oklch(40.8% 0.123 38.172)",950:"oklch(26.6% 0.079 36.259)"},amber:{50:"oklch(98.7% 0.022 95.277)",100:"oklch(96.2% 0.059 95.617)",200:"oklch(92.4% 0.12 95.746)",300:"oklch(87.9% 0.169 91.605)",400:"oklch(82.8% 0.189 84.429)",500:"oklch(76.9% 0.188 70.08)",600:"oklch(66.6% 0.179 58.318)",700:"oklch(55.5% 0.163 48.998)",800:"oklch(47.3% 0.137 46.201)",900:"oklch(41.4% 0.112 45.904)",950:"oklch(27.9% 0.077 45.635)"},yellow:{50:"oklch(98.7% 0.026 102.212)",100:"oklch(97.3% 0.071 103.193)",200:"oklch(94.5% 0.129 101.54)",300:"oklch(90.5% 0.182 98.111)",400:"oklch(85.2% 0.199 91.936)",500:"oklch(79.5% 0.184 86.047)",600:"oklch(68.1% 0.162 75.834)",700:"oklch(55.4% 0.135 66.442)",800:"oklch(47.6% 0.114 61.907)",900:"oklch(42.1% 0.095 57.708)",950:"oklch(28.6% 0.066 53.813)"},lime:{50:"oklch(98.6% 0.031 120.757)",100:"oklch(96.7% 0.067 122.328)",200:"oklch(93.8% 0.127 124.321)",300:"oklch(89.7% 0.196 126.665)",400:"oklch(84.1% 0.238 128.85)",500:"oklch(76.8% 0.233 130.85)",600:"oklch(64.8% 0.2 131.684)",700:"oklch(53.2% 0.157 131.589)",800:"oklch(45.3% 0.124 130.933)",900:"oklch(40.5% 0.101 131.063)",950:"oklch(27.4% 0.072 132.109)"},green:{50:"oklch(98.2% 0.018 155.826)",100:"oklch(96.2% 0.044 156.743)",200:"oklch(92.5% 0.084 155.995)",300:"oklch(87.1% 0.15 154.449)",400:"oklch(79.2% 0.209 151.711)",500:"oklch(72.3% 0.219 149.579)",600:"oklch(62.7% 0.194 149.214)",700:"oklch(52.7% 0.154 150.069)",800:"oklch(44.8% 0.119 151.328)",900:"oklch(39.3% 0.095 152.535)",950:"oklch(26.6% 0.065 152.934)"},emerald:{50:"oklch(97.9% 0.021 166.113)",100:"oklch(95% 0.052 163.051)",200:"oklch(90.5% 0.093 164.15)",300:"oklch(84.5% 0.143 164.978)",400:"oklch(76.5% 0.177 163.223)",500:"oklch(69.6% 0.17 162.48)",600:"oklch(59.6% 0.145 163.225)",700:"oklch(50.8% 0.118 165.612)",800:"oklch(43.2% 0.095 166.913)",900:"oklch(37.8% 0.077 168.94)",950:"oklch(26.2% 0.051 172.552)"},teal:{50:"oklch(98.4% 0.014 180.72)",100:"oklch(95.3% 0.051 180.801)",200:"oklch(91% 0.096 180.426)",300:"oklch(85.5% 0.138 181.071)",400:"oklch(77.7% 0.152 181.912)",500:"oklch(70.4% 0.14 182.503)",600:"oklch(60% 0.118 184.704)",700:"oklch(51.1% 0.096 186.391)",800:"oklch(43.7% 0.078 188.216)",900:"oklch(38.6% 0.063 188.416)",950:"oklch(27.7% 0.046 192.524)"},cyan:{50:"oklch(98.4% 0.019 200.873)",100:"oklch(95.6% 0.045 203.388)",200:"oklch(91.7% 0.08 205.041)",300:"oklch(86.5% 0.127 207.078)",400:"oklch(78.9% 0.154 211.53)",500:"oklch(71.5% 0.143 215.221)",600:"oklch(60.9% 0.126 221.723)",700:"oklch(52% 0.105 223.128)",800:"oklch(45% 0.085 224.283)",900:"oklch(39.8% 0.07 227.392)",950:"oklch(30.2% 0.056 229.695)"},sky:{50:"oklch(97.7% 0.013 236.62)",100:"oklch(95.1% 0.026 236.824)",200:"oklch(90.1% 0.058 230.902)",300:"oklch(82.8% 0.111 230.318)",400:"oklch(74.6% 0.16 232.661)",500:"oklch(68.5% 0.169 237.323)",600:"oklch(58.8% 0.158 241.966)",700:"oklch(50% 0.134 242.749)",800:"oklch(44.3% 0.11 240.79)",900:"oklch(39.1% 0.09 240.876)",950:"oklch(29.3% 0.066 243.157)"},blue:{50:"oklch(97% 0.014 254.604)",100:"oklch(93.2% 0.032 255.585)",200:"oklch(88.2% 0.059 254.128)",300:"oklch(80.9% 0.105 251.813)",400:"oklch(70.7% 0.165 254.624)",500:"oklch(62.3% 0.214 259.815)",600:"oklch(54.6% 0.245 262.881)",700:"oklch(48.8% 0.243 264.376)",800:"oklch(42.4% 0.199 265.638)",900:"oklch(37.9% 0.146 265.522)",950:"oklch(28.2% 0.091 267.935)"},indigo:{50:"oklch(96.2% 0.018 272.314)",100:"oklch(93% 0.034 272.788)",200:"oklch(87% 0.065 274.039)",300:"oklch(78.5% 0.115 274.713)",400:"oklch(67.3% 0.182 276.935)",500:"oklch(58.5% 0.233 277.117)",600:"oklch(51.1% 0.262 276.966)",700:"oklch(45.7% 0.24 277.023)",800:"oklch(39.8% 0.195 277.366)",900:"oklch(35.9% 0.144 278.697)",950:"oklch(25.7% 0.09 281.288)"},violet:{50:"oklch(96.9% 0.016 293.756)",100:"oklch(94.3% 0.029 294.588)",200:"oklch(89.4% 0.057 293.283)",300:"oklch(81.1% 0.111 293.571)",400:"oklch(70.2% 0.183 293.541)",500:"oklch(60.6% 0.25 292.717)",600:"oklch(54.1% 0.281 293.009)",700:"oklch(49.1% 0.27 292.581)",800:"oklch(43.2% 0.232 292.759)",900:"oklch(38% 0.189 293.745)",950:"oklch(28.3% 0.141 291.089)"},purple:{50:"oklch(97.7% 0.014 308.299)",100:"oklch(94.6% 0.033 307.174)",200:"oklch(90.2% 0.063 306.703)",300:"oklch(82.7% 0.119 306.383)",400:"oklch(71.4% 0.203 305.504)",500:"oklch(62.7% 0.265 303.9)",600:"oklch(55.8% 0.288 302.321)",700:"oklch(49.6% 0.265 301.924)",800:"oklch(43.8% 0.218 303.724)",900:"oklch(38.1% 0.176 304.987)",950:"oklch(29.1% 0.149 302.717)"},fuchsia:{50:"oklch(97.7% 0.017 320.058)",100:"oklch(95.2% 0.037 318.852)",200:"oklch(90.3% 0.076 319.62)",300:"oklch(83.3% 0.145 321.434)",400:"oklch(74% 0.238 322.16)",500:"oklch(66.7% 0.295 322.15)",600:"oklch(59.1% 0.293 322.896)",700:"oklch(51.8% 0.253 323.949)",800:"oklch(45.2% 0.211 324.591)",900:"oklch(40.1% 0.17 325.612)",950:"oklch(29.3% 0.136 325.661)"},pink:{50:"oklch(97.1% 0.014 343.198)",100:"oklch(94.8% 0.028 342.258)",200:"oklch(89.9% 0.061 343.231)",300:"oklch(82.3% 0.12 346.018)",400:"oklch(71.8% 0.202 349.761)",500:"oklch(65.6% 0.241 354.308)",600:"oklch(59.2% 0.249 0.584)",700:"oklch(52.5% 0.223 3.958)",800:"oklch(45.9% 0.187 3.815)",900:"oklch(40.8% 0.153 2.432)",950:"oklch(28.4% 0.109 3.907)"},rose:{50:"oklch(96.9% 0.015 12.422)",100:"oklch(94.1% 0.03 12.58)",200:"oklch(89.2% 0.058 10.001)",300:"oklch(81% 0.117 11.638)",400:"oklch(71.2% 0.194 13.428)",500:"oklch(64.5% 0.246 16.439)",600:"oklch(58.6% 0.253 17.585)",700:"oklch(51.4% 0.222 16.935)",800:"oklch(45.5% 0.188 13.697)",900:"oklch(41% 0.159 10.272)",950:"oklch(27.1% 0.105 12.094)"}};function tr(n){const e=n.match(/oklch\(\s*([0-9.]+)%?\s+([0-9.]+)\s+([0-9.]+)(?:\s*\/\s*([0-9.]+))?\s*\)/);if(!e)return null;const[t,r,o,l]=e.map(Number);return{lightness:r,chroma:o,hue:l}}function ol(n){n=n.replace(/^#/,""),n.length===3&&(n=n.split("").map(o=>o+o).join(""));const e=parseInt(n.slice(0,2),16),t=parseInt(n.slice(2,4),16),r=parseInt(n.slice(4,6),16);return{r:e/255,g:t/255,b:r/255}}function ll(n){const e=n.match(/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/);if(e){const[r,o,l,s]=e.map(Number);return{r:Math.max(0,Math.min(255,o))/255,g:Math.max(0,Math.min(255,l))/255,b:Math.max(0,Math.min(255,s))/255}}const t=n.match(/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([0-9]*\.?[0-9]+)\s*\)$/);if(t){const[r,o,l,s]=t.map(Number);return{r:Math.max(0,Math.min(255,o))/255,g:Math.max(0,Math.min(255,l))/255,b:Math.max(0,Math.min(255,s))/255}}return null}function ar(n){const{r:e,g:t,b:r}=n,o=e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4),l=t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4),s=r<=.04045?r/12.92:Math.pow((r+.055)/1.055,2.4),i=.4124*o+.3576*l+.1805*s,u=.2126*o+.7152*l+.0722*s,c=.0193*o+.1192*l+.9505*s,h=.95047,v=1,g=1.08883,T=i>.008856?Math.pow(i/h,1/3):7.787*i/h+16/116,x=u>.008856?Math.pow(u/v,1/3):7.787*u/v+16/116,f=c>.008856?Math.pow(c/g,1/3):7.787*c/g+16/116,y=116*x-16,m=500*(T-x),S=200*(x-f);return{l:y,a:m,b:S}}function rr(n){const{l:e,a:t,b:r}=n,o=Math.sqrt(t*t+r*r);let l=Math.atan2(r,t)*180/Math.PI;return l<0&&(l+=360),{l:e,c:o,h:l}}function sl(n){const e=ol(n),t=ar(e),r=rr(t);let o=r.h;return o>0&&o<60&&(o=o*.7),{lightness:r.l,chroma:Math.min(r.c/150,.4),hue:o}}function il(n){const e=ar(n),t=rr(e);let r=t.h;return r>0&&r<60&&(r=r*.7),{lightness:t.l,chroma:Math.min(t.c/150,.4),hue:r}}function cl(n,e){const t=Math.min(Math.abs(n.hue-e.hue),360-Math.abs(n.hue-e.hue)),r=t>60?30:5;return Math.sqrt(Math.pow((n.lightness-e.lightness)*1.5,2)+Math.pow((n.chroma-e.chroma)*2,2)+Math.pow(t/360*r,2)*100)}function ul(n){return n.startsWith("oklch(")}function dl(n){return/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(n)}function ml(n){return n in jt}function fl(n){return n.startsWith("rgb(")||n.startsWith("rgba(")}function nr(n){const e="violet";if(ml(n))return n;let t=null;if(ul(n))t=tr(n);else if(dl(n))t=sl(n);else if(fl(n)){const l=ll(n);l&&(t=il(l))}if(!t)return e;let r=e,o=1/0;for(const[l,s]of Object.entries(jt))for(const i of["300","400","500","600","700"]){const u=s[i];if(!u)continue;const c=tr(u);if(!c)continue;const h=cl(t,c);h<o&&(o=h,r=l)}return r}function hl(n){return jt[n]||{}}class pl{instances=new Map;mediaQuery=null;listeners=new Map;constructor(){this.initializeSystemPreference()}initializeSystemPreference(){typeof window<"u"&&window.matchMedia&&(this.mediaQuery=window.matchMedia("(prefers-color-scheme: dark)"),this.mediaQuery.addEventListener("change",this.handleSystemThemeChange.bind(this)))}handleSystemThemeChange(e){const t=e.matches?"dark":"light";this.instances.forEach((r,o)=>{r.systemPreference=t,r.userPreference==="auto"&&this.updateCurrentMode(o)})}getSystemPreference(){return this.mediaQuery&&this.mediaQuery.matches?"dark":"light"}createInstance(e,t={}){const r=e||this.generateInstanceId(),o={currentMode:"light",userPreference:t.defaultMode||"auto",systemPreference:this.getSystemPreference(),color:nr(t.defaultColor||"violet"),instanceId:r};return this.instances.set(r,o),this.listeners.set(r,[]),this.updateCurrentMode(r),typeof document<"u"&&setTimeout(()=>{this.applyColorToDOM(r),this.applyModeToDOM(r)},0),r}destroyInstance(e){this.instances.delete(e),this.listeners.delete(e)}generateInstanceId(){return`vdt-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}updateCurrentMode(e){const t=this.instances.get(e);if(!t)return;const r=t.currentMode;t.userPreference==="auto"?t.currentMode=t.systemPreference:t.currentMode=t.userPreference,r!==t.currentMode&&(this.applyModeToDOM(e),this.notifyListeners(e))}applyModeToDOM(e){if(typeof document>"u")return;const t=this.instances.get(e);if(!t)return;const r=document.querySelector(`[data-vdt-instance="${e}"]`);if(!r){setTimeout(()=>this.applyModeToDOM(e),10);return}t.userPreference==="auto"?r.removeAttribute("data-vdt-mode"):r.setAttribute("data-vdt-mode",t.currentMode)}applyColorToDOM(e){if(typeof document>"u")return;const t=this.instances.get(e);if(!t)return;const r=document.querySelector(`[data-vdt-instance="${e}"]`);if(!r){setTimeout(()=>this.applyColorToDOM(e),10);return}const o=hl(t.color);this.checkForUserOverride(r,o)?Object.keys(o).forEach(s=>{r.style.removeProperty(`--color-vdt-theme-${s}`)}):Object.entries(o).forEach(([s,i])=>{r.style.setProperty(`--color-vdt-theme-${s}`,i)})}checkForUserOverride(e,t){const r={};Object.keys(t).forEach(v=>{const g=`--color-vdt-theme-${v}`;r[g]=e.style.getPropertyValue(g),e.style.removeProperty(g)});const l=getComputedStyle(e).getPropertyValue("--color-vdt-theme-500").trim();if(Object.entries(r).forEach(([v,g])=>{g&&e.style.setProperty(v,g)}),!l)return!1;const s="oklch(60.6% 0.25 292.717)",i=t[500],u=this.isOklchEqual(l,s),c=this.isOklchEqual(l,i);return!u&&!c}parseOklchForComparison(e){const t=e.match(/oklch\(\s*([0-9.]+)%?\s+([0-9.]+)\s+([0-9.]+)\s*\)/);return t?{l:parseFloat(t[1]),c:parseFloat(t[2]),h:parseFloat(t[3])}:null}isOklchEqual(e,t,r=.001){const o=this.parseOklchForComparison(e),l=this.parseOklchForComparison(t);return!o||!l?e.trim()===t.trim():Math.abs(o.l-l.l)<r&&Math.abs(o.c-l.c)<r&&Math.abs(o.h-l.h)<r}notifyListeners(e){const t=this.instances.get(e),r=this.listeners.get(e);t&&r&&r.forEach(o=>o({...t}))}setMode(e,t){const r=this.instances.get(e);r&&(r.userPreference=t,this.updateCurrentMode(e))}setColor(e,t){const r=this.instances.get(e);if(!r)return;const o=nr(t);r.color=o,this.applyColorToDOM(e),this.notifyListeners(e)}getState(e){const t=this.instances.get(e);return t?{...t}:null}getThemeClasses(e){const t=this.instances.get(e);return t?{"vdt-datepicker":!0,"vdt-themed":!0,[`vdt-theme-${t.color}`]:!0,[`vdt-mode-${t.currentMode}`]:!0,"vdt-mode-auto":t.userPreference==="auto",[`vdt-instance-${e}`]:!0}:{}}getContainerAttributes(e){const t=this.instances.get(e);if(!t)return{};const r={"data-vdt-instance":e,"data-vdt-theme":t.color,"data-vdt-mode-preference":t.userPreference};return t.userPreference!=="auto"&&(r["data-vdt-mode"]=t.currentMode),r}reapplyTheme(e){this.applyColorToDOM(e),this.applyModeToDOM(e)}addListener(e,t){const r=this.listeners.get(e);return r?(r.push(t),()=>{const o=r.indexOf(t);o>-1&&r.splice(o,1)}):()=>{}}destroy(){this.mediaQuery&&this.mediaQuery.removeEventListener("change",this.handleSystemThemeChange.bind(this)),this.instances.clear(),this.listeners.clear()}}const ge=new pl;function or(n={}){const e=a.ref(ge.createInstance(n.instanceId,{defaultColor:n.defaultColor,defaultMode:n.defaultMode})),t=a.ref(ge.getState(e.value));let r=null;const o=a.computed(()=>t.value?.currentMode==="dark"),l=a.computed(()=>t.value?.currentMode==="light"),s=a.computed(()=>t.value?.userPreference==="auto"),i=a.computed(()=>t.value?.currentMode||"light"),u=a.computed(()=>t.value?.userPreference||"auto"),c=a.computed(()=>t.value?.systemPreference||"light"),h=a.computed(()=>t.value?.color||"violet"),v=a.computed(()=>e.value?ge.getThemeClasses(e.value):{}),g=a.computed(()=>e.value?ge.getContainerAttributes(e.value):{}),T=m=>{e.value&&ge.setColor(e.value,m)},x=m=>{e.value&&ge.setMode(e.value,m)},f=()=>{if(t.value)if(t.value.userPreference==="auto"){const m=t.value.currentMode==="light"?"dark":"light";x(m)}else{const m=t.value.currentMode==="light"?"dark":"light";x(m)}},y=a.computed(()=>typeof window>"u"?!1:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches!==void 0);return a.onMounted(async()=>{await a.nextTick(),t.value=ge.getState(e.value),r=ge.addListener(e.value,m=>{t.value=m}),setTimeout(()=>{ge.reapplyTheme(e.value)},10)}),a.onBeforeUnmount(()=>{r&&r(),e.value&&ge.destroyInstance(e.value)}),{instanceId:e,themeState:t,isDark:o,isLight:l,isAuto:s,currentMode:i,userPreference:u,systemPreference:c,currentColor:h,themeClasses:v,containerAttributes:g,supportsColorScheme:y,setColor:T,setMode:x,toggle:f,setLightMode:()=>x("light"),setDarkMode:()=>x("dark"),setAutoMode:()=>x("auto"),setRedTheme:()=>T("red"),setBlueTheme:()=>T("blue"),setGreenTheme:()=>T("green"),setVioletTheme:()=>T("violet"),setPurpleTheme:()=>T("purple"),setIndigoTheme:()=>T("indigo"),setTealTheme:()=>T("teal"),setCyanTheme:()=>T("cyan"),setSkyTheme:()=>T("sky"),setEmeraldTheme:()=>T("emerald")}}const gl={key:0},yl={key:0,class:"date-placeholder text-vdt-content truncate"},vl={key:1,class:"date-placeholder text-vdt-content-muted truncate"},$l=["disabled"],Dl={key:0},Kt=a.defineComponent({__name:"DatePicker",props:{modelValue:{default:null},customDefaultTime:{},autoFocusTimeAfterDate:{type:Boolean,default:!0},placeholderOverrides:{default:()=>({})},mode:{default:"auto"},theme:{default:()=>"violet"},calendar:{default:"gregory"},locale:{default:"zh-TW"},customLocaleMessages:{default:void 0},outputType:{default:"iso"},useStrictISO:{type:Boolean,default:!1},weekStartsOn:{default:0},minDate:{},maxDate:{},dateSeparator:{default:"-"},dateFormat:{default:"YYYY-MM-DD"},timeFormat:{},showTime:{type:Boolean,default:!1},enableSeconds:{type:Boolean,default:!0},use24Hour:{type:Boolean,default:!0},useLocalizedPeriod:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},inputEnabled:{type:Boolean,default:!0},required:{type:Boolean,default:!1},showClearButton:{type:Boolean,default:!0},showErrorMessage:{type:Boolean,default:!0},useI18n:{type:Boolean,default:!0},customErrorMessages:{default:()=>({})}},emits:["update:modelValue","change","validation"],setup(n,{expose:e,emit:t}){const r=n,{setLocale:o,getPlaceholderMessage:l}=je(r.locale,r.customLocaleMessages),s=t,i=a.useSlots(),u=a.computed(()=>{const E={};return["no-years-display","month-selector"].forEach(A=>{i[A]&&(E[A]=i[A])}),Object.keys(i).forEach(A=>{A.startsWith("year-")&&(E[A]=i[A])}),E}),c=a.ref(null),h=a.ref(null),v=a.ref(null),g=a.ref(null),T=a.computed(()=>r.timeFormat?r.timeFormat:r.enableSeconds?r.use24Hour?"HH:mm:ss":"hh:mm:ss A":r.use24Hour?"HH:mm":"hh:mm A"),x=a.ref(r.dateFormat),f=a.ref(T.value),y=a.ref({}),m=nl({modelValue:r.modelValue,showTime:r.showTime,required:r.required,disabled:r.disabled,calendar:a.toRef(r,"calendar"),dateFormat:x.value,timeFormat:f.value,outputType:a.toRef(r,"outputType"),useStrictISO:r.useStrictISO,customDefaultTime:r.customDefaultTime,enableSeconds:r.enableSeconds,autoFocusTimeAfterDate:r.autoFocusTimeAfterDate,minDate:r.minDate,maxDate:r.maxDate,locale:a.toRef(r,"locale")},{containerRef:c,calendarRef:h,dateInputRef:v,timeInputRef:g});m.setEmitters({update:E=>s("update:modelValue",E),change:E=>s("change",E),validation:(E,A,G)=>s("validation",E,A,G)});const{themeClasses:S,containerAttributes:w,setColor:p,setMode:b,currentMode:D,isDark:d,isLight:$}=or(),k=a.computed(()=>{const E=oe(r.minDate,r.locale);return de(E)}),O=a.computed(()=>{const E=oe(r.maxDate,r.locale);return de(E)}),H=a.computed(()=>x.value),U=a.computed(()=>r.calendar==="gregory"),q=a.computed(()=>!!(M.value&&M.value.trim())),j=a.computed(()=>{r.locale;const E={selectDate:l("general.selectDate"),year:l("date.year"),month:l("date.month"),day:l("date.day"),hour:l("time.hour"),minute:l("time.minute"),second:l("time.second")};return{selectDate:r.placeholderOverrides?.selectDate||E.selectDate,hour:r.placeholderOverrides?.hour||E.hour,minute:r.placeholderOverrides?.minute||E.minute,second:r.placeholderOverrides?.second||E.second,year:r.placeholderOverrides?.year||E.year,month:r.placeholderOverrides?.month||E.month,day:r.placeholderOverrides?.day||E.day}}),_=a.computed(()=>({...m.mergedErrors.value,...y.value})),V=a.computed(()=>{const G={...m.mergedErrorParams?.value||{},...{}};return Object.keys(G).length>0?G:{}}),R=a.computed(()=>Object.keys(_.value).length>0);a.onBeforeMount(()=>{if(!_a(r.dateFormat)&&r.calendar==="gregory"){const E=r.dateFormat,A=Vn(r.dateFormat);y.value.dateFormat="format.invalid",console.warn(`日期格式 "${E}" 不正確,已自動修復為 "${A}"`),x.value=A}if(r.showTime&&!At(f.value)){const E=f.value,A=In(f.value);if(At(A))y.value.timeFormat="format.invalid",console.warn(`時間格式 "${E}" 不正確,已自動修復為 "${A}"`),f.value=A;else{const G=T.value;y.value.timeFormat="format.invalid",console.warn(`時間格式 "${E}" 不正確,已使用預設格式 "${G}"`),f.value=G}}}),a.watch(()=>r.theme,E=>{E&&p(E)},{immediate:!0}),a.watch(()=>r.mode,E=>{b(E)},{immediate:!0}),a.watch(()=>r.locale,E=>{E&&o(E,r.customLocaleMessages)},{immediate:!0}),a.watch(()=>r.customLocaleMessages,E=>{E&&r.locale&&o(r.locale,E)}),a.watch([()=>r.enableSeconds,()=>r.use24Hour,()=>r.timeFormat],()=>{r.timeFormat||(f.value=T.value)},{immediate:!0}),a.watch(()=>r.calendar,E=>{re.isCalendarSupported(E)?delete y.value.calendar:y.value.calendar="calendar.unsupported"},{immediate:!0}),e({focus:m.focus,reset:m.reset,validate:m.validate,selectNow:m.selectNow,getDateTime:()=>m.internalDateTime.value,setDateTime:E=>{m.setExternalValue(E)},setTheme:p,setDarkMode:()=>b("dark"),setLightMode:()=>b("light"),setAutoMode:()=>b("auto"),getCurrentMode:()=>D.value,isDarkMode:()=>d.value,isLightMode:()=>$.value,getErrors:()=>_.value,hasErrors:()=>R.value});const{inputDateValue:M,inputTimeValue:F,showCalendar:N,internalDateTime:K,calendarMinDate:ne,calendarMaxDate:te,getValidDefaultTime:Y,hasValue:C,validateDateInput:P,validateTimeInput:Q,handleDateComplete:W,handleTimeComplete:L,handleCalendarSelect:z,handleTimeSelect:Z,handleContainerClick:le,handleContainerMouseDown:se,handleNavigateToDate:me,toggleCalendar:ie,reset:B}=m;return(E,A)=>(a.openBlock(),a.createElementBlock(a.Fragment,null,[a.createElementVNode("div",a.mergeProps({class:["date-picker-wrapper relative w-full",[a.unref(S),E.showTime?"min-w-[300px]":"min-w-[150px]"]]},a.unref(w),{ref_key:"containerRef",ref:c}),[a.createElementVNode("div",{class:a.normalizeClass(["date-picker-container flex w-full items-center px-2 py-1 bg-vdt-surface text-vdt-content rounded-sm transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed",[{"border-red-500 ring-2 ring-red-200":R.value}]])},[U.value&&E.inputEnabled?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(["flex w-full items-center justify-start gap-2",[E.disabled?"cursor-not-allowed cursor-event-none opacity-50":""]]),onClick:A[2]||(A[2]=a.withModifiers((...G)=>a.unref(le)&&a.unref(le)(...G),["stop"])),onMousedown:A[3]||(A[3]=(...G)=>a.unref(se)&&a.unref(se)(...G))},[a.createElementVNode("div",null,[a.createVNode(qt,{ref_key:"dateInputRef",ref:v,modelValue:a.unref(M),"onUpdate:modelValue":A[0]||(A[0]=G=>a.isRef(M)?M.value=G:null),"year-placeholder":j.value.year,"month-placeholder":j.value.month,"day-placeholder":j.value.day,"min-date":k.value,"max-date":O.value,required:E.required,separator:E.dateSeparator,"date-format":H.value,onValidation:a.unref(P),onComplete:a.unref(W)},null,8,["modelValue","year-placeholder","month-placeholder","day-placeholder","min-date","max-date","required","separator","date-format","onValidation","onComplete"])]),E.showTime?(a.openBlock(),a.createElementBlock("div",gl,[a.createVNode(Ut,{ref_key:"timeInputRef",ref:g,modelValue:a.unref(F),"onUpdate:modelValue":A[1]||(A[1]=G=>a.isRef(F)?F.value=G:null),"hour-placeholder":j.value.hour,"minute-placeholder":j.value.minute,"second-placeholder":j.value.second,"enable-seconds":E.enableSeconds,use24Hour:E.use24Hour,required:E.required,locale:E.locale,useLocalizedPeriod:E.useLocalizedPeriod,onValidation:a.unref(Q),onComplete:a.unref(L),onNavigateToDate:a.unref(me)},null,8,["modelValue","hour-placeholder","minute-placeholder","second-placeholder","enable-seconds","use24Hour","required","locale","useLocalizedPeriod","onValidation","onComplete","onNavigateToDate"])])):a.createCommentVNode("",!0)],34)):(a.openBlock(),a.createElementBlock("button",{key:1,type:"button",class:a.normalizeClass(["flex w-full h-full items-center justify-start gap-1",{"cursor-not-allowed opacity-50":E.disabled}]),onClick:A[4]||(A[4]=a.withModifiers(G=>!E.disabled&&a.unref(ie)?.(),["stop"])),onKeydown:[A[5]||(A[5]=a.withKeys(a.withModifiers(G=>!E.disabled&&a.unref(ie)?.(),["prevent"]),["enter"])),A[6]||(A[6]=a.withKeys(a.withModifiers(G=>!E.disabled&&a.unref(ie)?.(),["prevent"]),["space"]))]},[q.value?(a.openBlock(),a.createElementBlock("span",yl,a.toDisplayString(E.modelValue),1)):(a.openBlock(),a.createElementBlock("span",vl,a.toDisplayString(j.value.selectDate),1))],34)),a.createElementVNode("div",{class:a.normalizeClass(["date-picker-icon-container relative group cursor-pointer",{"cursor-not-allowed":E.disabled}])},[a.createElementVNode("button",{type:"button",class:a.normalizeClass(["date-picker-icon text-gray-400 hover:text-gray-600 transition-colors disabled:cursor-not-allowed",{"group-hover:opacity-0":a.unref(C)&&!E.disabled&&E.showClearButton}]),disabled:E.disabled,"aria-label":"開啟日曆",onClick:A[7]||(A[7]=a.withModifiers(G=>a.unref(ie)?.(),["stop","prevent"]))},[a.createVNode(Qa,{class:"h-5 w-5"})],10,$l),a.unref(C)&&!E.disabled&&E.showClearButton?(a.openBlock(),a.createElementBlock("button",{key:0,type:"button",class:"date-picker-icon absolute inset-0 text-gray-400 hover:text-red-500 opacity-0 group-hover:opacity-100","aria-label":"清除日期",onClick:A[8]||(A[8]=a.withModifiers((...G)=>a.unref(B)&&a.unref(B)(...G),["stop","prevent"]))},[a.createVNode(Xa,{class:"h-4 w-4"})])):a.createCommentVNode("",!0)],2)],2),a.unref(N)&&!E.disabled?(a.openBlock(),a.createElementBlock("div",{key:0,ref_key:"calendarRef",ref:h,class:"calendar-container absolute mt-1 bg-vdt-surface-elevated border border-vdt-outline rounded-lg shadow-lg z-10",onClick:A[9]||(A[9]=a.withModifiers(()=>{},["stop"])),role:"dialog","aria-modal":"true","aria-label":"date-picker"},[a.createVNode(zt,{value:a.unref(K),weekStartsOn:E.weekStartsOn,"min-date":a.unref(ne),"max-date":a.unref(te),showTimeSelector:E.showTime,"time-value":a.unref(F),use24Hour:E.use24Hour,"default-time":a.unref(Y),enableSeconds:E.enableSeconds,locale:E.locale,calendar:E.calendar,onSelect:a.unref(z),onTimeSelect:a.unref(Z)},a.createSlots({_:2},[a.renderList(u.value,(G,pe)=>({name:pe,fn:a.withCtx(Ke=>[a.renderSlot(E.$slots,pe,a.normalizeProps(a.guardReactiveProps(Ke)))])}))]),1032,["value","weekStartsOn","min-date","max-date","showTimeSelector","time-value","use24Hour","default-time","enableSeconds","locale","calendar","onSelect","onTimeSelect"])],512)):a.createCommentVNode("",!0)],16),E.showErrorMessage&&R.value?(a.openBlock(),a.createElementBlock("div",Dl,[a.renderSlot(E.$slots,"error",{errors:_.value,errorParams:V.value,hasErrors:R.value},()=>[a.createVNode(Ka,{errors:_.value,locale:E.locale,"use-i18n":E.useI18n,"custom-messages":E.customErrorMessages,errorParams:V.value},a.createSlots({_:2},[a.renderList(E.$slots,(G,pe)=>({name:pe,fn:a.withCtx(Ke=>[a.renderSlot(E.$slots,pe,a.normalizeProps(a.guardReactiveProps(Ke)))])}))]),1032,["errors","locale","use-i18n","custom-messages","errorParams"])])])):a.createCommentVNode("",!0)],64))}}),kl={key:0,class:"calendar-container flex-1 md:min-w-[280px] min-w-auto"},bl=a.defineComponent({__name:"RangeCalendar",props:{rangeStart:{default:null},rangeEnd:{default:null},minDate:{default:null},maxDate:{default:null},locale:{default:"zh-TW"},weekStartsOn:{default:0},calendar:{default:"gregory"},showTimeSelector:{type:Boolean,default:!1},startTimeValue:{default:null},endTimeValue:{default:null},enableSeconds:{type:Boolean,default:!0},use24Hour:{type:Boolean,default:!0},monthDisplayMode:{default:"dual"},initialYear:{default:()=>Fe().year},initialMonth:{default:()=>Fe().month}},emits:["range-select","time-select"],setup(n,{expose:e,emit:t}){const r=n,o=t,l=a.ref({isSelecting:!1,tempStart:null,activeTimeTarget:"start"}),s=()=>{if(r.rangeStart)return{year:r.rangeStart.year,month:r.rangeStart.month};if(r.initialYear&&r.initialMonth)return{year:r.initialYear,month:r.initialMonth};const p=Fe();return{year:p.year,month:p.month}},{year:i,month:u}=s(),c=a.ref(i),h=a.ref(u),v=a.computed(()=>h.value===12?c.value+1:c.value),g=a.computed(()=>h.value===12?1:h.value+1),T=a.computed(()=>r.monthDisplayMode==="single"?l.value.activeTimeTarget==="start"?r.startTimeValue:r.endTimeValue:r.startTimeValue),x=a.computed(()=>r.endTimeValue),f=a.computed(()=>r.monthDisplayMode==="single"?l.value.activeTimeTarget:"start");a.watch(()=>[r.rangeStart,r.rangeEnd],([p,b])=>{p&&!r.initialYear&&!r.initialMonth&&(c.value=p.year,h.value=p.month),r.monthDisplayMode==="single"?p&&b?(l.value.isSelecting=!1,l.value.tempStart=null,l.value.activeTimeTarget="start"):p&&!b?(l.value.isSelecting=!0,l.value.tempStart=p,l.value.activeTimeTarget="end"):(l.value.isSelecting=!1,l.value.tempStart=null,l.value.activeTimeTarget="start"):p&&b?(l.value.isSelecting=!1,l.value.tempStart=null):p&&!b?(l.value.isSelecting=!0,l.value.tempStart=p):(l.value.isSelecting=!1,l.value.tempStart=null)},{immediate:!0,deep:!0});const y=(p,b)=>{if(!p){l.value.isSelecting=!1,l.value.tempStart=null,r.monthDisplayMode==="single"&&(l.value.activeTimeTarget="start"),o("range-select",null,null);return}if(!l.value.isSelecting)l.value.isSelecting=!0,l.value.tempStart=p,r.monthDisplayMode==="single"&&(l.value.activeTimeTarget="start"),o("range-select",p,null);else{const D=l.value.tempStart;if(D&&(p.year!==D.year||p.month!==D.month||p.day!==D.day)){l.value.isSelecting=!1,l.value.tempStart=null;const d=D.year*1e4+D.month*100+D.day,$=p.year*1e4+p.month*100+p.day;d<=$?o("range-select",D,p):o("range-select",p,D),r.monthDisplayMode==="single"&&(l.value.activeTimeTarget="end")}else l.value.tempStart=p,r.monthDisplayMode==="single"&&(l.value.activeTimeTarget="start"),o("range-select",p,null)}},m=(p,b)=>{o("time-select",p,b)};return e({getCurrentDisplay:()=>r.monthDisplayMode==="single"?{year:c.value,month:h.value}:{left:{year:c.value,month:h.value},right:{year:v.value,month:g.value}},setDisplayMonth:(p,b)=>{c.value=p,h.value=b},resetRangeSelection:()=>{l.value.isSelecting=!1,l.value.tempStart=null,r.monthDisplayMode==="single"&&(l.value.activeTimeTarget="start")},getSelectionState:()=>({isSelecting:l.value.isSelecting,tempStart:l.value.tempStart,activeTimeTarget:l.value.activeTimeTarget}),previousMonth:()=>{h.value===1?(h.value=12,c.value-=1):h.value-=1},nextMonth:()=>{h.value===12?(h.value=1,c.value+=1):h.value+=1},handleRangeSelect:y}),(p,b)=>(a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(["range-calendar",[p.monthDisplayMode==="single"?"single-month":"dual-month","flex flex-col gap-4",p.monthDisplayMode==="dual"?"min-w-auto md:min-w-[570px] md:flex-row":"min-w-auto max-w-[300px]","m-1"]])},[a.createElementVNode("div",{class:a.normalizeClass(["calendar-container flex-1",[p.monthDisplayMode==="dual"?"min-w-auto md:min-w-[280px]":"min-w-auto"]])},[a.createVNode(zt,{"range-start":p.rangeStart,"range-end":p.rangeEnd,"selection-mode":"range",year:c.value,month:h.value,"min-date":p.minDate,"max-date":p.maxDate,locale:p.locale,"week-starts-on":p.weekStartsOn,calendar:p.calendar,showTimeSelector:p.showTimeSelector,"time-value":T.value,"enable-seconds":p.enableSeconds,"use24-hour":p.use24Hour,onRangeSelect:y,onTimeSelect:b[0]||(b[0]=D=>m(D,f.value))},null,8,["range-start","range-end","year","month","min-date","max-date","locale","week-starts-on","calendar","showTimeSelector","time-value","enable-seconds","use24-hour"])],2),p.monthDisplayMode==="dual"?(a.openBlock(),a.createElementBlock("div",kl,[a.createVNode(zt,{"range-start":p.rangeStart,"range-end":p.rangeEnd,"selection-mode":"range",year:v.value,month:g.value,"min-date":p.minDate,"max-date":p.maxDate,locale:p.locale,"week-starts-on":p.weekStartsOn,calendar:p.calendar,showTimeSelector:p.showTimeSelector,"time-value":x.value,"enable-seconds":p.enableSeconds,"use24-hour":p.use24Hour,onRangeSelect:y,onTimeSelect:b[1]||(b[1]=D=>m(D,"end"))},null,8,["range-start","range-end","year","month","min-date","max-date","locale","week-starts-on","calendar","showTimeSelector","time-value","enable-seconds","use24-hour"])])):a.createCommentVNode("",!0)],2))}}),gt="00:00:00",yt="23:59:59";function Ml(n={},e){const{calendar:t="gregory",modelValue:r=null,showTime:o=!1,required:l=!1,disabled:s=!1,incomplete:i=!1,dateFormat:u="YYYY-MM-DD",timeFormat:c="HH:mm:ss",outputType:h="iso",useStrictISO:v=!1,enableSeconds:g=!1,minDate:T,maxDate:x,maxRange:f,minRange:y,locale:m="zh-TW"}=n,{containerRef:S,calendarRef:w,startDateInputRef:p,endDateInputRef:b,startTimeInputRef:D,endTimeInputRef:d}=e,$=a.ref(s);let k={};const O=_t({required:l,showTime:o,minDate:T,maxDate:x,dateFormat:u}),H=_t({required:l,showTime:o,minDate:T,maxDate:x,dateFormat:u}),U=Jt({showTime:o,dateFormat:u,timeFormat:c,outputType:h,defaultTime:gt,enableSeconds:g}),q=Jt({showTime:o,dateFormat:u,timeFormat:c,outputType:h,defaultTime:yt,enableSeconds:g}),j=er(S,w,{disabled:$}),_=Wt({dateInputRef:p,timeInputRef:D},{showTime:o,autoFocusTimeAfterDate:!0}),V=Wt({dateInputRef:b,timeInputRef:d},{showTime:o,autoFocusTimeAfterDate:!0}),R=a.computed(()=>U.hasValue.value||q.hasValue.value),M=a.computed(()=>{const I={...O.mergedErrors.value,...H.mergedErrors.value};return U.internalDateTime.value&&!q.internalDateTime.value&&i&&(I["range.endRequired"]="range.endRequired"),I}),F=a.computed(()=>({...O.mergedErrorParams.value,...H.mergedErrorParams.value})),N=a.computed(()=>Object.keys(M.value).length>0),K=a.computed(()=>{const I=U.internalDateTime.value,J=q.internalDateTime.value;if(!I||!J||pt(I,J)>0)return!1;if(f||y){const X=Wa(I,J);if(f&&X>f)return H.handleDateValidation(!1,{range:"range.exceedsMaxRange"},"endDate",{range:{maxRange:f,actualDays:X}}),!1;if(y&&X<y)return H.handleDateValidation(!1,{range:"range.belowMinRange"},"endDate",{range:{minRange:y,actualDays:X}}),!1;H.clearFieldErrors("range")}return!N.value}),ne=a.computed(()=>[{label:"今天",getValue:()=>{const I=Pe();return{start:De(I.year,I.month,I.day,0,0,0),end:De(I.year,I.month,I.day,23,59,59)}}},{label:"最近7天",getValue:()=>({start:Nt(Pe(),-6),end:Pe()})},{label:"最近30天",getValue:()=>({start:Nt(Pe(),-29),end:Pe()})},{label:"本月",getValue:Yn}]),te=a.computed(()=>({minDate:oe(T,m),maxDate:q.internalDateTime.value||oe(x,m)})),Y=a.computed(()=>({minDate:U.internalDateTime.value||oe(T,m),maxDate:oe(x,m)})),C=a.computed(()=>({minDate:te.value.minDate?de(te.value.minDate,u):null,maxDate:te.value.maxDate?de(te.value.maxDate,u):null})),P=a.computed(()=>({minDate:Y.value.minDate?de(Y.value.minDate,u):null,maxDate:Y.value.maxDate?de(Y.value.maxDate,u):null}));function Q(I,J){const X=Wa(I,J);return f&&X>f?{valid:!1,error:"range.exceedsMaxRange",params:{maxRange:f,actualDays:X}}:y&&X<y?{valid:!1,error:"range.belowMinRange",params:{minRange:y,actualDays:X}}:{valid:!0}}function W(I){!I.error||!I.params||H.handleDateValidation(!1,{range:I.error},"endDate",{range:I.params})}function L(){if(!U.internalDateTime.value||!q.internalDateTime.value){k.update?.(null),k.change?.(null);return}const I=o?c:void 0,J={start:ht(U.internalDateTime.value,h,u,I,o,t,m,v,g),end:ht(q.internalDateTime.value,h,u,I,o,t,m,v,g)};k.update?.(J),k.change?.(J);const X=K.value&&!N.value;k.validation?.(X,M.value,F.value)}function z(I,J){J.forEach(X=>I.clearFieldErrors(X))}const Z=I=>{k=I},le=(I,J,X,es,ts)=>{X.handleDateValidation(I,J,es,ts),k.validation?.(!N.value,M.value,F.value)},se=(I,J,X)=>{le(I,J,O,"startDate",X)},me=(I,J,X)=>{le(I,J,H,"endDate",X)},ie=(I,J,X={})=>{O.handleTimeValidation(I,J,"startTime",X),k.validation?.(!N.value,M.value)},B=(I,J,X={})=>{H.handleTimeValidation(I,J,"endTime",X),k.validation?.(!N.value,M.value,F.value)},E=I=>{U.inputDateValue.value=I;const J=U.updateFromInputs();if(!J){O.handleDateValidation(!1,{date:"date.invalid"});return}O.validateDateRange(J)&&(_.autoFocusTimeAfterDateComplete(U,gt),L(),z(O,["startDate","date.year","date.month","date.day"]),o||V.focusFirstInput())},A=I=>{q.inputDateValue.value=I;const J=q.updateFromInputs();if(!J){H.handleDateValidation(!1,{date:"date.invalid"});return}H.validateDateRange(J)&&(V.autoFocusTimeAfterDateComplete(q,yt),L(),z(H,["endDate","date.year","date.month","date.day"]))},G=I=>{U.inputTimeValue.value=I,U.updateFromInputs()&&L(),z(O,["startTime","time.hour","time.minute","time.second"])},pe=I=>{q.inputTimeValue.value=I,q.updateFromInputs()&&L(),z(H,["endTime","time.hour","time.minute","time.second"])},Ke=(I,J)=>{I&&!J?_l(I):I&&J?Jl(I,J):Qt(),L()};function _l(I){O.validateDateRange(I)&&(U.setInternalDateTime(I),z(O,["startDate","date.year","date.month","date.day"]),q.clearValues())}function Jl(I,J){if(!(!O.validateDateRange(I)||!H.validateDateRange(J))){if(f||y){const X=Q(I,J);if(!X.valid){W(X);return}}U.setInternalDateTime(I),q.setInternalDateTime(J),o&&(U.inputTimeValue.value||(U.inputTimeValue.value=gt,U.updateFromInputs()),q.inputTimeValue.value||(q.inputTimeValue.value=yt,q.updateFromInputs())),z(O,["startDate","endDate","range","date.year","date.month","date.day"]),z(H,["startDate","endDate","range","date.year","date.month","date.day"])}}const jl=(I,J)=>{J==="start"&&U.internalDateTime.value&&G(I),J==="end"&&q.internalDateTime.value&&pe(I)},Kl=I=>{const J=I.getValue();U.setInternalDateTime(J.start),q.setInternalDateTime(J.end),o&&(U.inputTimeValue.value||(U.inputTimeValue.value=gt,U.updateFromInputs()),q.inputTimeValue.value||(q.inputTimeValue.value=yt,q.updateFromInputs())),L()},Qt=()=>{U.clearValues(),q.clearValues(),O.clearAllErrors(),H.clearAllErrors(),L()},Ql=I=>{I?(U.setExternalValue(I.start),q.setExternalValue(I.end)):Qt(),L()},Zl=()=>(p.value?.validate(),b.value?.validate(),o&&(D.value?.validate(),d.value?.validate()),K.value),Gl=I=>{j.handleContainerClick(I,()=>{_.focusFirstInput()})},Xl=I=>{j.handleContainerClick(I,()=>{V.focusFirstInput()})};return a.watch(()=>r,I=>{if(I&&(I.start||I.end)){const J=I.start?oe(I.start,m,t):null,X=I.end?oe(I.end,m,t):null;if(I.start&&!J&&(console.warn(`Invalid start date provided: ${I.start}`),O.handleDateValidation(!1,{date:"date.invalid"},"startDate")),I.end&&!X&&(console.warn(`Invalid end date provided: ${I.end}`),H.handleDateValidation(!1,{date:"date.invalid"},"endDate")),J&&X&&pt(J,X)>0){console.warn("Initial date range has start > end, auto-swapping values"),U.setExternalValue(I.end),q.setExternalValue(I.start),setTimeout(()=>{L()},0);return}U.setExternalValue(J?I.start:null),q.setExternalValue(X?I.end:null)}else U.clearValues(),q.clearValues()},{immediate:!0}),{isDisabled:$,startDateConstraints:te,endDateConstraints:Y,startDateConstraintsStr:C,endDateConstraintsStr:P,hasErrors:N,mergedErrors:M,mergedErrorParams:F,isValidRange:K,startDateTime:U,endDateTime:q,hasRangeValue:R,...j,shortcuts:ne,setEmitters:Z,handleStartDateValidation:se,handleEndDateValidation:me,handleStartTimeValidation:ie,handleEndTimeValidation:B,handleStartDateComplete:E,handleEndDateComplete:A,handleStartTimeComplete:G,handleEndTimeComplete:pe,handleCalendarRangeSelect:Ke,handleTimeSelect:jl,handleStartNavigateToDate:_.handleNavigateToDate,handleEndNavigateToDate:V.handleNavigateToDate,applyShortcut:Kl,clearRange:Qt,setRange:Ql,validate:Zl,focusStartDate:Gl,focusEndDate:Xl}}function Sl(){const n=a.ref(typeof window<"u"?window.innerWidth:0),e=a.ref(typeof window<"u"?window.innerHeight:0),t=()=>{n.value=window.innerWidth,e.value=window.innerHeight};return a.onMounted(()=>{t(),window.addEventListener("resize",t)}),a.onBeforeUnmount(()=>{window.removeEventListener("resize",t)}),{width:n,height:e}}const wl=["disabled"],Tl=["title"],xl={key:0,class:"date-placeholder text-vdt-content truncate block"},El={key:1,class:"date-placeholder text-vdt-content-muted truncate block"},Cl={class:"text-vdt-content-muted text-sm px-1","aria-label":"日期範圍分隔符","data-testid":"separator"},Yl=["title"],Rl={key:0,class:"date-placeholder text-vdt-content truncate block"},Vl={key:1,class:"date-placeholder text-vdt-content-muted truncate block"},Il=["disabled"],Bl=["title"],Ol={class:"p-2 space-y-2"},Fl={key:0,class:"w-full flex flex-col md:flex-row flex-justify-between gap-2"},Pl={key:0,"data-testid":"start-time-inputs","aria-label":"開始時間輸入區域"},Nl={key:0,"data-testid":"end-time-inputs","aria-label":"結束時間輸入區域"},Al={key:1,"aria-label":"日期範圍快捷選項"},Ll={class:"flex flex-wrap gap-2"},Hl=["aria-label","data-testid","onClick"],ql={key:2},Ul={class:"flex flex-wrap gap-2"},zl={class:"calendar-container overflow-auto"},Wl={key:0},lr=a.defineComponent({__name:"DateRange",props:{modelValue:{default:null},monthDisplayMode:{},placeholderOverrides:{default:()=>({})},separator:{default:" ~ "},showShortcuts:{type:Boolean,default:!0},incomplete:{type:Boolean,default:!0},maxRange:{default:void 0},minRange:{default:void 0},mode:{default:"auto"},theme:{default:()=>"violet"},calendar:{default:"gregory"},locale:{default:"zh-TW"},customLocaleMessages:{},outputType:{default:"iso"},useStrictISO:{type:Boolean,default:!1},weekStartsOn:{default:0},minDate:{default:void 0},maxDate:{default:void 0},dateSeparator:{default:"-"},dateFormat:{default:"YYYY-MM-DD"},timeFormat:{},showTime:{type:Boolean,default:!1},enableSeconds:{type:Boolean,default:!0},use24Hour:{type:Boolean,default:!0},useLocalizedPeriod:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},inputEnabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},showClearButton:{type:Boolean,default:!0},showErrorMessage:{type:Boolean,default:!0},useI18n:{type:Boolean,default:!0},customErrorMessages:{default:()=>({})}},emits:["update:modelValue","change","validation"],setup(n,{expose:e,emit:t}){const r=n,o=t,l=a.ref(null),s=a.ref(null),i=a.ref(null),u=a.ref(null),c=a.ref(null),h=a.ref(null),v=a.ref({}),{width:g}=Sl(),T=a.computed(()=>r.monthDisplayMode?r.monthDisplayMode:g.value<768?"single":"dual"),x=a.computed(()=>r.timeFormat?r.timeFormat:r.enableSeconds?r.use24Hour?"HH:mm:ss":"hh:mm:ss A":r.use24Hour?"HH:mm":"hh:mm A"),f=Ml({calendar:r.calendar,modelValue:r.modelValue,showTime:r.showTime,required:r.required,disabled:r.disabled,dateFormat:r.dateFormat,timeFormat:x.value,outputType:r.outputType,useStrictISO:r.useStrictISO,enableSeconds:r.enableSeconds,minDate:r.minDate,maxDate:r.maxDate,maxRange:r.maxRange,minRange:r.minRange,incomplete:r.incomplete,locale:r.locale},{containerRef:l,calendarRef:s,startDateInputRef:i,endDateInputRef:u,startTimeInputRef:c,endTimeInputRef:h}),{setLocale:y,getPlaceholderMessage:m}=je(r.locale);f.setEmitters({update:B=>o("update:modelValue",B),change:B=>o("change",B),validation:(B,E,A)=>o("validation",B,E,A)});const{themeClasses:S,containerAttributes:w,setColor:p,setMode:b}=or(),D=a.computed(()=>{const B={start:m("range.start"),end:m("range.end"),year:m("date.year"),month:m("date.month"),day:m("date.day"),hour:m("time.hour"),minute:m("time.minute"),second:m("time.second")};return{start:r.placeholderOverrides?.start||B.start,end:r.placeholderOverrides?.end||B.end,hour:r.placeholderOverrides?.hour||B.hour,minute:r.placeholderOverrides?.minute||B.minute,second:r.placeholderOverrides?.second||B.second,year:r.placeholderOverrides?.year||B.year,month:r.placeholderOverrides?.month||B.month,day:r.placeholderOverrides?.day||B.day}}),d=a.computed(()=>r.dateFormat),$=a.computed(()=>({...f.mergedErrors.value,...v.value})),k=a.computed(()=>Object.keys(R.value).length>0);a.watch(()=>r.theme,B=>{B&&p(B)},{immediate:!0}),a.watch(()=>r.mode,B=>{b(B)},{immediate:!0}),a.watch(()=>r.locale,B=>{B&&y(B)},{immediate:!0}),a.watch(()=>r.calendar,B=>{re.isCalendarSupported(B)?delete v.value.calendar:v.value.calendar="calendar.unsupported"},{immediate:!0}),a.onBeforeMount(()=>{y(r.locale)}),e({reset:f.clearRange,validate:f.validate,setRange:f.setRange,focusStartDate:f.focusStartDate,focusEndDate:f.focusEndDate,setTheme:p,setDarkMode:()=>b("dark"),setLightMode:()=>b("light"),setAutoMode:()=>b("auto"),getErrors:()=>R.value,hasErrors:()=>k.value});const{showCalendar:O,startDateConstraintsStr:H,endDateConstraintsStr:U,shortcuts:q,startDateTime:j,endDateTime:_,hasRangeValue:V,mergedErrors:R,mergedErrorParams:M,handleStartDateValidation:F,handleEndDateValidation:N,handleStartTimeValidation:K,handleEndTimeValidation:ne,handleStartDateComplete:te,handleEndDateComplete:Y,handleStartTimeComplete:C,handleEndTimeComplete:P,handleCalendarRangeSelect:Q,handleStartNavigateToDate:W,handleEndNavigateToDate:L,handleTimeSelect:z,toggleCalendar:Z,applyShortcut:le,clearRange:se,focusStartDate:me,focusEndDate:ie}=f;return(B,E)=>(a.openBlock(),a.createElementBlock(a.Fragment,null,[a.createElementVNode("div",a.mergeProps({class:["date-range-wrapper relative w-full",[a.unref(S),B.showTime?"min-w-[300px]":"min-w-[200px]"]]},a.unref(w),{ref_key:"containerRef",ref:l}),[a.createElementVNode("div",{class:a.normalizeClass(["date-picker-container flex w-full items-center px-2 py-1 rounded-sm transition-all duration-200 bg-vdt-surface text-vdt-content overflow-hidden disabled:opacity-50 disabled:cursor-not-allowed",[{"border-red-500 ring-2 ring-red-200":k.value}]])},[a.createElementVNode("button",{type:"button",class:"grid grid-cols-[1fr_auto_1fr] gap-1 w-full cursor-pointer transition-colors duration-200 disabled:opacity-50 disabled:cursor-not-allowed",disabled:B.disabled,onClick:E[0]||(E[0]=(...A)=>a.unref(Z)&&a.unref(Z)(...A)),"aria-label":"選擇日期範圍"},[a.createElementVNode("div",{class:"text-center min-w-0 max-w-[130px] sm:max-w-none",title:D.value.start,"aria-label":"開始日期"},[B.modelValue?.start?(a.openBlock(),a.createElementBlock("span",xl,a.toDisplayString(B.modelValue?.start),1)):(a.openBlock(),a.createElementBlock("span",El,a.toDisplayString(D.value.start),1))],8,Tl),a.createElementVNode("div",Cl,a.toDisplayString(B.separator),1),a.createElementVNode("div",{class:"text-center min-w-0 max-w-[130px] sm:max-w-none",title:D.value.end,"aria-label":"結束日期"},[B.modelValue?.end?(a.openBlock(),a.createElementBlock("span",Rl,a.toDisplayString(B.modelValue?.end),1)):(a.openBlock(),a.createElementBlock("span",Vl,a.toDisplayString(D.value.end),1))],8,Yl)],8,wl),a.createElementVNode("div",{class:a.normalizeClass(["date-picker-icon-container relative group cursor-pointer flex justify-center items-center flex-shrink-0",{"cursor-not-allowed":B.disabled}])},[a.createElementVNode("button",{type:"button","aria-label":"開啟日曆",class:a.normalizeClass(["date-picker-icon text-gray-400 hover:text-gray-600 transition-colors disabled:cursor-not-allowed",{"group-hover:opacity-0":a.unref(V)&&!B.disabled&&B.showClearButton}]),disabled:B.disabled,onClick:E[1]||(E[1]=a.withModifiers(A=>a.unref(Z)?.(),["stop","prevent"]))},[a.createVNode(Qa,{class:"h-5 w-5"})],10,Il),a.unref(V)&&!B.disabled&&B.showClearButton?(a.openBlock(),a.createElementBlock("button",{key:0,type:"button","aria-label":"清除日期",class:"date-picker-icon absolute inset-0 text-gray-400 hover:text-red-500 opacity-0 group-hover:opacity-100",onClick:E[2]||(E[2]=a.withModifiers((...A)=>a.unref(se)&&a.unref(se)(...A),["stop"])),title:"清除日期"+(B.showTime?"時間":"")},[a.createVNode(Xa,{class:"h-4 w-4"})],8,Bl)):a.createCommentVNode("",!0)],2)],2),a.unref(O)&&!B.disabled?(a.openBlock(),a.createElementBlock("div",{key:0,ref_key:"calendarRef",ref:s,class:a.normalizeClass(["absolute mt-1 bg-vdt-surface-elevated border border-vdt-outline rounded-lg shadow-lg z-10 overflow-auto",["max-w-[95vw]","max-h-[80vh] overflow-auto","sm:max-h-[70vh]",T.value==="single"?"min-w-[275px]":"min-w-[275px] md:min-w-[570px]"]]),onClick:E[9]||(E[9]=a.withModifiers(()=>{},["stop"])),role:"dialog","aria-modal":"true","aria-label":"date-range-picker"},[a.createElementVNode("div",Ol,[B.inputEnabled&&T.value==="dual"?(a.openBlock(),a.createElementBlock("div",Fl,[a.createElementVNode("div",{"data-testid":"start-date-inputs","aria-label":"開始日期輸入區域",onClick:E[5]||(E[5]=a.withModifiers((...A)=>a.unref(me)&&a.unref(me)(...A),["stop"])),class:"flex-1 flex w-full items-center px-2 py-1 gap-2 border border-vdt-outline bg-vdt-surface text-vdt-content rounded-sm focus-within:ring-2 focus-within:border-vdt-theme-500 focus-within:ring-vdt-theme-200 transition-all duration-200"},[a.createVNode(qt,{ref_key:"startDateInputRef",ref:i,modelValue:a.unref(j).inputDateValue.value,"onUpdate:modelValue":E[3]||(E[3]=A=>a.unref(j).inputDateValue.value=A),"year-placeholder":D.value.year,"month-placeholder":D.value.month,"day-placeholder":D.value.day,"max-date":a.unref(H).maxDate,"min-date":a.unref(H).minDate,"date-format":d.value,onValidation:a.unref(F),onComplete:a.unref(te)},null,8,["modelValue","year-placeholder","month-placeholder","day-placeholder","max-date","min-date","date-format","onValidation","onComplete"]),B.showTime?(a.openBlock(),a.createElementBlock("div",Pl,[a.createVNode(Ut,{ref_key:"startTimeInputRef",ref:c,modelValue:a.unref(j).inputTimeValue.value,"onUpdate:modelValue":E[4]||(E[4]=A=>a.unref(j).inputTimeValue.value=A),"hour-placeholder":D.value.hour,"minute-placeholder":D.value.minute,"second-placeholder":D.value.second,"enable-seconds":B.enableSeconds,use24Hour:B.use24Hour,locale:B.locale,onValidation:a.unref(K),onComplete:a.unref(C),onNavigateToDate:a.unref(W)},null,8,["modelValue","hour-placeholder","minute-placeholder","second-placeholder","enable-seconds","use24Hour","locale","onValidation","onComplete","onNavigateToDate"])])):a.createCommentVNode("",!0)]),a.createElementVNode("div",{"data-testid":"end-date-inputs","aria-label":"結束日期輸入區域",onClick:E[8]||(E[8]=a.withModifiers((...A)=>a.unref(ie)&&a.unref(ie)(...A),["stop"])),class:"flex-1 flex w-full items-center gap-2 px-2 py-1 border border-vdt-outline bg-vdt-surface text-vdt-content rounded-sm focus-within:ring-2 focus-within:border-vdt-theme-500 focus-within:ring-vdt-theme-200 transition-all duration-200"},[a.createVNode(qt,{ref_key:"endDateInputRef",ref:u,modelValue:a.unref(_).inputDateValue.value,"onUpdate:modelValue":E[6]||(E[6]=A=>a.unref(_).inputDateValue.value=A),"year-placeholder":D.value.year,"month-placeholder":D.value.month,"day-placeholder":D.value.day,"min-date":a.unref(U).minDate,"max-date":a.unref(U).maxDate,"date-format":d.value,onValidation:a.unref(N),onComplete:a.unref(Y)},null,8,["modelValue","year-placeholder","month-placeholder","day-placeholder","min-date","max-date","date-format","onValidation","onComplete"]),B.showTime?(a.openBlock(),a.createElementBlock("div",Nl,[a.createVNode(Ut,{ref_key:"endTimeInputRef",ref:h,modelValue:a.unref(_).inputTimeValue.value,"onUpdate:modelValue":E[7]||(E[7]=A=>a.unref(_).inputTimeValue.value=A),"hour-placeholder":D.value.hour,"minute-placeholder":D.value.minute,"second-placeholder":D.value.second,"enable-seconds":B.enableSeconds,use24Hour:B.use24Hour,locale:B.locale,onValidation:a.unref(ne),onComplete:a.unref(P),onNavigateToDate:a.unref(L)},null,8,["modelValue","hour-placeholder","minute-placeholder","second-placeholder","enable-seconds","use24Hour","locale","onValidation","onComplete","onNavigateToDate"])])):a.createCommentVNode("",!0)])])):a.createCommentVNode("",!0),a.unref(q).length>0&&B.showShortcuts?(a.openBlock(),a.createElementBlock("div",Al,[a.createElementVNode("div",Ll,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(a.unref(q),A=>(a.openBlock(),a.createElementBlock("button",{key:A.label,type:"button","aria-label":`選擇${A.label}範圍`,"data-testid":`shortcut-${A.label.toLowerCase().replace(/\s+/g,"-")}`,class:"px-3 py-1 text-xs bg-vdt-outline text-vdt-content hover:bg-vdt-interactive-hover rounded-sm transition-colors",onClick:G=>a.unref(le)(A)},a.toDisplayString(A.label),9,Hl))),128)),a.renderSlot(B.$slots,"shortcuts",{applyShortcut:a.unref(le),shortcuts:a.unref(q),currentRange:B.modelValue})])])):B.$slots.shortcuts&&B.showShortcuts?(a.openBlock(),a.createElementBlock("div",ql,[a.createElementVNode("div",Ul,[a.renderSlot(B.$slots,"shortcuts",{applyShortcut:a.unref(le),shortcuts:a.unref(q),currentRange:B.modelValue})])])):a.createCommentVNode("",!0),a.createElementVNode("div",zl,[a.createVNode(bl,{"month-display-mode":T.value,showTimeSelector:B.showTime,calendar:B.calendar,"range-start":a.unref(j).internalDateTime.value,"range-end":a.unref(_).internalDateTime.value,"start-time-value":a.unref(j).inputTimeValue.value,"end-time-value":a.unref(_).inputTimeValue.value,locale:B.locale,"week-starts-on":B.weekStartsOn,"min-date":a.unref(oe)(B.minDate),"max-date":a.unref(oe)(B.maxDate),"enable-seconds":B.enableSeconds,"use24-hour":B.use24Hour,onRangeSelect:a.unref(Q),onTimeSelect:a.unref(z)},null,8,["month-display-mode","showTimeSelector","calendar","range-start","range-end","start-time-value","end-time-value","locale","week-starts-on","min-date","max-date","enable-seconds","use24-hour","onRangeSelect","onTimeSelect"])])])],2)):a.createCommentVNode("",!0)],16),B.showErrorMessage&&k.value?(a.openBlock(),a.createElementBlock("div",Wl,[a.renderSlot(B.$slots,"error",{errors:$.value,hasErrors:k.value},()=>[a.createVNode(Ka,{errors:a.unref(R),locale:B.locale,"use-i18n":B.useI18n,"custom-messages":B.customErrorMessages,errorParams:a.unref(M)},a.createSlots({_:2},[a.renderList(B.$slots,(A,G)=>({name:G,fn:a.withCtx(pe=>[a.renderSlot(B.$slots,G,a.normalizeProps(a.guardReactiveProps(pe)))])}))]),1032,["errors","locale","use-i18n","custom-messages","errorParams"])])])):a.createCommentVNode("",!0)],64))}}),sr={install(n){n.component("VueDatepicker",Kt),n.component("DatePicker",Kt),n.component("DateRange",lr)}};fe.DatePicker=Kt,fe.DateRange=lr,fe.RocFormatPlugin=Lt,fe.VueDatepicker=sr,fe.default=sr,Object.defineProperties(fe,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});