UNPKG

ant-design-x-vue-next

Version:

Ant Design X for Vue — community continuation aligned with @ant-design/x

44 lines (43 loc) 1.4 kB
import f from "../../_util/hooks/use-state.mjs"; import { computed as s, toValue as v, watch as y } from "vue"; const m = (u) => { const d = s(() => { const e = v(u) || {}, o = e.collapsible, l = typeof o == "object" && o ? o : {}, t = o === !0 || typeof o == "object", a = e.defaultExpandedKeys ?? l.defaultExpandedKeys ?? [], c = e.expandedKeys !== void 0 ? e.expandedKeys : l.expandedKeys !== void 0 ? l.expandedKeys : void 0, x = e.onExpand ?? l.onExpand ?? (() => { }); return { forceCollapse: t, isControlled: c !== void 0, controlledExpandedKeys: c, defaultExpandedKeys: a, customizeOnExpand: x }; }), [r, p] = f( () => d.value.controlledExpandedKeys ?? d.value.defaultExpandedKeys ), n = s( () => d.value.isControlled ? d.value.controlledExpandedKeys : r.value ); y( () => ({ isControlled: d.value.isControlled, controlled: d.value.controlledExpandedKeys, defaults: d.value.defaultExpandedKeys }), (e) => { e.isControlled && p(e.controlled ?? []); }, { deep: 1 } ); const i = (e) => { var l, t; const o = n.value.includes(e) ? n.value.filter((a) => a !== e) : [...n.value, e]; (t = (l = d.value).customizeOnExpand) == null || t.call(l, o), d.value.isControlled || p(o); }; return [ s(() => d.value.forceCollapse), n, i ]; }; export { m as default };