2023-11-15 15:57:04 +08:00

2 lines
3.3 KiB
JavaScript

import{d as T,c as _}from"./customParseFormat-40c50080.js";import{E as h}from"./index-4601cf3b.js";import{b as H,_ as x,d as y,a7 as F,p as N,u as O,E as j}from"./index-cf9a2dd7.js";import{d as E,b as w,r as M,c as i,e as p,v as f,x as v,u as m,n as U,S as D,H as A,f as L,F as q,z as G,_ as J}from"./plugin-vue_export-helper-85a4d40b.js";const K=H({format:{type:String,default:"HH:mm"},modelValue:String,disabled:Boolean,editable:{type:Boolean,default:!0},effect:{type:String,default:"light"},clearable:{type:Boolean,default:!0},size:x,placeholder:String,start:{type:String,default:"09:00"},end:{type:String,default:"18:00"},step:{type:String,default:"00:30"},minTime:String,maxTime:String,name:String,prefixIcon:{type:y([String,Object]),default:()=>F},clearIcon:{type:y([String,Object]),default:()=>N}}),u=n=>{const o=(n||"").split(":");if(o.length>=2){let t=Number.parseInt(o[0],10);const a=Number.parseInt(o[1],10),s=n.toUpperCase();return s.includes("AM")&&t===12?t=0:s.includes("PM")&&t!==12&&(t+=12),{hours:t,minutes:a}}return null},S=(n,o)=>{const t=u(n);if(!t)return-1;const a=u(o);if(!a)return-1;const s=t.minutes+t.hours*60,c=a.minutes+a.hours*60;return s===c?0:s>c?1:-1},k=n=>`${n}`.padStart(2,"0"),d=n=>`${k(n.hours)}:${k(n.minutes)}`,Q=(n,o)=>{const t=u(n);if(!t)return"";const a=u(o);if(!a)return"";const s={hours:t.hours,minutes:t.minutes};return s.minutes+=a.minutes,s.hours+=a.hours,s.hours+=Math.floor(s.minutes/60),s.minutes=s.minutes%60,d(s)},R=E({name:"ElTimeSelect"}),W=E({...R,props:K,emits:["change","blur","focus","update:modelValue"],setup(n,{expose:o}){const t=n;T.extend(_);const{Option:a}=h,s=w("input"),c=M(),I=O(),V=i(()=>t.modelValue),z=i(()=>{const e=u(t.start);return e?d(e):null}),g=i(()=>{const e=u(t.end);return e?d(e):null}),B=i(()=>{const e=u(t.step);return e?d(e):null}),C=i(()=>{const e=u(t.minTime||"");return e?d(e):null}),$=i(()=>{const e=u(t.maxTime||"");return e?d(e):null}),P=i(()=>{const e=[];if(t.start&&t.end&&t.step){let l=z.value,r;for(;l&&g.value&&S(l,g.value)<=0;)r=T(l,"HH:mm").format(t.format),e.push({value:r,disabled:S(l,C.value||"-1:-1")<=0||S(l,$.value||"100:100")>=0}),l=Q(l,B.value)}return e});return o({blur:()=>{var e,l;(l=(e=c.value)==null?void 0:e.blur)==null||l.call(e)},focus:()=>{var e,l;(l=(e=c.value)==null?void 0:e.focus)==null||l.call(e)}}),(e,l)=>(p(),f(m(h),{ref_key:"select",ref:c,"model-value":m(V),disabled:m(I),clearable:e.clearable,"clear-icon":e.clearIcon,size:e.size,effect:e.effect,placeholder:e.placeholder,"default-first-option":"",filterable:e.editable,"onUpdate:modelValue":l[0]||(l[0]=r=>e.$emit("update:modelValue",r)),onChange:l[1]||(l[1]=r=>e.$emit("change",r)),onBlur:l[2]||(l[2]=r=>e.$emit("blur",r)),onFocus:l[3]||(l[3]=r=>e.$emit("focus",r))},{prefix:v(()=>[e.prefixIcon?(p(),f(m(j),{key:0,class:U(m(s).e("prefix-icon"))},{default:v(()=>[(p(),f(D(e.prefixIcon)))]),_:1},8,["class"])):A("v-if",!0)]),default:v(()=>[(p(!0),L(q,null,G(m(P),r=>(p(),f(m(a),{key:r.value,label:r.value,value:r.value,disabled:r.disabled},null,8,["label","value","disabled"]))),128))]),_:1},8,["model-value","disabled","clearable","clear-icon","size","effect","placeholder","filterable"]))}});var b=J(W,[["__file","/home/runner/work/element-plus/element-plus/packages/components/time-select/src/time-select.vue"]]);b.install=n=>{n.component(b.name,b)};const X=b,se=X;export{se as E};