UNPKG

ivue-material-plus

Version:

A high quality UI components Library with Vue.js

1 lines 2.12 kB
{"version":3,"file":"useNodeExpandEventBroadcast.mjs","sources":["../../../../../../src/components/ivue-tree/hooks/useNodeExpandEventBroadcast.ts"],"sourcesContent":["import { inject, provide, InjectionKey } from 'vue';\r\n\r\n// type\r\nimport type Node from '../store/node';\r\n\r\ninterface NodeMap {\r\n treeNodeCollapse(node: Node): void;\r\n children: NodeMap[];\r\n}\r\n\r\nconst TreeNodeMapContextKey: InjectionKey<NodeMap> =\r\n Symbol('ivue-tree-node-map');\r\n\r\n// 派发展开事件\r\nexport function useNodeExpandEventBroadcast(props) {\r\n const parentNodeMap = inject(TreeNodeMapContextKey, null);\r\n\r\n // 当前节点\r\n const currentNodeMap: NodeMap = {\r\n // tree 节点关闭\r\n treeNodeCollapse: (node) => {\r\n if (props.node !== node) {\r\n props.node.collapse();\r\n }\r\n },\r\n children: [],\r\n };\r\n\r\n // 有父节点\r\n if (parentNodeMap) {\r\n parentNodeMap.children.push(currentNodeMap);\r\n }\r\n\r\n provide(TreeNodeMapContextKey, currentNodeMap);\r\n\r\n return {\r\n broadcastExpanded: (node: Node): void => {\r\n // 是否每次只打开一个同级树节点展开\r\n if (!props.accordion) {\r\n return;\r\n }\r\n\r\n for (const childNode of currentNodeMap.children) {\r\n childNode.treeNodeCollapse(node);\r\n }\r\n },\r\n };\r\n}\r\n"],"names":[],"mappings":";;AAUA,MAAM,qBAAA,GACJ,OAAO,oBAAoB,CAAA,CAAA;AAGtB,SAAS,4BAA4B,KAAO,EAAA;AACjD,EAAM,MAAA,aAAA,GAAgB,MAAO,CAAA,qBAAA,EAAuB,IAAI,CAAA,CAAA;AAGxD,EAAA,MAAM,cAA0B,GAAA;AAAA,IAE9B,gBAAA,EAAkB,CAAC,IAAS,KAAA;AAC1B,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;AAGA,EAAA,IAAI,aAAe,EAAA;AACjB,IAAc,aAAA,CAAA,QAAA,CAAS,KAAK,cAAc,CAAA,CAAA;AAAA,GAC5C;AAEA,EAAA,OAAA,CAAQ,uBAAuB,cAAc,CAAA,CAAA;AAE7C,EAAO,OAAA;AAAA,IACL,iBAAA,EAAmB,CAAC,IAAqB,KAAA;AAEvC,MAAI,IAAA,CAAC,MAAM,SAAW,EAAA;AACpB,QAAA,OAAA;AAAA,OACF;AAEA,MAAW,KAAA,MAAA,SAAA,IAAa,eAAe,QAAU,EAAA;AAC/C,QAAA,SAAA,CAAU,iBAAiB,IAAI,CAAA,CAAA;AAAA,OACjC;AAAA,KACF;AAAA,GACF,CAAA;AACF;;;;"}