@duxweb/dvha-pro 1.1.8 → 1.1.10

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
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),q=require("@duxweb/dvha-core"),H=require("@vueuse/core"),a=require("naive-ui"),Q=require("../../hooks/action.cjs");require("@overlastic/vue");require("clsx");require("vue-echarts");require("vue3-ace-editor");require("ace-builds/src-noconflict/mode-vue");require("ace-builds/src-noconflict/mode-javascript");require("ace-builds/src-noconflict/mode-html");require("ace-builds/src-noconflict/mode-json");require("ace-builds/src-noconflict/mode-json5");require("ace-builds/src-noconflict/theme-tomorrow_night");require("ace-builds/src-noconflict/theme-tomorrow");require("ace-builds/src-noconflict/ext-searchbox");require("ace-builds/src-noconflict/ext-language_tools");require("ace-builds/src-noconflict/mode-snippets");require("vue-cropper");require("jinrishici");require("lodash-es");require("vue-draggable-plus");const X=require("./filter.cjs");require("@vee-validate/i18n");require("colorizr");require("echarts");require("highlight.js/lib/core");require("highlight.js/lib/languages/bash");require("highlight.js/lib/languages/css");require("highlight.js/lib/languages/go");require("highlight.js/lib/languages/java");require("highlight.js/lib/languages/javascript");require("highlight.js/lib/languages/json");require("highlight.js/lib/languages/markdown");require("highlight.js/lib/languages/php");require("highlight.js/lib/languages/python");require("highlight.js/lib/languages/shell");require("highlight.js/lib/languages/sql");require("highlight.js/lib/languages/typescript");require("highlight.js/lib/languages/xml");require("@ant-design/colors");require("@unocss/preset-icons/browser");require("@unocss/preset-typography");require("unocss/preset-wind4");require("@vee-validate/i18n/dist/locale/en.json");require("@vee-validate/i18n/dist/locale/zh_CN.json");require("vee-validate");require("vue-router");require("vue-command-palette");require("@duxweb/dvha-naiveui");const Y=require("../../pages/page.cjs");require("../../pages/page404.cjs");const k=require("../drawer/drawerPage.cjs"),Z=require("./tools.cjs");require("short-unique-id");require("aieditor");require("@vue-flow/core");require("@vue-flow/background");;/* empty css */require("mime");require("@iconify-json/tabler/icons.json");require("../posterEditor/elements/index.cjs");require("fabric");require("dayjs");require("@tanstack/vue-query");const _=require("../../hooks/table.cjs");require("pinia");const ee=e.defineComponent({name:"DuxTableLayout",props:{path:{type:String,required:!0},filter:{type:Object},filterSchema:{type:Array},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(r,{slots:o,expose:O}){const n=e.toRef(r,"filter",{}),S=e.toRef(r,"sorter",{}),p=e.computed(()=>r.filterReactive||{}),T=e.toRef(r,"columns",[]),{t:u}=q.useI18n(),{renderAction:R}=Q.useAction(),l=e.reactive({...n.value||{}}),c=_.useTable({...r.hookTableProps,path:r.path,filters:l,sorters:S.value,columns:T,pagination:r.pagination});O(c);const{columns:y,tablePagination:j,table:m,onUpdateColumnSelected:C,onUpdateChecked:P,columnSelected:B,autoRefetch:z,autoCountdown:x,onAutoRefetch:L,isExporting:D,isExportingRows:J,isImporting:U,onExport:E,onExportRows:A,onImport:F}=c,I=e.computed(()=>y.value.filter(t=>"title"in t&&"key"in t).map(t=>({label:t.title,value:t.key}))),{width:d}=H.useWindowSize(),W=e.computed(()=>y.value.reduce((i,s)=>i+(Number(s?.width)||Number(s?.minWidth)||110),0)),f=e.reactive({show:!1}),b=e.reactive({show:!1}),g=e.ref(!1),K=e.computed(()=>(r.filterSchema||[]).map(t=>{const{label:i,...s}=t;return{tag:X.DuxTableFilter,attrs:{label:i},children:s}})),{render:M}=q.useJsonSchema({data:e.computed(()=>K.value)}),h=e.computed(()=>({import:!1,export:!0,refresh:!0,...r.tools})),V=e.ref(0),v=e.ref(null);e.watch(()=>r.tabs?.map(t=>t.value),()=>{const t=r.tabs?.map(i=>i.value)||[];if(n.value?.tab===void 0){const i=t[0];i!==void 0&&(n.value.tab=i)}e.nextTick(()=>v.value?.syncBarPosition())},{deep:!0}),e.watch(()=>d.value,()=>{e.nextTick(()=>{v.value?.syncBarPosition()})});const w=q.useTabStore(),$=w.tabs.find(t=>t.path===w.current),G=e.computed(()=>{const t=r.tabs?.map(s=>s.value)||[],i=n.value?.tab;return t.includes(i)?i:t[0]});return e.onMounted(()=>{e.nextTick(()=>{v.value?.syncBarPosition()})}),e.watch(()=>p.value,t=>{const i=t||{};Object.keys(i).forEach(s=>{const N=i[s];N==null||N===""?delete l[s]:l[s]=N}),c.onUpdatePage?.(1)},{deep:!0}),()=>e.createVNode(Y.DuxPage,{actions:r.actions,scrollbar:!1},{sideLeft:()=>o?.sideLeft&&d.value>=1024?o?.sideLeft?.():void 0,sideRight:()=>o?.sideRight&&d.value>=1024?o?.sideRight?.():void 0,default:()=>e.createVNode("div",{class:"flex flex-col gap-3 h-full relative"},[e.createVNode("div",{class:"flex gap-2 justify-between flex-row border-b border-muted"},[e.createVNode("div",{class:"relative top-1.5px"},[!r.tabs&&e.createVNode("div",{class:"pt-1 text-base"},[$?.label]),r.tabs&&e.createVNode(a.NTabs,{ref:v,type:"bar",size:"small",style:{"--n-tab-padding":"5px 20px 15px 20px","--n-tab-gap":"20px"},"default-value":r.tabs?.[0]?.value||"",value:G.value,onUpdateValue:t=>{n.value.tab=t,l.tab=t,e.nextTick(()=>v.value?.syncBarPosition())}},{default:()=>[r.tabs?.map(t=>e.createVNode(a.NTab,{name:t.value,tab:t.label},null))]})]),e.createVNode("div",{class:"flex gap-2 justify-end pb-2"},[o.actions?.(),r.actions?.length>0&&R({type:d.value<1024?"dropdown":"button",items:r.actions})])]),e.createVNode("div",{class:"flex gap-2 justify-between flex-col-reverse lg:flex-row"},[(d.value>=1024||g.value)&&e.createVNode("div",{class:["flex-1 flex flex-col lg:flex-row gap-2 flex-wrap"]},[e.createVNode("div",{key:V.value,class:"contents"},[e.h(M)])]),e.createVNode("div",{class:"flex justify-between gap-2"},[e.createVNode("div",{class:["flex gap-2"]},[o?.sideLeft&&d.value<1024&&e.createVNode(a.NButton,{class:"flex-none",secondary:!0,onClick:()=>{f.show=!f.show}},{icon:()=>e.createVNode("div",{class:"i-tabler:layout-sidebar-inactive size-4"},null)}),o?.sideRight&&d.value<1024&&e.createVNode(a.NButton,{class:"flex-none",secondary:!0,onClick:()=>{b.show=!b.show}},{icon:()=>e.createVNode("div",{class:"i-tabler:layout-sidebar-right-inactive size-4"},null)}),e.createVNode("div",{class:"flex-none lg:hidden"},[e.createVNode(a.NButton,{secondary:!0,onClick:()=>{g.value=!g.value}},{icon:()=>e.createVNode("div",{class:"i-tabler:filter size-4"},null)})])]),e.createVNode("div",{class:["flex gap-2 flex-row"]},[e.createVNode("div",{class:"flex lg:hidden"},[e.createVNode(a.NButton,{type:"primary",secondary:!0,onClick:()=>{Object.keys(l).forEach(t=>{delete l[t]}),Object.assign(l,JSON.parse(JSON.stringify(n.value||{}))),Object.assign(l,JSON.parse(JSON.stringify(p.value||{}))),c.onUpdatePage?.(1)}},{icon:()=>e.createVNode("div",{class:"i-tabler:search size-4"},null)})]),e.createVNode("div",{class:["hidden lg:flex gap-2"]},[e.createVNode(a.NButton,{type:"primary",secondary:!0,onClick:()=>{Object.keys(l).forEach(t=>delete l[t]),Object.assign(l,JSON.parse(JSON.stringify(n.value||{}))),Object.assign(l,JSON.parse(JSON.stringify(p.value||{}))),c.onUpdatePage?.(1)}},{icon:()=>e.createVNode("div",{class:"i-tabler:search size-4"},null),default:()=>u("components.button.search")}),e.createVNode(a.NButton,{secondary:!0,onClick:()=>{const t=n.value.tab;Object.keys(n.value||{}).forEach(i=>{i!=="tab"&&delete n.value[i]}),Object.keys(l).forEach(i=>{delete l[i]}),t!==void 0&&(l.tab=t),Object.assign(l,JSON.parse(JSON.stringify(p.value||{}))),c.onUpdatePage?.(1),V.value++}},{icon:()=>e.createVNode("div",{class:"i-tabler:arrow-back-up size-4"},null),default:()=>u("components.button.reset")})])])])]),o?.header?.(),e.createVNode("div",{class:"flex-1 min-h-0"},[o?.default?.({...c,width:W.value})]),e.createVNode("div",{class:"flex justify-between"},[e.createVNode("div",{class:"flex items-center gap-0.5"},[o?.bottom?.(),o?.tools?.(),e.createVNode(a.NPopselect,{options:I.value,value:B.value,onUpdateValue:t=>{C(t)},multiple:!0,placement:"bottom-start",trigger:"click"},{default:()=>[e.createVNode(a.NTooltip,null,{trigger:()=>e.createVNode(a.NButton,{quaternary:!0,circle:!0,"icon-placement":"right"},{icon:()=>e.createVNode("div",{class:"i-tabler:columns size-4"},null)}),default:()=>u("components.list.columnSetting")})]}),h.value.export&&e.createVNode(a.NTooltip,null,{trigger:()=>e.createVNode(a.NButton,{quaternary:!0,circle:!0,loading:D.value,onClick:E},{icon:()=>e.createVNode("div",{class:"i-tabler:database-export size-4"},null)}),default:()=>u("components.button.export")}),h.value.import&&e.createVNode(a.NTooltip,null,{trigger:()=>e.createVNode(a.NButton,{quaternary:!0,circle:!0,loading:U.value,onClick:F},{icon:()=>e.createVNode("div",{class:"i-tabler:database-import size-4"},null)}),default:()=>u("components.button.import")}),h.value.refresh&&e.createVNode(a.NTooltip,null,{trigger:()=>e.createVNode(a.NButton,{quaternary:!0,circle:!0,onClick:L},{icon:()=>z.value?e.createVNode(a.NProgress,{class:"size-4",type:"circle",percentage:x.value*10,strokeWidth:20,color:"rgba(var(--ui-color-primary))"},{default:()=>[e.createVNode("span",{class:"text-8px"},[x.value])]}):e.createVNode("div",{class:"i-tabler:refresh size-4"},null)}),default:()=>u("components.button.autoRefresh")})]),e.createVNode("div",null,[r.pagination&&e.createVNode(a.NPagination,e.mergeProps(j.value,{simple:d.value<768}),{prefix:()=>e.createVNode("div",null,[u("components.list.total",{total:c.total.value||0})])})])]),e.createVNode(Z.DuxTableTools,{isLoading:c.isBatching.value,onBatch:c.onBatch,selecteds:m.value.checkedRowKeys,number:m.value.checkedRowKeys?.length||0||0,group:[[{icon:"i-tabler:x",onClick:()=>{P?.([])}}],[{label:u("components.button.export"),icon:"i-tabler:file-export",loading:J.value,onClick:A},...r.batchOptions||[]]]},null),e.createVNode(a.NDrawer,{show:f.show,onUpdateShow:t=>f.show=t,autoFocus:!1,placement:"left"},{default:()=>[e.createVNode(k.DuxDrawerPage,{title:r.sideLeftTitle||u("components.button.sideLeft"),onClose:()=>f.show=!1,scrollbar:!1},{default:()=>[o?.sideLeft?.()]})]}),e.createVNode(a.NDrawer,{show:b.show,onUpdateShow:t=>b.show=t,autoFocus:!1,placement:"right"},{default:()=>[e.createVNode(k.DuxDrawerPage,{title:r.sideRightTitle||u("components.button.sideRight"),onClose:()=>b.show=!1,scrollbar:!1},{default:()=>[o?.sideRight?.()]})]})])})}});exports.DuxTableLayout=ee;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),q=require("@duxweb/dvha-core"),H=require("@vueuse/core"),a=require("naive-ui"),Q=require("../../hooks/action.cjs");require("@overlastic/vue");require("clsx");require("vue-echarts");require("vue3-ace-editor");require("ace-builds/src-noconflict/mode-vue");require("ace-builds/src-noconflict/mode-javascript");require("ace-builds/src-noconflict/mode-html");require("ace-builds/src-noconflict/mode-json");require("ace-builds/src-noconflict/mode-json5");require("ace-builds/src-noconflict/theme-tomorrow_night");require("ace-builds/src-noconflict/theme-tomorrow");require("ace-builds/src-noconflict/ext-searchbox");require("ace-builds/src-noconflict/ext-language_tools");require("ace-builds/src-noconflict/mode-snippets");require("vue-cropper");require("jinrishici");require("lodash-es");require("vue-draggable-plus");const X=require("./filter.cjs");require("@vee-validate/i18n");require("colorizr");require("echarts");require("highlight.js/lib/core");require("highlight.js/lib/languages/bash");require("highlight.js/lib/languages/css");require("highlight.js/lib/languages/go");require("highlight.js/lib/languages/java");require("highlight.js/lib/languages/javascript");require("highlight.js/lib/languages/json");require("highlight.js/lib/languages/markdown");require("highlight.js/lib/languages/php");require("highlight.js/lib/languages/python");require("highlight.js/lib/languages/shell");require("highlight.js/lib/languages/sql");require("highlight.js/lib/languages/typescript");require("highlight.js/lib/languages/xml");require("@ant-design/colors");require("@unocss/preset-icons/browser");require("@unocss/preset-typography");require("unocss/preset-wind4");require("@vee-validate/i18n/dist/locale/en.json");require("@vee-validate/i18n/dist/locale/zh_CN.json");require("vee-validate");require("vue-router");require("vue-command-palette");require("@duxweb/dvha-naiveui");const Y=require("../../pages/page.cjs");require("../../pages/page404.cjs");const k=require("../drawer/drawerPage.cjs"),Z=require("./tools.cjs");require("short-unique-id");require("aieditor");require("@vue-flow/core");require("@vue-flow/background");;/* empty css */require("mime");require("@iconify-json/tabler/icons.json");require("../posterEditor/elements/index.cjs");require("fabric");require("dayjs");require("@tanstack/vue-query");const _=require("../../hooks/table.cjs");require("pinia");const ee=e.defineComponent({name:"DuxTableLayout",props:{path:{type:String,required:!0},filter:{type:Object},filterSchema:{type:Array},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(r,{slots:o,expose:O}){const n=e.toRef(r,"filter",{}),S=e.toRef(r,"sorter",{}),p=e.computed(()=>r.filterReactive||{}),T=e.toRef(r,"columns",[]),{t:u}=q.useI18n(),{renderAction:R}=Q.useAction(),l=e.reactive({...n.value||{}}),c=_.useTable({...r.hookTableProps,path:r.path,filters:l,sorters:S.value,columns:T,pagination:r.pagination});O(c);const{columns:y,tablePagination:j,table:m,onUpdateColumnSelected:C,onUpdateChecked:P,columnSelected:B,autoRefetch:z,autoCountdown:x,onAutoRefetch:L,isExporting:D,isExportingRows:J,isImporting:U,onExport:E,onExportRows:A,onImport:F}=c,I=e.computed(()=>y.value.filter(t=>"title"in t&&"key"in t).map(t=>({label:t.title,value:t.key}))),{width:d}=H.useWindowSize(),W=e.computed(()=>y.value.reduce((i,s)=>i+(Number(s?.width)||Number(s?.minWidth)||110),0)),f=e.reactive({show:!1}),b=e.reactive({show:!1}),g=e.ref(!1),K=e.computed(()=>(r.filterSchema||[]).map(t=>{const{label:i,...s}=t;return{tag:X.DuxTableFilter,attrs:{label:i},children:s}})),{render:M}=q.useJsonSchema({data:e.computed(()=>K.value)}),h=e.computed(()=>({import:!1,export:!0,refresh:!0,...r.tools})),V=e.ref(0),v=e.ref(null);e.watch(()=>r.tabs?.map(t=>t.value),()=>{const t=r.tabs?.map(i=>i.value)||[];if(n.value?.tab===void 0){const i=t[0];i!==void 0&&(n.value.tab=i)}e.nextTick(()=>v.value?.syncBarPosition())},{deep:!0}),e.watch(()=>d.value,()=>{e.nextTick(()=>{v.value?.syncBarPosition()})});const w=q.useTabStore(),$=w.tabs.find(t=>t.path===w.current),G=e.computed(()=>{const t=r.tabs?.map(s=>s.value)||[],i=n.value?.tab;return t.includes(i)?i:t[0]});return e.onMounted(()=>{e.nextTick(()=>{v.value?.syncBarPosition()})}),e.watch(()=>p.value,t=>{const i=t||{};Object.keys(i).forEach(s=>{const N=i[s];N==null||N===""?delete l[s]:l[s]=N}),c.onUpdatePage?.(1)},{deep:!0}),()=>e.createVNode(Y.DuxPage,{actions:r.actions,scrollbar:!1},{sideLeft:()=>o?.sideLeft&&d.value>=1024?o?.sideLeft?.():void 0,sideRight:()=>o?.sideRight&&d.value>=1024?o?.sideRight?.():void 0,default:()=>e.createVNode("div",{class:"flex flex-col gap-3 h-full relative"},[e.createVNode("div",{class:"flex gap-2 justify-between flex-row border-b border-muted"},[e.createVNode("div",{class:"relative top-1.5px"},[!r.tabs&&e.createVNode("div",{class:"pb-4 pt-2 text-base"},[$?.label]),r.tabs&&e.createVNode(a.NTabs,{ref:v,type:"bar",size:"small",style:{"--n-tab-padding":"5px 20px 15px 20px","--n-tab-gap":"20px"},"default-value":r.tabs?.[0]?.value||"",value:G.value,onUpdateValue:t=>{n.value.tab=t,l.tab=t,e.nextTick(()=>v.value?.syncBarPosition())}},{default:()=>[r.tabs?.map(t=>e.createVNode(a.NTab,{name:t.value,tab:t.label},null))]})]),e.createVNode("div",{class:"flex gap-2 justify-end pb-2"},[o.actions?.(),r.actions?.length>0&&R({type:d.value<1024?"dropdown":"button",items:r.actions})])]),e.createVNode("div",{class:"flex gap-2 justify-between flex-col-reverse lg:flex-row"},[(d.value>=1024||g.value)&&e.createVNode("div",{class:["flex-1 flex flex-col lg:flex-row gap-2 flex-wrap"]},[e.createVNode("div",{key:V.value,class:"contents"},[e.h(M)])]),e.createVNode("div",{class:"flex justify-between gap-2"},[e.createVNode("div",{class:["flex gap-2"]},[o?.sideLeft&&d.value<1024&&e.createVNode(a.NButton,{class:"flex-none",secondary:!0,onClick:()=>{f.show=!f.show}},{icon:()=>e.createVNode("div",{class:"i-tabler:layout-sidebar-inactive size-4"},null)}),o?.sideRight&&d.value<1024&&e.createVNode(a.NButton,{class:"flex-none",secondary:!0,onClick:()=>{b.show=!b.show}},{icon:()=>e.createVNode("div",{class:"i-tabler:layout-sidebar-right-inactive size-4"},null)}),e.createVNode("div",{class:"flex-none lg:hidden"},[e.createVNode(a.NButton,{secondary:!0,onClick:()=>{g.value=!g.value}},{icon:()=>e.createVNode("div",{class:"i-tabler:filter size-4"},null)})])]),e.createVNode("div",{class:["flex gap-2 flex-row"]},[e.createVNode("div",{class:"flex lg:hidden"},[e.createVNode(a.NButton,{type:"primary",secondary:!0,onClick:()=>{Object.keys(l).forEach(t=>{delete l[t]}),Object.assign(l,JSON.parse(JSON.stringify(n.value||{}))),Object.assign(l,JSON.parse(JSON.stringify(p.value||{}))),c.onUpdatePage?.(1)}},{icon:()=>e.createVNode("div",{class:"i-tabler:search size-4"},null)})]),e.createVNode("div",{class:["hidden lg:flex gap-2"]},[e.createVNode(a.NButton,{type:"primary",secondary:!0,onClick:()=>{Object.keys(l).forEach(t=>delete l[t]),Object.assign(l,JSON.parse(JSON.stringify(n.value||{}))),Object.assign(l,JSON.parse(JSON.stringify(p.value||{}))),c.onUpdatePage?.(1)}},{icon:()=>e.createVNode("div",{class:"i-tabler:search size-4"},null),default:()=>u("components.button.search")}),e.createVNode(a.NButton,{secondary:!0,onClick:()=>{const t=n.value.tab;Object.keys(n.value||{}).forEach(i=>{i!=="tab"&&delete n.value[i]}),Object.keys(l).forEach(i=>{delete l[i]}),t!==void 0&&(l.tab=t),Object.assign(l,JSON.parse(JSON.stringify(p.value||{}))),c.onUpdatePage?.(1),V.value++}},{icon:()=>e.createVNode("div",{class:"i-tabler:arrow-back-up size-4"},null),default:()=>u("components.button.reset")})])])])]),o?.header?.(),e.createVNode("div",{class:"flex-1 min-h-0"},[o?.default?.({...c,width:W.value})]),e.createVNode("div",{class:"flex justify-between"},[e.createVNode("div",{class:"flex items-center gap-0.5"},[o?.bottom?.(),o?.tools?.(),e.createVNode(a.NPopselect,{options:I.value,value:B.value,onUpdateValue:t=>{C(t)},multiple:!0,placement:"bottom-start",trigger:"click"},{default:()=>[e.createVNode(a.NTooltip,null,{trigger:()=>e.createVNode(a.NButton,{quaternary:!0,circle:!0,"icon-placement":"right"},{icon:()=>e.createVNode("div",{class:"i-tabler:columns size-4"},null)}),default:()=>u("components.list.columnSetting")})]}),h.value.export&&e.createVNode(a.NTooltip,null,{trigger:()=>e.createVNode(a.NButton,{quaternary:!0,circle:!0,loading:D.value,onClick:E},{icon:()=>e.createVNode("div",{class:"i-tabler:database-export size-4"},null)}),default:()=>u("components.button.export")}),h.value.import&&e.createVNode(a.NTooltip,null,{trigger:()=>e.createVNode(a.NButton,{quaternary:!0,circle:!0,loading:U.value,onClick:F},{icon:()=>e.createVNode("div",{class:"i-tabler:database-import size-4"},null)}),default:()=>u("components.button.import")}),h.value.refresh&&e.createVNode(a.NTooltip,null,{trigger:()=>e.createVNode(a.NButton,{quaternary:!0,circle:!0,onClick:L},{icon:()=>z.value?e.createVNode(a.NProgress,{class:"size-4",type:"circle",percentage:x.value*10,strokeWidth:20,color:"rgba(var(--ui-color-primary))"},{default:()=>[e.createVNode("span",{class:"text-8px"},[x.value])]}):e.createVNode("div",{class:"i-tabler:refresh size-4"},null)}),default:()=>u("components.button.autoRefresh")})]),e.createVNode("div",null,[r.pagination&&e.createVNode(a.NPagination,e.mergeProps(j.value,{simple:d.value<768}),{prefix:()=>e.createVNode("div",null,[u("components.list.total",{total:c.total.value||0})])})])]),e.createVNode(Z.DuxTableTools,{isLoading:c.isBatching.value,onBatch:c.onBatch,selecteds:m.value.checkedRowKeys,number:m.value.checkedRowKeys?.length||0||0,group:[[{icon:"i-tabler:x",onClick:()=>{P?.([])}}],[{label:u("components.button.export"),icon:"i-tabler:file-export",loading:J.value,onClick:A},...r.batchOptions||[]]]},null),e.createVNode(a.NDrawer,{show:f.show,onUpdateShow:t=>f.show=t,autoFocus:!1,placement:"left"},{default:()=>[e.createVNode(k.DuxDrawerPage,{title:r.sideLeftTitle||u("components.button.sideLeft"),onClose:()=>f.show=!1,scrollbar:!1},{default:()=>[o?.sideLeft?.()]})]}),e.createVNode(a.NDrawer,{show:b.show,onUpdateShow:t=>b.show=t,autoFocus:!1,placement:"right"},{default:()=>[e.createVNode(k.DuxDrawerPage,{title:r.sideRightTitle||u("components.button.sideRight"),onClose:()=>b.show=!1,scrollbar:!1},{default:()=>[o?.sideRight?.()]})]})])})}});exports.DuxTableLayout=ee;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),u=require("@duxweb/dvha-core"),d=require("lodash-es"),t=require("naive-ui"),p=require("vue-router"),m=require("./avatar.cjs");require("@overlastic/vue");require("clsx");require("vue-echarts");require("@vueuse/core");require("vue3-ace-editor");require("ace-builds/src-noconflict/mode-vue");require("ace-builds/src-noconflict/mode-javascript");require("ace-builds/src-noconflict/mode-html");require("ace-builds/src-noconflict/mode-json");require("ace-builds/src-noconflict/mode-json5");require("ace-builds/src-noconflict/theme-tomorrow_night");require("ace-builds/src-noconflict/theme-tomorrow");require("ace-builds/src-noconflict/ext-searchbox");require("ace-builds/src-noconflict/ext-language_tools");require("ace-builds/src-noconflict/mode-snippets");require("vue-cropper");require("jinrishici");require("vue-draggable-plus");require("@vee-validate/i18n");require("colorizr");require("echarts");require("highlight.js/lib/core");require("highlight.js/lib/languages/bash");require("highlight.js/lib/languages/css");require("highlight.js/lib/languages/go");require("highlight.js/lib/languages/java");require("highlight.js/lib/languages/javascript");require("highlight.js/lib/languages/json");require("highlight.js/lib/languages/markdown");require("highlight.js/lib/languages/php");require("highlight.js/lib/languages/python");require("highlight.js/lib/languages/shell");require("highlight.js/lib/languages/sql");require("highlight.js/lib/languages/typescript");require("highlight.js/lib/languages/xml");require("@ant-design/colors");require("@unocss/preset-icons/browser");require("@unocss/preset-typography");require("unocss/preset-wind4");require("@vee-validate/i18n/dist/locale/en.json");require("@vee-validate/i18n/dist/locale/zh_CN.json");require("vee-validate");require("@duxweb/dvha-naiveui");require("../page404.cjs");require("short-unique-id");require("aieditor");require("@vue-flow/core");require("@vue-flow/background");;/* empty css */require("mime");require("@iconify-json/tabler/icons.json");require("../../components/posterEditor/elements/index.cjs");require("fabric");require("dayjs");require("@tanstack/vue-query");const y=require("../../hooks/ui.cjs");require("vue-command-palette");const M=require("./dark.cjs"),k=require("./notice.cjs"),C=e.defineComponent({name:"DuxMenuApp",props:{collapsed:{type:Boolean,default:!1}},setup(){const{setCmdVisible:q,setMenuCollapsed:f}=y.useUI(),{config:i}=u.useManage(),{t:v}=u.useI18n(),x=p.useRouter(),{mainMenu:h,subMenu:N,appActive:s,subActive:n,isSubMenu:V}=u.useMenu({doubleMenu:!0});e.onMounted(()=>{f(!1)});const o=r=>r.map(a=>{const l={...a,key:a.name,icon:a?.icon?()=>e.h("div",{class:`${a.icon} size-5`}):void 0,labelName:a.label,label:()=>a.path?e.h(p.RouterLink,{to:{path:a.path}},{default:()=>a.label}):a.label};return l.children&&l.children.length>0&&(l.children=o(l.children)),l}),g=e.computed(()=>o(d.cloneDeep(h.value))),b=e.computed(()=>o(d.cloneDeep(N.value)));return()=>e.createVNode("div",{class:"flex h-screen gap-2 pr-2"},[e.createVNode("div",{class:"bg-primary-950 dark:bg-gray-900 w-18 text-inverted z-1 border-r dark:border-muted"},[e.createVNode("div",{class:"h-full flex-none flex flex-col"},[e.createVNode("div",{class:"py-4 px-2 hidden lg:flex justify-center items-center"},[e.createVNode("div",{class:"bg-white dark:bg-primary-950 rounded-full p-2 shadow group-hover:shadow-lg"},[i.theme?.appLogo?e.createVNode("img",{class:"size-4",src:i.theme?.appLogo},null):e.createVNode(u.DuxLogoIcon,{highlight:"fill-primary",class:"size-4"},null)])]),e.createVNode("div",{class:"flex-1 min-h-0"},[e.createVNode(t.NScrollbar,null,{default:()=>[e.createVNode("div",{class:"flex flex-col px-2 gap-2"},[g.value.map((r,c)=>e.createVNode("div",{key:c,class:["flex flex-col gap-1 justify-center items-center py-1.5 cursor-pointer rounded transition-all",r.key===s.value?"bg-primary/50 text-primary-200":"text-white/60 hover:text-white"],onClick:()=>{s.value=r.key,r?.path&&x.push(r.path)}},[e.createVNode("div",null,[r.icon?.()]),e.createVNode("div",{class:"text-xs"},[typeof r.label=="function"?r.label?.():r.label])]))])]})]),e.createVNode("div",{class:"flex-none hidden lg:flex flex-col items-center gap-2 p-2"},[i.notice?.status&&e.createVNode(k.default,{collapsed:!0},null),e.createVNode(M.default,null,null),e.createVNode(m.default,{collapsed:!0},null)])])]),e.createVNode(e.Transition,{name:"submenu-slide",enterActiveClass:"transition-all duration-150 ease-out",enterFromClass:"opacity-0 translate-x-[-50%]",enterToClass:"opacity-100 translate-x-0",leaveActiveClass:"transition-all duration-150 ease-in",leaveFromClass:"opacity-100 translate-x-0",leaveToClass:"opacity-0 translate-x-[-50%]"},{default:()=>[V.value&&e.createVNode("div",null,[e.createVNode("div",{class:"w-160px overflow-hidden flex flex-col h-full"},[e.createVNode("div",{class:"py-2 flex-none"},[e.createVNode("div",{class:"rounded-md relative py-2 px-3 bg-white dark:bg-elevated shadow-xs hover:shadow flex items-center gap-2 cursor-pointer transition-all",onClick:()=>q(!0)},[e.createVNode("div",{class:"i-tabler:search size-4 icon-gradient"},null),e.createVNode("div",{class:"text-muted text-sm flex-1"},[v("common.search")]),e.createVNode("div",{class:"flex items-center gap-1 absolute right-2.5"},[e.createVNode(t.NTag,{size:"small",bordered:!1,type:"primary"},{default:()=>[e.createTextVNode("⌘")]}),e.createVNode(t.NTag,{size:"small",bordered:!1,type:"primary"},{default:()=>[e.createTextVNode("K")]})])])]),e.createVNode("div",{class:"flex-1 min-h-0"},[e.createVNode(t.NScrollbar,null,{default:()=>[e.createVNode(t.NMenu,{rootIndent:20,indent:15,class:"app-menu",options:b.value,value:n.value,collapsed:!1,onUpdateValue:r=>n.value=r},null)]})])])])]})])}});exports.DuxMenuApp=C;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),i=require("@duxweb/dvha-core"),p=require("lodash-es"),l=require("naive-ui"),q=require("vue-router"),y=require("./avatar.cjs");require("@overlastic/vue");require("clsx");require("vue-echarts");require("@vueuse/core");require("vue3-ace-editor");require("ace-builds/src-noconflict/mode-vue");require("ace-builds/src-noconflict/mode-javascript");require("ace-builds/src-noconflict/mode-html");require("ace-builds/src-noconflict/mode-json");require("ace-builds/src-noconflict/mode-json5");require("ace-builds/src-noconflict/theme-tomorrow_night");require("ace-builds/src-noconflict/theme-tomorrow");require("ace-builds/src-noconflict/ext-searchbox");require("ace-builds/src-noconflict/ext-language_tools");require("ace-builds/src-noconflict/mode-snippets");require("vue-cropper");require("jinrishici");require("vue-draggable-plus");require("@vee-validate/i18n");require("colorizr");require("echarts");require("highlight.js/lib/core");require("highlight.js/lib/languages/bash");require("highlight.js/lib/languages/css");require("highlight.js/lib/languages/go");require("highlight.js/lib/languages/java");require("highlight.js/lib/languages/javascript");require("highlight.js/lib/languages/json");require("highlight.js/lib/languages/markdown");require("highlight.js/lib/languages/php");require("highlight.js/lib/languages/python");require("highlight.js/lib/languages/shell");require("highlight.js/lib/languages/sql");require("highlight.js/lib/languages/typescript");require("highlight.js/lib/languages/xml");require("@ant-design/colors");require("@unocss/preset-icons/browser");require("@unocss/preset-typography");require("unocss/preset-wind4");require("@vee-validate/i18n/dist/locale/en.json");require("@vee-validate/i18n/dist/locale/zh_CN.json");require("vee-validate");require("@duxweb/dvha-naiveui");require("../page404.cjs");require("short-unique-id");require("aieditor");require("@vue-flow/core");require("@vue-flow/background");;/* empty css */require("mime");require("@iconify-json/tabler/icons.json");require("../../components/posterEditor/elements/index.cjs");require("fabric");require("dayjs");require("@tanstack/vue-query");const m=require("../../hooks/ui.cjs");require("vue-command-palette");const k=require("./dark.cjs"),w=require("./notice.cjs"),M=e.defineComponent({name:"DuxMenuApp",props:{collapsed:{type:Boolean,default:!1}},setup(){const{setCmdVisible:f,setMenuCollapsed:v}=m.useUI(),{config:u}=i.useManage(),{t:h}=i.useI18n(),n=q.useRouter(),{mainMenu:x,subMenu:N,appActive:s,subActive:c,isSubMenu:g}=i.useMenu({doubleMenu:!0});e.onMounted(()=>{v(!1)});const o=r=>r.map(a=>{const t={...a,key:a.name,icon:a?.icon?()=>e.h("div",{class:`${a.icon} size-5`}):void 0,labelName:a.label,label:()=>a.path?e.h(q.RouterLink,{to:{path:a.path}},{default:()=>a.label}):a.label};return t.children&&t.children.length>0&&(t.children=o(t.children)),t}),V=e.computed(()=>o(p.cloneDeep(x.value))),b=e.computed(()=>o(p.cloneDeep(N.value)));return()=>e.createVNode("div",{class:"flex h-screen gap-2 pr-2"},[e.createVNode("div",{class:"bg-primary-950 dark:bg-gray-900 w-18 text-inverted z-1 border-r dark:border-muted"},[e.createVNode("div",{class:"h-full flex-none flex flex-col"},[e.createVNode("div",{class:"py-4 px-2 hidden lg:flex justify-center items-center"},[e.createVNode("div",{class:"bg-white dark:bg-primary-950 rounded-full p-2 shadow group-hover:shadow-lg"},[u.theme?.appLogo?e.createVNode("img",{class:"size-4",src:u.theme?.appLogo},null):e.createVNode(i.DuxLogoIcon,{highlight:"fill-primary",class:"size-4"},null)])]),e.createVNode("div",{class:"flex-1 min-h-0"},[e.createVNode(l.NScrollbar,null,{default:()=>[e.createVNode("div",{class:"flex flex-col px-2 gap-2"},[V.value.map((r,d)=>e.createVNode("div",{key:d,class:["flex flex-col gap-1 justify-center items-center py-1.5 cursor-pointer rounded transition-all",r.key===s.value?"bg-primary/50 text-primary-200":"text-white/60 hover:text-white"],onClick:()=>{s.value=r.key,r?.path&&n.push(r.path)}},[e.createVNode("div",null,[r.icon?.()]),e.createVNode("div",{class:"text-xs"},[typeof r.label=="function"?r.label?.():r.label])]))])]})]),e.createVNode("div",{class:"flex-none hidden lg:flex flex-col items-center gap-2 p-2"},[u.tools?.map(r=>e.createVNode(l.NTooltip,{trigger:"hover",placement:"right"},{default:()=>r.label,trigger:()=>e.createVNode(l.NButton,{quaternary:!0,onClick:()=>{if(r.callback){r.callback();return}if(r.path){n.push(r.path);return}r.url&&window.open(r.url,"_blank")}},{icon:()=>e.createVNode("div",{class:"transition-all text-muted p-2 hover:text-white"},[e.createVNode("div",{class:`${r.icon} size-5`},null)])})})),u.notice?.status&&e.createVNode(w.default,{collapsed:!0},null),e.createVNode(k.default,null,null),e.createVNode(y.default,{collapsed:!0},null)])])]),e.createVNode(e.Transition,{name:"submenu-slide",enterActiveClass:"transition-all duration-150 ease-out",enterFromClass:"opacity-0 translate-x-[-50%]",enterToClass:"opacity-100 translate-x-0",leaveActiveClass:"transition-all duration-150 ease-in",leaveFromClass:"opacity-100 translate-x-0",leaveToClass:"opacity-0 translate-x-[-50%]"},{default:()=>[g.value&&e.createVNode("div",null,[e.createVNode("div",{class:"w-160px overflow-hidden flex flex-col h-full"},[e.createVNode("div",{class:"py-2 flex-none"},[e.createVNode("div",{class:"rounded-md relative py-2 px-3 bg-white dark:bg-elevated shadow-xs hover:shadow flex items-center gap-2 cursor-pointer transition-all",onClick:()=>f(!0)},[e.createVNode("div",{class:"i-tabler:search size-4 icon-gradient"},null),e.createVNode("div",{class:"text-muted text-sm flex-1"},[h("common.search")]),e.createVNode("div",{class:"flex items-center gap-1 absolute right-2.5"},[e.createVNode(l.NTag,{size:"small",bordered:!1,type:"primary"},{default:()=>[e.createTextVNode("⌘")]}),e.createVNode(l.NTag,{size:"small",bordered:!1,type:"primary"},{default:()=>[e.createTextVNode("K")]})])])]),e.createVNode("div",{class:"flex-1 min-h-0"},[e.createVNode(l.NScrollbar,null,{default:()=>[e.createVNode(l.NMenu,{rootIndent:20,indent:15,class:"app-menu",options:b.value,value:c.value,collapsed:!1,onUpdateValue:r=>c.value=r},null)]})])])])]})])}});exports.DuxMenuApp=M;
@@ -1,7 +1,7 @@
1
- import { defineComponent as te, toRef as O, computed as p, reactive as k, ref as S, watch as N, nextTick as h, onMounted as ae, createVNode as e, h as ie, mergeProps as le } from "vue";
1
+ import { defineComponent as te, toRef as O, computed as d, reactive as k, ref as S, watch as N, nextTick as h, onMounted as ae, createVNode as e, h as ie, mergeProps as le } from "vue";
2
2
  import { useI18n as oe, useJsonSchema as re, useTabStore as ne } from "@duxweb/dvha-core";
