UNPKG

ant-design-x-vue-next

Version:

Ant Design X for Vue — community continuation aligned with @ant-design/x

2 lines (1 loc) 1.05 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=t=>!!t.children&&t.children.length>0;function d(t,e){if(!e||e.length===0||!t)return;const i=(l,r=0)=>{if(r>=e.length)return;const s=e[r];for(const o of l)if(o.path===s)return r===e.length-1?o:o.children?i(o.children,r+1):void 0};return i(t)}function u(t,e,i,l,r){const s=e[i],o=i===e.length-1;return t.map(n=>{if(n.path!==s)return n;if(o)switch(l){case"update":return{...n,...r};case"delete":return null;case"add":{const c=r,f=n.children?[...n.children,c]:[c];return{...n,children:f}}default:return n}if(n.children){const c=u(n.children,e,i+1,l,r);return{...n,children:c.filter(Boolean)}}return n})}function a(t,e,i=!1){if(!e)return{node:void 0,isValid:!1};const l=Array.isArray(e)?e.filter(Boolean):e.split("/").filter(Boolean);if(l.length===0)return{node:void 0,isValid:!1};const r=d(t,l),s=i?!!r&&(!r.children||r.children.length===0):!!r;return{node:r,isValid:s}}exports.findNodeAndValidate=a;exports.getNodeByPath=d;exports.isFolderNode=h;exports.walkTree=u;