import{d as Re}from"./dataProvider-B62Oym03.js";import{g as De,aq as ze,aR as Qt,aB as vt,ar as ne,as as Be,ae as ke,aw as lt,aS as ea,b as Ce,c as i,i as m,t as K,aT as ta,F as be,E as G,P as ct,Q as Ke,K as Et,aU as aa,L as na,aV as la,n as je,d as ce,aW as Xe,v as C,au as Ot,az as we,a3 as _,a2 as W,aX as wt,aY as ra,av as Ne,aZ as Dt,p as me,aA as Te,y as Y,x as Ye,aJ as it,a_ as nt,aC as ht,a$ as Yt,b0 as ia,b1 as We,b2 as oa,b3 as Bt,b4 as Ut,b5 as Ct,b6 as Vt,I as Rt,aO as sa,b7 as ua,b8 as da,b9 as ca,ba as ma,bb as fa,bc as xt,aG as va,Z as ha,aK as ga,_ as ya,o as $,C as pe,j as ie,w as d,A as se,D as ue,G as tt,a0 as ka,z as Oe,l as Pe,B as ba,q as Le,O as pa,bd as wa,J as Da,M as st,H as Ca}from"./index-CHEqx3ZK.js";import{V as ut}from"./VAlert-B7dotCy7.js";import{V as Va}from"./VSkeletonLoader-Bcvvvbke.js";import{a as xa,V as at}from"./VTooltip-C168gwPH.js";import{V as qe,b as Ta}from"./VChip-B02B673U.js";import{a as ge,V as $e}from"./VRow-7L_239rt.js";import{e as Sa,f as Ma,V as Ae,g as _a}from"./VTextField-BmfQXFFg.js";import{V as Ia}from"./VTextarea-uYG2fN8H.js";import{V as Pa}from"./VSwitch-CsrhG2o9.js";import{u as Na,a as Aa,V as mt,b as ft,c as Fa,h as Ea,d as Oa,m as Ya,e as Ba,f as Ua,g as Ra}from"./VSelect-B5ZKU6ZJ.js";import{V as La}from"./VCheckboxBtn-L9oezRC0.js";const Ha=me({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:Boolean,search:String,...Ba({filterKeys:["title"]}),...Ya(),...Te(_a({modelValue:null,role:"combobox"}),["validationValue","dirty"])},"VAutocomplete"),$a=De()({name:"VAutocomplete",props:Ha(),emits:{"update:focused":e=>!0,"update:search":e=>!0,"update:modelValue":e=>!0,"update:menu":e=>!0},setup(e,t){let{slots:n}=t;const{t:r}=ze(),a=W(),s=we(!1),l=we(!0),u=we(!1),o=W(),v=W(),g=we(-1),T=we(null),{items:k,transformIn:y,transformOut:F}=Qt(e),{textColorClasses:c,textColorStyles:D}=vt(()=>{var h;return(h=a.value)==null?void 0:h.color}),{InputIcon:p}=Sa(e),N=ne(e,"search",""),I=ne(e,"modelValue",[],h=>y(h===null?[null]:Be(h)),h=>{const O=F(h);return e.multiple?O:O[0]??null}),q=_(()=>typeof e.counterValue=="function"?e.counterValue(I.value):typeof e.counterValue=="number"?e.counterValue:I.value.length),j=Ma(e),{filteredItems:S,getMatches:w}=Na(e,k,()=>T.value??(l.value?"":N.value)),P=_(()=>e.hideSelected&&T.value===null?S.value.filter(h=>!I.value.some(O=>O.value===h.value)):S.value),H=Ne(()=>e.closableChips&&!j.isReadonly.value&&!j.isDisabled.value),M=_(()=>!!(e.chips||n.chip)),z=_(()=>M.value||!!n.selection),oe=_(()=>I.value.map(h=>h.props.value)),f=_(()=>P.value.find(h=>h.type==="item"&&!h.props.disabled)),V=_(()=>{var O;return(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&N.value===((O=f.value)==null?void 0:O.title))&&P.value.length>0&&!l.value&&!u.value}),ee=_(()=>e.hideNoData&&!P.value.length||j.isReadonly.value||j.isDisabled.value),R=ne(e,"menu"),B=_({get:()=>R.value,set:h=>{var O;R.value&&!h&&((O=o.value)!=null&&O.ΨopenChildren.size)||h&&ee.value||(R.value=h)}}),{menuId:fe,ariaExpanded:Se,ariaControls:b}=Aa(e,B),A=W(),U=W(),ae=W(),x=Oa(A,a),{onTabKeydown:E}=Ua({groups:[{type:"element",contentRef:U},{type:"list",contentRef:A,displayItemsCount:()=>P.value.length},{type:"element",contentRef:ae}],onLeave:()=>{var h;B.value=!1,(h=a.value)==null||h.focus()}});function Q(h){e.openOnClear&&(B.value=!0),N.value=""}function le(){ee.value||(B.value=!0)}function ve(h){ee.value||(s.value&&(h.preventDefault(),h.stopPropagation()),B.value=!B.value)}function Ve(h){var O,L;h.key==="Tab"&&E(h),(O=A.value)!=null&&O.$el.contains(h.target)&&(wt(h)||h.key==="Backspace")&&((L=a.value)==null||L.focus())}function xe(h){var Me,re,Ee,J,de;if(j.isReadonly.value)return;const O=(Me=a.value)==null?void 0:Me.selectionStart,L=I.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(h.key)&&h.preventDefault(),["Enter","ArrowDown"].includes(h.key)&&(B.value=!0),["Escape"].includes(h.key)&&(B.value=!1),V.value&&["Enter","Tab"].includes(h.key)&&f.value&&!I.value.some(te=>{let{value:Ie}=te;return Ie===f.value.value})&&Ue(f.value),h.key==="ArrowDown"&&V.value&&((re=A.value)==null||re.focus("next")),["Backspace","Delete"].includes(h.key)){if(!e.multiple&&z.value&&I.value.length>0&&!N.value)return Ue(I.value[0],!1);if(~g.value){h.preventDefault();const te=g.value;Ue(I.value[g.value],!1),g.value=te>=L-1?L-2:te}else h.key==="Backspace"&&!N.value&&(g.value=L-1);return}if(e.multiple)if(h.key==="ArrowLeft"){if(g.value<0&&O&&O>0)return;const te=g.value>-1?g.value-1:L-1;if(I.value[te])g.value=te;else{const Ie=((Ee=N.value)==null?void 0:Ee.length)??null;g.value=-1,(J=a.value)==null||J.setSelectionRange(Ie,Ie)}}else if(h.key==="ArrowRight"){if(g.value<0)return;const te=g.value+1;I.value[te]?g.value=te:(g.value=-1,(de=a.value)==null||de.setSelectionRange(0,0))}else~g.value&&wt(h)&&(g.value=-1)}function X(h){if(Dt(a.value,":autofill")||Dt(a.value,":-webkit-autofill")){const O=k.value.find(L=>L.title===h.target.value);O&&Ue(O)}}function Fe(){var h;e.eager&&((h=v.value)==null||h.calculateVisibleItems())}function Ze(){var h;s.value&&(l.value=!0,(h=a.value)==null||h.focus()),T.value=null}function Qe(h){s.value=!0,setTimeout(()=>{u.value=!0})}function He(h){u.value=!1}function qt(h){(h==null||h===""&&!e.multiple&&!z.value)&&(I.value=[])}function Gt(h){var L;const O=(L=o.value)==null?void 0:L.contentEl;O!=null&&O.contains(h.relatedTarget)&&(s.value=!0)}const ot=we(!1);function Ue(h){let O=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!h||h.props.disabled))if(e.multiple){const L=I.value.findIndex(re=>(e.valueComparator||ra)(re.value,h.value)),Me=O??!~L;if(~L){const re=Me?[...I.value,h]:[...I.value];re.splice(L,1),I.value=re}else Me&&(I.value=[...I.value,h]);e.clearOnSelect&&(N.value="")}else{const L=O!==!1;I.value=L?[h]:[],T.value=l.value?"":N.value??"",N.value=L&&!z.value?h.title:"",lt(()=>{B.value=!1,l.value=!0})}}return ke(s,(h,O)=>{var L;h!==O&&(h?(ot.value=!0,N.value=e.multiple||z.value?"":String(((L=I.value.at(-1))==null?void 0:L.props.title)??""),l.value=!0,lt(()=>ot.value=!1)):(!e.multiple&&N.value==null&&(I.value=[]),B.value=!1,!l.value&&N.value&&(T.value=N.value),N.value="",g.value=-1))}),ke(N,h=>{!s.value||ot.value||(h&&(B.value=!0),l.value=!h)}),ke(B,h=>{if(!e.hideSelected&&h&&I.value.length&&l.value){const O=P.value.findIndex(L=>I.value.some(Me=>L.value===Me.value));ea&&window.requestAnimationFrame(()=>{var L;O>=0&&((L=v.value)==null||L.scrollToIndex(O))})}h&&(T.value=null)}),ke(k,(h,O)=>{B.value||s.value&&!O.length&&h.length&&(B.value=!0)}),Ce(()=>{const h=!!(!e.hideNoData||P.value.length||n["prepend-item"]||n["append-item"]||n["no-data"]),O=I.value.length>0,L=Ae.filterProps(e),Me={search:N,filteredItems:S.value};return i(Ae,G({ref:a},L,{modelValue:N.value,"onUpdate:modelValue":[re=>N.value=re,qt],focused:s.value,"onUpdate:focused":re=>s.value=re,validationValue:I.externalValue,counterValue:q.value,dirty:O,onChange:X,class:["v-autocomplete",`v-autocomplete--${e.multiple?"multiple":"single"}`,{"v-autocomplete--active-menu":B.value,"v-autocomplete--chips":!!e.chips,"v-autocomplete--selection-slot":!!z.value,"v-autocomplete--selecting-index":g.value>-1},e.class],style:e.style,readonly:j.isReadonly.value,placeholder:O?void 0:e.placeholder,"onClick:clear":Q,"onMousedown:control":le,onKeydown:xe,onBlur:Gt,"aria-expanded":Se.value,"aria-controls":b.value}),{...n,default:re=>{let{id:Ee}=re;return m(be,null,[i(mt,G({id:fe.value,ref:o,modelValue:B.value,"onUpdate:modelValue":J=>B.value=J,activator:"parent",contentClass:"v-autocomplete__content",disabled:ee.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,onAfterEnter:Fe,onAfterLeave:Ze},e.menuProps),{default:()=>[i(ft,{onFocusin:Qe,onKeydown:Ve},{default:()=>[n["menu-header"]&&m("header",{ref:U},[n["menu-header"](Me)]),h&&i(ct,G({key:"autocomplete-list",ref:A,filterable:!0,selected:oe.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:J=>J.preventDefault(),onFocusout:He,tabindex:"-1",selectable:!!P.value.length,"aria-live":"polite","aria-labelledby":`${Ee.value}-label`,"aria-multiselectable":e.multiple,color:e.itemColor??e.color},x,e.listProps),{default:()=>{var J,de,te;return[(J=n["prepend-item"])==null?void 0:J.call(n),!P.value.length&&!e.hideNoData&&(((de=n["no-data"])==null?void 0:de.call(n))??i(Ke,{key:"no-data",title:r(e.noDataText)},null)),i(Fa,{ref:v,renderless:!0,items:P.value,itemKey:"value"},{default:Ie=>{var kt,bt,pt;let{item:Z,index:_e,itemRef:he}=Ie;const yt=G(Z.props,{ref:he,key:Z.value,active:V.value&&Z===f.value?!0:void 0,onClick:()=>Ue(Z,null),"aria-posinset":_e+1,"aria-setsize":P.value.length});return Z.type==="divider"?((kt=n.divider)==null?void 0:kt.call(n,{props:Z.raw,index:_e}))??i(Et,G(Z.props,{key:`divider-${_e}`}),null):Z.type==="subheader"?((bt=n.subheader)==null?void 0:bt.call(n,{props:Z.raw,index:_e}))??i(aa,G(Z.props,{key:`subheader-${_e}`}),null):((pt=n.item)==null?void 0:pt.call(n,{item:Z,index:_e,props:yt}))??i(Ke,G(yt,{role:"option"}),{prepend:et=>{let{isSelected:Xt}=et;return m(be,null,[e.multiple&&!e.hideSelected?i(La,{key:Z.value,modelValue:Xt,ripple:!1,tabindex:"-1","aria-hidden":!0,onClick:Zt=>Zt.preventDefault()},null):void 0,Z.props.prependAvatar&&i(na,{image:Z.props.prependAvatar},null),Z.props.prependIcon&&i(K,{icon:Z.props.prependIcon},null)])},title:()=>{var et;return l.value?Z.title:Ea("v-autocomplete",Z.title,(et=w(Z))==null?void 0:et.title)}})}}),(te=n["append-item"])==null?void 0:te.call(n)]}}),n["menu-footer"]&&m("footer",{ref:ae},[n["menu-footer"](Me)])]})]}),I.value.map((J,de)=>{function te(he){he.stopPropagation(),he.preventDefault(),Ue(J,!1)}const Ie=G(qe.filterProps(J.props),{"onClick:close":te,onKeydown(he){he.key!=="Enter"&&he.key!==" "||(he.preventDefault(),he.stopPropagation(),te(he))},onMousedown(he){he.preventDefault(),he.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0}),Z=M.value?!!n.chip:!!n.selection,_e=Z?la(M.value?n.chip({item:J,index:de,props:Ie}):n.selection({item:J,index:de})):void 0;if(!(Z&&!_e))return m("div",{key:J.value,class:ce(["v-autocomplete__selection",de===g.value&&["v-autocomplete__selection--selected",c.value]]),style:je(de===g.value?D.value:{})},[M.value?n.chip?i(Xe,{key:"chip-defaults",defaults:{VChip:{closable:H.value,size:"small",text:J.title}}},{default:()=>[_e]}):i(qe,G({key:"chip",closable:H.value,size:"small",text:J.title,disabled:J.props.disabled},Ie),null):_e??m("span",{class:"v-autocomplete__selection-text"},[J.title,e.multiple&&de!0,"click:month":()=>!0,"click:prev":()=>!0,"click:next":()=>!0,"click:prev-year":()=>!0,"click:next-year":()=>!0},setup(e,t){let{emit:n,slots:r}=t;const{t:a}=ze(),s=_(()=>Array.isArray(e.disabled)?e.disabled.includes("text"):!!e.disabled),l=_(()=>Array.isArray(e.disabled)?e.disabled.includes("mode"):!!e.disabled),u=_(()=>Array.isArray(e.disabled)?e.disabled.includes("prev-month"):!!e.disabled),o=_(()=>Array.isArray(e.disabled)?e.disabled.includes("next-month"):!!e.disabled),v=_(()=>Array.isArray(e.disabled)?e.disabled.includes("prev-year"):!!e.disabled),g=_(()=>Array.isArray(e.disabled)?e.disabled.includes("next-year"):!!e.disabled);function T(){n("click:prev")}function k(){n("click:next")}function y(){n("click:prev-year")}function F(){n("click:next-year")}function c(){n("click:year")}function D(){n("click:month")}return Ce(()=>{const p={VBtn:{density:"comfortable",variant:"text"}},N=i(Y,{"data-testid":"prev-month",disabled:u.value,icon:e.prevIcon,"aria-label":a("$vuetify.datePicker.ariaLabel.previousMonth"),onClick:T},null),I=i(Y,{"data-testid":"next-month",disabled:o.value,icon:e.nextIcon,"aria-label":a("$vuetify.datePicker.ariaLabel.nextMonth"),onClick:k},null),q=i(Y,{"data-testid":"prev-year",disabled:v.value,icon:e.prevIcon,"aria-label":a("$vuetify.datePicker.ariaLabel.previousYear"),onClick:y},null),j=i(Y,{"data-testid":"next-year",disabled:g.value,icon:e.nextIcon,"aria-label":a("$vuetify.datePicker.ariaLabel.nextYear"),onClick:F},null),S=i(Y,{class:"v-date-picker-controls__only-month-btn","data-testid":"month-btn",density:"default",disabled:s.value,text:e.monthText,appendIcon:e.modeIcon,rounded:!0,"aria-label":a("$vuetify.datePicker.ariaLabel.selectMonth"),onClick:D},null),w=i(Y,{class:"v-date-picker-controls__only-year-btn","data-testid":"year-btn",density:"default",disabled:l.value,text:e.yearText,appendIcon:e.modeIcon,rounded:!0,"aria-label":a("$vuetify.datePicker.ariaLabel.selectYear"),onClick:c},null),P=i(Y,{class:"v-date-picker-controls__year-btn","data-testid":"year-btn",density:"default",disabled:l.value,text:e.text,appendIcon:e.modeIcon,rounded:!0,"aria-label":a("$vuetify.datePicker.ariaLabel.selectYear"),onClick:c},null),H=m(be,null,[i(Y,{class:"v-date-picker-controls__month-btn","data-testid":"month-btn",height:"36",disabled:s.value,text:e.text,rounded:!0,"aria-label":a("$vuetify.datePicker.ariaLabel.selectMonth"),onClick:D},null),i(Y,{class:"v-date-picker-controls__mode-btn","data-testid":"year-btn",disabled:l.value,icon:e.modeIcon,"aria-label":a("$vuetify.datePicker.ariaLabel.selectYear"),onClick:c},null)]),M={viewMode:e.viewMode,disabled:Array.isArray(e.disabled)?e.disabled:[],monthYearText:e.text??"",monthText:e.monthText??"",yearText:e.yearText??"",openMonths:D,openYears:c,prevMonth:T,nextMonth:k,prevYear:y,nextYear:F},z=m(be,null,[e.noMonthPicker?P:H,i(Ye,null,null),m("div",{class:"v-date-picker-controls__month"},[N,I])]),oe=m(be,null,[m("div",{class:"v-date-picker-controls__month"},[N,S,I]),i(Ye,null,null),m("div",{class:"v-date-picker-controls__year"},[q,w,j])]);return i(Xe,{defaults:p},{default:()=>{var f;return[m("div",{class:ce(["v-date-picker-controls",`v-date-picker-controls--variant-${e.controlVariant}`]),style:{"--v-date-picker-controls-height":it(e.controlHeight)}},[((f=r.default)==null?void 0:f.call(r,M))??m(be,null,[e.controlVariant==="modal"&&z,e.controlVariant==="docked"&&oe])])]}})}),{}}}),ja=me({appendIcon:nt,color:String,header:String,transition:String,onClick:ia()},"VDatePickerHeader"),St=De()({name:"VDatePickerHeader",props:ja(),emits:{click:()=>!0,"click:append":()=>!0},setup(e,t){let{emit:n,slots:r}=t;const{backgroundColorClasses:a,backgroundColorStyles:s}=ht(()=>e.color);function l(){n("click")}function u(){n("click:append")}return Ce(()=>{const o=!!(r.default||e.header),v=!!(r.append||e.appendIcon);return m("div",{class:ce(["v-date-picker-header",{"v-date-picker-header--clickable":!!e.onClick},a.value]),style:je(s.value),onClick:l},[r.prepend&&m("div",{key:"prepend",class:"v-date-picker-header__prepend"},[r.prepend()]),o&&i(Yt,{key:"content",name:e.transition},{default:()=>{var g;return[m("div",{key:e.header,class:"v-date-picker-header__content"},[((g=r.default)==null?void 0:g.call(r))??e.header])]}}),v&&m("div",{class:"v-date-picker-header__append"},[r.append?i(Xe,{key:"append-defaults",disabled:!e.appendIcon,defaults:{VBtn:{icon:e.appendIcon,variant:"text"}}},{default:()=>{var g;return[(g=r.append)==null?void 0:g.call(r)]}}):i(Y,{key:"append-btn",icon:e.appendIcon,variant:"text",onClick:u},null)])])}),{}}}),za=me({allowedDates:[Array,Function],disabled:{type:Boolean,default:null},displayValue:null,modelValue:Array,month:[Number,String],max:null,min:null,showAdjacentMonths:Boolean,year:[Number,String],weekdays:{type:Array,default:()=>[0,1,2,3,4,5,6]},weeksInMonth:{type:String,default:"dynamic"},firstDayOfWeek:{type:[Number,String],default:void 0},firstDayOfYear:{type:[Number,String],default:void 0},weekdayFormat:String},"calendar");function Wa(e){const t=We(),n=ne(e,"modelValue",[],c=>Be(c).map(D=>t.date(D))),r=_(()=>e.displayValue?t.date(e.displayValue):n.value.length>0?t.date(n.value[0]):e.min?t.date(e.min):Array.isArray(e.allowedDates)?t.date(e.allowedDates[0]):t.date()),a=ne(e,"year",void 0,c=>{const D=c!=null?Number(c):t.getYear(r.value);return t.startOfYear(t.setYear(t.date(),D))},c=>t.getYear(c)),s=ne(e,"month",void 0,c=>{const D=c!=null?Number(c):t.getMonth(r.value),p=t.setYear(t.startOfMonth(t.date()),t.getYear(a.value));return t.setMonth(p,D)},c=>t.getMonth(c)),l=_(()=>{const c=t.toJsDate(t.startOfWeek(t.date(),e.firstDayOfWeek)).getDay();return t.getWeekdays(e.firstDayOfWeek,e.weekdayFormat).filter((D,p)=>e.weekdays.includes((p+c)%7))}),u=_(()=>{const c=t.getWeekArray(s.value,e.firstDayOfWeek),D=c.flat(),p=6*7;if(e.weeksInMonth==="static"&&D.lengthe.weekdays.includes(t.toJsDate(p).getDay())).map((p,N)=>{const I=t.toISO(p),q=!t.isSameMonth(p,s.value),j=t.isSameDay(p,t.startOfMonth(s.value)),S=t.isSameDay(p,t.endOfMonth(s.value)),w=t.isSameDay(p,s.value),P=e.weekdays.length;return{date:p,formatted:t.format(p,"keyboardDate"),isAdjacent:q,isDisabled:F(p),isEnd:S,isHidden:q&&!e.showAdjacentMonths,isSame:w,isSelected:n.value.some(H=>t.isSameDay(p,H)),isStart:j,isToday:t.isSameDay(p,D),isWeekEnd:N%P===P-1,isWeekStart:N%P===0,isoDate:I,localized:t.format(p,"dayOfMonth"),month:t.getMonth(p),year:t.getYear(p)}})}const v=_(()=>{const c=t.startOfWeek(r.value,e.firstDayOfWeek),D=[];for(let N=0;N<=6;N++)D.push(t.addDays(c,N));const p=t.date();return o(D,p)}),g=_(()=>{const c=u.value.flat(),D=t.date();return o(c,D)}),T=_(()=>u.value.map(c=>c.length?t.getWeek(c[0],e.firstDayOfWeek,e.firstDayOfYear):null)),{minDate:k,maxDate:y}=Ht(e);function F(c){if(e.disabled)return!0;const D=t.date(c);return k.value&&t.isBefore(t.endOfDay(D),k.value)||y.value&&t.isAfter(D,y.value)?!0:Array.isArray(e.allowedDates)&&e.allowedDates.length>0?!e.allowedDates.some(p=>t.isSameDay(t.date(p),D)):typeof e.allowedDates=="function"?!e.allowedDates(D):!1}return{displayValue:r,daysInMonth:g,daysInWeek:v,genDays:o,model:n,weeksInMonth:u,weekdayLabels:l,weekNumbers:T}}function Ht(e){const t=We(),n=_(()=>{if(!e.min)return null;const l=t.date(e.min);return t.isValid(l)?l:null}),r=_(()=>{if(!e.max)return null;const l=t.date(e.max);return t.isValid(l)?l:null});function a(l){return n.value&&t.isBefore(l,n.value)?n.value:r.value&&t.isAfter(l,r.value)?r.value:l}function s(l){return(!n.value||t.isAfter(l,n.value))&&(!r.value||t.isBefore(l,r.value))}return{minDate:n,maxDate:r,clampDate:a,isInAllowedRange:s}}const $t=me({color:String,hideWeekdays:Boolean,multiple:[Boolean,Number,String],showWeek:Boolean,readonly:Boolean,transition:{type:String,default:"picker-transition"},reverseTransition:{type:String,default:"picker-reverse-transition"},events:{type:[Array,Function,Object],default:()=>null},eventColor:{type:[Array,Function,Object,String],default:()=>null},...Te(za(),["displayValue"])},"VDatePickerMonth"),Mt=De()({name:"VDatePickerMonth",props:$t(),emits:{"update:modelValue":e=>!0,"update:month":e=>!0,"update:year":e=>!0},setup(e,t){let{emit:n,slots:r}=t;const a=W(),{t:s}=ze(),{daysInMonth:l,model:u,weekNumbers:o,weekdayLabels:v}=Wa(e),g=We(),T=we(),k=we(),y=we(!1),F=Ne(()=>y.value?e.reverseTransition:e.transition);e.multiple==="range"&&u.value.length>0&&(T.value=u.value[0],u.value.length>1&&(k.value=u.value[u.value.length-1]));const c=_(()=>{const S=["number","string"].includes(typeof e.multiple)?Number(e.multiple):1/0;return u.value.length>=S});ke(l,(S,w)=>{w&&(y.value=g.isBefore(S[0].date,w[0].date))});function D(S){const w=g.startOfDay(S);if(u.value.length===0?T.value=void 0:u.value.length===1&&(T.value=u.value[0],k.value=void 0),!T.value)T.value=w,u.value=[T.value];else if(k.value)T.value=S,k.value=void 0,u.value=[T.value];else{if(g.isSameDay(w,T.value)){T.value=void 0,u.value=[];return}else g.isBefore(w,T.value)?(k.value=g.endOfDay(T.value),T.value=w):k.value=g.endOfDay(w);u.value=oa(g,T.value,k.value)}}function p(S){const w=g.format(S.date,"fullDateWithWeekday"),P=S.isToday?"currentDate":"selectDate";return s(`$vuetify.datePicker.ariaLabel.${P}`,w)}function N(S){const w=u.value.findIndex(P=>g.isSameDay(P,S));if(w===-1)u.value=[...u.value,S];else{const P=[...u.value];P.splice(w,1),u.value=P}}function I(S){e.multiple==="range"?D(S):e.multiple?N(S):u.value=[S]}function q(S){const{events:w,eventColor:P}=e;let H,M=[];if(Array.isArray(w)?H=w.includes(S):w instanceof Function?H=w(S)||!1:w?H=w[S]||!1:H=!1,H)H!==!0?M=Be(H):typeof P=="string"?M=[P]:typeof P=="function"?M=Be(P(S)):Array.isArray(P)?M=P:typeof P=="object"&&P!==null&&(M=Be(P[S]));else return[];return M.length?M.filter(Boolean).map(z=>typeof z=="string"?z:"surface-variant"):["surface-variant"]}function j(S){const w=q(S);return w.length?m("div",{class:"v-date-picker-month__events"},[w.map(P=>i(xa,{dot:!0,color:P},null))]):null}Ce(()=>m("div",{class:"v-date-picker-month",style:{"--v-date-picker-days-in-week":e.weekdays.length}},[e.showWeek&&m("div",{key:"weeks",class:"v-date-picker-month__weeks"},[!e.hideWeekdays&&m("div",{key:"hide-week-days",class:"v-date-picker-month__day"},[C(" ")]),o.value.map(S=>m("div",{class:ce(["v-date-picker-month__day","v-date-picker-month__day--adjacent"])},[S]))]),i(Yt,{name:F.value},{default:()=>{var S;return[m("div",{ref:a,key:(S=l.value[0].date)==null?void 0:S.toString(),class:"v-date-picker-month__days"},[!e.hideWeekdays&&v.value.map(w=>m("div",{class:ce(["v-date-picker-month__day","v-date-picker-month__weekday"])},[w])),l.value.map((w,P)=>{var M;const H={props:{class:"v-date-picker-month__day-btn",color:w.isSelected||w.isToday?e.color:void 0,disabled:w.isDisabled,readonly:e.readonly,icon:!0,ripple:!1,variant:w.isSelected?"flat":w.isToday?"outlined":"text","aria-label":p(w),"aria-current":w.isToday?"date":void 0,onClick:()=>I(w.date)},item:w,i:P};return c.value&&!w.isSelected&&(w.isDisabled=!0),m("div",{class:ce(["v-date-picker-month__day",{"v-date-picker-month__day--adjacent":w.isAdjacent,"v-date-picker-month__day--hide-adjacent":w.isHidden,"v-date-picker-month__day--selected":w.isSelected,"v-date-picker-month__day--week-end":w.isWeekEnd,"v-date-picker-month__day--week-start":w.isWeekStart}]),"data-v-date":w.isDisabled?void 0:w.isoDate},[(e.showAdjacentMonths||!w.isAdjacent)&&(((M=r.day)==null?void 0:M.call(r,H))??i(Y,H.props,{default:()=>[w.localized,j(w.isoDate)]}))])})])]}})]))}}),jt=me({color:String,height:[String,Number],min:null,max:null,modelValue:Number,year:Number,allowedMonths:[Array,Function]},"VDatePickerMonths"),_t=De()({name:"VDatePickerMonths",props:jt(),emits:{"update:modelValue":e=>!0},setup(e,t){let{emit:n,slots:r}=t;const a=We(),s=ne(e,"modelValue"),l=_(()=>{let o=a.startOfYear(a.date());return e.year&&(o=a.setYear(o,e.year)),Ut(12).map(v=>{const g=a.format(o,"monthShort"),T=a.format(o,"month"),k=!!(!u(v)||e.min&&a.isAfter(a.startOfMonth(a.date(e.min)),o)||e.max&&a.isAfter(o,a.startOfMonth(a.date(e.max))));return o=a.getNextMonth(o),{isDisabled:k,text:g,label:T,value:v}})});Bt(()=>{s.value=s.value??a.getMonth(a.date())});function u(o){return Array.isArray(e.allowedMonths)&&e.allowedMonths.length?e.allowedMonths.includes(o):typeof e.allowedMonths=="function"?e.allowedMonths(o):!0}return Ce(()=>m("div",{class:"v-date-picker-months",style:{height:it(e.height)}},[m("div",{class:"v-date-picker-months__content"},[l.value.map((o,v)=>{var k;const g={active:s.value===v,ariaLabel:o.label,color:s.value===v?e.color:void 0,disabled:o.isDisabled,rounded:!0,text:o.text,variant:s.value===o.value?"flat":"text",onClick:()=>T(v)};function T(y){if(s.value===y){n("update:modelValue",s.value);return}s.value=y}return((k=r.month)==null?void 0:k.call(r,{month:o,i:v,props:g}))??i(Y,G({key:"month"},g),null)})])])),{}}}),zt=me({color:String,height:[String,Number],min:null,max:null,modelValue:Number,allowedYears:[Array,Function]},"VDatePickerYears"),It=De()({name:"VDatePickerYears",props:zt(),directives:{vIntersect:Ct},emits:{"update:modelValue":e=>!0},setup(e,t){let{emit:n,slots:r}=t;const a=We(),s=ne(e,"modelValue"),l=we(!1),u=_(()=>{const k=a.getYear(a.date());let y=k-100,F=k+52;e.min&&(y=a.getYear(a.date(e.min))),e.max&&(F=a.getYear(a.date(e.max)));let c=a.startOfYear(a.date());return c=a.setYear(c,y),Ut(F-y+1,y).map(D=>{const p=a.format(c,"year");return c=a.setYear(c,a.getYear(c)+1),{text:p,value:D,isDisabled:!T(D)}})});Bt(()=>{s.value=s.value??a.getYear(a.date())});const o=Vt(),v=Vt();function g(){const k=o.el,y=v.el;if(!k||!y)return;const F=k.getBoundingClientRect(),c=y.getBoundingClientRect();k.scrollTop+=c.top-F.top-k.clientHeight/2+c.height/2}function T(k){return Array.isArray(e.allowedYears)&&e.allowedYears.length?e.allowedYears.includes(k):typeof e.allowedYears=="function"?e.allowedYears(k):!0}return Ce(()=>Rt(m("div",{class:"v-date-picker-years",ref:o,style:{height:it(e.height)}},[m("div",{class:"v-date-picker-years__content",onFocus:()=>{var k;return(k=v.el)==null?void 0:k.focus()},onFocusin:()=>l.value=!0,onFocusout:()=>l.value=!1,tabindex:l.value?-1:0},[u.value.map((k,y)=>{var c;const F={ref:s.value===k.value?v:void 0,active:s.value===k.value,color:s.value===k.value?e.color:void 0,rounded:!0,text:k.text,disabled:k.isDisabled,variant:s.value===k.value?"flat":"text",onClick:()=>{if(s.value===k.value){n("update:modelValue",s.value);return}s.value=k.value}};return((c=r.year)==null?void 0:c.call(r,{year:k,i:y,props:F}))??i(Y,G({key:"month"},F),null)})])]),[[Ct,{handler:g},null,{once:!0}]])),{}}}),Ja=sa("v-picker-title"),gt=me({bgColor:String,divided:Boolean,landscape:Boolean,title:String,hideHeader:Boolean,hideTitle:Boolean,...Ra()},"VPicker"),rt=De()({name:"VPicker",props:gt(),setup(e,t){let{slots:n}=t;const{backgroundColorClasses:r,backgroundColorStyles:a}=ht(()=>e.color);return Ce(()=>{const s=ft.filterProps(e),l=!e.hideTitle&&!!(e.title||n.title);return i(ft,G(s,{color:e.bgColor,class:["v-picker",{"v-picker--divided":e.divided,"v-picker--landscape":e.landscape,"v-picker--with-actions":!!n.actions},e.class],style:e.style}),{default:()=>{var u;return[!e.hideHeader&&m("div",{key:"header",class:ce(["v-picker__header-wrapper",r.value]),style:je([a.value])},[l&&i(Ja,{key:"picker-title"},{default:()=>{var o;return[((o=n.title)==null?void 0:o.call(n))??e.title]}}),n.header&&m("div",{class:"v-picker__header"},[n.header()])]),m("div",{class:"v-picker__body"},[(u=n.default)==null?void 0:u.call(n)]),n.actions&&i(Xe,{defaults:{VBtn:{slim:!0,variant:"text"}}},{default:()=>[m("div",{class:"v-picker__actions"},[n.actions()])]})]}})}),{}}}),Ka=me({header:{type:String,default:"$vuetify.datePicker.header"},headerColor:String,headerDateFormat:{type:String,default:"normalDateWithWeekday"},landscapeHeaderWidth:[Number,String],...Te(Lt(),["active","monthText","yearText"]),...$t({weeksInMonth:"static"}),...Te(jt(),["modelValue"]),...Te(zt(),["modelValue"]),...gt({title:"$vuetify.datePicker.title"}),modelValue:null},"VDatePicker"),Pt=De()({name:"VDatePicker",props:Ka(),emits:{"update:modelValue":e=>!0,"update:month":e=>!0,"update:year":e=>!0,"update:viewMode":e=>!0},setup(e,t){let{emit:n,slots:r}=t;const a=We(),{t:s}=ze(),{rtlClasses:l}=ua(),u=ne(e,"modelValue",void 0,x=>Be(x).map(E=>a.date(E)),x=>e.multiple?x:x[0]),o=ne(e,"viewMode"),{minDate:v,maxDate:g,clampDate:T}=Ht(e),k=_(()=>{var Q;const x=a.date(),E=(Q=u.value)!=null&&Q[0]?a.date(u.value[0]):T(x);return E&&a.isValid(E)?E:x}),y=Ne(()=>e.headerColor??e.color),F=ne(e,"month"),c=_({get:()=>Number(F.value??a.getMonth(a.startOfMonth(k.value))),set:x=>F.value=x}),D=ne(e,"year"),p=_({get:()=>Number(D.value??a.getYear(a.startOfYear(a.setMonth(k.value,c.value)))),set:x=>D.value=x}),N=we(!1),I=_(()=>{if(e.multiple&&u.value.length>1)return s("$vuetify.datePicker.itemsSelected",u.value.length);const x=u.value[0]&&a.isValid(u.value[0])?a.format(a.date(u.value[0]),e.headerDateFormat):s(e.header);return e.landscape&&x.split(" ").length===3?x.replace(" ",` `):x}),q=Ne(()=>{let x=a.date();return x=a.setDate(x,1),x=a.setMonth(x,c.value),x=a.setYear(x,p.value),x}),j=Ne(()=>a.format(q.value,"monthAndYear")),S=Ne(()=>a.format(q.value,"monthShort")),w=Ne(()=>a.format(q.value,"year")),P=Ne(()=>`date-picker-header${N.value?"-reverse":""}-transition`),H=_(()=>{if(e.disabled)return!0;const x=[];if(o.value!=="month")x.push("prev-month","next-month","prev-year","next-year");else{let E=a.date();if(E=a.startOfMonth(E),E=a.setMonth(E,c.value),E=a.setYear(E,p.value),v.value){const Q=a.addDays(a.startOfMonth(E),-1),le=a.addDays(a.startOfYear(E),-1);a.isAfter(v.value,Q)&&x.push("prev-month"),a.isAfter(v.value,le)&&x.push("prev-year")}if(g.value){const Q=a.addDays(a.endOfMonth(E),1),le=a.addDays(a.endOfYear(E),1);a.isAfter(Q,g.value)&&x.push("next-month"),a.isAfter(le,g.value)&&x.push("next-year")}}return x}),M=_(()=>e.allowedYears||f),z=_(()=>e.allowedMonths||V);function oe(x,E){const Q=e.allowedDates;if(typeof Q!="function")return!0;const le=1+ca(a,x,E);for(let ve=0;ve0?c.value--:(p.value--,c.value=11,ae()),U()}function B(){if(p.value++,g.value){const x=String(c.value+1).padStart(2,"0"),E=a.parseISO(`${p.value}-${x}-01`);a.isAfter(E,g.value)&&(c.value=a.getMonth(g.value))}ae()}function fe(){if(p.value--,v.value){const x=String(c.value+1).padStart(2,"0"),E=a.endOfMonth(a.parseISO(`${p.value}-${x}-01`));a.isAfter(v.value,E)&&(c.value=a.getMonth(v.value))}ae()}function Se(){o.value="month"}function b(){o.value=o.value==="months"?"month":"months"}function A(){o.value=o.value==="year"?"month":"year"}function U(){o.value==="months"&&b()}function ae(){o.value==="year"&&A()}return ke(u,(x,E)=>{const Q=Be(E),le=Be(x);if(!le.length)return;const ve=a.date(Q[Q.length-1]),Ve=a.date(le[le.length-1]);if(a.isSameDay(ve,Ve))return;const xe=a.getMonth(Ve),X=a.getYear(Ve);xe!==c.value&&(c.value=xe,U()),X!==p.value&&(p.value=X,ae()),N.value=a.isBefore(ve,Ve)}),Ce(()=>{const x=rt.filterProps(e),E=Te(Tt.filterProps(e),["viewMode"]),Q=St.filterProps(e),le=Mt.filterProps(e),ve=Te(_t.filterProps(e),["modelValue"]),Ve=Te(It.filterProps(e),["modelValue"]),xe={color:y.value,header:I.value,transition:P.value};return i(rt,G(x,{color:y.value,class:["v-date-picker",`v-date-picker--${o.value}`,{"v-date-picker--show-week":e.showWeek},l.value,e.class],style:[{"--v-date-picker-landscape-header-width":it(e.landscapeHeaderWidth)},e.style]}),{title:()=>{var X;return((X=r.title)==null?void 0:X.call(r))??m("div",{class:"v-date-picker__title"},[s(e.title)])},header:()=>r.header?i(Xe,{defaults:{VDatePickerHeader:{...xe}}},{default:()=>{var X;return[(X=r.header)==null?void 0:X.call(r,xe)]}}):i(St,G({key:"header"},Q,xe,{onClick:o.value!=="month"?Se:void 0}),{prepend:r.prepend,append:r.append}),default:()=>m(be,null,[i(Tt,G(E,{disabled:H.value,viewMode:o.value,text:j.value,monthText:S.value,yearText:w.value,"onClick:next":ee,"onClick:prev":R,"onClick:nextYear":B,"onClick:prevYear":fe,"onClick:month":b,"onClick:year":A}),{default:r.controls}),i(da,{hideOnLeave:!0},{default:()=>[o.value==="months"?i(_t,G({key:"date-picker-months"},ve,{modelValue:c.value,"onUpdate:modelValue":[X=>c.value=X,U],min:v.value,max:g.value,year:p.value,allowedMonths:z.value}),{month:r.month}):o.value==="year"?i(It,G({key:"date-picker-years"},Ve,{modelValue:p.value,"onUpdate:modelValue":[X=>p.value=X,ae],min:v.value,max:g.value,allowedYears:M.value}),{year:r.year}):i(Mt,G({key:"date-picker-month"},le,{modelValue:u.value,"onUpdate:modelValue":X=>u.value=X,month:c.value,"onUpdate:month":[X=>c.value=X,U],year:p.value,"onUpdate:year":[X=>p.value=X,ae],min:v.value,max:g.value}),{day:r.day})]})]),actions:r.actions})}),{}}}),qa=me({allowedValues:Function,ampm:Boolean,color:String,disabled:Boolean,displayedValue:null,double:Boolean,format:{type:Function,default:e=>e},max:{type:Number,required:!0},min:{type:Number,required:!0},scrollable:Boolean,readonly:Boolean,rotate:{type:Number,default:0},step:{type:Number,default:1},modelValue:{type:Number}},"VTimePickerClock"),Nt=De()({name:"VTimePickerClock",props:qa(),emits:{change:e=>!0,input:e=>!0},setup(e,t){let{emit:n}=t;const r=W(null),a=W(null),s=W(void 0),l=W(!1),u=W(null),o=W(null),v=fa(b=>n("change",b),750),{textColorClasses:g,textColorStyles:T}=vt(()=>e.color),{backgroundColorClasses:k,backgroundColorStyles:y}=ht(()=>e.color),F=_(()=>e.max-e.min+1),c=_(()=>e.double?F.value/2:F.value),D=_(()=>360/c.value),p=_(()=>D.value*Math.PI/180),N=_(()=>e.modelValue==null?e.min:e.modelValue),I=_(()=>.62),q=_(()=>{const b=[];for(let A=e.min;A<=e.max;A=A+e.step)b.push(A);return b});ke(()=>e.modelValue,b=>{s.value=b});function j(b){s.value!==b&&(s.value=b),n("input",b)}function S(b){return!e.allowedValues||e.allowedValues(b)}function w(b){if(!e.scrollable||e.disabled)return;b.preventDefault();const A=Math.sign(-b.deltaY||1);let U=N.value;do U=U+A,U=(U-e.min+F.value)%F.value+e.min;while(!S(U)&&U!==N.value);U!==e.displayedValue&&j(U),v(U)}function P(b){return e.double&&b-e.min>=c.value}function H(b){return P(b)?I.value:1}function M(b){const A=e.rotate*Math.PI/180;return{x:Math.sin((b-e.min)*p.value+A)*H(b),y:-Math.cos((b-e.min)*p.value+A)*H(b)}}function z(b,A){const U=(Math.round(b/D.value)+(A?c.value:0))%F.value+e.min;return b<360-D.value/2?U:A?e.max-c.value+1:e.min}function oe(b){const{x:A,y:U}=M(b);return{left:`${Math.round(50+A*50)}%`,top:`${Math.round(50+U*50)}%`}}function f(b,A){const U=A.x-b.x,ae=A.y-b.y;return Math.sqrt(U*U+ae*ae)}function V(b,A){const U=2*Math.atan2(A.y-b.y-f(b,A),A.x-b.x);return Math.abs(U*180/Math.PI)}function ee(b){u.value===null&&(u.value=b),o.value=b,j(b)}function R(b){var Ze,Qe;if(b.preventDefault(),!l.value&&b.type!=="click"||!r.value)return;const{width:A,top:U,left:ae}=(Ze=r.value)==null?void 0:Ze.getBoundingClientRect(),{width:x}=((Qe=a.value)==null?void 0:Qe.getBoundingClientRect())??{width:0},{clientX:E,clientY:Q}="touches"in b?b.touches[0]:b,le={x:A/2,y:-A/2},ve={x:E-ae,y:U-Q},Ve=Math.round(V(le,ve)-e.rotate+360)%360,xe=e.double&&f(le,ve)<(x+x*I.value)/4,X=Math.ceil(15/D.value);let Fe;for(let He=0;Hem("div",{class:ce([{"v-time-picker-clock":!0,"v-time-picker-clock--indeterminate":e.modelValue==null,"v-time-picker-clock--readonly":e.readonly}]),onMousedown:B,onTouchstart:B,onWheel:w,ref:r},[m("div",{class:"v-time-picker-clock__inner",ref:a},[m("div",{class:ce([{"v-time-picker-clock__hand":!0,"v-time-picker-clock__hand--inner":P(e.modelValue)},g.value]),style:je([{transform:`rotate(${e.rotate+D.value*(N.value-e.min)}deg) scaleY(${H(N.value)})`},T.value])},null),q.value.map(b=>{const A=b===N.value;return m("div",{class:ce([{"v-time-picker-clock__item":!0,"v-time-picker-clock__item--active":A,"v-time-picker-clock__item--disabled":e.disabled||!S(b)},A&&k.value]),style:je([oe(b),A&&y.value])},[m("span",null,[e.format(b)])])})])]))}}),Ga=me({active:Boolean,color:String,disabled:Boolean,label:String,modelValue:String,error:String,showHint:Boolean,readonly:Boolean},"VTimePickerField"),dt=De()({name:"VTimePickerField",props:Ga(),emits:{"update:modelValue":e=>!0},setup(e,t){let{emit:n}=t;const{textColorClasses:r,textColorStyles:a}=vt(()=>e.color),s=W(),l=we(!1);function u(o){if(["Backspace","Delete"].includes(o.key)){o.preventDefault();const v=o.target;v.value="",n("update:modelValue",null)}}return Ce(()=>i(Ae,{ref:s,_as:"VTimePickerField",autocomplete:"off",class:ce(["v-time-picker-controls__time__field",{"v-time-picker-controls__time__field--active":e.active},e.active?r.value:[]]),style:je(e.active?a.value:[]),disabled:e.disabled,variant:"solo-filled",inputmode:"numeric",hideDetails:"auto","aria-label":e.label,"aria-invalid":!!e.error,"aria-errormessage":e.error,error:!!e.error,hint:e.showHint?e.label:void 0,persistentHint:!0,flat:!0,modelValue:e.modelValue??(l.value?"":"--"),"onUpdate:modelValue":o=>n("update:modelValue",o),onKeydown:u,onFocus:()=>l.value=!0,onBlur:()=>l.value=!1},null)),Ot({},s)}});function ye(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2;return String(e).padStart(t,"0")}function Wt(e){return e?(e-1)%12+1:12}function Ge(e,t){return e%12+(t==="pm"?12:0)}function Je(e){const t=e.replaceAll(/\D/g,"");return t.length>0?Number(t):null}function Xa(e,t,n){{if(e===23&&t)return{value:0};if(e===0&&!t)return{value:23}}return{value:e+(t?1:-1)}}function Za(e,t){return e===59&&t?0:e===0&&!t?59:e+(t?1:-1)}const Jt=me({allowedHours:[Function,Array],allowedMinutes:[Function,Array],allowedSeconds:[Function,Array],max:String,min:String},"time-validation");function Kt(e){const t=_(()=>{const s=e.min?Number(e.min.split(":")[0]):0,l=e.max?Number(e.max.split(":")[0]):23;return u=>ul?!1:Array.isArray(e.allowedHours)?e.allowedHours.includes(u):typeof e.allowedHours=="function"?e.allowedHours(u):!0}),n=_(()=>{const[s,l]=e.min?e.min.split(":").map(Number):[0,0],[u,o]=e.max?e.max.split(":").map(Number):[23,59],v=s*60+l,g=u*60+o;return(T,k)=>{if(T!==null){const y=60*T+k;if(yg)return!1}return Array.isArray(e.allowedMinutes)?e.allowedMinutes.includes(k):typeof e.allowedMinutes=="function"?e.allowedMinutes(k):!0}}),r=_(()=>{const[s,l,u]=e.min?e.min.split(":").map(Number):[0,0,0],[o,v,g]=e.max?e.max.split(":").map(Number):[23,59,59],T=s*3600+l*60+(u||0),k=o*3600+v*60+(g||0);return(y,F,c)=>{if(y!==null&&F!==null){const D=3600*y+60*F+c;if(Dk)return!1}return Array.isArray(e.allowedSeconds)?e.allowedSeconds.includes(c):typeof e.allowedSeconds=="function"?e.allowedSeconds(c):!0}});function a(s,l,u){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,v=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null;const g=s==="hour"?t.value:s==="minute"?y=>n.value(o,y):y=>r.value(o,v,y),T=s==="hour"?y=>Xa(y,u).value:y=>Za(y,u),k=s==="hour"?24:60;for(let y=1;y<=k&&(l=T(l),!g(l));y++);return l}return{isAllowedHour:t,isAllowedMinute:n,isAllowedSecond:r,findNextAllowed:a}}const Qa=me({ampm:Boolean,color:String,disabled:Boolean,inputHints:Boolean,hour:[Number,String],minute:[Number,String],second:[Number,String],period:String,readonly:Boolean,useSeconds:Boolean,value:Number,viewMode:String,...Jt()},"VTimePickerControls"),At=De()({name:"VTimePickerControls",props:Qa(),emits:{"update:period":e=>!0,"update:viewMode":e=>!0,"update:hour":e=>!0,"update:minute":e=>!0,"update:second":e=>!0},setup(e,t){let{emit:n}=t;const{t:r}=ze(),{isAllowedHour:a,isAllowedMinute:s,isAllowedSecond:l,findNextAllowed:u}=Kt(e),o=_(()=>e.hour!==null?e.ampm?Ge(Number(e.hour),e.period??"am"):Number(e.hour):null),v=_(()=>e.minute!==null?Number(e.minute):null),g=_(()=>{var f;return e.hour===null?!0:((f=a.value)==null?void 0:f.call(a,Number(o.value)))??!0}),T=_(()=>{var f;return e.minute===null?!0:((f=s.value)==null?void 0:f.call(s,o.value,Number(e.minute)))??!0}),k=_(()=>{var f;return e.second===null?!0:((f=l.value)==null?void 0:f.call(l,o.value,v.value,Number(e.second)))??!0}),y={in:f=>{if(f==null||isNaN(Number(f)))return null;const V=Number(f);return e.ampm?ye(Wt(V)):ye(V)},out:f=>{if(isNaN(Number(f))||f==null||f==="")return null;const V=typeof f=="string"?Je(f):Number(f);return V===null?null:e.ampm?Ge(V,e.period??"am"):xt(V,0,23)}},F=ne(e,"hour",void 0,y.in,y.out),c={in:f=>f!=null&&!isNaN(Number(f))?ye(`${f}`):null,out:f=>{if(isNaN(Number(f))||f==null||f==="")return null;const V=typeof f=="string"?Je(f):Number(f);return V!==null?xt(V,0,59):null}},D=ne(e,"minute",void 0,c.in,c.out),p=ne(e,"second",void 0,c.in,c.out);function N(f){if(!["ArrowUp","ArrowDown"].includes(f.key))return;f.preventDefault(),f.stopPropagation();const V=e.period==="am",ee=e.ampm?Ge(Number(F.value??0),V?"am":"pm"):Number(F.value??0),R=u("hour",ee,f.key==="ArrowUp"),B=V&&R>=12||!V&&R<12;e.ampm&&B?(n("update:period",e.period==="am"?"pm":"am"),lt(()=>F.value=ye(R))):F.value=ye(R)}function I(f){if(!["ArrowUp","ArrowDown"].includes(f.key))return;f.preventDefault(),f.stopPropagation();const V=Number(D.value??0),ee=u("minute",V,f.key==="ArrowUp",o.value);D.value=ye(ee)}function q(f){if(!["ArrowUp","ArrowDown"].includes(f.key))return;f.preventDefault(),f.stopPropagation();const V=Number(p.value??0),ee=u("second",V,f.key==="ArrowUp",o.value,v.value);p.value=ye(ee)}function j(f,V,ee){return R=>{if(!R.data)return;const B=R.target,{value:fe,selectionStart:Se,selectionEnd:b}=B??{};if(Je(R.data)===null){R.preventDefault();return}const A=fe?fe.slice(0,Se)+R.data+fe.slice(b):R.data;if(A.length>2){if(Se===b&&b===0&&R.data.trim().startsWith("0")){R.preventDefault(),B.value=A.trim().substring(0,2),ee(B.value),R.data.trim().length===1&&B.setSelectionRange(1,1);return}if(Se===b&&b===1&&fe.startsWith("0")){R.preventDefault(),B.value=A.trim().substring(0,2),ee(B.value);return}const ae=e.viewMode==="hour"?e.ampm?12:23:59;if(Je(A)>ae){R.preventDefault(),B.value=ye(String(Je(R.data)).substring(0,2)),ee(B.value);return}}const U=f(A);V(U)&&R.preventDefault()}}function S(f){n("update:period",f);const V=u("hour",f==="am"?23:11,!0);lt(()=>F.value=ye(V))}const w=W(),P=W(),H=W();ke(()=>e.viewMode,(f,V)=>{switch(V){case"hour":w.value.blur();break;case"minute":P.value.blur();break;case"second":H.value.blur();break}});const M=j(y.out,f=>y.in(f)===F.value,f=>F.value=f),z=j(c.out,f=>c.in(f)===D.value,f=>D.value=f),oe=j(c.out,f=>c.in(f)===p.value,f=>p.value=f);return Ce(()=>m("div",{class:"v-time-picker-controls"},[m("div",{class:ce({"v-time-picker-controls__time":!0,"v-time-picker-controls__time--with-ampm":e.ampm,"v-time-picker-controls__time--with-seconds":e.useSeconds})},[i(dt,{ref:w,active:e.viewMode==="hour",color:e.color,disabled:e.disabled,label:r("$vuetify.timePicker.hour"),showHint:e.inputHints,error:g.value?void 0:r("$vuetify.timePicker.notAllowed"),modelValue:F.value,"onUpdate:modelValue":f=>F.value=f,onKeydown:N,onBeforeinput:M,onFocus:()=>n("update:viewMode","hour")},null),m("span",{class:"v-time-picker-controls__time__separator"},[C(":")]),i(dt,{ref:P,active:e.viewMode==="minute",color:e.color,disabled:e.disabled,label:r("$vuetify.timePicker.minute"),showHint:e.inputHints,error:T.value?void 0:r("$vuetify.timePicker.notAllowed"),modelValue:D.value,"onUpdate:modelValue":f=>D.value=f,onKeydown:I,onBeforeinput:z,onFocus:()=>n("update:viewMode","minute")},null),e.useSeconds&&m("span",{key:"secondsDivider",class:"v-time-picker-controls__time__separator"},[C(":")]),e.useSeconds&&m(be,null,[i(dt,{key:"secondsVal",ref:H,active:e.viewMode==="second",color:e.color,disabled:e.disabled,label:r("$vuetify.timePicker.second"),showHint:e.inputHints,error:k.value?void 0:r("$vuetify.timePicker.notAllowed"),modelValue:p.value,"onUpdate:modelValue":f=>p.value=f,onKeydown:q,onBeforeinput:oe,onFocus:()=>n("update:viewMode","second")},null)]),e.ampm&&m("div",{class:"v-time-picker-controls__ampm"},[i(Y,{active:e.period==="am",color:e.period==="am"?e.color:void 0,class:ce({"v-time-picker-controls__ampm__am":!0,"v-time-picker-controls__ampm__btn":!0,"v-time-picker-controls__ampm__btn__active":e.period==="am"}),disabled:e.disabled,text:r("$vuetify.timePicker.am"),variant:e.disabled&&e.period==="am"?"elevated":"tonal",onClick:()=>e.period!=="am"?S("am"):null},null),i(Y,{active:e.period==="pm",color:e.period==="pm"?e.color:void 0,class:ce({"v-time-picker-controls__ampm__pm":!0,"v-time-picker-controls__ampm__btn":!0,"v-time-picker-controls__ampm__btn__active":e.period==="pm"}),disabled:e.disabled,text:r("$vuetify.timePicker.pm"),variant:e.disabled&&e.period==="pm"?"elevated":"tonal",onClick:()=>e.period!=="pm"?S("pm"):null},null)])])])),{}}}),en=me({disabled:Boolean,format:{type:String,default:"ampm"},viewMode:{type:String,default:"hour"},period:{type:String,default:"am",validator:e=>["am","pm"].includes(e)},modelValue:null,readonly:Boolean,scrollable:Boolean,useSeconds:Boolean,variant:{type:String,default:"dial"},...Jt(),...Te(gt({title:"$vuetify.timePicker.title"}),["landscape"]),...ga()},"VTimePicker"),Ft=De()({name:"VTimePicker",props:en(),emits:{"update:hour":e=>!0,"update:minute":e=>!0,"update:period":e=>!0,"update:second":e=>!0,"update:modelValue":e=>!0,"update:viewMode":e=>!0},setup(e,t){let{emit:n,slots:r}=t;const{t:a}=ze(),{densityClasses:s}=va(e),l=W(null),u=W(null),o=W(null),v=W(null),g=W(null),T=W(null),k=ne(e,"period","am"),y=ne(e,"viewMode","hour"),F=W(null),c=W(null),D=_(()=>e.format==="ampm"),{isAllowedHour:p,isAllowedMinute:N,isAllowedSecond:I}=Kt(e),q=Ne(()=>e.modelValue!==null&&l.value===null&&u.value===null&&(!e.useSeconds||o.value===null));function j(){const M=S();M!==null&&M!==e.modelValue&&n("update:modelValue",M),q.value&&n("update:modelValue",null)}ke(l,j),ke(u,j),ke(o,j),ke(()=>e.modelValue,M=>w(M)),ke(()=>e.useSeconds,(M,z)=>{z&&!M&&y.value==="second"&&(y.value="minute"),!M&&o.value!==null&&(o.value=null)}),ha(()=>{w(e.modelValue)});function S(){return l.value!=null&&u.value!=null&&(!e.useSeconds||o.value!=null)?`${ye(l.value)}:${ye(u.value)}`+(e.useSeconds?`:${ye(o.value)}`:""):null}function w(M){if(M==null||M==="")l.value=null,u.value=null,o.value=null;else if(M instanceof Date)l.value=M.getHours(),u.value=M.getMinutes(),o.value=M.getSeconds();else{const[z,,oe,,f,V]=M.trim().toLowerCase().match(/^(\d+):(\d+)(:(\d+))?([ap]m)?$/)||new Array(6);l.value=V?Ge(parseInt(z,10),V):parseInt(z,10),u.value=parseInt(oe,10),o.value=parseInt(f||0,10)}k.value=l.value==null||l.value<12?"am":"pm"}function P(M){y.value==="hour"?l.value=D.value?Ge(M,k.value):M:y.value==="minute"?u.value=M:o.value=M}function H(M){switch(y.value||"hour"){case"hour":n("update:hour",M);break;case"minute":n("update:minute",M);break;case"second":n("update:second",M);break}const z=l.value!==null&&u.value!==null&&(e.useSeconds?o.value!==null:!0);y.value==="hour"?y.value="minute":e.useSeconds&&y.value==="minute"&&(y.value="second"),!(l.value===v.value&&u.value===g.value&&(!e.useSeconds||o.value===T.value)||S()===null)&&(v.value=l.value,g.value=u.value,e.useSeconds&&(T.value=o.value),z&&j())}Ce(()=>{const M=Te(rt.filterProps(e),["hideHeader"]),z=At.filterProps(e),oe=Nt.filterProps(Te(e,["format","modelValue","min","max"])),f=y.value==="hour"?p.value:y.value==="minute"?V=>N.value(l.value,V):V=>I.value(l.value,u.value,V);return i(rt,G(M,{color:void 0,class:["v-time-picker",`v-time-picker--variant-${e.variant}`,e.class,s.value],hideHeader:e.hideHeader&&e.variant!=="input",style:e.style}),{title:()=>{var V;return((V=r.title)==null?void 0:V.call(r))??m("div",{class:"v-time-picker__title"},[a(e.title)])},header:()=>i(At,G(z,{ampm:D.value,hour:l.value,minute:u.value,period:k.value,second:o.value,viewMode:y.value,inputHints:e.variant==="input","onUpdate:hour":V=>l.value=V,"onUpdate:minute":V=>u.value=V,"onUpdate:second":V=>o.value=V,"onUpdate:period":V=>k.value=V,"onUpdate:viewMode":V=>y.value=V,ref:F}),null),default:()=>i(Nt,G(oe,{allowedValues:f,double:y.value==="hour"&&!D.value,format:y.value==="hour"?D.value?Wt:V=>V:V=>ye(V,2),max:y.value==="hour"?D.value&&k.value==="am"?11:23:59,min:y.value==="hour"&&D.value&&k.value==="pm"?12:0,size:20,step:y.value==="hour"?1:5,modelValue:y.value==="hour"?l.value:y.value==="minute"?u.value:o.value,onChange:H,onInput:P,ref:c}),null),actions:r.actions})})}}),tn={name:"ExamConfigEditor",props:{configId:{type:String,required:!0},dialogMode:{type:Boolean,default:!1}},emits:["saved","error","opened","deleted"],data(){return{localConfig:{examName:"",message:"",room:"",examInfos:[]},loading:!1,saving:!1,deleting:!1,deleteDialog:!1,error:"",success:"",isEditMode:!1,showJsonPreview:!1,availableSubjects:[],customSubjectInput:"",enableCustomAlertTime:!1,defaultExamTips:["请保持卷面整洁,字迹清晰,诚信应考。在听到终考铃时立刻起立,停止作答。","沉着 冷静 细心 守记","答题不守记,自己两行泪。"]}},computed:{formattedJson(){try{return JSON.stringify(this.localConfig,null,2)}catch(e){return console.error("格式化JSON时出错:",e),"无效的JSON格式"}},formattedStorageJson(){try{const e={examName:this.localConfig.examName,message:this.localConfig.message,room:this.localConfig.room,examInfos:this.localConfig.examInfos.map(t=>({name:t.name,start:this.formatDisplayDateTime(t.start),end:this.formatDisplayDateTime(t.end),alertTime:parseInt(t.alertTime)||15}))};return JSON.stringify(e,null,2)}catch(e){return console.error("格式化存储JSON时出错:",e),"无效的JSON格式"}},isValidConfig(){return this.localConfig.examName&&this.localConfig.message&&this.localConfig.examInfos&&this.localConfig.examInfos.length>0&&this.localConfig.examInfos.every(e=>e.name&&e.start&&e.end)},validationErrors(){const e=[];if((!this.localConfig.examName||this.localConfig.examName.trim()==="")&&e.push("考试名称不能为空"),(!this.localConfig.message||this.localConfig.message.trim()==="")&&e.push("考试提示不能为空"),!this.localConfig.examInfos||this.localConfig.examInfos.length===0)e.push("至少需要添加一个考试科目");else{this.localConfig.examInfos.forEach((t,n)=>{const r=`第${n+1}个科目`;if((!t.name||t.name.trim()==="")&&e.push(`${r}的名称不能为空`),t.start||e.push(`${r}的开始时间不能为空`),t.end||e.push(`${r}的结束时间不能为空`),t.start&&t.end){const a=new Date(t.start),s=new Date(t.end);isNaN(a.getTime())&&e.push(`${r}的开始时间格式不正确`),isNaN(s.getTime())&&e.push(`${r}的结束时间格式不正确`),!isNaN(a.getTime())&&!isNaN(s.getTime())&&(s<=a&&e.push(`${r}的结束时间必须晚于开始时间`),(s-a)/(1e3*60*60)>24&&e.push(`${r}的考试时长不能超过24小时`))}});for(let t=0;tu&&e.push(`第${t+1}个科目与第${n+1}个科目的时间有重叠`)}}}return e},hasValidationErrors(){return this.validationErrors.length>0}},watch:{configId:{immediate:!0,handler(e){e&&this.loadConfig()}}},created(){this.loadSubjects()},methods:{async loadSubjects(){try{const e=await Re.loadData("classworks-config-subject");e&&Array.isArray(e)?this.availableSubjects=e.sort((t,n)=>(t.order??0)-(n.order??0)).map(t=>({name:t.name,order:t.order??0})):this.availableSubjects=[{name:"语文",order:0},{name:"数学",order:1},{name:"英语",order:2},{name:"物理",order:3},{name:"化学",order:4},{name:"生物",order:5},{name:"政治",order:6},{name:"历史",order:7},{name:"地理",order:8}]}catch(e){console.warn("加载科目列表失败,使用默认列表:",e),this.availableSubjects=[{name:"语文",order:0},{name:"数学",order:1},{name:"英语",order:2},{name:"物理",order:3},{name:"化学",order:4},{name:"生物",order:5},{name:"政治",order:6},{name:"历史",order:7},{name:"地理",order:8}]}},autoFillRemaining(){if(this.localConfig.examInfos.length===0)return;let e=null;for(let t=this.localConfig.examInfos.length-1;t>=0;t--)if(this.localConfig.examInfos[t].end){e=new Date(this.localConfig.examInfos[t].end);break}e||(e=new Date);for(let t=0;t12)return`${t}月份不合法(1-12)`;if(g<1||g>31)return`${t}日期不合法(1-31)`;if(T<0||T>23)return`${t}小时不合法(0-23)`;if(k<0||k>59)return`${t}分钟不合法(0-59)`;const y=new Date(o,v-1,g,T,k);return isNaN(y.getTime())?`${t}日期不存在`:y.getMonth()!==v-1||y.getDate()!==g?`${t}日期不存在`:!0},validateEndAfterStart(e){if(!e.startFormatted||!e.endFormatted)return!0;try{const t=new Date(e.start||e.startFormatted.replace(/\//g,"-")),n=new Date(e.end||e.endFormatted.replace(/\//g,"-"));return isNaN(t.getTime())||isNaN(n.getTime())?!0:n<=t?"结束时间必须晚于开始时间":(n.getTime()-t.getTime())/(1e3*60*60)>24?"考试时长不能超过24小时":!0}catch{return!0}},validateNoTimeOverlap(e,t){if(!e.startFormatted||!e.endFormatted)return!0;try{const n=new Date(e.start||e.startFormatted.replace(/\//g,"-")),r=new Date(e.end||e.endFormatted.replace(/\//g,"-"));if(isNaN(n.getTime())||isNaN(r.getTime()))return!0;for(let a=0;a=l&&nl&&r<=u||n<=l&&r>=u)return`时间与"${s.name||`第${a+1}个科目`}"重叠`}return!0}catch{return!0}},toggleAlertTimeMode(){this.enableCustomAlertTime||this.localConfig.examInfos.forEach(e=>{e.alertTime=15})},getExamDuration(e){if(!e.start||!e.end)return"";try{const t=new Date(e.start),n=new Date(e.end);if(isNaN(t.getTime())||isNaN(n.getTime()))return"";const r=n.getTime()-t.getTime(),a=Math.round(r/(1e3*60));if(a<60)return`${a}分钟`;const s=Math.floor(a/60),l=a%60;return l===0?`${s}小时`:`${s}小时${l}分钟`}catch{return""}},updateStartDateTimeFromInput(e){if(e===void 0||!this.localConfig.examInfos[e])return;const t=this.localConfig.examInfos[e],n=t.startFormatted;if(!n)return;const r=n.match(/(\d{4})[\/\-](\d{1,2})[\/\-](\d{1,2})\s+(\d{1,2}):(\d{1,2})/);if(!r)return;const[,a,s,l,u,o]=r,v=new Date(parseInt(a),parseInt(s)-1,parseInt(l),parseInt(u),parseInt(o));isNaN(v.getTime())||(t.startDate=v,t.startTime=this.formatTimeOnly(v),t.start=this.formatDateTimeLocal(v),this.updateStartDateTime(e))},updateEndDateTimeFromInput(e){if(e===void 0||!this.localConfig.examInfos[e])return;const t=this.localConfig.examInfos[e],n=t.endFormatted;if(!n)return;const r=n.match(/(\d{4})[\/\-](\d{1,2})[\/\-](\d{1,2})\s+(\d{1,2}):(\d{1,2})/);if(!r)return;const[,a,s,l,u,o]=r,v=new Date(parseInt(a),parseInt(s)-1,parseInt(l),parseInt(u),parseInt(o));isNaN(v.getTime())||(t.endDate=v,t.endTime=this.formatTimeOnly(v),t.end=this.formatDateTimeLocal(v),this.updateEndDateTime(e))},async loadConfig(){var e;this.loading=!0,this.error="";try{const t=await Re.loadData(`es_${this.configId}`);if(t){this.localConfig={examName:"",message:"",room:"",examInfos:[],...t},Array.isArray(this.localConfig.examInfos)||(this.localConfig.examInfos=[]),this.localConfig.examInfos.forEach(r=>{if(r.start){const a=this.parseDateTime(r.start);r.start=this.formatDateTimeLocal(a),r.startDate=a,r.startTime=this.formatTimeOnly(a),r.startFormatted=this.formatDisplayDateTime(a),r.startDateMenu=!1}if(r.end){const a=this.parseDateTime(r.end);r.end=this.formatDateTimeLocal(a),r.endDate=a,r.endTime=this.formatTimeOnly(a),r.endFormatted=this.formatDisplayDateTime(a),r.endDateMenu=!1}try{if(r.start&&r.end){const a=new Date(r.start),s=new Date(r.end),l=Math.round((s.getTime()-a.getTime())/(1e3*60));l>0&&l<=24*60?r.durationMinutes=l:r.durationMinutes=120}else r.durationMinutes=120}catch{r.durationMinutes=120}r.alertTime===void 0||r.alertTime===null?r.alertTime=15:r.alertTime=parseInt(r.alertTime)||15});const n=this.localConfig.examInfos.some(r=>r.alertTime!==15);this.enableCustomAlertTime=n}else console.error("加载配置失败:",t),this.error="加载配置失败: "+(((e=t.error)==null?void 0:e.message)||"未知错误"),this.$emit("error",this.error)}catch(t){console.error(t),this.error="加载配置失败: "+t.message,this.$emit("error",this.error)}finally{this.loading=!1}},async saveConfig(){var e;if(!this.isValidConfig){const t=this.validationErrors;return t.length>0?this.error=`配置验证失败:${t.join(";")}`:this.error="请填写完整的配置信息",!1}this.saving=!0,this.error="";try{const t={examName:this.localConfig.examName,message:this.localConfig.message,room:this.localConfig.room,examInfos:this.localConfig.examInfos.map(r=>({name:r.name,start:this.formatDisplayDateTime(r.start),end:this.formatDisplayDateTime(r.end),alertTime:parseInt(r.alertTime)||15}))},n=await Re.saveData(`es_${this.configId}`,t);return n?(this.success="配置保存成功",this.$emit("saved",t),!0):(this.error="保存配置失败: "+(((e=n.error)==null?void 0:e.message)||"未知错误"),this.$emit("error",this.error),!1)}catch(t){return this.error="保存配置失败: "+t,this.$emit("error",this.error),!1}finally{this.saving=!1}},addExamInfo(){let e=new Date;if(this.localConfig.examInfos.length>0){const a=this.localConfig.examInfos[this.localConfig.examInfos.length-1];a.end&&(e=new Date(a.end))}const t=new Date(e.getTime()+10*60*1e3),n=new Date(t.getTime()+2*60*60*1e3),r={name:"",start:this.formatDateTimeLocal(t),end:this.formatDateTimeLocal(n),durationMinutes:120,alertTime:15,startDate:t,startTime:this.formatTimeOnly(t),startFormatted:this.formatDisplayDateTime(t),startDateMenu:!1,endDate:n,endTime:this.formatTimeOnly(n),endFormatted:this.formatDisplayDateTime(n),endDateMenu:!1};this.localConfig.examInfos.push(r)},removeExamInfo(e){this.localConfig.examInfos.splice(e,1)},moveExamInfo(e,t){const n=e+t;if(n>=0&&n24*60&&(n=24*60),t.durationMinutes=n,(!t.startDate||!t.startTime)&&t.start){const r=new Date(t.start);isNaN(r.getTime())||(t.startDate=r,t.startTime=this.formatTimeOnly(r))}if(t.startDate&&t.startTime){const r=new Date(t.startDate),[a,s]=String(t.startTime).split(":");r.setHours(parseInt(a),parseInt(s),0,0);const l=new Date(r.getTime()+n*60*1e3);t.endDate=l,t.endTime=this.formatTimeOnly(l),t.end=this.formatDateTimeLocal(l),t.endFormatted=this.formatDisplayDateTime(l)}},formatDateTimeLocal(e){if(!e)return"";let t;if(typeof e=="string"?e.includes("/")?t=new Date(e.replace(/\//g,"-")):t=new Date(e):t=new Date(e),isNaN(t.getTime()))return"";const n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),l=String(t.getMinutes()).padStart(2,"0");return`${n}-${r}-${a}T${s}:${l}`},formatDisplayDateTime(e){if(!e)return"";const t=new Date(e);if(isNaN(t.getTime()))return e;const n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),l=String(t.getMinutes()).padStart(2,"0");return`${n}/${r}/${a} ${s}:${l}`},parseDateTime(e){return e?typeof e=="string"?e.includes("/")?new Date(e.replace(/\//g,"-")):new Date(e):new Date(e):new Date},formatTimeOnly(e){if(!e)return"00:00";const t=new Date(e);if(isNaN(t.getTime()))return"00:00";const n=String(t.getHours()).padStart(2,"0"),r=String(t.getMinutes()).padStart(2,"0");return`${n}:${r}`},updateStartDateTime(e){const t=this.localConfig.examInfos[e];if(!t.startDate||!t.startTime)return;const n=new Date(t.startDate),[r,a]=t.startTime.split(":");n.setHours(parseInt(r),parseInt(a),0,0),t.start=this.formatDateTimeLocal(n),t.startFormatted=this.formatDisplayDateTime(n);let s=parseInt(t.durationMinutes);if(isNaN(s)||s<=0||s>24*60)try{let u=null;if(t.endDate&&t.endTime){u=new Date(t.endDate);const[o,v]=String(t.endTime).split(":");u.setHours(parseInt(o),parseInt(v),0,0)}else t.end&&(u=new Date(t.end));if(u&&!isNaN(u.getTime())){const o=Math.round((u.getTime()-n.getTime())/6e4);o>0&&o<=24*60&&(s=o)}}catch{}(isNaN(s)||s<=0||s>24*60)&&(s=120);const l=new Date(n.getTime()+s*60*1e3);t.endDate=l,t.endTime=this.formatTimeOnly(l),t.end=this.formatDateTimeLocal(l),t.endFormatted=this.formatDisplayDateTime(l),t.durationMinutes=s},updateEndDateTime(e){const t=this.localConfig.examInfos[e];if(!t.endDate||!t.endTime)return;const n=new Date(t.endDate),[r,a]=t.endTime.split(":");n.setHours(parseInt(r),parseInt(a),0,0),t.end=this.formatDateTimeLocal(n),t.endFormatted=this.formatDisplayDateTime(n);try{if(t.startDate&&t.startTime){const s=new Date(t.startDate),[l,u]=String(t.startTime).split(":");s.setHours(parseInt(l),parseInt(u),0,0);const o=Math.round((n.getTime()-s.getTime())/(1e3*60));o>0&&o<=24*60&&(t.durationMinutes=o)}}catch{}},async openConfig(){try{const e=await Re.getKeyCloudUrl(`es_${this.configId}`,{autoMigrate:!0,autoConfig:!0});if(e.success&&e.url){const t=`https://es.examaware.cn/exam/?configUrl=${encodeURIComponent(e.url)}`;window.open(t,"_blank"),this.success="配置已在新窗口中打开",this.$emit("opened",{configId:this.configId,url:e.url})}else throw new Error(e.error||"获取云端地址失败")}catch(e){this.error="打开配置失败: "+e.message,this.$emit("error","打开配置失败: "+e.message)}},confirmDelete(){this.deleteDialog=!0},async deleteConfig(){this.deleting=!0;try{const n=(await Re.loadData("es_list")||[]).filter(a=>a.id!==this.configId);if(!await Re.saveData("es_list",n))throw new Error("更新云端列表失败");this.deleteDialog=!1,this.$emit("deleted",{success:!0,message:"配置删除成功",configId:this.configId})}catch(e){console.error("删除配置失败:",e),this.$emit("deleted",{success:!1,message:"删除失败: "+e.message})}finally{this.deleting=!1}},openInEa2Player(){var e;try{const t={examName:this.localConfig.examName,message:this.localConfig.message,room:this.localConfig.room,examInfos:this.localConfig.examInfos.map(s=>({name:s.name,start:this.formatDisplayDateTime(s.start),end:this.formatDisplayDateTime(s.end),alertTime:parseInt(s.alertTime)||15}))},n=JSON.stringify(t),r=btoa(unescape(encodeURIComponent(n))),a=`examaware://player?data=${encodeURIComponent(r)}`;window.location.href=a,(e=this.$message)==null||e.success("正在拉起 ExamAware2 播放器...")}catch(t){this.error="拉起播放器失败: "+t.message}}}},an={class:"d-flex align-center"},nn={class:"d-flex align-center"},ln={key:4,class:"d-flex justify-space-between align-center mb-4"},rn={class:"d-flex align-center gap-2"},on={key:5},sn={class:"mb-8"},un={class:"text-h3 font-weight-bold",style:{"line-height":"1.2"}},dn={class:"text-subtitle-1 text-grey",style:{"white-space":"pre-wrap","line-height":"1.8"}},cn={key:0,class:"mb-8"},mn={class:"d-flex align-center"},fn={class:""},vn={class:"mb-3"},hn={class:"d-flex align-center mb-1"},gn={class:"text-h6 font-weight-medium text-success"},yn={class:"d-flex align-center mb-1"},kn={class:"text-h6 font-weight-medium text-error"},bn={key:1,class:"text-center py-12"},pn={class:"json-preview"},wn={key:6},Dn={class:"text-subtitle-2 font-weight-bold d-block mb-2"},Cn={key:0,class:"mt-3"},Vn={class:"text-caption text-medium-emphasis mt-2 ml-2"},xn={class:"d-flex align-center mr-4"},Tn={class:"w-100"},Sn={class:"d-flex align-center mb-3"},Mn={class:"d-flex gap-1"},_n={class:"text-primary font-weight-bold"},In={key:1,class:"text-center py-12"};function Pn(e,t,n,r,a,s){return $(),pe("div",null,[a.error?($(),ie(ut,{key:0,border:"start",class:"mb-4 mt-3 mx-2",closable:"",type:"error",variant:"tonal","onClick:close":t[0]||(t[0]=l=>a.error="")},{default:d(()=>[m("div",an,[i(K,{class:"mr-2"},{default:d(()=>[...t[10]||(t[10]=[C("mdi-alert-circle",-1)])]),_:1}),C(" "+se(a.error),1)])]),_:1})):ue("",!0),a.success?($(),ie(ut,{key:1,border:"start",class:"mb-4 mt-3 mx-2",closable:"",type:"success",variant:"tonal","onClick:close":t[1]||(t[1]=l=>a.success="")},{default:d(()=>[m("div",nn,[i(K,{class:"mr-2"},{default:d(()=>[...t[11]||(t[11]=[C("mdi-check-circle",-1)])]),_:1}),C(" "+se(a.success),1)])]),_:1})):ue("",!0),s.hasValidationErrors&&!a.loading?($(),ie(ut,{key:2,border:"start",class:"mb-4 mt-3 mx-2",type:"warning",variant:"tonal"},{default:d(()=>[t[13]||(t[13]=m("div",{class:"d-flex align-center"},[m("span",{class:"font-weight-bold"},"配置验证失败,请检查以下问题:")],-1)),i(ct,{class:"bg-transparent",density:"compact"},{default:d(()=>[($(!0),pe(be,null,tt(s.validationErrors,(l,u)=>($(),ie(Ke,{key:u,class:"px-0 py-0"},{prepend:d(()=>[i(K,{color:"warning",size:"small"},{default:d(()=>[...t[12]||(t[12]=[C("mdi-circle-small",-1)])]),_:1})]),default:d(()=>[i(ka,{class:"text-body-2"},{default:d(()=>[C(se(l),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):ue("",!0),a.loading?($(),ie(Pe,{key:3,class:"my-4",outlined:""},{default:d(()=>[i(Oe,null,{default:d(()=>[i(Va,{class:"mx-auto",type:"article"})]),_:1})]),_:1})):ue("",!0),a.loading?ue("",!0):($(),pe("div",ln,[m("div",rn,[i(Y,{disabled:!s.isValidConfig,class:"text-none",color:"success","prepend-icon":"mdi-open-in-new",variant:"elevated",onClick:s.openConfig},{default:d(()=>[...t[14]||(t[14]=[C(" 打开 ExamSchedule ",-1)])]),_:1},8,["disabled","onClick"]),i(Y,{disabled:!s.isValidConfig,class:"text-none",color:"primary","prepend-icon":"mdi-link-variant",variant:"elevated",onClick:s.copyConfigUrl},{default:d(()=>[...t[15]||(t[15]=[C(" 复制远程链接 ",-1)])]),_:1},8,["disabled","onClick"]),i(Y,{disabled:!s.isValidConfig,class:"text-none",color:"primary","prepend-icon":"mdi-download",variant:"elevated",onClick:s.downloadAsJson},{default:d(()=>[...t[16]||(t[16]=[C(" JSON 文件 ",-1)])]),_:1},8,["disabled","onClick"]),i(Y,{disabled:!s.isValidConfig,class:"text-none",color:"primary","prepend-icon":"mdi-download",variant:"elevated",onClick:s.downloadAsEa2},{default:d(()=>[...t[17]||(t[17]=[C(" .ea2 文件 ",-1)])]),_:1},8,["disabled","onClick"]),i(Y,{disabled:!s.isValidConfig,class:"text-none",color:"secondary","prepend-icon":"mdi-play-circle",variant:"elevated",onClick:s.openInEa2Player},{default:d(()=>[...t[18]||(t[18]=[C(" 拉起EA2播放器 ",-1)])]),_:1},8,["disabled","onClick"]),s.isValidConfig?ue("",!0):($(),ie(at,{key:0,activator:"parent",location:"bottom"},{default:d(()=>[...t[19]||(t[19]=[m("span",null,"请先完善配置信息后再操作",-1)])]),_:1}))]),i(ba,{modelValue:a.isEditMode,"onUpdate:modelValue":t[2]||(t[2]=l=>a.isEditMode=l),color:"primary",divided:"",variant:"outlined"},{default:d(()=>[i(Y,{class:"text-error","prepend-icon":"mdi-delete",onClick:s.confirmDelete},{default:d(()=>[...t[20]||(t[20]=[C(" 删除配置 ",-1)])]),_:1},8,["onClick"]),i(Y,{value:!1,"prepend-icon":"mdi-eye"},{default:d(()=>[...t[21]||(t[21]=[C(" 预览",-1)])]),_:1}),i(Y,{value:!0,"prepend-icon":"mdi-pencil"},{default:d(()=>[...t[22]||(t[22]=[C(" 编辑",-1)])]),_:1})]),_:1},8,["modelValue"])])),!a.loading&&!a.isEditMode?($(),pe("div",on,[m("div",sn,[m("div",un,se(a.localConfig.examName||"未设置考试名称"),1),m("div",dn,se(a.localConfig.message||"未设置考试提示"),1),a.localConfig.room?($(),ie(qe,{key:0,class:"px-4 py-2",size:"large"},{default:d(()=>[i(K,{start:""},{default:d(()=>[...t[23]||(t[23]=[C("mdi-home",-1)])]),_:1}),C(" 考场:"+se(a.localConfig.room),1)]),_:1})):ue("",!0)]),a.localConfig.examInfos&&a.localConfig.examInfos.length>0?($(),pe("div",cn,[i($e,null,{default:d(()=>[($(!0),pe(be,null,tt(a.localConfig.examInfos,(l,u)=>($(),ie(ge,{key:u,cols:"12",lg:"4",md:"6"},{default:d(()=>[i(Pe,{class:"h-100",hover:"",variant:"tonal"},{default:d(()=>[i(Le,{class:"bg-primary-lighten-5 pa-4"},{default:d(()=>[m("div",mn,[i(K,{class:"mr-2"},{default:d(()=>[...t[24]||(t[24]=[C("mdi-book-open-page-variant",-1)])]),_:1}),m("span",fn,se(l.name||"未设置科目"),1)])]),_:2},1024),i(Oe,{class:"pa-4"},{default:d(()=>[m("div",vn,[m("div",hn,[i(K,{class:"mr-2",color:"success",size:"small"},{default:d(()=>[...t[25]||(t[25]=[C("mdi-clock-start ",-1)])]),_:1}),t[26]||(t[26]=m("span",{class:"text-body-2 text-grey-darken-1"},"开始时间",-1))]),m("div",gn,se(l.startFormatted||l.start||"未设置"),1)]),m("div",null,[m("div",yn,[i(K,{class:"mr-2",color:"error",size:"small"},{default:d(()=>[...t[27]||(t[27]=[C("mdi-clock-end ",-1)])]),_:1}),t[28]||(t[28]=m("span",{class:"text-body-2 text-grey-darken-1"},"结束时间",-1))]),m("div",kn,se(l.endFormatted||l.end||"未设置"),1)])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})])):($(),pe("div",bn,[i(K,{class:"mb-4",color:"grey-lighten-2",size:"80"},{default:d(()=>[...t[29]||(t[29]=[C(" mdi-calendar-blank ",-1)])]),_:1}),t[32]||(t[32]=m("div",{class:"text-h5 text-grey-darken-1 mb-2"},"暂无考试科目安排",-1)),t[33]||(t[33]=m("div",{class:"text-body-1 text-grey mb-4"},' 点击上方"添加科目"按钮开始配置考试时间表 ',-1)),i(Y,{color:"primary",variant:"outlined",onClick:s.quickEdit},{default:d(()=>[i(K,{start:""},{default:d(()=>[...t[30]||(t[30]=[C("mdi-plus",-1)])]),_:1}),t[31]||(t[31]=C(" 立即添加 ",-1))]),_:1},8,["onClick"])])),i(Pe,{border:"",class:"mb-4",elevation:"2"},{default:d(()=>[i(Le,{class:"d-flex align-center text-white cursor-pointer",onClick:t[3]||(t[3]=l=>a.showJsonPreview=!a.showJsonPreview)},{default:d(()=>[i(K,{class:"mr-2"},{default:d(()=>[...t[34]||(t[34]=[C("mdi-code-json",-1)])]),_:1}),t[36]||(t[36]=C(" 配置预览 ",-1)),i(Ye),i(Y,{color:"white","prepend-icon":"mdi-content-copy",size:"small",variant:"outlined",onClick:pa(s.copyToClipboard,["stop"])},{default:d(()=>[...t[35]||(t[35]=[C(" 复制 ",-1)])]),_:1},8,["onClick"]),i(Y,{icon:a.showJsonPreview?"mdi-chevron-up":"mdi-chevron-down",class:"ml-2",color:"white",size:"small",variant:"text"},null,8,["icon"])]),_:1}),i(wa,null,{default:d(()=>[Rt(i(Oe,{class:"pa-4"},{default:d(()=>[i(Pe,{class:"pa-4",variant:"tonal"},{default:d(()=>[m("pre",pn,[m("code",null,se(s.formattedStorageJson),1)])]),_:1})]),_:1},512),[[Da,a.showJsonPreview]])]),_:1})]),_:1})])):ue("",!0),!a.loading&&a.isEditMode?($(),pe("div",wn,[i(Pe,{border:"",class:"mb-4",elevation:"1"},{default:d(()=>[i(Le,{class:"d-flex align-center bg-primary-lighten-5 pa-4"},{default:d(()=>[i(K,{class:"mr-2"},{default:d(()=>[...t[37]||(t[37]=[C("mdi-information",-1)])]),_:1}),t[38]||(t[38]=m("span",{class:"font-weight-bold"},"基本信息",-1))]),_:1}),i(Oe,{class:"pa-6"},{default:d(()=>[i($e,null,{default:d(()=>[i(ge,{cols:"12",md:"6"},{default:d(()=>[i(Ae,{modelValue:a.localConfig.examName,"onUpdate:modelValue":t[4]||(t[4]=l=>a.localConfig.examName=l),rules:[l=>!!l||"考试名称不能为空",l=>l&&l.trim().length>0||"考试名称不能为空白字符",l=>!l||l.length<=100||"考试名称不能超过100个字符"],clearable:"",density:"comfortable",label:"考试名称",placeholder:"如:2025年高考模拟考试","prepend-inner-icon":"mdi-calendar-text",required:"",variant:"outlined"},null,8,["modelValue","rules"])]),_:1}),i(ge,{cols:"12",md:"6"},{default:d(()=>[i(Ae,{modelValue:a.localConfig.room,"onUpdate:modelValue":t[5]||(t[5]=l=>a.localConfig.room=l),clearable:"",density:"comfortable",label:"考场号(仅 ExamSchedule-Management 支持此配置)",placeholder:"如:一号考场","prepend-inner-icon":"mdi-home",variant:"outlined"},null,8,["modelValue"])]),_:1})]),_:1}),i($e,null,{default:d(()=>[i(ge,{cols:"12"},{default:d(()=>[m("span",Dn,[i(K,{size:"small",class:"mr-1"},{default:d(()=>[...t[39]||(t[39]=[C("mdi-message-text",-1)])]),_:1}),t[40]||(t[40]=C(" 考试提示 ",-1))]),i(Ia,{modelValue:a.localConfig.message,"onUpdate:modelValue":t[6]||(t[6]=l=>a.localConfig.message=l),rules:[l=>!!l||"考试提示不能为空",l=>l&&l.trim().length>0||"考试提示不能为空白字符"],clearable:"",density:"comfortable",label:"输入考试相关的提示信息...","no-resize":"",placeholder:"例如:请保持卷面整洁,诚信应考。在听到终考铃时立刻停止作答。",rows:"3",variant:"outlined"},null,8,["modelValue","rules"]),!a.localConfig.message||a.localConfig.message.trim()===""?($(),pe("div",Cn,[i(Ta,{class:"d-flex gap-2",column:""},{default:d(()=>[($(!0),pe(be,null,tt(a.defaultExamTips,(l,u)=>($(),ie(qe,{key:u,class:"cursor-pointer",color:"primary",size:"small",variant:"outlined",onClick:o=>s.selectDefaultTip(l)},{default:d(()=>[i(K,{size:"small",start:""},{default:d(()=>[...t[41]||(t[41]=[C("mdi-plus",-1)])]),_:1}),C(" "+se(l.substring(0,20))+"... ",1)]),_:2},1032,["onClick"]))),128))]),_:1}),m("div",Vn,[i(K,{class:"mr-1",size:"x-small"},{default:d(()=>[...t[42]||(t[42]=[C("mdi-lightbulb-outline",-1)])]),_:1}),t[43]||(t[43]=C(" 点击上方选项快速添加常用考试提示 ",-1))])])):ue("",!0)]),_:1})]),_:1})]),_:1})]),_:1}),i(Pe,{border:"",class:"mb-4",elevation:"1"},{default:d(()=>[i(Le,{class:"d-flex align-center bg-success-lighten-5 pa-4"},{default:d(()=>[i(K,{class:"mr-2"},{default:d(()=>[...t[44]||(t[44]=[C("mdi-format-list-bulleted",-1)])]),_:1}),t[47]||(t[47]=m("span",{class:"font-weight-bold"},"考试科目安排",-1)),i(Ye),m("div",xn,[i(Pa,{modelValue:a.enableCustomAlertTime,"onUpdate:modelValue":t[7]||(t[7]=l=>a.enableCustomAlertTime=l),color:"primary",density:"compact","hide-details":"",onChange:s.toggleAlertTimeMode},{label:d(()=>[...t[45]||(t[45]=[m("span",{class:"text-body-2"},"自定义提醒时间",-1)])]),_:1},8,["modelValue","onChange"])]),i(Y,{color:"success","prepend-icon":"mdi-plus",size:"small",variant:"elevated",onClick:s.addExamInfo},{default:d(()=>[...t[46]||(t[46]=[C(" 添加科目 ",-1)])]),_:1},8,["onClick"])]),_:1}),i(Oe,{class:"pa-0"},{default:d(()=>[a.localConfig.examInfos&&a.localConfig.examInfos.length>0?($(),ie(ct,{key:0,class:"py-0"},{default:d(()=>[($(!0),pe(be,null,tt(a.localConfig.examInfos,(l,u)=>($(),ie(Ke,{key:u,class:"border-b pa-4 hover-highlight"},{default:d(()=>[m("div",Tn,[m("div",Sn,[i(qe,{color:u%2===0?"primary":"secondary",size:"small",variant:"tonal",class:"mr-3"},{default:d(()=>[i(K,{start:"",size:"small"},{default:d(()=>[C("mdi-numeric-"+se(u+1)+"-circle",1)]),_:2},1024),C(" 第 "+se(u+1)+" 科目 ",1)]),_:2},1032,["color"]),i(Ye),m("div",Mn,[u>0?($(),ie(Y,{key:0,color:"primary",icon:"mdi-arrow-up",size:"x-small",variant:"text",onClick:o=>s.moveExamInfo(u,-1)},{default:d(()=>[i(at,{activator:"parent",location:"bottom"},{default:d(()=>[...t[48]||(t[48]=[C("上移",-1)])]),_:1})]),_:1},8,["onClick"])):ue("",!0),us.moveExamInfo(u,1)},{default:d(()=>[i(at,{activator:"parent",location:"bottom"},{default:d(()=>[...t[49]||(t[49]=[C("下移",-1)])]),_:1})]),_:1},8,["onClick"])):ue("",!0),i(Y,{color:"error",icon:"mdi-delete",size:"x-small",variant:"text",onClick:o=>s.removeExamInfo(u)},{default:d(()=>[i(at,{activator:"parent",location:"bottom"},{default:d(()=>[...t[50]||(t[50]=[C("删除",-1)])]),_:1})]),_:1},8,["onClick"])])]),i($e,{class:"align-start"},{default:d(()=>[i(ge,{cols:"12",md:"4"},{default:d(()=>[i($a,{modelValue:l.name,"onUpdate:modelValue":o=>l.name=o,items:a.availableSubjects,rules:[o=>!!o||"科目名称不能为空",o=>o&&o.trim().length>0||"科目名称不能为空白字符"],clearable:"",density:"comfortable","item-title":"name",label:"科目名称","no-data-text":"没有可用科目,请输入自定义名称","prepend-inner-icon":"mdi-book",variant:"outlined"},{"prepend-item":d(()=>[a.customSubjectInput?($(),ie(Ke,{key:0,title:"自定义:"},{append:d(()=>[m("span",_n,se(a.customSubjectInput),1)]),_:1})):ue("",!0),a.customSubjectInput?($(),ie(Et,{key:1})):ue("",!0)]),_:1},8,["modelValue","onUpdate:modelValue","items","rules"])]),_:2},1024),i(ge,{cols:"12",md:"3"},{default:d(()=>[i(mt,{modelValue:l.startDateMenu,"onUpdate:modelValue":o=>l.startDateMenu=o,"close-on-content-click":!1,"min-width":"auto","offset-y":"",transition:"scale-transition"},{activator:d(({props:o})=>[i(Ae,G({modelValue:l.startFormatted,"onUpdate:modelValue":v=>l.startFormatted=v,rules:[v=>!!v||"开始时间不能为空",v=>s.validateTimeFormat(v,"开始时间"),()=>s.validateNoTimeOverlap(l,u)],density:"comfortable",label:"开始时间",placeholder:"2025/01/01 09:00","prepend-inner-icon":"mdi-clock-start"},{ref_for:!0},o,{variant:"outlined",onBlur:v=>s.updateStartDateTimeFromInput(u)}),{append:d(()=>[i(K,null,{default:d(()=>[...t[51]||(t[51]=[C("mdi-calendar-clock",-1)])]),_:1})]),_:1},16,["modelValue","onUpdate:modelValue","rules","onBlur"])]),default:d(()=>[i(Pe,{"min-width":"500"},{default:d(()=>[i(Le,{class:"text-center py-3 bg-primary-lighten-5"},{default:d(()=>[i(K,{class:"mr-2",color:"primary"},{default:d(()=>[...t[52]||(t[52]=[C("mdi-clock-start",-1)])]),_:1}),t[53]||(t[53]=C(" 选择开始时间 ",-1))]),_:1}),i(Oe,{class:"pa-0"},{default:d(()=>[i($e,{"no-gutters":""},{default:d(()=>[i(ge,{class:"border-e",cols:"6"},{default:d(()=>[i(Pt,{modelValue:l.startDate,"onUpdate:modelValue":[o=>l.startDate=o,o=>s.updateStartDateTime(u)],color:"primary",elevation:"0",locale:"zh-cn","show-adjacent-months":""},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),i(ge,{cols:"6"},{default:d(()=>[i(Ft,{modelValue:l.startTime,"onUpdate:modelValue":[o=>l.startTime=o,o=>s.updateStartDateTime(u)],color:"primary",elevation:"0",format:"24hr",scrollable:""},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024)]),_:2},1024),i(st,null,{default:d(()=>[i(Ye),i(Y,{color:"grey",variant:"text",onClick:o=>l.startDateMenu=!1},{default:d(()=>[...t[54]||(t[54]=[C(" 关闭 ",-1)])]),_:1},8,["onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1032,["modelValue","onUpdate:modelValue"])]),_:2},1024),i(ge,{cols:"12",md:"3"},{default:d(()=>[i(mt,{modelValue:l.endDateMenu,"onUpdate:modelValue":o=>l.endDateMenu=o,"close-on-content-click":!1,"min-width":"auto","offset-y":"",transition:"scale-transition"},{activator:d(({props:o})=>[i(Ae,G({modelValue:l.endFormatted,"onUpdate:modelValue":v=>l.endFormatted=v,rules:[v=>!!v||"结束时间不能为空",v=>s.validateTimeFormat(v,"结束时间"),()=>s.validateEndAfterStart(l),()=>s.validateNoTimeOverlap(l,u)],density:"comfortable",label:"结束时间",placeholder:"2025/01/01 11:00","prepend-inner-icon":"mdi-clock-end"},{ref_for:!0},o,{variant:"outlined",onBlur:v=>s.updateEndDateTimeFromInput(u)}),{append:d(()=>[i(K,null,{default:d(()=>[...t[55]||(t[55]=[C("mdi-calendar-clock",-1)])]),_:1})]),_:1},16,["modelValue","onUpdate:modelValue","rules","onBlur"])]),default:d(()=>[i(Pe,{"min-width":"500"},{default:d(()=>[i(Le,{class:"text-center py-3 bg-error-lighten-5"},{default:d(()=>[i(K,{class:"mr-2",color:"error"},{default:d(()=>[...t[56]||(t[56]=[C("mdi-clock-end",-1)])]),_:1}),t[57]||(t[57]=C(" 选择结束时间 ",-1))]),_:1}),i(Oe,{class:"pa-0"},{default:d(()=>[i($e,{"no-gutters":""},{default:d(()=>[i(ge,{class:"border-e",cols:"6"},{default:d(()=>[i(Pt,{modelValue:l.endDate,"onUpdate:modelValue":[o=>l.endDate=o,o=>s.updateEndDateTime(u)],color:"error",elevation:"0",locale:"zh-cn","show-adjacent-months":""},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),i(ge,{cols:"6"},{default:d(()=>[i(Ft,{modelValue:l.endTime,"onUpdate:modelValue":[o=>l.endTime=o,o=>s.updateEndDateTime(u)],color:"error",elevation:"0",format:"24hr",scrollable:""},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024)]),_:2},1024),i(st,null,{default:d(()=>[i(Ye),i(Y,{color:"grey",variant:"text",onClick:o=>l.endDateMenu=!1},{default:d(()=>[...t[58]||(t[58]=[C(" 关闭 ",-1)])]),_:1},8,["onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1032,["modelValue","onUpdate:modelValue"])]),_:2},1024),i(ge,{cols:"12",md:"2"},{default:d(()=>[i(Ae,{modelValue:l.durationMinutes,"onUpdate:modelValue":o=>l.durationMinutes=o,rules:[o=>!!o||"时长不能为空",o=>!isNaN(o)||"时长必须是数字",o=>parseInt(o)>0||"时长必须大于0",o=>parseInt(o)<=1440||"时长不能超过1440分钟(24小时)"],type:"number",min:"1",max:"1440",density:"comfortable",label:"时长(分钟)",placeholder:"例如:120","prepend-inner-icon":"mdi-timer",variant:"outlined",hint:s.durationHint(l),"persistent-hint":"",onBlur:o=>s.updateDurationFromInput(u)},null,8,["modelValue","onUpdate:modelValue","rules","hint","onBlur"])]),_:2},1024),a.enableCustomAlertTime?($(),ie(ge,{key:0,cols:"12",md:"2"},{default:d(()=>[i(Ae,{modelValue:l.alertTime,"onUpdate:modelValue":o=>l.alertTime=o,rules:[o=>!!o||"提醒时间不能为空",o=>!isNaN(o)||"提醒时间必须是数字",o=>parseInt(o)>=0||"提醒时间不能为负数",o=>parseInt(o)<=120||"提醒时间不能超过120分钟"],type:"number",min:"0",max:"120",density:"comfortable",label:"提醒时间(分钟)",placeholder:"例如:15","prepend-inner-icon":"mdi-bell-ring",variant:"outlined",hint:"考试结束前提醒","persistent-hint":""},null,8,["modelValue","onUpdate:modelValue","rules"])]),_:2},1024)):ue("",!0)]),_:2},1024)])]),_:2},1024))),128))]),_:1})):($(),pe("div",In,[i(K,{class:"mb-4",color:"grey-lighten-2",size:"80"},{default:d(()=>[...t[59]||(t[59]=[C(" mdi-calendar-blank ",-1)])]),_:1}),t[61]||(t[61]=m("div",{class:"text-h5 text-grey-darken-1 mb-2"},"暂无考试科目安排",-1)),t[62]||(t[62]=m("div",{class:"text-body-1 text-grey mb-4"},' 点击上方"添加科目"按钮开始配置 ',-1)),i(Y,{color:"success","prepend-icon":"mdi-plus",size:"large",variant:"elevated",onClick:s.addExamInfo},{default:d(()=>[...t[60]||(t[60]=[C(" 立即添加科目 ",-1)])]),_:1},8,["onClick"])]))]),_:1})]),_:1})])):ue("",!0),i(Ca,{modelValue:a.deleteDialog,"onUpdate:modelValue":t[9]||(t[9]=l=>a.deleteDialog=l),"max-width":"400"},{default:d(()=>[i(Pe,null,{default:d(()=>[i(Le,{class:"d-flex align-center"},{default:d(()=>[i(K,{class:"mr-2",color:"error"},{default:d(()=>[...t[63]||(t[63]=[C("mdi-delete-alert",-1)])]),_:1}),t[64]||(t[64]=C(" 确认删除配置 ",-1))]),_:1}),i(Oe,null,{default:d(()=>[t[65]||(t[65]=C(" 确定要删除配置 ",-1)),m("strong",null,se(a.localConfig.examName||`配置 ${n.configId}`),1),t[66]||(t[66]=C(" 吗? ",-1)),t[67]||(t[67]=m("br",null,null,-1)),t[68]||(t[68]=m("small",{class:"text-grey"},"此操作不可撤销,将会删除所有相关数据",-1))]),_:1}),i(st,null,{default:d(()=>[i(Ye),i(Y,{color:"grey",variant:"text",onClick:t[8]||(t[8]=l=>a.deleteDialog=!1)},{default:d(()=>[...t[69]||(t[69]=[C(" 取消 ",-1)])]),_:1}),i(Y,{loading:a.deleting,color:"error",variant:"outlined",onClick:s.deleteConfig},{default:d(()=>[...t[70]||(t[70]=[C(" 删除 ",-1)])]),_:1},8,["loading","onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])])}const jn=ya(tn,[["render",Pn],["__scopeId","data-v-415c7c7f"]]);export{Pt as V,jn as _,$a as a};