@lumal/core 0.0.1-beta → 0.0.3-beta

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.
Files changed (86) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/LICENSE +21 -21
  3. package/README.md +22 -13
  4. package/dist/auth.cjs +1 -1
  5. package/dist/auth.js +13 -29
  6. package/dist/components-DCp2KGvo.js +2254 -0
  7. package/dist/components-oqKxhgFp.cjs +2 -0
  8. package/dist/components.cjs +1 -1
  9. package/dist/components.js +3 -3
  10. package/dist/{composables-C9EuCUjj.js → composables-BxZG0_RZ.js} +53 -40
  11. package/dist/composables-Dsl-todB.cjs +1 -0
  12. package/dist/composables.cjs +1 -1
  13. package/dist/composables.js +18 -17
  14. package/dist/context-Bdx-ZJbt.js +13 -0
  15. package/dist/context-CWQ1OO16.cjs +1 -0
  16. package/dist/core.css +1 -1
  17. package/dist/createLumalApp-BxQL77Qt.js +38 -0
  18. package/dist/createLumalApp-C5o7gAlu.cjs +1 -0
  19. package/dist/{dictionary-B7tsaVqB.js → dictionary-DnRiNaKi.js} +1 -1
  20. package/dist/{dictionary-ClEWtQCU.cjs → dictionary-Dt70z10M.cjs} +1 -1
  21. package/dist/dictionary.cjs +1 -1
  22. package/dist/dictionary.js +3 -3
  23. package/dist/index.cjs +1 -1
  24. package/dist/index.js +15 -58
  25. package/dist/{layout-C8H9wuQa.js → layout-B7yJhQXN.js} +473 -429
  26. package/dist/layout-BgyM9WJi.cjs +1 -0
  27. package/dist/layout.cjs +1 -1
  28. package/dist/layout.js +1 -1
  29. package/dist/minimal.cjs +1 -0
  30. package/dist/minimal.js +10 -0
  31. package/dist/{permission-CCkqvnWg.js → permission-CHw9eXd8.js} +24 -34
  32. package/dist/permission-CoqteYAi.cjs +1 -0
  33. package/dist/permission.cjs +1 -1
  34. package/dist/permission.js +4 -3
  35. package/dist/request.cjs +1 -1
  36. package/dist/request.js +103 -80
  37. package/dist/router.cjs +1 -1
  38. package/dist/router.js +24 -21
  39. package/dist/src/app/createLumalAdmin.d.ts +1 -1
  40. package/dist/src/app/createLumalAdmin.d.ts.map +1 -1
  41. package/dist/src/app/createLumalApp.d.ts +7 -0
  42. package/dist/src/app/createLumalApp.d.ts.map +1 -0
  43. package/dist/src/app/types.d.ts +5 -0
  44. package/dist/src/app/types.d.ts.map +1 -1
  45. package/dist/src/auth/createAuthSession.d.ts.map +1 -1
  46. package/dist/src/components/crud-table/LumalCrudTable.vue.d.ts.map +1 -1
  47. package/dist/src/components/crud-table/useCrudData.d.ts.map +1 -1
  48. package/dist/src/components/crud-table/useCrudDialog.d.ts +1 -1
  49. package/dist/src/components/crud-table/useCrudDialog.d.ts.map +1 -1
  50. package/dist/src/components/schema-form/LumalSchemaForm.vue.d.ts.map +1 -1
  51. package/dist/src/components/schema-table/LumalSchemaTable.vue.d.ts.map +1 -1
  52. package/dist/src/components/schema-table/cell.d.ts +1 -1
  53. package/dist/src/components/schema-table/cell.d.ts.map +1 -1
  54. package/dist/src/composables/usePagination.d.ts.map +1 -1
  55. package/dist/src/dictionary/index.d.ts +1 -1
  56. package/dist/src/dictionary/index.d.ts.map +1 -1
  57. package/dist/src/dictionary/normalize.d.ts +3 -1
  58. package/dist/src/dictionary/normalize.d.ts.map +1 -1
  59. package/dist/src/dictionary/store.d.ts.map +1 -1
  60. package/dist/src/layout/LumalGlobalSearch.vue.d.ts.map +1 -1
  61. package/dist/src/layout/LumalLayout.vue.d.ts +6 -2
  62. package/dist/src/layout/LumalLayout.vue.d.ts.map +1 -1
  63. package/dist/src/layout/LumalRouterView.vue.d.ts +2 -0
  64. package/dist/src/layout/LumalRouterView.vue.d.ts.map +1 -1
  65. package/dist/src/layout/LumalTabs.vue.d.ts.map +1 -1
  66. package/dist/src/minimal/index.d.ts +5 -0
  67. package/dist/src/minimal/index.d.ts.map +1 -0
  68. package/dist/src/request/client.d.ts.map +1 -1
  69. package/dist/src/request/types.d.ts +8 -2
  70. package/dist/src/request/types.d.ts.map +1 -1
  71. package/dist/src/router/index.d.ts.map +1 -1
  72. package/dist/src/utils/index.d.ts +1 -1
  73. package/dist/src/utils/index.d.ts.map +1 -1
  74. package/dist/src/utils/storage.d.ts +2 -0
  75. package/dist/src/utils/storage.d.ts.map +1 -1
  76. package/dist/storage-CCBa7Qh8.cjs +1 -0
  77. package/dist/storage-CorgkMJU.js +41 -0
  78. package/dist/utils.cjs +1 -1
  79. package/dist/utils.js +32 -54
  80. package/package.json +9 -3
  81. package/theme-chalk/index.scss +2 -2
  82. package/dist/components-DJiHYQQB.cjs +0 -2
  83. package/dist/components-DYmKh-eF.js +0 -2206
  84. package/dist/composables-C4twj5Ov.cjs +0 -1
  85. package/dist/layout-ZnyG9X3N.cjs +0 -1
  86. package/dist/permission-6sXtjGMS.cjs +0 -1
