{"version":3,"file":"common.mjs","sources":["../../../src/utils/common.ts"],"sourcesContent":["\nexport const getRound = (floatNum: number, num = 3) => {\n  return parseFloat(floatNum.toFixed(num));\n};\n\n/**\n * Traversing the tree, function will stop traversing once it returns false\n * @param {Array} tree\n * @param {Function} fn\n * @param {String} childrenKey\n * @param parent\n *\n */\nexport function treeForEachSkipChildren<T>(\n  tree:T[],\n  fn:(node:T, parent?:T|undefined) => boolean|void|'skipChildren',\n  childrenKey = 'children',\n  parent?:T\n) {\n  let size = tree.length;\n  for (let i = 0; i < size; i++) {\n    const curNode = tree[i];\n    const res = fn(curNode, parent);\n    if (res === false) return false;\n    if (res === 'skipChildren') continue;\n\n    const children = (curNode as any)?.[childrenKey];\n    if (children?.length) {\n      if (treeForEachSkipChildren(children, fn, childrenKey, curNode) === false) {\n        return false;\n      }\n    }\n\n  }\n}\n\n/**\n * Traversing the tree, function will stop traversing once it returns false\n * @param {Array} tree\n * @param {Function} fn\n * @param {String} childrenKey\n * @param parent\n *\n */\nexport function treeForEach<T>(\n  tree:T[],\n  fn:(node:T, parent?:T|undefined) => boolean|void,\n  childrenKey = 'children',\n  parent?:T\n) {\n  let size = tree.length;\n  for (let i = 0; i < size; i++) {\n    const curNode = tree[i];\n    if (fn(curNode, parent) === false) return false;\n    const children = (curNode as any)?.[childrenKey];\n    if (children?.length) {\n      if (treeForEach(children, fn, childrenKey, curNode) === false) {\n        return false;\n      }\n    }\n\n  }\n}\n\nexport const sleep = (s = 0) => new Promise(r => setTimeout(r, s * 1000));\n\nexport const toMap = <K=string, V=any>(items: Array<V> | Set<V>, idKey = 'id'): Map<K, V> => {\n  const map = new Map<K, V>();\n  for (let it of items) {\n    map.set(it[idKey], it);\n  }\n  return map;\n};\n\nexport const arrangementArr = <T>(source: T[], target: T[], idKey = 'id') => {\n  const targetIds = target.map(item => item[idKey] as string);\n  const arr = new Array<T>(source.length);\n  const indexMap = new Map<string, number>();\n\n  targetIds.forEach((id, index) => {\n    indexMap.set(id, index);\n  });\n\n  const unMatchArr = source.filter((item) => {\n    const id = item[idKey] as string;\n    if (indexMap.has(id)) {\n      let index = indexMap.get(id) as number;\n      arr[index] = item;\n    }\n    return !indexMap.has(id);\n  });\n\n  if (unMatchArr.length > 0) {\n    let index = 0;\n    for (let i = 0; i < arr.length; i++) {\n      if (arr[i] === undefined) {\n        arr[i] = unMatchArr[index++];\n      }\n      if (index >= unMatchArr.length) {\n        break;\n      }\n    }\n  }\n  return arr.filter<T>(item => item !== undefined);\n};"],"names":[],"mappings":"AACO,MAAM,WAAW,CAAC,UAAkB,MAAM,MAAM;AACrD,SAAO,WAAW,SAAS,QAAQ,GAAG,CAAC;AACzC;AAUO,SAAS,wBACd,MACA,IACA,cAAc,YACd,QACA;AACA,MAAI,OAAO,KAAK;AAChB,WAAS,IAAI,GAAG,IAAI,MAAM,KAAK;AACvB,UAAA,UAAU,KAAK,CAAC;AAChB,UAAA,MAAM,GAAG,SAAS,MAAM;AAC1B,QAAA,QAAQ,MAAc,QAAA;AAC1B,QAAI,QAAQ,eAAgB;AAEtB,UAAA,WAAY,mCAAkB;AACpC,QAAI,qCAAU,QAAQ;AACpB,UAAI,wBAAwB,UAAU,IAAI,aAAa,OAAO,MAAM,OAAO;AAClE,eAAA;AAAA,MAAA;AAAA,IACT;AAAA,EACF;AAGJ;AAUO,SAAS,YACd,MACA,IACA,cAAc,YACd,QACA;AACA,MAAI,OAAO,KAAK;AAChB,WAAS,IAAI,GAAG,IAAI,MAAM,KAAK;AACvB,UAAA,UAAU,KAAK,CAAC;AACtB,QAAI,GAAG,SAAS,MAAM,MAAM,MAAc,QAAA;AACpC,UAAA,WAAY,mCAAkB;AACpC,QAAI,qCAAU,QAAQ;AACpB,UAAI,YAAY,UAAU,IAAI,aAAa,OAAO,MAAM,OAAO;AACtD,eAAA;AAAA,MAAA;AAAA,IACT;AAAA,EACF;AAGJ;AAYO,MAAM,iBAAiB,CAAI,QAAa,QAAa,QAAQ,SAAS;AAC3E,QAAM,YAAY,OAAO,IAAI,CAAQ,SAAA,KAAK,KAAK,CAAW;AAC1D,QAAM,MAAM,IAAI,MAAS,OAAO,MAAM;AAChC,QAAA,+BAAe,IAAoB;AAE/B,YAAA,QAAQ,CAAC,IAAI,UAAU;AACtB,aAAA,IAAI,IAAI,KAAK;AAAA,EAAA,CACvB;AAED,QAAM,aAAa,OAAO,OAAO,CAAC,SAAS;AACnC,UAAA,KAAK,KAAK,KAAK;AACjB,QAAA,SAAS,IAAI,EAAE,GAAG;AAChB,UAAA,QAAQ,SAAS,IAAI,EAAE;AAC3B,UAAI,KAAK,IAAI;AAAA,IAAA;AAER,WAAA,CAAC,SAAS,IAAI,EAAE;AAAA,EAAA,CACxB;AAEG,MAAA,WAAW,SAAS,GAAG;AACzB,QAAI,QAAQ;AACZ,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AAC/B,UAAA,IAAI,CAAC,MAAM,QAAW;AACpB,YAAA,CAAC,IAAI,WAAW,OAAO;AAAA,MAAA;AAEzB,UAAA,SAAS,WAAW,QAAQ;AAC9B;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEF,SAAO,IAAI,OAAU,CAAQ,SAAA,SAAS,MAAS;AACjD;"}