tree-CWCwWKDc.js 1.7 KB

1
  1. const m={id:"id",children:"children",pid:"pid"},y={children:"children",label:"name",value:"id",isLeaf:"leaf",emitPath:!1},f=t=>Object.assign({},m,t),b=(t,e={})=>{const s=f(e),r=new Map,n=[],{id:l,children:i,pid:c}=s;for(const a of t)a[i]=a[i]||[],r.set(a[l],a);for(const a of t){const d=r.get(a[c]);(d?d.children:n).push(a)}return n},A=(t,e={})=>{e=f(e);const{children:s}=e,r=[...t];for(let n=0;n<r.length;n++)r[n][s]&&r.splice(n+1,0,...r[n][s]);return r},v=(t,e,s={})=>{s=f(s);const r=[],n=[...t],l=new Set,{children:i}=s;for(;n.length;){const c=n[0];if(l.has(c))r.pop(),n.shift();else if(l.add(c),c[i]&&n.unshift(...c[i]),r.push(c),e(c))return r}return null},w=(t,e,s={})=>{const r=(s=f(s)).children;return function n(l){return l.map(i=>({...i})).filter(i=>(i[r]=i[r]&&n(i[r]),e(i)||i[r]&&i[r].length))}(t)},O=(t,e)=>t.map(s=>p(s,e)),p=(t,{children:e="children",conversion:s})=>{const r=Array.isArray(t[e])&&t[e].length>0,n=s(t)||{};return r?{...n,[e]:t[e].map(l=>p(l,{children:e,conversion:s}))}:{...n}},g=(t,e,s={})=>{t.forEach(r=>{const n=e(r,s)||r;r.children&&g(r.children,e,n)})},S=(t,e,s,r)=>{if(!Array.isArray(t))return console.warn("data must be an array"),[];const n=e||"id",l=s||"parentId",i="children",c={},a={},d=[];for(const o of t){const h=o[l];c[h]==null&&(c[h]=[]),a[o[n]]=o,c[h].push(o)}for(const o of t)a[o[l]]==null&&d.push(o);for(const o of d)u(o);function u(o){if(c[o[n]]!==null&&(o[i]=c[o[n]]),o[i])for(const h of o[i])u(h)}return d},I=(t,e,s,r,n)=>{e=e||"id",s=s||"parentId",n=n||Math.min(...t.map(c=>c[s]))||0;const l=JSON.parse(JSON.stringify(t)),i=l.filter(c=>{const a=l.filter(d=>c[e]===d[s]);return a.length>0&&(c.children=a),c[s]===n});return i!==""?i:t};export{I as a,v as b,A as c,y as d,g as e,w as f,S as h,b as l,O as t};