5c48ed3389e6105a8ea16c070e320b12b9fde1e042681efa30f2e389e78829fec406ce9ded9a9d5912255a9026d67618d173f1d97006522aac70d643adc51f 855 B

12345678910111213141516171819202122232425262728293031
  1. import { inject, provide } from 'vue';
  2. import { TREE_NODE_MAP_INJECTION_KEY } from '../tokens.mjs';
  3. function useNodeExpandEventBroadcast(props) {
  4. const parentNodeMap = inject(TREE_NODE_MAP_INJECTION_KEY, null);
  5. const currentNodeMap = {
  6. treeNodeExpand: (node) => {
  7. var _a;
  8. if (props.node !== node) {
  9. (_a = props.node) == null ? void 0 : _a.collapse();
  10. }
  11. },
  12. children: []
  13. };
  14. if (parentNodeMap) {
  15. parentNodeMap.children.push(currentNodeMap);
  16. }
  17. provide(TREE_NODE_MAP_INJECTION_KEY, currentNodeMap);
  18. return {
  19. broadcastExpanded: (node) => {
  20. if (!props.accordion)
  21. return;
  22. for (const childNode of currentNodeMap.children) {
  23. childNode.treeNodeExpand(node);
  24. }
  25. }
  26. };
  27. }
  28. export { useNodeExpandEventBroadcast };
  29. //# sourceMappingURL=useNodeExpandEventBroadcast.mjs.map