utils.mjs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import { isArray } from "../../../utils/types.mjs";
  2. //#region ../../packages/components/tree-select/src/utils.ts
  3. function isValidValue(val) {
  4. return val || val === 0;
  5. }
  6. function isValidArray(val) {
  7. return isArray(val) && val.length;
  8. }
  9. function toValidArray(val) {
  10. return isArray(val) ? val : isValidValue(val) ? [val] : [];
  11. }
  12. function treeFind(treeData, findCallback, getChildren, resultCallback, parent) {
  13. for (let i = 0; i < treeData.length; i++) {
  14. const data = treeData[i];
  15. if (findCallback(data, i, treeData, parent)) return resultCallback ? resultCallback(data, i, treeData, parent) : data;
  16. else {
  17. const children = getChildren(data);
  18. if (isValidArray(children)) {
  19. const find = treeFind(children, findCallback, getChildren, resultCallback, data);
  20. if (find) return find;
  21. }
  22. }
  23. }
  24. }
  25. function treeEach(treeData, callback, getChildren, parent) {
  26. for (let i = 0; i < treeData.length; i++) {
  27. const data = treeData[i];
  28. callback(data, i, treeData, parent);
  29. const children = getChildren(data);
  30. if (isValidArray(children)) treeEach(children, callback, getChildren, data);
  31. }
  32. }
  33. //#endregion
  34. export { isValidArray, isValidValue, toValidArray, treeEach, treeFind };
  35. //# sourceMappingURL=utils.mjs.map