{"version":3,"file":"utils.mjs","sources":["../../../../../../packages/components/tree-select/src/utils.ts"],"sourcesContent":["import type { TreeNodeData } from '@bigin/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 Array.isArray(val) && val.length\n}\n\nexport function toValidArray(val: any) {\n  return Array.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"],"names":[],"mappings":"AAEO,SAAS,aAAa,GAAU,EAAA;AACrC,EAAA,OAAO,OAAO,GAAQ,KAAA,CAAA,CAAA;AACxB,CAAA;AAEO,SAAS,aAAa,GAAU,EAAA;AACrC,EAAA,OAAO,KAAM,CAAA,OAAA,CAAQ,GAAG,CAAA,IAAK,GAAI,CAAA,MAAA,CAAA;AACnC,CAAA;AAEO,SAAS,aAAa,GAAU,EAAA;AACrC,EAAO,OAAA,KAAA,CAAM,OAAQ,CAAA,GAAG,CAAI,GAAA,GAAA,GAAM,YAAa,CAAA,GAAG,CAAI,GAAA,CAAC,GAAG,CAAA,GAAI,EAAC,CAAA;AACjE,CAAA;AAuBO,SAAS,QACd,CAAA,QAAA,EACA,YACA,EAAA,WAAA,EACA,gBACA,MACmB,EAAA;AACnB,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,QAAA,CAAS,QAAQ,CAAK,EAAA,EAAA;AACxC,IAAA,MAAM,OAAO,QAAS,CAAA,CAAA,CAAA,CAAA;AACtB,IAAA,IAAI,YAAa,CAAA,IAAA,EAAM,CAAG,EAAA,QAAA,EAAU,MAAM,CAAG,EAAA;AAC3C,MAAA,OAAO,iBAAiB,cAAe,CAAA,IAAA,EAAM,CAAG,EAAA,QAAA,EAAU,MAAM,CAAI,GAAA,IAAA,CAAA;AAAA,KAC/D,MAAA;AACL,MAAM,MAAA,QAAA,GAAW,YAAY,IAAI,CAAA,CAAA;AACjC,MAAI,IAAA,YAAA,CAAa,QAAQ,CAAG,EAAA;AAC1B,QAAA,MAAM,IAAO,GAAA,QAAA;AAAA,UACX,QAAA;AAAA,UACA,YAAA;AAAA,UACA,WAAA;AAAA,UACA,cAAA;AAAA,UACA,IAAA;AAAA,SACF,CAAA;AACA,QAAI,IAAA,IAAA;AAAM,UAAO,OAAA,IAAA,CAAA;AAAA,OACnB;AAAA,KACF;AAAA,GACF;AACF;;;;"}