3
3
  import { useWindowSize as se } from "@vueuse/core";
4
- import { NTabs as ue, NTab as ce, NButton as c, NPopselect as de, NTooltip as y, NProgress as pe, NPagination as me, NDrawer as z } from "naive-ui";
4
+ import { NTabs as ue, NTab as ce, NButton as c, NPopselect as pe, NTooltip as y, NProgress as de, NPagination as me, NDrawer as z } from "naive-ui";
5
5
  import { useAction as fe } from "../../hooks/action.js";
6
6
  import "@overlastic/vue";
7
7
  import "clsx";
@@ -125,7 +125,7 @@ const Jt = /* @__PURE__ */ te({
125
125
  slots: o,
126
126
  expose: J
127
127
  }) {
128
- const r = O(a, "filter", {}), U = O(a, "sorter", {}), v = p(() => a.filterReactive || {}), B = O(a, "columns", []), {
128
+ const r = O(a, "filter", {}), U = O(a, "sorter", {}), v = d(() => a.filterReactive || {}), B = O(a, "columns", []), {
129
129
  t: n
130
130
  } = oe(), {
131
131
  renderAction: E
@@ -156,16 +156,16 @@ const Jt = /* @__PURE__ */ te({
156
156
  onExport: G,
157
157
  onExportRows: H,
158
158
  onImport: Q
159
- } = s, X = p(() => R.value.filter((t) => "title" in t && "key" in t).map((t) => ({
159
+ } = s, X = d(() => R.value.filter((t) => "title" in t && "key" in t).map((t) => ({
160
160
  label: t.title,
161
161
  value: t.key
162
162
  }))), {
163
- width: d
164
- } = se(), Y = p(() => R.value.reduce((i, u) => i + (Number(u?.width) || Number(u?.minWidth) || 110), 0)), m = k({
163
+ width: p
164
+ } = se(), Y = d(() => R.value.reduce((i, u) => i + (Number(u?.width) || Number(u?.minWidth) || 110), 0)), m = k({
165
165
  show: !1
166
166
  }), f = k({
167
167
  show: !1
168
- }), x = S(!1), Z = p(() => (a.filterSchema || []).map((t) => {
168
+ }), x = S(!1), Z = d(() => (a.filterSchema || []).map((t) => {
169
169
  const {
170
170
  label: i,
171
171
  ...u
@@ -180,8 +180,8 @@ const Jt = /* @__PURE__ */ te({
180
180
  })), {
181
181
  render: _
182
182
  } = re({
183
- data: p(() => Z.value)
184
- }), w = p(() => ({
183
+ data: d(() => Z.value)
184
+ }), w = d(() => ({
185
185
  import: !1,
186
186
  export: !0,
187
187
  refresh: !0,
@@ -196,12 +196,12 @@ const Jt = /* @__PURE__ */ te({
196
196
  h(() => b.value?.syncBarPosition());
197
197
  }, {
198
198
  deep: !0
199
- }), N(() => d.value, () => {
199
+ }), N(() => p.value, () => {
200
200
  h(() => {
201
201
  b.value?.syncBarPosition();
202
202
  });
203
203
  });
204
- const P = ne(), $ = P.tabs.find((t) => t.path === P.current), ee = p(() => {
204
+ const P = ne(), $ = P.tabs.find((t) => t.path === P.current), ee = d(() => {
205
205
  const t = a.tabs?.map((u) => u.value) || [], i = r.value?.tab;
206
206
  return t.includes(i) ? i : t[0];
207
207
  });
@@ -221,8 +221,8 @@ const Jt = /* @__PURE__ */ te({
221
221
  actions: a.actions,
222
222
  scrollbar: !1
223
223
  }, {
224
- sideLeft: () => o?.sideLeft && d.value >= 1024 ? o?.sideLeft?.() : void 0,
225
- sideRight: () => o?.sideRight && d.value >= 1024 ? o?.sideRight?.() : void 0,
224
+ sideLeft: () => o?.sideLeft && p.value >= 1024 ? o?.sideLeft?.() : void 0,
225
+ sideRight: () => o?.sideRight && p.value >= 1024 ? o?.sideRight?.() : void 0,
226
226
  default: () => e("div", {
227
227
  class: "flex flex-col gap-3 h-full relative"
228
228
  }, [e("div", {
@@ -230,7 +230,7 @@ const Jt = /* @__PURE__ */ te({
230
230
  }, [e("div", {
231
231
  class: "relative top-1.5px"
232
232
  }, [!a.tabs && e("div", {
233
- class: "pt-1 text-base"
233
+ class: "pb-4 pt-2 text-base"
234
234
  }, [$?.label]), a.tabs && e(ue, {
235
235
  ref: b,
236
236
  type: "bar",
@@ -252,11 +252,11 @@ const Jt = /* @__PURE__ */ te({
252
252
  })]), e("div", {
253
253
  class: "flex gap-2 justify-end pb-2"
254
254
  }, [o.actions?.(), a.actions?.length > 0 && E({
255
- type: d.value < 1024 ? "dropdown" : "button",
255
+ type: p.value < 1024 ? "dropdown" : "button",
256
256
  items: a.actions
257
257
  })])]), e("div", {
258
258
  class: "flex gap-2 justify-between flex-col-reverse lg:flex-row"
259
- }, [(d.value >= 1024 || x.value) && e("div", {
259
+ }, [(p.value >= 1024 || x.value) && e("div", {
260
260
  class: ["flex-1 flex flex-col lg:flex-row gap-2 flex-wrap"]
261
261
  }, [e("div", {
262
262
  key: T.value,
@@ -265,7 +265,7 @@ const Jt = /* @__PURE__ */ te({
265
265
  class: "flex justify-between gap-2"
266
266
  }, [e("div", {
267
267
  class: ["flex gap-2"]
268
- }, [o?.sideLeft && d.value < 1024 && e(c, {
268
+ }, [o?.sideLeft && p.value < 1024 && e(c, {
269
269
  class: "flex-none",
270
270
  secondary: !0,
271
271
  onClick: () => {
@@ -275,7 +275,7 @@ const Jt = /* @__PURE__ */ te({
275
275
  icon: () => e("div", {
276
276
  class: "i-tabler:layout-sidebar-inactive size-4"
277
277
  }, null)
278
- }), o?.sideRight && d.value < 1024 && e(c, {
278
+ }), o?.sideRight && p.value < 1024 && e(c, {
279
279
  class: "flex-none",
280
280
  secondary: !0,
281
281
  onClick: () => {
@@ -349,7 +349,7 @@ const Jt = /* @__PURE__ */ te({
349
349
  class: "flex justify-between"
350
350
  }, [e("div", {
351
351
  class: "flex items-center gap-0.5"
352
- }, [o?.bottom?.(), o?.tools?.(), e(de, {
352
+ }, [o?.bottom?.(), o?.tools?.(), e(pe, {
353
353
  options: X.value,
354
354
  value: q.value,
355
355
  onUpdateValue: (t) => {
@@ -401,7 +401,7 @@ const Jt = /* @__PURE__ */ te({
401
401
  circle: !0,
402
402
  onClick: W
403
403
  }, {
404
- icon: () => I.value ? e(pe, {
404
+ icon: () => I.value ? e(de, {
405
405
  class: "size-4",
406
406
  type: "circle",
407
407
  percentage: C.value * 10,
@@ -417,7 +417,7 @@ const Jt = /* @__PURE__ */ te({
417
417
  }),
418
418
  default: () => n("components.button.autoRefresh")
419
419
  })]), e("div", null, [a.pagination && e(me, le(A.value, {
420
- simple: d.value < 768
420
+ simple: p.value < 768
421
421
  }), {
422
422
  prefix: () => e("div", null, [n("components.list.total", {
423
423
  total: s.total.value || 0
@@ -1,9 +1,9 @@
1
- import { defineComponent as C, onMounted as D, computed as p, createVNode as e, Transition as z, createTextVNode as u, h as m } from "vue";
2
- import { useManage as A, useI18n as N, useMenu as T, DuxLogoIcon as I } from "@duxweb/dvha-core";
1
+ import { defineComponent as C, onMounted as N, computed as u, createVNode as e, Transition as z, createTextVNode as m, h as c } from "vue";
2
+ import { useManage as D, useI18n as A, useMenu as T, DuxLogoIcon as I } from "@duxweb/dvha-core";
3
3
  import { cloneDeep as d } from "lodash-es";
4
- import { NScrollbar as c, NTag as f, NMenu as L } from "naive-ui";
5
- import { useRouter as V, RouterLink as j } from "vue-router";
6
- import F from "./avatar.js";
4
+ import { NScrollbar as f, NTooltip as L, NButton as V, NTag as v, NMenu as j } from "naive-ui";
5
+ import { useRouter as B, RouterLink as F } from "vue-router";
6
+ import O from "./avatar.js";
7
7
  import "@overlastic/vue";
8
8
  import "clsx";
9
9
  import "vue-echarts";
@@ -59,11 +59,11 @@ import "../../components/posterEditor/elements/index.js";
59
59
  import "fabric";
60
60
  import "dayjs";
61
61
  import "@tanstack/vue-query";
62
- import { useUI as O } from "../../hooks/ui.js";
62
+ import { useUI as R } from "../../hooks/ui.js";
63
63
  import "vue-command-palette";
64
- import R from "./dark.js";
65
- import S from "./notice.js";
66
- const We = /* @__PURE__ */ C({
64
+ import S from "./dark.js";
65
+ import U from "./notice.js";
66
+ const Xe = /* @__PURE__ */ C({
67
67
  name: "DuxMenuApp",
68
68
  props: {
69
69
  collapsed: {
@@ -73,33 +73,33 @@ const We = /* @__PURE__ */ C({
73
73
  },
74
74
  setup() {
75
75
  const {
76
- setCmdVisible: v,
77
- setMenuCollapsed: x
78
- } = O(), {
76
+ setCmdVisible: x,
77
+ setMenuCollapsed: h
78
+ } = R(), {
79
79
  config: l
80
- } = A(), {
81
- t: h
82
- } = N(), g = V(), {
80
+ } = D(), {
81
+ t: g
82
+ } = A(), i = B(), {
83
83
  mainMenu: b,
84
84
  subMenu: y,
85
- appActive: a,
85
+ appActive: n,
86
86
  subActive: s,
87
- isSubMenu: M
87
+ isSubMenu: k
88
88
  } = T({
89
89
  doubleMenu: !0
90
90
  });
91
- D(() => {
92
- x(!1);
91
+ N(() => {
92
+ h(!1);
93
93
  });
94
- const i = (t) => t.map((r) => {
94
+ const a = (t) => t.map((r) => {
95
95
  const o = {
96
96
  ...r,
97
97
  key: r.name,
98
- icon: r?.icon ? () => m("div", {
98
+ icon: r?.icon ? () => c("div", {
99
99
  class: `${r.icon} size-5`
100
100
  }) : void 0,
101
101
  labelName: r.label,
102
- label: () => r.path ? m(j, {
102
+ label: () => r.path ? c(F, {
103
103
  to: {
104
104
  path: r.path
105
105
  }
@@ -107,8 +107,8 @@ const We = /* @__PURE__ */ C({
107
107
  default: () => r.label
108
108
  }) : r.label
109
109
  };
110
- return o.children && o.children.length > 0 && (o.children = i(o.children)), o;
111
- }), k = p(() => i(d(b.value))), w = p(() => i(d(y.value)));
110
+ return o.children && o.children.length > 0 && (o.children = a(o.children)), o;
111
+ }), M = u(() => a(d(b.value))), w = u(() => a(d(y.value)));
112
112
  return () => e("div", {
113
113
  class: "flex h-screen gap-2 pr-2"
114
114
  }, [e("div", {
@@ -127,23 +127,48 @@ const We = /* @__PURE__ */ C({
127
127
  class: "size-4"
128
128
  }, null)])]), e("div", {
129
129
  class: "flex-1 min-h-0"
130
- }, [e(c, null, {
130
+ }, [e(f, null, {
131
131
  default: () => [e("div", {
132
132
  class: "flex flex-col px-2 gap-2"
133
- }, [k.value.map((t, n) => e("div", {
134
- key: n,
135
- class: ["flex flex-col gap-1 justify-center items-center py-1.5 cursor-pointer rounded transition-all", t.key === a.value ? "bg-primary/50 text-primary-200" : "text-white/60 hover:text-white"],
133
+ }, [M.value.map((t, p) => e("div", {
134
+ key: p,
135
+ class: ["flex flex-col gap-1 justify-center items-center py-1.5 cursor-pointer rounded transition-all", t.key === n.value ? "bg-primary/50 text-primary-200" : "text-white/60 hover:text-white"],
136
136
  onClick: () => {
137
- a.value = t.key, t?.path && g.push(t.path);
137
+ n.value = t.key, t?.path && i.push(t.path);
138
138
  }
139
139
  }, [e("div", null, [t.icon?.()]), e("div", {
140
140
  class: "text-xs"
141
141
  }, [typeof t.label == "function" ? t.label?.() : t.label])]))])]
142
142
  })]), e("div", {
143
143
  class: "flex-none hidden lg:flex flex-col items-center gap-2 p-2"
144
- }, [l.notice?.status && e(S, {
144
+ }, [l.tools?.map((t) => e(L, {
145
+ trigger: "hover",
146
+ placement: "right"
147
+ }, {
148
+ default: () => t.label,
149
+ trigger: () => e(V, {
150
+ quaternary: !0,
151
+ onClick: () => {
152
+ if (t.callback) {
153
+ t.callback();
154
+ return;
155
+ }
156
+ if (t.path) {
157
+ i.push(t.path);
158
+ return;
159
+ }
160
+ t.url && window.open(t.url, "_blank");
161
+ }
162
+ }, {
163
+ icon: () => e("div", {
164
+ class: "transition-all text-muted p-2 hover:text-white"
165
+ }, [e("div", {
166
+ class: `${t.icon} size-5`
167
+ }, null)])
168
+ })
169
+ })), l.notice?.status && e(U, {
145
170
  collapsed: !0
146
- }, null), e(R, null, null), e(F, {
171
+ }, null), e(S, null, null), e(O, {
147
172
  collapsed: !0
148
173
  }, null)])])]), e(z, {
149
174
  name: "submenu-slide",
@@ -154,35 +179,35 @@ const We = /* @__PURE__ */ C({
154
179
  leaveFromClass: "opacity-100 translate-x-0",
155
180
  leaveToClass: "opacity-0 translate-x-[-50%]"
156
181
  }, {
157
- default: () => [M.value && e("div", null, [e("div", {
182
+ default: () => [k.value && e("div", null, [e("div", {
158
183
  class: "w-160px overflow-hidden flex flex-col h-full"
159
184
  }, [e("div", {
160
185
  class: "py-2 flex-none"
161
186
  }, [e("div", {
162
187
  class: "rounded-md relative py-2 px-3 bg-white dark:bg-elevated shadow-xs hover:shadow flex items-center gap-2 cursor-pointer transition-all",
163
- onClick: () => v(!0)
188
+ onClick: () => x(!0)
164
189
  }, [e("div", {
165
190
  class: "i-tabler:search size-4 icon-gradient"
166
191
  }, null), e("div", {
167
192
  class: "text-muted text-sm flex-1"
168
- }, [h("common.search")]), e("div", {
193
+ }, [g("common.search")]), e("div", {
169
194
  class: "flex items-center gap-1 absolute right-2.5"
170
- }, [e(f, {
195
+ }, [e(v, {
171
196
  size: "small",
172
197
  bordered: !1,
173
198
  type: "primary"
174
199
  }, {
175
- default: () => [u("⌘")]
176
- }), e(f, {
200
+ default: () => [m("⌘")]
201
+ }), e(v, {
177
202
  size: "small",
178
203
  bordered: !1,
179
204
  type: "primary"
180
205
  }, {
181
- default: () => [u("K")]
206
+ default: () => [m("K")]
182
207
  })])])]), e("div", {
183
208
  class: "flex-1 min-h-0"
184
- }, [e(c, null, {
185
- default: () => [e(L, {
209
+ }, [e(f, null, {
210
+ default: () => [e(j, {
186
211
  rootIndent: 20,
187
212
  indent: 15,
188
213
  class: "app-menu",
@@ -196,5 +221,5 @@ const We = /* @__PURE__ */ C({
196
221
  }
197
222
  });
198
223
  export {
199
- We as DuxMenuApp
224
+ Xe as DuxMenuApp
200
225
  };
@@ -1,4 +1,4 @@
1
- import { PropType } from 'vue';
1
+ import type { PropType } from 'vue';
2
2
  export declare const DuxFilterLayout: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
3
3
  showLabel: {
4
4
  type: BooleanConstructor;
@@ -9,6 +9,14 @@ import './theme/style.scss';
9
9
  export declare function createDuxPro(): {
10
10
  install(app: App): void;
11
11
  };
12
+ interface ITool {
13
+ label: string;
14
+ icon: string;
15
+ path?: string;
16
+ url?: string;
17
+ callback?: () => void;
18
+ [key: string]: any;
19
+ }
12
20
  declare module '@duxweb/dvha-core' {
13
21
  interface IManage {
14
22
  upload?: {
@@ -32,5 +40,7 @@ declare module '@duxweb/dvha-core' {
32
40
  readField?: string;
33
41
  urlField?: string;
34
42
  };
43
+ tools?: ITool[];
35
44
  }
36
45
  }
46
+ export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@duxweb/dvha-pro",
3
3
  "type": "module",
4
- "version": "1.1.8",
4
+ "version": "1.1.10",
5
5
  "author": "DuxWeb",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -33,8 +33,8 @@
33
33
  ],
34
34
  "dependencies": {
35
35
  "@ant-design/colors": "^7.2.1",
36
- "@duxweb/dvha-core": "^1.1.8",
37
- "@duxweb/dvha-naiveui": "^1.1.8",
36
+ "@duxweb/dvha-core": "^1.1.10",
37
+ "@duxweb/dvha-naiveui": "^1.1.10",
38
38
  "@iconify-json/tabler": "^1.2.18",
39
39
  "@overlastic/vue": "^0.8.1",
40
40
  "@tanstack/vue-query": "^5.80.7",