UNPKG

ant-design-x-vue-next

Version:

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

2 lines (1 loc) 1.17 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const x=require("../../_util/hooks/use-state.js"),t=require("vue"),f=p=>{const d=t.computed(()=>{const e=t.toValue(p)||{},l=e.collapsible,o=typeof l=="object"&&l?l:{},a=l===!0||typeof l=="object",s=e.defaultExpandedKeys??o.defaultExpandedKeys??[],c=e.expandedKeys!==void 0?e.expandedKeys:o.expandedKeys!==void 0?o.expandedKeys:void 0,v=e.onExpand??o.onExpand??(()=>{});return{forceCollapse:a,isControlled:c!==void 0,controlledExpandedKeys:c,defaultExpandedKeys:s,customizeOnExpand:v}}),[r,u]=x.default(()=>d.value.controlledExpandedKeys??d.value.defaultExpandedKeys),n=t.computed(()=>d.value.isControlled?d.value.controlledExpandedKeys:r.value);t.watch(()=>({isControlled:d.value.isControlled,controlled:d.value.controlledExpandedKeys,defaults:d.value.defaultExpandedKeys}),e=>{e.isControlled&&u(e.controlled??[])},{deep:1});const i=e=>{var o,a;const l=n.value.includes(e)?n.value.filter(s=>s!==e):[...n.value,e];(a=(o=d.value).customizeOnExpand)==null||a.call(o,l),d.value.isControlled||u(l)};return[t.computed(()=>d.value.forceCollapse),n,i]};exports.default=f;