import{E as V,a as P,s as B}from"./el-select.js";import{_ as p}from"./el-tree.js";import{ay as F,R as w,M as y,n as S,d as M,P as H,i as L,aw as N,a_ as R,a$ as $,r as j,Q as O,b as q,am as b,aI as z}from"./index.js";import{p as _}from"./el-checkbox.js";import{i as Q}from"./isEqual.js";const U=(e,{attrs:c},{tree:s,key:d})=>{const r=F("tree-select"),i={..._(w(e),Object.keys(V.props)),...c,valueKey:d,popperClass:y(()=>{const a=[r.e("popper")];return e.popperClass&&a.push(e.popperClass),a.join(" ")}),filterMethod:(a="")=>{e.filterMethod&&e.filterMethod(a),S(()=>{var f;(f=s.value)==null||f.filter(a)})},onVisibleChange:a=>{var f;(f=c.onVisibleChange)==null||f.call(c,a),e.filterable&&a&&i.filterMethod()}};return i},D=M({extends:P,setup(e,c){const s=P.setup(e,c);delete s.selectOptionClick;const d=H().proxy;return S(()=>{s.select.cachedOptions.get(d.value)||s.select.onOptionCreate(d)}),s},methods:{selectOptionClick(){this.$el.parentElement.click()}}});function A(e){return e||e===0}function T(e){return Array.isArray(e)&&e.length}function x(e){return Array.isArray(e)?e:A(e)?[e]:[]}function K(e,c,s,d,r){for(let i=0;i<e.length;i++){const a=e[i];if(c(a,i,e,r))return d?d(a,i,e,r):a;{const f=s(a);if(T(f)){const l=K(f,c,s,d,a);if(l)return l}}}}function I(e,c,s,d){for(let r=0;r<e.length;r++){const i=e[r];c(i,r,e,d);const a=s(i);T(a)&&I(a,c,s,i)}}const G=(e,{attrs:c,slots:s,emit:d},{select:r,tree:i,key:a})=>{L(()=>e.modelValue,()=>{e.showCheckbox&&S(()=>{const t=i.value;t&&!Q(t.getCheckedKeys(),x(e.modelValue))&&t.setCheckedKeys(x(e.modelValue))})},{immediate:!0,deep:!0});const f=y(()=>({value:a.value,...e.props})),l=(t,n)=>{var o;const u=f.value[t];return R(u)?u(n,(o=i.value)==null?void 0:o.getNode(l("value",n))):n[u]},m=x(e.modelValue).map(t=>K(e.data||[],n=>l("value",n)===t,n=>l("children",n),(n,o,u,h)=>h&&l("value",h))).filter(t=>A(t)),k=y(()=>{if(!e.renderAfterExpand&&!e.lazy)return[];const t=[];return I(e.data.concat(e.cacheData),n=>{const o=l("value",n);t.push({value:o,currentLabel:l("label",n),isDisabled:l("disabled",n)})},n=>l("children",n)),t});return{..._(w(e),Object.keys(p.props)),...c,nodeKey:a,expandOnClickNode:y(()=>!e.checkStrictly&&e.expandOnClickNode),defaultExpandedKeys:y(()=>e.defaultExpandedKeys?e.defaultExpandedKeys.concat(m):m),renderContent:(t,{node:n,data:o,store:u})=>t(D,{value:l("value",o),label:l("label",o),disabled:l("disabled",o)},e.renderContent?()=>e.renderContent(t,{node:n,data:o,store:u}):s.default?()=>s.default({node:n,data:o,store:u}):void 0),filterNodeMethod:(t,n,o)=>{var u;return e.filterNodeMethod?e.filterNodeMethod(t,n,o):t?(u=l("label",n))==null?void 0:u.includes(t):!0},onNodeClick:(t,n,o)=>{var u,h,C;if((u=c.onNodeClick)==null||u.call(c,t,n,o),!(e.showCheckbox&&e.checkOnClickNode))if(!e.showCheckbox&&(e.checkStrictly||n.isLeaf)){if(!l("disabled",t)){const g=(h=r.value)==null?void 0:h.options.get(l("value",t));(C=r.value)==null||C.handleOptionSelect(g,!0)}}else e.expandOnClickNode&&o.proxy.handleExpandIconClick()},onCheck:(t,n)=>{var o;(o=c.onCheck)==null||o.call(c,t,n);const u=l("value",t);if(e.checkStrictly)d(N,e.multiple?n.checkedKeys:n.checkedKeys.includes(u)?u:void 0);else if(e.multiple)d(N,i.value.getCheckedKeys(!0));else{const h=K([t],v=>!T(l("children",v))&&!l("disabled",v),v=>l("children",v)),C=h?l("value",h):void 0,g=A(e.modelValue)&&!!K([t],v=>l("value",v)===e.modelValue,v=>l("children",v));d(N,C===e.modelValue||g?void 0:C)}},cacheOptions:k}};var J=M({props:{data:{type:Array,default:()=>[]}},setup(e){const c=$(B);return L(()=>e.data,()=>{e.data.forEach(s=>{c.cachedOptions.has(s.value)||c.cachedOptions.set(s.value,s)}),c.setSelected()},{immediate:!0,deep:!0}),()=>{}}});const W=M({name:"ElTreeSelect",inheritAttrs:!1,props:{...V.props,...p.props,cacheData:{type:Array,default:()=>[]}},setup(e,c){const{slots:s,expose:d}=c,r=j(),i=j(),a=y(()=>e.nodeKey||e.valueKey||"value"),f=U(e,c,{select:r,tree:i,key:a}),{cacheOptions:l,...m}=G(e,c,{select:r,tree:i,key:a}),k=O({});return d(k),q(()=>{Object.assign(k,{..._(i.value,["filter","updateKeyChildren","getCheckedNodes","setCheckedNodes","getCheckedKeys","setCheckedKeys","setChecked","getHalfCheckedNodes","getHalfCheckedKeys","getCurrentKey","getCurrentNode","setCurrentKey","setCurrentNode","getNode","remove","append","insertBefore","insertAfter"]),..._(r.value,["focus","blur"])})}),()=>b(V,O({...f,ref:t=>r.value=t}),{...s,default:()=>[b(J,{data:l.value}),b(p,O({...m,ref:t=>i.value=t}))]})}});var E=z(W,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tree-select/src/tree-select.vue"]]);E.install=e=>{e.component(E.name,E)};const X=E,le=X;export{le as E};
|