UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 3.61 kB
{"version":3,"file":"utils.mjs","sources":["../../../../../../packages/components/tree-select/src/utils.ts"],"sourcesContent":["import { isArray } from '@element-plus/utils'\n\nimport type { TreeNodeData } from '@element-plus/components/tree/src/tree.type'\n\nexport function isValidValue(val: any) {\n return val || val === 0\n}\n\nexport function isValidArray(val: any) {\n return isArray(val) && val.length\n}\n\nexport function toValidArray(val: any) {\n return isArray(val) ? val : isValidValue(val) ? [val] : []\n}\n\ntype TreeCallback<T extends TreeNodeData, R> = (\n data: T,\n index: number,\n array: T[],\n parent?: T\n) => R\n\ntype TreeFindCallback<T extends TreeNodeData> = TreeCallback<T, boolean>\n\nexport function treeFind<T extends TreeNodeData>(\n treeData: T[],\n findCallback: TreeFindCallback<T>,\n getChildren: (data: T) => T[]\n): T | undefined\nexport function treeFind<T extends TreeNodeData, R>(\n treeData: T[],\n findCallback: TreeFindCallback<T>,\n getChildren: (data: T) => T[],\n resultCallback?: TreeCallback<T, R>,\n parent?: T\n): R | undefined\nexport function treeFind<T extends TreeNodeData, R>(\n treeData: T[],\n findCallback: TreeFindCallback<T>,\n getChildren: (data: T) => T[],\n resultCallback?: TreeCallback<T, R>,\n parent?: T\n): T | R | undefined {\n for (let i = 0; i < treeData.length; i++) {\n const data = treeData[i]\n if (findCallback(data, i, treeData, parent)) {\n return resultCallback ? resultCallback(data, i, treeData, parent) : data\n } else {\n const children = getChildren(data)\n if (isValidArray(children)) {\n const find = treeFind(\n children,\n findCallback,\n getChildren,\n resultCallback,\n data\n )\n if (find) return find\n }\n }\n }\n}\n\nexport function treeEach<T extends TreeNodeData>(\n treeData: T[],\n callback: TreeCallback<T, void>,\n getChildren: (data: T) => T[],\n parent?: T\n) {\n for (let i = 0; i < treeData.length; i++) {\n const data = treeData[i]\n callback(data, i, treeData, parent)\n\n const children = getChildren(data)\n if (isValidArray(children)) {\n treeEach(children, callback, getChildren, data)\n }\n }\n}\n"],"names":[],"mappings":";;AAIO,SAAS,aAAa,GAAA,EAAU;AACrC,EAAA,OAAO,OAAO,GAAA,KAAQ,CAAA;AACxB;AAEO,SAAS,aAAa,GAAA,EAAU;AACrC,EAAA,OAAO,OAAA,CAAQ,GAAG,CAAA,IAAK,GAAA,CAAI,MAAA;AAC7B;AAEO,SAAS,aAAa,GAAA,EAAU;AACrC,EAAA,OAAO,OAAA,CAAQ,GAAG,CAAA,GAAI,GAAA,GAAM,YAAA,CAAa,GAAG,CAAA,GAAI,CAAC,GAAG,CAAA,GAAI,EAAC;AAC3D;AAuBO,SAAS,QAAA,CACd,QAAA,EACA,YAAA,EACA,WAAA,EACA,gBACA,MAAA,EACmB;AACnB,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AACxC,IAAA,MAAM,IAAA,GAAO,SAAS,CAAC,CAAA;AACvB,IAAA,IAAI,YAAA,CAAa,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,MAAM,CAAA,EAAG;AAC3C,MAAA,OAAO,iBAAiB,cAAA,CAAe,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,MAAM,CAAA,GAAI,IAAA;AAAA,IACtE,CAAA,MAAO;AACL,MAAA,MAAM,QAAA,GAAW,YAAY,IAAI,CAAA;AACjC,MAAA,IAAI,YAAA,CAAa,QAAQ,CAAA,EAAG;AAC1B,QAAA,MAAM,IAAA,GAAO,QAAA;AAAA,UACX,QAAA;AAAA,UACA,YAAA;AAAA,UACA,WAAA;AAAA,UACA,cAAA;AAAA,UACA;AAAA,SACF;AACA,QAAA,IAAI,MAAM,OAAO,IAAA;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,QAAA,CACd,QAAA,EACA,QAAA,EACA,WAAA,EACA,MAAA,EACA;AACA,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AACxC,IAAA,MAAM,IAAA,GAAO,SAAS,CAAC,CAAA;AACvB,IAAA,QAAA,CAAS,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,MAAM,CAAA;AAElC,IAAA,MAAM,QAAA,GAAW,YAAY,IAAI,CAAA;AACjC,IAAA,IAAI,YAAA,CAAa,QAAQ,CAAA,EAAG;AAC1B,MAAA,QAAA,CAAS,QAAA,EAAU,QAAA,EAAU,WAAA,EAAa,IAAI,CAAA;AAAA,IAChD;AAAA,EACF;AACF;;;;"}