ivue-material-plus
Version:
A high quality UI components Library with Vue.js
36 lines (31 loc) • 913 B
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
const TreeNodeMapContextKey = Symbol("ivue-tree-node-map");
function useNodeExpandEventBroadcast(props) {
const parentNodeMap = vue.inject(TreeNodeMapContextKey, null);
const currentNodeMap = {
treeNodeCollapse: (node) => {
if (props.node !== node) {
props.node.collapse();
}
},
children: []
};
if (parentNodeMap) {
parentNodeMap.children.push(currentNodeMap);
}
vue.provide(TreeNodeMapContextKey, currentNodeMap);
return {
broadcastExpanded: (node) => {
if (!props.accordion) {
return;
}
for (const childNode of currentNodeMap.children) {
childNode.treeNodeCollapse(node);
}
}
};
}
exports.useNodeExpandEventBroadcast = useNodeExpandEventBroadcast;
//# sourceMappingURL=useNodeExpandEventBroadcast.js.map