const n={id:"id",children:"children",pid:"pid"},r={children:"children",label:"name",value:"id",isLeaf:"leaf",emitPath:!1},e=r=>Object.assign({},n,r),t=(n,r={})=>{r=e(r);const{children:t}=r,i=[...n];for(let e=0;e{t=e(t);const i=[],a=[...n],o=new Set,{children:s}=t;for(;a.length;){const n=a[0];if(o.has(n))i.pop(),a.shift();else if(o.add(n),n[s]&&a.unshift(...n[s]),i.push(n),r(n))return i}return null},a=(n,r,t={})=>{const i=(t=e(t)).children;return function n(e){return e.map((n=>({...n}))).filter((e=>(e[i]=e[i]&&n(e[i]),r(e)||e[i]&&e[i].length)))}(n)},o=(n,r)=>n.map((n=>s(n,r))),s=(n,{children:r="children",conversion:e})=>{const t=Array.isArray(n[r])&&n[r].length>0,i=e(n)||{};return t?{...i,[r]:n[r].map((n=>s(n,{children:r,conversion:e})))}:{...i}},c=(n,r,e={})=>{n.forEach((n=>{const t=r(n,e)||n;n.children&&c(n.children,r,t)}))},l=(n,r,e,t)=>{if(!Array.isArray(n))return console.warn("data must be an array"),[];const i=r||"id",a=e||"parentId",o=t||"children",s={},c={},l=[];for(const f of n){const n=f[a];null==s[n]&&(s[n]=[]),c[f[i]]=f,s[n].push(f)}for(const f of n){null==c[f[a]]&&l.push(f)}for(const f of l)d(f);function d(n){if(null!==s[n[i]]&&(n[o]=s[n[i]]),n[o])for(const r of n[o])d(r)}return l},d=(n,r,e,t,i)=>{r=r||"id",e=e||"parentId",i=i||Math.min(...n.map((n=>n[e])))||0;const a=JSON.parse(JSON.stringify(n)),o=a.filter((n=>{const t=a.filter((t=>n[r]===t[e]));return t.length>0&&(n.children=t),n[e]===i}));return""!==o?o:n},f=(n,r)=>{if(void 0===n||!Array.isArray(n)||0===n.length)return console.warn("tree must be an array"),"";const e=n.find((n=>n.id===r));if(void 0!==e)return e.name;let t="";function i(n){for(const e of n){if(e.id===r)return t+=` / ${e.name}`,!0;if(void 0!==e.children&&0!==e.children.length&&(t+=` / ${e.name}`,i(e.children)))return!0}return!1}for(const a of n)if(t=`${a.name}`,i(a.children))break;return t};export{d as a,o as b,i as c,r as d,c as e,a as f,t as g,l as h,f as t};