UNPKG

dk-plus

Version:
2 lines (1 loc) 2.2 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("vue"),E=require("./index3.js"),L=require("./index4.js"),a=require("./index5.js"),_=l.defineComponent({name:"DkTimeSelect",props:E.dkTimeSelectProps,emits:L.timeSelectEmits,setup(t,{emit:s}){const f=l.ref(null),n=l.reactive({open:!1,text:t.modelValue,committed:t.modelValue});l.watch(()=>t.modelValue,e=>{n.text=e||"",n.committed=e||""},{immediate:!0});const c=l.computed(()=>{const e=a.buildTimeList(t.start,t.end,t.step),o=t.minTime?a.parseTimeToSeconds(t.minTime):null,i=t.maxTime?a.parseTimeToSeconds(t.maxTime):null;return e.map(d=>{const u=a.parseTimeToSeconds(d),v=u==null||o!=null&&u<o||i!=null&&u>i;let T=!1;if(u!=null){const m=Math.floor(u/3600),y=Math.floor(u%3600/60),B=u%60,S=typeof t.disabledHours=="function"?t.disabledHours():[],h=typeof t.disabledMinutes=="function"?t.disabledMinutes(m):[],g=typeof t.disabledSeconds=="function"?t.disabledSeconds(m,y):[];T=Array.isArray(S)&&S.includes(m)||Array.isArray(h)&&h.includes(y)||Array.isArray(g)&&g.includes(B)}return{value:d,disabled:v||T}})}),M=e=>(t.modelValue||"")===e,V=e=>{const o=c.value.find(i=>i.value===e);return!!(o!=null&&o.disabled)},b=e=>{n.text=e,n.committed=e,s("update:modelValue",e),s("change",e)},w=e=>{t.disabled||V(e)||(b(e),n.open=!1)},x=()=>{if(!t.disabled){if(!n.text){n.open=!1;return}n.text="",n.committed="",s("update:modelValue",""),s("change",""),s("clear"),n.open=!1}},A=e=>{n.text=String(e!=null?e:"")},j=e=>{t.disabled||(n.open=!0,s("focus",e))},q=e=>{if(!t.editable||t.disabled){s("blur",e);return}const o=(n.text||"").trim();if(!o){n.committed&&x(),s("blur",e);return}c.value.some(d=>d.value===o&&!d.disabled)?o!==n.committed&&b(o):n.text=n.committed,s("blur",e)},r=e=>{if(!n.open)return;const o=f.value,i=e.target;!o||!i||o.contains(i)||(n.open=!1)};return l.watch(()=>n.open,e=>{e?document.addEventListener("mousedown",r):document.removeEventListener("mousedown",r)},{immediate:!0}),l.onBeforeUnmount(()=>{document.removeEventListener("mousedown",r)}),{...l.toRefs(n),rootRef:f,optionItems:c,isSelected:M,onPick:w,onClear:x,onInputUpdate:A,onFocus:j,onBlur:q}}});exports.default=_;