2 lines
8.7 KiB
JavaScript
2 lines
8.7 KiB
JavaScript
|
|
import{N as oe,O as se,Q as fe,R as he,a as $,K as ve,c as k,w as H,U as o,H as ke,b2 as ye,V as be,a4 as R,aG as ge,a5 as j,I as xe,J as _e,bf as V}from"./index-3a2b6cd5.js";import{Q as qe}from"./QSlideTransition-d8814589.js";const Se=["none","strict","leaf","leaf-filtered"],Ce=oe({name:"QTree",props:{...se,nodes:{type:Array,required:!0},nodeKey:{type:String,required:!0},labelKey:{type:String,default:"label"},childrenKey:{type:String,default:"children"},dense:Boolean,color:String,controlColor:String,textColor:String,selectedColor:String,icon:String,tickStrategy:{type:String,default:"none",validator:l=>Se.includes(l)},ticked:Array,expanded:Array,selected:{},noSelectionUnset:Boolean,defaultExpandAll:Boolean,accordion:Boolean,filter:String,filterMethod:Function,duration:Number,noConnectors:Boolean,noTransition:Boolean,noNodesLabel:String,noResultsLabel:String},emits:["update:expanded","update:ticked","update:selected","lazyLoad","afterShow","afterHide"],setup(l,{slots:y,emit:h}){const{proxy:w}=fe(),{$q:q}=w,A=he(l,q),x=$({}),_=$(l.ticked||[]),v=$(l.expanded||[]);let E={};ve(()=>{E={}});const G=k(()=>`q-tree q-tree--${l.dense===!0?"dense":"standard"}`+(l.noConnectors===!0?" q-tree--no-connectors":"")+(A.value===!0?" q-tree--dark":"")+(l.color!==void 0?` text-${l.color}`:"")),L=k(()=>l.selected!==void 0),J=k(()=>l.icon||q.iconSet.tree.icon),P=k(()=>l.controlColor||l.color),S=k(()=>l.textColor!==void 0?` text-${l.textColor}`:""),W=k(()=>{const t=l.selectedColor||l.color;return t?` text-${t}`:""}),X=k(()=>l.filterMethod!==void 0?l.filterMethod:(t,i)=>{const e=i.toLowerCase();return t[l.labelKey]&&t[l.labelKey].toLowerCase().indexOf(e)>-1}),f=k(()=>{const t={},i=(e,n)=>{const r=e.tickStrategy||(n?n.tickStrategy:l.tickStrategy),c=e[l.nodeKey],d=e[l.childrenKey]&&e[l.childrenKey].length>0,b=e.disabled!==!0&&L.value===!0&&e.selectable!==!1,s=e.disabled!==!0&&e.expandable!==!1,de=r!=="none",C=r==="strict",U=r==="leaf-filtered",F=r==="leaf"||r==="leaf-filtered";let N=e.disabled!==!0&&e.tickable!==!1;F===!0&&N===!0&&n&&n.tickable!==!0&&(N=!1);let g=e.lazy;g===!0&&x.value[c]!==void 0&&Array.isArray(e[l.childrenKey])===!0&&(g=x.value[c]);const a={key:c,parent:n,isParent:d,lazy:g,disabled:e.disabled,link:e.disabled!==!0&&(b===!0||s===!0&&(d===!0||g===!0)),children:[],matchesFilter:l.filter?X.value(e,l.filter):!0,selected:c===l.selected&&b===!0,selectable:b,expanded:d===!0?v.value.includes(c):!1,expandable:s,noTick:e.noTick===!0||C!==!0&&g&&g!=="loaded",tickable:N,tickStrategy:r,hasTicking:de,strictTicking:C,leafFilteredTicking:U,leafTicking:F,ticked:C===!0?_.value.includes(c):d===!0?!1:_.value.includes(c)};if(t[c]=a,d===!0&&(a.children=e[l.childrenKey].map(u=>i(u,a)),l.filter&&(a.matchesFilter!==!0?a.matchesFilter=a.children.some(u=>u.matchesFilter):a.noTick!==!0&&a.disabled!==!0&&a.tickable===!0&&U===!0&&a.children.every(u=>u.matchesFilter!==!0||u.noTick===!0||u.tickable!==!0)===!0&&(a.tickable=!1)),a.matchesFilter===!0&&(a.noTick!==!0&&C!==!0&&a.children.every(u=>u.noTick)===!0&&(a.noTick=!0),F))){if(a.ticked=!1,a.indeterminate=a.children.some(u=>u.indeterminate===!0),a.tickable=a.tickable===!0&&a.children.some(u=>u.tickable),a.indeterminate!==!0){const u=a.children.reduce((D,ue)=>ue.ticked===!0?D+1:D,0);u===a.children.length?a.ticked=!0:u>0&&(a.indeterminate=!0)}a.indeterminate===!0&&(a.indeterminateNextState=a.children.every(u=>u.tickable!==!0||u.ticked!==!0))}return a};return l.nodes.forEach(e=>i(e,null)),t});H(()=>l.ticked,t=>{_.value=t}),H(()=>l.expanded,t=>{v.value=t});function K(t){const i=[].reduce,e=(n,r)=>{if(n||!r)return n;if(Array.isArray(r)===!0)return i.call(Object(r),e,n);if(r[l.nodeKey]===t)return r;if(r[l.childrenKey])return e(null,r[l.childrenKey])};return e(null,l.nodes)}function Y(){return _.value.map(t=>K(t))}function Z(){return v.value.map(t=>K(t))}function p(t){return t&&f.value[t]?f.value[t].expanded:!1}function ee(){l.expanded!==void 0?h("update:expanded",[]):v.value=[]}function Q(){const t=v.value,i=e=>{e[l.childrenKey]&&e[l.childrenKey].length>0&&e.expandable!==!1&&e.disabled!==!0&&(t.push(e[l.nodeKey]),e[l
|