You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
5.9 KiB
1 lines
5.9 KiB
import{E as w,a as H,s as B}from"./select.1762932289438.js";import{E as j}from"./text.1762932289438.js";import{l as F,V as S,U as x,b3 as Y,bT as $,a2 as D,h as G,k as J,w as Q}from"./index.1762932289438.js";import{t as A,A as E,c as k,a3 as U,k as R,g as W,b as q,f as X,i as Z,r as I,R as T,s as ee,Y as L}from"./vue.1762932289438.js";import{i as te}from"./popper.1762932289438.js";const le=(e,{attrs:a,emit:o},{select:r,tree:s,key:n})=>{const h=F("tree-select");return A(()=>e.data,()=>{e.filterable&&E(()=>{var t,v;(v=s.value)==null||v.filter((t=r.value)==null?void 0:t.states.inputValue)})},{flush:"post"}),{...S(U(e),Object.keys(w.props)),...a,class:k(()=>a.class),style:k(()=>a.style),"onUpdate:modelValue":t=>o(x,t),valueKey:n,popperClass:k(()=>{const t=[h.e("popper")];return e.popperClass&&t.push(e.popperClass),t.join(" ")}),filterMethod:(t="")=>{var v;e.filterMethod?e.filterMethod(t):e.remoteMethod?e.remoteMethod(t):(v=s.value)==null||v.filter(t)}}},ce=R({extends:H,setup(e,a){const o=H.setup(e,a);delete o.selectOptionClick;const r=W().proxy;return E(()=>{o.select.states.cachedOptions.get(r.value)||o.select.onOptionCreate(r)}),A(()=>a.attrs.visible,s=>{E(()=>{o.states.visible=s})},{immediate:!0}),o},methods:{selectOptionClick(){this.$el.parentElement.click()}}});function P(e){return e||e===0}function p(e){return q(e)&&e.length}function g(e){return q(e)?e:P(e)?[e]:[]}function O(e,a,o,r,s){for(let n=0;n<e.length;n++){const h=e[n];if(a(h,n,e,s))return r?r(h,n,e,s):h;{const C=o(h);if(p(C)){const t=O(C,a,o,r,h);if(t)return t}}}}function M(e,a,o,r){for(let s=0;s<e.length;s++){const n=e[s];a(n,s,e,r);const h=o(n);p(h)&&M(h,a,o,n)}}const ne=(e,{attrs:a,slots:o,emit:r},{select:s,tree:n,key:h})=>{A([()=>e.modelValue,n],()=>{e.showCheckbox&&E(()=>{const l=n.value;l&&!te(l.getCheckedKeys(),g(e.modelValue))&&l.setCheckedKeys(g(e.modelValue))})},{immediate:!0,deep:!0});const C=k(()=>({value:h.value,label:"label",children:"children",disabled:"disabled",isLeaf:"isLeaf",...e.props})),t=(l,c)=>{var i;const u=C.value[l];return X(u)?u(c,(i=n.value)==null?void 0:i.getNode(t("value",c))):c[u]},v=g(e.modelValue).map(l=>O(e.data||[],c=>t("value",c)===l,c=>t("children",c),(c,i,u,f)=>f&&t("value",f))).filter(l=>P(l)),_=k(()=>{if(!e.renderAfterExpand&&!e.lazy)return[];const l=[];return M(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}),b=()=>{var l;return(l=n.value)==null?void 0:l.getCheckedKeys().filter(c=>{var i;const u=(i=n.value)==null?void 0:i.getNode(c);return!D(u)&&$(u.childNodes)})};return{...S(U(e),Object.keys(j.props)),...a,nodeKey:h,expandOnClickNode:k(()=>!e.checkStrictly&&e.expandOnClickNode),defaultExpandedKeys:k(()=>e.defaultExpandedKeys?e.defaultExpandedKeys.concat(v):v),renderContent:(l,{node:c,data:i,store:u})=>l(ce,{value:t("value",i),label:t("label",i),disabled:t("disabled",i),visible:c.visible},e.renderContent?()=>e.renderContent(l,{node:c,data:i,store:u}):o.default?()=>o.default({node:c,data:i,store:u}):void 0),filterNodeMethod:(l,c,i)=>e.filterNodeMethod?e.filterNodeMethod(l,c,i):l?new RegExp(Y(l),"i").test(t("label",c)||""):!0,onNodeClick:(l,c,i)=>{var u,f,m,K;if((u=a.onNodeClick)==null||u.call(a,l,c,i),!(e.showCheckbox&&e.checkOnClickNode)){if(!e.showCheckbox&&(e.checkStrictly||c.isLeaf)){if(!t("disabled",l)){const N=(f=s.value)==null?void 0:f.states.options.get(t("value",l));(m=s.value)==null||m.handleOptionSelect(N)}}else e.expandOnClickNode&&i.proxy.handleExpandIconClick();(K=s.value)==null||K.focus()}},onCheck:(l,c)=>{var i;if(!e.showCheckbox)return;const u=t("value",l),f={};M([n.value.store.root],d=>f[d.key]=d,d=>d.childNodes);const m=c.checkedKeys,K=e.multiple?g(e.modelValue).filter(d=>!(d in f)&&!m.includes(d)):[],N=K.concat(m);if(e.checkStrictly)r(x,e.multiple?N:N.includes(u)?u:void 0);else if(e.multiple){const d=b();r(x,K.concat(d))}else{const d=O([l],y=>!p(t("children",y))&&!t("disabled",y),y=>t("children",y)),V=d?t("value",d):void 0,z=P(e.modelValue)&&!!O([l],y=>t("value",y)===e.modelValue,y=>t("children",y));r(x,V===e.modelValue||z?void 0:V)}E(()=>{var d;const V=g(e.modelValue);n.value.setCheckedKeys(V),(d=a.onCheck)==null||d.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()},onNodeExpand:(l,c,i)=>{var u;(u=a.onNodeExpand)==null||u.call(a,l,c,i),E(()=>{if(!e.checkStrictly&&e.lazy&&e.multiple&&c.checked){const f={},m=n.value.getCheckedKeys();M([n.value.store.root],d=>f[d.key]=d,d=>d.childNodes);const K=g(e.modelValue).filter(d=>!(d in f)&&!m.includes(d)),N=b();r(x,K.concat(N))}})},cacheOptions:_}};var ae=R({props:{data:{type:Array,default:()=>[]}},setup(e){const a=Z(B);return A(()=>e.data,()=>{var o;e.data.forEach(s=>{a.states.cachedOptions.has(s.value)||a.states.cachedOptions.set(s.value,s)});const r=((o=a.selectRef)==null?void 0:o.querySelectorAll("input"))||[];G&&!Array.from(r).includes(document.activeElement)&&a.setSelected()},{flush:"post",immediate:!0}),()=>{}}});const se=R({name:"ElTreeSelect",inheritAttrs:!1,props:{...w.props,...j.props,cacheData:{type:Array,default:()=>[]}},setup(e,a){const{slots:o,expose:r}=a,s=I(),n=I(),h=k(()=>e.nodeKey||e.valueKey||"value"),C=le(e,a,{select:s,tree:n,key:h}),{cacheOptions:t,...v}=ne(e,a,{select:s,tree:n,key:h}),_=T({});return r(_),ee(()=>{Object.assign(_,{...S(n.value,["filter","updateKeyChildren","getCheckedNodes","setCheckedNodes","getCheckedKeys","setCheckedKeys","setChecked","getHalfCheckedNodes","getHalfCheckedKeys","getCurrentKey","getCurrentNode","setCurrentKey","setCurrentNode","getNode","remove","append","insertBefore","insertAfter"]),...S(s.value,["focus","blur","selectedLabel"])})}),()=>L(w,T({...C,ref:b=>s.value=b}),{...o,default:()=>[L(ae,{data:t.value}),L(j,T({...v,ref:b=>n.value=b}))]})}});var ie=J(se,[["__file","tree-select.vue"]]);const fe=Q(ie);export{fe as E};
|
|
|