@tmagic/utils 1.5.3 → 1.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -425,14 +425,19 @@ const addParamToUrl = (obj, global2 = globalThis, needReload = true) => {
425
425
  };
426
426
  const dataSourceTemplateRegExp = /\$\{([\s\S]+?)\}/g;
427
427
  const isDslNode = (config) => typeof config[IS_DSL_NODE_KEY] === "undefined" || config[IS_DSL_NODE_KEY] === true;
428
- const traverseNode = (node, cb, parents = []) => {
429
- cb(node, parents);
428
+ const traverseNode = (node, cb, parents = [], evalCbAfter = false) => {
429
+ if (!evalCbAfter) {
430
+ cb(node, parents);
431
+ }
430
432
  if (Array.isArray(node.items) && node.items.length) {
431
433
  parents.push(node);
432
434
  node.items.forEach((item) => {
433
435
  traverseNode(item, cb, [...parents]);
434
436
  });
435
437
  }
438
+ if (evalCbAfter) {
439
+ cb(node, parents);
440
+ }
436
441
  };
437
442
  const isValueIncludeDataSource = (value) => {
438
443
  if (typeof value === "string" && /\$\{([\s\S]+?)\}/.test(value)) {
@@ -3034,14 +3034,19 @@
3034
3034
  };
3035
3035
  const dataSourceTemplateRegExp = /\$\{([\s\S]+?)\}/g;
3036
3036
  const isDslNode = (config) => typeof config[IS_DSL_NODE_KEY] === "undefined" || config[IS_DSL_NODE_KEY] === true;
3037
- const traverseNode = (node, cb, parents = []) => {
3038
- cb(node, parents);
3037
+ const traverseNode = (node, cb, parents = [], evalCbAfter = false) => {
3038
+ if (!evalCbAfter) {
3039
+ cb(node, parents);
3040
+ }
3039
3041
  if (Array.isArray(node.items) && node.items.length) {
3040
3042
  parents.push(node);
3041
3043
  node.items.forEach((item) => {
3042
3044
  traverseNode(item, cb, [...parents]);
3043
3045
  });
3044
3046
  }
3047
+ if (evalCbAfter) {
3048
+ cb(node, parents);
3049
+ }
3045
3050
  };
3046
3051
  const isValueIncludeDataSource = (value) => {
3047
3052
  if (typeof value === "string" && /\$\{([\s\S]+?)\}/.test(value)) {
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.5.3",
2
+ "version": "1.5.4",
3
3
  "name": "@tmagic/utils",
4
4
  "type": "module",
5
5
  "main": "dist/tmagic-utils.umd.cjs",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "peerDependencies": {
39
39
  "typescript": "*",
40
- "@tmagic/schema": "1.5.3"
40
+ "@tmagic/schema": "1.5.4"
41
41
  },
42
42
  "peerDependenciesMeta": {
43
43
  "typescript": {
package/src/index.ts CHANGED
@@ -499,8 +499,11 @@ export const traverseNode = <T extends NodeItem = NodeItem>(
499
499
  node: T,
500
500
  cb: (node: T, parents: T[]) => void,
501
501
  parents: T[] = [],
502
+ evalCbAfter = false,
502
503
  ) => {
503
- cb(node, parents);
504
+ if (!evalCbAfter) {
505
+ cb(node, parents);
506
+ }
504
507
 
505
508
  if (Array.isArray(node.items) && node.items.length) {
506
509
  parents.push(node);
@@ -508,6 +511,10 @@ export const traverseNode = <T extends NodeItem = NodeItem>(
508
511
  traverseNode(item as T, cb, [...parents]);
509
512
  });
510
513
  }
514
+
515
+ if (evalCbAfter) {
516
+ cb(node, parents);
517
+ }
511
518
  };
512
519
 
513
520
  export const isValueIncludeDataSource = (value: any) => {
package/types/index.d.ts CHANGED
@@ -94,7 +94,7 @@ interface NodeItem {
94
94
  items?: NodeItem[];
95
95
  [key: string]: any;
96
96
  }
97
- declare const traverseNode: <T extends NodeItem = NodeItem>(node: T, cb: (node: T, parents: T[]) => void, parents?: T[]) => void;
97
+ declare const traverseNode: <T extends NodeItem = NodeItem>(node: T, cb: (node: T, parents: T[]) => void, parents?: T[], evalCbAfter?: boolean) => void;
98
98
  declare const isValueIncludeDataSource: (value: any) => boolean;
99
99
 
100
100
  export { DATA_SOURCE_FIELDS_CHANGE_EVENT_PREFIX, DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX, DSL_NODE_KEY_COPY_PREFIX, IS_DSL_NODE_KEY, type NodeItem, addClassName, addParamToUrl, asyncLoadCss, asyncLoadJs, calcValueByFontsize, calculatePercentage, compiledCond, compiledNode, convertToNumber, createDiv, dataSourceTemplateRegExp, emptyFn, filterXSS, getDefaultValueFromFields, getDepKeys, getDepNodeIds, getDocument, getElById, getGlobalThis, getHost, getIdFromEl, getKeys, getKeysArray, getNodeInfo, getNodePath, getNodes, getUrlParam, getValueByKeyPath, guid, injectStyle, isDslNode, isNumber, isObject, isPage, isPageFragment, isPercentage, isPop, isSameDomain, isValueIncludeDataSource, removeClassName, removeClassNameByClassName, replaceChildNode, setDslDomRelateConfig, setIdToEl, setValueByKeyPath, sleep, toHump, toLine, traverseNode };