UNPKG

ant-design-x-vue-next

Version:

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

2 lines (1 loc) 1.95 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("vue"),f=require("../interface.js"),r="__ungrouped",g=(t,p)=>!t||!p?!1:typeof t=="function"?!!t(p):!!t,y=(t,p=[])=>{const l=u.computed(()=>{if(!u.toValue(t))return{enableGroup:!1,sort:void 0,title:void 0,label:void 0,collapsibleHandle:void 0,collapsibleOptions:{defaultExpandedKeys:void 0,expandedKeys:void 0,onExpand:void 0}};let s={};typeof u.toValue(t)=="object"&&(s={...u.toValue(t)});const{collapsible:b,defaultExpandedKeys:n,expandedKeys:d,onExpand:c,...e}=s;return{enableGroup:!0,sort:e.sort,title:e.title,label:e.label,collapsibleHandle:b,collapsibleOptions:{defaultExpandedKeys:n,expandedKeys:d,onExpand:c}}});return u.computed(()=>{const s=u.toValue(p)||[];if(!l.value.enableGroup)return{groupList:[{name:r,data:s,title:void 0,label:void 0,collapsible:!1,enableGroup:!1}],enableGroup:!1,collapsibleOptions:l.value.collapsibleOptions,hasCollapsible:!1};if(s.some(e=>f.isDividerItem(e)))return{groupList:s.reduce((o,i)=>{if(f.isDividerItem(i)||!i.group)return o.push({data:[i],name:void 0,title:void 0,label:void 0,enableGroup:!1,collapsible:!1}),o;const a=i,v=o.find(O=>O.name===a.group);return v?(v.data.push(a),o):(o.push({data:[a],name:a.group,title:l.value.title,label:l.value.label,enableGroup:!0,collapsible:g(l.value.collapsibleHandle,a.group)}),o)},[]),enableGroup:!0,collapsibleOptions:l.value.collapsibleOptions,hasCollapsible:!!l.value.collapsibleHandle};const n=s.reduce((e,o)=>{const i=o,a=i.group||r;return e[a]||(e[a]=[]),e[a].push(i),e},{});return{groupList:(l.value.sort?Object.keys(n).sort(l.value.sort):Object.keys(n)).map(e=>{const o=e===r?void 0:e;return{name:o,title:l.value.title,label:l.value.label,data:n[e],enableGroup:!0,collapsible:g(l.value.collapsibleHandle,o)}}),enableGroup:!0,collapsibleOptions:l.value.collapsibleOptions,hasCollapsible:!!l.value.collapsibleHandle}})};exports.default=y;