el-cascader-panel-f17ad27a.js 24 KB

12345678
  1. import{m as pe,t as ce,by as Et,ak as Ye,aW as Qe,I as wt,ai as et,z as g,a1 as W,o as h,b as z,e as Z,c as B,E as he,a as _,f as X,C as T,G as ue,d as re,q as tt,r as S,O as ve,a2 as $t,X as ne,ah as St,ao as _e,av as Ke,az as Tt,j as at,k as me,aO as Pt,ag as Vt,ac as qe,w as ee,ci as Lt,B as st,A as se,g as nt,as as Dt,aJ as It,W as Mt,cj as _t,P as ye,u as d,D as zt,ar as Ft,ay as xt,aA as Bt,bZ as Ht,i as At,Q as Re,R as Ot}from"./index-312d0758.js";import{E as K,a as Kt,g as qt}from"./typescript-c7dac87b.js";import{E as lt}from"./el-scrollbar-c70422fb.js";import{E as ge}from"./index-7588b595.js";import{a as Rt}from"./index-da3d4eae.js";import{E as Ut}from"./index-9d70f9fb.js";import{_ as $e}from"./plugin-vue_export-helper-1cff8a04.js";import{a as Wt}from"./index-1da7ed1a.js";import{c as Ue,t as jt,d as We}from"./el-select-3d8aebfc.js";import{i as be}from"./isEqual-76463fee.js";import{i as Zt,f as ke,g as ot}from"./aria-adfa05c5.js";import{U as Ee,C as we}from"./event-9519ab40.js";import{u as je,c as Ze}from"./arrays-e667dc24.js";import{s as Xt}from"./scroll-27bc6409.js";import{b as Gt}from"./flatten-e78ec402.js";import{c as it}from"./cloneDeep-37d7fb14.js";import{E as Jt,i as Yt}from"./index-fb232398.js";import{u as Qt,E as Xe}from"./el-popper-1c70242b.js";import{u as ea}from"./use-form-item-01b63eaa.js";import{u as ta}from"./use-form-common-props-714f341f.js";import{d as aa}from"./error-78e43d3e.js";import{C as sa}from"./index-1f4b6bfb.js";import{d as na}from"./debounce-80ed8290.js";var la=1/0;function oa(e){var a=e==null?0:e.length;return a?Gt(e,la):[]}var ia=pe({name:"NodeContent",setup(){return{ns:ce("cascader-node")}},render(){const{ns:e}=this,{node:a,panel:n}=this.$parent,{data:s,label:o}=a,{renderLabelFn:p}=n;return Et("span",{class:e.e("label")},p?p({node:a,data:s}):o)}});const Fe=Symbol(),ra=pe({name:"ElCascaderNode",components:{ElCheckbox:Rt,ElRadio:Ut,NodeContent:ia,ElIcon:ge,Check:Ye,Loading:Qe,ArrowRight:wt},props:{node:{type:Object,required:!0},menuId:String},emits:["expand"],setup(e,{emit:a}){const n=et(Fe),s=ce("cascader-node"),o=g(()=>n.isHoverMenu),p=g(()=>n.config.multiple),u=g(()=>n.config.checkStrictly),v=g(()=>{var y;return(y=n.checkedNodes[0])==null?void 0:y.uid}),c=g(()=>e.node.isDisabled),b=g(()=>e.node.isLeaf),N=g(()=>u.value&&!b.value||!c.value),V=g(()=>F(n.expandingNode)),M=g(()=>u.value&&n.checkedNodes.some(F)),F=y=>{var P;const{level:x,uid:te}=e.node;return((P=y==null?void 0:y.pathNodes[x-1])==null?void 0:P.uid)===te},H=()=>{V.value||n.expandNode(e.node)},G=y=>{const{node:P}=e;y!==P.checked&&n.handleCheckChange(P,y)},$=()=>{n.lazyLoad(e.node,()=>{b.value||H()})},q=y=>{o.value&&(L(),!b.value&&a("expand",y))},L=()=>{const{node:y}=e;!N.value||y.loading||(y.loaded?H():$())},j=()=>{o.value&&!b.value||(b.value&&!c.value&&!u.value&&!p.value?R(!0):L())},A=y=>{u.value?(G(y),e.node.loaded&&H()):R(y)},R=y=>{e.node.loaded?(G(y),!u.value&&H()):$()};return{panel:n,isHoverMenu:o,multiple:p,checkStrictly:u,checkedNodeId:v,isDisabled:c,isLeaf:b,expandable:N,inExpandingPath:V,inCheckedPath:M,ns:s,handleHoverExpand:q,handleExpand:L,handleClick:j,handleCheck:R,handleSelectCheck:A}}}),ua=["id","aria-haspopup","aria-owns","aria-expanded","tabindex"],ca=re("span",null,null,-1);function da(e,a,n,s,o,p){const u=W("el-checkbox"),v=W("el-radio"),c=W("check"),b=W("el-icon"),N=W("node-content"),V=W("loading"),M=W("arrow-right");return h(),z("li",{id:`${e.menuId}-${e.node.uid}`,role:"menuitem","aria-haspopup":!e.isLeaf,"aria-owns":e.isLeaf?null:e.menuId,"aria-expanded":e.inExpandingPath,tabindex:e.expandable?-1:void 0,class:T([e.ns.b(),e.ns.is("selectable",e.checkStrictly),e.ns.is("active",e.node.checked),e.ns.is("disabled",!e.expandable),e.inExpandingPath&&"in-active-path",e.inCheckedPath&&"in-checked-path"]),onMouseenter:a[2]||(a[2]=(...F)=>e.handleHoverExpand&&e.handleHoverExpand(...F)),onFocus:a[3]||(a[3]=(...F)=>e.handleHoverExpand&&e.handleHoverExpand(...F)),onClick:a[4]||(a[4]=(...F)=>e.handleClick&&e.handleClick(...F))},[Z(" prefix "),e.multiple?(h(),B(u,{key:0,"model-value":e.node.checked,indeterminate:e.node.indeterminate,disabled:e.isDisabled,onClick:a[0]||(a[0]=he(()=>{},["stop"])),"onUpdate:modelValue":e.handleSelectCheck},null,8,["model-value","indeterminate","disabled","onUpdate:modelValue"])):e.checkStrictly?(h(),B(v,{key:1,"model-value":e.checkedNodeId,label:e.node.uid,disabled:e.isDisabled,"onUpdate:modelValue":e.handleSelectCheck,onClick:a[1]||(a[1]=he(()=>{},["stop"]))},{default:_(()=>[Z(`
  2. Add an empty element to avoid render label,
  3. do not use empty fragment here for https://github.com/vuejs/vue-next/pull/2485
  4. `),ca]),_:1},8,["model-value","label","disabled","onUpdate:modelValue"])):e.isLeaf&&e.node.checked?(h(),B(b,{key:2,class:T(e.ns.e("prefix"))},{default:_(()=>[X(c)]),_:1},8,["class"])):Z("v-if",!0),Z(" content "),X(N),Z(" postfix "),e.isLeaf?Z("v-if",!0):(h(),z(ue,{key:3},[e.node.loading?(h(),B(b,{key:0,class:T([e.ns.is("loading"),e.ns.e("postfix")])},{default:_(()=>[X(V)]),_:1},8,["class"])):(h(),B(b,{key:1,class:T(["arrow-right",e.ns.e("postfix")])},{default:_(()=>[X(M)]),_:1},8,["class"]))],64))],42,ua)}var pa=$e(ra,[["render",da],["__file","node.vue"]]);const fa=pe({name:"ElCascaderMenu",components:{Loading:Qe,ElIcon:ge,ElScrollbar:lt,ElCascaderNode:pa},props:{nodes:{type:Array,required:!0},index:{type:Number,required:!0}},setup(e){const a=St(),n=ce("cascader-menu"),{t:s}=tt(),o=Wt();let p=null,u=null;const v=et(Fe),c=S(null),b=g(()=>!e.nodes.length),N=g(()=>!v.initialLoaded),V=g(()=>`${o.value}-${e.index}`),M=$=>{p=$.target},F=$=>{if(!(!v.isHoverMenu||!p||!c.value))if(p.contains($.target)){H();const q=a.vnode.el,{left:L}=q.getBoundingClientRect(),{offsetWidth:j,offsetHeight:A}=q,R=$.clientX-L,y=p.offsetTop,P=y+p.offsetHeight;c.value.innerHTML=`
  5. <path style="pointer-events: auto;" fill="transparent" d="M${R} ${y} L${j} 0 V${y} Z" />
  6. <path style="pointer-events: auto;" fill="transparent" d="M${R} ${P} L${j} ${A} V${P} Z" />
  7. `}else u||(u=window.setTimeout(G,v.config.hoverThreshold))},H=()=>{u&&(clearTimeout(u),u=null)},G=()=>{c.value&&(c.value.innerHTML="",H())};return{ns:n,panel:v,hoverZone:c,isEmpty:b,isLoading:N,menuId:V,t:s,handleExpand:M,handleMouseMove:F,clearHoverZone:G}}});function ha(e,a,n,s,o,p){const u=W("el-cascader-node"),v=W("loading"),c=W("el-icon"),b=W("el-scrollbar");return h(),B(b,{key:e.menuId,tag:"ul",role:"menu",class:T(e.ns.b()),"wrap-class":e.ns.e("wrap"),"view-class":[e.ns.e("list"),e.ns.is("empty",e.isEmpty)],onMousemove:e.handleMouseMove,onMouseleave:e.clearHoverZone},{default:_(()=>{var N;return[(h(!0),z(ue,null,ve(e.nodes,V=>(h(),B(u,{key:V.uid,node:V,"menu-id":e.menuId,onExpand:e.handleExpand},null,8,["node","menu-id","onExpand"]))),128)),e.isLoading?(h(),z("div",{key:0,class:T(e.ns.e("empty-text"))},[X(c,{size:"14",class:T(e.ns.is("loading"))},{default:_(()=>[X(v)]),_:1},8,["class"]),$t(" "+ne(e.t("el.cascader.loading")),1)],2)):e.isEmpty?(h(),z("div",{key:1,class:T(e.ns.e("empty-text"))},ne(e.t("el.cascader.noData")),3)):(N=e.panel)!=null&&N.isHoverMenu?(h(),z("svg",{key:2,ref:"hoverZone",class:T(e.ns.e("hover-zone"))},null,2)):Z("v-if",!0)]}),_:1},8,["class","wrap-class","view-class","onMousemove","onMouseleave"])}var va=$e(fa,[["render",ha],["__file","menu.vue"]]);let ma=0;const ga=e=>{const a=[e];let{parent:n}=e;for(;n;)a.unshift(n),n=n.parent;return a};class de{constructor(a,n,s,o=!1){this.data=a,this.config=n,this.parent=s,this.root=o,this.uid=ma++,this.checked=!1,this.indeterminate=!1,this.loading=!1;const{value:p,label:u,children:v}=n,c=a[v],b=ga(this);this.level=o?0:s?s.level+1:1,this.value=a[p],this.label=a[u],this.pathNodes=b,this.pathValues=b.map(N=>N.value),this.pathLabels=b.map(N=>N.label),this.childrenData=c,this.children=(c||[]).map(N=>new de(N,n,this)),this.loaded=!n.lazy||this.isLeaf||!_e(c)}get isDisabled(){const{data:a,parent:n,config:s}=this,{disabled:o,checkStrictly:p}=s;return(Ke(o)?o(a,this):!!a[o])||!p&&(n==null?void 0:n.isDisabled)}get isLeaf(){const{data:a,config:n,childrenData:s,loaded:o}=this,{lazy:p,leaf:u}=n,v=Ke(u)?u(a,this):a[u];return Tt(v)?p&&!o?!1:!(Array.isArray(s)&&s.length):!!v}get valueByOption(){return this.config.emitPath?this.pathValues:this.value}appendChild(a){const{childrenData:n,children:s}=this,o=new de(a,this.config,this);return Array.isArray(n)?n.push(a):this.childrenData=[a],s.push(o),o}calcText(a,n){const s=a?this.pathLabels.join(n):this.label;return this.text=s,s}broadcast(a,...n){const s=`onParent${Ue(a)}`;this.children.forEach(o=>{o&&(o.broadcast(a,...n),o[s]&&o[s](...n))})}emit(a,...n){const{parent:s}=this,o=`onChild${Ue(a)}`;s&&(s[o]&&s[o](...n),s.emit(a,...n))}onParentCheck(a){this.isDisabled||this.setCheckState(a)}onChildCheck(){const{children:a}=this,n=a.filter(o=>!o.isDisabled),s=n.length?n.every(o=>o.checked):!1;this.setCheckState(s)}setCheckState(a){const n=this.children.length,s=this.children.reduce((o,p)=>{const u=p.checked?1:p.indeterminate?.5:0;return o+u},0);this.checked=this.loaded&&this.children.filter(o=>!o.isDisabled).every(o=>o.loaded&&o.checked)&&a,this.indeterminate=this.loaded&&s!==n&&s>0}doCheck(a){if(this.checked===a)return;const{checkStrictly:n,multiple:s}=this.config;n||!s?this.checked=a:(this.broadcast("check",a),this.setCheckState(a),this.emit("check"))}}const ze=(e,a)=>e.reduce((n,s)=>(s.isLeaf?n.push(s):(!a&&n.push(s),n=n.concat(ze(s.children,a))),n),[]);class Ge{constructor(a,n){this.config=n;const s=(a||[]).map(o=>new de(o,this.config));this.nodes=s,this.allNodes=ze(s,!1),this.leafNodes=ze(s,!0)}getNodes(){return this.nodes}getFlattedNodes(a){return a?this.leafNodes:this.allNodes}appendNode(a,n){const s=n?n.appendChild(a):new de(a,this.config);n||this.nodes.push(s),this.allNodes.push(s),s.isLeaf&&this.leafNodes.push(s)}appendNodes(a,n){a.forEach(s=>this.appendNode(s,n))}getNodeByValue(a,n=!1){return!a&&a!==0?null:this.getFlattedNodes(n).find(o=>be(o.value,a)||be(o.pathValues,a))||null}getSameNode(a){return a&&this.getFlattedNodes(!1).find(({value:s,level:o})=>be(a.value,s)&&a.level===o)||null}}const rt=at({modelValue:{type:me([Number,String,Array])},options:{type:me(Array),default:()=>[]},props:{type:me(Object),default:()=>({})}}),ba={expandTrigger:"click",multiple:!1,checkStrictly:!1,emitPath:!0,lazy:!1,lazyLoad:Pt,value:"value",label:"label",children:"children",leaf:"leaf",disabled:"disabled",hoverThreshold:500},ya=e=>g(()=>({...ba,...e.props})),Je=e=>{if(!e)return 0;const a=e.id.split("-");return Number(a[a.length-2])},ka=e=>{if(!e)return;const a=e.querySelector("input");a?a.click():Zt(e)&&e.click()},Ca=(e,a)=>{const n=a.slice(0),s=n.map(p=>p.uid),o=e.reduce((p,u)=>{const v=s.indexOf(u.uid);return v>-1&&(p.push(u),n.splice(v,1),s.splice(v,1)),p},[]);return o.push(...n),o},Na=pe({name:"ElCascaderPanel",components:{ElCascaderMenu:va},props:{...rt,border:{type:Boolean,default:!0},renderLabel:Function},emits:[Ee,we,"close","expand-change"],setup(e,{emit:a,slots:n}){let s=!1;const o=ce("cascader"),p=ya(e);let u=null;const v=S(!0),c=S([]),b=S(null),N=S([]),V=S(null),M=S([]),F=g(()=>p.value.expandTrigger==="hover"),H=g(()=>e.renderLabel||n.default),G=()=>{const{options:r}=e,f=p.value;s=!1,u=new Ge(r,f),N.value=[u.getNodes()],f.lazy&&_e(e.options)?(v.value=!1,$(void 0,m=>{m&&(u=new Ge(m,f),N.value=[u.getNodes()]),v.value=!0,x(!1,!0)})):x(!1,!0)},$=(r,f)=>{const m=p.value;r=r||new de({},m,void 0,!0),r.loading=!0;const E=k=>{const w=r,D=w.root?null:w;k&&(u==null||u.appendNodes(k,D)),w.loading=!1,w.loaded=!0,w.childrenData=w.childrenData||[],f&&f(k)};m.lazyLoad(r,E)},q=(r,f)=>{var m;const{level:E}=r,k=N.value.slice(0,E);let w;r.isLeaf?w=r.pathNodes[E-2]:(w=r,k.push(r.children)),((m=V.value)==null?void 0:m.uid)!==(w==null?void 0:w.uid)&&(V.value=r,N.value=k,!f&&a("expand-change",(r==null?void 0:r.pathValues)||[]))},L=(r,f,m=!0)=>{const{checkStrictly:E,multiple:k}=p.value,w=M.value[0];s=!0,!k&&(w==null||w.doCheck(!1)),r.doCheck(f),P(),m&&!k&&!E&&a("close"),!m&&!k&&!E&&j(r)},j=r=>{r&&(r=r.parent,j(r),r&&q(r))},A=r=>u==null?void 0:u.getFlattedNodes(r),R=r=>{var f;return(f=A(r))==null?void 0:f.filter(m=>m.checked!==!1)},y=()=>{M.value.forEach(r=>r.doCheck(!1)),P(),N.value=N.value.slice(0,1),V.value=null,a("expand-change",[])},P=()=>{var r;const{checkStrictly:f,multiple:m}=p.value,E=M.value,k=R(!f),w=Ca(E,k),D=w.map(I=>I.valueByOption);M.value=w,b.value=m?D:(r=D[0])!=null?r:null},x=(r=!1,f=!1)=>{const{modelValue:m}=e,{lazy:E,multiple:k,checkStrictly:w}=p.value,D=!w;if(!(!v.value||s||!f&&be(m,b.value)))if(E&&!r){const ae=je(oa(Ze(m))).map(O=>u==null?void 0:u.getNodeByValue(O)).filter(O=>!!O&&!O.loaded&&!O.loading);ae.length?ae.forEach(O=>{$(O,()=>x(!1,f))}):x(!0,f)}else{const I=k?Ze(m):[m],ae=je(I.map(O=>u==null?void 0:u.getNodeByValue(O,D)));te(ae,f),b.value=it(m)}},te=(r,f=!0)=>{const{checkStrictly:m}=p.value,E=M.value,k=r.filter(I=>!!I&&(m||I.isLeaf)),w=u==null?void 0:u.getSameNode(V.value),D=f&&w||k[0];D?D.pathNodes.forEach(I=>q(I,!0)):V.value=null,E.forEach(I=>I.doCheck(!1)),e.props.multiple?qe(k).forEach(I=>I.doCheck(!0)):k.forEach(I=>I.doCheck(!0)),M.value=k,se(le)},le=()=>{nt&&c.value.forEach(r=>{const f=r==null?void 0:r.$el;if(f){const m=f.querySelector(`.${o.namespace.value}-scrollbar__wrap`),E=f.querySelector(`.${o.b("node")}.${o.is("active")}`)||f.querySelector(`.${o.b("node")}.in-active-path`);Xt(m,E)}})},oe=r=>{const f=r.target,{code:m}=r;switch(m){case K.up:case K.down:{r.preventDefault();const E=m===K.up?-1:1;ke(ot(f,E,`.${o.b("node")}[tabindex="-1"]`));break}case K.left:{r.preventDefault();const E=c.value[Je(f)-1],k=E==null?void 0:E.$el.querySelector(`.${o.b("node")}[aria-expanded="true"]`);ke(k);break}case K.right:{r.preventDefault();const E=c.value[Je(f)+1],k=E==null?void 0:E.$el.querySelector(`.${o.b("node")}[tabindex="-1"]`);ke(k);break}case K.enter:ka(f);break}};return Vt(Fe,qe({config:p,expandingNode:V,checkedNodes:M,isHoverMenu:F,initialLoaded:v,renderLabelFn:H,lazyLoad:$,expandNode:q,handleCheckChange:L})),ee([p,()=>e.options],G,{deep:!0,immediate:!0}),ee(()=>e.modelValue,()=>{s=!1,x()},{deep:!0}),ee(()=>b.value,r=>{be(r,e.modelValue)||(a(Ee,r),a(we,r))}),Lt(()=>c.value=[]),st(()=>!_e(e.modelValue)&&x()),{ns:o,menuList:c,menus:N,checkedNodes:M,handleKeyDown:oe,handleCheckChange:L,getFlattedNodes:A,getCheckedNodes:R,clearCheckedNodes:y,calculateCheckedValue:P,scrollToExpandingNode:le}}});function Ea(e,a,n,s,o,p){const u=W("el-cascader-menu");return h(),z("div",{class:T([e.ns.b("panel"),e.ns.is("bordered",e.border)]),onKeydown:a[0]||(a[0]=(...v)=>e.handleKeyDown&&e.handleKeyDown(...v))},[(h(!0),z(ue,null,ve(e.menus,(v,c)=>(h(),B(u,{key:c,ref_for:!0,ref:b=>e.menuList[c]=b,index:c,nodes:[...v]},null,8,["index","nodes"]))),128))],34)}var Ce=$e(Na,[["render",Ea],["__file","index.vue"]]);Ce.install=e=>{e.component(Ce.name,Ce)};const wa=Ce,$a=at({...rt,size:Dt,placeholder:String,disabled:Boolean,clearable:Boolean,filterable:Boolean,filterMethod:{type:me(Function),default:(e,a)=>e.text.includes(a)},separator:{type:String,default:" / "},showAllLevels:{type:Boolean,default:!0},collapseTags:Boolean,maxCollapseTags:{type:Number,default:1},collapseTagsTooltip:{type:Boolean,default:!1},debounce:{type:Number,default:300},beforeFilter:{type:me(Function),default:()=>!0},popperClass:{type:String,default:""},teleported:Qt.teleported,tagType:{...jt.type,default:"info"},validateEvent:{type:Boolean,default:!0}}),Sa={[Ee]:e=>!!e||e===null,[we]:e=>!!e||e===null,focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,visibleChange:e=>It(e),expandChange:e=>!!e,removeTag:e=>!!e},Ta={key:0},Pa=["placeholder","onKeydown"],Va=["onClick"],La="ElCascader",Da=pe({name:La}),Ia=pe({...Da,props:$a,emits:Sa,setup(e,{expose:a,emit:n}){const s=e,o={modifiers:[{name:"arrowPosition",enabled:!0,phase:"main",fn:({state:t})=>{const{modifiersData:l,placement:i}=t;["right","left","bottom","top"].includes(i)||(l.arrow.x=35)},requires:["arrow"]}]},p=Mt();let u=0,v=0;const c=ce("cascader"),b=ce("input"),{t:N}=tt(),{form:V,formItem:M}=ea(),F=S(null),H=S(null),G=S(null),$=S(null),q=S(null),L=S(!1),j=S(!1),A=S(!1),R=S(!1),y=S(""),P=S(""),x=S([]),te=S([]),le=S([]),oe=S(!1),r=g(()=>p.style),f=g(()=>s.disabled||(V==null?void 0:V.disabled)),m=g(()=>s.placeholder||N("el.cascader.placeholder")),E=g(()=>P.value||x.value.length>0||oe.value?"":m.value),k=ta(),w=g(()=>["small"].includes(k.value)?"small":"default"),D=g(()=>!!s.props.multiple),I=g(()=>!s.filterable||D.value),ae=g(()=>D.value?P.value:y.value),O=g(()=>{var t;return((t=$.value)==null?void 0:t.checkedNodes)||[]}),ut=g(()=>!s.clearable||f.value||A.value||!j.value?!1:!!O.value.length),Se=g(()=>{const{showAllLevels:t,separator:l}=s,i=O.value;return i.length?D.value?"":i[0].calcText(t,l):""}),Te=g({get(){return it(s.modelValue)},set(t){n(Ee,t),n(we,t),s.validateEvent&&(M==null||M.validate("change").catch(l=>aa()))}}),ct=g(()=>[c.b(),c.m(k.value),c.is("disabled",f.value),p.class]),dt=g(()=>[b.e("icon"),"icon-arrow-down",c.is("reverse",L.value)]),pt=g(()=>c.is("focus",L.value||R.value)),xe=g(()=>{var t,l;return(l=(t=F.value)==null?void 0:t.popperRef)==null?void 0:l.contentRef}),U=t=>{var l,i,C;f.value||(t=t??!L.value,t!==L.value&&(L.value=t,(i=(l=H.value)==null?void 0:l.input)==null||i.setAttribute("aria-expanded",`${t}`),t?(fe(),se((C=$.value)==null?void 0:C.scrollToExpandingNode)):s.filterable&&Ie(),n("visibleChange",t)))},fe=()=>{se(()=>{var t;(t=F.value)==null||t.updatePopper()})},Pe=()=>{A.value=!1},Ve=t=>{const{showAllLevels:l,separator:i}=s;return{node:t,key:t.uid,text:t.calcText(l,i),hitState:!1,closable:!f.value&&!t.isDisabled,isCollapseTag:!1}},Le=t=>{var l;const i=t.node;i.doCheck(!1),(l=$.value)==null||l.calculateCheckedValue(),n("removeTag",i.valueByOption)},ft=()=>{if(!D.value)return;const t=O.value,l=[],i=[];if(t.forEach(C=>i.push(Ve(C))),te.value=i,t.length){t.slice(0,s.maxCollapseTags).forEach(J=>l.push(Ve(J)));const C=t.slice(s.maxCollapseTags),Y=C.length;Y&&(s.collapseTags?l.push({key:-1,text:`+ ${Y}`,closable:!1,isCollapseTag:!0}):C.forEach(J=>l.push(Ve(J))))}x.value=l},Be=()=>{var t,l;const{filterMethod:i,showAllLevels:C,separator:Y}=s,J=(l=(t=$.value)==null?void 0:t.getFlattedNodes(!s.props.checkStrictly))==null?void 0:l.filter(Q=>Q.isDisabled?!1:(Q.calcText(C,Y),i(Q,ae.value)));D.value&&(x.value.forEach(Q=>{Q.hitState=!1}),te.value.forEach(Q=>{Q.hitState=!1})),A.value=!0,le.value=J,fe()},ht=()=>{var t;let l;A.value&&q.value?l=q.value.$el.querySelector(`.${c.e("suggestion-item")}`):l=(t=$.value)==null?void 0:t.$el.querySelector(`.${c.b("node")}[tabindex="-1"]`),l&&(l.focus(),!A.value&&l.click())},De=()=>{var t,l;const i=(t=H.value)==null?void 0:t.input,C=G.value,Y=(l=q.value)==null?void 0:l.$el;if(!(!nt||!i)){if(Y){const J=Y.querySelector(`.${c.e("suggestion-list")}`);J.style.minWidth=`${i.offsetWidth}px`}if(C){const{offsetHeight:J}=C,Q=x.value.length>0?`${Math.max(J+6,u)}px`:`${u}px`;i.style.height=Q,fe()}}},vt=t=>{var l;return(l=$.value)==null?void 0:l.getCheckedNodes(t)},mt=t=>{fe(),n("expandChange",t)},ie=t=>{var l;const i=(l=t.target)==null?void 0:l.value;if(t.type==="compositionend")oe.value=!1,se(()=>Me(i));else{const C=i[i.length-1]||"";oe.value=!Yt(C)}},gt=t=>{if(!oe.value)switch(t.code){case K.enter:U();break;case K.down:U(!0),se(ht),t.preventDefault();break;case K.esc:L.value===!0&&(t.preventDefault(),t.stopPropagation(),U(!1));break;case K.tab:U(!1);break}},bt=()=>{var t;(t=$.value)==null||t.clearCheckedNodes(),!L.value&&s.filterable&&Ie(),U(!1)},Ie=()=>{const{value:t}=Se;y.value=t,P.value=t},yt=t=>{var l,i;const{checked:C}=t;D.value?(l=$.value)==null||l.handleCheckChange(t,!C,!1):(!C&&((i=$.value)==null||i.handleCheckChange(t,!0,!1)),U(!1))},kt=t=>{const l=t.target,{code:i}=t;switch(i){case K.up:case K.down:{const C=i===K.up?-1:1;ke(ot(l,C,`.${c.e("suggestion-item")}[tabindex="-1"]`));break}case K.enter:l.click();break}},Ct=()=>{const t=x.value,l=t[t.length-1];v=P.value?0:v+1,!(!l||!v||s.collapseTags&&t.length>1)&&(l.hitState?Le(l):l.hitState=!0)},He=t=>{const l=t.target,i=c.e("search-input");l.className===i&&(R.value=!0),n("focus",t)},Ae=t=>{R.value=!1,n("blur",t)},Nt=na(()=>{const{value:t}=ae;if(!t)return;const l=s.beforeFilter(t);_t(l)?l.then(Be).catch(()=>{}):l!==!1?Be():Pe()},s.debounce),Me=(t,l)=>{!L.value&&U(!0),!(l!=null&&l.isComposing)&&(t?Nt():Pe())},Oe=t=>Number.parseFloat(qt(b.cssVarName("input-height"),t).value)-2;return ee(A,fe),ee([O,f],ft),ee(x,()=>{se(()=>De())}),ee(k,async()=>{await se();const t=H.value.input;u=Oe(t)||u,De()}),ee(Se,Ie,{immediate:!0}),st(()=>{const t=H.value.input,l=Oe(t);u=t.offsetHeight||l,Kt(t,De)}),a({getCheckedNodes:vt,cascaderPanelRef:$,togglePopperVisible:U,contentRef:xe}),(t,l)=>(h(),B(d(Xe),{ref_key:"tooltipRef",ref:F,visible:L.value,teleported:t.teleported,"popper-class":[d(c).e("dropdown"),t.popperClass],"popper-options":o,"fallback-placements":["bottom-start","bottom","top-start","top","right","left"],"stop-popper-mouse-event":!1,"gpu-acceleration":!1,placement:"bottom-start",transition:`${d(c).namespace.value}-zoom-in-top`,effect:"light",pure:"",persistent:"",onHide:Pe},{default:_(()=>[ye((h(),z("div",{class:T(d(ct)),style:zt(d(r)),onClick:l[5]||(l[5]=()=>U(d(I)?void 0:!0)),onKeydown:gt,onMouseenter:l[6]||(l[6]=i=>j.value=!0),onMouseleave:l[7]||(l[7]=i=>j.value=!1)},[X(d(Jt),{ref_key:"input",ref:H,modelValue:y.value,"onUpdate:modelValue":l[1]||(l[1]=i=>y.value=i),placeholder:d(E),readonly:d(I),disabled:d(f),"validate-event":!1,size:d(k),class:T(d(pt)),tabindex:d(D)&&t.filterable&&!d(f)?-1:void 0,onCompositionstart:ie,onCompositionupdate:ie,onCompositionend:ie,onFocus:He,onBlur:Ae,onInput:Me},{suffix:_(()=>[d(ut)?(h(),B(d(ge),{key:"clear",class:T([d(b).e("icon"),"icon-circle-close"]),onClick:he(bt,["stop"])},{default:_(()=>[X(d(Ft))]),_:1},8,["class","onClick"])):(h(),B(d(ge),{key:"arrow-down",class:T(d(dt)),onClick:l[0]||(l[0]=he(i=>U(),["stop"]))},{default:_(()=>[X(d(xt))]),_:1},8,["class"]))]),_:1},8,["modelValue","placeholder","readonly","disabled","size","class","tabindex"]),d(D)?(h(),z("div",{key:0,ref_key:"tagWrapper",ref:G,class:T(d(c).e("tags"))},[(h(!0),z(ue,null,ve(x.value,i=>(h(),B(d(We),{key:i.key,type:t.tagType,size:d(w),hit:i.hitState,closable:i.closable,"disable-transitions":"",onClose:C=>Le(i)},{default:_(()=>[i.isCollapseTag===!1?(h(),z("span",Ta,ne(i.text),1)):(h(),B(d(Xe),{key:1,disabled:L.value||!t.collapseTagsTooltip,"fallback-placements":["bottom","top","right","left"],placement:"bottom",effect:"light"},{default:_(()=>[re("span",null,ne(i.text),1)]),content:_(()=>[re("div",{class:T(d(c).e("collapse-tags"))},[(h(!0),z(ue,null,ve(te.value.slice(t.maxCollapseTags),(C,Y)=>(h(),z("div",{key:Y,class:T(d(c).e("collapse-tag"))},[(h(),B(d(We),{key:C.key,class:"in-tooltip",type:t.tagType,size:d(w),hit:C.hitState,closable:C.closable,"disable-transitions":"",onClose:J=>Le(C)},{default:_(()=>[re("span",null,ne(C.text),1)]),_:2},1032,["type","size","hit","closable","onClose"]))],2))),128))],2)]),_:2},1032,["disabled"]))]),_:2},1032,["type","size","hit","closable","onClose"]))),128)),t.filterable&&!d(f)?ye((h(),z("input",{key:0,"onUpdate:modelValue":l[2]||(l[2]=i=>P.value=i),type:"text",class:T(d(c).e("search-input")),placeholder:d(Se)?"":d(m),onInput:l[3]||(l[3]=i=>Me(P.value,i)),onClick:l[4]||(l[4]=he(i=>U(!0),["stop"])),onKeydown:Bt(Ct,["delete"]),onCompositionstart:ie,onCompositionupdate:ie,onCompositionend:ie,onFocus:He,onBlur:Ae},null,42,Pa)),[[Ht,P.value]]):Z("v-if",!0)],2)):Z("v-if",!0)],38)),[[d(sa),()=>U(!1),d(xe)]])]),content:_(()=>[ye(X(d(wa),{ref_key:"cascaderPanelRef",ref:$,modelValue:d(Te),"onUpdate:modelValue":l[8]||(l[8]=i=>At(Te)?Te.value=i:null),options:t.options,props:s.props,border:!1,"render-label":t.$slots.default,onExpandChange:mt,onClose:l[9]||(l[9]=i=>t.$nextTick(()=>U(!1)))},null,8,["modelValue","options","props","render-label"]),[[Re,!A.value]]),t.filterable?ye((h(),B(d(lt),{key:0,ref_key:"suggestionPanel",ref:q,tag:"ul",class:T(d(c).e("suggestion-panel")),"view-class":d(c).e("suggestion-list"),onKeydown:kt},{default:_(()=>[le.value.length?(h(!0),z(ue,{key:0},ve(le.value,i=>(h(),z("li",{key:i.uid,class:T([d(c).e("suggestion-item"),d(c).is("checked",i.checked)]),tabindex:-1,onClick:C=>yt(i)},[re("span",null,ne(i.text),1),i.checked?(h(),B(d(ge),{key:0},{default:_(()=>[X(d(Ye))]),_:1})):Z("v-if",!0)],10,Va))),128)):Ot(t.$slots,"empty",{key:1},()=>[re("li",{class:T(d(c).e("empty-text"))},ne(d(N)("el.cascader.noMatch")),3)])]),_:3},8,["class","view-class"])),[[Re,A.value]]):Z("v-if",!0)]),_:3},8,["visible","teleported","popper-class","transition"]))}});var Ne=$e(Ia,[["__file","cascader.vue"]]);Ne.install=e=>{e.component(Ne.name,Ne)};const Ma=Ne,ss=Ma;export{ss as E};