sci-pro
Version:
2 lines (1 loc) • 2.2 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),w=require("../directives/click-outside.js");require("./style/index.css");const V={class:"sci-select"},C=["placeholder","value"],E={class:"options"},S=["option"],x=["title"],b=["onClick"],N=e.defineComponent({name:"sci-select"}),B=e.defineComponent({...N,props:{placeholder:{default:"Select"},options:{},defaultValues:{},selectStyle:{},txtUnit:{default:""}},emits:["change"],setup(r,{emit:d}){const n=r,p=e.computed(()=>n.txtUnit),v=e.computed(()=>n.selectStyle),f=e.computed(()=>l.value&&l.value.length&&l.value.join(",")||""),h=e.computed(()=>n.options),c=e.ref(!1),l=e.ref([]),a=e.ref(),i=e.ref(),m=d;e.watch(()=>n.defaultValues,t=>{l.value=t},{immediate:!0});const _=t=>l.value&&l.value.length&&l.value.some(s=>s===t),k=()=>{c.value=!1},y=t=>{l.value=[],l.value.push(t),u(),m("change",t)},u=()=>{e.nextTick(()=>{c.value=!c.value})};e.onMounted(()=>{g()});const g=()=>{const t=a.value.getBoundingClientRect().top,s=i.value;t>=521&&setTimeout(()=>{s&&(s.style.top="auto",s.style.bottom="32px")},0)};return(t,s)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",{ref_key:"selectWrapRef",ref:a,class:"sci-select-wrap",style:e.normalizeStyle(v.value)},[e.createElementVNode("div",V,[e.createElementVNode("div",{class:"display-box",tabindex:"-1",onClick:u},[e.createElementVNode("input",{class:"input",placeholder:t.placeholder,readonly:"",value:f.value+p.value},null,8,C)])]),e.createVNode(e.Transition,null,{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:"drop-down",ref_key:"dropDownRef",ref:i},[e.createElementVNode("div",E,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,o=>(e.openBlock(),e.createElementBlock("div",{class:"option",option:o,key:o.value},[e.createElementVNode("label",{class:"option-val",for:"checkboxStyle",title:o.value+""},[e.createElementVNode("span",{class:e.normalizeClass(["title",{selected:_(o.value)}]),onClick:D=>y(o.value)},e.toDisplayString(o.label||o.value),11,b)],8,x)],8,S))),128))])],512),[[e.vShow,c.value]])]),_:1})],4)),[[e.unref(w.default),k]])}});exports.default=B;