@duxweb/dvha-pro 1.2.3 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../card/card.cjs`);require(`../card/index.cjs`);const t=require(`../../pages/page.cjs`);require(`../../pages/index.cjs`);const n=require(`./formLayout.cjs`);let r=require(`vue`),i=require(`@duxweb/dvha-core`),a=require(`naive-ui`),o=require(`vue-router`);const s=(0,r.defineComponent)({name:`DuxPageForm`,props:{id:{type:[String,Number]},action:{type:String},title:{type:String},description:{type:String},labelPlacement:{type:String,default:`left`},path:{type:String},data:{type:Object},meta:{type:Object},params:{type:Object},onSuccess:{type:Function},onError:{type:Function},invalidate:{type:String}},setup(s,{slots:c}){let{t:l}=(0,i.useI18n)(),u=(0,r.toRef)(s,`data`,{}),d=(0,a.useMessage)(),f=(0,o.useRouter)(),p=(0,i.useTabStore)(),{invalidate:m}=(0,i.useInvalidate)(),h=(0,i.useExtendForm)({id:s.id,path:s.path,form:u,meta:s.meta,params:s.params,action:s.action,onError:e=>{d.error(e.message||l(`components.form.error`)),s.onError?.(e)},onSuccess:e=>{d.success(l(`components.form.success`)),s.onSuccess?.(e),!h.isEdit.value&&p.current&&p.delTab(p.current,e=>f.push(e.path||``)),s.invalidate&&m(s.invalidate)}}),g=p.tabs.find(e=>e.path===p.current);return()=>(0,r.createVNode)(t.DuxPage,{card:!1,scrollbar:!1},{default:()=>[(0,r.createVNode)(e.DuxCard,{title:s?.title||g?.label||(h.isEdit.value?l(`components.form.edit`):l(`components.form.create`)),description:s?.description,class:`h-full flex flex-col`,contentClass:`flex-1 min-h-0`,contentSize:`none`,"header-bordered":!0},{default:()=>(0,r.createVNode)(a.NScrollbar,null,{default:()=>[(0,r.createVNode)(n.DuxFormLayout,{labelPlacement:s.labelPlacement,class:`p-4`},{default:()=>[c?.default?.(h)]})]}),headerExtra:()=>(0,r.createVNode)(`div`,{class:`flex gap-6 items-center`},[c?.actions?.(h),(0,r.createVNode)(`div`,{class:`flex gap-2`},[(0,r.createVNode)(a.NButton,{onClick:()=>h.onReset(),loading:h.isLoading.value},{default:()=>l(`components.button.reset`),icon:()=>(0,r.createVNode)(`i`,{class:`i-tabler:refresh`},null)}),(0,r.createVNode)(a.NButton,{type:`primary`,onClick:()=>h.onSubmit(),loading:h.isLoading.value},{default:()=>l(`components.button.submit`),icon:()=>(0,r.createVNode)(`i`,{class:`i-tabler:device-floppy`},null)})])])})]})}});exports.DuxPageForm=s;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../card/card.cjs`);require(`../card/index.cjs`);const t=require(`../../pages/page.cjs`);require(`../../pages/index.cjs`);const n=require(`./formLayout.cjs`);let r=require(`vue`),i=require(`@duxweb/dvha-core`),a=require(`naive-ui`),o=require(`vue-router`);const s=(0,r.defineComponent)({name:`DuxPageForm`,props:{id:{type:[String,Number]},action:{type:String},title:{type:String},description:{type:String},labelPlacement:{type:String,default:`left`},path:{type:String},data:{type:Object},meta:{type:Object},params:{type:Object},onSuccess:{type:Function},onError:{type:Function},invalidate:{type:String}},setup(s,{slots:c}){let{t:l}=(0,i.useI18n)(),u=(0,r.toRef)(s,`data`,{}),d=(0,a.useMessage)(),f=(0,o.useRouter)(),p=(0,i.useTabStore)(),{invalidate:m}=(0,i.useInvalidate)(),h=(0,i.useExtendForm)({id:s.id,path:s.path,form:u,meta:s.meta,params:s.params,action:s.action,onError:e=>{d.error(e.message||l(`components.form.error`)),s.onError?.(e)},onSuccess:e=>{d.success(l(`components.form.success`)),s.onSuccess?.(e),!h.isEdit.value&&p.current&&p.delTab(p.current,e=>f.push(e.tabKey||e.path||``)),s.invalidate&&m(s.invalidate)}}),g=p.tabs.find(e=>(e.tabKey||e.path)===p.current);return()=>(0,r.createVNode)(t.DuxPage,{card:!1,scrollbar:!1},{default:()=>[(0,r.createVNode)(e.DuxCard,{title:s?.title||g?.label||(h.isEdit.value?l(`components.form.edit`):l(`components.form.create`)),description:s?.description,class:`h-full flex flex-col`,contentClass:`flex-1 min-h-0`,contentSize:`none`,"header-bordered":!0},{default:()=>(0,r.createVNode)(a.NScrollbar,null,{default:()=>[(0,r.createVNode)(n.DuxFormLayout,{labelPlacement:s.labelPlacement,class:`p-4`},{default:()=>[c?.default?.(h)]})]}),headerExtra:()=>(0,r.createVNode)(`div`,{class:`flex gap-6 items-center`},[c?.actions?.(h),(0,r.createVNode)(`div`,{class:`flex gap-2`},[(0,r.createVNode)(a.NButton,{onClick:()=>h.onReset(),loading:h.isLoading.value},{default:()=>l(`components.button.reset`),icon:()=>(0,r.createVNode)(`i`,{class:`i-tabler:refresh`},null)}),(0,r.createVNode)(a.NButton,{type:`primary`,onClick:()=>h.onSubmit(),loading:h.isLoading.value},{default:()=>l(`components.button.submit`),icon:()=>(0,r.createVNode)(`i`,{class:`i-tabler:device-floppy`},null)})])])})]})}});exports.DuxPageForm=s;
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../card/card.cjs`);require(`../card/index.cjs`);const t=require(`../../pages/page.cjs`);require(`../../pages/index.cjs`);let n=require(`vue`),r=require(`@duxweb/dvha-core`),i=require(`naive-ui`),a=require(`vue-router`);const o=(0,n.defineComponent)({name:`DuxPageTabForm`,props:{id:{type:[String,Number]},action:{type:String},title:{type:String},path:{type:String},data:{type:Object},meta:{type:Object},params:{type:Object},onSuccess:{type:Function},onError:{type:Function},invalidate:{type:String},defaultTab:{type:String,default:`0`}},setup(o,{slots:s}){let{t:c}=(0,r.useI18n)(),l=(0,n.toRef)(o,`data`,{}),u=(0,i.useMessage)(),d=(0,a.useRouter)(),f=(0,r.useTabStore)(),{invalidate:p}=(0,r.useInvalidate)(),m=(0,r.useExtendForm)({id:o.id,path:o.path,form:l,meta:o.meta,params:o.params,action:o.action,onError:e=>{u.error(e.message||c(`components.form.error`)),o.onError?.(e)},onSuccess:e=>{u.success(c(`components.form.success`)),o.onSuccess?.(e),!m.isEdit.value&&f.current&&f.delTab(f.current,e=>d.push(e.path||``)),o.invalidate&&p(o.invalidate)}});return()=>(0,n.createVNode)(t.DuxPage,{card:!1,scrollbar:!1},{default:()=>[(0,n.createVNode)(e.DuxCard,{class:`h-full`},{default:()=>[(0,n.createVNode)(i.NTabs,{class:`app-page-tabs`,type:`line`,size:`large`,defaultValue:o.defaultTab},{prefix:()=>(0,n.createVNode)(`div`,{class:`w-1`},null),default:()=>s?.default?.(m),suffix:()=>(0,n.createVNode)(`div`,{class:`flex gap-6 items-center px-3`},[s?.actions?.(m),(0,n.createVNode)(`div`,{class:`flex gap-2`},[(0,n.createVNode)(i.NButton,{onClick:()=>m.onReset(),loading:m.isLoading.value},{default:()=>c(`components.button.reset`),icon:()=>(0,n.createVNode)(`i`,{class:`i-tabler:refresh`},null)}),(0,n.createVNode)(i.NButton,{type:`primary`,onClick:()=>m.onSubmit(),loading:m.isLoading.value},{default:()=>c(`components.button.submit`),icon:()=>(0,n.createVNode)(`i`,{class:`i-tabler:device-floppy`},null)})])])})]})]})}});exports.DuxPageTabForm=o;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../card/card.cjs`);require(`../card/index.cjs`);const t=require(`../../pages/page.cjs`);require(`../../pages/index.cjs`);let n=require(`vue`),r=require(`@duxweb/dvha-core`),i=require(`naive-ui`),a=require(`vue-router`);const o=(0,n.defineComponent)({name:`DuxPageTabForm`,props:{id:{type:[String,Number]},action:{type:String},title:{type:String},path:{type:String},data:{type:Object},meta:{type:Object},params:{type:Object},onSuccess:{type:Function},onError:{type:Function},invalidate:{type:String},defaultTab:{type:String,default:`0`}},setup(o,{slots:s}){let{t:c}=(0,r.useI18n)(),l=(0,n.toRef)(o,`data`,{}),u=(0,i.useMessage)(),d=(0,a.useRouter)(),f=(0,r.useTabStore)(),{invalidate:p}=(0,r.useInvalidate)(),m=(0,r.useExtendForm)({id:o.id,path:o.path,form:l,meta:o.meta,params:o.params,action:o.action,onError:e=>{u.error(e.message||c(`components.form.error`)),o.onError?.(e)},onSuccess:e=>{u.success(c(`components.form.success`)),o.onSuccess?.(e),!m.isEdit.value&&f.current&&f.delTab(f.current,e=>d.push(e.tabKey||e.path||``)),o.invalidate&&p(o.invalidate)}});return()=>(0,n.createVNode)(t.DuxPage,{card:!1,scrollbar:!1},{default:()=>[(0,n.createVNode)(e.DuxCard,{class:`h-full`},{default:()=>[(0,n.createVNode)(i.NTabs,{class:`app-page-tabs`,type:`line`,size:`large`,defaultValue:o.defaultTab},{prefix:()=>(0,n.createVNode)(`div`,{class:`w-1`},null),default:()=>s?.default?.(m),suffix:()=>(0,n.createVNode)(`div`,{class:`flex gap-6 items-center px-3`},[s?.actions?.(m),(0,n.createVNode)(`div`,{class:`flex gap-2`},[(0,n.createVNode)(i.NButton,{onClick:()=>m.onReset(),loading:m.isLoading.value},{default:()=>c(`components.button.reset`),icon:()=>(0,n.createVNode)(`i`,{class:`i-tabler:refresh`},null)}),(0,n.createVNode)(i.NButton,{type:`primary`,onClick:()=>m.onSubmit(),loading:m.isLoading.value},{default:()=>c(`components.button.submit`),icon:()=>(0,n.createVNode)(`i`,{class:`i-tabler:device-floppy`},null)})])])})]})]})}});exports.DuxPageTabForm=o;
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../hooks/action.cjs`);require(`../../hooks/index.cjs`);const t=require(`./filter.cjs`),n=require(`../../pages/page.cjs`),r=require(`../../pages/pageEmpty.cjs`);require(`../../pages/index.cjs`);const i=require(`../drawer/drawerPage.cjs`);require(`../drawer/index.cjs`);const ee=require(`./tools.cjs`);require(`./index.cjs`);let a=require(`vue`),o=require(`@duxweb/dvha-core`),s=require(`naive-ui`),te=require(`@vueuse/core`),c=require(`lodash-es`);const l=(0,a.defineComponent)({name:`DuxListLayout`,props:{rowKey:{type:String,default:`id`},path:{type:String,required:!0},filter:{type:Object},filterSchema:{type:Array},filterReactive:{type:Object},filterType:{type:String,default:`simple`},pagination:{type:[Boolean,Object],default:!0},tabs:{type:Array},title:{type:String,default:``},tools:{type:Object},actions:{type:Array,default:()=>[]},checkable:{type:Boolean},sideLeftTitle:{type:String,default:``},sideRightTitle:{type:String,default:``},batchOptions:{type:Array},hookListProps:{type:Object}},setup(l,{slots:u,expose:ne}){let d=(0,a.toRef)(l,`filter`,{}),f=(0,a.computed)(()=>l.filterReactive||{}),{t:p}=(0,o.useI18n)(),{renderAction:m}=e.useAction(),h=(0,a.toRef)(l.pagination&&typeof l.pagination==`object`?l.pagination:{page:1,pageSize:20}),g=(0,a.reactive)({...d.value||{}}),_=(0,o.useExtendList)({path:l.path,filters:g,pagination:h.value,...l.hookListProps});ne(_);let{meta:v,list:y,isLoading:b,autoRefetch:re,autoCountdown:x,onAutoRefetch:S,isExporting:C,isExportingRows:w,isImporting:T,onExport:E,onExportRows:D,onImport:O}=_,k=(0,a.computed)(()=>({page:_.page.value,pageSize:_.pageSize.value,pageCount:_.pageCount.value,pageSizes:_.pageSizes,pageSlot:5,onUpdatePage:_.onUpdatePage,onUpdatePageSize:_.onUpdatePageSize,showSizePicker:!0,showQuickJumper:!0})),A=(0,a.reactive)({show:!1}),j=(0,a.reactive)({show:!1}),{width:M}=(0,te.useWindowSize)(),ie=(0,a.computed)(()=>{let e=(0,a.unref)(l.filterSchema);return Array.isArray(e)?e:[]}),N=(0,a.computed)(()=>ie.value.map((e,t)=>{let n=(Array.isArray(e)?e:[e]).map((e,n)=>{let{label:r,...i}=e||{};return{key:`filter-node-${t}-${n}`,label:r??e?.title??``,schema:i}});return{key:`filter-row-${t}`,nodes:n}})),P=(0,a.computed)(()=>N.value.some(e=>e.nodes.some(e=>Object.keys(e.schema||{}).length>0))),F=(0,a.computed)(()=>!!u.filter||P.value),I=(0,a.computed)(()=>N.value.flatMap(e=>e.nodes.map(e=>({tag:t.DuxTableFilter,attrs:{label:e.label},children:e.schema})))),{render:L}=(0,o.useJsonSchema)({data:(0,a.computed)(()=>I.value)}),R=(0,a.ref)(0),z=e=>(0,c.cloneDeep)((0,a.toRaw)(e)||{}),B=()=>(0,c.cloneDeep)((0,a.toRaw)(g)||{}),V=e=>{let t=B();return e(),!(0,c.isEqual)(t,(0,a.toRaw)(g)||{})},H=e=>{if(e){_.page?.value===1?_.onRefresh?.():_.onUpdatePage?.(1);return}_.onRefresh?.()},U=()=>{H(V(()=>{Object.keys(g).forEach(e=>{delete g[e]}),Object.assign(g,z(d.value)),Object.assign(g,z(f.value))}))},W=()=>{let e=d.value?.tab;Object.keys(d.value||{}).forEach(e=>{e!==`tab`&&delete d.value[e]}),H(V(()=>{Object.keys(g).forEach(e=>{delete g[e]}),e!==void 0&&(g.tab=e),Object.assign(g,z(f.value))})),R.value++},G=(0,a.computed)(()=>({tag:`div`,attrs:{class:`flex flex-wrap gap-2 items-center w-full`},children:[{tag:`div`,attrs:{class:`text-right text-sm text-muted w-24 px-1`}},{tag:`div`,attrs:{class:`flex flex-wrap gap-2 flex-1`},children:[{tag:s.NButton,attrs:{type:`primary`,secondary:!0,onClick:U},slots:{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:search size-4`},null),default:()=>p(`components.button.search`)}},{tag:s.NButton,attrs:{secondary:!0,onClick:W},slots:{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:arrow-back-up size-4`},null),default:()=>p(`components.button.reset`)}}]}]})),{render:K}=(0,o.useJsonSchema)({data:(0,a.computed)(()=>{if(!P.value)return[];let e=N.value.map(e=>{let t=e.nodes.length>1;return{tag:`div`,attrs:{class:`flex flex-wrap gap-2 w-full items-start`,"data-filter-row":e.key},children:e.nodes.map(e=>{let n=e.label;return{tag:`div`,attrs:{class:t?`flex items-start gap-2`:`flex items-start gap-2 w-full`},children:[n?{tag:`div`,attrs:{class:`w-24 text-right text-sm text-muted px-1 flex-none pt-1.5`},children:n}:{tag:`div`,attrs:{class:`w-24 flex-none`}},{tag:`div`,attrs:{class:`min-w-50`},children:e.schema}]}})}});return e.push(G.value),e})}),q=(0,a.computed)(()=>({import:!1,export:!0,refresh:!0,...l.tools})),J=(0,a.ref)(null),Y=(0,o.useTabStore)(),ae=(0,a.computed)(()=>{let e=l.tabs?.map(e=>e.value)||[],t=d.value?.tab;return e.includes(t)?t:e[0]});(0,a.watch)(()=>l.tabs?.map(e=>e.value),()=>{let e=l.tabs?.map(e=>e.value)||[];if(d.value?.tab===void 0){let t=e[0];t!==void 0&&(d.value.tab=t,g.tab=t)}(0,a.nextTick)(()=>J.value?.syncBarPosition())},{deep:!0}),(0,a.watch)(()=>M.value,()=>{(0,a.nextTick)(()=>J.value?.syncBarPosition())}),(0,a.onMounted)(()=>{(0,a.nextTick)(()=>J.value?.syncBarPosition())});let X=(0,a.ref)(!1),Z=()=>{let e=!!u?.sideLeft&&M.value<1024,t=!!u?.sideRight&&M.value<1024,n=!u?.filter&&F.value&&M.value<1024;return!e&&!t&&!n?null:(0,a.createVNode)(`div`,{class:[`flex gap-2`]},[e&&(0,a.createVNode)(s.NButton,{class:`flex-none`,secondary:!0,onClick:()=>{A.show=!A.show}},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:layout-sidebar-inactive size-4`},null)}),t&&(0,a.createVNode)(s.NButton,{class:`flex-none`,secondary:!0,onClick:()=>{j.show=!j.show}},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:layout-sidebar-right-inactive size-4`},null)}),n&&(0,a.createVNode)(`div`,{class:`flex-none lg:hidden`},[(0,a.createVNode)(s.NButton,{secondary:!0,onClick:()=>{X.value=!X.value}},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:filter size-4`},null)})])])},oe=()=>(0,a.createVNode)(`div`,{class:[`flex gap-2 flex-row`]},[(0,a.createVNode)(`div`,{class:`flex lg:hidden`},[(0,a.createVNode)(s.NButton,{type:`primary`,secondary:!0,onClick:U},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:search size-4`},null)})]),(0,a.createVNode)(`div`,{class:[`hidden lg:flex gap-2`]},[(0,a.createVNode)(s.NButton,{type:`primary`,secondary:!0,onClick:U},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:search size-4`},null),default:()=>p(`components.button.search`)}),(0,a.createVNode)(s.NButton,{secondary:!0,onClick:W},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:arrow-back-up size-4`},null),default:()=>p(`components.button.reset`)})])]),Q=e=>{let t=Z(),n=e?oe():null;return!t&&!n?null:(0,a.createVNode)(`div`,{class:`flex justify-between gap-2`},[t,n])};(0,a.watch)(()=>f.value,e=>{V(()=>{let t=e||{};Object.keys(t).forEach(e=>{let n=t[e];n==null||n===``?delete g[e]:g[e]=n})})&&H(!0)},{deep:!0});let $=(0,a.computed)(()=>Y.tabs.find(e=>e.path===Y.current)?.label);return()=>(0,a.createVNode)(n.DuxPage,{actions:l.actions,scrollbar:!1},{title:u.title,sideLeft:()=>u?.sideLeft&&M.value>=1024?u?.sideLeft?.():void 0,sideRight:()=>u?.sideRight&&M.value>=1024?u?.sideRight?.():void 0,default:()=>(0,a.createVNode)(`div`,{class:[`flex flex-col h-full relative`,F.value&&`gap-3`]},[(0,a.createVNode)(`div`,{class:[`flex gap-2 justify-between flex-row`,F.value&&`border-b border-muted`]},[(0,a.createVNode)(`div`,{class:`relative top-1.5px`},[!l.tabs&&(u.title?.()||(l.title||$.value?(0,a.createVNode)(`div`,{class:`pb-4 pt-2 text-base`},[l.title||$.value]):null)),l.tabs&&(0,a.createVNode)(s.NTabs,{ref:J,type:`bar`,size:`small`,style:{"--n-tab-padding":`5px 20px 15px 20px`,"--n-tab-gap":`20px`},"default-value":l.tabs?.[0]?.value||``,value:ae.value,onUpdateValue:e=>{d.value.tab=e,g.tab=e,(0,a.nextTick)(()=>J.value?.syncBarPosition())}},{default:()=>[l.tabs?.map(e=>(0,a.createVNode)(s.NTab,{name:e.value,tab:e.label},null))]})]),(0,a.createVNode)(`div`,{class:`flex gap-2 justify-end pb-2`},[u.actions?.(),l.actions?.length>0&&m({type:M.value<1024?`dropdown`:`button`,text:M.value<1024,items:l.actions})])]),u?.header?.(),F.value?u.filter?u.filter({filter:d.value,filterReactive:f.value,onSearch:U,onReset:W}):l.filterType===`multi`&&M.value>=1024?(0,a.createVNode)(`div`,{class:`flex flex-col gap-3`},[(M.value>=1024||X.value)&&(0,a.createVNode)(`div`,{class:`flex flex-col gap-3 w-full`},[(0,a.createVNode)(`div`,{key:R.value,class:`flex flex-col gap-3`},[(0,a.h)(K)])]),Q(!1)]):(0,a.createVNode)(`div`,{class:`flex gap-2 justify-between flex-col-reverse lg:flex-row`},[(M.value>=1024||X.value)&&(0,a.createVNode)(`div`,{class:[`flex-1 flex flex-col lg:flex-row gap-2 flex-wrap`]},[(0,a.createVNode)(`div`,{key:R.value,class:`contents`},[(0,a.h)(L)])]),Q(!0)]):Z(),u?.contentHeader?.(),(0,a.createVNode)(s.NSpin,{show:b.value,class:`flex-1 min-h-0`,contentClass:`h-full`},{default:()=>[(0,a.createVNode)(`div`,{class:[`h-full overflow-auto`]},[!b.value&&y.value.length===0&&(0,a.createVNode)(`div`,{class:`flex justify-center items-center h-full`},[(0,a.createVNode)(r.DuxPageEmpty,null,null)]),y.value.length>0&&u?.default?.(_)])]}),(0,a.createVNode)(`div`,{class:`flex justify-between`},[(0,a.createVNode)(`div`,{class:`flex items-center gap-0.5`},[l.checkable&&(0,a.createVNode)(s.NTooltip,null,{trigger:()=>(0,a.createVNode)(s.NButton,{circle:!0,quaternary:!0},{default:()=>[(0,a.createVNode)(s.NCheckbox,{checked:_.isAllChecked.value,indeterminate:_.isIndeterminate.value,onUpdateChecked:_.toggleSelectAll},null)]}),default:()=>p(`components.list.selectAll`)}),u?.bottom?.(),u?.tools?.(),q.value.export&&(0,a.createVNode)(s.NTooltip,null,{trigger:()=>(0,a.createVNode)(s.NButton,{quaternary:!0,circle:!0,loading:C.value,onClick:E},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:database-export size-4`},null)}),default:()=>p(`components.button.export`)}),q.value.import&&(0,a.createVNode)(s.NTooltip,null,{trigger:()=>(0,a.createVNode)(s.NButton,{quaternary:!0,circle:!0,loading:T.value,onClick:O},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:database-import size-4`},null)}),default:()=>p(`components.button.import`)}),q.value.refresh&&(0,a.createVNode)(s.NTooltip,null,{trigger:()=>(0,a.createVNode)(s.NButton,{quaternary:!0,circle:!0,onClick:S},{icon:()=>re.value?(0,a.createVNode)(s.NProgress,{class:`size-4`,type:`circle`,percentage:x.value*10,strokeWidth:20,color:`rgba(var(--ui-color-primary))`},{default:()=>[(0,a.createVNode)(`span`,{class:`text-8px`},[x.value])]}):(0,a.createVNode)(`div`,{class:`i-tabler:refresh size-4`},null)}),default:()=>p(`components.button.autoRefresh`)})]),(0,a.createVNode)(`div`,{class:`flex items-center gap-2`},[l.pagination&&(0,a.createVNode)(s.NPagination,(0,a.mergeProps)(k.value,{simple:M.value<768}),{prefix:()=>(0,a.createVNode)(`div`,null,[p(`components.list.total`,{total:v?.value?.total||0})])})])]),(0,a.createVNode)(ee.DuxTableTools,{isLoading:_.isBatching.value,onBatch:_.onBatch,selecteds:_.checkeds.value,number:_.checkeds.value.length,group:[[{icon:`i-tabler:x`,onClick:()=>{_.checkeds.value=[],_.onUpdateChecked?.([])}}],[{label:p(`components.button.export`),icon:`i-tabler:file-export`,loading:w.value,onClick:D},{label:p(`components.button.delete`),type:`error`,icon:`i-tabler:trash`}]]},null),(0,a.createVNode)(s.NDrawer,{show:A.show,onUpdateShow:e=>A.show=e,autoFocus:!1,placement:`left`},{default:()=>[(0,a.createVNode)(i.DuxDrawerPage,{title:l.sideLeftTitle||p(`components.button.sideLeft`),onClose:()=>A.show=!1,scrollbar:!1},{default:()=>[u?.sideLeft?.()]})]}),(0,a.createVNode)(s.NDrawer,{show:j.show,onUpdateShow:e=>j.show=e,autoFocus:!1,placement:`right`},{default:()=>[(0,a.createVNode)(i.DuxDrawerPage,{title:l.sideRightTitle||p(`components.button.sideRight`),onClose:()=>j.show=!1,scrollbar:!1},{default:()=>[u?.sideRight?.()]})]})])})}});exports.DuxListLayout=l;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../hooks/action.cjs`);require(`../../hooks/index.cjs`);const t=require(`./filter.cjs`),n=require(`../../pages/page.cjs`),r=require(`../../pages/pageEmpty.cjs`);require(`../../pages/index.cjs`);const i=require(`../drawer/drawerPage.cjs`);require(`../drawer/index.cjs`);const ee=require(`./tools.cjs`);require(`./index.cjs`);let a=require(`vue`),o=require(`@duxweb/dvha-core`),s=require(`naive-ui`),te=require(`@vueuse/core`),c=require(`lodash-es`);const l=(0,a.defineComponent)({name:`DuxListLayout`,props:{rowKey:{type:String,default:`id`},path:{type:String,required:!0},filter:{type:Object},filterSchema:{type:Array},filterReactive:{type:Object},filterType:{type:String,default:`simple`},pagination:{type:[Boolean,Object],default:!0},tabs:{type:Array},title:{type:String,default:``},tools:{type:Object},actions:{type:Array,default:()=>[]},checkable:{type:Boolean},sideLeftTitle:{type:String,default:``},sideRightTitle:{type:String,default:``},batchOptions:{type:Array},hookListProps:{type:Object}},setup(l,{slots:u,expose:ne}){let d=(0,a.toRef)(l,`filter`,{}),f=(0,a.computed)(()=>l.filterReactive||{}),{t:p}=(0,o.useI18n)(),{renderAction:m}=e.useAction(),h=(0,a.toRef)(l.pagination&&typeof l.pagination==`object`?l.pagination:{page:1,pageSize:20}),g=(0,a.reactive)({...d.value||{}}),_=(0,o.useExtendList)({path:l.path,filters:g,pagination:h.value,...l.hookListProps});ne(_);let{meta:v,list:y,isLoading:b,autoRefetch:re,autoCountdown:x,onAutoRefetch:S,isExporting:C,isExportingRows:w,isImporting:T,onExport:E,onExportRows:D,onImport:O}=_,k=(0,a.computed)(()=>({page:_.page.value,pageSize:_.pageSize.value,pageCount:_.pageCount.value,pageSizes:_.pageSizes,pageSlot:5,onUpdatePage:_.onUpdatePage,onUpdatePageSize:_.onUpdatePageSize,showSizePicker:!0,showQuickJumper:!0})),A=(0,a.reactive)({show:!1}),j=(0,a.reactive)({show:!1}),{width:M}=(0,te.useWindowSize)(),ie=(0,a.computed)(()=>{let e=(0,a.unref)(l.filterSchema);return Array.isArray(e)?e:[]}),N=(0,a.computed)(()=>ie.value.map((e,t)=>{let n=(Array.isArray(e)?e:[e]).map((e,n)=>{let{label:r,...i}=e||{};return{key:`filter-node-${t}-${n}`,label:r??e?.title??``,schema:i}});return{key:`filter-row-${t}`,nodes:n}})),P=(0,a.computed)(()=>N.value.some(e=>e.nodes.some(e=>Object.keys(e.schema||{}).length>0))),F=(0,a.computed)(()=>!!u.filter||P.value),I=(0,a.computed)(()=>N.value.flatMap(e=>e.nodes.map(e=>({tag:t.DuxTableFilter,attrs:{label:e.label},children:e.schema})))),{render:L}=(0,o.useJsonSchema)({data:(0,a.computed)(()=>I.value)}),R=(0,a.ref)(0),z=e=>(0,c.cloneDeep)((0,a.toRaw)(e)||{}),B=()=>(0,c.cloneDeep)((0,a.toRaw)(g)||{}),V=e=>{let t=B();return e(),!(0,c.isEqual)(t,(0,a.toRaw)(g)||{})},H=e=>{if(e){_.page?.value===1?_.onRefresh?.():_.onUpdatePage?.(1);return}_.onRefresh?.()},U=()=>{H(V(()=>{Object.keys(g).forEach(e=>{delete g[e]}),Object.assign(g,z(d.value)),Object.assign(g,z(f.value))}))},W=()=>{let e=d.value?.tab;Object.keys(d.value||{}).forEach(e=>{e!==`tab`&&delete d.value[e]}),H(V(()=>{Object.keys(g).forEach(e=>{delete g[e]}),e!==void 0&&(g.tab=e),Object.assign(g,z(f.value))})),R.value++},G=(0,a.computed)(()=>({tag:`div`,attrs:{class:`flex flex-wrap gap-2 items-center w-full`},children:[{tag:`div`,attrs:{class:`text-right text-sm text-muted w-24 px-1`}},{tag:`div`,attrs:{class:`flex flex-wrap gap-2 flex-1`},children:[{tag:s.NButton,attrs:{type:`primary`,secondary:!0,onClick:U},slots:{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:search size-4`},null),default:()=>p(`components.button.search`)}},{tag:s.NButton,attrs:{secondary:!0,onClick:W},slots:{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:arrow-back-up size-4`},null),default:()=>p(`components.button.reset`)}}]}]})),{render:K}=(0,o.useJsonSchema)({data:(0,a.computed)(()=>{if(!P.value)return[];let e=N.value.map(e=>{let t=e.nodes.length>1;return{tag:`div`,attrs:{class:`flex flex-wrap gap-2 w-full items-start`,"data-filter-row":e.key},children:e.nodes.map(e=>{let n=e.label;return{tag:`div`,attrs:{class:t?`flex items-start gap-2`:`flex items-start gap-2 w-full`},children:[n?{tag:`div`,attrs:{class:`w-24 text-right text-sm text-muted px-1 flex-none pt-1.5`},children:n}:{tag:`div`,attrs:{class:`w-24 flex-none`}},{tag:`div`,attrs:{class:`min-w-50`},children:e.schema}]}})}});return e.push(G.value),e})}),q=(0,a.computed)(()=>({import:!1,export:!0,refresh:!0,...l.tools})),J=(0,a.ref)(null),Y=(0,o.useTabStore)(),ae=(0,a.computed)(()=>{let e=l.tabs?.map(e=>e.value)||[],t=d.value?.tab;return e.includes(t)?t:e[0]});(0,a.watch)(()=>l.tabs?.map(e=>e.value),()=>{let e=l.tabs?.map(e=>e.value)||[];if(d.value?.tab===void 0){let t=e[0];t!==void 0&&(d.value.tab=t,g.tab=t)}(0,a.nextTick)(()=>J.value?.syncBarPosition())},{deep:!0}),(0,a.watch)(()=>M.value,()=>{(0,a.nextTick)(()=>J.value?.syncBarPosition())}),(0,a.onMounted)(()=>{(0,a.nextTick)(()=>J.value?.syncBarPosition())});let X=(0,a.ref)(!1),Z=()=>{let e=!!u?.sideLeft&&M.value<1024,t=!!u?.sideRight&&M.value<1024,n=!u?.filter&&F.value&&M.value<1024;return!e&&!t&&!n?null:(0,a.createVNode)(`div`,{class:[`flex gap-2`]},[e&&(0,a.createVNode)(s.NButton,{class:`flex-none`,secondary:!0,onClick:()=>{A.show=!A.show}},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:layout-sidebar-inactive size-4`},null)}),t&&(0,a.createVNode)(s.NButton,{class:`flex-none`,secondary:!0,onClick:()=>{j.show=!j.show}},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:layout-sidebar-right-inactive size-4`},null)}),n&&(0,a.createVNode)(`div`,{class:`flex-none lg:hidden`},[(0,a.createVNode)(s.NButton,{secondary:!0,onClick:()=>{X.value=!X.value}},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:filter size-4`},null)})])])},oe=()=>(0,a.createVNode)(`div`,{class:[`flex gap-2 flex-row`]},[(0,a.createVNode)(`div`,{class:`flex lg:hidden`},[(0,a.createVNode)(s.NButton,{type:`primary`,secondary:!0,onClick:U},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:search size-4`},null)})]),(0,a.createVNode)(`div`,{class:[`hidden lg:flex gap-2`]},[(0,a.createVNode)(s.NButton,{type:`primary`,secondary:!0,onClick:U},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:search size-4`},null),default:()=>p(`components.button.search`)}),(0,a.createVNode)(s.NButton,{secondary:!0,onClick:W},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:arrow-back-up size-4`},null),default:()=>p(`components.button.reset`)})])]),Q=e=>{let t=Z(),n=e?oe():null;return!t&&!n?null:(0,a.createVNode)(`div`,{class:`flex justify-between gap-2`},[t,n])};(0,a.watch)(()=>f.value,e=>{V(()=>{let t=e||{};Object.keys(t).forEach(e=>{let n=t[e];n==null||n===``?delete g[e]:g[e]=n})})&&H(!0)},{deep:!0});let $=(0,a.computed)(()=>Y.tabs.find(e=>(e.tabKey||e.path)===Y.current)?.label);return()=>(0,a.createVNode)(n.DuxPage,{actions:l.actions,scrollbar:!1},{title:u.title,sideLeft:()=>u?.sideLeft&&M.value>=1024?u?.sideLeft?.():void 0,sideRight:()=>u?.sideRight&&M.value>=1024?u?.sideRight?.():void 0,default:()=>(0,a.createVNode)(`div`,{class:[`flex flex-col h-full relative`,F.value&&`gap-3`]},[(0,a.createVNode)(`div`,{class:[`flex gap-2 justify-between flex-row`,F.value&&`border-b border-muted`]},[(0,a.createVNode)(`div`,{class:`relative top-1.5px`},[!l.tabs&&(u.title?.()||(l.title||$.value?(0,a.createVNode)(`div`,{class:`pb-4 pt-2 text-base`},[l.title||$.value]):null)),l.tabs&&(0,a.createVNode)(s.NTabs,{ref:J,type:`bar`,size:`small`,style:{"--n-tab-padding":`5px 20px 15px 20px`,"--n-tab-gap":`20px`},"default-value":l.tabs?.[0]?.value||``,value:ae.value,onUpdateValue:e=>{d.value.tab=e,g.tab=e,(0,a.nextTick)(()=>J.value?.syncBarPosition())}},{default:()=>[l.tabs?.map(e=>(0,a.createVNode)(s.NTab,{name:e.value,tab:e.label},null))]})]),(0,a.createVNode)(`div`,{class:`flex gap-2 justify-end pb-2`},[u.actions?.(),l.actions?.length>0&&m({type:M.value<1024?`dropdown`:`button`,text:M.value<1024,items:l.actions})])]),u?.header?.(),F.value?u.filter?u.filter({filter:d.value,filterReactive:f.value,onSearch:U,onReset:W}):l.filterType===`multi`&&M.value>=1024?(0,a.createVNode)(`div`,{class:`flex flex-col gap-3`},[(M.value>=1024||X.value)&&(0,a.createVNode)(`div`,{class:`flex flex-col gap-3 w-full`},[(0,a.createVNode)(`div`,{key:R.value,class:`flex flex-col gap-3`},[(0,a.h)(K)])]),Q(!1)]):(0,a.createVNode)(`div`,{class:`flex gap-2 justify-between flex-col-reverse lg:flex-row`},[(M.value>=1024||X.value)&&(0,a.createVNode)(`div`,{class:[`flex-1 flex flex-col lg:flex-row gap-2 flex-wrap`]},[(0,a.createVNode)(`div`,{key:R.value,class:`contents`},[(0,a.h)(L)])]),Q(!0)]):Z(),u?.contentHeader?.(),(0,a.createVNode)(s.NSpin,{show:b.value,class:`flex-1 min-h-0`,contentClass:`h-full`},{default:()=>[(0,a.createVNode)(`div`,{class:[`h-full overflow-auto`]},[!b.value&&y.value.length===0&&(0,a.createVNode)(`div`,{class:`flex justify-center items-center h-full`},[(0,a.createVNode)(r.DuxPageEmpty,null,null)]),y.value.length>0&&u?.default?.(_)])]}),(0,a.createVNode)(`div`,{class:`flex justify-between`},[(0,a.createVNode)(`div`,{class:`flex items-center gap-0.5`},[l.checkable&&(0,a.createVNode)(s.NTooltip,null,{trigger:()=>(0,a.createVNode)(s.NButton,{circle:!0,quaternary:!0},{default:()=>[(0,a.createVNode)(s.NCheckbox,{checked:_.isAllChecked.value,indeterminate:_.isIndeterminate.value,onUpdateChecked:_.toggleSelectAll},null)]}),default:()=>p(`components.list.selectAll`)}),u?.bottom?.(),u?.tools?.(),q.value.export&&(0,a.createVNode)(s.NTooltip,null,{trigger:()=>(0,a.createVNode)(s.NButton,{quaternary:!0,circle:!0,loading:C.value,onClick:E},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:database-export size-4`},null)}),default:()=>p(`components.button.export`)}),q.value.import&&(0,a.createVNode)(s.NTooltip,null,{trigger:()=>(0,a.createVNode)(s.NButton,{quaternary:!0,circle:!0,loading:T.value,onClick:O},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:database-import size-4`},null)}),default:()=>p(`components.button.import`)}),q.value.refresh&&(0,a.createVNode)(s.NTooltip,null,{trigger:()=>(0,a.createVNode)(s.NButton,{quaternary:!0,circle:!0,onClick:S},{icon:()=>re.value?(0,a.createVNode)(s.NProgress,{class:`size-4`,type:`circle`,percentage:x.value*10,strokeWidth:20,color:`rgba(var(--ui-color-primary))`},{default:()=>[(0,a.createVNode)(`span`,{class:`text-8px`},[x.value])]}):(0,a.createVNode)(`div`,{class:`i-tabler:refresh size-4`},null)}),default:()=>p(`components.button.autoRefresh`)})]),(0,a.createVNode)(`div`,{class:`flex items-center gap-2`},[l.pagination&&(0,a.createVNode)(s.NPagination,(0,a.mergeProps)(k.value,{simple:M.value<768}),{prefix:()=>(0,a.createVNode)(`div`,null,[p(`components.list.total`,{total:v?.value?.total||0})])})])]),(0,a.createVNode)(ee.DuxTableTools,{isLoading:_.isBatching.value,onBatch:_.onBatch,selecteds:_.checkeds.value,number:_.checkeds.value.length,group:[[{icon:`i-tabler:x`,onClick:()=>{_.checkeds.value=[],_.onUpdateChecked?.([])}}],[{label:p(`components.button.export`),icon:`i-tabler:file-export`,loading:w.value,onClick:D},{label:p(`components.button.delete`),type:`error`,icon:`i-tabler:trash`}]]},null),(0,a.createVNode)(s.NDrawer,{show:A.show,onUpdateShow:e=>A.show=e,autoFocus:!1,placement:`left`},{default:()=>[(0,a.createVNode)(i.DuxDrawerPage,{title:l.sideLeftTitle||p(`components.button.sideLeft`),onClose:()=>A.show=!1,scrollbar:!1},{default:()=>[u?.sideLeft?.()]})]}),(0,a.createVNode)(s.NDrawer,{show:j.show,onUpdateShow:e=>j.show=e,autoFocus:!1,placement:`right`},{default:()=>[(0,a.createVNode)(i.DuxDrawerPage,{title:l.sideRightTitle||p(`components.button.sideRight`),onClose:()=>j.show=!1,scrollbar:!1},{default:()=>[u?.sideRight?.()]})]})])})}});exports.DuxListLayout=l;
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../hooks/action.cjs`),t=require(`../../hooks/table.cjs`);require(`../../hooks/index.cjs`);const n=require(`./filter.cjs`),r=require(`../../pages/page.cjs`);require(`../../pages/index.cjs`);const i=require(`../drawer/drawerPage.cjs`);require(`../drawer/index.cjs`);const a=require(`./tools.cjs`);let o=require(`vue`),s=require(`@duxweb/dvha-core`),c=require(`naive-ui`),l=require(`@vueuse/core`),u=require(`lodash-es`);const d=(0,o.defineComponent)({name:`DuxTableLayout`,props:{path:{type:String,required:!0},filter:{type:Object},filterSchema:{type:Array},filterType:{type:String,default:`simple`},filterReactive:{type:Object},filterNumber:{type:Number,default:1},sorter:{type:Object},columns:{type:Array},pagination:{type:[Boolean,Object],default:!0},tabs:{type:Array},actions:{type:Array,default:()=>[]},tools:{type:Object},sideLeftTitle:{type:String,default:``},sideRightTitle:{type:String,default:``},batchOptions:{type:Array},hookTableProps:{type:Object}},setup(d,{slots:f,expose:p}){let m=(0,o.toRef)(d,`filter`,{}),ee=(0,o.toRef)(d,`sorter`,{}),h=(0,o.computed)(()=>d.filterReactive||{}),g=(0,o.toRef)(d,`columns`,[]),{t:_}=(0,s.useI18n)(),{renderAction:v}=e.useAction(),y=(0,o.reactive)({...m.value||{}}),b=t.useTable({...d.hookTableProps,path:d.path,filters:y,sorters:ee.value,columns:g,pagination:d.pagination});p(b);let{columns:x,tablePagination:S,table:C,onUpdateColumnSelected:te,onUpdateChecked:ne,columnSelected:re,autoRefetch:ie,autoCountdown:w,onAutoRefetch:T,isExporting:E,isExportingRows:D,isImporting:O,onExport:k,onExportRows:A,onImport:ae}=b,oe=(0,o.computed)(()=>x.value.filter(e=>`title`in e&&`key`in e).map(e=>({label:e.title,value:e.key}))),{width:j}=(0,l.useWindowSize)(),M=(0,o.computed)(()=>x.value.reduce((e,t)=>e+(Number(t?.width)||Number(t?.minWidth)||110),0)),N=(0,o.reactive)({show:!1}),P=(0,o.reactive)({show:!1}),F=(0,o.ref)(!1),I=(0,o.computed)(()=>{let e=(0,o.unref)(d.filterSchema);return Array.isArray(e)?e:[]}),L=(0,o.computed)(()=>I.value.map((e,t)=>{let n=(Array.isArray(e)?e:[e]).map((e,n)=>{let{label:r,...i}=e||{};return{key:`filter-node-${t}-${n}`,label:r??e?.title??``,schema:i}});return{key:`filter-row-${t}`,nodes:n}})),R=(0,o.computed)(()=>L.value.some(e=>e.nodes.some(e=>Object.keys(e.schema||{}).length>0))),z=(0,o.computed)(()=>!!f.filter||R.value),B=(0,o.computed)(()=>L.value.flatMap(e=>e.nodes.map(e=>({tag:n.DuxTableFilter,attrs:{label:e.label},children:e.schema})))),{render:V}=(0,s.useJsonSchema)({data:(0,o.computed)(()=>B.value)}),H=(0,o.computed)(()=>({import:!1,export:!0,refresh:!0,...d.tools})),U=(0,o.ref)(0),W=(0,o.ref)(null),G=e=>(0,u.cloneDeep)((0,o.toRaw)(e)||{}),K=()=>(0,u.cloneDeep)((0,o.toRaw)(y)||{}),q=e=>{let t=K();return e(),!(0,u.isEqual)(t,(0,o.toRaw)(y)||{})},J=e=>{if(e){b.page?.value!==1&&b.onUpdatePage?.(1);return}b.onRefresh?.()},Y=()=>{J(q(()=>{Object.keys(y).forEach(e=>{delete y[e]}),Object.assign(y,G(m.value)),Object.assign(y,G(h.value))}))},X=()=>{let e=m.value?.tab;Object.keys(m.value||{}).forEach(e=>{e!==`tab`&&delete m.value[e]}),J(q(()=>{Object.keys(y).forEach(e=>{delete y[e]}),e!==void 0&&(y.tab=e),Object.assign(y,G(h.value))})),U.value++},se=(0,o.computed)(()=>({tag:`div`,attrs:{class:`flex flex-wrap gap-2 items-center w-full`},children:[{tag:`div`,attrs:{class:`text-right text-sm text-muted w-24 px-1`}},{tag:`div`,attrs:{class:`flex flex-wrap gap-2 flex-1`},children:[{tag:c.NButton,attrs:{type:`primary`,secondary:!0,onClick:Y},slots:{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:search size-4`},null),default:()=>_(`components.button.search`)}},{tag:c.NButton,attrs:{secondary:!0,onClick:X},slots:{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:arrow-back-up size-4`},null),default:()=>_(`components.button.reset`)}},{tag:c.NButton,attrs:{secondary:!0,onClick:()=>b.onRefresh?.()},slots:{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:refresh size-4`},null)}}]}]})),{render:ce}=(0,s.useJsonSchema)({data:(0,o.computed)(()=>{if(!R.value)return[];let e=L.value.map(e=>{let t=e.nodes.length>1;return{tag:`div`,attrs:{class:`flex flex-wrap gap-2 w-full items-start`,"data-filter-row":e.key},children:e.nodes.map(e=>{let n=e.label;return{tag:`div`,attrs:{class:t?`flex items-start gap-2`:`flex items-start gap-2 w-full`},children:[n?{tag:`div`,attrs:{class:`w-24 text-right text-sm text-muted px-1 flex-none pt-1.5`},children:n}:{tag:`div`,attrs:{class:`w-24 flex-none`}},{tag:`div`,attrs:{class:`min-w-50`},children:e.schema}]}})}});return e.push(se.value),e})}),Z=()=>{let e=!!f?.sideLeft&&j.value<1024,t=!!f?.sideRight&&j.value<1024,n=!f?.filter&&z.value&&j.value<1024;return!e&&!t&&!n?null:(0,o.createVNode)(`div`,{class:[`flex gap-2`]},[e&&(0,o.createVNode)(c.NButton,{class:`flex-none`,secondary:!0,onClick:()=>{N.show=!N.show}},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:layout-sidebar-inactive size-4`},null)}),t&&(0,o.createVNode)(c.NButton,{class:`flex-none`,secondary:!0,onClick:()=>{P.show=!P.show}},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:layout-sidebar-right-inactive size-4`},null)}),n&&(0,o.createVNode)(`div`,{class:`flex-none lg:hidden`},[(0,o.createVNode)(c.NButton,{secondary:!0,onClick:()=>{F.value=!F.value}},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:filter size-4`},null)})])])},le=()=>(0,o.createVNode)(`div`,{class:[`flex gap-2 flex-row`]},[(0,o.createVNode)(`div`,{class:`flex lg:hidden`},[(0,o.createVNode)(c.NButton,{type:`primary`,secondary:!0,onClick:Y},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:search size-4`},null)})]),(0,o.createVNode)(`div`,{class:[`hidden lg:flex gap-2`]},[(0,o.createVNode)(c.NButton,{type:`primary`,secondary:!0,onClick:Y},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:search size-4`},null),default:()=>_(`components.button.search`)}),(0,o.createVNode)(c.NButton,{secondary:!0,onClick:X},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:arrow-back-up size-4`},null),default:()=>_(`components.button.reset`)}),(0,o.createVNode)(c.NButton,{secondary:!0,onClick:()=>b.onRefresh?.()},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:refresh size-4`},null)})])]),Q=e=>{let t=Z(),n=e?le():null;return!t&&!n?null:(0,o.createVNode)(`div`,{class:`flex justify-between gap-2`},[t,n])};(0,o.watch)(()=>d.tabs?.map(e=>e.value),()=>{let e=d.tabs?.map(e=>e.value)||[];if(m.value?.tab===void 0){let t=e[0];t!==void 0&&(m.value.tab=t)}(0,o.nextTick)(()=>W.value?.syncBarPosition())},{deep:!0}),(0,o.watch)(()=>j.value,()=>{(0,o.nextTick)(()=>{W.value?.syncBarPosition()})});let $=(0,s.useTabStore)(),ue=$.tabs.find(e=>e.path===$.current),de=(0,o.computed)(()=>{let e=d.tabs?.map(e=>e.value)||[],t=m.value?.tab;return e.includes(t)?t:e[0]});return(0,o.onMounted)(()=>{(0,o.nextTick)(()=>{W.value?.syncBarPosition()})}),(0,o.watch)(()=>h.value,e=>{q(()=>{let t=e||{};Object.keys(t).forEach(e=>{let n=t[e];n==null||n===``?delete y[e]:y[e]=n})})&&J(!0)},{deep:!0}),()=>(0,o.createVNode)(r.DuxPage,{actions:d.actions,scrollbar:!1},{sideLeft:()=>f?.sideLeft&&j.value>=1024?f?.sideLeft?.():void 0,sideRight:()=>f?.sideRight&&j.value>=1024?f?.sideRight?.():void 0,default:()=>(0,o.createVNode)(`div`,{class:[`flex flex-col h-full relative`,z.value&&`gap-3`]},[(0,o.createVNode)(`div`,{class:[`flex gap-2 justify-between flex-row`,z.value&&`border-b border-muted`]},[(0,o.createVNode)(`div`,{class:`relative top-1.5px`},[!d.tabs&&(0,o.createVNode)(`div`,{class:`pb-4 pt-2 text-base`},[ue?.label]),d.tabs&&(0,o.createVNode)(c.NTabs,{ref:W,type:`bar`,size:`small`,style:{"--n-tab-padding":`5px 20px 15px 20px`,"--n-tab-gap":`20px`},"default-value":d.tabs?.[0]?.value||``,value:de.value,onUpdateValue:e=>{m.value.tab=e,y.tab=e,(0,o.nextTick)(()=>W.value?.syncBarPosition())}},{default:()=>[d.tabs?.map(e=>(0,o.createVNode)(c.NTab,{name:e.value,tab:e.label},null))]})]),(0,o.createVNode)(`div`,{class:`flex gap-2 justify-end pb-2`},[f.actions?.(),d.actions?.length>0&&v({type:j.value<1024?`dropdown`:`button`,items:d.actions})])]),f?.header?.(),z.value?f.filter?f.filter({filter:m.value,filterReactive:h.value,onSearch:Y,onReset:X}):d.filterType===`multi`&&j.value>=1024?(0,o.createVNode)(`div`,{class:`flex flex-col gap-3`},[(j.value>=1024||F.value)&&(0,o.createVNode)(`div`,{class:`flex flex-col gap-3 w-full`},[(0,o.createVNode)(`div`,{key:U.value,class:`flex flex-col gap-3`},[(0,o.h)(ce)])]),Q(!1)]):(0,o.createVNode)(`div`,{class:`flex gap-2 justify-between flex-col-reverse lg:flex-row`},[(j.value>=1024||F.value)&&(0,o.createVNode)(`div`,{class:[`flex-1 flex flex-col lg:flex-row gap-2 flex-wrap`]},[(0,o.createVNode)(`div`,{key:U.value,class:`contents`},[(0,o.h)(V)])]),Q(!0)]):Z(),f?.contentHeader?.(),(0,o.createVNode)(`div`,{class:`flex-1 min-h-0`},[f?.default?.({...b,width:M.value})]),(0,o.createVNode)(`div`,{class:`flex justify-between`},[(0,o.createVNode)(`div`,{class:`flex items-center gap-0.5`},[f?.bottom?.(),f?.tools?.(),(0,o.createVNode)(c.NPopselect,{options:oe.value,value:re.value,onUpdateValue:e=>{te(e)},multiple:!0,placement:`bottom-start`,trigger:`click`},{default:()=>[(0,o.createVNode)(c.NTooltip,null,{trigger:()=>(0,o.createVNode)(c.NButton,{quaternary:!0,circle:!0,"icon-placement":`right`},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:columns size-4`},null)}),default:()=>_(`components.list.columnSetting`)})]}),H.value.export&&(0,o.createVNode)(c.NTooltip,null,{trigger:()=>(0,o.createVNode)(c.NButton,{quaternary:!0,circle:!0,loading:E.value,onClick:k},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:database-export size-4`},null)}),default:()=>_(`components.button.export`)}),H.value.import&&(0,o.createVNode)(c.NTooltip,null,{trigger:()=>(0,o.createVNode)(c.NButton,{quaternary:!0,circle:!0,loading:O.value,onClick:ae},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:database-import size-4`},null)}),default:()=>_(`components.button.import`)}),H.value.refresh&&(0,o.createVNode)(c.NTooltip,null,{trigger:()=>(0,o.createVNode)(c.NButton,{quaternary:!0,circle:!0,onClick:T},{icon:()=>ie.value?(0,o.createVNode)(c.NProgress,{class:`size-4`,type:`circle`,percentage:w.value*10,strokeWidth:20,color:`rgba(var(--ui-color-primary))`},{default:()=>[(0,o.createVNode)(`span`,{class:`text-8px`},[w.value])]}):(0,o.createVNode)(`div`,{class:`i-tabler:refresh size-4`},null)}),default:()=>_(`components.button.autoRefresh`)})]),(0,o.createVNode)(`div`,null,[d.pagination&&(0,o.createVNode)(c.NPagination,(0,o.mergeProps)(S.value,{simple:j.value<768}),{prefix:()=>(0,o.createVNode)(`div`,null,[_(`components.list.total`,{total:b.total.value||0})])})])]),(0,o.createVNode)(a.DuxTableTools,{isLoading:b.isBatching.value,onBatch:b.onBatch,selecteds:C.value.checkedRowKeys,number:C.value.checkedRowKeys?.length||0,group:[[{icon:`i-tabler:x`,onClick:()=>{ne?.([])}}],[{label:_(`components.button.export`),icon:`i-tabler:file-export`,loading:D.value,onClick:A},...d.batchOptions||[]]]},null),(0,o.createVNode)(c.NDrawer,{show:N.show,onUpdateShow:e=>N.show=e,autoFocus:!1,placement:`left`},{default:()=>[(0,o.createVNode)(i.DuxDrawerPage,{title:d.sideLeftTitle||_(`components.button.sideLeft`),onClose:()=>N.show=!1,scrollbar:!1},{default:()=>[f?.sideLeft?.()]})]}),(0,o.createVNode)(c.NDrawer,{show:P.show,onUpdateShow:e=>P.show=e,autoFocus:!1,placement:`right`},{default:()=>[(0,o.createVNode)(i.DuxDrawerPage,{title:d.sideRightTitle||_(`components.button.sideRight`),onClose:()=>P.show=!1,scrollbar:!1},{default:()=>[f?.sideRight?.()]})]})])})}});exports.DuxTableLayout=d;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../hooks/action.cjs`),t=require(`../../hooks/table.cjs`);require(`../../hooks/index.cjs`);const n=require(`./filter.cjs`),r=require(`../../pages/page.cjs`);require(`../../pages/index.cjs`);const i=require(`../drawer/drawerPage.cjs`);require(`../drawer/index.cjs`);const a=require(`./tools.cjs`);let o=require(`vue`),s=require(`@duxweb/dvha-core`),c=require(`naive-ui`),l=require(`@vueuse/core`),u=require(`lodash-es`);const d=(0,o.defineComponent)({name:`DuxTableLayout`,props:{path:{type:String,required:!0},filter:{type:Object},filterSchema:{type:Array},filterType:{type:String,default:`simple`},filterReactive:{type:Object},filterNumber:{type:Number,default:1},sorter:{type:Object},columns:{type:Array},pagination:{type:[Boolean,Object],default:!0},tabs:{type:Array},actions:{type:Array,default:()=>[]},tools:{type:Object},sideLeftTitle:{type:String,default:``},sideRightTitle:{type:String,default:``},batchOptions:{type:Array},hookTableProps:{type:Object}},setup(d,{slots:f,expose:p}){let m=(0,o.toRef)(d,`filter`,{}),ee=(0,o.toRef)(d,`sorter`,{}),h=(0,o.computed)(()=>d.filterReactive||{}),g=(0,o.toRef)(d,`columns`,[]),{t:_}=(0,s.useI18n)(),{renderAction:v}=e.useAction(),y=(0,o.reactive)({...m.value||{}}),b=t.useTable({...d.hookTableProps,path:d.path,filters:y,sorters:ee.value,columns:g,pagination:d.pagination});p(b);let{columns:x,tablePagination:S,table:C,onUpdateColumnSelected:te,onUpdateChecked:ne,columnSelected:re,autoRefetch:ie,autoCountdown:w,onAutoRefetch:T,isExporting:E,isExportingRows:D,isImporting:O,onExport:k,onExportRows:A,onImport:ae}=b,oe=(0,o.computed)(()=>x.value.filter(e=>`title`in e&&`key`in e).map(e=>({label:e.title,value:e.key}))),{width:j}=(0,l.useWindowSize)(),M=(0,o.computed)(()=>x.value.reduce((e,t)=>e+(Number(t?.width)||Number(t?.minWidth)||110),0)),N=(0,o.reactive)({show:!1}),P=(0,o.reactive)({show:!1}),F=(0,o.ref)(!1),I=(0,o.computed)(()=>{let e=(0,o.unref)(d.filterSchema);return Array.isArray(e)?e:[]}),L=(0,o.computed)(()=>I.value.map((e,t)=>{let n=(Array.isArray(e)?e:[e]).map((e,n)=>{let{label:r,...i}=e||{};return{key:`filter-node-${t}-${n}`,label:r??e?.title??``,schema:i}});return{key:`filter-row-${t}`,nodes:n}})),R=(0,o.computed)(()=>L.value.some(e=>e.nodes.some(e=>Object.keys(e.schema||{}).length>0))),z=(0,o.computed)(()=>!!f.filter||R.value),B=(0,o.computed)(()=>L.value.flatMap(e=>e.nodes.map(e=>({tag:n.DuxTableFilter,attrs:{label:e.label},children:e.schema})))),{render:V}=(0,s.useJsonSchema)({data:(0,o.computed)(()=>B.value)}),H=(0,o.computed)(()=>({import:!1,export:!0,refresh:!0,...d.tools})),U=(0,o.ref)(0),W=(0,o.ref)(null),G=e=>(0,u.cloneDeep)((0,o.toRaw)(e)||{}),K=()=>(0,u.cloneDeep)((0,o.toRaw)(y)||{}),q=e=>{let t=K();return e(),!(0,u.isEqual)(t,(0,o.toRaw)(y)||{})},J=e=>{if(e){b.page?.value!==1&&b.onUpdatePage?.(1);return}b.onRefresh?.()},Y=()=>{J(q(()=>{Object.keys(y).forEach(e=>{delete y[e]}),Object.assign(y,G(m.value)),Object.assign(y,G(h.value))}))},X=()=>{let e=m.value?.tab;Object.keys(m.value||{}).forEach(e=>{e!==`tab`&&delete m.value[e]}),J(q(()=>{Object.keys(y).forEach(e=>{delete y[e]}),e!==void 0&&(y.tab=e),Object.assign(y,G(h.value))})),U.value++},se=(0,o.computed)(()=>({tag:`div`,attrs:{class:`flex flex-wrap gap-2 items-center w-full`},children:[{tag:`div`,attrs:{class:`text-right text-sm text-muted w-24 px-1`}},{tag:`div`,attrs:{class:`flex flex-wrap gap-2 flex-1`},children:[{tag:c.NButton,attrs:{type:`primary`,secondary:!0,onClick:Y},slots:{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:search size-4`},null),default:()=>_(`components.button.search`)}},{tag:c.NButton,attrs:{secondary:!0,onClick:X},slots:{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:arrow-back-up size-4`},null),default:()=>_(`components.button.reset`)}},{tag:c.NButton,attrs:{secondary:!0,onClick:()=>b.onRefresh?.()},slots:{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:refresh size-4`},null)}}]}]})),{render:ce}=(0,s.useJsonSchema)({data:(0,o.computed)(()=>{if(!R.value)return[];let e=L.value.map(e=>{let t=e.nodes.length>1;return{tag:`div`,attrs:{class:`flex flex-wrap gap-2 w-full items-start`,"data-filter-row":e.key},children:e.nodes.map(e=>{let n=e.label;return{tag:`div`,attrs:{class:t?`flex items-start gap-2`:`flex items-start gap-2 w-full`},children:[n?{tag:`div`,attrs:{class:`w-24 text-right text-sm text-muted px-1 flex-none pt-1.5`},children:n}:{tag:`div`,attrs:{class:`w-24 flex-none`}},{tag:`div`,attrs:{class:`min-w-50`},children:e.schema}]}})}});return e.push(se.value),e})}),Z=()=>{let e=!!f?.sideLeft&&j.value<1024,t=!!f?.sideRight&&j.value<1024,n=!f?.filter&&z.value&&j.value<1024;return!e&&!t&&!n?null:(0,o.createVNode)(`div`,{class:[`flex gap-2`]},[e&&(0,o.createVNode)(c.NButton,{class:`flex-none`,secondary:!0,onClick:()=>{N.show=!N.show}},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:layout-sidebar-inactive size-4`},null)}),t&&(0,o.createVNode)(c.NButton,{class:`flex-none`,secondary:!0,onClick:()=>{P.show=!P.show}},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:layout-sidebar-right-inactive size-4`},null)}),n&&(0,o.createVNode)(`div`,{class:`flex-none lg:hidden`},[(0,o.createVNode)(c.NButton,{secondary:!0,onClick:()=>{F.value=!F.value}},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:filter size-4`},null)})])])},le=()=>(0,o.createVNode)(`div`,{class:[`flex gap-2 flex-row`]},[(0,o.createVNode)(`div`,{class:`flex lg:hidden`},[(0,o.createVNode)(c.NButton,{type:`primary`,secondary:!0,onClick:Y},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:search size-4`},null)})]),(0,o.createVNode)(`div`,{class:[`hidden lg:flex gap-2`]},[(0,o.createVNode)(c.NButton,{type:`primary`,secondary:!0,onClick:Y},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:search size-4`},null),default:()=>_(`components.button.search`)}),(0,o.createVNode)(c.NButton,{secondary:!0,onClick:X},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:arrow-back-up size-4`},null),default:()=>_(`components.button.reset`)}),(0,o.createVNode)(c.NButton,{secondary:!0,onClick:()=>b.onRefresh?.()},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:refresh size-4`},null)})])]),Q=e=>{let t=Z(),n=e?le():null;return!t&&!n?null:(0,o.createVNode)(`div`,{class:`flex justify-between gap-2`},[t,n])};(0,o.watch)(()=>d.tabs?.map(e=>e.value),()=>{let e=d.tabs?.map(e=>e.value)||[];if(m.value?.tab===void 0){let t=e[0];t!==void 0&&(m.value.tab=t)}(0,o.nextTick)(()=>W.value?.syncBarPosition())},{deep:!0}),(0,o.watch)(()=>j.value,()=>{(0,o.nextTick)(()=>{W.value?.syncBarPosition()})});let $=(0,s.useTabStore)(),ue=$.tabs.find(e=>(e.tabKey||e.path)===$.current),de=(0,o.computed)(()=>{let e=d.tabs?.map(e=>e.value)||[],t=m.value?.tab;return e.includes(t)?t:e[0]});return(0,o.onMounted)(()=>{(0,o.nextTick)(()=>{W.value?.syncBarPosition()})}),(0,o.watch)(()=>h.value,e=>{q(()=>{let t=e||{};Object.keys(t).forEach(e=>{let n=t[e];n==null||n===``?delete y[e]:y[e]=n})})&&J(!0)},{deep:!0}),()=>(0,o.createVNode)(r.DuxPage,{actions:d.actions,scrollbar:!1},{sideLeft:()=>f?.sideLeft&&j.value>=1024?f?.sideLeft?.():void 0,sideRight:()=>f?.sideRight&&j.value>=1024?f?.sideRight?.():void 0,default:()=>(0,o.createVNode)(`div`,{class:[`flex flex-col h-full relative`,z.value&&`gap-3`]},[(0,o.createVNode)(`div`,{class:[`flex gap-2 justify-between flex-row`,z.value&&`border-b border-muted`]},[(0,o.createVNode)(`div`,{class:`relative top-1.5px`},[!d.tabs&&(0,o.createVNode)(`div`,{class:`pb-4 pt-2 text-base`},[ue?.label]),d.tabs&&(0,o.createVNode)(c.NTabs,{ref:W,type:`bar`,size:`small`,style:{"--n-tab-padding":`5px 20px 15px 20px`,"--n-tab-gap":`20px`},"default-value":d.tabs?.[0]?.value||``,value:de.value,onUpdateValue:e=>{m.value.tab=e,y.tab=e,(0,o.nextTick)(()=>W.value?.syncBarPosition())}},{default:()=>[d.tabs?.map(e=>(0,o.createVNode)(c.NTab,{name:e.value,tab:e.label},null))]})]),(0,o.createVNode)(`div`,{class:`flex gap-2 justify-end pb-2`},[f.actions?.(),d.actions?.length>0&&v({type:j.value<1024?`dropdown`:`button`,items:d.actions})])]),f?.header?.(),z.value?f.filter?f.filter({filter:m.value,filterReactive:h.value,onSearch:Y,onReset:X}):d.filterType===`multi`&&j.value>=1024?(0,o.createVNode)(`div`,{class:`flex flex-col gap-3`},[(j.value>=1024||F.value)&&(0,o.createVNode)(`div`,{class:`flex flex-col gap-3 w-full`},[(0,o.createVNode)(`div`,{key:U.value,class:`flex flex-col gap-3`},[(0,o.h)(ce)])]),Q(!1)]):(0,o.createVNode)(`div`,{class:`flex gap-2 justify-between flex-col-reverse lg:flex-row`},[(j.value>=1024||F.value)&&(0,o.createVNode)(`div`,{class:[`flex-1 flex flex-col lg:flex-row gap-2 flex-wrap`]},[(0,o.createVNode)(`div`,{key:U.value,class:`contents`},[(0,o.h)(V)])]),Q(!0)]):Z(),f?.contentHeader?.(),(0,o.createVNode)(`div`,{class:`flex-1 min-h-0`},[f?.default?.({...b,width:M.value})]),(0,o.createVNode)(`div`,{class:`flex justify-between`},[(0,o.createVNode)(`div`,{class:`flex items-center gap-0.5`},[f?.bottom?.(),f?.tools?.(),(0,o.createVNode)(c.NPopselect,{options:oe.value,value:re.value,onUpdateValue:e=>{te(e)},multiple:!0,placement:`bottom-start`,trigger:`click`},{default:()=>[(0,o.createVNode)(c.NTooltip,null,{trigger:()=>(0,o.createVNode)(c.NButton,{quaternary:!0,circle:!0,"icon-placement":`right`},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:columns size-4`},null)}),default:()=>_(`components.list.columnSetting`)})]}),H.value.export&&(0,o.createVNode)(c.NTooltip,null,{trigger:()=>(0,o.createVNode)(c.NButton,{quaternary:!0,circle:!0,loading:E.value,onClick:k},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:database-export size-4`},null)}),default:()=>_(`components.button.export`)}),H.value.import&&(0,o.createVNode)(c.NTooltip,null,{trigger:()=>(0,o.createVNode)(c.NButton,{quaternary:!0,circle:!0,loading:O.value,onClick:ae},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:database-import size-4`},null)}),default:()=>_(`components.button.import`)}),H.value.refresh&&(0,o.createVNode)(c.NTooltip,null,{trigger:()=>(0,o.createVNode)(c.NButton,{quaternary:!0,circle:!0,onClick:T},{icon:()=>ie.value?(0,o.createVNode)(c.NProgress,{class:`size-4`,type:`circle`,percentage:w.value*10,strokeWidth:20,color:`rgba(var(--ui-color-primary))`},{default:()=>[(0,o.createVNode)(`span`,{class:`text-8px`},[w.value])]}):(0,o.createVNode)(`div`,{class:`i-tabler:refresh size-4`},null)}),default:()=>_(`components.button.autoRefresh`)})]),(0,o.createVNode)(`div`,null,[d.pagination&&(0,o.createVNode)(c.NPagination,(0,o.mergeProps)(S.value,{simple:j.value<768}),{prefix:()=>(0,o.createVNode)(`div`,null,[_(`components.list.total`,{total:b.total.value||0})])})])]),(0,o.createVNode)(a.DuxTableTools,{isLoading:b.isBatching.value,onBatch:b.onBatch,selecteds:C.value.checkedRowKeys,number:C.value.checkedRowKeys?.length||0,group:[[{icon:`i-tabler:x`,onClick:()=>{ne?.([])}}],[{label:_(`components.button.export`),icon:`i-tabler:file-export`,loading:D.value,onClick:A},...d.batchOptions||[]]]},null),(0,o.createVNode)(c.NDrawer,{show:N.show,onUpdateShow:e=>N.show=e,autoFocus:!1,placement:`left`},{default:()=>[(0,o.createVNode)(i.DuxDrawerPage,{title:d.sideLeftTitle||_(`components.button.sideLeft`),onClose:()=>N.show=!1,scrollbar:!1},{default:()=>[f?.sideLeft?.()]})]}),(0,o.createVNode)(c.NDrawer,{show:P.show,onUpdateShow:e=>P.show=e,autoFocus:!1,placement:`right`},{default:()=>[(0,o.createVNode)(i.DuxDrawerPage,{title:d.sideRightTitle||_(`components.button.sideRight`),onClose:()=>P.show=!1,scrollbar:!1},{default:()=>[f?.sideRight?.()]})]})])})}});exports.DuxTableLayout=d;
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`vue`),t=require(`@duxweb/dvha-core`),n=require(`naive-ui`),r=require(`vue-router`),i=require(`@duxweb/dvha-naiveui`);const a=(0,e.defineComponent)({name:`DuxPageTab`,setup(a){let{tabsProps:o,tabs:s}=(0,i.useNaiveTab)(),c=(0,e.ref)(),l=(0,t.useTabStore)(),u=(0,r.useRouter)(),{t:d}=(0,t.useI18n)(),f=(0,e.reactive)({x:0,y:0,visible:!1}),p=(0,e.ref)(),m=(t,n)=>{t.preventDefault(),f.visible=!1,(0,e.nextTick)().then(()=>{f.visible=!0,f.x=t.clientX,f.y=t.clientY,p.value=n})},h=()=>{f.visible=!1},g=[{label:d(`components.tab.lock`),key:`lock`},{label:d(`components.tab.closeOther`),key:`closeOther`},{label:d(`components.tab.closeLeft`),key:`closeLeft`},{label:d(`components.tab.closeRight`),key:`closeRight`}],_=e=>{switch(f.visible=!1,e){case`lock`:l.lockTab(p.value?.path||``);break;case`closeOther`:l.delOther(p.value?.path||``,()=>{u.push(p.value?.path||``)});break;case`closeLeft`:l.delLeft(p.value?.path||``,()=>{u.push(p.value?.path||``)});break;case`closeRight`:l.delRight(p.value?.path||``,()=>{u.push(p.value?.path||``)});break;default:break}};return()=>(0,e.createVNode)(e.Fragment,null,[(0,e.createVNode)(n.NTabs,(0,e.mergeProps)({ref:c,type:`card`,class:`app-page-tabs`,barWidth:100},o.value),{default:()=>s?.value?.map(t=>(0,e.createVNode)(n.NTab,{key:t.path,name:t.path||``,class:`shadow-xs my-2`},{default:()=>[(0,e.createVNode)(`div`,{class:`flex items-center gap-2 h-36px px-3`,onContextmenu:e=>m(e,t)},[(0,e.createVNode)(`div`,{class:`flex-1`},[t.label]),(0,e.createVNode)(`div`,{class:`flex items-center flex-none`},[t.meta?.lock?(0,e.createVNode)(`div`,{class:`i-tabler:pinned size-4`},null):(0,e.createVNode)(`div`,{onClick:()=>o.value?.onClose?.(t.path),class:`text-muted hover:text-primary cursor-pointer`},[(0,e.createVNode)(`div`,{class:`i-tabler:x size-4`},null)])])])]}))}),(0,e.createVNode)(n.NDropdown,{trigger:`manual`,x:f.x,y:f.y,show:f.visible,onClickoutside:h,options:g,onSelect:_},null)])}});exports.DuxPageTab=a;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`vue`),t=require(`@duxweb/dvha-core`),n=require(`naive-ui`),r=require(`vue-router`),i=require(`@duxweb/dvha-naiveui`);const a=(0,e.defineComponent)({name:`DuxPageTab`,setup(a){let{tabsProps:o,tabs:s}=(0,i.useNaiveTab)(),c=(0,e.ref)(),l=(0,t.useTabStore)(),u=(0,r.useRouter)(),{t:d}=(0,t.useI18n)(),f=(0,e.reactive)({x:0,y:0,visible:!1}),p=(0,e.ref)(),m=(t,n)=>{t.preventDefault(),f.visible=!1,(0,e.nextTick)().then(()=>{f.visible=!0,f.x=t.clientX,f.y=t.clientY,p.value=n})},h=()=>{f.visible=!1},g=[{label:d(`components.tab.lock`),key:`lock`},{label:d(`components.tab.closeOther`),key:`closeOther`},{label:d(`components.tab.closeLeft`),key:`closeLeft`},{label:d(`components.tab.closeRight`),key:`closeRight`}],_=e=>{switch(f.visible=!1,e){case`lock`:l.lockTab(p.value?.tabKey||p.value?.path||``);break;case`closeOther`:l.delOther(p.value?.tabKey||p.value?.path||``,()=>{u.push(p.value?.tabKey||p.value?.path||``)});break;case`closeLeft`:l.delLeft(p.value?.tabKey||p.value?.path||``,()=>{u.push(p.value?.tabKey||p.value?.path||``)});break;case`closeRight`:l.delRight(p.value?.tabKey||p.value?.path||``,()=>{u.push(p.value?.tabKey||p.value?.path||``)});break;default:break}};return()=>(0,e.createVNode)(e.Fragment,null,[(0,e.createVNode)(n.NTabs,(0,e.mergeProps)({ref:c,type:`card`,class:`app-page-tabs`,barWidth:100},o.value),{default:()=>s?.value?.map(t=>(0,e.createVNode)(n.NTab,{key:t.tabKey||t.path,name:t.tabKey||t.path||``,class:`shadow-xs my-2`},{default:()=>[(0,e.createVNode)(`div`,{class:`flex items-center gap-2 h-36px px-3`,onContextmenu:e=>m(e,t)},[(0,e.createVNode)(`div`,{class:`flex-1`},[t.label]),(0,e.createVNode)(`div`,{class:`flex items-center flex-none`},[t.meta?.lock?(0,e.createVNode)(`div`,{class:`i-tabler:pinned size-4`},null):(0,e.createVNode)(`div`,{onClick:()=>o.value?.onClose?.(t.tabKey||t.path),class:`text-muted hover:text-primary cursor-pointer`},[(0,e.createVNode)(`div`,{class:`i-tabler:x size-4`},null)])])])]}))}),(0,e.createVNode)(n.NDropdown,{trigger:`manual`,x:f.x,y:f.y,show:f.visible,onClickoutside:h,options:g,onSelect:_},null)])}});exports.DuxPageTab=a;
@@ -7,7 +7,7 @@ var e=`/* Source: /Volumes/Web/dux-vue/packages/pro/src/components/flowEditor/st
7
7
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.5);
8
8
  }
9
9
  /* layer: properties */
10
- @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*, ::before, ::after, ::backdrop{--un-text-opacity:100%;--un-bg-opacity:100%;--un-from-opacity:100%;--un-divide-y-reverse:initial;--un-border-style:solid;--un-space-y-reverse:initial;--un-divide-x-reverse:initial;--un-divide-opacity:100%;--un-shadow-opacity:100%;--un-border-opacity:100%;--un-translate-x:initial;--un-translate-y:initial;--un-translate-z:initial;--un-ease:initial;--un-to-opacity:100%;--un-outline-style:solid;--un-fill-opacity:100%;}}
10
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*, ::before, ::after, ::backdrop{--un-text-opacity:100%;--un-bg-opacity:100%;--un-from-opacity:100%;--un-space-y-reverse:initial;--un-divide-y-reverse:initial;--un-border-style:solid;--un-divide-x-reverse:initial;--un-divide-opacity:100%;--un-shadow-opacity:100%;--un-border-opacity:100%;--un-translate-x:initial;--un-translate-y:initial;--un-translate-z:initial;--un-ease:initial;--un-to-opacity:100%;--un-outline-style:solid;--un-fill-opacity:100%;}}
11
11
  @property --un-text-opacity{syntax:"<percentage>";inherits:false;initial-value:100%;}
12
12
  @property --un-outline-style{syntax:"*";inherits:false;initial-value:solid;}
13
13
  @property --un-border-opacity{syntax:"<percentage>";inherits:false;initial-value:100%;}
@@ -38,9 +38,9 @@ const m = /* @__PURE__ */ i({
38
38
  _.error(e.message || h("components.form.error")), i.onError?.(e);
39
39
  },
40
40
  onSuccess: (e) => {
41
- _.success(h("components.form.success")), i.onSuccess?.(e), !x.isEdit.value && y.current && y.delTab(y.current, (e) => v.push(e.path || "")), i.invalidate && b(i.invalidate);
41
+ _.success(h("components.form.success")), i.onSuccess?.(e), !x.isEdit.value && y.current && y.delTab(y.current, (e) => v.push(e.tabKey || e.path || "")), i.invalidate && b(i.invalidate);
42
42
  }
43
- }), S = y.tabs.find((e) => e.path === y.current);
43
+ }), S = y.tabs.find((e) => (e.tabKey || e.path) === y.current);
44
44
  return () => r(t, {
45
45
  card: !1,
46
46
  scrollbar: !1
@@ -36,7 +36,7 @@ const p = /* @__PURE__ */ r({
36
36
  g.error(e.message || m("components.form.error")), r.onError?.(e);
37
37
  },
38
38
  onSuccess: (e) => {
39
- g.success(m("components.form.success")), r.onSuccess?.(e), !b.isEdit.value && v.current && v.delTab(v.current, (e) => _.push(e.path || "")), r.invalidate && y(r.invalidate);
39
+ g.success(m("components.form.success")), r.onSuccess?.(e), !b.isEdit.value && v.current && v.delTab(v.current, (e) => _.push(e.tabKey || e.path || "")), r.invalidate && y(r.invalidate);
40
40
  }
41
41
  });
42
42
  return () => n(t, {
@@ -261,7 +261,7 @@ const b = /* @__PURE__ */ s({
261
261
  });
262
262
  }) && W(!0);
263
263
  }, { deep: !0 });
264
- let $ = a(() => Y.tabs.find((e) => e.path === Y.current)?.label);
264
+ let $ = a(() => Y.tabs.find((e) => (e.tabKey || e.path) === Y.current)?.label);
265
265
  return () => o(n, {
266
266
  actions: s.actions,
267
267
  scrollbar: !1
@@ -254,7 +254,7 @@ const S = /* @__PURE__ */ s({
254
254
  G.value?.syncBarPosition();
255
255
  });
256
256
  });
257
- let $ = ie(), je = $.tabs.find((e) => e.path === $.current), Me = a(() => {
257
+ let $ = ie(), je = $.tabs.find((e) => (e.tabKey || e.path) === $.current), Me = a(() => {
258
258
  let e = s.tabs?.map((e) => e.value) || [], t = C.value?.tab;
259
259
  return e.includes(t) ? t : e[0];
260
260
  });
@@ -36,21 +36,21 @@ const m = /* @__PURE__ */ n({
36
36
  ], T = (e) => {
37
37
  switch (b.visible = !1, e) {
38
38
  case "lock":
39
- _.lockTab(x.value?.path || "");
39
+ _.lockTab(x.value?.tabKey || x.value?.path || "");
40
40
  break;
41
41
  case "closeOther":
42
- _.delOther(x.value?.path || "", () => {
43
- v.push(x.value?.path || "");
42
+ _.delOther(x.value?.tabKey || x.value?.path || "", () => {
43
+ v.push(x.value?.tabKey || x.value?.path || "");
44
44
  });
45
45
  break;
46
46
  case "closeLeft":
47
- _.delLeft(x.value?.path || "", () => {
48
- v.push(x.value?.path || "");
47
+ _.delLeft(x.value?.tabKey || x.value?.path || "", () => {
48
+ v.push(x.value?.tabKey || x.value?.path || "");
49
49
  });
50
50
  break;
51
51
  case "closeRight":
52
- _.delRight(x.value?.path || "", () => {
53
- v.push(x.value?.path || "");
52
+ _.delRight(x.value?.tabKey || x.value?.path || "", () => {
53
+ v.push(x.value?.tabKey || x.value?.path || "");
54
54
  });
55
55
  break;
56
56
  default: break;
@@ -62,14 +62,14 @@ const m = /* @__PURE__ */ n({
62
62
  class: "app-page-tabs",
63
63
  barWidth: 100
64
64
  }, m.value), { default: () => h?.value?.map((e) => t(u, {
65
- key: e.path,
66
- name: e.path || "",
65
+ key: e.tabKey || e.path,
66
+ name: e.tabKey || e.path || "",
67
67
  class: "shadow-xs my-2"
68
68
  }, { default: () => [t("div", {
69
69
  class: "flex items-center gap-2 h-36px px-3",
70
70
  onContextmenu: (t) => S(t, e)
71
71
  }, [t("div", { class: "flex-1" }, [e.label]), t("div", { class: "flex items-center flex-none" }, [e.meta?.lock ? t("div", { class: "i-tabler:pinned size-4" }, null) : t("div", {
72
- onClick: () => m.value?.onClose?.(e.path),
72
+ onClick: () => m.value?.onClose?.(e.tabKey || e.path),
73
73
  class: "text-muted hover:text-primary cursor-pointer"
74
74
  }, [t("div", { class: "i-tabler:x size-4" }, null)])])])] })) }), t(l, {
75
75
  trigger: "manual",