{"version":3,"file":"useNodeExpandEventBroadcast.mjs","sources":["../../../../../../../packages/components/tree/src/model/useNodeExpandEventBroadcast.ts"],"sourcesContent":["// @ts-nocheck\nimport { inject, provide } from 'vue'\nimport type Node from '../model/node'\n\ninterface NodeMap {\n  treeNodeExpand(node: Node): void\n  children: NodeMap[]\n}\n\nexport function useNodeExpandEventBroadcast(props) {\n  const parentNodeMap = inject<NodeMap>('TreeNodeMap', null)\n  const currentNodeMap: NodeMap = {\n    treeNodeExpand: (node) => {\n      if (props.node !== node) {\n        props.node.collapse()\n      }\n    },\n    children: [],\n  }\n\n  if (parentNodeMap) {\n    parentNodeMap.children.push(currentNodeMap)\n  }\n\n  provide('TreeNodeMap', currentNodeMap)\n\n  return {\n    broadcastExpanded: (node: Node): void => {\n      if (!props.accordion) return\n      for (const childNode of currentNodeMap.children) {\n        childNode.treeNodeExpand(node)\n      }\n    },\n  }\n}\n"],"names":[],"mappings":";;AASO,SAAS,4BAA4B,KAAO,EAAA;AACjD,EAAM,MAAA,aAAA,GAAgB,MAAgB,CAAA,aAAA,EAAe,IAAI,CAAA,CAAA;AACzD,EAAA,MAAM,cAA0B,GAAA;AAAA,IAC9B,cAAA,EAAgB,CAAC,IAAS,KAAA;AACxB,MAAI,IAAA,KAAA,CAAM,SAAS,IAAM,EAAA;AACvB,QAAA,KAAA,CAAM,KAAK,QAAS,EAAA,CAAA;AAAA,OACtB;AAAA,KACF;AAAA,IACA,UAAU,EAAC;AAAA,GACb,CAAA;AAEA,EAAA,IAAI,aAAe,EAAA;AACjB,IAAc,aAAA,CAAA,QAAA,CAAS,KAAK,cAAc,CAAA,CAAA;AAAA,GAC5C;AAEA,EAAA,OAAA,CAAQ,eAAe,cAAc,CAAA,CAAA;AAErC,EAAO,OAAA;AAAA,IACL,iBAAA,EAAmB,CAAC,IAAqB,KAAA;AACvC,MAAA,IAAI,CAAC,KAAM,CAAA,SAAA;AAAW,QAAA,OAAA;AACtB,MAAW,KAAA,MAAA,SAAA,IAAa,eAAe,QAAU,EAAA;AAC/C,QAAA,SAAA,CAAU,eAAe,IAAI,CAAA,CAAA;AAAA,OAC/B;AAAA,KACF;AAAA,GACF,CAAA;AACF;;;;"}