Files
school2/public/assets/index-COxzduNb.js
T
2026-08-13 00:25:36 +08:00

20 lines
178 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/agent-B-tYZjRz.js","assets/rolldown-runtime-BgaNhQyE.js","assets/jsx-runtime-ADHq9IcL.js","assets/chunk-KS7C4IRE-CN93VkYO.js","assets/typography-C2UybztD.js","assets/tooltip-CRuv8UNz.js","assets/style-Der9vtsK.js","assets/CopyOutlined-BfEUU2AX.js","assets/es-DtKsFKpZ.js","assets/CloseCircleFilled-BARdd-Ff.js","assets/space-BqavXZJj.js","assets/button-CcpWP-mq.js","assets/ColorPresets-wH0crouI.js","assets/app-BscZ5bao.js","assets/CheckCircleFilled-D9xa2k05.js","assets/PlusOutlined-W6xCIIXs.js","assets/ExclamationCircleFilled-BF18pnJ8.js","assets/context-o-GHk4GQ.js","assets/useClosable-CCgKioKg.js","assets/mergeProps-yLeqvqMM.js","assets/useModal-DQaWKI1g.js","assets/config-provider-BFg4S-AS.js","assets/empty-oL0hNsAh.js","assets/avatar-ZeeUR_v9.js","assets/useBreakpoint-Dhidjsjf.js","assets/popover-DCXX8fLF.js","assets/card-BFxeciPE.js","assets/spin-BELbZOk0.js","assets/switch-BWactV-h.js","assets/tag-BMkLMUVK.js","assets/theme-D6zyXNMh.js","assets/useTranslation-DIuTqE8W.js","assets/agent-CqLbN1cd.js","assets/request-Vytbr90w.js","assets/chat-22ohU2cR.js","assets/global-CUFwSKUq.js","assets/middleware-B51zI-ZM.js","assets/divider-qVVmElWH.js","assets/dropdown-dXoRpGL-.js","assets/dropdown-DT_NhqjL.js","assets/LeftOutlined-DolIAuof.js","assets/PurePanel-CKFVxwoF.js","assets/flex-BB50-T81.js","assets/input-De-xbsfR.js","assets/SearchOutlined-B7X5pgf4.js","assets/Input-Bn-0ViX7.js","assets/EyeOutlined-DUuSYbtj.js","assets/CaretDownFilled-bW_4H-tT.js","assets/DeleteOutlined-D3Fhpkuo.js","assets/ArrowUpOutlined-BqDvHB4K.js","assets/ClearOutlined-C3IuM4M9.js","assets/UserOutlined-DjbONoy-.js","assets/chat-Iht936bQ.css","assets/conversation-B9q7UsRi.js","assets/lodash-D-pgfsxw.js","assets/DoubleRightOutlined-BDFzD9z5.js","assets/DownOutlined-DUvTsWMS.js","assets/LockOutlined-rb6chlKx.js","assets/modal-4LQWu5vA.js","assets/ClockCircleOutlined-Cn57q4yS.js","assets/LinkOutlined-B4oKj2q7.js","assets/form-CNvo0lCF.js","assets/useForm-CvzzkaGD.js","assets/row-sXyid8kB.js","assets/PictureOutlined-5m8FAlCn.js","assets/WarningFilled-CsttfMOX.js","assets/CaretUpOutlined-CCtk1ukR.js","assets/FileOutlined-e-Jre-Gv.js","assets/DownloadOutlined-CA51LTon.js","assets/WeiboOutlined-DyyhlXM5.js","assets/SmileOutlined-CZG5Mc5n.js","assets/ArrowDownOutlined-CH5xWTUL.js","assets/FileDoneOutlined-CuI9m5l0.js","assets/CheckCircleOutlined-6-W2Vwzs.js","assets/CloseCircleOutlined-CFrRsJ54.js","assets/EnvironmentOutlined-HLlZltIr.js","assets/InfoCircleOutlined-DBx8dOxc.js","assets/UploadOutlined-Cg0kzjdE.js","assets/LikeOutlined-BXSS7iVR.js","assets/PrinterOutlined-Bhc-_5gY.js","assets/QqOutlined-BUFqYSFz.js","assets/RiseOutlined-C6wo3ytm.js","assets/ShoppingOutlined-FR5CTwva.js","assets/TeamOutlined-CZDGTBQJ.js","assets/table-CG-GtmXj.js","assets/radio-CFTLacYu.js","assets/useBubbleLock-CoAwAGkH.js","assets/checkbox-DV1_nuDN.js","assets/pagination-tpFvWhSa.js","assets/zh_CN-BT8mdvr9.js","assets/XinTable-DP0Q6sQS.js","assets/XinForm-CH1TH01p.js","assets/row-DQ81_S1d.js","assets/ImageUploader-D1JVFGhR.js","assets/upload-ShUC-jzR.js","assets/progress-C2fffzqa.js","assets/tslib.es6-5i5FW2KX.js","assets/AuthButton-ZAAWoGLQ.js","assets/user-DSO6CZPD.js","assets/analysis-HuRsWqrh.js","assets/list-Ck0Qiowu.js","assets/monitor-CuC3nYI5.js","assets/workplace-s-OxdIFu.js","assets/badge-Cim9D6DD.js","assets/icon-selector-C61Svn5A.js","assets/image-uploader-DlGo9TjY.js","assets/user-selector-CgkkoJ8a.js","assets/xin-form-DEYT6JBB.js","assets/xin-table-BVM_yZu0.js","assets/403-Dob-WA64.js","assets/result-XzmMluTH.js","assets/404-DIW8STd8.js","assets/500-khIb72nh.js","assets/login-BUW1ELdl.js","assets/first-BhvoNcb6.js","assets/breadcrumb-CfUsuee6.js","assets/second-BJx2mD6Q.js","assets/third-Ct81Ekzc.js","assets/base-layout-ACunaMOz.js","assets/descriptions-DRDGXBQ6.js","assets/descriptions-WMbCZdmi.js","assets/timeline-Ct4qt3Q8.js","assets/fix-header-D3LqcpUo.js","assets/fail-K3BVW2IV.js","assets/info-6MwRQ0kd.js","assets/success-BAl2uO9x.js","assets/warning-B6c3xQrg.js","assets/activity-B8KogG0M.js","assets/image-CBJbXNqF.js","assets/ai-Ch0jvFq_.js","assets/alert-DNqab9Ea.js","assets/carousel-C8wr3J-3.js","assets/category-CjRzbpx2.js","assets/item-BX4BeOlE.js","assets/config-CUA21dC7.js","assets/popconfirm-DvhP82OV.js","assets/dept-BD4fmGPs.js","assets/useAuth-Bjm0LMjE.js","assets/dict-DG6U7GJG.js","assets/dict-D1oPhWwT.js","assets/item-D5mKxo3b.js","assets/file-DA8zhkM-.js","assets/grid-nav-Ct7LoXI6.js","assets/info-BtVzNRA5.js","assets/mail-BZ_fP89w.js","assets/role-BHuprRit.js","assets/relativeTime-jamE_cdZ.js","assets/rule-CbggZoQ1.js","assets/storage-BWYMnyuK.js","assets/user-CK6rMVjg.js","assets/profile-CrJjtc8D.js","assets/useMobile-HH98Zm18.js"])))=>i.map(i=>d[i]);
import{i as e}from"./rolldown-runtime-BgaNhQyE.js";import{Bn as t,Dr as n,Jn as r,Ln as i,Tr as a,Vn as o,Zn as s,t as c,zn as l}from"./jsx-runtime-ADHq9IcL.js";import{a as u,c as d,i as f,n as p,o as m,r as h,t as g}from"./chunk-KS7C4IRE-CN93VkYO.js";import{i as _,n as v,r as y,t as b}from"./global-CUFwSKUq.js";import{I as x,L as S,N as C,_ as w,c as T,h as E,i as ee,m as te,n as D,t as ne,v as re,y as ie}from"./lodash-D-pgfsxw.js";import{t as ae}from"./tooltip-CRuv8UNz.js";import{t as oe}from"./config-provider-BFg4S-AS.js";import{t as se}from"./space-BqavXZJj.js";import{t as O}from"./button-CcpWP-mq.js";import{t as ce}from"./app-BscZ5bao.js";import{r as le}from"./DoubleRightOutlined-BDFzD9z5.js";import{t as ue}from"./empty-oL0hNsAh.js";import{t as de}from"./SearchOutlined-B7X5pgf4.js";import{t as fe}from"./avatar-ZeeUR_v9.js";import{t as pe}from"./breadcrumb-CfUsuee6.js";import{a as me,i as he,n as ge,o as _e,s as ve}from"./dropdown-DT_NhqjL.js";import{n as ye}from"./LockOutlined-rb6chlKx.js";import{n as k,t as be}from"./row-DQ81_S1d.js";import{t as A}from"./divider-qVVmElWH.js";import{t as xe}from"./modal-4LQWu5vA.js";import{t as Se}from"./dropdown-dXoRpGL-.js";import{t as Ce}from"./input-De-xbsfR.js";import{n as we}from"./CopyOutlined-BfEUU2AX.js";import{r as Te}from"./PictureOutlined-5m8FAlCn.js";import{t as Ee}from"./switch-BWactV-h.js";import{t as j}from"./theme-D6zyXNMh.js";import{t as De}from"./ArrowDownOutlined-CH5xWTUL.js";import{t as Oe}from"./ArrowUpOutlined-BqDvHB4K.js";import{r as ke}from"./InfoCircleOutlined-DBx8dOxc.js";import{t as Ae}from"./UserOutlined-DjbONoy-.js";import{i as je,t as Me}from"./user-DSO6CZPD.js";import{n as Ne,r as Pe,t as M}from"./useTranslation-DIuTqE8W.js";import{i as Fe,r as Ie,t as Le}from"./login-BUW1ELdl.js";import{t as N}from"./useMobile-HH98Zm18.js";import{t as Re}from"./dict-D1oPhWwT.js";import{t as ze}from"./relativeTime-jamE_cdZ.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function Be(e,t,n){return typeof n==`boolean`?n:e.length?!0:r(t).some(e=>e.type===he)}var P=e(n()),F=({suffixCls:e,tagName:t,displayName:n})=>n=>P.forwardRef((r,i)=>P.createElement(n,{ref:i,suffixCls:e,tagName:t,...r})),Ve=P.forwardRef((e,t)=>{let{prefixCls:n,suffixCls:r,className:a,tagName:s,...c}=e,{getPrefixCls:l}=P.useContext(i),u=l(`layout`,n),[d,f]=_e(u),p=r?`${u}-${r}`:u;return P.createElement(s,{className:o(n||p,a,d,f),ref:t,...c})}),He=P.forwardRef((e,n)=>{let{direction:r}=P.useContext(i),[a,c]=P.useState([]),{prefixCls:u,className:d,rootClassName:f,children:p,hasSider:m,tagName:h,style:g,..._}=e,v=s(_,[`suffixCls`]),{getPrefixCls:y,className:b,style:x}=l(`layout`),S=y(`layout`,u),C=Be(a,p,m),[w,T]=_e(S),E=o(S,{[`${S}-has-sider`]:C,[`${S}-rtl`]:r===`rtl`},b,d,f,w,T),ee=P.useMemo(()=>({siderHook:{addSider:e=>{c(n=>[].concat(t(n),[e]))},removeSider:e=>{c(t=>t.filter(t=>t!==e))}}}),[]);return P.createElement(ve.Provider,{value:ee},P.createElement(h,{ref:n,className:E,style:{...x,...g},...v},p))}),Ue=F({tagName:`div`,displayName:`Layout`})(He),We=F({suffixCls:`header`,tagName:`header`,displayName:`Header`})(Ve),Ge=F({suffixCls:`footer`,tagName:`footer`,displayName:`Footer`})(Ve),Ke=F({suffixCls:`content`,tagName:`main`,displayName:`Content`})(Ve),I=Ue;I.Header=We,I.Footer=Ge,I.Content=Ke,I.Sider=he,I._InternalSiderContext=me;var qe={type:`3rdParty`,init(e){Pe(e.options.react),Ne(e)}},Je=e(a(),1),L=c(),{useToken:Ye}=j,Xe=()=>{let{token:e}=Ye(),{t}=M(),n=m(),r=b(e=>e.themeDrawer),i=b(e=>e.setThemeDrawer),a=Me(e=>e.userinfo),o=Me(e=>e.logout),s=N(),[c,l]=(0,P.useState)(!1),[u,d]=(0,P.useState)(!1),f=()=>{let e=document.documentElement;document.fullscreenElement?document.exitFullscreen().then(()=>{l(!1)}):e.requestFullscreen().then(()=>{l(!0)})},p=[{key:`1`,label:t(`layout.profile`),icon:(0,L.jsx)(Ae,{}),onClick:()=>n(`/user/profile`)},{key:`2`,label:t(`layout.logout`),icon:(0,L.jsx)(ee,{}),onClick:async()=>{o().then(()=>{Te.success(t(`layout.logoutSuccess`)),window.location.href=`/login`}).catch(()=>{Te.error(t(`layout.logoutFailed`))})}}];return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(xe,{closable:!1,open:u,footer:null,style:{top:40,width:600},styles:{body:{maxHeight:`80vh`},container:{padding:0}},onCancel:()=>d(!1),children:[(0,L.jsxs)(`div`,{className:`p-5`,children:[(0,L.jsx)(Ce,{size:`large`,placeholder:t(`layout.searchPlaceholder`),prefix:(0,L.jsx)(de,{})}),(0,L.jsx)(`div`,{className:`mt-5`,children:(0,L.jsx)(ue,{})})]}),(0,L.jsxs)(se,{className:`mt-5 flex align-center pl-5 pr-5 pt-2.5 pb-2.5`,style:{borderTop:`1px solid `+e.colorBorder},children:[(0,L.jsx)(we,{}),` `,(0,L.jsx)(`span`,{className:`mr-4`,children:t(`layout.searchConfirm`)}),(0,L.jsx)(Oe,{}),(0,L.jsx)(De,{}),` `,(0,L.jsx)(`span`,{className:`mr-4`,children:t(`layout.searchSwitch`)}),`Esc `,(0,L.jsx)(`span`,{className:`mr-2`,children:t(`layout.searchClose`)})]})]}),(0,L.jsxs)(se,{children:[!s&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(O,{icon:(0,L.jsx)(w,{}),size:`large`,type:`text`,onClick:()=>window.open(`https://xin-admin.com`)}),(0,L.jsx)(O,{icon:(0,L.jsx)(ke,{}),size:`large`,type:`text`,onClick:()=>window.open(`https://github.com/xin-admin/xin-admin-ui`)}),(0,L.jsx)(O,{icon:(0,L.jsx)(de,{}),size:`large`,type:`text`,onClick:()=>d(!0)}),(0,L.jsx)(O,{onClick:f,icon:c?(0,L.jsx)(ie,{}):(0,L.jsx)(re,{}),size:`large`,type:`text`}),(0,L.jsx)(Ie,{size:`large`,type:`text`}),(0,L.jsx)(O,{onClick:()=>i(!r),icon:(0,L.jsx)(T,{}),size:`large`,type:`text`})]}),a?(0,L.jsx)(Se,{menu:{items:p},children:(0,L.jsxs)(O,{size:`large`,type:`text`,children:[(0,L.jsx)(`div`,{children:a.nickname||a.username}),(0,L.jsx)(fe,{src:a.avatar_url?a.avatar_url:null,size:`small`})]})}):null]})]})};function Ze(e){let t={},n=(e,r=[])=>{if(!e.key)return;let i={href:e.path,title:e.name,icon:e.icon,local:e.local},a=[...r,i];t[e.key]=a,e.children&&e.children.length&&e.children.forEach(e=>n(e,a))};return e.forEach(e=>n(e)),t}function Qe(e,t){for(let n of e){if(n.path===t)return n;if(n.children&&n.children.length>0){let e=Qe(n.children,t);if(e)return e}}return null}function $e(e,t,n=[]){for(let r of e){if(!r.key)continue;let e=[...n,r.key];if(r.path===t)return e;if(r.children&&r.children.length>0){let n=$e(r.children,t,e);if(n)return n}}return null}function R(e,t){for(let n of e){if(n.key===t)return n;if(n.children&&n.children.length>0){let e=R(n.children,t);if(e)return e}}return null}var et=(0,P.createContext)(null),tt=({children:e})=>{let t=u(),[n,r]=(0,P.useState)([]),[i,a]=(0,P.useState)(),[o,s]=(0,P.useState)([]),[c,l]=(0,P.useState)(!1);return(0,P.useEffect)(()=>{je().then(({data:e})=>{let t=e.data.menus;r(t)})},[]),(0,P.useEffect)(()=>{let e=t.pathname,r=$e(n,e);r&&r.length&&(s(r),a(r[0]))},[n]),(0,L.jsx)(et.Provider,{value:{menus:n,parentKey:i,selectKey:o,collapsed:c,setParentKey:a,setCollapsed:l,setSelectKey:s},children:e})},z=()=>{let e=(0,P.useContext)(et);if(!e)throw Error(`useLayoutContext must be used within LayoutProvider`);return e},B=(e,t)=>e.reduce((e,n)=>{if(![`route`,`menu`].includes(n.type)||!n.hidden)return e;let r={label:n.local?t(n.local):n.name,icon:n.icon?(0,L.jsx)(D,{name:n.icon}):void 0,key:n.key};return n.type===`menu`&&n.children?.length&&(r.children=B(n.children,t)),e.push(r),e},[]),V=()=>{let{t:e}=M(),t=N(),n=m(),[r,i]=(0,P.useState)([]),a=b(e=>e.layout),{menus:o,parentKey:s,selectKey:c,setSelectKey:l,setParentKey:u}=z();(0,P.useEffect)(()=>{if(t){i(B(o,e));return}if([`columns`,`mix`].includes(a)&&s){let t=o.find(e=>e.key===s);i(B(t?.children||[],e))}else i(B(o,e))},[o,a,s,e,t]);let d=e=>{l(e),[`top`,`side`].includes(a)&&u(e[e.length-1]);let t=R(o,e[0]);if(!(!t||!t.key)){if(t.type===`route`&&t.link){window.open(t.path,`_blank`);return}if(t.type===`route`&&t.path){n(t.path);return}}};return(0,L.jsx)(L.Fragment,{children:r.length>0&&(0,L.jsx)(ge,{className:`border-b-0 flex-1`,mode:a===`top`&&!t?`horizontal`:`inline`,items:r,onSelect:e=>d(e.keyPath),selectedKeys:c})})},nt=[{title:(0,L.jsx)(w,{})}],rt=()=>{let{t:e}=M(),t=u(),{menus:n}=z(),[r,i]=(0,P.useState)(nt),a=(0,P.useMemo)(()=>Ze(n),[n]);return(0,P.useEffect)(()=>{let r=t.pathname,o=Qe(n,r);if(o&&o.key){let t=a[o.key];if(t){i([{title:(0,L.jsx)(w,{})},...t.map(t=>({title:(0,L.jsxs)(L.Fragment,{children:[t.icon&&(0,L.jsx)(D,{name:t.icon}),(0,L.jsx)(`span`,{children:t.local?e(t.local):t.title})]})}))]);return}}i(nt)},[e,t.pathname,a]),(0,L.jsx)(pe,{items:r})},{Header:it}=I,at=()=>{let{t:e}=M(),t=N(),n=m(),r=b(e=>e.logo),i=b(e=>e.title),a=b(e=>e.layout),o=b(e=>e.themeConfig),{menus:s,parentKey:c,collapsed:l,setCollapsed:u,setParentKey:d,setSelectKey:f}=z(),p={token:{colorTextBase:o.headerColor},components:{Menu:{activeBarBorderWidth:0,itemBg:`transparent`}}},[h,g]=(0,P.useState)([]);(0,P.useEffect)(()=>{g(s.filter(e=>e.hidden).map(t=>({label:t.local?e(t.local):t.name,icon:t.icon?(0,L.jsx)(D,{name:t.icon}):!1,key:t.key})))},[s,e]);let _=e=>{let t=R(s,e);if(!(!t||!t.key)&&(d(t.key),t.type!==`menu`)){if(f([t.key]),t.type===`route`&&t.link){window.open(t.path,`_blank`);return}if(t.type===`route`&&t.path){n(t.path);return}}};return(0,L.jsx)(oe,{theme:p,children:t?(0,L.jsxs)(it,{className:`flex sticky z-1 top-0 backdrop-blur-xs justify-between items-center`,children:[(0,L.jsxs)(`div`,{className:`flex items-center`,children:[(0,L.jsx)(`img`,{className:`w-9 mr-5`,src:r,alt:`logo`}),(0,L.jsx)(`span`,{className:`font-semibold text-[20px] mr-2`,children:i})]}),(0,L.jsx)(Xe,{})]}):(0,L.jsxs)(it,{className:`flex sticky z-1 top-0 backdrop-blur-xs`,style:{borderBottom:`1px solid `+o.colorBorder},children:[(0,L.jsxs)(`div`,{className:`flex items-center relative`,children:[(0,L.jsx)(`img`,{className:`h-8`,src:r,alt:`logo`}),(0,L.jsx)(`span`,{className:`font-semibold text-[20px] ml-5 mr-5`,children:i}),a!==`top`&&(0,L.jsx)(O,{type:`text`,className:`text-[16px] mr-2.5`,onClick:()=>u(!l),children:l?(0,L.jsx)(te,{}):(0,L.jsx)(E,{})}),[`columns`,`side`].includes(a)&&(0,L.jsx)(rt,{})]}),(0,L.jsxs)(`div`,{className:`overflow-hidden flex-1`,children:[a==`top`&&(0,L.jsx)(V,{}),a==`mix`&&(0,L.jsx)(ge,{className:`border-b-0 w-full`,mode:`horizontal`,items:h,onSelect:e=>_(e.key),selectedKeys:[c]})]}),(0,L.jsx)(Xe,{})]})})},{Footer:ot}=I,st=()=>{let e=new Date().getFullYear(),t=b(e=>e.themeConfig);return(0,L.jsxs)(L.Fragment,{children:[t.fixedFooter&&(0,L.jsx)(`div`,{className:`h-10`}),(0,L.jsx)(ot,{className:(t.fixedFooter?`sticky`:`relative`)+` z-10 w-full bottom-0 pt-2.5 pb-2.5`,style:{borderTop:`1px solid `+t.colorBorder},children:(0,L.jsxs)(`div`,{className:`flex items-center justify-center w-full`,children:[`Xin Admin ©`,e,` Created by xiaoliu`]})})]})},ct=()=>{let e=b(e=>e.themeConfig),t=b(e=>e.themeDrawer),n=b(e=>e.setThemeDrawer),[r,i]=(0,P.useState)(!1);return(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`div`,{className:`fixed bottom-8 left-8 z-999`,children:(0,L.jsx)(O,{type:`primary`,shape:`circle`,size:`large`,icon:r?(0,L.jsx)(E,{}):(0,L.jsx)(te,{}),onClick:()=>i(!r)})}),(0,L.jsx)(C,{placement:`left`,closable:!0,onClose:()=>i(!1),open:r,styles:{section:{width:280},header:{borderBottom:`1px solid `+e.colorBorder,background:e.siderBg,color:e.siderColor},body:{padding:0,background:e.siderBg}},footer:(0,L.jsxs)(se,{children:[(0,L.jsx)(O,{icon:(0,L.jsx)(w,{}),size:`large`,type:`text`,onClick:()=>window.open(`https://xin-admin.com`)}),(0,L.jsx)(O,{icon:(0,L.jsx)(ke,{}),size:`large`,type:`text`,onClick:()=>window.open(`https://github.com/xin-admin/xin-admin-ui`)}),(0,L.jsx)(Ie,{size:`large`,type:`text`}),(0,L.jsx)(O,{onClick:()=>n(!t),icon:(0,L.jsx)(T,{}),size:`large`,type:`text`})]}),children:(0,L.jsx)(`div`,{style:{height:`100%`,overflowY:`auto`,width:`100%`,background:e.siderBg},children:(0,L.jsx)(V,{})})})]})},lt=ne(),ut={defaultAlgorithm:j.defaultAlgorithm,darkAlgorithm:j.darkAlgorithm,defaultCompactAlgorithm:[j.defaultAlgorithm,j.compactAlgorithm],darkCompactAlgorithm:[j.darkAlgorithm,j.compactAlgorithm]},dt=[{label:`layout.algorithmDefault`,value:`defaultAlgorithm`},{label:`layout.algorithmDark`,value:`darkAlgorithm`},{label:`layout.algorithmDefaultCompact`,value:`defaultCompactAlgorithm`},{label:`layout.algorithmDarkCompact`,value:`darkCompactAlgorithm`}],{useToken:ft}=j,pt=[{key:`colorPrimary`,label:`layout.colorPrimary`},{key:`colorText`,label:`layout.colorText`},{key:`colorBg`,label:`layout.colorBg`},{key:`colorSuccess`,label:`layout.colorSuccess`},{key:`colorWarning`,label:`layout.colorWarning`},{key:`colorError`,label:`layout.colorError`},{key:`bodyBg`,label:`layout.bodyBg`},{key:`footerBg`,label:`layout.footerBg`},{key:`headerBg`,label:`layout.headerBg`},{key:`headerColor`,label:`layout.headerColor`},{key:`siderBg`,label:`layout.siderBg`},{key:`siderColor`,label:`layout.siderColor`},{key:`colorBorder`,label:`layout.colorBorder`}],mt=[{key:`fixedFooter`,label:`layout.fixedFooter`,type:`switch`},{key:`borderRadius`,label:`layout.borderRadius`,type:`number`,min:0,max:30},{key:`controlHeight`,label:`layout.controlHeight`,type:`number`,min:0},{key:`headerPadding`,label:`layout.headerPadding`,type:`number`,min:0},{key:`headerHeight`,label:`layout.headerHeight`,type:`number`,min:0},{key:`siderWeight`,label:`layout.siderWeight`,type:`number`,min:0},{key:`bodyPadding`,label:`layout.bodyPadding`,type:`number`,min:0}],ht=[{background:`/static/theme/default.svg`,name:`light`,title:`layout.themeLight`},{background:`/static/theme/dark.svg`,name:`dark`,title:`layout.themeDark`}],gt=[{key:`side`,title:`layout.layoutSide`,render:e=>(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`div`,{className:`rounded-sm w-full h-6 mb-1.5`,style:{background:e.colorPrimaryBorder}}),(0,L.jsxs)(`div`,{className:`flex`,children:[(0,L.jsx)(`div`,{className:`rounded-sm h-16 w-6`,style:{background:e.colorPrimary}}),(0,L.jsx)(`div`,{className:`rounded-sm flex-1 ml-1.5`,style:{background:e.colorPrimaryBg}})]})]})},{key:`top`,title:`layout.layoutTop`,render:e=>(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`div`,{className:`rounded-sm h-6 w-full mb-1.5`,style:{background:e.colorPrimary}}),(0,L.jsx)(`div`,{className:`rounded-sm h-16`,style:{background:e.colorPrimaryBg}})]})},{key:`mix`,title:`layout.layoutMix`,render:e=>(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`div`,{className:`rounded-sm w-full h-6 mb-1.5`,style:{background:e.colorPrimary}}),(0,L.jsxs)(`div`,{className:`flex`,children:[(0,L.jsx)(`div`,{className:`rounded-sm h-16 w-6`,style:{background:e.colorPrimary}}),(0,L.jsx)(`div`,{className:`rounded-sm flex-1 ml-1.5`,style:{background:e.colorPrimaryBg}})]})]})},{key:`columns`,title:`layout.layoutColumns`,render:e=>(0,L.jsxs)(`div`,{className:`flex`,children:[(0,L.jsx)(`div`,{className:`rounded-sm mr-1.5 w-3 h-24`,style:{background:e.colorPrimary}}),(0,L.jsx)(`div`,{className:`rounded-sm mr-1.5 w-6 h-24`,style:{background:e.colorPrimaryHover}}),(0,L.jsx)(`div`,{className:`rounded-sm flex-auto h-24`,style:{background:e.colorPrimaryBg}})]})}],_t=()=>{let{t:e}=M(),{token:t}=ft(),n=b(e=>e.themeDrawer),r=b(e=>e.setThemeDrawer),i=b(e=>e.setThemeConfig),a=b(e=>e.themeConfig),o=b(e=>e.layout),s=b(e=>e.setLayout),c=dt?.map(t=>({...t,label:e(t.label)}))||[],l=(0,lt.debounce)((e,t)=>{i({...a,[e]:t})},400,{leading:!0,trailing:!1});return(0,L.jsxs)(C,{styles:{body:{paddingTop:10}},placement:`right`,closable:!1,onClose:()=>r(!1),open:n,footer:(0,L.jsx)(`div`,{className:`flex w-full justify-between`,children:(0,L.jsx)(O,{onClick:()=>{i({...v,..._})},children:e(`layout.resetTheme`)})}),children:[(0,L.jsx)(A,{children:e(`layout.layoutStyle`)}),(0,L.jsx)(be,{gutter:[20,20],children:gt.map(({key:n,title:r,render:i})=>(0,L.jsx)(k,{span:12,children:(0,L.jsx)(ae,{title:e(r),children:(0,L.jsx)(`div`,{className:`p-2 rounded-lg cursor-pointer`,style:{boxShadow:t.boxShadow,borderRadius:t.borderRadius,border:o===n?`2px solid ${t.colorPrimary}`:`2px solid transparent`},onClick:()=>s(n),children:i(t)})})},n))}),(0,L.jsx)(A,{children:e(`layout.presetTheme`)}),(0,L.jsxs)(be,{gutter:20,onClick:e=>{let t=e.target.closest(`[data-theme]`);if(!t)return;let n=t.dataset.theme,r={dark:y,light:_};r[n]&&i({...a,...r[n]})},children:[ht.map(n=>(0,L.jsxs)(k,{span:8,className:`mb-2.5`,children:[(0,L.jsx)(`div`,{"data-theme":n.name,className:`cursor-pointer overflow-hidden border-solid`,style:{borderRadius:t.borderRadius,borderWidth:a.themeScheme===n.name?`2px`:`0px`,borderColor:a.themeScheme===n.name?t.colorPrimary:`transparent`},children:(0,L.jsx)(`img`,{src:n.background,alt:n.name})}),(0,L.jsx)(`div`,{className:`text-center mt-1.5`,children:e(n.title)})]},n.name)),(0,L.jsx)(k,{span:24,className:`mb-2.5`,children:(0,L.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,L.jsx)(`div`,{children:e(`layout.themeAlgorithm`)}),(0,L.jsx)(le,{value:a.algorithm,style:{width:160},onChange:e=>l(`algorithm`,e),options:c})]})})]}),(0,L.jsx)(A,{children:e(`layout.themeColor`)}),pt.map(({key:t,label:n})=>(0,L.jsxs)(`div`,{className:`flex justify-between items-center mb-2.5`,children:[(0,L.jsx)(`div`,{children:e(n)}),(0,L.jsx)(x,{showText:!0,value:a[t],onChange:e=>l(t,e.toCssString())})]},t)),(0,L.jsx)(A,{children:e(`layout.styleConfig`)}),mt.map(({key:t,label:n,type:r,...i})=>(0,L.jsxs)(`div`,{className:`flex justify-between items-center mb-2.5`,children:[(0,L.jsx)(`div`,{children:e(n)}),r===`switch`?(0,L.jsx)(Ee,{value:a[t],onChange:e=>l(t,e)}):(0,L.jsx)(S,{value:a[t],onChange:e=>l(t,e),...i})]},t))]})},vt=()=>{let{t:e}=M(),t=u(),n=b(e=>e.title),{menus:r}=z();return(0,P.useEffect)(()=>{let i=n||`Xin Admin`,a=Qe(r,t.pathname);if(!a){document.title=i;return}let o=a.local?e(a.local):a.name;o?document.title=o+` - `+i:document.title=i},[t.pathname,n,e,r]),null},{useToken:yt}=j,bt=()=>{let{t:e}=M(),{token:t}=yt(),n=m(),{menus:r,parentKey:i,collapsed:a,setParentKey:o,setSelectKey:s}=z(),c=b(e=>e.themeConfig),l=e=>{if(e.key&&(o(e.key),e.type!==`menu`)){if(s([e.key]),e.type===`route`&&e.link){window.open(e.path,`_blank`);return}if(e.type===`route`&&e.path){n(e.path);return}}};return(0,L.jsxs)(`div`,{className:`flex h-full`,children:[(0,L.jsx)(`div`,{className:`box-border shrink-0 h-full overflow-auto`,style:{borderRight:a?`none`:`1px solid `+c.colorBorder,width:79},children:r.filter(e=>e.hidden).map(n=>(0,L.jsxs)(`div`,{style:{backgroundColor:i===n.key?t.colorPrimaryBg:`transparent`,color:i===n.key?t.colorPrimary:c.siderColor},className:`flex items-center justify-center flex-col p-2 mb-2 pt-3 pb-3 cursor-pointer`,onClick:()=>l(n),children:[(0,L.jsx)(D,{name:n.icon,style:{fontSize:18}}),(0,L.jsx)(`span`,{className:`mt-1 truncate w-full text-center`,children:n.local?e(n.local):n.name})]},n.key))}),!a&&(0,L.jsx)(`div`,{className:`flex-1 h-full overflow-y-auto`,children:(0,L.jsx)(V,{})})]})},{Content:xt,Sider:St}=I,Ct=()=>{let e=N(),t=b(e=>e.themeConfig),n=b(e=>e.layout),[r,i]=(0,P.useState)(226),{menus:a,collapsed:o,parentKey:s}=z();return(0,P.useEffect)(()=>{let e=t.siderWeight?t.siderWeight:226,r=n===`columns`?79:0,o=a.find(e=>e.key===s);[`mix`,`columns`].includes(n)?o?.children&&o?.children.length?i(r+e):i(r):i(e)},[t,n,a,s]),(0,L.jsxs)(I,{className:`min-h-screen`,style:{background:t.background},children:[(0,L.jsx)(vt,{}),(0,L.jsx)(_t,{}),(0,L.jsx)(at,{}),e&&(0,L.jsx)(ct,{}),(0,L.jsxs)(I,{hasSider:!0,className:`relative`,children:[n!==`top`&&!e&&(0,L.jsx)(St,{collapsed:o,width:r,style:{borderRight:`1px solid `+t.colorBorder,height:`calc(100vh - ${t.headerHeight}px)`,top:t.headerHeight,overflowY:`auto`,overflowX:`hidden`,position:`sticky`},children:n===`columns`?(0,L.jsx)(bt,{}):(0,L.jsx)(V,{})}),(0,L.jsxs)(I,{children:[(0,L.jsx)(xt,{style:{padding:t.bodyPadding},children:(0,L.jsx)(p,{})}),(0,L.jsx)(st,{})]})]})]})},wt=()=>(0,L.jsx)(tt,{children:(0,L.jsx)(Ct,{})}),H=Object.assign({"/web/pages/ai/agent/index.tsx":()=>d(()=>import(`./agent-B-tYZjRz.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33])),"/web/pages/ai/chat/index.tsx":()=>d(()=>import(`./chat-22ohU2cR.js`),__vite__mapDeps([34,1,2,3,35,36,33,4,5,6,7,8,9,21,10,15,11,12,13,14,16,17,18,19,20,23,24,25,26,37,38,39,40,41,42,43,44,45,46,47,30,48,49,50,51,31,32,52])),"/web/pages/ai/conversation/index.tsx":()=>d(()=>import(`./conversation-B9q7UsRi.js`),__vite__mapDeps([53,1,2,33,4,5,6,7,8,9,54,21,10,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,57,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,84,85,86,27,87,38,88,89,29,31,90,91,26,92,28,93,94,95,96,42,97,98,36])),"/web/pages/dashboard/analysis.tsx":()=>d(()=>import(`./analysis-HuRsWqrh.js`),__vite__mapDeps([99,1,2,84,19,5,21,10,24,12,11,55,9,15,6,40,41,22,56,44,39,85,62,86,27,87,45,8,38,88,89,66,67,47,23,25,26,92,63,100,29,18,30,71,49,78,83,31,96])),"/web/pages/dashboard/monitor.tsx":()=>d(()=>import(`./monitor-CuC3nYI5.js`),__vite__mapDeps([101,2,1,10,5,23,24,25,26,15,92,63,37,100,19,55,9,6,40,41,21,22,56,44,27,88,89,30,71,49,31])),"/web/pages/dashboard/workplace.tsx":()=>d(()=>import(`./workplace-s-OxdIFu.js`),__vite__mapDeps([102,2,1,4,5,6,7,8,9,10,22,23,24,25,103,26,15,37,59,60,100,19,55,40,41,21,56,44,27,63,88,89,29,18,12,70,75,83,98,36,33,31])),"/web/pages/example/icon-selector.tsx":()=>d(()=>import(`./icon-selector-C61Svn5A.js`),__vite__mapDeps([104,1,2,4,5,6,7,8,9,10,91,33,54,21,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,57,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,84,85,86,27,87,38,88,89,26,92,28,29,31,93,94,95,96])),"/web/pages/example/image-uploader.tsx":()=>d(()=>import(`./image-uploader-DlGo9TjY.js`),__vite__mapDeps([105,1,2,4,5,6,7,8,9,10,11,12,26,15,61,14,16,62,24,63,93,58,20,21,17,18,19,41,64,94,46,95,67,48,68,31,96])),"/web/pages/example/user-selector.tsx":()=>d(()=>import(`./user-selector-CgkkoJ8a.js`),__vite__mapDeps([106,1,2,4,5,6,7,8,9,10,91,33,54,21,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,57,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,84,85,86,27,87,38,88,89,26,92,28,29,31,93,94,95,96])),"/web/pages/example/xin-form.tsx":()=>d(()=>import(`./xin-form-DEYT6JBB.js`),__vite__mapDeps([107,1,2,4,5,6,7,8,9,10,11,12,91,33,54,21,14,15,16,17,18,19,24,20,40,41,55,22,56,44,25,39,57,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,84,85,86,27,87,38,88,89,26,92,28,29,31,93,94,95,96])),"/web/pages/example/xin-table.tsx":()=>d(()=>import(`./xin-table-BVM_yZu0.js`),__vite__mapDeps([108,2,1,11,12,29,5,18,19,15,72,90,54,21,10,14,9,16,17,6,24,20,40,41,55,22,56,44,25,39,57,37,45,8,58,59,60,61,62,63,43,46,7,64,65,66,67,47,48,68,69,70,71,49,50,73,74,75,76,77,78,79,80,81,82,83,51,84,85,86,27,87,38,88,89,91,33,26,92,28,31,93,94,95,96,42,97,98,36])),"/web/pages/exception/403.tsx":()=>d(()=>import(`./403-Dob-WA64.js`),__vite__mapDeps([109,1,2,11,12,26,15,110,14,9,16,65])),"/web/pages/exception/404.tsx":()=>d(()=>import(`./404-DIW8STd8.js`),__vite__mapDeps([111,1,2,11,12,26,15,110,14,9,16,65])),"/web/pages/exception/500.tsx":()=>d(()=>import(`./500-khIb72nh.js`),__vite__mapDeps([112,1,2,11,12,26,15,110,14,9,16,65])),"/web/pages/login/index.tsx":()=>d(()=>import(`./login-BUW1ELdl.js`).then(e=>e.n),__vite__mapDeps([113,1,2,3,35,36,33,4,5,6,7,8,9,10,11,12,57,87,86,92,63,24,37,38,39,40,41,21,61,14,16,62,43,44,45,46,89,69,80,51,98,31])),"/web/pages/multi-menu/first.tsx":()=>d(()=>import(`./first-BhvoNcb6.js`),__vite__mapDeps([114,2,1,10,5,11,12,115,56,39,40,41,21,26,15,92,63,24])),"/web/pages/multi-menu/second.tsx":()=>d(()=>import(`./second-BJx2mD6Q.js`),__vite__mapDeps([116,2,1,10,5,11,12,115,56,39,40,41,21,26,15,92,63,24])),"/web/pages/multi-menu/third.tsx":()=>d(()=>import(`./third-Ct81Ekzc.js`),__vite__mapDeps([117,2,1,10,5,11,12,115,56,39,40,41,21,26,15,92,63,24])),"/web/pages/page-layout/base-layout.tsx":()=>d(()=>import(`./base-layout-ACunaMOz.js`),__vite__mapDeps([118,1,2,4,5,6,7,8,9,15,10,11,12,23,24,25,26,92,63,119,38,39,40,41,21,42,95,14,29,18,19,81,82,83,51])),"/web/pages/page-layout/descriptions.tsx":()=>d(()=>import(`./descriptions-WMbCZdmi.js`),__vite__mapDeps([120,2,1,4,5,6,7,8,9,84,19,21,10,24,12,11,55,15,40,41,22,56,44,39,85,62,86,27,87,45,38,88,89,66,67,47,23,25,26,92,63,37,59,119,42,121,29,18,68,73,79,82,51])),"/web/pages/page-layout/fix-header.tsx":()=>d(()=>import(`./fix-header-D3LqcpUo.js`),__vite__mapDeps([122,1,2,4,5,6,7,8,9,10,11,12,23,24,25,103,26,15,92,63,37,59,119,42,61,14,16,62,43,44,45,46,121,29,18,19,72,73,74,79])),"/web/pages/result/fail.tsx":()=>d(()=>import(`./fail-K3BVW2IV.js`),__vite__mapDeps([123,1,2,4,5,6,7,8,9,11,12,26,15,110,14,16,65,74])),"/web/pages/result/info.tsx":()=>d(()=>import(`./info-6MwRQ0kd.js`),__vite__mapDeps([124,1,2,11,12,26,15,110,14,9,16,65])),"/web/pages/result/success.tsx":()=>d(()=>import(`./success-BAl2uO9x.js`),__vite__mapDeps([125,1,2,11,12,26,15,110,14,9,16,65])),"/web/pages/result/warning.tsx":()=>d(()=>import(`./warning-B6c3xQrg.js`),__vite__mapDeps([126,1,2,11,12,26,15,110,14,9,16,65])),"/web/pages/system/activity/index.tsx":()=>d(()=>import(`./activity-B8KogG0M.js`),__vite__mapDeps([127,1,2,4,5,6,7,8,9,103,57,91,33,54,21,10,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,84,85,86,27,87,38,88,89,26,92,28,29,31,93,94,95,96,128,90,42,97,98,36])),"/web/pages/system/ai.tsx":()=>d(()=>import(`./ai-Ch0jvFq_.js`),__vite__mapDeps([129,1,2,33,4,5,6,7,8,9,54,21,10,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,57,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,130,91,84,85,86,27,87,38,88,89,26,92,28,29,31,93,94,95,96])),"/web/pages/system/carousel/index.tsx":()=>d(()=>import(`./carousel-C8wr3J-3.js`),__vite__mapDeps([131,1,2,4,5,6,7,8,9,103,57,91,33,54,21,10,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,84,85,86,27,87,38,88,89,26,92,28,29,31,93,94,95,96,128,90,42,97,98,36])),"/web/pages/system/category/index.tsx":()=>d(()=>import(`./category-CjRzbpx2.js`),__vite__mapDeps([132,1,2,3,4,5,6,7,8,9,54,21,10,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,57,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,103,31,90,84,85,86,27,87,38,88,89,91,33,26,92,28,29,93,94,95,96,42,97,98,36])),"/web/pages/system/category/item.tsx":()=>d(()=>import(`./item-BX4BeOlE.js`),__vite__mapDeps([133,1,2,3,4,5,6,7,8,9,10,11,12,40,103,57,91,33,54,21,14,15,16,17,18,19,24,20,41,55,22,56,44,25,39,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,84,85,86,27,87,38,88,89,26,92,28,29,31,93,94,95,96,128,90,42,97,98,36])),"/web/pages/system/config.tsx":()=>d(()=>import(`./config-CUA21dC7.js`),__vite__mapDeps([134,1,2,33,4,5,6,7,8,9,54,21,10,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,57,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,91,84,85,86,27,87,38,88,89,26,92,28,29,31,93,94,95,96,135])),"/web/pages/system/dept.tsx":()=>d(()=>import(`./dept-BD4fmGPs.js`),__vite__mapDeps([136,1,2,33,4,5,6,7,8,9,54,21,10,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,57,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,130,84,85,86,27,87,38,88,89,91,26,92,28,29,31,93,94,95,96,135,97,98,36,137])),"/web/pages/system/dict/index.tsx":()=>d(()=>import(`./dict-DG6U7GJG.js`),__vite__mapDeps([138,1,2,3,4,5,6,7,8,9,54,21,10,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,57,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,103,31,139,36,33,90,84,85,86,27,87,38,88,89,91,26,92,28,29,93,94,95,96,42,97,98])),"/web/pages/system/dict/item.tsx":()=>d(()=>import(`./item-D5mKxo3b.js`),__vite__mapDeps([140,1,2,3,4,5,6,7,8,9,10,11,12,40,103,57,91,33,54,21,14,15,16,17,18,19,24,20,41,55,22,56,44,25,39,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,84,85,86,27,87,38,88,89,26,92,28,29,31,93,94,95,96,90,42,97,98,36])),"/web/pages/system/file.tsx":()=>d(()=>import(`./file-DA8zhkM-.js`),__vite__mapDeps([141,1,2,33,4,5,6,7,8,9,54,21,10,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,57,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,84,85,86,27,87,38,88,89,91,26,92,28,29,31,93,94,95,96,119,128])),"/web/pages/system/grid-nav/index.tsx":()=>d(()=>import(`./grid-nav-Ct7LoXI6.js`),__vite__mapDeps([142,1,2,4,5,6,7,8,9,103,57,91,33,54,21,10,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,84,85,86,27,87,38,88,89,26,92,28,29,31,93,94,95,96,128,90,42,97,98,36])),"/web/pages/system/info.tsx":()=>d(()=>import(`./info-BtVzNRA5.js`),__vite__mapDeps([143,2,1,4,5,6,7,8,9,23,24,25,26,15,37,60,121,12,29,18,19,76,80,51,31])),"/web/pages/system/mail.tsx":()=>d(()=>import(`./mail-BZ_fP89w.js`),__vite__mapDeps([144,1,2,33,4,5,6,7,8,9,54,21,10,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,57,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,91,84,85,86,27,87,38,88,89,26,92,28,29,31,93,94,95,96])),"/web/pages/system/role.tsx":()=>d(()=>import(`./role-BHuprRit.js`),__vite__mapDeps([145,1,2,33,4,5,6,7,8,9,54,21,10,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,57,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,84,85,86,27,87,38,88,89,26,92,28,29,31,146,90,91,93,94,95,96,42,97,98,36])),"/web/pages/system/rule.tsx":()=>d(()=>import(`./rule-CbggZoQ1.js`),__vite__mapDeps([147,1,2,33,4,5,6,7,8,9,54,21,10,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,57,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,103,28,29,31,139,36,146,90,84,85,86,27,87,38,88,89,91,26,92,93,94,95,96,42,97,98,137])),"/web/pages/system/storage.tsx":()=>d(()=>import(`./storage-BWYMnyuK.js`),__vite__mapDeps([148,1,2,33,4,5,6,7,8,9,54,21,10,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,57,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,91,84,85,86,27,87,38,88,89,26,92,28,29,31,93,94,95,96])),"/web/pages/system/user.tsx":()=>d(()=>import(`./user-CK6rMVjg.js`),__vite__mapDeps([149,1,2,4,5,6,7,8,9,54,21,10,14,15,16,17,18,19,24,20,11,12,40,41,55,22,56,44,25,39,57,37,45,58,59,60,61,62,63,43,46,64,65,66,67,47,48,68,69,70,71,49,50,72,73,74,75,76,77,78,79,80,81,82,83,51,23,29,98,36,33,31,146,90,84,85,86,27,87,38,88,89,91,26,92,28,93,94,95,96,42,97,137])),"/web/pages/user/profile.tsx":()=>d(()=>import(`./profile-CrJjtc8D.js`),__vite__mapDeps([150,1,2,4,5,6,7,8,9,10,11,12,23,24,25,57,85,62,86,26,15,61,14,16,63,43,44,45,46,100,19,55,40,41,21,22,56,27,88,89,64,17,29,18,94,95,67,48,68,73,74,75,77,51,98,36,33,31,151]))}),Tt=[`/login`];function Et(e){return(0,L.jsx)(P.Suspense,{fallback:null,children:(0,L.jsx)((0,P.lazy)(e),{})})}function Dt(){let e=[];for(let t in H){let n=t.replace(`/web/pages`,``).replace(/\.tsx$/,``).replace(/\/index$/,``);n||=`/`,!Tt.includes(n)&&e.push({id:n,path:n,element:Et(H[t])})}return e}function Ot(){return f([{Component:wt,children:[...Dt(),{path:`*`,element:Et(H[`/web/pages/result/404.tsx`])}]},{path:`/`,element:(0,L.jsx)(g,{to:`/system/category`})},{path:`login`,element:(0,L.jsx)(Le,{})}])}function kt(){let{message:e,modal:t,notification:n}=ce.useApp();return window.$message=e,window.$modal=t,window.$notification=n,null}var At=({children:e})=>{let t=b(e=>e.themeConfig),{antdLocale:n}=Fe();return(0,L.jsx)(oe,{theme:(0,P.useMemo)(()=>({components:{Layout:{headerPadding:`0 `+t.headerPadding+`px`,headerHeight:t.headerHeight,bodyBg:t.bodyBg,footerBg:t.footerBg,headerBg:t.headerBg,headerColor:t.headerColor,siderBg:t.siderBg,footerPadding:0},Menu:{activeBarBorderWidth:0,itemBg:`transparent`,subMenuItemBg:`transparent`}},token:{colorPrimary:t.colorPrimary,colorBgBase:t.colorBg,colorTextBase:t.colorText,colorError:t.colorError,colorInfo:t.colorPrimary,colorLink:t.colorPrimary,colorSuccess:t.colorSuccess,colorWarning:t.colorWarning,borderRadius:t.borderRadius,controlHeight:t.controlHeight},algorithm:t.algorithm?ut[t.algorithm]:void 0}),[t]),locale:n,children:(0,L.jsxs)(ce,{children:[(0,L.jsx)(kt,{}),e]})})},jt=()=>{let{changeLanguage:e}=Fe(),t=Me(e=>e.info),n=b(e=>e.initWebInfo),r=Re(e=>e.initDict),[i,a]=(0,P.useState)(),o=async()=>{n(),await r(),await e(localStorage.getItem(`i18nextLng`)||`zh`),localStorage.getItem(`token`)?await t():window.location.pathname!==`/login`&&(window.location.href=`/login`)};return(0,P.useEffect)(()=>{o(),a(Ot())},[]),(0,L.jsx)(At,{children:i&&(0,L.jsx)(h,{router:i})})},U=e=>typeof e==`string`,W=()=>{let e,t,n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n},Mt=e=>e==null?``:``+e,Nt=(e,t,n)=>{e.forEach(e=>{t[e]&&(n[e]=t[e])})},Pt=/###/g,Ft=e=>e&&e.indexOf(`###`)>-1?e.replace(Pt,`.`):e,It=e=>!e||U(e),G=(e,t,n)=>{let r=U(t)?t.split(`.`):t,i=0;for(;i<r.length-1;){if(It(e))return{};let t=Ft(r[i]);!e[t]&&n&&(e[t]=new n),e=Object.prototype.hasOwnProperty.call(e,t)?e[t]:{},++i}return It(e)?{}:{obj:e,k:Ft(r[i])}},Lt=(e,t,n)=>{let{obj:r,k:i}=G(e,t,Object);if(r!==void 0||t.length===1){r[i]=n;return}let a=t[t.length-1],o=t.slice(0,t.length-1),s=G(e,o,Object);for(;s.obj===void 0&&o.length;)a=`${o[o.length-1]}.${a}`,o=o.slice(0,o.length-1),s=G(e,o,Object),s?.obj&&s.obj[`${s.k}.${a}`]!==void 0&&(s.obj=void 0);s.obj[`${s.k}.${a}`]=n},Rt=(e,t,n,r)=>{let{obj:i,k:a}=G(e,t,Object);i[a]=i[a]||[],i[a].push(n)},K=(e,t)=>{let{obj:n,k:r}=G(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,r))return n[r]},zt=(e,t,n)=>{let r=K(e,n);return r===void 0?K(t,n):r},Bt=(e,t,n)=>{for(let r in t)r!==`__proto__`&&r!==`constructor`&&(r in e?U(e[r])||e[r]instanceof String||U(t[r])||t[r]instanceof String?n&&(e[r]=t[r]):Bt(e[r],t[r],n):e[r]=t[r]);return e},q=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,`\\$&`),Vt={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`,"/":`&#x2F;`},Ht=e=>U(e)?e.replace(/[&<>"'\/]/g,e=>Vt[e]):e,Ut=class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){let t=this.regExpMap.get(e);if(t!==void 0)return t;let n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}},Wt=[` `,`,`,`?`,`!`,`;`],Gt=new Ut(20),Kt=(e,t,n)=>{t||=``,n||=``;let r=Wt.filter(e=>t.indexOf(e)<0&&n.indexOf(e)<0);if(r.length===0)return!0;let i=Gt.getRegExp(`(${r.map(e=>e===`?`?`\\?`:e).join(`|`)})`),a=!i.test(e);if(!a){let t=e.indexOf(n);t>0&&!i.test(e.substring(0,t))&&(a=!0)}return a},qt=(e,t,n=`.`)=>{if(!e)return;if(e[t])return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;let r=t.split(n),i=e;for(let e=0;e<r.length;){if(!i||typeof i!=`object`)return;let t,a=``;for(let o=e;o<r.length;++o)if(o!==e&&(a+=n),a+=r[o],t=i[a],t!==void 0){if([`string`,`number`,`boolean`].indexOf(typeof t)>-1&&o<r.length-1)continue;e+=o-e+1;break}i=t}return i},J=e=>e?.replace(/_/g,`-`),Jt={type:`logger`,log(e){this.output(`log`,e)},warn(e){this.output(`warn`,e)},error(e){this.output(`error`,e)},output(e,t){console?.[e]?.apply?.(console,t)}},Y=new class e{constructor(e,t={}){this.init(e,t)}init(e,t={}){this.prefix=t.prefix||`i18next:`,this.logger=e||Jt,this.options=t,this.debug=t.debug}log(...e){return this.forward(e,`log`,``,!0)}warn(...e){return this.forward(e,`warn`,``,!0)}error(...e){return this.forward(e,`error`,``)}deprecate(...e){return this.forward(e,`warn`,`WARNING DEPRECATED: `,!0)}forward(e,t,n,r){return r&&!this.debug?null:(U(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(t){return new e(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t||=this.options,t.prefix=t.prefix||this.prefix,new e(this.logger,t)}},X=class{constructor(){this.observers={}}on(e,t){return e.split(` `).forEach(e=>{this.observers[e]||(this.observers[e]=new Map);let n=this.observers[e].get(t)||0;this.observers[e].set(t,n+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}emit(e,...t){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([e,n])=>{for(let r=0;r<n;r++)e(...t)}),this.observers[`*`]&&Array.from(this.observers[`*`].entries()).forEach(([n,r])=>{for(let i=0;i<r;i++)n.apply(n,[e,...t])})}},Yt=class extends X{constructor(e,t={ns:[`translation`],defaultNS:`translation`}){super(),this.data=e||{},this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){let t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,n,r={}){let i=r.keySeparator===void 0?this.options.keySeparator:r.keySeparator,a=r.ignoreJSONStructure===void 0?this.options.ignoreJSONStructure:r.ignoreJSONStructure,o;e.indexOf(`.`)>-1?o=e.split(`.`):(o=[e,t],n&&(Array.isArray(n)?o.push(...n):U(n)&&i?o.push(...n.split(i)):o.push(n)));let s=K(this.data,o);return!s&&!t&&!n&&e.indexOf(`.`)>-1&&(e=o[0],t=o[1],n=o.slice(2).join(`.`)),s||!a||!U(n)?s:qt(this.data?.[e]?.[t],n,i)}addResource(e,t,n,r,i={silent:!1}){let a=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,o=[e,t];n&&(o=o.concat(a?n.split(a):n)),e.indexOf(`.`)>-1&&(o=e.split(`.`),r=t,t=o[1]),this.addNamespaces(t),Lt(this.data,o,r),i.silent||this.emit(`added`,e,t,n,r)}addResources(e,t,n,r={silent:!1}){for(let r in n)(U(n[r])||Array.isArray(n[r]))&&this.addResource(e,t,r,n[r],{silent:!0});r.silent||this.emit(`added`,e,t,n)}addResourceBundle(e,t,n,r,i,a={silent:!1,skipCopy:!1}){let o=[e,t];e.indexOf(`.`)>-1&&(o=e.split(`.`),r=n,n=t,t=o[1]),this.addNamespaces(t);let s=K(this.data,o)||{};a.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?Bt(s,n,i):s={...s,...n},Lt(this.data,o,s),a.silent||this.emit(`added`,e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit(`removed`,e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||=this.options.defaultNS,this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){let t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(e=>t[e]&&Object.keys(t[e]).length>0)}toJSON(){return this.data}},Xt={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,i){return e.forEach(e=>{t=this.processors[e]?.process(t,n,r,i)??t}),t}},Zt=Symbol(`i18next/PATH_KEY`);function Qt(){let e=[],t=Object.create(null),n;return t.get=(r,i)=>(n?.revoke?.(),i===Zt?e:(e.push(i),n=Proxy.revocable(r,t),n.proxy)),Proxy.revocable(Object.create(null),t).proxy}function Z(e,t){let{[Zt]:n}=e(Qt()),r=t?.keySeparator??`.`,i=t?.nsSeparator??`:`;if(n.length>1&&i){let e=t?.ns,a=Array.isArray(e)?e:null;if(a&&a.length>1&&a.slice(1).includes(n[0]))return`${n[0]}${i}${n.slice(1).join(r)}`}return n.join(r)}var $t={},en=e=>!U(e)&&typeof e!=`boolean`&&typeof e!=`number`,tn=class e extends X{constructor(e,t={}){super(),Nt([`resourceStore`,`languageUtils`,`pluralResolver`,`interpolator`,`backendConnector`,`i18nFormat`,`utils`],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.logger=Y.create(`translator`)}changeLanguage(e){e&&(this.language=e)}exists(e,t={interpolation:{}}){let n={...t};if(e==null)return!1;let r=this.resolve(e,n);if(r?.res===void 0)return!1;let i=en(r.res);return!(n.returnObjects===!1&&i)}extractFromKey(e,t){let n=t.nsSeparator===void 0?this.options.nsSeparator:t.nsSeparator;n===void 0&&(n=`:`);let r=t.keySeparator===void 0?this.options.keySeparator:t.keySeparator,i=t.ns||this.options.defaultNS||[],a=n&&e.indexOf(n)>-1,o=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!Kt(e,n,r);if(a&&!o){let t=e.match(this.interpolator.nestingRegexp);if(t&&t.length>0)return{key:e,namespaces:U(i)?[i]:i};let a=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(a[0])>-1)&&(i=a.shift()),e=a.join(r)}return{key:e,namespaces:U(i)?[i]:i}}translate(t,n,r){let i=typeof n==`object`?{...n}:n;if(typeof i!=`object`&&this.options.overloadTranslationOptionHandler&&(i=this.options.overloadTranslationOptionHandler(arguments)),typeof i==`object`&&(i={...i}),i||={},t==null)return``;typeof t==`function`&&(t=Z(t,{...this.options,...i})),Array.isArray(t)||(t=[String(t)]),t=t.map(e=>typeof e==`function`?Z(e,{...this.options,...i}):String(e));let a=i.returnDetails===void 0?this.options.returnDetails:i.returnDetails,o=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,{key:s,namespaces:c}=this.extractFromKey(t[t.length-1],i),l=c[c.length-1],u=i.nsSeparator===void 0?this.options.nsSeparator:i.nsSeparator;u===void 0&&(u=`:`);let d=i.lng||this.language,f=i.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d?.toLowerCase()===`cimode`)return f?a?{res:`${l}${u}${s}`,usedKey:s,exactUsedKey:s,usedLng:d,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:`${l}${u}${s}`:a?{res:s,usedKey:s,exactUsedKey:s,usedLng:d,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:s;let p=this.resolve(t,i),m=p?.res,h=p?.usedKey||s,g=p?.exactUsedKey||s,_=[`[object Number]`,`[object Function]`,`[object RegExp]`],v=i.joinArrays===void 0?this.options.joinArrays:i.joinArrays,y=!this.i18nFormat||this.i18nFormat.handleAsObject,b=i.count!==void 0&&!U(i.count),x=e.hasDefaultValue(i),S=b?this.pluralResolver.getSuffix(d,i.count,i):``,C=i.ordinal&&b?this.pluralResolver.getSuffix(d,i.count,{ordinal:!1}):``,w=b&&!i.ordinal&&i.count===0,T=w&&i[`defaultValue${this.options.pluralSeparator}zero`]||i[`defaultValue${S}`]||i[`defaultValue${C}`]||i.defaultValue,E=m;y&&!m&&x&&(E=T);let ee=en(E),te=Object.prototype.toString.apply(E);if(y&&E&&ee&&_.indexOf(te)<0&&!(U(v)&&Array.isArray(E))){if(!i.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn(`accessing an object - but returnObjects options is not enabled!`);let e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(h,E,{...i,ns:c}):`key '${s} (${this.language})' returned an object instead of string.`;return a?(p.res=e,p.usedParams=this.getUsedParamsDetails(i),p):e}if(o){let e=Array.isArray(E),t=e?[]:{},n=e?g:h;for(let e in E)if(Object.prototype.hasOwnProperty.call(E,e)){let r=`${n}${o}${e}`;x&&!m?t[e]=this.translate(r,{...i,defaultValue:en(T)?T[e]:void 0,joinArrays:!1,ns:c}):t[e]=this.translate(r,{...i,joinArrays:!1,ns:c}),t[e]===r&&(t[e]=E[e])}m=t}}else if(y&&U(v)&&Array.isArray(m))m=m.join(v),m&&=this.extendTranslation(m,t,i,r);else{let e=!1,n=!1;!this.isValidLookup(m)&&x&&(e=!0,m=T),this.isValidLookup(m)||(n=!0,m=s);let a=(i.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&n?void 0:m,c=x&&T!==m&&this.options.updateMissing;if(n||e||c){if(this.logger.log(c?`updateKey`:`missingKey`,d,l,s,c?T:m),o){let e=this.resolve(s,{...i,keySeparator:!1});e&&e.res&&this.logger.warn(`Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.`)}let e=[],t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,i.lng||this.language);if(this.options.saveMissingTo===`fallback`&&t&&t[0])for(let n=0;n<t.length;n++)e.push(t[n]);else this.options.saveMissingTo===`all`?e=this.languageUtils.toResolveHierarchy(i.lng||this.language):e.push(i.lng||this.language);let n=(e,t,n)=>{let r=x&&n!==m?n:a;this.options.missingKeyHandler?this.options.missingKeyHandler(e,l,t,r,c,i):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(e,l,t,r,c,i),this.emit(`missingKey`,e,l,t,m)};this.options.saveMissing&&(this.options.saveMissingPlurals&&b?e.forEach(e=>{let t=this.pluralResolver.getSuffixes(e,i);w&&i[`defaultValue${this.options.pluralSeparator}zero`]&&t.indexOf(`${this.options.pluralSeparator}zero`)<0&&t.push(`${this.options.pluralSeparator}zero`),t.forEach(t=>{n([e],s+t,i[`defaultValue${t}`]||T)})}):n(e,s,T))}m=this.extendTranslation(m,t,i,p,r),n&&m===s&&this.options.appendNamespaceToMissingKey&&(m=`${l}${u}${s}`),(n||e)&&this.options.parseMissingKeyHandler&&(m=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}${u}${s}`:s,e?m:void 0,i))}return a?(p.res=m,p.usedParams=this.getUsedParamsDetails(i),p):m}extendTranslation(e,t,n,r,i){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});let a=U(e)&&(n?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:n.interpolation.skipOnVariables),o;if(a){let t=e.match(this.interpolator.nestingRegexp);o=t&&t.length}let s=n.replace&&!U(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(s={...this.options.interpolation.defaultVariables,...s}),e=this.interpolator.interpolate(e,s,n.lng||this.language||r.usedLng,n),a){let t=e.match(this.interpolator.nestingRegexp),r=t&&t.length;o<r&&(n.nest=!1)}!n.lng&&r&&r.res&&(n.lng=this.language||r.usedLng),n.nest!==!1&&(e=this.interpolator.nest(e,(...e)=>i?.[0]===e[0]&&!n.context?(this.logger.warn(`It seems you are nesting recursively key: ${e[0]} in key: ${t[0]}`),null):this.translate(...e,t),n)),n.interpolation&&this.interpolator.reset()}let a=n.postProcess||this.options.postProcess,o=U(a)?[a]:a;return e!=null&&o?.length&&n.applyPostProcessor!==!1&&(e=Xt.handle(o,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e,t={}){let n,r,i,a,o;return U(e)&&(e=[e]),Array.isArray(e)&&(e=e.map(e=>typeof e==`function`?Z(e,{...this.options,...t}):e)),e.forEach(e=>{if(this.isValidLookup(n))return;let s=this.extractFromKey(e,t),c=s.key;r=c;let l=s.namespaces;this.options.fallbackNS&&(l=l.concat(this.options.fallbackNS));let u=t.count!==void 0&&!U(t.count),d=u&&!t.ordinal&&t.count===0,f=t.context!==void 0&&(U(t.context)||typeof t.context==`number`)&&t.context!==``,p=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);l.forEach(e=>{this.isValidLookup(n)||(o=e,!$t[`${p[0]}-${e}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(o)&&($t[`${p[0]}-${e}`]=!0,this.logger.warn(`key "${r}" for languages "${p.join(`, `)}" won't get resolved as namespace "${o}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`)),p.forEach(r=>{if(this.isValidLookup(n))return;a=r;let o=[c];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(o,c,r,e,t);else{let e;u&&(e=this.pluralResolver.getSuffix(r,t.count,t));let n=`${this.options.pluralSeparator}zero`,i=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(u&&(t.ordinal&&e.indexOf(i)===0&&o.push(c+e.replace(i,this.options.pluralSeparator)),o.push(c+e),d&&o.push(c+n)),f){let r=`${c}${this.options.contextSeparator||`_`}${t.context}`;o.push(r),u&&(t.ordinal&&e.indexOf(i)===0&&o.push(r+e.replace(i,this.options.pluralSeparator)),o.push(r+e),d&&o.push(r+n))}}let s;for(;s=o.pop();)this.isValidLookup(n)||(i=s,n=this.getResource(r,e,s,t))}))})}),{res:n,usedKey:r,exactUsedKey:i,usedLng:a,usedNS:o}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e===``)}getResource(e,t,n,r={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}getUsedParamsDetails(e={}){let t=[`defaultValue`,`ordinal`,`context`,`replace`,`lng`,`lngs`,`fallbackLng`,`ns`,`keySeparator`,`nsSeparator`,`returnObjects`,`returnDetails`,`joinArrays`,`postProcess`,`interpolation`],n=e.replace&&!U(e.replace),r=n?e.replace:e;if(n&&e.count!==void 0&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(let e of t)delete r[e]}return r}static hasDefaultValue(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&t.substring(0,12)===`defaultValue`&&e[t]!==void 0)return!0;return!1}},nn=class{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Y.create(`languageUtils`)}getScriptPartFromCode(e){if(e=J(e),!e||e.indexOf(`-`)<0)return null;let t=e.split(`-`);return t.length===2||(t.pop(),t[t.length-1].toLowerCase()===`x`)?null:this.formatLanguageCode(t.join(`-`))}getLanguagePartFromCode(e){if(e=J(e),!e||e.indexOf(`-`)<0)return e;let t=e.split(`-`);return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(U(e)&&e.indexOf(`-`)>-1){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch{}return t&&this.options.lowerCaseLng&&(t=t.toLowerCase()),t||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load===`languageOnly`||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(e=>{if(t)return;let n=this.formatLanguageCode(e);(!this.options.supportedLngs||this.isSupportedCode(n))&&(t=n)}),!t&&this.options.supportedLngs&&e.forEach(e=>{if(t)return;let n=this.getScriptPartFromCode(e);if(this.isSupportedCode(n))return t=n;let r=this.getLanguagePartFromCode(e);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(e=>{if(e===r||!(e.indexOf(`-`)<0&&r.indexOf(`-`)<0)&&(e.indexOf(`-`)>0&&r.indexOf(`-`)<0&&e.substring(0,e.indexOf(`-`))===r||e.indexOf(r)===0&&r.length>1))return e})}),t||=this.getFallbackCodes(this.options.fallbackLng)[0],t}getFallbackCodes(e,t){if(!e)return[];if(typeof e==`function`&&(e=e(t)),U(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];return n||=e[this.getScriptPartFromCode(t)],n||=e[this.formatLanguageCode(t)],n||=e[this.getLanguagePartFromCode(t)],n||=e.default,n||[]}toResolveHierarchy(e,t){let n=this.getFallbackCodes((t===!1?[]:t)||this.options.fallbackLng||[],e),r=[],i=e=>{e&&(this.isSupportedCode(e)?r.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return U(e)&&(e.indexOf(`-`)>-1||e.indexOf(`_`)>-1)?(this.options.load!==`languageOnly`&&i(this.formatLanguageCode(e)),this.options.load!==`languageOnly`&&this.options.load!==`currentOnly`&&i(this.getScriptPartFromCode(e)),this.options.load!==`currentOnly`&&i(this.getLanguagePartFromCode(e))):U(e)&&i(this.formatLanguageCode(e)),n.forEach(e=>{r.indexOf(e)<0&&i(this.formatLanguageCode(e))}),r}},rn={zero:0,one:1,two:2,few:3,many:4,other:5},an={select:e=>e===1?`one`:`other`,resolvedOptions:()=>({pluralCategories:[`one`,`other`]})},on=class{constructor(e,t={}){this.languageUtils=e,this.options=t,this.logger=Y.create(`pluralResolver`),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(e,t={}){let n=J(e===`dev`?`en`:e),r=t.ordinal?`ordinal`:`cardinal`,i=JSON.stringify({cleanedCode:n,type:r});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];let a;try{a=new Intl.PluralRules(n,{type:r})}catch{if(typeof Intl>`u`)return this.logger.error(`No Intl support, please use an Intl polyfill!`),an;if(!e.match(/-|_/))return an;let n=this.languageUtils.getLanguagePartFromCode(e);a=this.getRule(n,t)}return this.pluralRulesCache[i]=a,a}needsPlural(e,t={}){let n=this.getRule(e,t);return n||=this.getRule(`dev`,t),n?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t,n={}){return this.getSuffixes(e,n).map(e=>`${t}${e}`)}getSuffixes(e,t={}){let n=this.getRule(e,t);return n||=this.getRule(`dev`,t),n?n.resolvedOptions().pluralCategories.sort((e,t)=>rn[e]-rn[t]).map(e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:``}${e}`):[]}getSuffix(e,t,n={}){let r=this.getRule(e,n);return r?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:``}${r.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix(`dev`,t,n))}},sn=(e,t,n,r=`.`,i=!0)=>{let a=zt(e,t,n);return!a&&i&&U(n)&&(a=qt(e,n,r),a===void 0&&(a=qt(t,n,r))),a},cn=e=>e.replace(/\$/g,`$$$$`),ln=class{constructor(e={}){this.logger=Y.create(`interpolator`),this.options=e,this.format=e?.interpolation?.format||(e=>e),this.init(e)}init(e={}){e.interpolation||={escapeValue:!0};let{escape:t,escapeValue:n,useRawValueToEscape:r,prefix:i,prefixEscaped:a,suffix:o,suffixEscaped:s,formatSeparator:c,unescapeSuffix:l,unescapePrefix:u,nestingPrefix:d,nestingPrefixEscaped:f,nestingSuffix:p,nestingSuffixEscaped:m,nestingOptionsSeparator:h,maxReplaces:g,alwaysFormat:_}=e.interpolation;this.escape=t===void 0?Ht:t,this.escapeValue=n===void 0||n,this.useRawValueToEscape=r!==void 0&&r,this.prefix=i?q(i):a||`{{`,this.suffix=o?q(o):s||`}}`,this.formatSeparator=c||`,`,this.unescapePrefix=l?``:u||`-`,this.unescapeSuffix=this.unescapePrefix?``:l||``,this.nestingPrefix=d?q(d):f||q(`$t(`),this.nestingSuffix=p?q(p):m||q(`)`),this.nestingOptionsSeparator=h||`,`,this.maxReplaces=g||1e3,this.alwaysFormat=_!==void 0&&_,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){let e=(e,t)=>e?.source===t?(e.lastIndex=0,e):new RegExp(t,`g`);this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,t,n,r){let i,a,o,s=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=e=>{if(e.indexOf(this.formatSeparator)<0){let i=sn(t,s,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(i,void 0,n,{...r,...t,interpolationkey:e}):i}let i=e.split(this.formatSeparator),a=i.shift().trim(),o=i.join(this.formatSeparator).trim();return this.format(sn(t,s,a,this.options.keySeparator,this.options.ignoreJSONStructure),o,n,{...r,...t,interpolationkey:a})};this.resetRegExp();let l=r?.missingInterpolationHandler||this.options.missingInterpolationHandler,u=r?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:r.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>cn(e)},{regex:this.regexp,safeValue:e=>this.escapeValue?cn(this.escape(e)):cn(e)}].forEach(t=>{for(o=0;i=t.regex.exec(e);){let n=i[1].trim();if(a=c(n),a===void 0)if(typeof l==`function`){let t=l(e,i,r);a=U(t)?t:``}else if(r&&Object.prototype.hasOwnProperty.call(r,n))a=``;else if(u){a=i[0];continue}else this.logger.warn(`missed to pass in variable ${n} for interpolating ${e}`),a=``;else!U(a)&&!this.useRawValueToEscape&&(a=Mt(a));let s=t.safeValue(a);if(e=e.replace(i[0],s),u?(t.regex.lastIndex+=a.length,t.regex.lastIndex-=i[0].length):t.regex.lastIndex=0,o++,o>=this.maxReplaces)break}}),e}nest(e,t,n={}){let r,i,a,o=(e,t)=>{let n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;let r=e.split(RegExp(`${q(n)}[ ]*{`)),i=`{${r[1]}`;e=r[0],i=this.interpolate(i,a);let o=i.match(/'/g),s=i.match(/"/g);((o?.length??0)%2==0&&!s||(s?.length??0)%2!=0)&&(i=i.replace(/'/g,`"`));try{a=JSON.parse(i),t&&(a={...t,...a})}catch(t){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,t),`${e}${n}${i}`}return a.defaultValue&&a.defaultValue.indexOf(this.prefix)>-1&&delete a.defaultValue,e};for(;r=this.nestingRegexp.exec(e);){let s=[];a={...n},a=a.replace&&!U(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;let c=/{.*}/.test(r[1])?r[1].lastIndexOf(`}`)+1:r[1].indexOf(this.formatSeparator);if(c!==-1&&(s=r[1].slice(c).split(this.formatSeparator).map(e=>e.trim()).filter(Boolean),r[1]=r[1].slice(0,c)),i=t(o.call(this,r[1].trim(),a),a),i&&r[0]===e&&!U(i))return i;U(i)||(i=Mt(i)),i||=(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),``),s.length&&(i=s.reduce((e,t)=>this.format(e,t,n.lng,{...n,interpolationkey:r[1].trim()}),i.trim())),e=e.replace(r[0],i),this.regexp.lastIndex=0}return e}},un=e=>{let t=e.toLowerCase().trim(),n={};if(e.indexOf(`(`)>-1){let r=e.split(`(`);t=r[0].toLowerCase().trim();let i=r[1].substring(0,r[1].length-1);t===`currency`&&i.indexOf(`:`)<0?n.currency||=i.trim():t===`relativetime`&&i.indexOf(`:`)<0?n.range||=i.trim():i.split(`;`).forEach(e=>{if(e){let[t,...r]=e.split(`:`),i=r.join(`:`).trim().replace(/^'+|'+$/g,``),a=t.trim();n[a]||(n[a]=i),i===`false`&&(n[a]=!1),i===`true`&&(n[a]=!0),isNaN(i)||(n[a]=parseInt(i,10))}})}return{formatName:t,formatOptions:n}},dn=e=>{let t={};return(n,r,i)=>{let a=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(a={...a,[i.interpolationkey]:void 0});let o=r+JSON.stringify(a),s=t[o];return s||(s=e(J(r),i),t[o]=s),s(n)}},fn=e=>(t,n,r)=>e(J(n),r)(t),pn=class{constructor(e={}){this.logger=Y.create(`formatter`),this.options=e,this.init(e)}init(e,t={interpolation:{}}){this.formatSeparator=t.interpolation.formatSeparator||`,`;let n=t.cacheInBuiltFormats?dn:fn;this.formats={number:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t});return e=>n.format(e)}),currency:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t,style:`currency`});return e=>n.format(e)}),datetime:n((e,t)=>{let n=new Intl.DateTimeFormat(e,{...t});return e=>n.format(e)}),relativetime:n((e,t)=>{let n=new Intl.RelativeTimeFormat(e,{...t});return e=>n.format(e,t.range||`day`)}),list:n((e,t)=>{let n=new Intl.ListFormat(e,{...t});return e=>n.format(e)})}}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=dn(t)}format(e,t,n,r={}){let i=t.split(this.formatSeparator);if(i.length>1&&i[0].indexOf(`(`)>1&&i[0].indexOf(`)`)<0&&i.find(e=>e.indexOf(`)`)>-1)){let e=i.findIndex(e=>e.indexOf(`)`)>-1);i[0]=[i[0],...i.splice(1,e)].join(this.formatSeparator)}return i.reduce((e,t)=>{let{formatName:i,formatOptions:a}=un(t);if(this.formats[i]){let t=e;try{let o=r?.formatParams?.[r.interpolationkey]||{},s=o.locale||o.lng||r.locale||r.lng||n;t=this.formats[i](e,s,{...a,...r,...o})}catch(e){this.logger.warn(e)}return t}else this.logger.warn(`there was no format function for ${i}`);return e},e)}},mn=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)},hn=class extends X{constructor(e,t,n,r={}){super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=Y.create(`backendConnector`),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(n,r.backend,r)}queueLoad(e,t,n,r){let i={},a={},o={},s={};return e.forEach(e=>{let r=!0;t.forEach(t=>{let o=`${e}|${t}`;!n.reload&&this.store.hasResourceBundle(e,t)?this.state[o]=2:this.state[o]<0||(this.state[o]===1?a[o]===void 0&&(a[o]=!0):(this.state[o]=1,r=!1,a[o]===void 0&&(a[o]=!0),i[o]===void 0&&(i[o]=!0),s[t]===void 0&&(s[t]=!0)))}),r||(o[e]=!0)}),(Object.keys(i).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(i),pending:Object.keys(a),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(s)}}loaded(e,t,n){let r=e.split(`|`),i=r[0],a=r[1];t&&this.emit(`failedLoading`,i,a,t),!t&&n&&this.store.addResourceBundle(i,a,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);let o={};this.queue.forEach(n=>{Rt(n.loaded,[i],a),mn(n,e),t&&n.errors.push(t),n.pendingCount===0&&!n.done&&(Object.keys(n.loaded).forEach(e=>{o[e]||(o[e]={});let t=n.loaded[e];t.length&&t.forEach(t=>{o[e][t]===void 0&&(o[e][t]=!0)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit(`loaded`,o),this.queue=this.queue.filter(e=>!e.done)}read(e,t,n,r=0,i=this.retryTimeout,a){if(!e.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:i,callback:a});return}this.readingCalls++;let o=(o,s)=>{if(this.readingCalls--,this.waitingReads.length>0){let e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}if(o&&s&&r<this.maxRetries){setTimeout(()=>{this.read.call(this,e,t,n,r+1,i*2,a)},i);return}a(o,s)},s=this.backend[n].bind(this.backend);if(s.length===2){try{let n=s(e,t);n&&typeof n.then==`function`?n.then(e=>o(null,e)).catch(o):o(null,n)}catch(e){o(e)}return}return s(e,t,o)}prepareLoading(e,t,n={},r){if(!this.backend)return this.logger.warn(`No backend was added via i18next.use. Will not load resources.`),r&&r();U(e)&&(e=this.languageUtils.toResolveHierarchy(e)),U(t)&&(t=[t]);let i=this.queueLoad(e,t,n,r);if(!i.toLoad.length)return i.pending.length||r(),null;i.toLoad.forEach(e=>{this.loadOne(e)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e,t=``){let n=e.split(`|`),r=n[0],i=n[1];this.read(r,i,`read`,void 0,void 0,(n,a)=>{n&&this.logger.warn(`${t}loading namespace ${i} for language ${r} failed`,n),!n&&a&&this.logger.log(`${t}loaded namespace ${i} for language ${r}`,a),this.loaded(e,n,a)})}saveMissing(e,t,n,r,i,a={},o=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`);return}if(!(n==null||n===``)){if(this.backend?.create){let s={...a,isUpdate:i},c=this.backend.create.bind(this.backend);if(c.length<6)try{let i;i=c.length===5?c(e,t,n,r,s):c(e,t,n,r),i&&typeof i.then==`function`?i.then(e=>o(null,e)).catch(o):o(null,i)}catch(e){o(e)}else c(e,t,n,r,o,s)}!e||!e[0]||this.store.addResource(e[0],t,n,r)}}},gn=()=>({debug:!1,initAsync:!0,ns:[`translation`],defaultNS:[`translation`],fallbackLng:[`dev`],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:`all`,preload:!1,simplifyPluralSuffix:!0,keySeparator:`.`,nsSeparator:`:`,pluralSeparator:`_`,contextSeparator:`_`,partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:`fallback`,saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]==`object`&&(t=e[1]),U(e[1])&&(t.defaultValue=e[1]),U(e[2])&&(t.tDescription=e[2]),typeof e[2]==`object`||typeof e[3]==`object`){let n=e[3]||e[2];Object.keys(n).forEach(e=>{t[e]=n[e]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:`{{`,suffix:`}}`,formatSeparator:`,`,unescapePrefix:`-`,nestingPrefix:`$t(`,nestingSuffix:`)`,nestingOptionsSeparator:`,`,maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),_n=e=>(U(e.ns)&&(e.ns=[e.ns]),U(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),U(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs?.indexOf?.(`cimode`)<0&&(e.supportedLngs=e.supportedLngs.concat([`cimode`])),typeof e.initImmediate==`boolean`&&(e.initAsync=e.initImmediate),e),Q=()=>{},vn=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(t=>{typeof e[t]==`function`&&(e[t]=e[t].bind(e))})},yn=`__i18next_supportNoticeShown`,bn=()=>!!(typeof globalThis<`u`&&globalThis[yn]||typeof process<`u`&&{}.I18NEXT_NO_SUPPORT_NOTICE||typeof process<`u`),xn=()=>{typeof globalThis<`u`&&(globalThis[yn]=!0)},Sn=e=>!!(e?.modules?.backend?.name?.indexOf(`Locize`)>0||e?.modules?.backend?.constructor?.name?.indexOf(`Locize`)>0||e?.options?.backend?.backends&&e.options.backend.backends.some(e=>e?.name?.indexOf(`Locize`)>0||e?.constructor?.name?.indexOf(`Locize`)>0)||e?.options?.backend?.projectId||e?.options?.backend?.backendOptions&&e.options.backend.backendOptions.some(e=>e?.projectId)),$=class e extends X{constructor(e={},t){if(super(),this.options=_n(e),this.services={},this.logger=Y,this.modules={external:[]},vn(this),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(e={},t){this.isInitializing=!0,typeof e==`function`&&(t=e,e={}),e.defaultNS==null&&e.ns&&(U(e.ns)?e.defaultNS=e.ns:e.ns.indexOf(`translation`)<0&&(e.defaultNS=e.ns[0]));let n=gn();this.options={...n,...this.options,..._n(e)},this.options.interpolation={...n.interpolation,...this.options.interpolation},e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator),typeof this.options.overloadTranslationOptionHandler!=`function`&&(this.options.overloadTranslationOptionHandler=n.overloadTranslationOptionHandler),this.options.showSupportNotice!==!1&&!Sn(this)&&!bn()&&(typeof console<`u`&&console.info!==void 0&&console.info(`🌐 i18next is made possible by our own product, Locize — consider powering your project with managed localization (AI, CDN, integrations): https://locize.com 💙`),xn());let r=e=>e?typeof e==`function`?new e:e:null;if(!this.options.isClone){this.modules.logger?Y.init(r(this.modules.logger),this.options):Y.init(null,this.options);let e;e=this.modules.formatter?this.modules.formatter:pn;let t=new nn(this.options);this.store=new Yt(this.options.resources,this.options);let i=this.services;i.logger=Y,i.resourceStore=this.store,i.languageUtils=t,i.pluralResolver=new on(t,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==n.interpolation.format&&this.logger.deprecate(`init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting`),e&&(!this.options.interpolation.format||this.options.interpolation.format===n.interpolation.format)&&(i.formatter=r(e),i.formatter.init&&i.formatter.init(i,this.options),this.options.interpolation.format=i.formatter.format.bind(i.formatter)),i.interpolator=new ln(this.options),i.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},i.backendConnector=new hn(r(this.modules.backend),i.resourceStore,i,this.options),i.backendConnector.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.languageDetector&&(i.languageDetector=r(this.modules.languageDetector),i.languageDetector.init&&i.languageDetector.init(i,this.options.detection,this.options)),this.modules.i18nFormat&&(i.i18nFormat=r(this.modules.i18nFormat),i.i18nFormat.init&&i.i18nFormat.init(this)),this.translator=new tn(this.services,this.options),this.translator.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.external.forEach(e=>{e.init&&e.init(this)})}if(this.format=this.options.interpolation.format,t||=Q,this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){let e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&e[0]!==`dev`&&(this.options.lng=e[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn(`init: no languageDetector is used and no lng is defined`),[`getResource`,`hasResourceBundle`,`getResourceBundle`,`getDataByLanguage`].forEach(e=>{this[e]=(...t)=>this.store[e](...t)}),[`addResource`,`addResources`,`addResourceBundle`,`removeResourceBundle`].forEach(e=>{this[e]=(...t)=>(this.store[e](...t),this)});let i=W(),a=()=>{let e=(e,n)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn(`init: i18next is already initialized. You should call init just once!`),this.isInitialized=!0,this.options.isClone||this.logger.log(`initialized`,this.options),this.emit(`initialized`,this.options),i.resolve(n),t(e,n)};if(this.languages&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initAsync?a():setTimeout(a,0),i}loadResources(e,t=Q){let n=t,r=U(e)?e:this.language;if(typeof e==`function`&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(r?.toLowerCase()===`cimode`&&(!this.options.preload||this.options.preload.length===0))return n();let e=[],t=t=>{t&&t!==`cimode`&&this.services.languageUtils.toResolveHierarchy(t).forEach(t=>{t!==`cimode`&&e.indexOf(t)<0&&e.push(t)})};r?t(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(e=>t(e)),this.options.preload?.forEach?.(e=>t(e)),this.services.backendConnector.load(e,this.options.ns,e=>{!e&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(e)})}else n(null)}reloadResources(e,t,n){let r=W();return typeof e==`function`&&(n=e,e=void 0),typeof t==`function`&&(n=t,t=void 0),e||=this.languages,t||=this.options.ns,n||=Q,this.services.backendConnector.reload(e,t,e=>{r.resolve(),n(e)}),r}use(e){if(!e)throw Error(`You are passing an undefined module! Please check the object you are passing to i18next.use()`);if(!e.type)throw Error(`You are passing a wrong module! Please check the object you are passing to i18next.use()`);return e.type===`backend`&&(this.modules.backend=e),(e.type===`logger`||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type===`languageDetector`&&(this.modules.languageDetector=e),e.type===`i18nFormat`&&(this.modules.i18nFormat=e),e.type===`postProcessor`&&Xt.addPostProcessor(e),e.type===`formatter`&&(this.modules.formatter=e),e.type===`3rdParty`&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&!([`cimode`,`dev`].indexOf(e)>-1)){for(let e=0;e<this.languages.length;e++){let t=this.languages[e];if(!([`cimode`,`dev`].indexOf(t)>-1)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}!this.resolvedLanguage&&this.languages.indexOf(e)<0&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,t){this.isLanguageChangingTo=e;let n=W();this.emit(`languageChanging`,e);let r=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},i=(i,a)=>{a?this.isLanguageChangingTo===e&&(r(a),this.translator.changeLanguage(a),this.isLanguageChangingTo=void 0,this.emit(`languageChanged`,a),this.logger.log(`languageChanged`,a)):this.isLanguageChangingTo=void 0,n.resolve((...e)=>this.t(...e)),t&&t(i,(...e)=>this.t(...e))},a=t=>{!e&&!t&&this.services.languageDetector&&(t=[]);let n=U(t)?t:t&&t[0],a=this.store.hasLanguageSomeTranslations(n)?n:this.services.languageUtils.getBestMatchFromCodes(U(t)?[t]:t);a&&(this.language||r(a),this.translator.language||this.translator.changeLanguage(a),this.services.languageDetector?.cacheUserLanguage?.(a)),this.loadResources(a,e=>{i(e,a)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?a(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e),n}getFixedT(e,t,n){let r=(e,t,...i)=>{let a;a=typeof t==`object`?{...t}:this.options.overloadTranslationOptionHandler([e,t].concat(i)),a.lng=a.lng||r.lng,a.lngs=a.lngs||r.lngs,a.ns=a.ns||r.ns,a.keyPrefix!==``&&(a.keyPrefix=a.keyPrefix||n||r.keyPrefix);let o={...this.options,...a};typeof a.keyPrefix==`function`&&(a.keyPrefix=Z(a.keyPrefix,o));let s=this.options.keySeparator||`.`,c;return a.keyPrefix&&Array.isArray(e)?c=e.map(e=>(typeof e==`function`&&(e=Z(e,o)),`${a.keyPrefix}${s}${e}`)):(typeof e==`function`&&(e=Z(e,o)),c=a.keyPrefix?`${a.keyPrefix}${s}${e}`:e),this.t(c,a)};return U(e)?r.lng=e:r.lngs=e,r.ns=t,r.keyPrefix=n,r}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,t={}){if(!this.isInitialized)return this.logger.warn(`hasLoadedNamespace: i18next was not initialized`,this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn(`hasLoadedNamespace: i18n.languages were undefined or empty`,this.languages),!1;let n=t.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(n.toLowerCase()===`cimode`)return!0;let a=(e,t)=>{let n=this.services.backendConnector.state[`${e}|${t}`];return n===-1||n===0||n===2};if(t.precheck){let e=t.precheck(this,a);if(e!==void 0)return e}return!!(this.hasResourceBundle(n,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||a(n,e)&&(!r||a(i,e)))}loadNamespaces(e,t){let n=W();return this.options.ns?(U(e)&&(e=[e]),e.forEach(e=>{this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){let n=W();U(e)&&(e=[e]);let r=this.options.preload||[],i=e.filter(e=>r.indexOf(e)<0&&this.services.languageUtils.isSupportedCode(e));return i.length?(this.options.preload=r.concat(i),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}dir(e){if(e||=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language),!e)return`rtl`;try{let t=new Intl.Locale(e);if(t&&t.getTextInfo){let e=t.getTextInfo();if(e&&e.direction)return e.direction}}catch{}let t=`ar.shu.sqr.ssh.xaa.yhd.yud.aao.abh.abv.acm.acq.acw.acx.acy.adf.ads.aeb.aec.afb.ajp.apc.apd.arb.arq.ars.ary.arz.auz.avl.ayh.ayl.ayn.ayp.bbz.pga.he.iw.ps.pbt.pbu.pst.prp.prd.ug.ur.ydd.yds.yih.ji.yi.hbo.men.xmn.fa.jpr.peo.pes.prs.dv.sam.ckb`.split(`.`),n=this.services?.languageUtils||new nn(gn());return e.toLowerCase().indexOf(`-latn`)>1?`ltr`:t.indexOf(n.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf(`-arab`)>1?`rtl`:`ltr`}static createInstance(t={},n){let r=new e(t,n);return r.createInstance=e.createInstance,r}cloneInstance(t={},n=Q){let r=t.forkResourceStore;r&&delete t.forkResourceStore;let i={...this.options,...t,isClone:!0},a=new e(i);if((t.debug!==void 0||t.prefix!==void 0)&&(a.logger=a.logger.clone(t)),[`store`,`services`,`language`].forEach(e=>{a[e]=this[e]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},r&&(a.store=new Yt(Object.keys(this.store.data).reduce((e,t)=>(e[t]={...this.store.data[t]},e[t]=Object.keys(e[t]).reduce((n,r)=>(n[r]={...e[t][r]},n),e[t]),e),{}),i),a.services.resourceStore=a.store),t.interpolation){let e={...gn().interpolation,...this.options.interpolation,...t.interpolation},n={...i,interpolation:e};a.services.interpolator=new ln(n)}return a.translator=new tn(a.services,i),a.translator.on(`*`,(e,...t)=>{a.emit(e,...t)}),a.init(i,n),a.translator.options=i,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}.createInstance();$.createInstance,$.dir,$.init,$.loadResources,$.reloadResources,$.use,$.changeLanguage,$.getFixedT,$.t,$.exists,$.setDefaultNamespace,$.hasLoadedNamespace,$.loadNamespaces,$.loadLanguages;var Cn={"menu.dashboard":`Dashboard`,"menu.analysis":`Analysis`,"menu.monitor":`Monitor`,"menu.workplace":`Workplace`,"menu.result":`Results`,"menu.result.success":`Success`,"menu.result.fail":`Failure`,"menu.result.warning":`Warning`,"menu.result.info":`Information`,"menu.exception":`Exceptions`,"menu.exception.403":`403`,"menu.exception.404":`404`,"menu.exception.500":`500`,"menu.multi-menu":`Multi-level Menu`,"menu.multi-menu.two":`Level 2`,"menu.multi-menu.first":`Level 2 Page`,"menu.multi-menu.two.three":`Level 3`,"menu.multi-menu.two.second":`Level 3 Page`,"menu.multi-menu.two.three.third":`Level 4`,"menu.page-layout":`Layouts`,"menu.page-layout.base-layout":`Basic Layout`,"menu.page-layout.fix-header":`Fixed Header`,"menu.page-layout.descriptions":`Descriptions`,"menu.example":`Examples`,"menu.example.user-selector":`User Selector`,"menu.example.icon-selector":`Icon Selector`,"menu.example.image-uploader":`Image Upload`,"menu.example.xin-form":`Xin Form`,"menu.example.xin-table":`Xin Table`,"menu.ai":`AI`,"menu.ai.chat":`Chat`,"menu.ai.agent":`Agents`,"menu.ai.conversation":`Conversations`,"menu.system":`System`,"menu.system.user":`Users`,"menu.system.dept":`Departments`,"menu.system.role":`Roles`,"menu.system.rule":`Menus`,"menu.system.info":`System Information`,"menu.system.file":`Files`,"menu.system.dict":`Dictionaries`,"menu.system.mail":`Mail`,"menu.system.storage":`Storage`,"menu.system.config":`Site Config`,"menu.system.ai":`AI`,"menu.system.carousel":`Carousel`,"menu.system.grid-nav":`Grid Navigation`,"menu.system.category":`Categories`,"menu.system.activity":`Activity Zone`,"menu.xin-admin":`XinAdmin`},wn={"login.username":`Username`,"login.password":`Password`,"login.usernamePlaceholder":`admin`,"login.passwordPlaceholder":`123456`,"login.usernameRequired":`Please enter your username!`,"login.passwordRequired":`Please enter your password!`,"login.remember":`Remember me`,"login.forgotPassword":`Forgot password`,"login.otherLogin":`Other login methods`,"login.success":`Login successful!`,"login.alreadyLoggedIn":`Already logged in, redirecting!`},Tn={"dashboard.since.lastWeek":`Since last week`,"dashboard.vs.lastWeek":`vs last week`,"dashboard.analysis.totalRevenue":`Total Revenue`,"dashboard.analysis.totalExpenses":`Total Expenses`,"dashboard.analysis.visitors":`Visitors`,"dashboard.analysis.likes":`Likes`,"dashboard.analysis.annualSales":`Annual Sales`,"dashboard.analysis.grossProfit":`Gross Profit`,"dashboard.analysis.netProfit":`Net Profit`,"dashboard.analysis.totalExpense":`Total Expense`,"dashboard.analysis.accessFrom":`Access From`,"dashboard.analysis.searchEngine":`Search Engine`,"dashboard.analysis.direct":`Direct`,"dashboard.analysis.email":`Email`,"dashboard.analysis.unionAds":`Union Ads`,"dashboard.analysis.videoAds":`Video Ads`,"dashboard.analysis.salesRanking":`Sales Ranking`,"dashboard.analysis.month":`Month`,"dashboard.analysis.year":`Year`,"dashboard.analysis.day":`Day`,"dashboard.analysis.article":`Article`,"dashboard.analysis.age":`Age`,"dashboard.analysis.address":`Address`,"dashboard.analysis.tags":`Tags`,"dashboard.analysis.action":`Action`,"dashboard.analysis.invite":`Invite`,"dashboard.analysis.delete":`Delete`,"dashboard.analysis.userReviews":`User Reviews`,"dashboard.analysis.reviewDescription":`Ant Design, a design language for background applications, is refined by Ant UED Team`,"dashboard.analysis.january":`January`,"dashboard.analysis.february":`February`,"dashboard.analysis.march":`March`,"dashboard.analysis.april":`April`,"dashboard.analysis.may":`May`,"dashboard.analysis.june":`June`,"dashboard.analysis.july":`July`,"dashboard.analysis.august":`August`,"dashboard.analysis.september":`September`,"dashboard.analysis.october":`October`,"dashboard.analysis.november":`November`,"dashboard.analysis.december":`December`},En={"dashboard.completion":`Completion`,"dashboard.vs.lastWeek":`vs last week`,"dashboard.monitor.helpService":`Help Service`,"dashboard.monitor.propertyFee":`Property Fee`,"dashboard.monitor.alarmEvents":`Alarm Events`,"dashboard.monitor.otherEvents":`Other Events`,"dashboard.monitor.todoList":`To-Do List`,"dashboard.monitor.myFocus":`My Focus`,"dashboard.monitor.all":`All`,"dashboard.monitor.propertyOrder":`Property Orders`,"dashboard.monitor.repairOrder":`Repair Orders`,"dashboard.monitor.fireSafety":`Fire Safety`,"dashboard.monitor.paidService":`Paid Services`,"dashboard.monitor.publicService":`Public Services`},Dn={"dashboard.workplace.greeting.morning":`Good Morning`,"dashboard.workplace.greeting.afternoon":`Good Afternoon`,"dashboard.workplace.greeting.evening":`Good Evening`,"dashboard.workplace.welcome":`Welcome back!`,"dashboard.workplace.today":`Today is`,"dashboard.workplace.myProjects":`My Projects`,"dashboard.workplace.myTeams":`My Teams`,"dashboard.workplace.latestActivities":`Latest Activities`,"dashboard.workplace.notifications":`Notifications`,"dashboard.workplace.appStore":`App Store`,"dashboard.workplace.appStore.desc":`Application distribution and management platform`,"dashboard.workplace.mallSystem":`Mall System`,"dashboard.workplace.mallSystem.desc":`Enterprise e-commerce solution`,"dashboard.workplace.collaboration":`Collaboration`,"dashboard.workplace.collaboration.desc":`Team collaboration and communication tools`,"dashboard.workplace.docCenter":`Document Center`,"dashboard.workplace.docCenter.desc":`Enterprise knowledge management and document collaboration`,"dashboard.workplace.badge.new":`New`,"dashboard.workplace.status.inProgress":`In Progress`,"dashboard.workplace.status.completed":`Completed`,"dashboard.workplace.status.planning":`Planning`,"dashboard.workplace.progress":`Progress`,"dashboard.workplace.members":`Members`,"dashboard.workplace.people":`people`,"dashboard.workplace.recentVisits":`Recent Visits`,"dashboard.workplace.location":`Local`,"dashboard.workplace.project1.name":`Enterprise Management System`,"dashboard.workplace.project1.desc":`Enterprise backend management system based on React and AntDesign`,"dashboard.workplace.project2.name":`Mobile H5 Application`,"dashboard.workplace.project2.desc":`Mobile e-commerce application developed with Vue3`,"dashboard.workplace.project3.name":`Data Visualization Platform`,"dashboard.workplace.project3.desc":`Big data visualization and analysis platform based on ECharts`,"dashboard.workplace.project4.name":`System Upgrade Notice`,"dashboard.workplace.project4.desc":`System will be upgraded and maintained from 2:00-4:00 AM this Friday`,"dashboard.workplace.project5.name":`Team Invitation`,"dashboard.workplace.project5.desc":`You have been invited to join the "New Product R&D" project team`,"dashboard.workplace.project6.name":`Task Reminder`,"dashboard.workplace.project6.desc":`You have 3 tasks that are about to expire, please handle them in time`},On={"system.info.title":`System Info`,"system.info.basic.title":`System Basic Info`,"system.info.project.title":`Project Address`,"system.info.changelog.title":`Changelog`,"system.info.author.title":`Author Introduction`,"system.info.desc.title":`System Description`,"system.info.join":`Join the community for updates and support`,"system.info.label.name":`System Name`,"system.info.label.version":`Version`,"system.info.label.build":`Build Tool`,"system.info.label.frontend":`Frontend Framework`,"system.info.label.ui":`UI Framework`,"system.info.label.css":`CSS Framework`,"system.info.label.router":`Router Management`,"system.info.label.state":`State Management`,"system.info.label.ts":`TypeScript`,"system.info.link.github":`GitHub Repository`,"system.info.link.docs":`Online Documentation`,"system.info.link.demo":`Demo Address`,"system.info.link.issues":`Issues & Feedback`,"system.info.log.content":`Refactored project modules based on React 19, Vite 7, ReactRouter 7, zustand 5, and TypeScript`,"system.info.author.name":`XinAdmin Team`,"system.info.author.role":`Enterprise-level Admin Solution Provider`,"system.info.contact.github":`GitHub`,"system.info.contact.group":`QQ Group`,"system.info.contact.discuss":`Discussions`,"system.info.desc.content":`XinAdmin is an enterprise-level admin template based on Ant Design design specifications, adopting the latest frontend tech stack including React 19, Vite 7, ReactRouter 7, zustand 5, and TypeScript.
Core Features:
✨ Cutting-edge Stack - React 19 + Vite 7 + TypeScript 5.8
👑 Ant Design Specs - Modular solution, reducing redundant development
🎢 Clear Structure - Semantic directory naming, independent namespaces
🎡 ReactRouter v7 - Supports backend dynamic routing, auto menu generation
🧩 TailwindCSS - Atomic CSS, perfect match with Ant Design
🎡 Built-in i18n - Supports 5 languages including English, Chinese, etc.
⛳ Complete Page Components - Includes error pages, layout components, etc.`,"system.info.tag.enterprise":`Enterprise`,"system.info.tag.ready":`Out of Box`,"system.info.tag.scalable":`Scalable`,"system.info.tag.modern":`Modern`,"system.info.tag.i18n":`Internationalization`,"system.info.tag.auth":`Access Control`},kn={"system.config.page.title":`Site Configs`,"system.config.page.description":`Manage site configuration items, support dynamic configuration of site parameters`,"system.config.group.title":`Config Groups`,"system.config.group.add":`Add`,"system.config.group.create":`Create Config Group`,"system.config.group.edit":`Edit Config Group`,"system.config.group.delete":`Delete`,"system.config.group.deleteConfirm":`Confirm deletion?`,"system.config.group.deleteWarning":`Deleting a setting group will also delete all settings in that group`,"system.config.group.field.title":`Title`,"system.config.group.field.title.required":`Please enter title`,"system.config.group.field.key":`Key`,"system.config.group.field.key.required":`Please enter key`,"system.config.group.field.remark":`Description`,"system.config.group.createSuccess":`Config group created successfully`,"system.config.group.updateSuccess":`Config group updated successfully`,"system.config.group.deleteSuccess":`Config group deleted successfully`,"system.config.item.title":`Config Items`,"system.config.item.add":`Add Config Item`,"system.config.item.create":`Create Config Item`,"system.config.item.edit":`Edit Config Item`,"system.config.item.delete":`Delete`,"system.config.item.deleteConfirm":`Confirm deletion?`,"system.config.item.selectGroup":`Please select a setting group first`,"system.config.item.empty":`No setting items, please click "Add Config Item" button to add`,"system.config.item.field.key":`Key`,"system.config.item.field.key.required":`Please enter key`,"system.config.item.field.title":`Title`,"system.config.item.field.title.required":`Please enter title`,"system.config.item.field.type":`Component Type`,"system.config.item.field.type.required":`Please select component type`,"system.config.item.field.describe":`Description`,"system.config.item.field.options":`Options`,"system.config.item.field.options.tooltip":`Options for components such as radio buttons and checkboxes, e.g.: 1=Option 1 /n 2=Option 2`,"system.config.item.field.props":`Properties`,"system.config.item.field.props.tooltip":`Component configuration, supporting simple settings, e.g.: placeholder=Please enter /n maxLength=100`,"system.config.item.field.values":`Default Value`,"system.config.item.field.sort":`Sort`,"system.config.item.createSuccess":`Config item created successfully`,"system.config.item.updateSuccess":`Config item updated successfully`,"system.config.item.deleteSuccess":`Config item deleted successfully`,"system.config.item.refreshCacheSuccess":`refresh cache successfully`,"system.config.component.Input":`Input`,"system.config.component.TextArea":`Text Area`,"system.config.component.InputNumber":`Number Input`,"system.config.component.Switch":`Switch`,"system.config.component.Radio":`Radio`,"system.config.component.Checkbox":`Checkbox`,"system.config.form.placeholder.input":`Please input`,"system.config.form.placeholder.select":`Please select`,"system.config.form.placeholder.date":`Please select date`,"system.config.save.button":`Save`,"system.config.refresh.button":`Refresh Cache`,"system.config.confirm.ok":`Confirm`,"system.config.confirm.cancel":`Cancel`},An={"system.dept.page.title":`Department Management`,"system.dept.page.description":`Manage system departments, configure department hierarchy, manage department users`,"system.dept.tab.info":`Basic Information`,"system.dept.tab.users":`User List`,"system.dept.unnamed":`Unnamed Department`,"system.dept.createSuccess":`Department added successfully!`,"system.dept.updateSuccess":`Department updated successfully!`,"system.dept.deleteSuccess":`Batch department deletion successful!`,"system.dept.column.name":`Department Name`,"system.dept.column.name.required":`Department name is required!`,"system.dept.column.code":`Department Code`,"system.dept.column.code.required":`Department code is required!`,"system.dept.column.type":`Department Type`,"system.dept.column.type.0":`Company`,"system.dept.column.type.1":`Department`,"system.dept.column.type.2":`Position`,"system.dept.column.type.required":`Department type is required!`,"system.dept.column.parent":`Parent Department`,"system.dept.column.parent.0":`Top Level`,"system.dept.column.parent.required":`Parent department is required!`,"system.dept.column.email":`Email`,"system.dept.column.address":`Address`,"system.dept.column.phone":`Phone`,"system.dept.column.sort":`Sort Order`,"system.dept.column.sort.required":`Sort order is required!`,"system.dept.column.status":`Status`,"system.dept.column.status.0":`Normal`,"system.dept.column.status.1":`Disabled`,"system.dept.column.status.required":`Status is required!`,"system.dept.column.remark":`Remarks`,"system.dept.users.column.id":`User ID`,"system.dept.users.column.username":`Username`,"system.dept.users.column.nickname":`Nickname`,"system.dept.users.column.email":`Email`,"system.dept.users.column.mobile":`Mobile Number`,"system.dept.users.column.status":`Status`,"system.dept.users.column.status.0":`Enabled`,"system.dept.users.column.status.1":`Disabled`,"system.dept.createButton":`Add Department`,"system.dept.createModalTitle":`Add Department Form`,"system.dept.createChildrenButton":`Add Subordinate`,"system.dept.checkedMessage":`{{checked}} records selected`,"system.dept.unselect":`Deselect`,"system.dept.delete.ok":`Delete`,"system.dept.delete.cancel":`Cancel Delete`,"system.dept.delete.title":`Delete Department`,"system.dept.delete.description":`Are you sure you want to delete these departments?`,"system.dept.saveInfo":`Save Information`},jn={"system.dict.page.title":`Dictionary Management`,"system.dict.page.description":`Manage system dictionary types, configure data dictionary items`,"system.dict.id":`ID`,"system.dict.name":`Dict Name`,"dict.name.required":`Dict name is required`,"system.dict.code":`Dict Code`,"dict.code.required":`Dict code is required`,"system.dict.renderType":`Render Type`,"system.dict.renderType.required":`Render type is required`,"system.dict.renderType.text":`Text`,"system.dict.renderType.tag":`Tag`,"system.dict.renderType.badge":`Badge`,"system.dict.renderType.switch":`Switch`,"system.dict.status":`Status`,"system.dict.status.required":`Status is required`,"system.dict.status.normal":`Normal`,"system.dict.status.disabled":`Disabled`,"system.dict.sort":`Sort`,"system.dict.describe":`Description`,"system.dict.createdAt":`Created At`,"system.dict.updatedAt":`Updated At`,"system.dict.item.id":`ID`,"system.dict.item.label":`Label`,"system.dict.item.label.required":`Label is required`,"system.dict.item.value":`Value`,"system.dict.item.value.required":`Value is required`,"system.dict.item.color":`Color`,"system.dict.item.isDefault":`Default`,"system.dict.item.isDefault.required":`Default is required`,"system.dict.item.isDefault.yes":`Yes`,"system.dict.item.isDefault.no":`No`,"system.dict.item.status":`Status`,"system.dict.item.status.required":`Status is required`,"system.dict.item.status.normal":`Normal`,"system.dict.item.status.disabled":`Disabled`,"system.dict.item.sort":`Sort`,"system.dict.item.createTime":`Created At`,"system.dict.item.updateTime":`Updated At`,"system.dict.refreshCache":`Refresh Cache`,"system.dict.refreshSuccess":`Dictionary cache refreshed successfully`,"system.dict.manageItems":`Dict Data`,"system.dict.itemManagement":`Dictionary Data Management`,"system.dict.item.createSuccess":`Dictionary data created successfully`,"system.dict.item.updateSuccess":`Dictionary data updated successfully`,"system.dict.backToList":`Back to List`,"system.dict.selectDictFirst":`Please select a dictionary from the list to manage`},Mn={"system.file.page.title":`File Management`,"system.file.page.description":`Manage system files, support upload, download, delete, rename, etc.`,"system.file.fileFolder":`Folders`,"system.file.fileName":`File Name`,"system.file.fileType":`Type`,"system.file.fileSize":`Size`,"system.file.preview":`Preview`,"system.file.createdAt":`Created At`,"system.file.updatedAt":`Updated At`,"system.file.deletedAt":`Deleted At`,"system.file.action":`Action`,"system.file.download":`Download`,"system.file.delete":`Delete`,"system.file.forceDelete":`Force Delete`,"system.file.restore":`Restore`,"system.file.rename":`Rename`,"system.file.move":`Move`,"system.file.copy":`Copy`,"system.file.confirmDelete":`Are you sure to delete this file?`,"system.file.confirmForceDelete":`Are you sure to permanently delete this file? This action cannot be undone!`,"system.file.confirmDeleteFolder":`Are you sure to delete this folder?`,"system.file.confirmRestore":`Are you sure to restore this file?`,"system.file.confirmBatchDelete":`Are you sure to delete {{count}} selected files?`,"system.file.confirmBatchForceDelete":`Are you sure to permanently delete {{count}} selected files? This action cannot be undone!`,"system.file.confirmBatchRestore":`Are you sure to restore {{count}} selected files?`,"system.file.ok":`OK`,"system.file.cancel":`Cancel`,"system.file.upload":`Upload File`,"system.file.uploadTitle":`Upload File`,"system.file.uploadFileType":`File Type`,"system.file.selectFile":`Select File`,"system.file.uploadProgress":`Upload Progress`,"system.file.uploadDragText":`Click or drag files to this area to upload`,"system.file.uploadHint":`Support for single or batch upload`,"system.file.selectFileWarning":`Please select files to upload`,"system.file.uploadSuccess":`Upload successful`,"system.file.deleteSuccess":`File deleted successfully`,"system.file.forceDeleteSuccess":`File permanently deleted`,"system.file.restoreSuccess":`File restored successfully`,"system.file.renameSuccess":`File renamed successfully`,"system.file.moveSuccess":`File moved successfully`,"system.file.copySuccess":`File copied successfully`,"system.file.batchDeleteSuccess":`Files deleted successfully`,"system.file.batchForceDeleteSuccess":`Files permanently deleted`,"system.file.batchRestoreSuccess":`Files restored successfully`,"system.file.deleteFolderSuccess":`Folder deleted successfully`,"system.file.deleteFolderHint":`Please delete all files in the folder before deleting the folder`,"system.file.addFolder":`Add Subfolder`,"system.file.editFolder":`Edit Folder`,"system.file.deleteFolder":`Delete Folder`,"system.file.addFolderTitle":`Add Folder`,"system.file.editFolderTitle":`Edit Folder`,"system.file.saveFolderSuccess":`{{action}} folder successfully`,"system.file.actionAdd":`Add`,"system.file.actionEdit":`Edit`,"system.file.folderName":`Folder Name`,"system.file.folderNameRequired":`Please enter folder name`,"system.file.folderSearchPlaceholder":`Search folder by name`,"system.file.parentFolder":`Parent Folder`,"system.file.sort":`Sort`,"system.file.sortRequired":`Sort is required`,"system.file.describe":`Description`,"system.file.root":`Root`,"system.file.type.image":`Image`,"system.file.type.audio":`Audio`,"system.file.type.video":`Video`,"system.file.type.archive":`Archive`,"system.file.type.other":`Other`,"system.file.type.document":`Document`,"system.file.trash":`Trash`,"system.file.emptyTrash":`Empty Trash`,"system.file.confirmEmptyTrash":`Are you sure to empty the trash? This action cannot be undone!`,"system.file.emptyTrashSuccess":`Trash emptied, {{count}} files deleted`,"system.file.batchDelete":`Batch Delete`,"system.file.batchForceDelete":`Batch Force Delete`,"system.file.batchRestore":`Batch Restore`,"system.file.batchMove":`Batch Move`,"system.file.batchCopy":`Batch Copy`,"system.file.noSelected":`Please select files first`,"system.file.renameTitle":`Rename File`,"system.file.renameDescription":`You are renaming the file, please enter a new file name!`,"system.file.moveTitle":`Move File`,"system.file.moveDescription":`You are moving the file, please select the target folder`,"system.file.copyTitle":`Copy File`,"system.file.copyDescription":`You are copying the file, please select the target folder!`,"system.file.newFileNameRequired":`Please enter new file name`,"system.file.disk":`Storage Disk`,"system.file.loading":`Loading...`,"system.file.refresh":`Refresh`,"system.file.totalFiles":`Total {{total}} files`,"system.file.fileDetail":`File Details`,"system.file.basicInfo":`Basic Information`,"system.file.fileExt":`Extension`,"system.file.filePath":`File Path`,"system.file.fileGroup":`File Group`,"system.file.ungrouped":`Ungrouped`,"system.file.accessUrl":`Access URL`,"system.file.storageMethod":`Storage Method`},Nn={"system.mail.page.title":`Mail Settings`,"system.mail.page.description":`Mail configuration for sending emails, supports failover and round-robin switching`,"system.mail.mode":`Mode`,"system.mail.mode.single":`Single`,"system.mail.mode.failover":`Failover`,"system.mail.mode.roundrobin":`Round Robin`,"system.mail.driver":`Mail Driver`,"system.mail.driver.smtp":`SMTP`,"system.mail.driver.ses":`Amazon SES`,"system.mail.driver.mailgun":`Mailgun`,"system.mail.driver.postmark":`Postmark`,"system.mail.driver.resend":`Resend`,"system.mail.driver.log":`Log`,"system.mail.driver.array":`Array (Debug)`,"system.mail.smtp.title":`SMTP Configuration`,"system.mail.host":`Host`,"system.mail.host.placeholder":`smtp.example.com`,"system.mail.port":`Port`,"system.mail.port.placeholder":`587`,"system.mail.username":`Username`,"system.mail.username.placeholder":`your-email@example.com`,"system.mail.password":`Password`,"system.mail.password.placeholder":`Your email password or app password`,"system.mail.log.title":`Log Configuration`,"system.mail.log.channel":`Log Channel`,"system.mail.log.channel.placeholder":`mail`,"system.mail.postmark.title":`Postmark Configuration`,"system.mail.postmark.token":`Postmark Token`,"system.mail.postmark.token.placeholder":`Your Postmark API token`,"system.mail.resend.title":`Resend Configuration`,"system.mail.resend.key":`Resend API Key`,"system.mail.resend.key.placeholder":`Your Resend API key`,"system.mail.mailgun.title":`Mailgun Configuration`,"system.mail.mailgun.domain":`Mailgun Domain`,"system.mail.mailgun.domain.placeholder":`mg.yourdomain.com`,"system.mail.mailgun.secret":`Mailgun Secret`,"system.mail.mailgun.secret.placeholder":`Your Mailgun API key`,"system.mail.mailgun.endpoint":`Mailgun Endpoint`,"system.mail.mailgun.endpoint.placeholder":`api.mailgun.net`,"system.mail.ses.title":`SES (Amazon) Configuration`,"system.mail.ses.key":`AWS Access Key`,"system.mail.ses.key.placeholder":`AKIA...`,"system.mail.ses.secret":`AWS Secret Key`,"system.mail.ses.secret.placeholder":`Your AWS secret key`,"system.mail.ses.region":`AWS Region`,"system.mail.ses.region.placeholder":`us-east-1`,"system.mail.ses.token":`AWS Session Token`,"system.mail.ses.token.placeholder":`Optional session token`,"system.mail.from_address":`From Address`,"system.mail.from_address.placeholder":`noreply@example.com`,"system.mail.from_name":`From Name`,"system.mail.from_name.placeholder":`Your Application Name`,"system.mail.test.title":`Send Test Email`,"system.mail.test.to":`Recipient Email`,"system.mail.test.to.placeholder":`receiver@example.com`,"system.mail.test.send":`Send Test`,"system.mail.test.success":`Test email sent successfully`,"system.mail.test.failed":`Failed to send test email`,"system.mail.save.success":`Configuration saved successfully`,"system.mail.save.failed":`Failed to save configuration`},Pn={"system.storage.page.title":`Storage Configuration`,"system.storage.page.description":`Configure system file storage, supports local storage, S3 object storage, FTP and SFTP`,"system.storage.driver":`Default Storage Driver`,"system.storage.driver.local":`Local Storage`,"system.storage.driver.s3":`Amazon S3 / Object Storage`,"system.storage.driver.ftp":`FTP Server`,"system.storage.driver.sftp":`SFTP Server`,"system.storage.local.title":`Local Storage Configuration`,"system.storage.local.url":`Access URL`,"system.storage.local.url.placeholder":`e.g., https://example.com/storage`,"system.storage.local.url.tooltip":`Public URL prefix for file access`,"system.storage.s3.title":`S3 / Object Storage Configuration`,"system.storage.s3.key":`Access Key ID`,"system.storage.s3.key.placeholder":`Enter Access Key ID`,"system.storage.s3.secret":`Secret Access Key`,"system.storage.s3.secret.placeholder":`Enter Secret Access Key`,"system.storage.s3.region":`Region`,"system.storage.s3.region.placeholder":`e.g., us-east-1 or cn-hangzhou`,"system.storage.s3.bucket":`Bucket`,"system.storage.s3.bucket.placeholder":`Enter bucket name`,"system.storage.s3.endpoint":`Endpoint`,"system.storage.s3.endpoint.placeholder":`Custom endpoint, e.g., Aliyun OSS: oss-cn-hangzhou.aliyuncs.com`,"system.storage.s3.endpoint.tooltip":`Leave empty for AWS S3, required for Aliyun OSS, Tencent COS, etc.`,"system.storage.s3.url":`Custom URL`,"system.storage.s3.url.placeholder":`Custom file access URL prefix (optional)`,"system.storage.s3.url.tooltip":`Configure CDN domain if using CDN`,"system.storage.s3.path_style":`Path Style Endpoint`,"system.storage.s3.path_style.tooltip":`Some S3-compatible services (like MinIO) require this option`,"system.storage.ftp.title":`FTP Server Configuration`,"system.storage.ftp.host":`Host`,"system.storage.ftp.host.placeholder":`e.g., ftp.example.com`,"system.storage.ftp.port":`Port`,"system.storage.ftp.port.placeholder":`21`,"system.storage.ftp.username":`Username`,"system.storage.ftp.username.placeholder":`Enter FTP username`,"system.storage.ftp.password":`Password`,"system.storage.ftp.password.placeholder":`Enter FTP password`,"system.storage.ftp.root":`Root Directory`,"system.storage.ftp.root.placeholder":`e.g., /public_html/uploads`,"system.storage.ftp.root.tooltip":`Storage root directory on FTP server`,"system.storage.ftp.timeout":`Timeout`,"system.storage.ftp.timeout.placeholder":`30`,"system.storage.ftp.timeout.suffix":`seconds`,"system.storage.ftp.passive":`Passive Mode`,"system.storage.ftp.passive.tooltip":`Recommended for most network environments`,"system.storage.ftp.ssl":`SSL/TLS`,"system.storage.ftp.ssl.tooltip":`Enable FTPS secure connection`,"system.storage.sftp.title":`SFTP Server Configuration`,"system.storage.sftp.host":`Host`,"system.storage.sftp.host.placeholder":`e.g., sftp.example.com`,"system.storage.sftp.port":`Port`,"system.storage.sftp.port.placeholder":`22`,"system.storage.sftp.username":`Username`,"system.storage.sftp.username.placeholder":`Enter SFTP username`,"system.storage.sftp.password":`Password`,"system.storage.sftp.password.placeholder":`Enter SFTP password`,"system.storage.sftp.password.tooltip":`Leave empty if using key authentication`,"system.storage.sftp.root":`Root Directory`,"system.storage.sftp.root.placeholder":`e.g., /var/www/uploads`,"system.storage.sftp.root.tooltip":`Storage root directory on SFTP server`,"system.storage.sftp.timeout":`Timeout`,"system.storage.sftp.timeout.placeholder":`30`,"system.storage.sftp.timeout.suffix":`seconds`,"system.storage.sftp.private_key":`Private Key`,"system.storage.sftp.private_key.placeholder":`Paste SSH private key content (optional)`,"system.storage.sftp.private_key.tooltip":`Paste private key content for key authentication`,"system.storage.sftp.passphrase":`Passphrase`,"system.storage.sftp.passphrase.placeholder":`Enter if private key is password protected`,"system.storage.sftp.passphrase.tooltip":`Private key passphrase (if any)`,"system.storage.test.title":`Connection Test`,"system.storage.test.current_driver":`Current Storage Driver`,"system.storage.test.button":`Test Connection`,"system.storage.test.success":`Connection test successful`,"system.storage.test.failed":`Connection test failed`,"system.storage.help.title":`Storage Driver Guide`,"system.storage.help.local":`Local Storage:`,"system.storage.help.local.desc":`Files stored on server local disk, suitable for small projects.`,"system.storage.help.s3":`S3 / Object Storage:`,"system.storage.help.s3.desc":`Compatible with AWS S3, Aliyun OSS, Tencent COS, Qiniu, suitable for large-scale storage.`,"system.storage.help.ftp":`FTP:`,"system.storage.help.ftp.desc":`Connect to remote server via FTP protocol.`,"system.storage.help.sftp":`SFTP:`,"system.storage.help.sftp.desc":`Secure connection via SSH, more secure and reliable.`,"system.storage.save.success":`Configuration saved successfully`,"system.storage.save.failed":`Failed to save configuration`},Fn={"system.user.page.title":`User List`,"system.user.page.description":`Manage system users through the admin list, assign departments and roles to users.`,"system.user.id":`User ID`,"system.user.username":`Username`,"system.user.username.required":`Username is required`,"system.user.nickname":`Nickname`,"system.user.nickname.required":`Nickname is required`,"system.user.sex":`Gender`,"system.user.sex.0":`Male`,"system.user.sex.1":`Female`,"system.user.email":`Email`,"system.user.email.required":`Email is required`,"system.user.role":`User Role`,"system.user.role.required":`User role is required`,"system.user.dept":`User Department`,"system.user.dept.required":`User department is required`,"system.user.status":`Status`,"system.user.status.0":`Disabled`,"system.user.status.1":`Enabled`,"system.user.status.required":`Status is required`,"system.user.mobile":`Mobile Number`,"system.user.mobile.required":`Mobile number is required`,"system.user.avatar":`Avatar`,"system.user.password":`Password`,"system.user.password.required":`Password is required`,"system.user.rePassword":`Confirm Password`,"system.user.rePassword.required":`Confirm password is required`,"system.user.created_at":`Created At`,"system.user.updated_at":`Updated At`,"system.user.searchPlaceholder":`Please enter nickname, username, or mobile number to search`,"system.user.resetSuccess":`Reset successful!`,"system.user.resetPassword":`Reset Password`,"system.user.resetButton":`Submit Reset`},In={"system.role.page.title":`Role Management`,"system.role.page.description":`Manage system roles, configure role permissions, assign roles to users`,"system.role.title":`Role Management`,"system.role.tab.users":`User List`,"system.role.tab.rules":`Permission Settings`,"system.role.table.roleName":`Role Name`,"system.role.table.roleName.required":`Please enter role name`,"system.role.table.sort":`Sort Order`,"system.role.table.sort.required":`Please enter sort value`,"system.role.table.userCount":`User Count`,"system.role.table.status":`Status`,"system.role.table.status.required":`Please select status`,"system.role.table.status.enable":`Enable`,"system.role.table.status.disable":`Disable`,"system.role.table.status.enabled":`Enabled`,"system.role.table.status.disabled":`Disabled`,"system.role.table.description":`Role Description`,"system.role.table.createdAt":`Created At`,"system.role.table.updatedAt":`Updated At`,"system.role.table.headerTitle":`Role List`,"system.role.userTable.userId":`User ID`,"system.role.userTable.username":`Username`,"system.role.userTable.nickname":`Nickname`,"system.role.userTable.email":`Email`,"system.role.userTable.mobile":`Mobile Number`,"system.role.userTable.status":`Status`,"system.role.userTable.status.normal":`Normal`,"system.role.userTable.status.banned":`Banned`,"system.role.userTable.person":`users`,"system.role.button.expandAll":`Expand All`,"system.role.button.collapseAll":`Collapse All`,"system.role.button.selectAll":`Select All`,"system.role.button.clearAll":`Clear Selection`,"system.role.button.invertSelection":`Invert Selection`,"system.role.button.saveRules":`Save Permissions`,"system.role.message.selectRoleFirst":`Please select a role first`,"system.role.message.statusUpdateSuccess":`Status updated successfully`,"system.role.message.statusUpdateFailed":`Status update failed`,"system.role.message.rulesSaveSuccess":`Permissions saved successfully`,"system.role.permission.selectedCount":`Selected {{count}} permissions`,"system.role.placeholder.selectRole":`Please select a role first`},Ln={"system.rule.description":`Manage system menus and permissions, configure routes and permission items`,"system.rule.routePath":`Route Path`,"system.rule.routePath.required":`Route path is required`,"system.rule.routePath.tooltip":`Access path for the route page. For external links, please provide the complete URL`,"system.rule.routePath.showTooltip":`Route Path: {{path}}`,"system.rule.icon":`Menu Icon`,"system.rule.local":`i18n Key`,"system.rule.local.show":`Display Name`,"system.rule.link":`External Link`,"system.rule.link.1":`Yes`,"system.rule.link.0":`No`,"system.rule.type":`Menu Type`,"system.rule.type.menu":`Menu Item`,"system.rule.type.route":`Route Page`,"system.rule.type.rule":`Permission Item`,"system.rule.type.required":`Menu type is required`,"system.rule.parent":`Parent Menu`,"system.rule.parent.0":`Root Menu`,"system.rule.parent.required":`Parent menu is required`,"system.rule.order":`Sort Order`,"system.rule.order.required":`Sort order is required`,"system.rule.name":`Rule Name`,"system.rule.name.required":`Rule name is required`,"system.rule.key":`Permission Key`,"system.rule.key.required":`Permission key is required`,"system.rule.hidden":`Visibility`,"system.rule.hidden.tooltip":`Controls menu display in navigation (route and permission functions remain active)`,"system.rule.hidden.0":`Hidden`,"system.rule.hidden.1":`Visible`,"system.rule.hidden.updateSuccess":`Visibility updated successfully`,"system.rule.status":`Status`,"system.rule.status.tooltip":`Permission status (disabled permissions will not participate in system permission verification)`,"system.rule.status.0":`Disabled`,"system.rule.status.1":`Enabled`,"system.rule.status.updateSuccess":`Status updated successfully`,"system.rule.created_at":`Created At`,"system.rule.updated_at":`Updated At`,"system.rule.title":`Permission Management`,"system.rule.addChildButton":`Add Child Item`},Rn={"system.ai.page.title":`AI Settings`,"system.ai.page.description":`Manage AI provider and model configurations, supports multiple providers and default model assignment`,"system.ai.default":`Default Model`,"system.ai.default.tooltip":`Default model for general AI chat, analysis and other tasks`,"system.ai.provider.api_key":`{{lab}} API Key`,"system.ai.provider.api_key.placeholder":`Please enter API Key`,"system.ai.provider.url":`{{lab}} API URL`,"system.ai.provider.url.placeholder":`Example: {{url}}`,"system.ai.azure.api_version":`API Version`,"system.ai.azure.deployment":`Deployment Name`,"system.ai.azure.embedding_deployment":`Embedding Deployment Name`,"system.ai.azure.image_deployment":`Image Deployment Name`,"system.ai.bedrock.region":`AWS Region`,"system.ai.bedrock.access_key_id":`Access Key ID`,"system.ai.bedrock.secret_access_key":`Secret Access Key`,"system.ai.bedrock.session_token":`Session Token (optional)`,"system.ai.test.title":`Connection Test`,"system.ai.test.hint":`Click the button below to test the current AI provider connection`,"system.ai.test.button":`Test Connection`,"system.ai.test.testing":`Testing connection...`,"system.ai.test.success":`Connection test successful!`,"system.ai.test.error":`Connection test failed`,"system.ai.save.success":`AI settings saved successfully`},zn={"system.carousel.page.title":`Homepage Carousel`,"system.carousel.page.description":`Manage homepage carousel images and links`,"system.carousel.id":`ID`,"system.carousel.title":`Carousel Title`,"system.carousel.title.required":`Carousel title is required`,"system.carousel.image":`Carousel Image`,"system.carousel.image.required":`Carousel image is required`,"system.carousel.linkType":`Link Type`,"system.carousel.linkType.required":`Link type is required`,"system.carousel.linkType.link":`Link`,"system.carousel.linkType.category":`Category`,"system.carousel.link":`Redirect Link`,"system.carousel.link.placeholder":`Enter redirect link`,"system.carousel.category":`Target Category`,"system.carousel.category.placeholder":`Select a category`,"system.carousel.status":`Status`,"system.carousel.status.required":`Status is required`,"system.carousel.status.normal":`Active`,"system.carousel.status.disabled":`Disabled`,"system.carousel.sort":`Sort`,"system.carousel.createdAt":`Created At`,"system.carousel.updatedAt":`Updated At`},Bn={"system.gridNav.page.title":`Homepage Grid Navigation`,"system.gridNav.page.description":`Manage homepage grid navigation icons and links`,"system.gridNav.id":`ID`,"system.gridNav.title":`Navigation Title`,"system.gridNav.title.required":`Navigation title is required`,"system.gridNav.image":`Navigation Icon`,"system.gridNav.image.required":`Navigation icon is required`,"system.gridNav.linkType":`Link Type`,"system.gridNav.linkType.required":`Link type is required`,"system.gridNav.linkType.link":`Link`,"system.gridNav.linkType.category":`Category`,"system.gridNav.link":`Redirect Link`,"system.gridNav.link.placeholder":`Enter redirect link`,"system.gridNav.category":`Target Category`,"system.gridNav.category.placeholder":`Select a category`,"system.gridNav.status":`Status`,"system.gridNav.status.required":`Status is required`,"system.gridNav.status.normal":`Active`,"system.gridNav.status.disabled":`Disabled`,"system.gridNav.sort":`Sort`,"system.gridNav.createdAt":`Created At`,"system.gridNav.updatedAt":`Updated At`},Vn={"system.category.page.title":`Category Management`,"system.category.page.description":`Manage homepage categories and category item links`,"system.category.id":`ID`,"system.category.name":`Category Name`,"system.category.name.required":`Category name is required`,"system.category.status":`Status`,"system.category.status.required":`Status is required`,"system.category.status.normal":`Active`,"system.category.status.disabled":`Disabled`,"system.category.sort":`Sort`,"system.category.createdAt":`Created At`,"system.category.updatedAt":`Updated At`,"system.category.manageItems":`Manage Items`,"system.category.itemManagement":`Category Items`,"system.category.backToList":`Back to Categories`,"system.category.selectCategoryFirst":`Please select a category first`,"system.category.item.id":`ID`,"system.category.item.title":`Item Title`,"system.category.item.title.required":`Item title is required`,"system.category.item.image":`Item Icon`,"system.category.item.image.required":`Item icon is required`,"system.category.item.link":`Redirect Link`,"system.category.item.link.placeholder":`Enter redirect link`,"system.category.item.tag":`Tags`,"system.category.item.tag.placeholder":`Type and press Enter to add a tag`,"system.category.item.status":`Status`,"system.category.item.status.required":`Status is required`,"system.category.item.status.normal":`Active`,"system.category.item.status.disabled":`Disabled`,"system.category.item.sort":`Sort`,"system.category.item.createdAt":`Created At`,"system.category.item.updatedAt":`Updated At`,"system.category.item.createSuccess":`Category item created successfully`,"system.category.item.updateSuccess":`Category item updated successfully`},Hn={"system.activity.page.title":`Activity Zone`,"system.activity.page.description":`Manage homepage activity zone images, descriptions and links`,"system.activity.id":`ID`,"system.activity.title":`Activity Title`,"system.activity.title.required":`Activity title is required`,"system.activity.image":`Activity Image`,"system.activity.image.required":`Activity image is required`,"system.activity.description":`Description`,"system.activity.description.placeholder":`Enter activity description`,"system.activity.linkType":`Link Type`,"system.activity.linkType.required":`Link type is required`,"system.activity.linkType.link":`Link`,"system.activity.linkType.category":`Category`,"system.activity.link":`Redirect Link`,"system.activity.link.placeholder":`Enter redirect link`,"system.activity.category":`Target Category`,"system.activity.category.placeholder":`Select a category`,"system.activity.status":`Status`,"system.activity.status.required":`Status is required`,"system.activity.status.normal":`Active`,"system.activity.status.disabled":`Disabled`,"system.activity.sort":`Sort`,"system.activity.createdAt":`Created At`,"system.activity.updatedAt":`Updated At`},Un={"ai.chat.title":`AI Chat`,"ai.chat.newChat":`New Chat`,"ai.chat.placeholder":`Type your question, press Enter to send...`,"ai.chat.welcome.title":`How can I help you?`,"ai.chat.welcome.description":`I am your AI assistant. I can answer questions, write code, analyze data, and more.`,"ai.chat.loading":`Thinking...`,"ai.chat.error.send":`Failed to send, please retry`,"ai.chat.delete.confirm":`Are you sure you want to delete this conversation?`,"ai.chat.delete.success":`Conversation deleted`,"ai.chat.empty":`No conversations yet, start a new chat`,"ai.chat.copy":`Copy`,"ai.chat.copy.success":`Copied to clipboard`,"ai.chat.retry":`Retry`,"ai.chat.thinking":`Deep thinking...`,"ai.chat.thinking.done":`Thinking completed`,"ai.chat.attachment.upload":`Upload file`,"ai.chat.attachment.maxCount":`Maximum {count} files`,"ai.chat.attachment.error":`File upload failed`,"ai.chat.switchAgent":`Switch Agent`,"ai.chat.defaultTitle":`AI Chat`},Wn={"ai.conversation.page.title":`AI Conversation Management`,"ai.conversation.page.description":`Manage AI chat conversations and message records`,"ai.conversation.id":`Conversation ID`,"ai.conversation.username":`User`,"ai.conversation.title":`Title`,"ai.conversation.messageCount":`Messages`,"ai.conversation.createdAt":`Created At`,"ai.conversation.updatedAt":`Updated At`,"ai.conversation.deleteConfirm":`Are you sure you want to delete this conversation? All messages will be removed.`,"ai.conversation.deleteSuccess":`Conversation deleted`,"ai.conversation.viewMessages":`View Messages`,"ai.conversation.messageTitle":`Conversation Messages`,"ai.conversation.noUser":`Anonymous`,"ai.conversation.message.id":`Message ID`,"ai.conversation.message.role":`Role`,"ai.conversation.message.role.user":`User`,"ai.conversation.message.role.assistant":`Assistant`,"ai.conversation.message.role.system":`System`,"ai.conversation.message.agent":`AI Model`,"ai.conversation.message.content":`Content`,"ai.conversation.message.createdAt":`Sent At`,"ai.conversation.message.toolCalls":`Tool Calls`,"ai.conversation.message.usage":`Usage`},Gn={"ai.agent.page.title":`Agent Management`,"ai.agent.page.description":`Manage AI Agent registration and status. Agents are registered via database seeder.`,"ai.agent.update.success":`Updated successfully`,"ai.agent.update.failed":`Failed to update`,"ai.agent.empty":`No agents registered.`,"ai.agent.goChat":`Chat`},Kn={"user.profile.title":`User Settings`,"user.profile.baseInfo":`Basic Information`,"user.profile.changePassword":`Change Password`,"user.profile.loginLog":`Login Log`,"user.profile.baseInfo.updateAvatar":`Update Avatar`,"user.profile.baseInfo.updateAvatarDesc":`Supports JPG/PNG format, maximum 2MB`,"user.profile.baseInfo.avatarSuccess":`Avatar uploaded successfully`,"user.profile.baseInfo.success":`User information updated successfully`,"user.profile.baseInfo.username":`Username`,"user.profile.baseInfo.username.message":`Please enter username!`,"user.profile.baseInfo.nickname":`Nickname`,"user.profile.baseInfo.nickname.message":`Please enter nickname!`,"user.profile.baseInfo.sex":`Gender`,"user.profile.baseInfo.sex.0":`Male`,"user.profile.baseInfo.sex.1":`Female`,"user.profile.baseInfo.bio":`Bio`,"user.profile.baseInfo.email":`Email`,"user.profile.baseInfo.email.typeMessage":`Please enter a valid email address!`,"user.profile.baseInfo.email.requiredMessage":`Please enter email!`,"user.profile.baseInfo.mobile":`Mobile Number`,"user.profile.baseInfo.mobile.message":`Please enter mobile number!`,"user.profile.baseInfo.submit":`Save User Information`,"user.profile.changePassword.oldPassword":`Current Password`,"user.profile.changePassword.oldPassword.message":`Please enter current password!`,"user.profile.changePassword.newPassword":`New Password`,"user.profile.changePassword.rePassword":`Confirm New Password`,"user.profile.changePassword.requiredMessage":`Please enter new password!`,"user.profile.changePassword.minMessage":`Password must be at least 8 characters!`,"user.profile.changePassword.rePassword.message":`Passwords do not match!`,"user.profile.changePassword.submit":`Change Password`,"user.profile.changePassword.success":`Update Successful`,"user.profile.loginLog.success":`Login Successful`,"user.profile.loginLog.error":`Login Failed`,"user.profile.loginLog.empty":`No login logs available`},qn={"xin.form.submit":`Submit`,"xin.form.reset":`Reset`,"xin.form.cancel":`Cancel`,"xin.form.formList.add":`Add Item`,"xin.form.upload.button":`Click to Upload`,"xin.form.userSelector.placeholder":`Please select user`,"xin.form.userSelector.modal.title":`Select User`,"xin.form.userSelector.modal.okText":`OK`,"xin.form.userSelector.modal.cancelText":`Cancel`,"xin.form.iconSelector.placeholder":`Please select icon`,"xin.form.iconSelector.modal.title":`Select Icon`,"xin.form.iconSelector.tabs.use":`Custom Icons`,"xin.form.iconSelector.tabs.suggestion":`Website General Icons`,"xin.form.iconSelector.tabs.direction":`Directional Icons`,"xin.form.iconSelector.tabs.editor":`Editor Icons`,"xin.form.iconSelector.tabs.data":`Data Icons`,"xin.form.iconSelector.tabs.logo":`Brands and Logos`,"xin.form.iconSelector.tabs.other":`Other Icons`,"xin.form.imageUploader.uploadText":`Upload Image`,"xin.form.imageUploader.error.notImage":`Only image files can be uploaded!`,"xin.form.imageUploader.error.sizeExceeded":`Image size cannot exceed {{maxSize}}MB!`,"xin.form.imageUploader.error.dimensionExceeded":`Image dimensions cannot exceed {{maxWidth}}x{{maxHeight}}px!`,"xin.form.imageUploader.error.loadFailed":`Failed to load image!`,"xin.form.imageUploader.error.readFailed":`Failed to read image!`},Jn={"xin.table.queryTable":`Query Table`,"xin.table.keywordPlaceholder":`Enter keyword`,"xin.table.keywordEmpty":`Please enter search content`,"xin.table.add":`Add`,"xin.table.refresh":`Refresh`,"xin.table.columnSettings":`Column Settings`,"xin.table.showBorder":`Show Border`,"xin.table.hideBorder":`Hide Border`,"xin.table.density.default":`Default`,"xin.table.density.middle":`Middle`,"xin.table.density.compact":`Compact`,"xin.table.total":`Total {{total}} items`,"xin.table.operate":`Actions`,"xin.table.edit":`Edit`,"xin.table.delete":`Delete`,"xin.table.deleteConfirm":`Are you sure to delete record {{id}}?`,"xin.table.deleteOk":`Confirm Delete`,"xin.table.deleteCancel":`Cancel`,"xin.table.deleteSuccess":`Deleted successfully`,"xin.table.form.createTitle":`Create`,"xin.table.form.editTitle":`Edit`,"xin.table.form.close":`Close`,"xin.table.form.createSuccess":`Created successfully!`,"xin.table.form.updateSuccess":`Updated successfully!`,"xin.table.form.updateKeyUndefined":`Primary key for update is undefined!`,"xin.table.search.search":`Search`,"xin.table.search.reset":`Reset`,"xin.table.search.expand":`Expand`,"xin.table.search.collapse":`Collapse`},Yn={"xin.crud.operate":`Actions`,"xin.crud.edit":`Edit`,"xin.crud.delete":`Delete`,"xin.crud.add":`Add`,"xin.crud.batchDelete":`Batch Delete`,"xin.crud.confirm":`Confirm`,"xin.crud.cancel":`Cancel`,"xin.crud.deleteConfirm":`Confirm Delete`,"xin.crud.deleteConfirmDesc":`Data cannot be recovered after deletion. Are you sure to delete?`,"xin.crud.batchDeleteConfirm":`Confirm Batch Delete`,"xin.crud.batchDeleteConfirmDesc":`Are you sure to delete {{count}} selected items?`,"xin.crud.selectAtLeastOne":`Please select at least one item`,"xin.crud.createSuccess":`Created successfully`,"xin.crud.updateSuccess":`Updated successfully`,"xin.crud.deleteSuccess":`Deleted successfully`,"xin.crud.batchDeleteSuccess":`Batch deleted successfully`,"xin.crud.createTitle":`Create`,"xin.crud.editTitle":`Edit`,"xin.crud.total":`Total {{total}} items`,"xin.crud.yes":`Yes`,"xin.crud.no":`No`},Xn={"layout.resetTheme":`Reset Theme`,"layout.saveTheme":`Save Theme`,"layout.layoutStyle":`Layout Style`,"layout.layoutSide":`Side Navigation`,"layout.layoutTop":`Top Navigation`,"layout.layoutMix":`Mix Navigation`,"layout.layoutColumns":`Columns Navigation`,"layout.presetTheme":`Preset Theme`,"layout.themeLight":`Light`,"layout.themeDark":`Dark`,"layout.themePink":`Pink`,"layout.themeGreen":`Green`,"layout.themeAlgorithm":`Theme Algorithm`,"layout.algorithmDefault":`Default`,"layout.algorithmDark":`Dark`,"layout.algorithmDefaultCompact":`Default + Compact`,"layout.algorithmDarkCompact":`Dark + Compact`,"layout.themeColor":`Theme Color`,"layout.colorPrimary":`Primary Color`,"layout.colorText":`Text Color`,"layout.colorBg":`Background Color`,"layout.colorSuccess":`Success Color`,"layout.colorWarning":`Warning Color`,"layout.colorError":`Error Color`,"layout.bodyBg":`Body Background`,"layout.footerBg":`Footer Background`,"layout.headerBg":`Header Background`,"layout.headerColor":`Header Text Color`,"layout.siderBg":`Sider Background`,"layout.siderColor":`Sider Text Color`,"layout.colorBorder":`Border Color`,"layout.styleConfig":`Style Configuration`,"layout.fixedFooter":`Fixed Footer`,"layout.borderRadius":`Border Radius`,"layout.controlHeight":`Control Height`,"layout.headerPadding":`Header Padding`,"layout.headerHeight":`Header Height`,"layout.siderWeight":`Sider Width`,"layout.bodyPadding":`Body Padding`,"layout.systemConfig":`System Configuration`,"layout.localRoute":`Local Route`,"layout.profile":`User Settings`,"layout.logout":`Logout`,"layout.logoutSuccess":`Logout successful, redirecting`,"layout.logoutFailed":`Logout failed`,"layout.searchPlaceholder":`Please enter search content`,"layout.searchConfirm":`Confirm`,"layout.searchSwitch":`Switch`,"layout.searchClose":`Close`},Zn={...Cn,...wn,...Tn,...En,...Dn,...On,...kn,...An,...jn,...Mn,...Nn,...Pn,...Fn,...In,...Ln,...Rn,...zn,...Bn,...Vn,...Hn,...Un,...Wn,...Gn,...Kn,...qn,...Jn,...Yn,...Xn},Qn={"menu.dashboard":`仪表盘`,"menu.analysis":`分析页`,"menu.monitor":`监控页`,"menu.workplace":`工作台`,"menu.result":`结果页面`,"menu.result.success":`成功页`,"menu.result.fail":`失败页`,"menu.result.warning":`警告页`,"menu.result.info":`信息页`,"menu.exception":`异常页面`,"menu.exception.403":`403`,"menu.exception.404":`404`,"menu.exception.500":`500`,"menu.multi-menu":`多级菜单`,"menu.multi-menu.two":`二级菜单`,"menu.multi-menu.first":`二级页面`,"menu.multi-menu.two.three":`三级菜单`,"menu.multi-menu.two.second":`三级页面`,"menu.multi-menu.two.three.third":`四级页面`,"menu.page-layout":`页面布局`,"menu.page-layout.base-layout":`基础布局`,"menu.page-layout.fix-header":`固定头部`,"menu.page-layout.descriptions":`页面描述`,"menu.example":`组件示例`,"menu.example.user-selector":`用户选择器`,"menu.example.icon-selector":`图标`,"menu.example.image-uploader":`图片上传器`,"menu.example.xin-form":`XinForm 表单`,"menu.example.xin-table":`XinTable 表格`,"menu.ai":`AI`,"menu.ai.chat":`对话`,"menu.ai.agent":`智能体`,"menu.ai.conversation":`会话管理`,"menu.system":`系统管理`,"menu.system.user":`用户管理`,"menu.system.dept":`部门管理`,"menu.system.role":`角色管理`,"menu.system.rule":`菜单管理`,"menu.system.info":`系统信息`,"menu.system.file":`文件管理`,"menu.system.dict":`系统字典`,"menu.system.mail":`邮件配置`,"menu.system.storage":`存储配置`,"menu.system.config":`网站配置`,"menu.system.ai":`AI 配置`,"menu.system.carousel":`轮播图管理`,"menu.system.grid-nav":`宫格导航管理`,"menu.system.category":`分类管理`,"menu.system.activity":`活动专区管理`,"menu.xin-admin":`XinAdmin`},$n={"login.username":`用户名`,"login.password":`密码`,"login.usernamePlaceholder":`admin`,"login.passwordPlaceholder":`123456`,"login.usernameRequired":`请输入用户名!`,"login.passwordRequired":`请输入密码!`,"login.remember":`保持登录`,"login.forgotPassword":`忘记密码`,"login.otherLogin":`其他登录方式`,"login.success":`登录成功,即将跳转到首页!`,"login.alreadyLoggedIn":`已登录,路由重定向!`},er={"dashboard.since.lastWeek":`自上周以来`,"dashboard.vs.lastWeek":`较上周`,"dashboard.analysis.totalRevenue":`总收入`,"dashboard.analysis.totalExpenses":`总支出`,"dashboard.analysis.visitors":`访客量`,"dashboard.analysis.likes":`点赞量`,"dashboard.analysis.annualSales":`年度销售额`,"dashboard.analysis.grossProfit":`毛利润`,"dashboard.analysis.netProfit":`净利润`,"dashboard.analysis.totalExpense":`总支出`,"dashboard.analysis.accessFrom":`Access From`,"dashboard.analysis.searchEngine":`Search Engine`,"dashboard.analysis.direct":`Direct`,"dashboard.analysis.email":`Email`,"dashboard.analysis.unionAds":`Union Ads`,"dashboard.analysis.videoAds":`Video Ads`,"dashboard.analysis.salesRanking":`销售排名`,"dashboard.analysis.month":`月份`,"dashboard.analysis.year":`年份`,"dashboard.analysis.day":`天`,"dashboard.analysis.article":`Article`,"dashboard.analysis.age":`Age`,"dashboard.analysis.address":`Address`,"dashboard.analysis.tags":`Tags`,"dashboard.analysis.action":`Action`,"dashboard.analysis.invite":`Invite`,"dashboard.analysis.delete":`Delete`,"dashboard.analysis.userReviews":`用户评价`,"dashboard.analysis.reviewDescription":`Ant Design, a design language for background applications, is refined by Ant UED Team`,"dashboard.analysis.january":`January`,"dashboard.analysis.february":`February`,"dashboard.analysis.march":`March`,"dashboard.analysis.april":`April`,"dashboard.analysis.may":`May`,"dashboard.analysis.june":`June`,"dashboard.analysis.july":`July`,"dashboard.analysis.august":`August`,"dashboard.analysis.september":`September`,"dashboard.analysis.october":`October`,"dashboard.analysis.november":`November`,"dashboard.analysis.december":`December`},tr={"dashboard.completion":`完成度`,"dashboard.vs.lastWeek":`较上周`,"dashboard.monitor.helpService":`帮办代办`,"dashboard.monitor.propertyFee":`物业费`,"dashboard.monitor.alarmEvents":`报警事件`,"dashboard.monitor.otherEvents":`其它事件`,"dashboard.monitor.todoList":`待办事项`,"dashboard.monitor.myFocus":`我的关注`,"dashboard.monitor.all":`全部`,"dashboard.monitor.propertyOrder":`物业工单`,"dashboard.monitor.repairOrder":`维修工单`,"dashboard.monitor.fireSafety":`消防安全`,"dashboard.monitor.paidService":`有偿服务`,"dashboard.monitor.publicService":`公共服务`},nr={"dashboard.workplace.greeting.morning":`上午好`,"dashboard.workplace.greeting.afternoon":`下午好`,"dashboard.workplace.greeting.evening":`晚上好`,"dashboard.workplace.welcome":`欢迎回来!`,"dashboard.workplace.today":`今天是`,"dashboard.workplace.myProjects":`我的项目`,"dashboard.workplace.myTeams":`我的团队`,"dashboard.workplace.latestActivities":`最新动态`,"dashboard.workplace.notifications":`站内通知`,"dashboard.workplace.appStore":`应用商店`,"dashboard.workplace.appStore.desc":`应用分发与管理平台`,"dashboard.workplace.mallSystem":`商城系统`,"dashboard.workplace.mallSystem.desc":`企业电商解决方案`,"dashboard.workplace.collaboration":`协作平台`,"dashboard.workplace.collaboration.desc":`团队协作与沟通工具`,"dashboard.workplace.docCenter":`文档中心`,"dashboard.workplace.docCenter.desc":`企业知识管理与文档协作`,"dashboard.workplace.badge.new":`New`,"dashboard.workplace.status.inProgress":`进行中`,"dashboard.workplace.status.completed":`已完成`,"dashboard.workplace.status.planning":`规划中`,"dashboard.workplace.progress":`进度`,"dashboard.workplace.members":`成员`,"dashboard.workplace.people":`人`,"dashboard.workplace.recentVisits":`最近访问`,"dashboard.workplace.location":`本地`,"dashboard.workplace.project1.name":`企业级管理系统`,"dashboard.workplace.project1.desc":`基于React和AntDesign构建的企业后台管理系统`,"dashboard.workplace.project2.name":`移动端H5应用`,"dashboard.workplace.project2.desc":`使用Vue3开发的移动端电商应用`,"dashboard.workplace.project3.name":`数据可视化平台`,"dashboard.workplace.project3.desc":`基于ECharts的大数据可视化分析平台`,"dashboard.workplace.project4.name":`系统升级通知`,"dashboard.workplace.project4.desc":`系统将于本周五凌晨2:00-4:00进行升级维护`,"dashboard.workplace.project5.name":`团队邀请`,"dashboard.workplace.project5.desc":`您已被邀请加入"新产品研发"项目组`,"dashboard.workplace.project6.name":`任务提醒`,"dashboard.workplace.project6.desc":`您有3个任务即将到期,请及时处理`},rr={"system.info.title":`系统信息`,"system.info.basic.title":`系统基本信息`,"system.info.project.title":`项目地址`,"system.info.changelog.title":`更新日志`,"system.info.author.title":`作者介绍`,"system.info.desc.title":`系统描述`,"system.info.join":`加入社区,获取最新动态和技术支持`,"system.info.label.name":`系统名称`,"system.info.label.version":`版本号`,"system.info.label.build":`构建工具`,"system.info.label.frontend":`前端框架`,"system.info.label.ui":`UI框架`,"system.info.label.css":`CSS框架`,"system.info.label.router":`路由管理`,"system.info.label.state":`状态管理`,"system.info.label.ts":`TypeScript`,"system.info.link.github":`GitHub 仓库`,"system.info.link.docs":`在线文档`,"system.info.link.demo":`演示地址`,"system.info.link.issues":`问题反馈`,"system.info.log.content":`基于React 19、Vite 7、ReactRouter 7、zustand 5 和 TypeScript,重构项目模块`,"system.info.author.name":`XinAdmin 团队`,"system.info.author.role":`企业级中后台解决方案提供者`,"system.info.contact.github":`GitHub`,"system.info.contact.group":`QQ群`,"system.info.contact.discuss":`讨论区`,"system.info.desc.content":`XinAdmin 是一个基于 Ant Design 设计规范的企业级中后台前端模板,采用最新的前端技术栈,包括 React 19、Vite 7、ReactRouter 7、zustand 5 和 TypeScript。
核心特性:
✨ 前沿技术栈 - React 19 + Vite 7 + TypeScript 5.8
👑 Ant Design 规范 - 模块化解决方案,减少冗余开发
🎢 清晰代码结构 - 语义化目录命名,独立命名空间
🎡 ReactRouter v7 - 支持后端动态路由,自动生成菜单
🧩 TailwindCSS - 原子化CSS,与 Ant Design 完美配合
🎡 内置国际化 - 支持中英日法俄5种语言
⛳ 完善的页面组件 - 包含错误页、布局组件等`,"system.info.tag.enterprise":`企业级`,"system.info.tag.ready":`开箱即用`,"system.info.tag.scalable":`可扩展`,"system.info.tag.modern":`现代化`,"system.info.tag.i18n":`国际化`,"system.info.tag.auth":`权限控制`},ir={"system.config.page.title":`网站设置`,"system.config.page.description":`管理网站设置项,支持动态配置系统参数`,"system.config.group.title":`设置组`,"system.config.group.add":`新增`,"system.config.group.create":`新增设置组`,"system.config.group.edit":`编辑设置组`,"system.config.group.delete":`删除`,"system.config.group.deleteConfirm":`确认删除?`,"system.config.group.deleteWarning":`删除设置组将同时删除该组下的所有设置项`,"system.config.group.field.title":`标题`,"system.config.group.field.title.required":`请输入标题`,"system.config.group.field.key":`键`,"system.config.group.field.key.required":`请输入键`,"system.config.group.field.remark":`描述`,"system.config.group.createSuccess":`新增设置组成功`,"system.config.group.updateSuccess":`修改设置组成功`,"system.config.group.deleteSuccess":`删除设置组成功`,"system.config.item.title":`设置项`,"system.config.item.add":`新增设置项`,"system.config.item.create":`新增设置项`,"system.config.item.edit":`编辑设置项`,"system.config.item.delete":`删除`,"system.config.item.deleteConfirm":`确认删除?`,"system.config.item.selectGroup":`请先选择设置组`,"system.config.item.empty":`暂无设置项,请点击"新增设置项"按钮添加`,"system.config.item.field.key":`键`,"system.config.item.field.key.required":`请输入键`,"system.config.item.field.title":`标题`,"system.config.item.field.title.required":`请输入标题`,"system.config.item.field.type":`组件类型`,"system.config.item.field.type.required":`请选择组件类型`,"system.config.item.field.describe":`描述`,"system.config.item.field.options":`选项`,"system.config.item.field.options.tooltip":`单选、多选等组件的选项,例如: 1=选项1 /n 2=选项2`,"system.config.item.field.props":`属性`,"system.config.item.field.props.tooltip":`组件的配置,支持简单的配置,例如: placeholder=请输入 /n maxLength=100`,"system.config.item.field.values":`默认值`,"system.config.item.field.sort":`排序`,"system.config.item.createSuccess":`新增设置项成功`,"system.config.item.updateSuccess":`修改设置项成功`,"system.config.item.deleteSuccess":`删除设置项成功`,"system.config.item.refreshCacheSuccess":`配置缓存刷新成功`,"system.config.component.Input":`输入框`,"system.config.component.TextArea":`文本域`,"system.config.component.InputNumber":`数字输入框`,"system.config.component.Switch":`开关`,"system.config.component.Radio":`单选框`,"system.config.component.Checkbox":`复选框`,"system.config.form.placeholder.input":`请输入`,"system.config.form.placeholder.select":`请选择`,"system.config.form.placeholder.date":`请选择日期`,"system.config.save.button":`保存`,"system.config.refresh.button":`刷新缓存`,"system.config.confirm.ok":`确认`,"system.config.confirm.cancel":`取消`},ar={"system.dept.page.title":`部门管理`,"system.dept.page.description":`管理系统部门,配置部门层级,管理部门用户`,"system.dept.tab.info":`基本信息`,"system.dept.tab.users":`用户列表`,"system.dept.unnamed":`未命名部门`,"system.dept.createSuccess":`新增部门成功!`,"system.dept.updateSuccess":`编辑部门成功!`,"system.dept.deleteSuccess":`批量删除部门成功!`,"system.dept.column.name":`部门名称`,"system.dept.column.name.required":`部门名称必填!`,"system.dept.column.code":`部门编码`,"system.dept.column.code.required":`部门编码必填!`,"system.dept.column.type":`部门类型`,"system.dept.column.type.0":`公司`,"system.dept.column.type.1":`部门`,"system.dept.column.type.2":`岗位`,"system.dept.column.type.required":`部门类型必填!`,"system.dept.column.parent":`上级部门`,"system.dept.column.parent.0":`顶级`,"system.dept.column.parent.required":`上级部门必填!`,"system.dept.column.email":`邮箱`,"system.dept.column.address":`地址`,"system.dept.column.phone":`电话`,"system.dept.column.sort":`排序`,"system.dept.column.sort.required":`排序必填!`,"system.dept.column.status":`状态`,"system.dept.column.status.0":`正常`,"system.dept.column.status.1":`停用`,"system.dept.column.status.required":`状态必填!`,"system.dept.column.remark":`备注`,"system.dept.users.column.id":`用户ID`,"system.dept.users.column.username":`用户名`,"system.dept.users.column.nickname":`用户昵称`,"system.dept.users.column.email":`邮箱`,"system.dept.users.column.mobile":`手机号`,"system.dept.users.column.status":`状态`,"system.dept.users.column.status.0":`启用`,"system.dept.users.column.status.1":`禁用`,"system.dept.createButton":`新增部门`,"system.dept.createModalTitle":`新增部门表单`,"system.dept.createChildrenButton":`添加下级`,"system.dept.checkedMessage":`已选中 {{checked}} 条记录`,"system.dept.unselect":`取消选择`,"system.dept.delete.ok":`删除`,"system.dept.delete.cancel":`取消删除`,"system.dept.delete.title":`删除部门`,"system.dept.delete.description":`你是否要删除这些部门?`,"system.dept.saveInfo":`保存信息`},or={"system.dict.page.title":`字典管理`,"system.dict.page.description":`管理系统字典类型,配置数据字典项`,"system.dict.id":`ID`,"system.dict.name":`字典名称`,"system.dict.name.required":`字典名称不能为空`,"system.dict.code":`字典编码`,"system.dict.code.required":`字典编码不能为空`,"system.dict.renderType":`渲染类型`,"system.dict.renderType.required":`渲染类型不能为空`,"system.dict.renderType.text":`纯文本`,"system.dict.renderType.tag":`标签`,"system.dict.renderType.badge":`徽标`,"system.dict.renderType.switch":`开关`,"system.dict.status":`状态`,"system.dict.status.required":`状态不能为空`,"system.dict.status.normal":`正常`,"system.dict.status.disabled":`停用`,"system.dict.sort":`排序`,"system.dict.describe":`描述`,"system.dict.createdAt":`创建时间`,"system.dict.updatedAt":`更新时间`,"system.dict.item.id":`ID`,"system.dict.item.label":`字典标签`,"system.dict.item.label.required":`字典标签不能为空`,"system.dict.item.value":`字典键值`,"system.dict.item.value.required":`字典键值不能为空`,"system.dict.item.color":`颜色`,"system.dict.item.isDefault":`是否默认`,"system.dict.item.isDefault.required":`是否默认不能为空`,"system.dict.item.isDefault.yes":`是`,"system.dict.item.isDefault.no":`否`,"system.dict.item.status":`状态`,"system.dict.item.status.required":`状态不能为空`,"system.dict.item.status.normal":`正常`,"system.dict.item.status.disabled":`停用`,"system.dict.item.sort":`排序`,"system.dict.item.createTime":`创建时间`,"system.dict.item.updateTime":`更新时间`,"system.dict.refreshCache":`刷新缓存`,"system.dict.refreshSuccess":`字典缓存刷新成功`,"system.dict.manageItems":`字典数据`,"system.dict.itemManagement":`字典数据管理`,"system.dict.item.createSuccess":`字典数据新增成功`,"system.dict.item.updateSuccess":`字典数据更新成功`,"system.dict.backToList":`返回列表`,"system.dict.selectDictFirst":`请从字典列表中选择要管理的字典`},sr={"system.file.page.title":`文件管理`,"system.file.page.description":`管理系统文件,支持文件的上传、下载、删除、重命名等操作`,"system.file.fileFolder":`文件夹`,"system.file.fileName":`文件名`,"system.file.fileType":`类型`,"system.file.fileSize":`大小`,"system.file.preview":`预览`,"system.file.createdAt":`创建时间`,"system.file.updatedAt":`修改时间`,"system.file.deletedAt":`删除时间`,"system.file.action":`操作`,"system.file.download":`下载`,"system.file.delete":`删除`,"system.file.forceDelete":`彻底删除`,"system.file.restore":`恢复`,"system.file.rename":`重命名`,"system.file.move":`移动`,"system.file.copy":`复制`,"system.file.confirmDelete":`确定删除该文件吗?`,"system.file.confirmForceDelete":`确定彻底删除该文件吗?此操作不可恢复!`,"system.file.confirmDeleteFolder":`确定删除该文件夹吗?`,"system.file.confirmRestore":`确定恢复该文件吗?`,"system.file.confirmBatchDelete":`确定删除选中的 {{count}} 个文件吗?`,"system.file.confirmBatchForceDelete":`确定彻底删除选中的 {{count}} 个文件吗?此操作不可恢复!`,"system.file.confirmBatchRestore":`确定恢复选中的 {{count}} 个文件吗?`,"system.file.ok":`确定`,"system.file.cancel":`取消`,"system.file.upload":`上传文件`,"system.file.uploadTitle":`上传文件`,"system.file.uploadFileType":`文件类型`,"system.file.selectFile":`选择文件`,"system.file.uploadProgress":`上传进度`,"system.file.uploadDragText":`点击或拖拽文件到此区域上传`,"system.file.uploadHint":`支持单个或批量上传`,"system.file.selectFileWarning":`请选择要上传的文件`,"system.file.uploadSuccess":`上传成功`,"system.file.deleteSuccess":`删除文件成功`,"system.file.forceDeleteSuccess":`彻底删除文件成功`,"system.file.restoreSuccess":`恢复文件成功`,"system.file.renameSuccess":`重命名成功`,"system.file.moveSuccess":`移动成功`,"system.file.copySuccess":`复制成功`,"system.file.batchDeleteSuccess":`批量删除成功`,"system.file.batchForceDeleteSuccess":`批量彻底删除成功`,"system.file.batchRestoreSuccess":`批量恢复成功`,"system.file.deleteFolderSuccess":`删除文件夹成功`,"system.file.deleteFolderHint":`删除文件夹前请删除文件夹下所有的文件`,"system.file.addFolder":`新增子文件夹`,"system.file.editFolder":`编辑文件夹`,"system.file.deleteFolder":`删除文件夹`,"system.file.addFolderTitle":`新增文件夹`,"system.file.editFolderTitle":`编辑文件夹`,"system.file.saveFolderSuccess":`{{action}}文件夹成功`,"system.file.actionAdd":`新增`,"system.file.actionEdit":`修改`,"system.file.folderName":`文件夹名称`,"system.file.folderNameRequired":`请输入文件夹名称`,"system.file.folderSearchPlaceholder":`输入文件夹名称搜索`,"system.file.parentFolder":`父级文件夹`,"system.file.sort":`排序`,"system.file.sortRequired":`排序必须`,"system.file.describe":`描述`,"system.file.root":`根目录`,"system.file.type.image":`图片`,"system.file.type.audio":`音频`,"system.file.type.video":`视频`,"system.file.type.archive":`压缩包`,"system.file.type.other":`其他`,"system.file.type.document":`文档`,"system.file.trash":`回收站`,"system.file.emptyTrash":`清空回收站`,"system.file.confirmEmptyTrash":`确定清空回收站吗?此操作不可恢复!`,"system.file.emptyTrashSuccess":`清空回收站成功,共删除 {{count}} 个文件`,"system.file.batchDelete":`批量删除`,"system.file.batchForceDelete":`批量彻底删除`,"system.file.batchRestore":`批量恢复`,"system.file.batchMove":`批量移动`,"system.file.batchCopy":`批量复制`,"system.file.noSelected":`请先选择文件`,"system.file.renameTitle":`重命名文件`,"system.file.renameDescription":`你正在重命名文件,请选择输入新的文件名称!`,"system.file.moveTitle":`移动文件`,"system.file.moveDescription":`你正在移动文件,请选择移动到的文件夹`,"system.file.copyTitle":`复制文件`,"system.file.copyDescription":`你正在复制文件,请选择复制到文件的文件夹!`,"system.file.newFileNameRequired":`请输入新文件名`,"system.file.disk":`存储磁盘`,"system.file.loading":`加载中...`,"system.file.refresh":`刷新`,"system.file.totalFiles":`共 {{total}} 个文件`,"system.file.fileDetail":`文件详情`,"system.file.basicInfo":`基本信息`,"system.file.fileExt":`扩展名`,"system.file.filePath":`文件路径`,"system.file.fileGroup":`文件分组`,"system.file.ungrouped":`未分组`,"system.file.accessUrl":`访问链接`,"system.file.storageMethod":`存储方式`},cr={"system.mail.page.title":`邮件设置`,"system.mail.page.description":`邮件配置用于发送邮件,支持故障切换与循环切换`,"system.mail.mode":`模式切换`,"system.mail.mode.single":`单驱动`,"system.mail.mode.failover":`故障切换`,"system.mail.mode.roundrobin":`循环切换`,"system.mail.driver":`邮件驱动`,"system.mail.driver.smtp":`SMTP`,"system.mail.driver.ses":`Amazon SES`,"system.mail.driver.mailgun":`Mailgun`,"system.mail.driver.postmark":`Postmark`,"system.mail.driver.resend":`Resend`,"system.mail.driver.log":`日志`,"system.mail.driver.array":`Array (调试)`,"system.mail.smtp.title":`SMTP 配置`,"system.mail.host":`服务器地址`,"system.mail.host.placeholder":`smtp.example.com`,"system.mail.port":`端口`,"system.mail.port.placeholder":`587`,"system.mail.username":`用户名`,"system.mail.username.placeholder":`your-email@example.com`,"system.mail.password":`密码`,"system.mail.password.placeholder":`邮箱密码或应用密码`,"system.mail.log.title":`日志配置`,"system.mail.log.channel":`日志驱动`,"system.mail.log.channel.placeholder":`mail`,"system.mail.postmark.title":`Postmark 配置`,"system.mail.postmark.token":`Postmark Token`,"system.mail.postmark.token.placeholder":`您的 Postmark API token`,"system.mail.resend.title":`Resend 配置`,"system.mail.resend.key":`Resend API Key`,"system.mail.resend.key.placeholder":`您的 Resend API key`,"system.mail.mailgun.title":`Mailgun 配置`,"system.mail.mailgun.domain":`Mailgun Domain`,"system.mail.mailgun.domain.placeholder":`mg.yourdomain.com`,"system.mail.mailgun.secret":`Mailgun Secret`,"system.mail.mailgun.secret.placeholder":`您的 Mailgun API key`,"system.mail.mailgun.endpoint":`Mailgun Endpoint`,"system.mail.mailgun.endpoint.placeholder":`api.mailgun.net`,"system.mail.ses.title":`SES (Amazon) 配置`,"system.mail.ses.key":`AWS Access Key`,"system.mail.ses.key.placeholder":`AKIA...`,"system.mail.ses.secret":`AWS Secret Key`,"system.mail.ses.secret.placeholder":`您的 AWS secret key`,"system.mail.ses.region":`AWS Region`,"system.mail.ses.region.placeholder":`us-east-1`,"system.mail.ses.token":`AWS Session Token`,"system.mail.ses.token.placeholder":`可选的会话 token`,"system.mail.from_address":`发件人邮箱`,"system.mail.from_address.placeholder":`noreply@example.com`,"system.mail.from_name":`发件人名称`,"system.mail.from_name.placeholder":`您的应用名称`,"system.mail.test.title":`发送测试邮件`,"system.mail.test.to":`收件人邮箱`,"system.mail.test.to.placeholder":`receiver@example.com`,"system.mail.test.send":`发送测试`,"system.mail.test.success":`测试邮件发送成功`,"system.mail.test.failed":`测试邮件发送失败`,"system.mail.save.success":`配置保存成功`,"system.mail.save.failed":`配置保存失败`},lr={"system.storage.page.title":`文件存储配置`,"system.storage.page.description":`配置系统文件存储方式,支持本地存储、S3 对象存储、FTP 及 SFTP 等多种存储方式`,"system.storage.driver":`默认存储驱动`,"system.storage.driver.local":`本地存储 (Local)`,"system.storage.driver.s3":`Amazon S3 / 对象存储`,"system.storage.driver.ftp":`FTP 服务器`,"system.storage.driver.sftp":`SFTP 服务器`,"system.storage.local.title":`本地存储配置`,"system.storage.local.url":`访问 URL`,"system.storage.local.url.placeholder":`例如: https://example.com/storage`,"system.storage.local.url.tooltip":`文件的公开访问 URL 前缀`,"system.storage.s3.title":`S3 / 对象存储配置`,"system.storage.s3.key":`Access Key ID`,"system.storage.s3.key.placeholder":`请输入 Access Key ID`,"system.storage.s3.secret":`Secret Access Key`,"system.storage.s3.secret.placeholder":`请输入 Secret Access Key`,"system.storage.s3.region":`区域 (Region)`,"system.storage.s3.region.placeholder":`例如: us-east-1 或 cn-hangzhou`,"system.storage.s3.bucket":`存储桶 (Bucket)`,"system.storage.s3.bucket.placeholder":`请输入存储桶名称`,"system.storage.s3.endpoint":`端点 (Endpoint)`,"system.storage.s3.endpoint.placeholder":`自定义端点,如阿里云 OSS: oss-cn-hangzhou.aliyuncs.com`,"system.storage.s3.endpoint.tooltip":`使用 AWS S3 时可留空,使用阿里云 OSS、腾讯云 COS 等需要填写`,"system.storage.s3.url":`自定义 URL`,"system.storage.s3.url.placeholder":`自定义文件访问 URL 前缀(可选)`,"system.storage.s3.url.tooltip":`如果使用 CDN,可以在此配置 CDN 域名`,"system.storage.s3.path_style":`路径风格端点`,"system.storage.s3.path_style.tooltip":`某些 S3 兼容服务(如 MinIO)需要启用此选项`,"system.storage.ftp.title":`FTP 服务器配置`,"system.storage.ftp.host":`主机地址`,"system.storage.ftp.host.placeholder":`例如: ftp.example.com`,"system.storage.ftp.port":`端口`,"system.storage.ftp.port.placeholder":`21`,"system.storage.ftp.username":`用户名`,"system.storage.ftp.username.placeholder":`请输入 FTP 用户名`,"system.storage.ftp.password":`密码`,"system.storage.ftp.password.placeholder":`请输入 FTP 密码`,"system.storage.ftp.root":`根目录`,"system.storage.ftp.root.placeholder":`例如: /public_html/uploads`,"system.storage.ftp.root.tooltip":`FTP 服务器上的存储根目录`,"system.storage.ftp.timeout":`超时时间`,"system.storage.ftp.timeout.placeholder":`30`,"system.storage.ftp.timeout.suffix":`秒`,"system.storage.ftp.passive":`被动模式`,"system.storage.ftp.passive.tooltip":`建议开启,适用于大多数网络环境`,"system.storage.ftp.ssl":`SSL/TLS`,"system.storage.ftp.ssl.tooltip":`启用 FTPS 安全连接`,"system.storage.sftp.title":`SFTP 服务器配置`,"system.storage.sftp.host":`主机地址`,"system.storage.sftp.host.placeholder":`例如: sftp.example.com`,"system.storage.sftp.port":`端口`,"system.storage.sftp.port.placeholder":`22`,"system.storage.sftp.username":`用户名`,"system.storage.sftp.username.placeholder":`请输入 SFTP 用户名`,"system.storage.sftp.password":`密码`,"system.storage.sftp.password.placeholder":`请输入 SFTP 密码`,"system.storage.sftp.password.tooltip":`如果使用密钥认证可留空`,"system.storage.sftp.root":`根目录`,"system.storage.sftp.root.placeholder":`例如: /var/www/uploads`,"system.storage.sftp.root.tooltip":`SFTP 服务器上的存储根目录`,"system.storage.sftp.timeout":`超时时间`,"system.storage.sftp.timeout.placeholder":`30`,"system.storage.sftp.timeout.suffix":`秒`,"system.storage.sftp.private_key":`私钥内容`,"system.storage.sftp.private_key.placeholder":`粘贴 SSH 私钥内容(可选)`,"system.storage.sftp.private_key.tooltip":`如果使用密钥认证,请粘贴私钥内容`,"system.storage.sftp.passphrase":`私钥密码`,"system.storage.sftp.passphrase.placeholder":`如果私钥有密码保护,请输入`,"system.storage.sftp.passphrase.tooltip":`私钥的密码短语(如果有)`,"system.storage.test.title":`连接测试`,"system.storage.test.current_driver":`当前存储驱动`,"system.storage.test.button":`测试连接`,"system.storage.test.success":`连接测试成功`,"system.storage.test.failed":`连接测试失败`,"system.storage.help.title":`存储驱动说明`,"system.storage.help.local":`本地存储:`,"system.storage.help.local.desc":`文件存储在服务器本地磁盘,适合小型项目。`,"system.storage.help.s3":`S3 / 对象存储:`,"system.storage.help.s3.desc":`兼容 AWS S3、阿里云 OSS、腾讯云 COS、七牛云等,适合大规模文件存储。`,"system.storage.help.ftp":`FTP`,"system.storage.help.ftp.desc":`通过 FTP 协议连接远程服务器存储文件。`,"system.storage.help.sftp":`SFTP`,"system.storage.help.sftp.desc":`通过 SSH 安全连接远程服务器,更安全可靠。`,"system.storage.save.success":`配置保存成功`,"system.storage.save.failed":`配置保存失败`},ur={"system.user.page.title":`用户列表`,"system.user.page.description":`通过管理员列表,能够方便的管理系统用户,为用户分配部门与角色`,"system.user.id":`用户ID`,"system.user.username":`用户名`,"system.user.username.required":`用户名为必填项`,"system.user.nickname":`昵称`,"system.user.nickname.required":`昵称为必填项`,"system.user.sex":`性别`,"system.user.sex.0":`男`,"system.user.sex.1":`女`,"system.user.email":`邮箱`,"system.user.email.required":`邮箱为必填项`,"system.user.role":`用户角色`,"system.user.role.required":`用户角色为必填项`,"system.user.dept":`用户部门`,"system.user.dept.required":`用户部门为必填项`,"system.user.status":`状态`,"system.user.status.0":`禁用`,"system.user.status.1":`启用`,"system.user.status.required":`状态为必填项`,"system.user.mobile":`手机号`,"system.user.mobile.required":`手机号为必填项`,"system.user.avatar":`头像`,"system.user.password":`密码`,"system.user.password.required":`密码为必填项`,"system.user.rePassword":`确认密码`,"system.user.rePassword.required":`确认密码为必填项`,"system.user.created_at":`创建时间`,"system.user.updated_at":`更新时间`,"system.user.searchPlaceholder":`请输入昵称、账户、手机号搜索`,"system.user.resetSuccess":`重置成功!`,"system.user.resetPassword":`重置密码`,"system.user.resetButton":`提交重置`},dr={"system.role.page.title":`角色管理`,"system.role.page.description":`管理系统角色,配置角色权限,为用户分配角色`,"system.role.title":`角色管理`,"system.role.tab.users":`用户列表`,"system.role.tab.rules":`权限设置`,"system.role.table.roleName":`角色名称`,"system.role.table.roleName.required":`请输入角色名称`,"system.role.table.sort":`排序`,"system.role.table.sort.required":`请输入排序值`,"system.role.table.userCount":`用户数`,"system.role.table.status":`状态`,"system.role.table.status.required":`请选择状态`,"system.role.table.status.enable":`启用`,"system.role.table.status.disable":`停用`,"system.role.table.description":`角色描述`,"system.role.table.createdAt":`创建时间`,"system.role.table.updatedAt":`更新时间`,"system.role.table.headerTitle":`角色列表`,"system.role.userTable.userId":`用户ID`,"system.role.userTable.username":`用户名`,"system.role.userTable.nickname":`昵称`,"system.role.userTable.email":`邮箱`,"system.role.userTable.mobile":`手机号`,"system.role.userTable.status":`状态`,"system.role.userTable.status.normal":`正常`,"system.role.userTable.status.banned":`禁用`,"system.role.userTable.person":`人`,"system.role.button.expandAll":`展开全部`,"system.role.button.collapseAll":`折叠全部`,"system.role.button.selectAll":`选择全部`,"system.role.button.clearAll":`清空选择`,"system.role.button.invertSelection":`反选`,"system.role.button.saveRules":`保存权限`,"system.role.message.selectRoleFirst":`请先选择角色`,"system.role.message.statusUpdateSuccess":`状态更新成功`,"system.role.message.statusUpdateFailed":`状态更新失败`,"system.role.message.rulesSaveSuccess":`权限保存成功`,"system.role.permission.selectedCount":`已选择 {{count}} 项权限`,"system.role.placeholder.selectRole":`请先选择角色`},fr={"system.rule.description":`管理系统菜单和权限,配置路由、权限项`,"system.rule.routePath":`路由路径`,"system.rule.routePath.required":`路由路径为必填项`,"system.rule.routePath.tooltip":`路由页面访问地址,如为外部链接请直接填写完整URL`,"system.rule.routePath.showTooltip":`路由路径:{{path}}`,"system.rule.icon":`菜单图标`,"system.rule.local":`国际化键值`,"system.rule.local.show":`显示名称`,"system.rule.link":`外部链接`,"system.rule.link.1":`是`,"system.rule.link.0":`否`,"system.rule.type":`菜单类型`,"system.rule.type.menu":`菜单项`,"system.rule.type.route":`路由页面`,"system.rule.type.rule":`权限项`,"system.rule.type.required":`菜单类型为必选项`,"system.rule.parent":`上级菜单`,"system.rule.parent.0":`根级菜单`,"system.rule.parent.required":`上级菜单为必选项`,"system.rule.order":`排序序号`,"system.rule.order.required":`排序序号为必填项`,"system.rule.name":`规则名称`,"system.rule.name.required":`规则名称为必填项`,"system.rule.key":`权限标识`,"system.rule.key.required":`权限标识为必填项`,"system.rule.hidden":`可见状态`,"system.rule.hidden.tooltip":`控制菜单在导航栏中的显示状态(路由和权限功能仍正常生效)`,"system.rule.hidden.0":`隐藏`,"system.rule.hidden.1":`显示`,"system.rule.hidden.updateSuccess":`可见状态更新成功`,"system.rule.status":`启用状态`,"system.rule.status.tooltip":`权限启用状态(禁用后该权限将不参与系统权限验证)`,"system.rule.status.0":`禁用`,"system.rule.status.1":`启用`,"system.rule.status.updateSuccess":`启用状态更新成功`,"system.rule.created_at":`创建时间`,"system.rule.updated_at":`更新时间`,"system.rule.title":`权限管理`,"system.rule.addChildButton":`添加子项`},pr={"system.ai.page.title":`AI 设置`,"system.ai.page.description":`管理 AI 服务商和模型配置,支持多个服务商与默认模型分配`,"system.ai.default":`默认模型`,"system.ai.default.tooltip":`AI 对话、分析等通用任务的默认模型`,"system.ai.provider.api_key":`{{lab}} API Key`,"system.ai.provider.api_key.placeholder":`请输入 API Key`,"system.ai.provider.url":`{{lab}} API 地址`,"system.ai.provider.url.placeholder":`例如: {{url}}`,"system.ai.azure.api_version":`API 版本`,"system.ai.azure.deployment":`部署名`,"system.ai.azure.embedding_deployment":`嵌入部署名`,"system.ai.azure.image_deployment":`图片部署名`,"system.ai.bedrock.region":`AWS 区域`,"system.ai.bedrock.access_key_id":`Access Key ID`,"system.ai.bedrock.secret_access_key":`Secret Access Key`,"system.ai.bedrock.session_token":`Session Token(可选)`,"system.ai.test.title":`连接测试`,"system.ai.test.hint":`点击下方按钮测试当前 AI 服务商的连接状态`,"system.ai.test.button":`测试连接`,"system.ai.test.testing":`正在测试连接...`,"system.ai.test.success":`连接测试成功!`,"system.ai.test.error":`连接测试失败`,"system.ai.save.success":`AI 配置保存成功`},mr={"system.carousel.page.title":`首页轮播图管理`,"system.carousel.page.description":`管理首页轮播图图片及跳转链接`,"system.carousel.id":`ID`,"system.carousel.title":`轮播图标题`,"system.carousel.title.required":`轮播图标题不能为空`,"system.carousel.image":`轮播图片`,"system.carousel.image.required":`轮播图片不能为空`,"system.carousel.linkType":`跳转类型`,"system.carousel.linkType.required":`跳转类型不能为空`,"system.carousel.linkType.link":`链接`,"system.carousel.linkType.category":`分类`,"system.carousel.link":`跳转链接`,"system.carousel.link.placeholder":`请输入跳转链接`,"system.carousel.category":`跳转分类`,"system.carousel.category.placeholder":`请选择分类`,"system.carousel.status":`状态`,"system.carousel.status.required":`状态不能为空`,"system.carousel.status.normal":`启用`,"system.carousel.status.disabled":`禁用`,"system.carousel.sort":`排序`,"system.carousel.createdAt":`创建时间`,"system.carousel.updatedAt":`更新时间`},hr={"system.gridNav.page.title":`首页宫格导航管理`,"system.gridNav.page.description":`管理首页宫格导航图标及跳转链接`,"system.gridNav.id":`ID`,"system.gridNav.title":`导航标题`,"system.gridNav.title.required":`导航标题不能为空`,"system.gridNav.image":`导航图标`,"system.gridNav.image.required":`导航图标不能为空`,"system.gridNav.linkType":`跳转类型`,"system.gridNav.linkType.required":`跳转类型不能为空`,"system.gridNav.linkType.link":`链接`,"system.gridNav.linkType.category":`分类`,"system.gridNav.link":`跳转链接`,"system.gridNav.link.placeholder":`请输入跳转链接`,"system.gridNav.category":`跳转分类`,"system.gridNav.category.placeholder":`请选择分类`,"system.gridNav.status":`状态`,"system.gridNav.status.required":`状态不能为空`,"system.gridNav.status.normal":`启用`,"system.gridNav.status.disabled":`禁用`,"system.gridNav.sort":`排序`,"system.gridNav.createdAt":`创建时间`,"system.gridNav.updatedAt":`更新时间`},gr={"system.category.page.title":`首页分类管理`,"system.category.page.description":`管理首页分类及分类项跳转链接`,"system.category.id":`ID`,"system.category.name":`分类名称`,"system.category.name.required":`分类名称不能为空`,"system.category.status":`状态`,"system.category.status.required":`状态不能为空`,"system.category.status.normal":`启用`,"system.category.status.disabled":`禁用`,"system.category.sort":`排序`,"system.category.createdAt":`创建时间`,"system.category.updatedAt":`更新时间`,"system.category.manageItems":`分类项管理`,"system.category.itemManagement":`分类项管理`,"system.category.backToList":`返回分类列表`,"system.category.selectCategoryFirst":`请先选择分类`,"system.category.item.id":`ID`,"system.category.item.title":`导航标题`,"system.category.item.title.required":`导航标题不能为空`,"system.category.item.image":`导航图标`,"system.category.item.image.required":`导航图标不能为空`,"system.category.item.link":`跳转链接`,"system.category.item.link.placeholder":`请输入跳转链接`,"system.category.item.tag":`标签`,"system.category.item.tag.placeholder":`输入后按回车添加标签`,"system.category.item.status":`状态`,"system.category.item.status.required":`状态不能为空`,"system.category.item.status.normal":`启用`,"system.category.item.status.disabled":`禁用`,"system.category.item.sort":`排序`,"system.category.item.createdAt":`创建时间`,"system.category.item.updatedAt":`更新时间`,"system.category.item.createSuccess":`分类项创建成功`,"system.category.item.updateSuccess":`分类项更新成功`},_r={"system.activity.page.title":`活动专区管理`,"system.activity.page.description":`管理首页活动专区图片、描述及跳转链接`,"system.activity.id":`ID`,"system.activity.title":`活动标题`,"system.activity.title.required":`活动标题不能为空`,"system.activity.image":`活动图片`,"system.activity.image.required":`活动图片不能为空`,"system.activity.description":`活动描述`,"system.activity.description.placeholder":`请输入活动描述`,"system.activity.linkType":`跳转类型`,"system.activity.linkType.required":`跳转类型不能为空`,"system.activity.linkType.link":`链接`,"system.activity.linkType.category":`分类`,"system.activity.link":`跳转链接`,"system.activity.link.placeholder":`请输入跳转链接`,"system.activity.category":`跳转分类`,"system.activity.category.placeholder":`请选择分类`,"system.activity.status":`状态`,"system.activity.status.required":`状态不能为空`,"system.activity.status.normal":`启用`,"system.activity.status.disabled":`禁用`,"system.activity.sort":`排序`,"system.activity.createdAt":`创建时间`,"system.activity.updatedAt":`更新时间`},vr={"ai.chat.title":`AI 对话`,"ai.chat.newChat":`新建对话`,"ai.chat.placeholder":`输入您的问题,按 Enter 发送...`,"ai.chat.welcome.title":`有什么可以帮助您的?`,"ai.chat.welcome.description":`我是您的 AI 助手,可以帮您解答问题、编写代码、分析数据等`,"ai.chat.loading":`正在思考...`,"ai.chat.error.send":`发送失败,请重试`,"ai.chat.delete.confirm":`确定要删除这个会话吗?`,"ai.chat.delete.success":`会话已删除`,"ai.chat.empty":`暂无会话,开始一个新的对话吧`,"ai.chat.copy":`复制`,"ai.chat.copy.success":`已复制到剪贴板`,"ai.chat.retry":`重试`,"ai.chat.thinking":`深度思考中...`,"ai.chat.thinking.done":`思考完成`,"ai.chat.attachment.upload":`上传文件`,"ai.chat.attachment.maxCount":`最多上传 {count} 个文件`,"ai.chat.attachment.error":`文件上传失败`,"ai.chat.switchAgent":`切换智能体`,"ai.chat.defaultTitle":`AI 对话`},yr={"ai.conversation.page.title":`AI 会话管理`,"ai.conversation.page.description":`管理系统中的 AI 对话会话及其消息记录`,"ai.conversation.id":`会话 ID`,"ai.conversation.username":`所属用户`,"ai.conversation.title":`会话标题`,"ai.conversation.messageCount":`消息数`,"ai.conversation.createdAt":`创建时间`,"ai.conversation.updatedAt":`更新时间`,"ai.conversation.deleteConfirm":`确定要删除该会话吗?删除后所有消息将被清除。`,"ai.conversation.deleteSuccess":`会话已删除`,"ai.conversation.viewMessages":`查看消息`,"ai.conversation.messageTitle":`会话消息`,"ai.conversation.noUser":`匿名用户`,"ai.conversation.message.id":`消息 ID`,"ai.conversation.message.role":`角色`,"ai.conversation.message.role.user":`用户`,"ai.conversation.message.role.assistant":`助手`,"ai.conversation.message.role.system":`系统`,"ai.conversation.message.agent":`AI 模型`,"ai.conversation.message.content":`消息内容`,"ai.conversation.message.createdAt":`发送时间`,"ai.conversation.message.toolCalls":`工具调用`,"ai.conversation.message.usage":`用量统计`},br={"ai.agent.page.title":`Agent 管理`,"ai.agent.page.description":`管理 AI Agent 的注册与启用状态。Agent 通过数据库 Seeder 注册。`,"ai.agent.update.success":`更新成功`,"ai.agent.update.failed":`更新失败`,"ai.agent.empty":`暂未注册 Agent。`,"ai.agent.goChat":`去对话`},xr={"user.profile.title":`用户设置`,"user.profile.baseInfo":`基本信息`,"user.profile.changePassword":`修改密码`,"user.profile.loginLog":`登录日志`,"user.profile.baseInfo.updateAvatar":`更换头像`,"user.profile.baseInfo.updateAvatarDesc":`支持 JPG/PNG 格式,大小不超过 2MB`,"user.profile.baseInfo.avatarSuccess":`头像上传成功`,"user.profile.baseInfo.success":`更新用户信息成功`,"user.profile.baseInfo.username":`用户名`,"user.profile.baseInfo.username.message":`请输入用户名!`,"user.profile.baseInfo.nickname":`昵称`,"user.profile.baseInfo.nickname.message":`请输入昵称!`,"user.profile.baseInfo.sex":`性别`,"user.profile.baseInfo.sex.0":`男`,"user.profile.baseInfo.sex.1":`女`,"user.profile.baseInfo.bio":`个人简介`,"user.profile.baseInfo.email":`邮箱`,"user.profile.baseInfo.email.typeMessage":`请输入有效的邮箱地址!`,"user.profile.baseInfo.email.requiredMessage":`请输入邮箱!`,"user.profile.baseInfo.mobile":`手机号`,"user.profile.baseInfo.mobile.message":`请输入手机号!`,"user.profile.baseInfo.submit":`保存用户信息`,"user.profile.changePassword.oldPassword":`当前密码`,"user.profile.changePassword.oldPassword.message":`请输入当前密码!`,"user.profile.changePassword.newPassword":`新密码`,"user.profile.changePassword.rePassword":`确认新密码`,"user.profile.changePassword.requiredMessage":`请输入新密码!`,"user.profile.changePassword.minMessage":`密码长度至少8位!`,"user.profile.changePassword.rePassword.message":`两次输入的密码不一致!`,"user.profile.changePassword.submit":`修改密码`,"user.profile.changePassword.success":`更新成功`,"user.profile.loginLog.success":`登录成功`,"user.profile.loginLog.error":`登录失败`,"user.profile.loginLog.empty":`暂无登录日志数据`},Sr={"xin.form.submit":`提交`,"xin.form.reset":`重置`,"xin.form.cancel":`取消`,"xin.form.formList.add":`添加一项`,"xin.form.upload.button":`点击上传`,"xin.form.userSelector.placeholder":`请选择用户`,"xin.form.userSelector.modal.title":`选择用户`,"xin.form.userSelector.modal.okText":`确定`,"xin.form.userSelector.modal.cancelText":`取消`,"xin.form.iconSelector.placeholder":`请选择图标`,"xin.form.iconSelector.modal.title":`选择图标`,"xin.form.iconSelector.tabs.use":`自定义图标`,"xin.form.iconSelector.tabs.suggestion":`网站通用图标`,"xin.form.iconSelector.tabs.direction":`方向性图标`,"xin.form.iconSelector.tabs.editor":`编辑类图标`,"xin.form.iconSelector.tabs.data":`数据类图标`,"xin.form.iconSelector.tabs.logo":`品牌和标识`,"xin.form.iconSelector.tabs.other":`其它图标`,"xin.form.imageUploader.uploadText":`上传图片`,"xin.form.imageUploader.error.notImage":`只能上传图片文件!`,"xin.form.imageUploader.error.sizeExceeded":`图片大小不能超过 {{maxSize}}MB`,"xin.form.imageUploader.error.dimensionExceeded":`图片尺寸不能超过 {{maxWidth}}x{{maxHeight}}px`,"xin.form.imageUploader.error.loadFailed":`图片加载失败!`,"xin.form.imageUploader.error.readFailed":`图片读取失败!`},Cr={"xin.table.queryTable":`查询表格`,"xin.table.keywordPlaceholder":`请输入关键字`,"xin.table.keywordEmpty":`请输入搜索内容`,"xin.table.add":`新增`,"xin.table.refresh":`刷新`,"xin.table.columnSettings":`列设置`,"xin.table.showBorder":`显示边框`,"xin.table.hideBorder":`隐藏边框`,"xin.table.density.default":`默认`,"xin.table.density.middle":`适中`,"xin.table.density.compact":`紧凑`,"xin.table.total":`共 {{total}} 条`,"xin.table.operate":`操作栏`,"xin.table.edit":`编辑`,"xin.table.delete":`删除`,"xin.table.deleteConfirm":`你是否要删除 {{id}} 记录?`,"xin.table.deleteOk":`确认删除`,"xin.table.deleteCancel":`取消删除`,"xin.table.deleteSuccess":`删除成功`,"xin.table.form.createTitle":`新增`,"xin.table.form.editTitle":`编辑`,"xin.table.form.close":`关闭`,"xin.table.form.createSuccess":`创建成功!`,"xin.table.form.updateSuccess":`更新成功!`,"xin.table.form.updateKeyUndefined":`更新的主键未定义!`,"xin.table.search.search":`搜索`,"xin.table.search.reset":`重置`,"xin.table.search.expand":`展开`,"xin.table.search.collapse":`收起`},wr={"xin.crud.operate":`操作`,"xin.crud.edit":`编辑`,"xin.crud.delete":`删除`,"xin.crud.add":`新增`,"xin.crud.batchDelete":`批量删除`,"xin.crud.confirm":`确定`,"xin.crud.cancel":`取消`,"xin.crud.deleteConfirm":`确认删除`,"xin.crud.deleteConfirmDesc":`删除后数据将无法恢复,是否确认删除?`,"xin.crud.batchDeleteConfirm":`确认批量删除`,"xin.crud.batchDeleteConfirmDesc":`确定要删除选中的 {{count}} 条数据吗?`,"xin.crud.selectAtLeastOne":`请至少选择一条数据`,"xin.crud.createSuccess":`新增成功`,"xin.crud.updateSuccess":`更新成功`,"xin.crud.deleteSuccess":`删除成功`,"xin.crud.batchDeleteSuccess":`批量删除成功`,"xin.crud.createTitle":`新增`,"xin.crud.editTitle":`编辑`,"xin.crud.total":`共 {{total}} 条`,"xin.crud.yes":`是`,"xin.crud.no":`否`},Tr={"layout.resetTheme":`重置主题`,"layout.saveTheme":`保存主题`,"layout.layoutStyle":`布局样式`,"layout.layoutSide":`左侧导航`,"layout.layoutTop":`顶部导航`,"layout.layoutMix":`混合导航`,"layout.layoutColumns":`双栏导航`,"layout.presetTheme":`预设主题`,"layout.themeLight":`默认`,"layout.themeDark":`暗黑`,"layout.themePink":`桃花缘`,"layout.themeGreen":`知识协作`,"layout.themeAlgorithm":`主题算法`,"layout.algorithmDefault":`默认`,"layout.algorithmDark":`暗黑`,"layout.algorithmDefaultCompact":`默认 + 紧凑`,"layout.algorithmDarkCompact":`暗黑 + 紧凑`,"layout.themeColor":`主题颜色`,"layout.colorPrimary":`主色`,"layout.colorText":`基础文字颜色`,"layout.colorBg":`基础背景颜色`,"layout.colorSuccess":`成功色`,"layout.colorWarning":`警告色`,"layout.colorError":`错误色`,"layout.bodyBg":`内容区域背景色`,"layout.footerBg":`页脚背景色`,"layout.headerBg":`头部背景色`,"layout.headerColor":`头部文字颜色`,"layout.siderBg":`侧边栏背景色`,"layout.siderColor":`侧边栏文字颜色`,"layout.colorBorder":`布局边框颜色`,"layout.styleConfig":`风格配置`,"layout.fixedFooter":`固定页脚`,"layout.borderRadius":`圆角大小`,"layout.controlHeight":`基础控件高度`,"layout.headerPadding":`头部两侧内边距`,"layout.headerHeight":`头部高度`,"layout.siderWeight":`侧边栏宽度`,"layout.bodyPadding":`内容区域内边距`,"layout.systemConfig":`系统配置`,"layout.localRoute":`本地菜单路由`,"layout.profile":`用户设置`,"layout.logout":`退出登录`,"layout.logoutSuccess":`退出成功,正在跳转`,"layout.logoutFailed":`退出登录失败`,"layout.searchPlaceholder":`请输入搜索内容`,"layout.searchConfirm":`确认`,"layout.searchSwitch":`切换`,"layout.searchClose":`关闭`},Er={...Qn,...$n,...er,...tr,...nr,...rr,...ir,...ar,...or,...sr,...cr,...lr,...ur,...dr,...fr,...pr,...mr,...hr,...gr,..._r,...vr,...yr,...br,...xr,...Sr,...Cr,...wr,...Tr},Dr={en:{translation:Zn},zh:{translation:Er}};$.use(qe).init({resources:Dr,lng:localStorage.getItem(`i18nextLng`)||`zh`,fallbackLng:`zh`,debug:!1,interpolation:{escapeValue:!1}});var Or=e(ye(),1),kr=e(ze(),1);Or.default.extend(kr.default);var Ar=document.getElementById(`root`);Je.createRoot(Ar).render((0,L.jsx)(jt,{}));