@@ -1 +0,0 @@
1
- let e=require("vue");function t(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function n(e,t){return Object.hasOwn(e,t)}function r(e,t){return t?e[t]:void 0}function i(e){return typeof e==`boolean`||typeof e==`number`||typeof e==`string`?e:e==null?``:String(e)}function a(e,a={}){if(!t(e))return;let s=a.label??`label`,c=a.value??`value`,l=a.disabled??`disabled`,u=a.children??`children`,d=a.color??`color`,f=i(r(e,c)),p=r(e,s),m=r(e,u),h=Array.isArray(m)?o(m,a):void 0,g={label:String(p??f),value:f};return n(e,l)&&(g.disabled=!!r(e,l)),typeof r(e,d)==`string`&&(g.color=String(r(e,d))),h?.length&&(g.children=h),t(e.meta)&&(g.meta=e.meta),g}function o(e,t={}){return e.map(e=>a(e,t)).filter(e=>!!e)}function s(e,n={},r){if(n.parseResponse)return o(n.parseResponse(e,r),n.fieldNames);if(!t(e))return[];let i=e[n.fieldNames?.items??`items`];return Array.isArray(i)?o(i,n.fieldNames):[]}function c(e,t){if(t==null)return`-`;let n=Array.isArray(t)?t:[t];return n.length===0?`-`:n.map(t=>e.find(e=>String(e.value)===String(t))?.label??String(t)).join(`, `)}function l(e,t){return c(e,t)}function u(e){return e instanceof Error?e.message:String(e)}function d(t={}){let n=(0,e.reactive)({}),r=(0,e.reactive)({}),i=(0,e.reactive)({}),a=new Map;function o(e,t){e&&(n[e]=t)}async function c(e){if(!e)return[];if(Object.hasOwn(n,e))return n[e]??[];let c=a.get(e);if(c)return c;if(!t.fetcher)return o(e,[]),[];r[e]=!0,i[e]=null;let l=t.fetcher(e).then(n=>{let r=s(n,t,e);return o(e,r),r}).catch(t=>{throw i[e]=u(t),t}).finally(()=>{r[e]=!1,a.delete(e)});return a.set(e,l),l}function l(e){delete n[e],delete r[e],delete i[e]}function d(){Object.keys(n).forEach(e=>delete n[e]),Object.keys(r).forEach(e=>delete r[e]),Object.keys(i).forEach(e=>delete i[e]),a.clear()}return{clearDictionary:d,errors:i,loadDictionary:c,loading:r,records:n,removeDictionary:l,setDictionary:o}}var f=Symbol(`lumal-dictionary-context`),p=null;function m(e){p=e}function h(){return p}function g(t=!1){let n=(0,e.inject)(f,p);if(!n&&!t)throw Error(`Lumal dictionary context is not installed.`);return n}function _(t){p=t,(0,e.provide)(f,t)}function v(e,t={}){let n={store:d(t)};return m(n),e.provide(f,n),n}function y(e){return Array.from(new Set(e.filter(e=>!!e)))}function b(...e){return x(()=>e).dictionaryRefs}function x(t){let n=g(!0),r={};return(0,e.watch)(()=>y(t()),t=>{t.forEach(t=>{r[t]||(r[t]=(0,e.computed)(()=>n?.store.records[t]??[])),n?.store.loadDictionary(t).catch(()=>[])})},{immediate:!0}),{dictionaryMap:(0,e.computed)(()=>Object.fromEntries(y(t()).map(e=>[e,n?.store.records[e]??[]]))),dictionaryRefs:r}}function S(e){return h()?.store.records[e]??[]}function C(e,t){return l(S(e),t)}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return f}});
@@ -1 +0,0 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=require("./_plugin-vue_export-helper-BTmtiIyf.cjs");let l=require("vue"),u=require("@lumal/icons-vue"),d=require("element-plus"),f=require("vue-router"),p=require("sortablejs");p=s(p,1);function m(e,t){return e.hidden?!1:e.path===t?!0:e.children?.some(e=>m(e,t))??!1}function h(e,t){for(let n of e){if(n.hidden)continue;if(n.path===t)return n;let e=h(n.children??[],t);if(e)return e}}function g(e,t){for(let n of e){if(n.hidden)continue;if(n.path===t)return[n];let e=g(n.children??[],t);if(e.length>0)return[n,...e]}return[]}function _(e){if(!e)return``;if(e.redirect)return e.redirect;let t=e.children?.filter(e=>!e.hidden)??[];return t.length===0?e.path:_(t[0])}function v(e,t){return e.find(e=>m(e,t))?.path??``}function y(e){let{activeTopMenuPath:t=``,layout:n}=e,r=e.menus.filter(e=>!e.hidden);return n===`sidebar-nav`?{sidebarMenus:r,topMenus:[]}:n===`top-nav`?{sidebarMenus:[],topMenus:r}:{sidebarMenus:(r.find(e=>e.path===t)??r.find(e=>m(e,t)))?.children?.filter(e=>!e.hidden)??[],topMenus:r}}var b={key:0,class:`lumal-breadcrumb`,"aria-label":`面包屑`},x={class:`lumal-breadcrumb__list`},S={key:1,class:`lumal-breadcrumb__current`,"aria-current":`page`},C=[`onClick`],w=(0,l.defineComponent)({__name:`LumalBreadcrumb`,props:{activeMenuPath:{default:``},activePath:{default:``},hideOnlyOne:{type:Boolean,default:!1},homePath:{default:``},homeTitle:{default:`首页`},menus:{default:()=>[]},showHome:{type:Boolean,default:!0},showIcon:{type:Boolean,default:!0}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,i=(0,l.inject)(f.routeLocationKey,void 0);function a(e){return{icon:e.icon,path:e.path,title:e.title}}let o=(0,l.computed)(()=>{let e=i?.matched??[];return e.flatMap((t,n)=>{let r=typeof t.meta.title==`string`?t.meta.title.trim():``;if(!r||t.meta.hideInBreadcrumb===!0)return[];let a=n===e.length-1;return[{icon:typeof t.meta.icon==`string`?t.meta.icon:void 0,path:a?i?.path??t.path:t.path,title:r}]})}),s=(0,l.computed)(()=>{let e=g(n.menus,n.activePath),t=(e.length>0?e:g(n.menus,n.activeMenuPath)).map(a),r=typeof i?.meta.title==`string`?i.meta.title:``,o=typeof i?.meta.icon==`string`?i.meta.icon:void 0,s=i?.meta.hideInBreadcrumb===!0;return s&&t.at(-1)?.path===n.activePath&&t.pop(),r&&!s&&n.activePath&&n.activePath===i?.path&&!t.some(e=>e.path===n.activePath)&&t.push({icon:o,path:n.activePath,title:r}),t}),c=(0,l.computed)(()=>o.value.length>0?o.value:s.value),d=(0,l.computed)(()=>{let e=n.homePath?g(n.menus,n.homePath).at(-1):void 0,t=n.menus.find(e=>!e.hidden),r=n.homePath||_(t);if(r)return{icon:e?.icon??t?.icon,path:r,title:e?.title??n.homeTitle}}),p=(0,l.computed)(()=>{let e=[...c.value],t=d.value;return n.showHome&&t&&!e.some(e=>e.path===t.path)&&e.unshift(t),e}),m=(0,l.computed)(()=>p.value.length>0&&!(n.hideOnlyOne&&c.value.length<=1));return(t,n)=>m.value?((0,l.openBlock)(),(0,l.createElementBlock)(`nav`,b,[(0,l.createElementVNode)(`ol`,x,[((0,l.openBlock)(!0),(0,l.createElementBlock)(l.Fragment,null,(0,l.renderList)(p.value,(t,n)=>((0,l.openBlock)(),(0,l.createElementBlock)(`li`,{key:`${t.path}:${n}`,class:`lumal-breadcrumb__item`},[n>0?((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(u.LumalIcon),{key:0,class:`lumal-breadcrumb__separator`,name:`lumal:chevron-right`,size:14})):(0,l.createCommentVNode)(``,!0),n===p.value.length-1?((0,l.openBlock)(),(0,l.createElementBlock)(`span`,S,[e.showIcon&&t.icon?((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(u.LumalIcon),{key:0,name:t.icon,size:15},null,8,[`name`])):(0,l.createCommentVNode)(``,!0),(0,l.createElementVNode)(`span`,null,(0,l.toDisplayString)(t.title),1)])):((0,l.openBlock)(),(0,l.createElementBlock)(`button`,{key:2,class:`lumal-breadcrumb__link`,type:`button`,onClick:e=>r(`select`,t.path)},[e.showIcon&&t.icon?((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(u.LumalIcon),{key:0,name:t.icon,size:15},null,8,[`name`])):(0,l.createCommentVNode)(``,!0),(0,l.createElementVNode)(`span`,null,(0,l.toDisplayString)(t.title),1)],8,C))]))),128))])])):(0,l.createCommentVNode)(``,!0)}}),T=c.t(w,[[`__scopeId`,`data-v-53a036d9`]]),ee=(0,l.defineComponent)({__name:`LumalContent`,setup(e,{expose:t}){let n=(0,l.useTemplateRef)(`contentRef`);return t({getContentElement:()=>n.value?.$el,getContentInstance:()=>n.value}),(e,t)=>((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(d.ElMain),{ref_key:`contentRef`,ref:n,class:`lumal-content`},{default:(0,l.withCtx)(()=>[(0,l.renderSlot)(e.$slots,`default`,{},void 0,!0)]),_:3},512))}}),E=c.t(ee,[[`__scopeId`,`data-v-50b337c5`]]),te={class:`lumal-global-search`},D={key:0},O=[`aria-labelledby`],ne={class:`lumal-global-search__header`},re=[`id`],k={class:`lumal-global-search__input-wrap`},A=[`aria-activedescendant`,`aria-controls`,`placeholder`],j=[`id`],M=[`id`,`aria-selected`],N=[`onMouseenter`,`onClick`],P={key:0,class:`lumal-global-search__empty`,role:`status`},F=`<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="11" cy="11" r="7" stroke="currentColor" stroke-width="1.8"/><path d="m16.2 16.2 4 4" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/></svg>`,ie=(0,l.defineComponent)({__name:`LumalGlobalSearch`,props:{maxResults:{default:12},menus:{default:()=>[]},placeholder:{default:`搜索菜单`},shortcut:{type:Boolean,default:!0}},emits:[`select`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=`lumal-global-search-${(0,l.useId)()}`,o=(0,l.useTemplateRef)(`inputRef`),s=(0,l.useTemplateRef)(`triggerRef`),c=(0,l.ref)(!1),d=(0,l.ref)(``),f=(0,l.ref)(0);function p(e,t=[]){return e.flatMap(e=>{if(e.hidden)return[];let n=[...t,e.title];return[{item:e,trail:n},...p(e.children??[],n)]})}let m=(0,l.computed)(()=>p(r.menus)),h=(0,l.computed)(()=>{let e=d.value.trim().toLocaleLowerCase();return(e?m.value.filter(({item:t,trail:n})=>`${n.join(` `)} ${t.path}`.toLocaleLowerCase().includes(e)):m.value).slice(0,Math.max(1,r.maxResults))}),g=(0,l.computed)(()=>h.value[f.value]?`${a}-option-${f.value}`:void 0);function _(){c.value=!0,d.value=``,f.value=0,(0,l.nextTick)(()=>o.value?.focus())}function v(e=!0){c.value=!1,e&&(0,l.nextTick)(()=>s.value?.focus())}function y(e){e&&(i(`select`,e.item.path,e.item),v())}function b(e){if(e.key===`Escape`){e.preventDefault(),v();return}if(h.value.length!==0){if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault();let t=e.key===`ArrowDown`?1:-1;f.value=(f.value+t+h.value.length)%h.value.length;return}e.key===`Enter`&&(e.preventDefault(),y(h.value[f.value]))}}function x(e){!r.shortcut||e.altKey||e.shiftKey||e.key.toLocaleLowerCase()!==`k`||!e.ctrlKey&&!e.metaKey||(e.preventDefault(),c.value?v(!1):_())}return(0,l.watch)(h,()=>{f.value=0}),(0,l.onMounted)(()=>{window.addEventListener(`keydown`,x)}),(0,l.onBeforeUnmount)(()=>{window.removeEventListener(`keydown`,x)}),t({close:v,open:_}),(t,n)=>((0,l.openBlock)(),(0,l.createElementBlock)(`div`,te,[(0,l.createElementVNode)(`button`,{ref_key:`triggerRef`,ref:s,class:`lumal-global-search__trigger`,type:`button`,"aria-label":`打开全局搜索`,title:`全局搜索`,onClick:_},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{icon:F,size:17}),n[3]||=(0,l.createElementVNode)(`span`,{class:`lumal-global-search__trigger-label`},`搜索`,-1),e.shortcut?((0,l.openBlock)(),(0,l.createElementBlock)(`kbd`,D,`Ctrl K`)):(0,l.createCommentVNode)(``,!0)],512),((0,l.openBlock)(),(0,l.createBlock)(l.Teleport,{to:`body`},[c.value?((0,l.openBlock)(),(0,l.createElementBlock)(`div`,{key:0,class:`lumal-global-search__backdrop`,onMousedown:n[2]||=(0,l.withModifiers)(e=>v(),[`self`])},[(0,l.createElementVNode)(`section`,{class:`lumal-global-search__dialog`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`${a}-title`},[(0,l.createElementVNode)(`header`,ne,[(0,l.createElementVNode)(`h2`,{id:`${a}-title`},` 全局搜索 `,8,re),(0,l.createElementVNode)(`button`,{type:`button`,"aria-label":`关闭全局搜索`,title:`关闭`,onClick:n[0]||=e=>v()},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:`lumal:close`,size:17})])]),(0,l.createElementVNode)(`label`,k,[n[4]||=(0,l.createElementVNode)(`span`,{class:`lumal-global-search__sr-only`},`搜索菜单`,-1),(0,l.createVNode)((0,l.unref)(u.LumalIcon),{icon:F,size:18}),(0,l.withDirectives)((0,l.createElementVNode)(`input`,{ref_key:`inputRef`,ref:o,"onUpdate:modelValue":n[1]||=e=>d.value=e,role:`combobox`,autocomplete:`off`,"aria-activedescendant":g.value,"aria-autocomplete":`list`,"aria-controls":`${a}-results`,"aria-expanded":`true`,placeholder:e.placeholder,onKeydown:b},null,40,A),[[l.vModelText,d.value]])]),(0,l.createElementVNode)(`ul`,{id:`${a}-results`,class:`lumal-global-search__results`,role:`listbox`},[((0,l.openBlock)(!0),(0,l.createElementBlock)(l.Fragment,null,(0,l.renderList)(h.value,(e,t)=>((0,l.openBlock)(),(0,l.createElementBlock)(`li`,{id:`${a}-option-${t}`,key:e.item.path,role:`option`,"aria-selected":t===f.value},[(0,l.createElementVNode)(`button`,{type:`button`,class:(0,l.normalizeClass)({"is-active":t===f.value}),onMouseenter:e=>f.value=t,onClick:t=>y(e)},[e.item.icon?((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(u.LumalIcon),{key:0,name:e.item.icon,size:18},null,8,[`name`])):(0,l.createCommentVNode)(``,!0),(0,l.createElementVNode)(`span`,null,[(0,l.createElementVNode)(`strong`,null,(0,l.toDisplayString)(e.item.title),1),(0,l.createElementVNode)(`small`,null,(0,l.toDisplayString)(e.trail.join(` / `)),1)]),(0,l.createElementVNode)(`code`,null,(0,l.toDisplayString)(e.item.path),1)],42,N)],8,M))),128))],8,j),h.value.length===0?((0,l.openBlock)(),(0,l.createElementBlock)(`p`,P,` 未找到匹配菜单,请尝试其他关键词 `)):(0,l.createCommentVNode)(``,!0)],8,O)],32)):(0,l.createCommentVNode)(``,!0)]))]))}}),ae=c.t(ie,[[`__scopeId`,`data-v-a433539f`]]),I={class:`lumal-header__left`},L={key:0,class:`lumal-header__title`},R={key:0,class:`lumal-header__breadcrumb`},z={key:1,class:`lumal-header__navigation`,"aria-label":`主导航`},B={key:2,class:`lumal-header__actions`},V=(0,l.defineComponent)({__name:`LumalHeader`,props:{title:{},collapsed:{type:Boolean,default:!1},height:{default:`50px`},mobileOnlyToggle:{type:Boolean,default:!1},sidebarEnabled:{type:Boolean,default:!0},toggleAfterTitle:{type:Boolean,default:!1}},emits:[`toggleCollapse`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=(0,l.useTemplateRef)(`headerRef`),o=(0,l.computed)(()=>r.collapsed?`展开侧边栏`:`收起侧边栏`);function s(){i(`toggleCollapse`)}return t({getHeaderElement:()=>a.value?.$el,getHeaderInstance:()=>a.value}),(t,n)=>((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(d.ElHeader),{ref_key:`headerRef`,ref:a,class:`lumal-header`,height:e.height},{default:(0,l.withCtx)(()=>[(0,l.createElementVNode)(`div`,I,[(0,l.renderSlot)(t.$slots,`logo`,{},()=>[e.title?((0,l.openBlock)(),(0,l.createElementBlock)(`span`,L,(0,l.toDisplayString)(e.title),1)):(0,l.createCommentVNode)(``,!0)],!0),e.sidebarEnabled?((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(d.ElButton),{key:0,class:(0,l.normalizeClass)([`lumal-header__toggle`,{"is-after-title":e.toggleAfterTitle,"is-mobile-only":e.mobileOnlyToggle}]),text:``,"aria-label":o.value,"data-action":`toggle-sidebar`,onClick:s},{default:(0,l.withCtx)(()=>[...n[0]||=[(0,l.createElementVNode)(`svg`,{"aria-hidden":`true`,viewBox:`0 0 24 24`},[(0,l.createElementVNode)(`path`,{d:`M4 7h16M4 12h16M4 17h16`})],-1)]]),_:1},8,[`class`,`aria-label`])):(0,l.createCommentVNode)(``,!0)]),t.$slots.breadcrumb?((0,l.openBlock)(),(0,l.createElementBlock)(`div`,R,[(0,l.renderSlot)(t.$slots,`breadcrumb`,{},void 0,!0)])):(0,l.createCommentVNode)(``,!0),t.$slots.navigation?((0,l.openBlock)(),(0,l.createElementBlock)(`nav`,z,[(0,l.renderSlot)(t.$slots,`navigation`,{},void 0,!0)])):(0,l.createCommentVNode)(``,!0),t.$slots.actions?((0,l.openBlock)(),(0,l.createElementBlock)(`div`,B,[(0,l.renderSlot)(t.$slots,`actions`,{},void 0,!0)])):(0,l.createCommentVNode)(``,!0)]),_:3},8,[`height`]))}}),oe=c.t(V,[[`__scopeId`,`data-v-e9574860`]]),H=[`aria-label`],U={key:0,"aria-hidden":`true`},W=(0,l.defineComponent)({__name:`LumalMenuBadge`,props:{badge:{default:``},label:{default:`菜单`},tone:{default:`primary`},type:{default:`text`}},setup(e){let t=e,n=(0,l.computed)(()=>t.type===`dot`||t.badge===0||!!t.badge),r=(0,l.computed)(()=>t.type===`dot`?`${t.label}有新内容`:`${t.label}:${t.badge}`);return(t,i)=>n.value?((0,l.openBlock)(),(0,l.createElementBlock)(`span`,{key:0,class:(0,l.normalizeClass)([`lumal-menu-badge`,[`is-${e.tone}`,{"is-dot":e.type===`dot`}]]),role:`status`,"aria-label":r.value},[e.type===`text`?((0,l.openBlock)(),(0,l.createElementBlock)(`span`,U,(0,l.toDisplayString)(e.badge),1)):(0,l.createCommentVNode)(``,!0)],10,H)):(0,l.createCommentVNode)(``,!0)}}),G=c.t(W,[[`__scopeId`,`data-v-0ca73e4b`]]),K={key:0,class:`lumal-sidebar-menu-item__icon`,"aria-hidden":`true`},q={class:`lumal-sidebar-menu-item__label`},J={class:`lumal-sidebar-menu-item__title`},Y={key:1,class:`lumal-sidebar-menu-item__external`,"aria-hidden":`true`},X=[`title`],se={key:0,class:`lumal-sidebar-menu-item__icon`,"aria-hidden":`true`},ce={class:`lumal-sidebar-menu-item__label`},le={class:`lumal-sidebar-menu-item__title`},Z={key:0,class:`lumal-sidebar-menu-item__icon`,"aria-hidden":`true`},Q={class:`lumal-sidebar-menu-item__label`},ue={class:`lumal-sidebar-menu-item__title`},de={key:1,class:`lumal-sidebar-menu-item__external`,"aria-hidden":`true`},fe=(0,l.defineComponent)({__name:`LumalSidebarMenuItem`,props:{activePath:{},collapsed:{type:Boolean},depth:{},item:{}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,i=(0,l.computed)(()=>n.item.children?.filter(e=>!e.hidden)??[]),a=(0,l.computed)(()=>i.value.length>0),o=(0,l.computed)(()=>!!n.item.externalLink&&n.item.externalTarget!==`_self`);function s(e){r(`select`,e)}return(t,n)=>{let r=(0,l.resolveComponent)(`LumalSidebarMenuItem`,!0);return a.value?((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(d.ElSubMenu),{key:0,class:`lumal-sidebar-menu-item`,index:e.item.path,title:e.collapsed?e.item.title:void 0},{title:(0,l.withCtx)(()=>[e.item.icon?((0,l.openBlock)(),(0,l.createElementBlock)(`i`,K,[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:e.item.icon,size:16},null,8,[`name`])])):(0,l.createCommentVNode)(``,!0),(0,l.createElementVNode)(`span`,q,[(0,l.createElementVNode)(`span`,J,(0,l.toDisplayString)(e.item.title),1),(0,l.createVNode)(G,{badge:e.item.badge,label:e.item.title,tone:e.item.badgeTone,type:e.item.badgeType},null,8,[`badge`,`label`,`tone`,`type`])]),e.item.externalLink?((0,l.openBlock)(),(0,l.createElementBlock)(`span`,Y,`↗`)):(0,l.createCommentVNode)(``,!0)]),default:(0,l.withCtx)(()=>[((0,l.openBlock)(!0),(0,l.createElementBlock)(l.Fragment,null,(0,l.renderList)(i.value,t=>((0,l.openBlock)(),(0,l.createBlock)(r,{key:t.path,item:t,"active-path":e.activePath,collapsed:e.collapsed,depth:(e.depth??0)+1,onSelect:s},null,8,[`item`,`active-path`,`collapsed`,`depth`]))),128))]),_:1},8,[`index`,`title`])):o.value?((0,l.openBlock)(),(0,l.createElementBlock)(`li`,{key:1,class:`el-menu-item lumal-sidebar-menu-item lumal-sidebar-menu-item--external`,role:`menuitem`,tabindex:`-1`,title:e.collapsed?e.item.title:void 0,onClick:n[0]||=t=>s(e.item.path)},[e.item.icon?((0,l.openBlock)(),(0,l.createElementBlock)(`i`,se,[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:e.item.icon,size:16},null,8,[`name`])])):(0,l.createCommentVNode)(``,!0),(0,l.createElementVNode)(`span`,ce,[(0,l.createElementVNode)(`span`,le,(0,l.toDisplayString)(e.item.title),1),(0,l.createVNode)(G,{badge:e.item.badge,label:e.item.title,tone:e.item.badgeTone,type:e.item.badgeType},null,8,[`badge`,`label`,`tone`,`type`])]),n[2]||=(0,l.createElementVNode)(`span`,{class:`lumal-sidebar-menu-item__external`,"aria-hidden":`true`},`↗`,-1)],8,X)):((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(d.ElMenuItem),{key:2,class:`lumal-sidebar-menu-item`,index:e.item.path,title:e.collapsed?e.item.title:void 0,onClick:n[1]||=t=>s(e.item.path)},{default:(0,l.withCtx)(()=>[e.item.icon?((0,l.openBlock)(),(0,l.createElementBlock)(`i`,Z,[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:e.item.icon,size:16},null,8,[`name`])])):(0,l.createCommentVNode)(``,!0),(0,l.createElementVNode)(`span`,Q,[(0,l.createElementVNode)(`span`,ue,(0,l.toDisplayString)(e.item.title),1),(0,l.createVNode)(G,{badge:e.item.badge,label:e.item.title,tone:e.item.badgeTone,type:e.item.badgeType},null,8,[`badge`,`label`,`tone`,`type`])]),e.item.externalLink?((0,l.openBlock)(),(0,l.createElementBlock)(`span`,de,`↗`)):(0,l.createCommentVNode)(``,!0)]),_:1},8,[`index`,`title`]))}}}),pe=c.t(fe,[[`__scopeId`,`data-v-a5f8c946`]]),$=(0,l.defineComponent)({__name:`LumalSidebar`,props:{menus:{default:()=>[]},activePath:{default:``},ariaLabel:{default:`侧边导航`},collapsed:{type:Boolean,default:!1},width:{default:`280px`},collapsedWidth:{default:`64px`}},emits:[`select`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=(0,l.useTemplateRef)(`asideRef`),o=(0,l.computed)(()=>r.collapsed?r.collapsedWidth:r.width);function s(e){i(`select`,e)}return t({getAsideElement:()=>a.value?.$el,getAsideInstance:()=>a.value}),(t,n)=>((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(d.ElAside),{ref_key:`asideRef`,ref:a,class:`lumal-sidebar`,width:o.value,"aria-label":e.ariaLabel},{default:(0,l.withCtx)(()=>[(0,l.createVNode)((0,l.unref)(d.ElScrollbar),{class:`lumal-sidebar__scrollbar`},{default:(0,l.withCtx)(()=>[(0,l.createVNode)((0,l.unref)(d.ElMenu),{class:`lumal-sidebar__menu`,collapse:e.collapsed,"default-active":e.activePath},{default:(0,l.withCtx)(()=>[((0,l.openBlock)(!0),(0,l.createElementBlock)(l.Fragment,null,(0,l.renderList)(e.menus.filter(e=>!e.hidden),t=>((0,l.openBlock)(),(0,l.createBlock)(pe,{key:t.path,item:t,"active-path":e.activePath,collapsed:e.collapsed,depth:0,onSelect:s},null,8,[`item`,`active-path`,`collapsed`]))),128))]),_:1},8,[`collapse`,`default-active`])]),_:1})]),_:1},8,[`width`,`aria-label`]))}}),me=c.t($,[[`__scopeId`,`data-v-59a9bda5`]]),he=[`disabled`],ge=[`onContextmenu`],_e=[`aria-selected`,`tabindex`,`onClick`,`onKeydown`,`onMousedown`],ve=[`title`],ye=[`aria-label`,`onClick`],be=[`disabled`],xe=[`disabled`],Se=[`aria-expanded`],Ce=[`aria-label`],we=[`disabled`],Te=[`disabled`],Ee=[`disabled`],De=[`disabled`],Oe=[`disabled`],ke=[`disabled`],Ae=[`disabled`],je=[`disabled`],Me=[`disabled`],Ne=192,Pe=220,Fe=(0,l.defineComponent)({__name:`LumalTabs`,props:(0,l.mergeModels)({activePath:{default:``},draggable:{type:Boolean,default:!0},fullscreenTarget:{default:`[data-layout-fullscreen-target]`},middleClickToClose:{type:Boolean,default:!0},showIcon:{type:Boolean,default:!0},showMaximize:{type:Boolean,default:!0},showMore:{type:Boolean,default:!0},showRefresh:{type:Boolean,default:!0},styleType:{default:`chrome`},tabs:{default:()=>[]},visible:{type:Boolean,default:!0},wheelable:{type:Boolean,default:!0},standaloneMaximize:{type:Boolean,default:!1}},{activePath:{default:``},activePathModifiers:{}}),emits:(0,l.mergeModels)([`change`,`closeAll`,`closeLeft`,`closeOthers`,`closeRight`,`maximize`,`newWindow`,`pin`,`refresh`,`remove`,`reorder`],[`update:activePath`]),setup(e,{expose:t,emit:n}){let r=e,i=n,a=(0,l.useModel)(e,`activePath`),o=(0,l.useTemplateRef)(`tabsViewportRef`),s=(0,l.shallowRef)({path:``,style:{},visible:!1}),c=(0,l.shallowRef)({path:``,style:{},visible:!1}),d=(0,l.shallowRef)(!1),f=(0,l.shallowRef)(!1),m=(0,l.shallowRef)(!0),h=(0,l.shallowRef)(!1),g,_,v=null,y=(0,l.computed)(()=>s.value.visible?s.value:c.value),b=(0,l.computed)(()=>y.value.path),x=(0,l.computed)(()=>typeof window>`u`||typeof window.matchMedia!=`function`||!window.matchMedia(`(max-width: 768px)`).matches),S=(0,l.computed)(()=>r.draggable&&x.value),C=(0,l.computed)(()=>r.tabs.some(e=>e.closable!==!1&&e.pinned!==!0));function w(e){return r.tabs.length>1&&r.tabs.some(t=>t.path===e&&t.closable!==!1&&t.pinned!==!0)}function T(e,t){let n=r.tabs.findIndex(t=>t.path===e);return(t===`left`?r.tabs.slice(0,n):r.tabs.slice(n+1)).some(e=>e.closable!==!1&&e.pinned!==!0)}function ee(e){return r.tabs.some(t=>t.path!==e&&t.closable!==!1&&t.pinned!==!0)}function E(e){return e===a.value}function te(e){let t=r.tabs.find(t=>t.path===e);return!!t&&t.pinned!==!0&&t.closable!==!1}function D(e){let t=r.tabs.find(t=>t.path===e);return!!t&&t.pinned===!0&&t.closable!==!1}function O(e){let t=b.value;return e===`close`?!w(t):e===`close-left`||e===`close-right`?!t||!E(t)||!T(t,e===`close-left`?`left`:`right`):e===`close-others`?!t||!E(t)||!ee(t):e===`close-all`?!C.value:e===`refresh`?!t||!E(t):e===`pin`?!te(t)&&!D(t):e===`new-window`&&!t}function ne(e){return D(e)?`取消固定`:`固定`}function re(){return d.value?`还原`:`内容最大化`}function k(e){e!==a.value&&(a.value=e,i(`change`,e))}function A(e){w(e)&&i(`remove`,e)}function j(e){e&&E(e)&&i(`refresh`,e)}function M(e,t){e.button!==1||!r.middleClickToClose||!w(t.path)||(e.preventDefault(),i(`remove`,t.path))}function N(e,t){if(![`ArrowLeft`,`ArrowRight`,`End`,`Home`].includes(e.key)||r.tabs.length===0)return;e.preventDefault();let n=e.key===`Home`?0:e.key===`End`?r.tabs.length-1:e.key===`ArrowLeft`?(t-1+r.tabs.length)%r.tabs.length:(t+1)%r.tabs.length,i=r.tabs[n];i&&(k(i.path),(0,l.nextTick)(()=>{o.value?.querySelectorAll(`[role="tab"]`).item(n).focus()}))}function P(e,t){return{left:`${Math.max(8,Math.min(e,window.innerWidth-Ne-8))}px`,top:`${Math.max(8,Math.min(t,window.innerHeight-Pe-8))}px`}}function F(){s.value={...s.value,visible:!1},c.value={...c.value,visible:!1}}function ie(e,t){e.preventDefault(),e.stopPropagation(),v=e.currentTarget,s.value={path:t,style:P(e.clientX,e.clientY),visible:!0},c.value={...c.value,visible:!1}}function ae(e){e.preventDefault(),e.stopPropagation();let t=a.value||r.tabs[0]?.path||``;v=e.currentTarget,c.value={path:t,style:P(e.clientX,e.clientY),visible:!0},s.value={...s.value,visible:!1}}function I(){v&&document.body.contains(v)&&(v.focus(),v=null)}function L(e){if(O(e))return;let t=b.value;F(),e===`close`?i(`remove`,t):e===`close-left`?i(`closeLeft`,t):e===`close-right`?i(`closeRight`,t):e===`close-others`?i(`closeOthers`,t):e===`close-all`?i(`closeAll`):e===`refresh`?i(`refresh`,t):e===`pin`?i(`pin`,t,!D(t)):e===`new-window`?i(`newWindow`,t):e===`maximize`&&G(),(0,l.nextTick)(I)}function R(e){if(e.key===`Escape`){e.preventDefault(),F(),(0,l.nextTick)(I);return}let t=Array.from(document.querySelectorAll(`[data-menu-active="true"] [role="menuitem"]:not(:disabled)`));if(t.length!==0&&(e.key===`ArrowDown`||e.key===`ArrowUp`||e.key===`Home`||e.key===`End`)){e.preventDefault();let n=t.findIndex(e=>e===document.activeElement),r;r=e.key===`ArrowDown`?n===-1?0:(n+1)%t.length:e.key===`ArrowUp`?n===-1?t.length-1:(n-1+t.length)%t.length:e.key===`Home`?0:t.length-1,t[r]?.focus()}}function z(){let e=o.value;e&&(f.value=e.scrollWidth>e.clientWidth+1,m.value=e.scrollLeft<=1,h.value=e.scrollLeft+e.clientWidth>=e.scrollWidth-1)}function B(){return window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches?`auto`:`smooth`}function V(e){let t=o.value;t&&t.scrollBy({behavior:B(),left:(e===`left`?-1:1)*Math.max(160,t.clientWidth-120)})}function oe(e){if(!r.wheelable)return;let t=o.value;!t||!f.value||(e.preventDefault(),t.scrollBy({left:Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX}))}async function H(){await(0,l.nextTick)(),(o.value?.querySelector(`[role="tab"][aria-selected="true"]`))?.scrollIntoView({behavior:B(),block:`nearest`,inline:`nearest`}),z()}function U(){let e=o.value?.querySelector(`.lumal-tabs__list`);if(!e||!S.value){W();return}_&&_.el===e||(W(),_=p.default.create(e,{animation:160,draggable:`.lumal-tabs__item`,filter:`.is-not-draggable`,ghostClass:`lumal-tabs__item--ghost`,chosenClass:`lumal-tabs__item--chosen`,onEnd:e=>{if(e.oldIndex===void 0||e.newIndex===void 0||e.oldIndex===e.newIndex)return;let t=r.tabs[e.oldIndex]?.path,n=r.tabs[e.newIndex]?.path;!t||!n||i(`reorder`,t,n)}}))}function W(){_?.destroy(),_=void 0}(0,l.watch)(S,e=>{e?(0,l.nextTick)(U):W()});function G(){if(r.standaloneMaximize){K();return}d.value=!d.value,i(`maximize`,d.value)}async function K(){let e=document.querySelector(r.fullscreenTarget);e instanceof HTMLElement&&(document.fullscreenElement?await document.exitFullscreen?.():await e.requestFullscreen?.())}function q(){d.value=!!document.fullscreenElement&&r.standaloneMaximize,r.standaloneMaximize&&i(`maximize`,d.value)}function J(e){r.standaloneMaximize||(d.value=e)}t({getTabsElement:()=>o.value,refreshCurrent:()=>j(a.value),scrollTabs:V,toggleFullscreen:G,setMaximized:J}),(0,l.watch)(()=>[r.activePath,r.tabs.length],()=>void H(),{flush:`post`}),(0,l.watch)(()=>r.tabs,()=>void(0,l.nextTick)(z),{flush:`post`});function Y(e){let t=e.target;t&&(t.closest?.(`.lumal-tabs-context-menu`)||t.closest?.(`[data-tab-menu-trigger]`)||F())}function X(e){e.key===`Escape`&&y.value.visible&&(e.preventDefault(),F(),(0,l.nextTick)(I))}return(0,l.onMounted)(()=>{document.addEventListener(`click`,Y),document.addEventListener(`fullscreenchange`,q),document.addEventListener(`keydown`,X),z(),typeof ResizeObserver<`u`&&o.value&&(g=new ResizeObserver(z),g.observe(o.value)),S.value&&(0,l.nextTick)(U)}),(0,l.onBeforeUnmount)(()=>{document.removeEventListener(`click`,Y),document.removeEventListener(`fullscreenchange`,q),document.removeEventListener(`keydown`,X),g?.disconnect(),W()}),(t,n)=>e.visible&&e.tabs.length?((0,l.openBlock)(),(0,l.createElementBlock)(`div`,{key:0,class:(0,l.normalizeClass)([`lumal-tabs`,[`is-style-${e.styleType}`]])},[(0,l.withDirectives)((0,l.createElementVNode)(`button`,{class:`lumal-tabs__tool`,type:`button`,"aria-label":`向左滚动标签`,disabled:m.value,onClick:n[0]||=e=>V(`left`)},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:`lumal:chevron-left`,size:16})],8,he),[[l.vShow,f.value]]),(0,l.createElementVNode)(`div`,{ref_key:`tabsViewportRef`,ref:o,class:`lumal-tabs__viewport`,onScroll:z,onWheel:oe},[(0,l.createVNode)(l.TransitionGroup,{name:`lumal-tab`,tag:`div`,class:`lumal-tabs__list`,role:`tablist`,"aria-label":`页面标签`},{default:(0,l.withCtx)(()=>[((0,l.openBlock)(!0),(0,l.createElementBlock)(l.Fragment,null,(0,l.renderList)(e.tabs,(t,n)=>((0,l.openBlock)(),(0,l.createElementBlock)(`div`,{key:t.path,class:(0,l.normalizeClass)([`lumal-tabs__item`,{"is-active":t.path===a.value,"is-pinned":t.pinned===!0,"is-not-draggable":t.pinned===!0||!S.value}]),onContextmenu:e=>ie(e,t.path)},[(0,l.createElementVNode)(`button`,{class:`lumal-tabs__tab`,type:`button`,role:`tab`,"aria-selected":t.path===a.value,tabindex:t.path===a.value?0:-1,onClick:e=>k(t.path),onKeydown:e=>N(e,n),onMousedown:e=>M(e,t)},[t.pinned===!0?((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(u.LumalIcon),{key:0,class:`lumal-tabs__pin`,name:`lumal:pin`,size:14})):e.showIcon&&t.icon?((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(u.LumalIcon),{key:1,name:t.icon,size:14},null,8,[`name`])):(0,l.createCommentVNode)(``,!0),(0,l.createElementVNode)(`span`,{class:`lumal-tabs__label`,title:t.title},(0,l.toDisplayString)(t.title),9,ve)],40,_e),w(t.path)?((0,l.openBlock)(),(0,l.createElementBlock)(`button`,{key:0,class:`lumal-tabs__close`,type:`button`,"aria-label":`关闭${t.title}`,onClick:e=>A(t.path)},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:`lumal:close`,size:14})],8,ye)):(0,l.createCommentVNode)(``,!0)],42,ge))),128))]),_:1})],544),(0,l.withDirectives)((0,l.createElementVNode)(`button`,{class:`lumal-tabs__tool`,type:`button`,"aria-label":`向右滚动标签`,disabled:h.value,onClick:n[1]||=e=>V(`right`)},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:`lumal:chevron-right`,size:16})],8,be),[[l.vShow,f.value]]),e.showRefresh?((0,l.openBlock)(),(0,l.createElementBlock)(`button`,{key:0,class:`lumal-tabs__tool lumal-tabs__tool--refresh`,type:`button`,"aria-label":`刷新当前页面`,"data-action":`refresh-current-tab`,disabled:!a.value,onClick:n[2]||=e=>j(a.value)},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:`lumal:refresh`,size:16})],8,xe)):(0,l.createCommentVNode)(``,!0),e.showMore?((0,l.openBlock)(),(0,l.createElementBlock)(`button`,{key:1,class:`lumal-tabs__tool`,type:`button`,"aria-label":`更多操作`,"aria-haspopup":`menu`,"aria-expanded":c.value.visible,"data-tab-menu-trigger":``,onClick:n[3]||=e=>ae(e)},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:`lumal:more`,size:16})],8,Se)):(0,l.createCommentVNode)(``,!0),e.showMaximize?((0,l.openBlock)(),(0,l.createElementBlock)(`button`,{key:2,class:`lumal-tabs__tool lumal-tabs__tool--maximize`,type:`button`,"aria-label":d.value?`退出内容最大化`:`内容最大化`,"data-action":`maximize-content`,onClick:G},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:d.value?`lumal:restore`:`lumal:maximize`,size:16},null,8,[`name`])],8,Ce)):(0,l.createCommentVNode)(``,!0),((0,l.openBlock)(),(0,l.createBlock)(l.Teleport,{to:`body`},[s.value.visible||c.value.visible?((0,l.openBlock)(),(0,l.createElementBlock)(`div`,{key:0,class:`lumal-tabs-context-menu`,role:`menu`,"data-menu-active":!0,style:(0,l.normalizeStyle)(y.value.style),onClick:n[13]||=(0,l.withModifiers)(()=>{},[`stop`]),onKeydown:R},[(0,l.createElementVNode)(`button`,{type:`button`,role:`menuitem`,disabled:O(`refresh`),onClick:n[4]||=e=>L(`refresh`)},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:`lumal:refresh`,size:14}),n[14]||=(0,l.createElementVNode)(`span`,null,`重新加载`,-1)],8,we),(0,l.createElementVNode)(`button`,{type:`button`,role:`menuitem`,disabled:O(`pin`),onClick:n[5]||=e=>L(`pin`)},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:D(b.value)?`lumal:pin-off`:`lumal:pin`,size:14},null,8,[`name`]),(0,l.createElementVNode)(`span`,null,(0,l.toDisplayString)(ne(b.value)),1)],8,Te),(0,l.createElementVNode)(`button`,{type:`button`,role:`menuitem`,disabled:O(`maximize`),onClick:n[6]||=e=>L(`maximize`)},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:d.value?`lumal:restore`:`lumal:maximize`,size:14},null,8,[`name`]),(0,l.createElementVNode)(`span`,null,(0,l.toDisplayString)(re()),1)],8,Ee),(0,l.createElementVNode)(`button`,{type:`button`,role:`menuitem`,disabled:O(`new-window`),onClick:n[7]||=e=>L(`new-window`)},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:`lumal:external-link`,size:14}),n[15]||=(0,l.createElementVNode)(`span`,null,`在新窗口打开`,-1)],8,De),n[21]||=(0,l.createElementVNode)(`span`,{class:`lumal-tabs-context-menu__divider`},null,-1),(0,l.createElementVNode)(`button`,{type:`button`,role:`menuitem`,disabled:O(`close`),onClick:n[8]||=e=>L(`close`)},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:`lumal:close`,size:14}),n[16]||=(0,l.createElementVNode)(`span`,null,`关闭`,-1)],8,Oe),(0,l.createElementVNode)(`button`,{type:`button`,role:`menuitem`,disabled:O(`close-left`),onClick:n[9]||=e=>L(`close-left`)},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:`lumal:chevron-left`,size:14}),n[17]||=(0,l.createElementVNode)(`span`,null,`关闭左侧`,-1)],8,ke),(0,l.createElementVNode)(`button`,{type:`button`,role:`menuitem`,disabled:O(`close-right`),onClick:n[10]||=e=>L(`close-right`)},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:`lumal:chevron-right`,size:14}),n[18]||=(0,l.createElementVNode)(`span`,null,`关闭右侧`,-1)],8,Ae),(0,l.createElementVNode)(`button`,{type:`button`,role:`menuitem`,disabled:O(`close-others`),onClick:n[11]||=e=>L(`close-others`)},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:`lumal:close`,size:14}),n[19]||=(0,l.createElementVNode)(`span`,null,`关闭其他`,-1)],8,je),(0,l.createElementVNode)(`button`,{type:`button`,role:`menuitem`,disabled:O(`close-all`),onClick:n[12]||=e=>L(`close-all`)},[(0,l.createVNode)((0,l.unref)(u.LumalIcon),{name:`lumal:close`,size:14}),n[20]||=(0,l.createElementVNode)(`span`,null,`关闭全部`,-1)],8,Me)],36)):(0,l.createCommentVNode)(``,!0)]))],2)):(0,l.createCommentVNode)(``,!0)}}),Ie=c.t(Fe,[[`__scopeId`,`data-v-e1921025`]]),Le={class:`lumal-top-nav-menu-item__label`},Re={key:1,class:`lumal-top-nav-menu-item__external`,"aria-hidden":`true`},ze={class:`lumal-top-nav-menu-item__label`},Be={class:`lumal-top-nav-menu-item__label`},Ve={key:1,class:`lumal-top-nav-menu-item__external`,"aria-hidden":`true`},He=(0,l.defineComponent)({__name:`LumalTopNavMenuItem`,props:{activePath:{default:``},item:{}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,i=(0,l.computed)(()=>n.item.children?.filter(e=>!e.hidden)??[]),a=(0,l.computed)(()=>!!n.item.externalLink&&n.item.externalTarget!==`_self`),o=(0,l.computed)(()=>!!n.activePath&&m(n.item,n.activePath));function s(e){r(`select`,e)}return(t,n)=>{let r=(0,l.resolveComponent)(`LumalTopNavMenuItem`,!0);return i.value.length?((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(d.ElSubMenu),{key:0,index:e.item.path,class:(0,l.normalizeClass)({"is-active":o.value})},{title:(0,l.withCtx)(()=>[e.item.icon?((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(u.LumalIcon),{key:0,name:e.item.icon,size:16},null,8,[`name`])):(0,l.createCommentVNode)(``,!0),(0,l.createElementVNode)(`span`,Le,[(0,l.createElementVNode)(`span`,null,(0,l.toDisplayString)(e.item.title),1),(0,l.createVNode)(G,{badge:e.item.badge,label:e.item.title,tone:e.item.badgeTone,type:e.item.badgeType},null,8,[`badge`,`label`,`tone`,`type`])]),e.item.externalLink?((0,l.openBlock)(),(0,l.createElementBlock)(`span`,Re,`↗`)):(0,l.createCommentVNode)(``,!0)]),default:(0,l.withCtx)(()=>[((0,l.openBlock)(!0),(0,l.createElementBlock)(l.Fragment,null,(0,l.renderList)(i.value,t=>((0,l.openBlock)(),(0,l.createBlock)(r,{key:t.path,item:t,"active-path":e.activePath,onSelect:s},null,8,[`item`,`active-path`]))),128))]),_:1},8,[`index`,`class`])):a.value?((0,l.openBlock)(),(0,l.createElementBlock)(`li`,{key:1,class:(0,l.normalizeClass)([`el-menu-item lumal-top-nav-menu-item--external`,{"is-active":o.value}]),role:`menuitem`,tabindex:`-1`,onClick:n[0]||=t=>s(e.item.path)},[e.item.icon?((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(u.LumalIcon),{key:0,name:e.item.icon,size:16},null,8,[`name`])):(0,l.createCommentVNode)(``,!0),(0,l.createElementVNode)(`span`,ze,[(0,l.createElementVNode)(`span`,null,(0,l.toDisplayString)(e.item.title),1),(0,l.createVNode)(G,{badge:e.item.badge,label:e.item.title,tone:e.item.badgeTone,type:e.item.badgeType},null,8,[`badge`,`label`,`tone`,`type`])]),n[2]||=(0,l.createElementVNode)(`span`,{class:`lumal-top-nav-menu-item__external`,"aria-hidden":`true`},`↗`,-1)],2)):((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(d.ElMenuItem),{key:2,index:e.item.path,class:(0,l.normalizeClass)({"is-active":o.value}),onClick:n[1]||=t=>s(e.item.path)},{default:(0,l.withCtx)(()=>[e.item.icon?((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(u.LumalIcon),{key:0,name:e.item.icon,size:16},null,8,[`name`])):(0,l.createCommentVNode)(``,!0),(0,l.createElementVNode)(`span`,Be,[(0,l.createElementVNode)(`span`,null,(0,l.toDisplayString)(e.item.title),1),(0,l.createVNode)(G,{badge:e.item.badge,label:e.item.title,tone:e.item.badgeTone,type:e.item.badgeType},null,8,[`badge`,`label`,`tone`,`type`])]),e.item.externalLink?((0,l.openBlock)(),(0,l.createElementBlock)(`span`,Ve,`↗`)):(0,l.createCommentVNode)(``,!0)]),_:1},8,[`index`,`class`]))}}}),Ue=c.t(He,[[`__scopeId`,`data-v-f78b5b43`]]),We={class:`lumal-top-nav__label`},Ge={key:1,class:`lumal-top-nav__external`,"aria-hidden":`true`},Ke=(0,l.defineComponent)({__name:`LumalTopNav`,props:{activePath:{default:``},align:{default:`left`},maxWidth:{default:`100%`},menus:{default:()=>[]},mode:{default:`tree`}},emits:[`select`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=(0,l.useTemplateRef)(`menuRef`),o=(0,l.computed)(()=>r.menus.filter(e=>!e.hidden));function s(e){return!!e.externalLink&&e.externalTarget!==`_self`}function c(e){return r.activePath?r.mode===`flat`?e.path===r.activePath:m(e,r.activePath):!1}function f(e){let t=c(e);return s(e)?{class:[`el-menu-item`,`lumal-top-nav__external-item`,{"is-active":t}],role:`menuitem`,tabindex:-1}:{class:{"is-active":t},index:e.path}}let p=(0,l.computed)(()=>({"--lumal-top-nav-max-width":typeof r.maxWidth==`number`?`${r.maxWidth}px`:r.maxWidth}));function h(e){i(`select`,e)}return t({getMenuElement:()=>a.value?.$el,getMenuInstance:()=>a.value}),(t,n)=>((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(d.ElMenu),{key:`top-nav:${e.mode}:${e.activePath}`,ref_key:`menuRef`,ref:a,class:(0,l.normalizeClass)([`lumal-top-nav`,`is-align-${e.align}`]),mode:`horizontal`,"default-active":e.activePath,ellipsis:!0,style:(0,l.normalizeStyle)(p.value)},{default:(0,l.withCtx)(()=>[((0,l.openBlock)(!0),(0,l.createElementBlock)(l.Fragment,null,(0,l.renderList)(e.mode===`tree`?o.value:[],t=>((0,l.openBlock)(),(0,l.createBlock)(Ue,{key:`tree:${t.path}`,item:t,"active-path":e.activePath,onSelect:h},null,8,[`item`,`active-path`]))),128)),((0,l.openBlock)(!0),(0,l.createElementBlock)(l.Fragment,null,(0,l.renderList)(e.mode===`flat`?o.value:[],e=>((0,l.openBlock)(),(0,l.createBlock)((0,l.resolveDynamicComponent)(s(e)?`li`:(0,l.unref)(d.ElMenuItem)),(0,l.mergeProps)({key:`flat:${e.path}`},{ref_for:!0},f(e),{onClick:t=>h(e.path)}),{default:(0,l.withCtx)(()=>[e.icon?((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(u.LumalIcon),{key:0,name:e.icon,size:16},null,8,[`name`])):(0,l.createCommentVNode)(``,!0),(0,l.createElementVNode)(`span`,We,[(0,l.createElementVNode)(`span`,null,(0,l.toDisplayString)(e.title),1),(0,l.createVNode)(G,{badge:e.badge,label:e.title,tone:e.badgeTone,type:e.badgeType},null,8,[`badge`,`label`,`tone`,`type`])]),e.externalLink?((0,l.openBlock)(),(0,l.createElementBlock)(`span`,Ge,`↗`)):(0,l.createCommentVNode)(``,!0)]),_:2},1040,[`onClick`]))),128))]),_:1},8,[`class`,`default-active`,`style`]))}}),qe=c.t(Ke,[[`__scopeId`,`data-v-1c664f72`]]),Je=1,Ye=50;function Xe(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ze(e){return Xe(e)?typeof e.path==`string`&&typeof e.title==`string`:!1}function Qe(e){let t=Math.max(1,e.maxHistory??50),n=e.history.slice(0,t);return{v:1,tabs:e.tabs.map(e=>({closable:e.closable,icon:e.icon,path:e.path,pinned:e.pinned===!0,title:e.title})),history:n}}function $e(e){if(!e)return;let t;try{t=JSON.parse(e)}catch{return}return!Xe(t)||t.v!==1||!Array.isArray(t.tabs)||!Array.isArray(t.history)||!t.history.every(e=>typeof e==`string`)?void 0:{v:1,tabs:t.tabs.filter(Ze),history:t.history}}function et(e,t,n){try{return e.setItem(t,JSON.stringify(n)),!0}catch{return!1}}function tt(e,t){let n=null;try{n=e.getItem(t)}catch{return}let r=$e(n);if(n){if(!r){try{e.removeItem(t)}catch{}return}return r}}function nt(e,t){try{e.removeItem(t)}catch{}}function rt(e,t){let n=t.fixedTabs.map(e=>({...e,pinned:!0,closable:!1})),r=new Set(n.map(e=>e.path)),i=t.isValidPath??(()=>!0),a=[];if(e)for(let n of e.tabs){if(!n.path||!i(n.path)||r.has(n.path))continue;let e=t.resolveTab?.(n.path)??{};a.push({closable:n.closable!==!1,icon:n.icon,path:n.path,pinned:n.pinned===!0,title:n.title,...e})}let o=[...n,...a];if(t.currentPath){let e=t.resolveTab?.(t.currentPath)??{},n={closable:!0,icon:e.icon,path:t.currentPath,pinned:!1,title:e.title??t.currentTab?.title??t.currentPath,...t.currentTab??{},...e};r.has(t.currentPath)||o.some(e=>e.path===t.currentPath)||(o=[...o,n])}o=[...o].sort((e,t)=>{let n=+(e.pinned===!0);return+(t.pinned===!0)-n});let s=e?.history??[];return{tabs:o,history:s}}function it(e){return[...e].sort((e,t)=>{let n=+(e.pinned===!0);return+(t.pinned===!0)-n})}function at(e,t,n={}){let r=e.some(e=>e.path===t.path)?[...e]:[...e,t],i=n.maxCount??0;if(i<=0||r.length<=i)return r;let a=[...r];for(;a.length>i;){let e=a.findIndex(e=>e.closable!==!1&&e.pinned!==!0&&e.path!==t.path);if(e===-1)break;a.splice(e,1)}return a}function ot(e,t,n){if(t<=0||e.length<=t)return[...e];let r=[...e];for(;r.length>t;){let e=r.findIndex(e=>e.closable!==!1&&e.pinned!==!0&&e.path!==n);if(e===-1)break;r.splice(e,1)}return r}function st(e,t){return e.filter(e=>!(e.path===t&&e.closable!==!1&&e.pinned!==!0))}function ct(e,t){let n=e.findIndex(e=>e.path===t);return n<=0?[...e]:e.filter((e,t)=>t>=n||e.closable===!1||e.pinned===!0)}function lt(e,t){let n=e.findIndex(e=>e.path===t);return n===-1||n>=e.length-1?[...e]:e.filter((e,t)=>t<=n||e.closable===!1||e.pinned===!0)}function ut(e,t){return e.filter(e=>e.path===t||e.closable===!1||e.pinned===!0)}function dt(e){let t=e.filter(e=>e.closable===!1||e.pinned===!0);return t.length>0?t:e.length>0?[e[0]]:[]}function ft(e,t){let n=!1,r=e.map(e=>e.path===t?(n=!0,{...e,pinned:!0}):e);return n?it(r):r}function pt(e,t){return e.map(e=>e.path===t&&e.closable!==!1?{...e,pinned:!1}:e)}function mt(e){return e.closable===!1}function ht(e){return e.pinned===!0&&e.closable!==!1}function gt(e){return e.pinned!==!0&&e.closable!==!1}var _t=50;function vt(e,t,n={}){if(!t)return[...e];let r=n.maxCount??_t;return[t,...e.filter(e=>e!==t)].slice(0,Math.max(1,r))}function yt(e,t,n=[],r={}){if(e.length===0)return``;if(r.useHistory&&n.length>0){let r=new Set(e.map(e=>e.path));for(let e of n)if(e!==t&&r.has(e))return e}let i=r.priorClosedIndex??-1;if(i>=0){let t=e[i];if(t)return t.path;let n=e[i-1];if(n)return n.path}return e[0]?.path??``}function bt(e,t,n){let r=e.findIndex(e=>e.path===t),i=e.findIndex(e=>e.path===n);if(r===-1||i===-1||r===i||e[r].pinned===!0!=(e[i].pinned===!0))return[...e];let a=[...e],[o]=a.splice(r,1);return o&&a.splice(i,0,o),a}function xt(e,t={}){return t.enable===!1?[]:e.map(e=>e.path)}var St=(0,l.defineComponent)({__name:`LumalLayout`,props:(0,l.mergeModels)({title:{},menus:{default:()=>[]},preferences:{},tabs:{default:()=>[]},activeMenuPath:{default:``},activeTabPath:{default:``},routeDriven:{type:Boolean,default:!1},routeTabFilter:{},routeTabResolver:{},tabFallbackPath:{default:``},tabMaxCount:{},fixedTabs:{default:()=>[]},headerHeight:{default:`50px`},showHeader:{type:Boolean,default:!0},tabStorageKey:{default:``},isValidTabPath:{},resolveTabUrl:{}},{activeTabPath:{},activeTabPathModifiers:{}}),emits:(0,l.mergeModels)([`menuSelect`,`topMenuSelect`,`toggleSidebar`,`tabChange`,`tabCloseAll`,`tabCloseLeft`,`tabCloseOthers`,`tabCloseRight`,`tabRefresh`,`tabRemove`,`tabPin`,`tabReorder`,`tabMaximize`,`tabNewWindow`],[`update:activeTabPath`]),setup(e,{expose:t,emit:n}){let r=e,i=n,a=(0,l.useModel)(e,`activeTabPath`),o=(0,l.inject)(f.routeLocationKey,void 0),s=(0,l.inject)(f.routerKey,void 0),c=(0,l.useTemplateRef)(`layoutRef`),u=(0,l.useTemplateRef)(`tabsRef`),p=(0,l.shallowRef)(!1),m=(0,l.shallowRef)(!1),g=(0,l.shallowRef)(!1),b=(0,l.shallowRef)([]),x=(0,l.shallowRef)(``),S=(0,l.shallowRef)([]),C=(0,l.computed)(()=>r.tabMaxCount??r.preferences.tabbar.maxCount),w;function ee(e){return e.meta.layout!==`public`&&e.meta.hideInTab!==!0&&!!e.meta.title}function te(e){let t=typeof e.meta.title==`string`?e.meta.title:void 0;if(t)return{closable:e.meta.affixTab!==!0,icon:typeof e.meta.icon==`string`?e.meta.icon:void 0,path:e.path,title:t}}function D(){return r.fixedTabs.map(e=>({...e,closable:!1,pinned:!0}))}function O(e){return{closable:e.closable!==!1,icon:e.icon,path:e.path,pinned:e.pinned===!0,title:e.title}}function ne(){if(r.isValidTabPath)return r.isValidTabPath;if(!(!s||!r.routeDriven))return e=>{try{let t=s.resolve(e)?.matched??[],n=t[t.length-1];return n?n.meta?.layout!==`public`&&n.meta?.hideInTab!==!0:!1}catch{return!1}}}function re(e){if(!(!s||!r.routeDriven))try{let t=s.resolve(e)?.matched??[],n=t[t.length-1],r=typeof n?.meta?.title==`string`?n.meta.title:void 0,i=typeof n?.meta?.icon==`string`?n.meta.icon:void 0;return!r&&!i?void 0:{icon:i,title:r}}catch{return}}function k(e){if(!r.routeDriven||!(r.routeTabFilter??ee)(e))return;let t=(r.routeTabResolver??te)(e);if(!t)return;let n=D(),i=new Set(n.map(e=>e.path)),a=b.value.filter(e=>!i.has(e.path)),o=at([...n,...a],t,{maxCount:C.value});b.value=o,r.preferences.tabbar.visitHistory&&(S.value=vt(S.value,e.path)),Q()}function A(e){r.routeDriven&&s&&e&&e!==o?.path&&s.push(e)}function j(e){return r.tabFallbackPath?r.tabFallbackPath:e[0]?.path??``}let M=(0,l.computed)({get:()=>r.routeDriven?o?.path??r.activeTabPath:a.value??r.activeTabPath,set:e=>{r.routeDriven?A(e):a.value=e}}),N=(0,l.computed)(()=>r.routeDriven?b.value:r.tabs),P=(0,l.computed)(()=>N.value.length>0),F=(0,l.computed)(()=>r.preferences.sidebar.collapsed),ie=(0,l.computed)(()=>typeof o?.meta.activeMenu==`string`?o.meta.activeMenu:``),I=(0,l.computed)(()=>{let e=o?.path||M.value,t=ie.value;return t&&h(r.menus,t)?t:e&&h(r.menus,e)?e:r.activeMenuPath&&h(r.menus,r.activeMenuPath)?r.activeMenuPath:r.activeMenuPath||e}),L=(0,l.computed)(()=>o?.path||M.value||I.value),R=(0,l.computed)(()=>({enable:r.preferences.breadcrumb?.enable??!0,hideOnlyOne:r.preferences.breadcrumb?.hideOnlyOne??!1,showHome:r.preferences.breadcrumb?.showHome??!0,showIcon:r.preferences.breadcrumb?.showIcon??!0})),z=(0,l.computed)(()=>r.preferences.header.globalSearch??!0),B=(0,l.computed)(()=>r.preferences.shortcutKeys?.globalSearch??!0),V=(0,l.computed)(()=>v(r.menus,I.value)),H=(0,l.computed)(()=>r.preferences.app.layout===`mixed-nav`&&r.preferences.sidebar.enable),U=(0,l.computed)(()=>H.value?r.menus.find(e=>!e.hidden&&e.path===x.value)?.path??V.value:V.value),W=(0,l.computed)(()=>{let e=y({activeTopMenuPath:U.value,layout:r.preferences.app.layout,menus:r.menus});return{...e,sidebarMenus:r.preferences.sidebar.enable?e.sidebarMenus:[]}}),G=(0,l.computed)(()=>W.value.sidebarMenus),K=(0,l.computed)(()=>W.value.topMenus),q=(0,l.computed)(()=>G.value.length>0),J=(0,l.computed)(()=>K.value.length>0),Y=(0,l.computed)(()=>R.value.enable&&q.value&&!J.value),X=(0,l.computed)(()=>H.value?`flat`:`tree`),se=(0,l.computed)(()=>X.value===`tree`?I.value:U.value),ce=(0,l.computed)(()=>J.value?K.value:G.value),le=(0,l.computed)(()=>ce.value.some(e=>!e.hidden));(0,l.watch)(()=>[o?.fullPath,I.value,r.menus,r.preferences.app.layout,r.preferences.sidebar.enable],()=>{x.value=V.value},{immediate:!0}),(0,l.watch)(()=>[r.preferences.app.dynamicTitle??!0,o?.meta.title,r.title],([e,t,n])=>{if(typeof document>`u`)return;let r=typeof t==`string`?t.trim():``,i=n?.trim()??``;if(!e){document.title=i;return}!r&&!i||(document.title=r&&i&&r!==i?`${r} - ${i}`:r||i)},{immediate:!0});function Z(){if(!(!r.tabStorageKey||!r.preferences.tabbar.persist)&&!(typeof sessionStorage>`u`))return{getItem:sessionStorage.getItem.bind(sessionStorage),removeItem:sessionStorage.removeItem.bind(sessionStorage),setItem:sessionStorage.setItem.bind(sessionStorage)}}function Q(){let e=Z();if(!e||!r.tabStorageKey||!r.routeDriven)return;let t=Qe({tabs:b.value.map(O),history:S.value});et(e,r.tabStorageKey,t)}function ue(){let e=Z();!e||!r.tabStorageKey||nt(e,r.tabStorageKey)}function de(){if(!r.routeDriven)return;let e=Z();if(!e||!r.tabStorageKey)return;let t=tt(e,r.tabStorageKey),n=o?.path??``,i=rt(t,{currentPath:n,currentTab:o?(r.routeTabResolver??te)(o):void 0,fixedTabs:D(),isValidPath:ne(),resolveTab:re});b.value=i.tabs,r.preferences.tabbar.visitHistory?(n&&i.history.unshift(n),S.value=vt(i.history,n||``)):S.value=[]}function fe(e){p.value=e?.matches??w?.matches??!1,p.value&&(m.value=!1)}(0,l.onMounted)(()=>{typeof window>`u`||typeof window.matchMedia!=`function`||(w=window.matchMedia(`(max-width: 768px)`),fe(),w.addEventListener?.(`change`,fe))}),(0,l.onBeforeUnmount)(()=>{w?.removeEventListener?.(`change`,fe)}),(0,l.watch)(()=>[r.routeDriven,C.value,r.fixedTabs],()=>{if(!r.routeDriven){b.value=[];return}let e=D(),t=new Set(e.map(e=>e.path)),n=[...e];for(let e of b.value.filter(e=>!t.has(e.path)))n=at(n,e,{maxCount:C.value});b.value=ot(it(n),C.value,M.value),Q()},{deep:!0,immediate:!0}),(0,l.watch)(()=>o?.fullPath,()=>{o&&k(o)},{immediate:!0}),(0,l.watch)(()=>[r.routeDriven,r.tabStorageKey,r.preferences.tabbar.persist],(e,t)=>{let n=e[0],r=e[2],i=t?.[1]&&t?.[2];n&&r&&!i&&de(),!r&&i&&ue()},{immediate:!1}),(0,l.onBeforeUnmount)(()=>{Q()});function pe(){if(p.value){m.value=!m.value;return}i(`toggleSidebar`)}function $(e){m.value=!1,i(`menuSelect`,e)}function he(e){let t=h(r.menus,e),n=t?.children?.filter(e=>!e.hidden)??[],a=!!t?.externalLink&&t?.externalTarget!==`_self`;H.value&&t&&(n.length>0||!a)&&(x.value=t.path),i(`topMenuSelect`,e),!(H.value&&n.length>0&&!r.preferences.sidebar.autoActivateChild)&&$(_(t)||e)}function ge(e){$(_(h(r.menus,e))||e)}function _e(e){i(`tabChange`,e)}function ve(e){if(r.routeDriven){let t=b.value.findIndex(t=>t.path===e),n=st(b.value,e);if(b.value=n,M.value===e){let i=r.preferences.tabbar.visitHistory;A(yt(n,e,S.value,{useHistory:i,priorClosedIndex:t})||j(n))}Q()}i(`tabRemove`,e)}function ye(e){r.routeDriven&&(b.value=ct(b.value,e),A(e),Q()),i(`tabCloseLeft`,e)}function be(e){r.routeDriven&&(b.value=lt(b.value,e),A(e),Q()),i(`tabCloseRight`,e)}function xe(e){r.routeDriven&&(b.value=ut(b.value,e),A(e),Q()),i(`tabCloseOthers`,e)}function Se(){r.routeDriven&&(b.value=dt(b.value),A(j(b.value)),Q()),i(`tabCloseAll`)}function Ce(e,t){r.routeDriven&&(b.value=t?ft(b.value,e):pt(b.value,e),Q()),i(`tabPin`,e,t)}function we(e,t){r.routeDriven&&(b.value=bt(b.value,e,t),Q()),i(`tabReorder`,e,t)}function Te(e){let t=r.resolveTabUrl?r.resolveTabUrl(e):(()=>{if(s)try{return s.resolve(e)?.fullPath??e}catch{return e}return e})();window.open(t,`_blank`,`noopener,noreferrer`),i(`tabNewWindow`,e)}function Ee(e){g.value=e,i(`tabMaximize`,e)}function De(e){e.key===`Escape`&&g.value&&(e.preventDefault(),u.value?.setMaximized(!1),i(`tabMaximize`,!1))}return(0,l.watch)(g,e=>{typeof document>`u`||(e?document.addEventListener(`keydown`,De):document.removeEventListener(`keydown`,De))}),(0,l.onBeforeUnmount)(()=>{typeof document<`u`&&document.removeEventListener(`keydown`,De)}),t({getLayoutElement:()=>c.value?.$el,getLayoutInstance:()=>c.value,getTabs:()=>[...N.value],getVisitHistory:()=>[...S.value],resetTabs:()=>{b.value=dt(b.value),S.value=[],A(j(b.value)),Q()},resetTabSnapshot:()=>{ue()}}),(t,n)=>((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(d.ElContainer),{ref_key:`layoutRef`,ref:c,class:(0,l.normalizeClass)([`lumal-layout`,{"is-sidebar-collapsed":F.value,"is-sidebar-hidden":!q.value,"is-mobile-menu-hidden":!m.value,"is-content-maximized":g.value}]),"data-layout":e.preferences.app.layout,direction:`vertical`},{default:(0,l.withCtx)(()=>[e.showHeader?(0,l.withDirectives)(((0,l.openBlock)(),(0,l.createBlock)(oe,{key:0,title:e.title,collapsed:p.value?!m.value:F.value,height:e.headerHeight,"mobile-only-toggle":!q.value&&J.value,"sidebar-enabled":q.value||J.value,"toggle-after-title":q.value&&!p.value,onToggleCollapse:pe},(0,l.createSlots)({_:2},[t.$slots.logo?{name:`logo`,fn:(0,l.withCtx)(()=>[(0,l.renderSlot)(t.$slots,`logo`,{},void 0,!0)]),key:`0`}:void 0,J.value?{name:`navigation`,fn:(0,l.withCtx)(()=>[(0,l.createVNode)(qe,{menus:K.value,"active-path":se.value,align:e.preferences.header.menuAlign,"max-width":e.preferences.header.menuMaxWidth,mode:X.value,onSelect:he},null,8,[`menus`,`active-path`,`align`,`max-width`,`mode`])]),key:`1`}:void 0,Y.value?{name:`breadcrumb`,fn:(0,l.withCtx)(()=>[(0,l.createVNode)(T,{class:`lumal-layout__header-breadcrumb`,"active-menu-path":I.value,"active-path":L.value,"hide-only-one":R.value.hideOnlyOne,menus:e.menus,"show-home":R.value.showHome,"show-icon":R.value.showIcon,onSelect:ge},null,8,[`active-menu-path`,`active-path`,`hide-only-one`,`menus`,`show-home`,`show-icon`])]),key:`2`}:void 0,z.value||t.$slots.headerActions?{name:`actions`,fn:(0,l.withCtx)(()=>[z.value?((0,l.openBlock)(),(0,l.createBlock)(ae,{key:0,menus:e.menus,shortcut:B.value,onSelect:ge},null,8,[`menus`,`shortcut`])):(0,l.createCommentVNode)(``,!0),(0,l.renderSlot)(t.$slots,`headerActions`,{},void 0,!0)]),key:`3`}:void 0]),1032,[`title`,`collapsed`,`height`,`mobile-only-toggle`,`sidebar-enabled`,`toggle-after-title`])),[[l.vShow,!g.value]]):(0,l.createCommentVNode)(``,!0),(0,l.createVNode)((0,l.unref)(d.ElContainer),{class:`lumal-layout__body`},{default:(0,l.withCtx)(()=>[le.value&&!g.value?((0,l.openBlock)(),(0,l.createElementBlock)(`button`,{key:0,class:`lumal-layout__sidebar-scrim`,type:`button`,"aria-label":`关闭侧边栏`,onClick:n[0]||=e=>m.value=!1})):(0,l.createCommentVNode)(``,!0),g.value?(0,l.createCommentVNode)(``,!0):((0,l.openBlock)(),(0,l.createBlock)(l.Transition,{key:1,name:`lumal-layout-sidebar`,appear:``},{default:(0,l.withCtx)(()=>[q.value?((0,l.openBlock)(),(0,l.createBlock)(me,{key:0,class:`lumal-layout__desktop-sidebar`,"aria-label":`主菜单`,menus:G.value,"active-path":I.value,collapsed:F.value,width:`${e.preferences.sidebar.width}px`,"collapsed-width":`64px`,onSelect:$},null,8,[`menus`,`active-path`,`collapsed`,`width`])):(0,l.createCommentVNode)(``,!0)]),_:1})),le.value&&!g.value?((0,l.openBlock)(),(0,l.createBlock)(me,{key:2,class:`lumal-layout__mobile-sidebar`,"aria-label":`移动菜单`,"aria-hidden":!m.value,inert:!m.value||void 0,menus:ce.value,"active-path":I.value,collapsed:!1,width:`${e.preferences.sidebar.width}px`,"collapsed-width":`64px`,onSelect:$},null,8,[`aria-hidden`,`inert`,`menus`,`active-path`,`width`])):(0,l.createCommentVNode)(``,!0),(0,l.createVNode)((0,l.unref)(d.ElContainer),{class:`lumal-layout__main`,direction:`vertical`,"data-layout-fullscreen-target":``},{default:(0,l.withCtx)(()=>[R.value.enable&&!Y.value&&!g.value?((0,l.openBlock)(),(0,l.createBlock)(T,{key:0,"active-menu-path":I.value,"active-path":L.value,"hide-only-one":R.value.hideOnlyOne,menus:e.menus,"show-home":R.value.showHome,"show-icon":R.value.showIcon,onSelect:ge},null,8,[`active-menu-path`,`active-path`,`hide-only-one`,`menus`,`show-home`,`show-icon`])):(0,l.createCommentVNode)(``,!0),P.value&&e.preferences.tabbar.enable?((0,l.openBlock)(),(0,l.createBlock)(Ie,{key:1,ref_key:`tabsRef`,ref:u,"active-path":M.value,"onUpdate:activePath":n[1]||=e=>M.value=e,tabs:N.value,"show-icon":e.preferences.tabbar.showIcon,"show-maximize":e.preferences.tabbar.showMaximize,"show-more":e.preferences.tabbar.showMore,"show-refresh":e.preferences.tabbar.showRefresh,draggable:e.preferences.tabbar.draggable,wheelable:e.preferences.tabbar.wheelable,"middle-click-to-close":e.preferences.tabbar.middleClickToClose,"style-type":e.preferences.tabbar.styleType,onChange:_e,onCloseAll:Se,onCloseLeft:ye,onCloseOthers:xe,onCloseRight:be,onMaximize:Ee,onNewWindow:Te,onPin:Ce,onRefresh:n[2]||=e=>i(`tabRefresh`,e),onRemove:ve,onReorder:we},null,8,[`active-path`,`tabs`,`show-icon`,`show-maximize`,`show-more`,`show-refresh`,`draggable`,`wheelable`,`middle-click-to-close`,`style-type`])):(0,l.createCommentVNode)(``,!0),(0,l.createVNode)(E,null,{default:(0,l.withCtx)(()=>[(0,l.renderSlot)(t.$slots,`default`,{},void 0,!0)]),_:3})]),_:3})]),_:3})]),_:3},8,[`data-layout`,`class`]))}}),Ct=c.t(St,[[`__scopeId`,`data-v-c4a60970`]]),wt={key:0,class:`lumal-router-view__progress`,"aria-hidden":`true`},Tt={key:1,class:`lumal-router-view__loading`,"aria-hidden":`true`},Et=(0,l.defineComponent)({__name:`LumalRouterView`,props:{viewKey:{default:`default`},transition:{type:Boolean,default:!1},transitionName:{default:`fade-side`},progress:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},cache:{type:Boolean,default:!1},cacheMax:{default:0}},setup(e,{expose:t}){let n=e,r=(0,l.useTemplateRef)(`routerViewRef`),i=(0,l.shallowRef)(!1),a=(0,l.shallowRef)(!1),o=new Set([n.viewKey]),s=(0,l.computed)(()=>n.cacheMax>0?n.cacheMax:void 0),c=(0,l.computed)(()=>n.transition?n.transitionName:void 0),u;function d(){u&&=(clearTimeout(u),void 0)}function p(e){return n.cache&&o.has(e)}function m(e){i.value=!1,a.value=!1,o.add(e),u=void 0}function h(e){if(d(),i.value=n.progress&&!p(e),a.value=n.loading&&!p(e),!i.value&&!a.value){o.add(e);return}u=setTimeout(m,520,e)}return(0,l.watch)(()=>n.viewKey,(e,t)=>{t!==void 0&&h(e)}),(0,l.onBeforeUnmount)(()=>{d()}),t({getRouterViewElement:()=>r.value}),(t,n)=>((0,l.openBlock)(),(0,l.createElementBlock)(`div`,{ref_key:`routerViewRef`,ref:r,class:`lumal-router-view`},[i.value?((0,l.openBlock)(),(0,l.createElementBlock)(`div`,wt,[...n[0]||=[(0,l.createElementVNode)(`span`,{class:`lumal-router-view__progress-bar`},null,-1)]])):(0,l.createCommentVNode)(``,!0),(0,l.createVNode)((0,l.unref)(f.RouterView),null,{default:(0,l.withCtx)(({Component:t})=>[c.value?((0,l.openBlock)(),(0,l.createBlock)(l.Transition,{key:0,appear:``,mode:`out-in`,name:c.value},{default:(0,l.withCtx)(()=>[e.cache?((0,l.openBlock)(),(0,l.createBlock)(l.KeepAlive,{key:0,max:s.value},[((0,l.openBlock)(),(0,l.createBlock)((0,l.resolveDynamicComponent)(t),{key:e.viewKey}))],1032,[`max`])):((0,l.openBlock)(),(0,l.createBlock)((0,l.resolveDynamicComponent)(t),{key:e.viewKey}))]),_:2},1032,[`name`])):e.cache?((0,l.openBlock)(),(0,l.createBlock)(l.KeepAlive,{key:1,max:s.value},[((0,l.openBlock)(),(0,l.createBlock)((0,l.resolveDynamicComponent)(t),{key:e.viewKey}))],1032,[`max`])):((0,l.openBlock)(),(0,l.createBlock)((0,l.resolveDynamicComponent)(t),{key:e.viewKey}))]),_:1}),a.value?((0,l.openBlock)(),(0,l.createElementBlock)(`div`,Tt,[...n[1]||=[(0,l.createElementVNode)(`span`,{class:`lumal-router-view__loading-dot`},null,-1)]])):(0,l.createCommentVNode)(``,!0)],512))}}),Dt=c.t(Et,[[`__scopeId`,`data-v-3ad5cc30`]]);Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,"B",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return $e}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return et}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"L",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"R",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return nt}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return rt}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return yt}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return ht}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return ut}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return lt}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return mt}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return xt}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return bt}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return gt}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return st}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return vt}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Ct}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return ot}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return ft}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return at}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return dt}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Dt}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return ct}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return it}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return tt}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return Je}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return pt}}),Object.defineProperty(exports,"z",{enumerable:!0,get:function(){return _}});
@@ -1 +0,0 @@
1
- let e=require("vue");var t=Symbol(`lumal-permission-store`);function n(n){return(0,e.provide)(t,n),n}function r(){let n=(0,e.inject)(t,void 0);if(!n)throw Error(`[Lumal] PermissionStore 未注入,请先调用 providePermissionStore 或传入 createLumalAdmin.permissionStore。`);return n}function i(e,t,n){return(e.matched?.length?e.matched:[e]).every(e=>{let r=e.meta??{},i=r.permissions??r.permission,a=r.roles??r.role;return t.hasPermission(i,n.mode)&&t.hasRole(a,n.roleMode)})}function a(e,t){let n=e.meta?.requireLogin;return n===!1?!1:n===!0||t}function o(e,t,n){let r=e.fullPath??e.path;return{path:t,query:r?{[n]:r}:void 0}}function s(e,t,n={}){let r=new Set(n.whiteList??[]),s=n.loginPath??`/login`,c=n.redirectQueryKey??`redirect`,l=n.requireLoginByDefault??!1;e.beforeEach(e=>e.path===s||e.path&&r.has(e.path)?!0:n.isAuthenticated&&a(e,l)&&!n.isAuthenticated()?o(e,s,c):i(e,t,n)?!0:n.noAccessRedirect??!1)}function c(e){return e?Array.isArray(e)?e:[e]:[]}function l(e,t,n=`some`){let r=c(t);if(r.length===0)return!0;let i=new Set(e),a=e=>i.has(e);return n===`every`?r.every(a):r.some(a)}function u(e,t,n=`some`){return l(e,t,n)}function d(e,t,n=`some`){return l(e,t,n)}var f=(0,e.defineComponent)({__name:`LumalAccessControl`,props:{mode:{},permission:{},permissions:{},role:{},roleMode:{},roles:{},store:{}},setup(n){let r=n,i=(0,e.inject)(t,void 0),a=(0,e.computed)(()=>r.store??i),o=(0,e.computed)(()=>{let e=a.value;if(!e)return!1;let t=r.permission??r.permissions,n=r.role??r.roles;return e.hasPermission(t,r.mode)&&e.hasRole(n,r.roleMode)});return(t,n)=>o.value?(0,e.renderSlot)(t.$slots,`default`,{key:0}):(0,e.renderSlot)(t.$slots,`fallback`,{key:1})}});function p(t={}){let n=(0,e.shallowRef)([...t.permissions??[]]),r=(0,e.shallowRef)([...t.roles??[]]);return{get permissions(){return[...n.value]},get roles(){return[...r.value]},clear(){n.value=[],r.value=[]},hasPermission(e,t){return u(n.value,e,t)},hasRole(e,t){return d(r.value,e,t)},setPermissions(e){n.value=[...e]},setRoles(e){r.value=[...e]}}}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return p}});