@progress/kendo-vue-treeview
Version:
9 lines (8 loc) • 1.88 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./utils/itemUtils.js"),f=require("./utils/consts.js"),u=require("./utils/misc.js"),m=function(s,t){if(!s||!s.length)return[];let e=s;const l=t.cloneField||"cloned",c=t.expandField||f.EXPAND_FIELD,n=t.selectField||f.SELECT_FIELD,r=t.checkField||f.CHECK_FIELD,i=t.childrenField||f.CHILDREN_FIELD;return e=I(e,c,t.expand,l,i),e=I(e,n,t.select,l,i),e=I(e,r,t.check,l,i),y(e,i,t.check),e};function I(s,t,e,l,c){if(e){let{ids:n,field:r}=g(e,t),i=!u.isArray(e)&&e.idField?o.resolveItemsIds(n,e.idField,s,c):n;return C(s,i,r,l,c)}else return s}function g(s,t){let e,l;return u.isArray(s)?(e=s,l=t):(e=s.ids||[],l=s.operationField||t),{ids:e,field:l}}function C(s,t,e,l,c){let n=s;return t.forEach(r=>{n=o.updateItem(n,r,i=>F(e,i),l,c)}),n}function F(s,t){const e=(s||"").split(".");let l=t;for(let c=0;c<e.length;c++){const n=e[c];if(c===e.length-1)l[n]=!0;else if(l[n]!==void 0)l[n]={...l[n]},l=l[n];else return}}function y(s,t,e){if(e&&!u.isArray(e)&&e.applyCheckIndeterminate){const{field:l}=g(e,f.CHECK_FIELD),c=e.checkIndeterminateField||f.CHECK_INDETERMINATE_FIELD;for(let n=0;n<s.length;n++){const r=s[n],i=r[t];i&&E(i,u.getNestedValue(l,r)?[]:[r],t,l,c)}}}function E(s,t,e,l,c){let n=!1;for(let r=0;r<s.length;r++){const i=s[r];if(u.getNestedValue(l,i)){if(!n)for(let d=0;d<t.length;d++)F(c,t[d]);n=!0,i[e]&&E(i[e],[],e,l,c)}else i[e]&&E(i[e],n?[i]:t.concat([i]),e,l,c)}}exports.processTreeViewItems=m;