el-tree-select-a6664591.js 5.3 KB

12
  1. import{E as p,a as R,e as q,s as z}from"./el-select-3d8aebfc.js";import{_ as T}from"./el-tree-4cefa975.js";import{t as F,w as j,A as V,bP as I,z as C,m as w,ah as $,av as D,ai as G,r as B,ac as S,B as J,by as M}from"./index-312d0758.js";import{U as _}from"./event-9519ab40.js";import{p as A}from"./index-da3d4eae.js";import{i as Q}from"./isEqual-76463fee.js";import{_ as W}from"./plugin-vue_export-helper-1cff8a04.js";const X=(e,{attrs:a,emit:o},{select:d,tree:s,key:n})=>{const u=F("tree-select");return j(()=>e.data,()=>{e.filterable&&V(()=>{var t,h;(h=s.value)==null||h.filter((t=d.value)==null?void 0:t.states.inputValue)})},{flush:"post"}),{...A(I(e),Object.keys(p.props)),...a,"onUpdate:modelValue":t=>o(_,t),valueKey:n,popperClass:C(()=>{const t=[u.e("popper")];return e.popperClass&&t.push(e.popperClass),t.join(" ")}),filterMethod:(t="")=>{var h;e.filterMethod?e.filterMethod(t):e.remoteMethod?e.remoteMethod(t):(h=s.value)==null||h.filter(t)}}},Y=w({extends:R,setup(e,a){const o=R.setup(e,a);delete o.selectOptionClick;const d=$().proxy;return V(()=>{o.select.states.cachedOptions.get(d.value)||o.select.onOptionCreate(d)}),o},methods:{selectOptionClick(){this.$el.parentElement.click()}}});function L(e){return e||e===0}function H(e){return Array.isArray(e)&&e.length}function g(e){return Array.isArray(e)?e:L(e)?[e]:[]}function E(e,a,o,d,s){for(let n=0;n<e.length;n++){const u=e[n];if(a(u,n,e,s))return d?d(u,n,e,s):u;{const m=o(u);if(H(m)){const t=E(m,a,o,d,u);if(t)return t}}}}function P(e,a,o,d){for(let s=0;s<e.length;s++){const n=e[s];a(n,s,e,d);const u=o(n);H(u)&&P(u,a,o,n)}}const Z=(e,{attrs:a,slots:o,emit:d},{select:s,tree:n,key:u})=>{j(()=>e.modelValue,()=>{e.showCheckbox&&V(()=>{const l=n.value;l&&!Q(l.getCheckedKeys(),g(e.modelValue))&&l.setCheckedKeys(g(e.modelValue))})},{immediate:!0,deep:!0});const m=C(()=>({value:u.value,label:"label",children:"children",disabled:"disabled",isLeaf:"isLeaf",...e.props})),t=(l,c)=>{var i;const r=m.value[l];return D(r)?r(c,(i=n.value)==null?void 0:i.getNode(t("value",c))):c[r]},h=g(e.modelValue).map(l=>E(e.data||[],c=>t("value",c)===l,c=>t("children",c),(c,i,r,v)=>v&&t("value",v))).filter(l=>L(l)),b=C(()=>{if(!e.renderAfterExpand&&!e.lazy)return[];const l=[];return P(e.data.concat(e.cacheData),c=>{const i=t("value",c);l.push({value:i,currentLabel:t("label",c),isDisabled:t("disabled",c)})},c=>t("children",c)),l});return{...A(I(e),Object.keys(T.props)),...a,nodeKey:u,expandOnClickNode:C(()=>!e.checkStrictly&&e.expandOnClickNode),defaultExpandedKeys:C(()=>e.defaultExpandedKeys?e.defaultExpandedKeys.concat(h):h),renderContent:(l,{node:c,data:i,store:r})=>l(Y,{value:t("value",i),label:t("label",i),disabled:t("disabled",i)},e.renderContent?()=>e.renderContent(l,{node:c,data:i,store:r}):o.default?()=>o.default({node:c,data:i,store:r}):void 0),filterNodeMethod:(l,c,i)=>e.filterNodeMethod?e.filterNodeMethod(l,c,i):l?new RegExp(q(l),"i").test(t("label",c)||""):!0,onNodeClick:(l,c,i)=>{var r,v,k,K;if((r=a.onNodeClick)==null||r.call(a,l,c,i),!(e.showCheckbox&&e.checkOnClickNode)){if(!e.showCheckbox&&(e.checkStrictly||c.isLeaf)){if(!t("disabled",l)){const N=(v=s.value)==null?void 0:v.states.options.get(t("value",l));(k=s.value)==null||k.handleOptionSelect(N)}}else e.expandOnClickNode&&i.proxy.handleExpandIconClick();(K=s.value)==null||K.focus()}},onCheck:(l,c)=>{var i;if(!e.showCheckbox)return;const r=t("value",l),v={};P([n.value.store.root],f=>v[f.key]=f,f=>f.childNodes);const k=c.checkedKeys,K=e.multiple?g(e.modelValue).filter(f=>!(f in v)&&!k.includes(f)):[],N=K.concat(k);if(e.checkStrictly)d(_,e.multiple?N:N.includes(r)?r:void 0);else if(e.multiple)d(_,K.concat(n.value.getCheckedKeys(!0)));else{const f=E([l],y=>!H(t("children",y))&&!t("disabled",y),y=>t("children",y)),x=f?t("value",f):void 0,U=L(e.modelValue)&&!!E([l],y=>t("value",y)===e.modelValue,y=>t("children",y));d(_,x===e.modelValue||U?void 0:x)}V(()=>{var f;const x=g(e.modelValue);n.value.setCheckedKeys(x),(f=a.onCheck)==null||f.call(a,l,{checkedKeys:n.value.getCheckedKeys(),checkedNodes:n.value.getCheckedNodes(),halfCheckedKeys:n.value.getHalfCheckedKeys(),halfCheckedNodes:n.value.getHalfCheckedNodes()})}),(i=s.value)==null||i.focus()},cacheOptions:b}};var ee=w({props:{data:{type:Array,default:()=>[]}},setup(e){const a=G(z);return j(()=>e.data,()=>{var o;e.data.forEach(s=>{a.states.cachedOptions.has(s.value)||a.states.cachedOptions.set(s.value,s)});const d=((o=a.selectRef)==null?void 0:o.querySelectorAll("input"))||[];Array.from(d).includes(document.activeElement)||a.setSelected()},{flush:"post",immediate:!0}),()=>{}}});const te=w({name:"ElTreeSelect",inheritAttrs:!1,props:{...p.props,...T.props,cacheData:{type:Array,default:()=>[]}},setup(e,a){const{slots:o,expose:d}=a,s=B(),n=B(),u=C(()=>e.nodeKey||e.valueKey||"value"),m=X(e,a,{select:s,tree:n,key:u}),{cacheOptions:t,...h}=Z(e,a,{select:s,tree:n,key:u}),b=S({});return d(b),J(()=>{Object.assign(b,{...A(n.value,["filter","updateKeyChildren","getCheckedNodes","setCheckedNodes","getCheckedKeys","setCheckedKeys","setChecked","getHalfCheckedNodes","getHalfCheckedKeys","getCurrentKey","getCurrentNode","setCurrentKey","setCurrentNode","getNode","remove","append","insertBefore","insertAfter"]),...A(s.value,["focus","blur"])})}),()=>M(p,S({...m,ref:l=>s.value=l}),{...o,default:()=>[M(ee,{data:t.value}),M(T,S({...h,ref:l=>n.value=l}))]})}});var O=W(te,[["__file","tree-select.vue"]]);O.install=e=>{e.component(O.name,O)};const le=O,ue=le;export{ue as E};