{"version":3,"file":"tree-traverse.mjs","sources":["../../../../packages/utils/tree-traverse.ts"],"sourcesContent":["// 深度优先遍历\nexport const dfs = <T extends { children?: T[] }>(\n  data: T[],\n  { visitor }: { visitor: (node: T, done?: () => void) => void }\n) => {\n  const stack = [...data]\n  let _break = false\n  while (stack.length) {\n    if (_break) break\n    const node = stack.shift()\n    visitor(node!, () => {\n      _break = true\n    })\n    const children = node?.children\n    if (children) {\n      for (let i = children.length - 1; i >= 0; i--) {\n        stack.unshift(children[i])\n      }\n    }\n  }\n}\n\n// 广度优先遍历\nexport const bfs = <T extends { children?: T[] }>(\n  data: T[],\n  { visitor }: { visitor: (node: T, done?: () => void) => void }\n) => {\n  const stack = [...data]\n  let _break = false\n  while (stack.length) {\n    if (_break) break\n    const node = stack.shift()\n    visitor(node!, () => {\n      _break = true\n    })\n    const children = node?.children\n    if (children) {\n      for (let i = 0; i < children.length; i++) {\n        stack.push(children[i])\n      }\n    }\n  }\n}\n"],"names":[],"mappings":"AACO,MAAM,GAAM,GAAA,CACjB,IACA,EAAA,EAAE,SACC,KAAA;AACH,EAAM,MAAA,KAAA,GAAQ,CAAC,GAAG,IAAI,CAAA,CAAA;AACtB,EAAA,IAAI,MAAS,GAAA,KAAA,CAAA;AACb,EAAA,OAAO,MAAM,MAAQ,EAAA;AACnB,IAAI,IAAA,MAAA;AAAQ,MAAA,MAAA;AACZ,IAAM,MAAA,IAAA,GAAO,MAAM,KAAM,EAAA,CAAA;AACzB,IAAA,OAAA,CAAQ,MAAO,MAAM;AACnB,MAAS,MAAA,GAAA,IAAA,CAAA;AAAA,KACV,CAAA,CAAA;AACD,IAAA,MAAM,WAAW,IAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,QAAA,CAAA;AACvB,IAAA,IAAI,QAAU,EAAA;AACZ,MAAA,KAAA,IAAS,IAAI,QAAS,CAAA,MAAA,GAAS,CAAG,EAAA,CAAA,IAAK,GAAG,CAAK,EAAA,EAAA;AAC7C,QAAM,KAAA,CAAA,OAAA,CAAQ,QAAS,CAAA,CAAC,CAAC,CAAA,CAAA;AAAA,OAC3B;AAAA,KACF;AAAA,GACF;AACF,EAAA;AAGO,MAAM,GAAM,GAAA,CACjB,IACA,EAAA,EAAE,SACC,KAAA;AACH,EAAM,MAAA,KAAA,GAAQ,CAAC,GAAG,IAAI,CAAA,CAAA;AACtB,EAAA,IAAI,MAAS,GAAA,KAAA,CAAA;AACb,EAAA,OAAO,MAAM,MAAQ,EAAA;AACnB,IAAI,IAAA,MAAA;AAAQ,MAAA,MAAA;AACZ,IAAM,MAAA,IAAA,GAAO,MAAM,KAAM,EAAA,CAAA;AACzB,IAAA,OAAA,CAAQ,MAAO,MAAM;AACnB,MAAS,MAAA,GAAA,IAAA,CAAA;AAAA,KACV,CAAA,CAAA;AACD,IAAA,MAAM,WAAW,IAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,QAAA,CAAA;AACvB,IAAA,IAAI,QAAU,EAAA;AACZ,MAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,QAAA,CAAS,QAAQ,CAAK,EAAA,EAAA;AACxC,QAAM,KAAA,CAAA,IAAA,CAAK,QAAS,CAAA,CAAC,CAAC,CAAA,CAAA;AAAA,OACxB;AAAA,KACF;AAAA,GACF;AACF;;;;"}