UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 1.35 kB
{"version":3,"file":"useNodeExpandEventBroadcast.mjs","sources":["../../../../../../../packages/components/tree/src/model/useNodeExpandEventBroadcast.ts"],"sourcesContent":["import { 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":";;qCAQ4C,OAAO;AACjD,QAAM,gBAAgB,OAAgB,eAAe;AACrD,QAAM,iBAA0B;AAAA,IAC9B,gBAAgB,CAAC,SAAS;AACxB,UAAI,MAAM,SAAS,MAAM;AACvB,cAAM,KAAK;AAAA;AAAA;AAAA,IAGf,UAAU;AAAA;AAGZ,MAAI,eAAe;AACjB,kBAAc,SAAS,KAAK;AAAA;AAG9B,UAAQ,eAAe;AAEvB,SAAO;AAAA,IACL,mBAAmB,CAAC,SAAqB;AACvC,UAAI,CAAC,MAAM;AAAW;AACtB,iBAAW,aAAa,eAAe,UAAU;AAC/C,kBAAU,eAAe;AAAA;AAAA;AAAA;AAAA;;;;"}