@fudanda/admin-antd 2.20261107.1-beta.1 → 2.20261109.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/dist/chunks/ApiTokensPage-w3JGRNQC.js +2 -0
  2. package/dist/chunks/ApiTokensPage-w3JGRNQC.js.map +1 -0
  3. package/dist/chunks/{App-BF96TQ_D.js → App-nh6_qOo8.js} +5 -5
  4. package/dist/chunks/{App-BF96TQ_D.js.map → App-nh6_qOo8.js.map} +1 -1
  5. package/dist/chunks/{AppModal-CLkMJ-96.js → AppModal-CEouaU03.js} +2 -2
  6. package/dist/chunks/{AppModal-CLkMJ-96.js.map → AppModal-CEouaU03.js.map} +1 -1
  7. package/dist/chunks/{ArcBaseAdmin--xQxd4tg.js → ArcBaseAdmin-CX7fQz4x.js} +2 -2
  8. package/dist/chunks/{ArcBaseAdmin--xQxd4tg.js.map → ArcBaseAdmin-CX7fQz4x.js.map} +1 -1
  9. package/dist/chunks/{DepartmentsPage-D6YVegPU.js → DepartmentsPage-BdD9VfDI.js} +2 -2
  10. package/dist/chunks/{DepartmentsPage-D6YVegPU.js.map → DepartmentsPage-BdD9VfDI.js.map} +1 -1
  11. package/dist/chunks/{DictsPage-uV3Uukwc.js → DictsPage-fxBdV1-3.js} +2 -2
  12. package/dist/chunks/{DictsPage-uV3Uukwc.js.map → DictsPage-fxBdV1-3.js.map} +1 -1
  13. package/dist/chunks/{EntityContextRuntime-DbjyzCtY.js → EntityContextRuntime-CMhoj6qe.js} +2 -2
  14. package/dist/chunks/{EntityContextRuntime-DbjyzCtY.js.map → EntityContextRuntime-CMhoj6qe.js.map} +1 -1
  15. package/dist/chunks/EntityContextRuntime-Dc89ZSnM.js +1 -0
  16. package/dist/chunks/{ExportButton-e2ybxuHb.js → ExportButton-DGxB2tcu.js} +2 -2
  17. package/dist/chunks/{ExportButton-e2ybxuHb.js.map → ExportButton-DGxB2tcu.js.map} +1 -1
  18. package/dist/chunks/{FileViewerPreviewPanel-BhI3pTi8.js → FileViewerPreviewPanel-BMZ7FdKV.js} +3 -3
  19. package/dist/chunks/{FileViewerPreviewPanel-BhI3pTi8.js.map → FileViewerPreviewPanel-BMZ7FdKV.js.map} +1 -1
  20. package/dist/chunks/{FilesPage-BI35mStl.js → FilesPage-DrgWELKy.js} +3 -3
  21. package/dist/chunks/{FilesPage-BI35mStl.js.map → FilesPage-DrgWELKy.js.map} +1 -1
  22. package/dist/chunks/IdentitySecurityPage-BjTKvr-O.js +9 -0
  23. package/dist/chunks/IdentitySecurityPage-BjTKvr-O.js.map +1 -0
  24. package/dist/chunks/{LogStatsScaffold-m0vVUXPh.js → LogStatsScaffold-DaB0JeAN.js} +2 -2
  25. package/dist/chunks/{LogStatsScaffold-m0vVUXPh.js.map → LogStatsScaffold-DaB0JeAN.js.map} +1 -1
  26. package/dist/chunks/{LoginLogsPage-BzBUR4Oo.js → LoginLogsPage-VmYC7i6q.js} +2 -2
  27. package/dist/chunks/{LoginLogsPage-BzBUR4Oo.js.map → LoginLogsPage-VmYC7i6q.js.map} +1 -1
  28. package/dist/chunks/{LoginLogsTable-BweUEjQX.js → LoginLogsTable-CULcc_e8.js} +2 -2
  29. package/dist/chunks/{LoginLogsTable-BweUEjQX.js.map → LoginLogsTable-CULcc_e8.js.map} +1 -1
  30. package/dist/chunks/{MarkdownPreviewPanel-C1OKSLmh.js → MarkdownPreviewPanel-CBcPc7Wv.js} +2 -2
  31. package/dist/chunks/{MarkdownPreviewPanel-C1OKSLmh.js.map → MarkdownPreviewPanel-CBcPc7Wv.js.map} +1 -1
  32. package/dist/chunks/{MasterDetailLayout-KVizcSNO.js → MasterDetailLayout-ByIBpmkZ.js} +2 -2
  33. package/dist/chunks/{MasterDetailLayout-KVizcSNO.js.map → MasterDetailLayout-ByIBpmkZ.js.map} +1 -1
  34. package/dist/chunks/{McpSettingsPage-Dhf0CbDN.js → McpSettingsPage-C5V_rj2V.js} +2 -2
  35. package/dist/chunks/{McpSettingsPage-Dhf0CbDN.js.map → McpSettingsPage-C5V_rj2V.js.map} +1 -1
  36. package/dist/chunks/{MemberAssignmentSheet-TYpnyA0z.js → MemberAssignmentSheet-DL0fg1Yf.js} +2 -2
  37. package/dist/chunks/{MemberAssignmentSheet-TYpnyA0z.js.map → MemberAssignmentSheet-DL0fg1Yf.js.map} +1 -1
  38. package/dist/chunks/{MenuCommandPalette-BcvpUfK7.js → MenuCommandPalette-C2PvK3Gh.js} +2 -2
  39. package/dist/chunks/{MenuCommandPalette-BcvpUfK7.js.map → MenuCommandPalette-C2PvK3Gh.js.map} +1 -1
  40. package/dist/chunks/{MenusPage-Dd7OLQYT.js → MenusPage-Bytd1HlW.js} +2 -2
  41. package/dist/chunks/{MenusPage-Dd7OLQYT.js.map → MenusPage-Bytd1HlW.js.map} +1 -1
  42. package/dist/chunks/{MonacoPreviewPanel-BW1j3ZTF.js → MonacoPreviewPanel-BZrNIcFZ.js} +2 -2
  43. package/dist/chunks/{MonacoPreviewPanel-BW1j3ZTF.js.map → MonacoPreviewPanel-BZrNIcFZ.js.map} +1 -1
  44. package/dist/chunks/{NavListPanel-Iz1RCkVw.js → NavListPanel-zwUDIYSP.js} +2 -2
  45. package/dist/chunks/{NavListPanel-Iz1RCkVw.js.map → NavListPanel-zwUDIYSP.js.map} +1 -1
  46. package/dist/chunks/{OperationLogsPage-Dt22tU4I.js → OperationLogsPage-D2BQdGNp.js} +2 -2
  47. package/dist/chunks/{OperationLogsPage-Dt22tU4I.js.map → OperationLogsPage-D2BQdGNp.js.map} +1 -1
  48. package/dist/chunks/{OperationLogsTable-B23Ry-2v.js → OperationLogsTable-DaaON4QR.js} +3 -3
  49. package/dist/chunks/{OperationLogsTable-B23Ry-2v.js.map → OperationLogsTable-DaaON4QR.js.map} +1 -1
  50. package/dist/chunks/{PDFPreviewPanel-kBPz5dQr.js → PDFPreviewPanel-CMmnWBKW.js} +3 -3
  51. package/dist/chunks/{PDFPreviewPanel-kBPz5dQr.js.map → PDFPreviewPanel-CMmnWBKW.js.map} +1 -1
  52. package/dist/chunks/{PositionsPage-BIKYQDB5.js → PositionsPage-CBZITssT.js} +2 -2
  53. package/dist/chunks/{PositionsPage-BIKYQDB5.js.map → PositionsPage-CBZITssT.js.map} +1 -1
  54. package/dist/chunks/{PreferencesSheetBody-D276rrp4.js → PreferencesSheetBody-B0poTPEA.js} +2 -2
  55. package/dist/chunks/{PreferencesSheetBody-D276rrp4.js.map → PreferencesSheetBody-B0poTPEA.js.map} +1 -1
  56. package/dist/chunks/{ProfilePage-DLftC6KZ.js → ProfilePage-DLhacdWt.js} +2 -2
  57. package/dist/chunks/{ProfilePage-DLftC6KZ.js.map → ProfilePage-DLhacdWt.js.map} +1 -1
  58. package/dist/chunks/{ProjectInfoPage-DkuBLC8t.js → ProjectInfoPage-CJpGxpu5.js} +2 -2
  59. package/dist/chunks/{ProjectInfoPage-DkuBLC8t.js.map → ProjectInfoPage-CJpGxpu5.js.map} +1 -1
  60. package/dist/chunks/{RelationPanel-B4BeO0Bz.js → RelationPanel-BsbfEDo2.js} +2 -2
  61. package/dist/chunks/{RelationPanel-B4BeO0Bz.js.map → RelationPanel-BsbfEDo2.js.map} +1 -1
  62. package/dist/chunks/{RolesPage-BhltU2Qm.js → RolesPage-46dzdiah.js} +2 -2
  63. package/dist/chunks/{RolesPage-BhltU2Qm.js.map → RolesPage-46dzdiah.js.map} +1 -1
  64. package/dist/chunks/{SessionConflictModal-3R8jdYkI.js → SessionConflictModal-Bm38eExL.js} +2 -2
  65. package/dist/chunks/{SessionConflictModal-3R8jdYkI.js.map → SessionConflictModal-Bm38eExL.js.map} +1 -1
  66. package/dist/chunks/SettingModuleDetail-BjxUJeH5.js +17 -0
  67. package/dist/chunks/SettingModuleDetail-BjxUJeH5.js.map +1 -0
  68. package/dist/chunks/{SettingsPage-DMzeDrnc.js → SettingsPage-C32Vuizm.js} +2 -2
  69. package/dist/chunks/{SettingsPage-DMzeDrnc.js.map → SettingsPage-C32Vuizm.js.map} +1 -1
  70. package/dist/chunks/{StatCard-C0xSZyiS.js → StatCard-CRPfkSBY.js} +2 -2
  71. package/dist/chunks/{StatCard-C0xSZyiS.js.map → StatCard-CRPfkSBY.js.map} +1 -1
  72. package/dist/chunks/{UserGroupsPage-DTJdszHl.js → UserGroupsPage-08G5MdGm.js} +2 -2
  73. package/dist/chunks/{UserGroupsPage-DTJdszHl.js.map → UserGroupsPage-08G5MdGm.js.map} +1 -1
  74. package/dist/chunks/{UserLogsPanels-z4UhQtgu.js → UserLogsPanels-nbIrMym9.js} +2 -2
  75. package/dist/chunks/{UserLogsPanels-z4UhQtgu.js.map → UserLogsPanels-nbIrMym9.js.map} +1 -1
  76. package/dist/chunks/{UserTransferSelect-BJNUXMhl.js → UserTransferSelect-C8betaWG.js} +2 -2
  77. package/dist/chunks/{UserTransferSelect-BJNUXMhl.js.map → UserTransferSelect-C8betaWG.js.map} +1 -1
  78. package/dist/chunks/{UsersPage--p68X2Yr.js → UsersPage-BjTiNEqF.js} +2 -2
  79. package/dist/chunks/{UsersPage--p68X2Yr.js.map → UsersPage-BjTiNEqF.js.map} +1 -1
  80. package/dist/chunks/{browser-BKLM0ThC-3Xar5rZw.js → browser-BKLM0ThC-Cp7Gi4-F.js} +1 -1
  81. package/dist/chunks/{code-P0HJS_q1.js → code-LswxAr98.js} +1 -1
  82. package/dist/chunks/{direct-engine-BYEscsGg.js → direct-engine-Dv_6v4sx.js} +1 -1
  83. package/dist/chunks/{html-B__1Vr_C.js → html-BokjxlLb.js} +1 -1
  84. package/dist/chunks/{line-DzLRZVEq.js → line-Bqh6atHH.js} +1 -1
  85. package/dist/chunks/{lrc-kf-TilFB.js → lrc-T5e1svZG.js} +1 -1
  86. package/dist/chunks/{markdown-xIo-vnKK.js → markdown-BpWokN1s.js} +1 -1
  87. package/dist/chunks/{patch-BEaX-xYV.js → patch-BYVX5C9G.js} +1 -1
  88. package/dist/chunks/{worker-engine-FCdIQLzN.js → worker-engine-CtUAeI4G.js} +1 -1
  89. package/dist/core/hooks/queries/settings.d.ts +6 -0
  90. package/dist/core/hooks/queries/settings.d.ts.map +1 -1
  91. package/dist/core/hooks/queries/settings.js +34 -25
  92. package/dist/core/hooks/queries/settings.js.map +1 -1
  93. package/dist/core/hooks/useAuth.d.ts +2 -0
  94. package/dist/core/hooks/useAuth.d.ts.map +1 -1
  95. package/dist/core/hooks/useAuth.js.map +1 -1
  96. package/dist/core/index.js +7 -7
  97. package/dist/core/lib/go-auth-api.d.ts +1 -1
  98. package/dist/core/lib/go-auth-api.d.ts.map +1 -1
  99. package/dist/core/lib/go-auth-api.js +12 -8
  100. package/dist/core/lib/go-auth-api.js.map +1 -1
  101. package/dist/core/lib/native-operations.d.ts +85 -4
  102. package/dist/core/lib/native-operations.d.ts.map +1 -1
  103. package/dist/core/lib/native-operations.js +1 -0
  104. package/dist/core/lib/native-operations.js.map +1 -1
  105. package/dist/core/providers/GoAuthProvider.d.ts.map +1 -1
  106. package/dist/core/providers/GoAuthProvider.js +191 -142
  107. package/dist/core/providers/GoAuthProvider.js.map +1 -1
  108. package/dist/core/session-renewal.d.ts +15 -0
  109. package/dist/core/session-renewal.d.ts.map +1 -0
  110. package/dist/core/session-renewal.js +95 -0
  111. package/dist/core/session-renewal.js.map +1 -0
  112. package/dist/core/session-transition.d.ts +2 -0
  113. package/dist/core/session-transition.d.ts.map +1 -1
  114. package/dist/core/session-transition.js +20 -7
  115. package/dist/core/session-transition.js.map +1 -1
  116. package/dist/core/session.d.ts +4 -0
  117. package/dist/core/session.d.ts.map +1 -1
  118. package/dist/core/session.js +88 -61
  119. package/dist/core/session.js.map +1 -1
  120. package/dist/index.js +1 -1
  121. package/dist/{src-C8_bzBi4.js → src-D6UlLiVN.js} +2 -2
  122. package/dist/{src-C8_bzBi4.js.map → src-D6UlLiVN.js.map} +1 -1
  123. package/package.json +9 -9
  124. package/dist/chunks/ApiTokensPage-DiRMgViD.js +0 -2
  125. package/dist/chunks/ApiTokensPage-DiRMgViD.js.map +0 -1
  126. package/dist/chunks/EntityContextRuntime-BOJySc1D.js +0 -1
  127. package/dist/chunks/IdentitySecurityPage-DW5ybVL4.js +0 -9
  128. package/dist/chunks/IdentitySecurityPage-DW5ybVL4.js.map +0 -1
  129. package/dist/chunks/SettingModuleDetail-Dppk9An1.js +0 -17
  130. package/dist/chunks/SettingModuleDetail-Dppk9An1.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{n as e}from"./rolldown-runtime-Bruge11p.js";import{$ as t,M as n,Q as r,R as i}from"./clipboard-dpqHdCyy.js";import{r as ee,s as a,t as o}from"./toolbar-controls-CrM8hKZg.js";import{n as s,t as c}from"./useStatusToggle-D7g3Ew35.js";import{i as l,t as u}from"./deleteAction-CNNyRUSw.js";import{n as d,t as f}from"./useCrudOperationColumn-CPAzNGXp.js";import{n as te,t as p}from"./useRowSelection-CFCS4_38.js";import{n as m,t as h}from"./useListPage-BPw-KZCv.js";import{i as g,n as _,s as v}from"./table-columns-CvT6OHd2.js";import{a as y,i as b,o as x,r as S,t as C}from"./EditFormModal-DVQksS9R.js";import{n as w,t as T}from"./ConfigurableTable-8sYmeul2.js";import{n as E,t as ne}from"./ExportButton-e2ybxuHb.js";import{n as D,r as O,t as k}from"./MemberAssignmentSheet-TYpnyA0z.js";import{n as A,t as j}from"./webmcp-crud-D-Dz8BY4.js";import{useEffect as M,useState as N}from"react";import{Fragment as P,jsx as F,jsxs as I}from"react/jsx-runtime";import{useDictItems as L}from"@fudanda/admin-antd/core/hooks/useDictItems";import{positionContract as R}from"@fudanda/admin-antd/core/lib/native-operations";import{usePermission as z}from"@fudanda/admin-antd/core/hooks/usePermission";import{useAllUsers as B}from"@fudanda/admin-antd/core/hooks/queries/users";import{useFlatDepartments as V}from"@fudanda/admin-antd/core/hooks/queries/departments";import{useAssignPositionMembers as H,useDeletePositions as re,usePositionDetail as U,usePositionList as W,usePositionMembers as G,useSavePosition as K}from"@fudanda/admin-antd/core/hooks/queries/positions";function q(){let{hasPermission:e}=z(),{selectedRowKeys:t,clear:n,rowSelection:a}=te(),c=m({contract:R,useList:W,table:{empty:`暂无数据`,rowSelection:a}}),{tableProps:l,filterQuery:f}=c,{options:p}=L(`common_status`),h=B(),g=V(),y=h.data??[],S=g.data??[],[w,E]=N(!1),[D,j]=N(null),[q,J]=N([]),Y=G(D?.id,w),X=K(),Z=x({entityName:`岗位`,save:b(X,{create:R.create.input.shape.body,update:R.update.input.shape.body}),useDetail:U,defaults:{sort:0,status:`enabled`},toValues:e=>({name:e.name,code:e.code,sort:e.sort,status:e.status,remark:e.remark??void 0}),beforeSave:(e,{editing:t})=>({...e,remark:e.remark||void 0,...t?{clearFields:e.remark?[]:[`remark`]}:{}})}),ie=K(),Q=re(),$=H();A({resource:`positions`,title:`岗位`,permission:`system:position`,hasPermission:e,modal:Z,list:R.list,detail:R.detail,create:R.create.input.shape.body,update:R.update.input.shape.body,fields:[`id`,`name`,`code`,`sort`,`status`,`remark`,`createdAt`,`updatedAt`],filters:f,selectedIds:t,remove:e=>Q.mutateAsync([e]),onDeleted:n,busy:w});let ae=s({toggle:(e,t)=>ie.mutateAsync({id:e.id,values:{status:t?`enabled`:`disabled`}}),confirmDisable:e=>({danger:!0,title:`确认停用岗位「${e.name}」?`,content:`停用后该岗位将不可选择。`,okText:`确认停用`}),disabled:!e(`system:position:update`)});M(()=>{w&&J((Y.data??[]).map(e=>e.id))},[w,Y.data]);let oe=()=>{t.length&&u({title:`确认删除选中的 ${t.length} 个岗位?`,content:`删除后无法恢复,请确认操作`,run:()=>Q.mutateAsync(t),onDeleted:n})},se=e=>{j(e),E(!0)},ce=async()=>{D&&(await $.mutateAsync({params:{id:D.id},body:{userIds:q}}),E(!1))},le=d({permission:`system:position`,edit:e=>{Z.openEdit(e)},remove:Q,title:`确定要删除该岗位吗?`,extraBetween:t=>[{key:`members`,label:`成员`,hidden:!e(`system:position:update`),onClick:()=>{se(t)}}],width:210}),ue=[{title:`岗位名称`,dataIndex:`name`,minWidth:200,render:v},{title:`岗位编码`,dataIndex:`code`,width:180,render:v},{title:`排序`,dataIndex:`sort`,width:90},O({dataIndex:`userPreview`,width:150,getPreview:e=>e.userPreview,getCount:e=>e.userCount,getScope:e=>({type:`position`,id:e.id,name:e.name})}),{title:`备注`,dataIndex:`remark`,width:200,render:v},_,ae.column(),le];return/* @__PURE__ */ I(`div`,{className:`page-container`,children:[/* @__PURE__ */ F(T,{searchConfig:r({page:c,filters:[`keyword`,`status`,[`startTime`,`endTime`]],create:/* @__PURE__ */ F(ee,{permission:`system:position:create`,onClick:Z.openCreate}),actions:/* @__PURE__ */ I(P,{children:[/* @__PURE__ */ F(ne,{entity:`system.positions`,query:f}),t.length>0&&e(`system:position:delete`)&&/* @__PURE__ */ F(o,{count:t.length,onClick:oe})]}),filterTitle:`岗位筛选`}),columns:ue,...l}),/* @__PURE__ */ I(C,{modal:Z,width:520,children:[/* @__PURE__ */ F(i.Input,{field:`name`,label:`岗位名称`,placeholder:`请输入岗位名称`,rules:[{required:!0,message:`请输入岗位名称`}]}),/* @__PURE__ */ F(i.Input,{field:`code`,label:`岗位编码`,placeholder:`请输入岗位编码`,rules:[{required:!0,message:`请输入岗位编码`}]}),/* @__PURE__ */ F(i.InputNumber,{field:`sort`,label:`排序`,placeholder:`请输入排序`,min:0,style:{width:`100%`}}),/* @__PURE__ */ F(i.Select,{field:`status`,label:`状态`,optionList:p,style:{width:`100%`},placeholder:`请选择状态`}),/* @__PURE__ */ F(i.TextArea,{field:`remark`,label:`备注`,placeholder:`请输入备注`,maxCount:256})]}),/* @__PURE__ */ F(k,{title:`成员管理 - ${D?.name??``}`,visible:w,onCancel:()=>E(!1),users:y,value:q,onChange:J,departments:S,canSave:Y.isSuccess,saveLoading:$.isPending,onSave:ce})]})}function J(){return(J=e((()=>{n(),E(),w(),g(),y(),a(),l(),t(),p(),c(),f(),D(),h(),S(),j()})))()}J();export{q as default};
2
- //# sourceMappingURL=PositionsPage-BIKYQDB5.js.map
1
+ import{n as e}from"./rolldown-runtime-Bruge11p.js";import{$ as t,M as n,Q as r,R as i}from"./clipboard-dpqHdCyy.js";import{r as ee,s as a,t as o}from"./toolbar-controls-CrM8hKZg.js";import{n as s,t as c}from"./useStatusToggle-D7g3Ew35.js";import{i as l,t as u}from"./deleteAction-CNNyRUSw.js";import{n as d,t as f}from"./useCrudOperationColumn-CPAzNGXp.js";import{n as te,t as p}from"./useRowSelection-CFCS4_38.js";import{n as m,t as h}from"./useListPage-BPw-KZCv.js";import{i as g,n as _,s as v}from"./table-columns-CvT6OHd2.js";import{a as y,i as b,o as x,r as S,t as C}from"./EditFormModal-DVQksS9R.js";import{n as w,t as T}from"./ConfigurableTable-8sYmeul2.js";import{n as E,t as ne}from"./ExportButton-DGxB2tcu.js";import{n as D,r as O,t as k}from"./MemberAssignmentSheet-DL0fg1Yf.js";import{n as A,t as j}from"./webmcp-crud-D-Dz8BY4.js";import{useEffect as M,useState as N}from"react";import{Fragment as P,jsx as F,jsxs as I}from"react/jsx-runtime";import{useDictItems as L}from"@fudanda/admin-antd/core/hooks/useDictItems";import{positionContract as R}from"@fudanda/admin-antd/core/lib/native-operations";import{usePermission as z}from"@fudanda/admin-antd/core/hooks/usePermission";import{useAllUsers as B}from"@fudanda/admin-antd/core/hooks/queries/users";import{useFlatDepartments as V}from"@fudanda/admin-antd/core/hooks/queries/departments";import{useAssignPositionMembers as H,useDeletePositions as re,usePositionDetail as U,usePositionList as W,usePositionMembers as G,useSavePosition as K}from"@fudanda/admin-antd/core/hooks/queries/positions";function q(){let{hasPermission:e}=z(),{selectedRowKeys:t,clear:n,rowSelection:a}=te(),c=m({contract:R,useList:W,table:{empty:`暂无数据`,rowSelection:a}}),{tableProps:l,filterQuery:f}=c,{options:p}=L(`common_status`),h=B(),g=V(),y=h.data??[],S=g.data??[],[w,E]=N(!1),[D,j]=N(null),[q,J]=N([]),Y=G(D?.id,w),X=K(),Z=x({entityName:`岗位`,save:b(X,{create:R.create.input.shape.body,update:R.update.input.shape.body}),useDetail:U,defaults:{sort:0,status:`enabled`},toValues:e=>({name:e.name,code:e.code,sort:e.sort,status:e.status,remark:e.remark??void 0}),beforeSave:(e,{editing:t})=>({...e,remark:e.remark||void 0,...t?{clearFields:e.remark?[]:[`remark`]}:{}})}),ie=K(),Q=re(),$=H();A({resource:`positions`,title:`岗位`,permission:`system:position`,hasPermission:e,modal:Z,list:R.list,detail:R.detail,create:R.create.input.shape.body,update:R.update.input.shape.body,fields:[`id`,`name`,`code`,`sort`,`status`,`remark`,`createdAt`,`updatedAt`],filters:f,selectedIds:t,remove:e=>Q.mutateAsync([e]),onDeleted:n,busy:w});let ae=s({toggle:(e,t)=>ie.mutateAsync({id:e.id,values:{status:t?`enabled`:`disabled`}}),confirmDisable:e=>({danger:!0,title:`确认停用岗位「${e.name}」?`,content:`停用后该岗位将不可选择。`,okText:`确认停用`}),disabled:!e(`system:position:update`)});M(()=>{w&&J((Y.data??[]).map(e=>e.id))},[w,Y.data]);let oe=()=>{t.length&&u({title:`确认删除选中的 ${t.length} 个岗位?`,content:`删除后无法恢复,请确认操作`,run:()=>Q.mutateAsync(t),onDeleted:n})},se=e=>{j(e),E(!0)},ce=async()=>{D&&(await $.mutateAsync({params:{id:D.id},body:{userIds:q}}),E(!1))},le=d({permission:`system:position`,edit:e=>{Z.openEdit(e)},remove:Q,title:`确定要删除该岗位吗?`,extraBetween:t=>[{key:`members`,label:`成员`,hidden:!e(`system:position:update`),onClick:()=>{se(t)}}],width:210}),ue=[{title:`岗位名称`,dataIndex:`name`,minWidth:200,render:v},{title:`岗位编码`,dataIndex:`code`,width:180,render:v},{title:`排序`,dataIndex:`sort`,width:90},O({dataIndex:`userPreview`,width:150,getPreview:e=>e.userPreview,getCount:e=>e.userCount,getScope:e=>({type:`position`,id:e.id,name:e.name})}),{title:`备注`,dataIndex:`remark`,width:200,render:v},_,ae.column(),le];return/* @__PURE__ */ I(`div`,{className:`page-container`,children:[/* @__PURE__ */ F(T,{searchConfig:r({page:c,filters:[`keyword`,`status`,[`startTime`,`endTime`]],create:/* @__PURE__ */ F(ee,{permission:`system:position:create`,onClick:Z.openCreate}),actions:/* @__PURE__ */ I(P,{children:[/* @__PURE__ */ F(ne,{entity:`system.positions`,query:f}),t.length>0&&e(`system:position:delete`)&&/* @__PURE__ */ F(o,{count:t.length,onClick:oe})]}),filterTitle:`岗位筛选`}),columns:ue,...l}),/* @__PURE__ */ I(C,{modal:Z,width:520,children:[/* @__PURE__ */ F(i.Input,{field:`name`,label:`岗位名称`,placeholder:`请输入岗位名称`,rules:[{required:!0,message:`请输入岗位名称`}]}),/* @__PURE__ */ F(i.Input,{field:`code`,label:`岗位编码`,placeholder:`请输入岗位编码`,rules:[{required:!0,message:`请输入岗位编码`}]}),/* @__PURE__ */ F(i.InputNumber,{field:`sort`,label:`排序`,placeholder:`请输入排序`,min:0,style:{width:`100%`}}),/* @__PURE__ */ F(i.Select,{field:`status`,label:`状态`,optionList:p,style:{width:`100%`},placeholder:`请选择状态`}),/* @__PURE__ */ F(i.TextArea,{field:`remark`,label:`备注`,placeholder:`请输入备注`,maxCount:256})]}),/* @__PURE__ */ F(k,{title:`成员管理 - ${D?.name??``}`,visible:w,onCancel:()=>E(!1),users:y,value:q,onChange:J,departments:S,canSave:Y.isSuccess,saveLoading:$.isPending,onSave:ce})]})}function J(){return(J=e((()=>{n(),E(),w(),g(),y(),a(),l(),t(),p(),c(),f(),D(),h(),S(),j()})))()}J();export{q as default};
2
+ //# sourceMappingURL=PositionsPage-CBZITssT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PositionsPage-BIKYQDB5.js","mappings":"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","names":["PositionsPage","usePermission","clearSelection","useRowSelection","page","useListPage","positionContract","usePositionList","statusOptions","useDictItems","allUsersQuery","useAllUsers","departmentsQuery","useFlatDepartments","allUsers","departments","memberSheetVisible","setMemberSheetVisible","useState","memberPosition","setMemberPosition","memberIds","setMemberIds","membersQuery","usePositionMembers","saveMutation","useSavePosition","positionModal","useEditModal","formSaveMutation","usePositionDetail","position","values","editing","toggleStatusMutation","deleteMutation","useDeletePositions","assignMembersMutation","useAssignPositionMembers","useStandardWebMcpCrudAdapter","filterQuery","selectedRowKeys","id","status","useStatusToggle","pos","enabled","hasPermission","useEffect","m","handleBatchDelete","confirmAndDelete","openMembers","handleSaveMembers","operationColumn","useCrudOperationColumn","record","columns","renderEllipsis","memberPreviewColumn","createdAtColumn","ConfigurableTable","buildTableSearch","CreateButton","_Fragment","ExportButton","BatchDeleteButton","tableProps","EditFormModal","Form","MemberAssignmentSheet"],"ignoreList":[],"sources":["../../src/pages/system/positions/PositionsPage.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { Form } from \"@/ui\";\nimport { type Position } from '@fudanda/shared/identity';\nimport { positionContract } from '@fudanda/react-core/lib/native-operations';\nimport type { PositionFormValues } from \"@fudanda/react-core/hooks/queries/positions\";\nimport type { ColumnProps } from \"@/ui\";\nimport { useDictItems } from \"@fudanda/react-core/hooks/useDictItems\";\nimport type { UserTransferUser } from \"@/components/UserTransferSelect\";\nimport { usePermission } from \"@fudanda/react-core/hooks/usePermission\";\nimport ExportButton from \"@/components/ExportButton\";\nimport ConfigurableTable from \"@/components/ConfigurableTable\";\nimport { createdAtColumn, renderEllipsis } from \"@/utils/table-columns\";\nimport { useFlatDepartments } from \"@fudanda/react-core/hooks/queries/departments\";\nimport { useAssignPositionMembers, useDeletePositions, usePositionDetail, usePositionList, usePositionMembers, useSavePosition } from \"@fudanda/react-core/hooks/queries/positions\";\nimport { useAllUsers } from \"@fudanda/react-core/hooks/queries/users\";\nimport { useEditModal, formSaveMutation } from \"@/hooks/useEditModal\";\nimport { BatchDeleteButton, CreateButton } from \"@/components/toolbar-controls\";\nimport { confirmAndDelete, buildTableSearch, useRowSelection, useStatusToggle, useCrudOperationColumn } from \"@/components/list-page/index\";\nimport { MemberAssignmentSheet, memberPreviewColumn } from \"@/components/members/MemberAssignmentSheet\";\nimport { useListPage } from \"@/hooks/useListPage\";\nimport { EditFormModal } from \"@/components/EditFormModal\";\nimport { useStandardWebMcpCrudAdapter } from '@/webmcp-crud';\nexport default function PositionsPage() {\n const { hasPermission } = usePermission();\n const { selectedRowKeys, clear: clearSelection, rowSelection } = useRowSelection();\n const page = useListPage({\n contract: positionContract,\n useList: usePositionList,\n table: { empty: '暂无数据', rowSelection },\n });\n const { tableProps, filterQuery } = page;\n const { options: statusOptions } = useDictItems('common_status');\n // 成员管理\n const allUsersQuery = useAllUsers();\n const departmentsQuery = useFlatDepartments();\n const allUsers: UserTransferUser[] = allUsersQuery.data ?? [];\n const departments = departmentsQuery.data ?? [];\n const [memberSheetVisible, setMemberSheetVisible] = useState(false);\n const [memberPosition, setMemberPosition] = useState<Position | null>(null);\n const [memberIds, setMemberIds] = useState<number[]>([]);\n const membersQuery = usePositionMembers(memberPosition?.id, memberSheetVisible);\n const saveMutation = useSavePosition();\n const positionModal = useEditModal<Position, PositionFormValues>({\n entityName: '岗位',\n save: formSaveMutation(saveMutation, { create: positionContract.create.input.shape.body, update: positionContract.update.input.shape.body }),\n useDetail: usePositionDetail,\n defaults: { sort: 0, status: 'enabled' },\n toValues: (position) => ({\n name: position.name,\n code: position.code,\n sort: position.sort,\n status: position.status,\n // 记录里的 null 备注在表单中视为未填\n remark: position.remark ?? undefined,\n }),\n beforeSave: (values, { editing }) => ({ ...values, remark: values.remark || undefined, ...(editing ? { clearFields: values.remark ? [] : ['remark'] } : {}) }),\n });\n const toggleStatusMutation = useSavePosition();\n const deleteMutation = useDeletePositions();\n const assignMembersMutation = useAssignPositionMembers();\n useStandardWebMcpCrudAdapter({ resource: 'positions', title: '岗位', permission: 'system:position', hasPermission, modal: positionModal,\n list: positionContract.list, detail: positionContract.detail, create: positionContract.create.input.shape.body, update: positionContract.update.input.shape.body,\n fields: ['id', 'name', 'code', 'sort', 'status', 'remark', 'createdAt', 'updatedAt'], filters: filterQuery, selectedIds: selectedRowKeys,\n remove: id => deleteMutation.mutateAsync([id]), onDeleted: clearSelection, busy: memberSheetVisible });\n const status = useStatusToggle<Position>({\n toggle: (pos, enabled) => toggleStatusMutation.mutateAsync({ id: pos.id, values: { status: enabled ? 'enabled' : 'disabled' } }),\n confirmDisable: (pos) => ({ danger: true, title: `确认停用岗位「${pos.name}」?`, content: '停用后该岗位将不可选择。', okText: '确认停用' }),\n disabled: !hasPermission('system:position:update'),\n });\n useEffect(() => {\n if (memberSheetVisible)\n setMemberIds((membersQuery.data ?? []).map((m) => m.id));\n }, [memberSheetVisible, membersQuery.data]);\n const handleBatchDelete = () => {\n if (!selectedRowKeys.length)\n return;\n confirmAndDelete({\n title: `确认删除选中的 ${selectedRowKeys.length} 个岗位?`,\n content: '删除后无法恢复,请确认操作',\n run: () => deleteMutation.mutateAsync(selectedRowKeys),\n onDeleted: clearSelection,\n });\n };\n const openMembers = (pos: Position) => {\n setMemberPosition(pos);\n setMemberSheetVisible(true);\n };\n const handleSaveMembers = async () => {\n if (!memberPosition)\n return;\n await assignMembersMutation.mutateAsync({ params: { id: memberPosition.id }, body: { userIds: memberIds } });\n setMemberSheetVisible(false);\n };\n const operationColumn = useCrudOperationColumn<Position>({\n permission: 'system:position',\n edit: (record) => { positionModal.openEdit(record); },\n remove: deleteMutation,\n title: '确定要删除该岗位吗?',\n extraBetween: (record) => [\n {\n key: 'members',\n label: '成员',\n hidden: !hasPermission('system:position:update'),\n onClick: () => { void openMembers(record); },\n },\n ],\n width: 210,\n });\n const columns: ColumnProps<Position>[] = [\n { title: '岗位名称', dataIndex: 'name', minWidth: 200, render: renderEllipsis },\n { title: '岗位编码', dataIndex: 'code', width: 180, render: renderEllipsis },\n { title: '排序', dataIndex: 'sort', width: 90 },\n memberPreviewColumn<Position>({\n dataIndex: 'userPreview',\n width: 150,\n getPreview: (record) => record.userPreview,\n getCount: (record) => record.userCount,\n getScope: (record) => ({ type: 'position', id: record.id, name: record.name }),\n }),\n {\n title: '备注',\n dataIndex: 'remark',\n width: 200,\n render: renderEllipsis,\n },\n createdAtColumn,\n status.column(),\n operationColumn,\n ];\n return (<div className=\"page-container\">\n\n\n <ConfigurableTable<Position> searchConfig={buildTableSearch({\n page: (page),\n filters: (['keyword', 'status', ['startTime', 'endTime']]),\n create: (<CreateButton permission=\"system:position:create\" onClick={positionModal.openCreate}/>),\n actions: ((<>\n <ExportButton entity=\"system.positions\" query={filterQuery}/>\n {selectedRowKeys.length > 0 && hasPermission('system:position:delete') && <BatchDeleteButton count={selectedRowKeys.length} onClick={handleBatchDelete}/>}\n </>)),\n filterTitle: \"岗位筛选\"\n })} columns={columns} {...tableProps}/>\n\n <EditFormModal modal={positionModal} width={520}>\n <Form.Input field=\"name\" label=\"岗位名称\" placeholder=\"请输入岗位名称\" rules={[{ required: true, message: '请输入岗位名称' }]}/>\n <Form.Input field=\"code\" label=\"岗位编码\" placeholder=\"请输入岗位编码\" rules={[{ required: true, message: '请输入岗位编码' }]}/>\n <Form.InputNumber field=\"sort\" label=\"排序\" placeholder=\"请输入排序\" min={0} style={{ width: '100%' }}/>\n <Form.Select field=\"status\" label=\"状态\" optionList={statusOptions} style={{ width: '100%' }} placeholder=\"请选择状态\"/>\n <Form.TextArea field=\"remark\" label=\"备注\" placeholder=\"请输入备注\" maxCount={256}/>\n </EditFormModal>\n\n <MemberAssignmentSheet title={`成员管理 - ${memberPosition?.name ?? ''}`} visible={memberSheetVisible} onCancel={() => setMemberSheetVisible(false)} users={allUsers} value={memberIds} onChange={setMemberIds} departments={departments} canSave={membersQuery.isSuccess} saveLoading={assignMembersMutation.isPending} onSave={handleSaveMembers}/>\n </div>);\n}\n"]}
1
+ {"version":3,"file":"PositionsPage-CBZITssT.js","mappings":"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","names":["PositionsPage","usePermission","clearSelection","useRowSelection","page","useListPage","positionContract","usePositionList","statusOptions","useDictItems","allUsersQuery","useAllUsers","departmentsQuery","useFlatDepartments","allUsers","departments","memberSheetVisible","setMemberSheetVisible","useState","memberPosition","setMemberPosition","memberIds","setMemberIds","membersQuery","usePositionMembers","saveMutation","useSavePosition","positionModal","useEditModal","formSaveMutation","usePositionDetail","position","values","editing","toggleStatusMutation","deleteMutation","useDeletePositions","assignMembersMutation","useAssignPositionMembers","useStandardWebMcpCrudAdapter","filterQuery","selectedRowKeys","id","status","useStatusToggle","pos","enabled","hasPermission","useEffect","m","handleBatchDelete","confirmAndDelete","openMembers","handleSaveMembers","operationColumn","useCrudOperationColumn","record","columns","renderEllipsis","memberPreviewColumn","createdAtColumn","ConfigurableTable","buildTableSearch","CreateButton","_Fragment","ExportButton","BatchDeleteButton","tableProps","EditFormModal","Form","MemberAssignmentSheet"],"ignoreList":[],"sources":["../../src/pages/system/positions/PositionsPage.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { Form } from \"@/ui\";\nimport { type Position } from '@fudanda/shared/identity';\nimport { positionContract } from '@fudanda/react-core/lib/native-operations';\nimport type { PositionFormValues } from \"@fudanda/react-core/hooks/queries/positions\";\nimport type { ColumnProps } from \"@/ui\";\nimport { useDictItems } from \"@fudanda/react-core/hooks/useDictItems\";\nimport type { UserTransferUser } from \"@/components/UserTransferSelect\";\nimport { usePermission } from \"@fudanda/react-core/hooks/usePermission\";\nimport ExportButton from \"@/components/ExportButton\";\nimport ConfigurableTable from \"@/components/ConfigurableTable\";\nimport { createdAtColumn, renderEllipsis } from \"@/utils/table-columns\";\nimport { useFlatDepartments } from \"@fudanda/react-core/hooks/queries/departments\";\nimport { useAssignPositionMembers, useDeletePositions, usePositionDetail, usePositionList, usePositionMembers, useSavePosition } from \"@fudanda/react-core/hooks/queries/positions\";\nimport { useAllUsers } from \"@fudanda/react-core/hooks/queries/users\";\nimport { useEditModal, formSaveMutation } from \"@/hooks/useEditModal\";\nimport { BatchDeleteButton, CreateButton } from \"@/components/toolbar-controls\";\nimport { confirmAndDelete, buildTableSearch, useRowSelection, useStatusToggle, useCrudOperationColumn } from \"@/components/list-page/index\";\nimport { MemberAssignmentSheet, memberPreviewColumn } from \"@/components/members/MemberAssignmentSheet\";\nimport { useListPage } from \"@/hooks/useListPage\";\nimport { EditFormModal } from \"@/components/EditFormModal\";\nimport { useStandardWebMcpCrudAdapter } from '@/webmcp-crud';\nexport default function PositionsPage() {\n const { hasPermission } = usePermission();\n const { selectedRowKeys, clear: clearSelection, rowSelection } = useRowSelection();\n const page = useListPage({\n contract: positionContract,\n useList: usePositionList,\n table: { empty: '暂无数据', rowSelection },\n });\n const { tableProps, filterQuery } = page;\n const { options: statusOptions } = useDictItems('common_status');\n // 成员管理\n const allUsersQuery = useAllUsers();\n const departmentsQuery = useFlatDepartments();\n const allUsers: UserTransferUser[] = allUsersQuery.data ?? [];\n const departments = departmentsQuery.data ?? [];\n const [memberSheetVisible, setMemberSheetVisible] = useState(false);\n const [memberPosition, setMemberPosition] = useState<Position | null>(null);\n const [memberIds, setMemberIds] = useState<number[]>([]);\n const membersQuery = usePositionMembers(memberPosition?.id, memberSheetVisible);\n const saveMutation = useSavePosition();\n const positionModal = useEditModal<Position, PositionFormValues>({\n entityName: '岗位',\n save: formSaveMutation(saveMutation, { create: positionContract.create.input.shape.body, update: positionContract.update.input.shape.body }),\n useDetail: usePositionDetail,\n defaults: { sort: 0, status: 'enabled' },\n toValues: (position) => ({\n name: position.name,\n code: position.code,\n sort: position.sort,\n status: position.status,\n // 记录里的 null 备注在表单中视为未填\n remark: position.remark ?? undefined,\n }),\n beforeSave: (values, { editing }) => ({ ...values, remark: values.remark || undefined, ...(editing ? { clearFields: values.remark ? [] : ['remark'] } : {}) }),\n });\n const toggleStatusMutation = useSavePosition();\n const deleteMutation = useDeletePositions();\n const assignMembersMutation = useAssignPositionMembers();\n useStandardWebMcpCrudAdapter({ resource: 'positions', title: '岗位', permission: 'system:position', hasPermission, modal: positionModal,\n list: positionContract.list, detail: positionContract.detail, create: positionContract.create.input.shape.body, update: positionContract.update.input.shape.body,\n fields: ['id', 'name', 'code', 'sort', 'status', 'remark', 'createdAt', 'updatedAt'], filters: filterQuery, selectedIds: selectedRowKeys,\n remove: id => deleteMutation.mutateAsync([id]), onDeleted: clearSelection, busy: memberSheetVisible });\n const status = useStatusToggle<Position>({\n toggle: (pos, enabled) => toggleStatusMutation.mutateAsync({ id: pos.id, values: { status: enabled ? 'enabled' : 'disabled' } }),\n confirmDisable: (pos) => ({ danger: true, title: `确认停用岗位「${pos.name}」?`, content: '停用后该岗位将不可选择。', okText: '确认停用' }),\n disabled: !hasPermission('system:position:update'),\n });\n useEffect(() => {\n if (memberSheetVisible)\n setMemberIds((membersQuery.data ?? []).map((m) => m.id));\n }, [memberSheetVisible, membersQuery.data]);\n const handleBatchDelete = () => {\n if (!selectedRowKeys.length)\n return;\n confirmAndDelete({\n title: `确认删除选中的 ${selectedRowKeys.length} 个岗位?`,\n content: '删除后无法恢复,请确认操作',\n run: () => deleteMutation.mutateAsync(selectedRowKeys),\n onDeleted: clearSelection,\n });\n };\n const openMembers = (pos: Position) => {\n setMemberPosition(pos);\n setMemberSheetVisible(true);\n };\n const handleSaveMembers = async () => {\n if (!memberPosition)\n return;\n await assignMembersMutation.mutateAsync({ params: { id: memberPosition.id }, body: { userIds: memberIds } });\n setMemberSheetVisible(false);\n };\n const operationColumn = useCrudOperationColumn<Position>({\n permission: 'system:position',\n edit: (record) => { positionModal.openEdit(record); },\n remove: deleteMutation,\n title: '确定要删除该岗位吗?',\n extraBetween: (record) => [\n {\n key: 'members',\n label: '成员',\n hidden: !hasPermission('system:position:update'),\n onClick: () => { void openMembers(record); },\n },\n ],\n width: 210,\n });\n const columns: ColumnProps<Position>[] = [\n { title: '岗位名称', dataIndex: 'name', minWidth: 200, render: renderEllipsis },\n { title: '岗位编码', dataIndex: 'code', width: 180, render: renderEllipsis },\n { title: '排序', dataIndex: 'sort', width: 90 },\n memberPreviewColumn<Position>({\n dataIndex: 'userPreview',\n width: 150,\n getPreview: (record) => record.userPreview,\n getCount: (record) => record.userCount,\n getScope: (record) => ({ type: 'position', id: record.id, name: record.name }),\n }),\n {\n title: '备注',\n dataIndex: 'remark',\n width: 200,\n render: renderEllipsis,\n },\n createdAtColumn,\n status.column(),\n operationColumn,\n ];\n return (<div className=\"page-container\">\n\n\n <ConfigurableTable<Position> searchConfig={buildTableSearch({\n page: (page),\n filters: (['keyword', 'status', ['startTime', 'endTime']]),\n create: (<CreateButton permission=\"system:position:create\" onClick={positionModal.openCreate}/>),\n actions: ((<>\n <ExportButton entity=\"system.positions\" query={filterQuery}/>\n {selectedRowKeys.length > 0 && hasPermission('system:position:delete') && <BatchDeleteButton count={selectedRowKeys.length} onClick={handleBatchDelete}/>}\n </>)),\n filterTitle: \"岗位筛选\"\n })} columns={columns} {...tableProps}/>\n\n <EditFormModal modal={positionModal} width={520}>\n <Form.Input field=\"name\" label=\"岗位名称\" placeholder=\"请输入岗位名称\" rules={[{ required: true, message: '请输入岗位名称' }]}/>\n <Form.Input field=\"code\" label=\"岗位编码\" placeholder=\"请输入岗位编码\" rules={[{ required: true, message: '请输入岗位编码' }]}/>\n <Form.InputNumber field=\"sort\" label=\"排序\" placeholder=\"请输入排序\" min={0} style={{ width: '100%' }}/>\n <Form.Select field=\"status\" label=\"状态\" optionList={statusOptions} style={{ width: '100%' }} placeholder=\"请选择状态\"/>\n <Form.TextArea field=\"remark\" label=\"备注\" placeholder=\"请输入备注\" maxCount={256}/>\n </EditFormModal>\n\n <MemberAssignmentSheet title={`成员管理 - ${memberPosition?.name ?? ''}`} visible={memberSheetVisible} onCancel={() => setMemberSheetVisible(false)} users={allUsers} value={memberIds} onChange={setMemberIds} departments={departments} canSave={membersQuery.isSuccess} saveLoading={assignMembersMutation.isPending} onSave={handleSaveMembers}/>\n </div>);\n}\n"]}
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-Bruge11p.js";import{i as t,o as n}from"../src-C8_bzBi4.js";import{Bt as r,Ht as i,M as a,S as o,Ut as s,Vt as c,Wt as l,bt as u,g as d,j as f,m as p,xt as m,zt as h}from"./clipboard-dpqHdCyy.js";import{i as g,n as _,r as ee,t as te}from"./chevron-right-B9ihyQx-.js";import{n as v,t as y}from"./info-CMEL1G7n.js";import{H as b,M as ne,N as x,U as S,i as re,r as C}from"./App-BF96TQ_D.js";import{c as ie,l as ae,n as w,o as oe,s as se,t as T}from"./SettingRow-Bh2bBjdL.js";import{useCallback as E,useEffect as D,useRef as ce,useState as O}from"react";import{Fragment as k,jsx as A,jsxs as j}from"react/jsx-runtime";import{Button as le,Empty as ue}from"antd";import{DARK_SURFACE_TONE_OPTIONS as de,FONT_FAMILY_OPTIONS as fe,LOADING_STYLE_OPTIONS as M,UI_SCALE_OPTIONS as pe,isScheduleTime as me,usePreferences as he}from"@fudanda/admin-antd/core/hooks/usePreferences";import{THEME_COLOR_PRESETS as ge}from"@fudanda/admin-antd/core/lib/theme-color";import{textMatches as N}from"@fudanda/admin-antd/core/utils/pinyin";import{preferenceDefinitionMap as _e,preferenceDefinitions as ve,preferenceOverridesSchema as ye}from"@fudanda/client/preferences";import{clearAllListFilterSnapshots as be}from"@fudanda/admin-antd/core/lib/list-filter-memory";var P,F;function I(){return(I=e((()=>{
1
+ import{n as e}from"./rolldown-runtime-Bruge11p.js";import{i as t,o as n}from"../src-D6UlLiVN.js";import{Bt as r,Ht as i,M as a,S as o,Ut as s,Vt as c,Wt as l,bt as u,g as d,j as f,m as p,xt as m,zt as h}from"./clipboard-dpqHdCyy.js";import{i as g,n as _,r as ee,t as te}from"./chevron-right-B9ihyQx-.js";import{n as v,t as y}from"./info-CMEL1G7n.js";import{H as b,M as ne,N as x,U as S,i as re,r as C}from"./App-nh6_qOo8.js";import{c as ie,l as ae,n as w,o as oe,s as se,t as T}from"./SettingRow-Bh2bBjdL.js";import{useCallback as E,useEffect as D,useRef as ce,useState as O}from"react";import{Fragment as k,jsx as A,jsxs as j}from"react/jsx-runtime";import{Button as le,Empty as ue}from"antd";import{DARK_SURFACE_TONE_OPTIONS as de,FONT_FAMILY_OPTIONS as fe,LOADING_STYLE_OPTIONS as M,UI_SCALE_OPTIONS as pe,isScheduleTime as me,usePreferences as he}from"@fudanda/admin-antd/core/hooks/usePreferences";import{THEME_COLOR_PRESETS as ge}from"@fudanda/admin-antd/core/lib/theme-color";import{textMatches as N}from"@fudanda/admin-antd/core/utils/pinyin";import{preferenceDefinitionMap as _e,preferenceDefinitions as ve,preferenceOverridesSchema as ye}from"@fudanda/client/preferences";import{clearAllListFilterSnapshots as be}from"@fudanda/admin-antd/core/lib/list-filter-memory";var P,F;function I(){return(I=e((()=>{
2
2
  /**
3
3
  * @license lucide-react v1.67.0 - ISC
4
4
  *
@@ -41,4 +41,4 @@ m(),K={name:`palette`,size:24,node:[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1
41
41
  * See the LICENSE file in the root directory of this source tree.
42
42
  */
43
43
  m(),Y={name:`sliders-horizontal`,size:24,node:[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]},Y.node,xe=u(Y)})))()}function Ce(e,t){let n=t.trim();if(!n)return!0;let r=X.find(t=>t.key===e.group),i=Te[e.path]??[];return[e.label,e.path,e.description??``,r?.label??``,...e.options?.flatMap(e=>[e.label,String(e.value)])??[],...i].some(e=>N(e,n))}function we(e,t,n,r,i){let a=!e.trim()||[`通用`,`锁屏`,`屏幕锁`,`锁屏密码`,`密码`,`锁定`,`自动锁屏`,`无操作`,`空闲`,`闲置`].some(t=>N(t,e.trim()));return X.map(n=>({...n,fields:ve.filter(r=>r.group===n.key&&t(r.path)&&Ce(r,e)),localCount:n.key===`general`&&a?r?3:2:0})).filter(e=>e.fields.length>0||e.localCount>0)}var X,Te;function Z(){return(Z=e((()=>{X=[{key:`layout`,label:`布局`,description:`选择导航结构和内容区域的呈现方式。`},{key:`appearance`,label:`外观`,description:`调整主题、颜色、字体和界面动效。`},{key:`navigation`,label:`导航`,description:`设置面包屑、顶栏工具和时钟。`},{key:`sidebar`,label:`侧栏`,description:`调整菜单宽度、展开方式和滚动行为。`},{key:`tabs`,label:`标签页`,description:`设置多页浏览、页面缓存和切换行为。`},{key:`table`,label:`表格`,description:`设置列表样式、分页和筛选记忆。单张表格的独立设置优先,可在表格中选择“跟随全局偏好”恢复。`},{key:`general`,label:`通用`,description:`调整首页、时间显示、交互和锁屏设置。`}],Te={colorMode:[`主题`,`主题模式`],themeColor:[`主题色`,`配色`,`品牌色`],homePath:[`默认首页`,`登录跳转`,`落地页`],sidebarWidth:[`侧栏宽度`],loadingStyle:[`Loading`],reduceMotion:[`减少动画`,`关闭动画`]}})))()}function Ee({value:e,onChange:t,options:n,allowCustom:r=!0,customTitle:i=`自定义颜色`,allowClear:a=!1,clearTitle:o=`无颜色`}){let s=e.startsWith(`#`)&&!n.some(t=>t.key===e);return/* @__PURE__ */ j(`div`,{className:`swatch-color-picker`,children:[a&&/* @__PURE__ */ A(f,{content:o,position:`top`,children:/* @__PURE__ */ A(`button`,{type:`button`,"aria-label":o,"aria-pressed":e===``,className:`swatch-color-swatch swatch-color-swatch--clear${e===``?` swatch-color-swatch--active`:``}`,onClick:()=>t(``),children:e===``&&/* @__PURE__ */ A(`span`,{className:`swatch-color-swatch__check`,children:/* @__PURE__ */ A(b,{size:14,strokeWidth:2.5})})})}),n.map(n=>{let r=e===n.key;return/* @__PURE__ */ A(f,{content:n.label,position:`top`,children:/* @__PURE__ */ A(`button`,{type:`button`,"aria-label":n.label,"aria-pressed":r,className:`swatch-color-swatch${r?` swatch-color-swatch--active`:``}`,style:{backgroundColor:n.color,color:n.color},onClick:()=>t(n.key),title:n.label,children:r&&/* @__PURE__ */ A(`span`,{className:`swatch-color-swatch__check`,children:/* @__PURE__ */ A(b,{size:14,strokeWidth:2.5})})})},n.key)}),r&&/* @__PURE__ */ A(d,{alpha:!1,usePopover:!0,value:s?d.colorStringToValue(e):void 0,onChange:e=>t(e.hex),popoverProps:{position:`top`,zIndex:10010},children:/* @__PURE__ */ A(`button`,{type:`button`,"aria-label":i,"aria-pressed":s,className:`swatch-color-swatch swatch-color-swatch--custom${s?` swatch-color-swatch--active`:``}`,style:s?{backgroundColor:e,color:e}:{},title:i,children:s?/* @__PURE__ */ A(`span`,{className:`swatch-color-swatch__check`,children:/* @__PURE__ */ A(b,{size:14,strokeWidth:2.5})}):/* @__PURE__ */ A(`span`,{className:`swatch-color-swatch__icon`,children:/* @__PURE__ */ A(q,{size:14})})})})]})}function De(){return(De=e((()=>{a(),S(),J()})))()}function Oe({prefSection:e,matchesPref:t,preferences:n,setPreferences:r,navLayout:a}){return/* @__PURE__ */ j(w,{title:e(`布局`),children:[t([`导航布局`,`布局`,`左侧菜单`,`顶部菜单`,`混合菜单`,`双列菜单`])&&/* @__PURE__ */ A(T,{path:`navLayout`,children:/* @__PURE__ */ j(`div`,{children:[/* @__PURE__ */ A(`div`,{style:{marginBottom:12,fontSize:13,fontWeight:500,color:`var(--arc-antd-color-text-0)`},children:`导航布局`}),/* @__PURE__ */ A(`div`,{className:`arc-preferences__layout-options`,children:[{value:`vertical`,label:`左侧菜单`},{value:`horizontal`,label:`顶部菜单`},{value:`mixed`,label:`混合菜单`},{value:`double`,label:`双列菜单`}].map(({value:e,label:t})=>/* @__PURE__ */ j(`button`,{type:`button`,className:`layout-picker__option${a===e?` layout-picker__option--active`:``}`,"aria-pressed":a===e,onClick:()=>{a!==e&&r({navLayout:e})},children:[/* @__PURE__ */ j(`div`,{className:`layout-picker__preview layout-picker__preview--${e}`,"aria-hidden":`true`,children:[/* @__PURE__ */ A(`i`,{className:`layout-preview__rail`}),/* @__PURE__ */ A(`i`,{className:`layout-preview__menu`}),/* @__PURE__ */ A(`i`,{className:`layout-preview__header`}),/* @__PURE__ */ j(`i`,{className:`layout-preview__content`,children:[/* @__PURE__ */ A(`i`,{}),/* @__PURE__ */ A(`i`,{}),/* @__PURE__ */ A(`i`,{})]})]}),/* @__PURE__ */ j(`span`,{className:`layout-picker__label`,children:[t,a===e&&/* @__PURE__ */ A(b,{size:14})]})]},e))})]})}),a===`double`&&t([`双列`,`双列菜单`,`首列`,`双列首列`,`图标`,`图标文字`])&&/* @__PURE__ */ A(T,{path:`doubleRailStyle`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`双列首列形式`,/* @__PURE__ */ A(f,{content:`仅图标:与左侧菜单收起时同宽,名称靠悬浮提示,可容纳更多一级模块;图标 + 文字:名称直接可读,但条目更高,矮窗口需要滚动`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ j(i,{type:`button`,value:n.doubleRailStyle??`icon`,onChange:e=>r({doubleRailStyle:e.target.value}),children:[/* @__PURE__ */ A(c,{value:`icon`,children:`仅图标`}),/* @__PURE__ */ A(c,{value:`icon-text`,children:`图标 + 文字`})]})]})}),t([`内容宽度`,`固定宽度`,`居中`,`内容区`])&&/* @__PURE__ */ A(T,{path:`contentWidth`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`固定内容宽度`,/* @__PURE__ */ A(f,{content:`开启后内容区最大宽度为 1440px 并居中,适合宽屏显示器`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:(n.contentWidth??`fluid`)===`fixed`,onChange:e=>r({contentWidth:e?`fixed`:`fluid`})})]})}),t([`Logo`,`Logo图标`,`图标`,`显示Logo`])&&/* @__PURE__ */ A(T,{path:`showLogo`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`显示 Logo 图标`}),/* @__PURE__ */ A(l,{checked:n.showLogo??!0,onChange:e=>r({showLogo:e})})]})})]})}function Q({label:e,hint:t,value:n,onChange:r}){return/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[e,/* @__PURE__ */ A(f,{content:t,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(i,{type:`button`,value:n,onChange:e=>r(e.target.value),children:de.map(e=>/* @__PURE__ */ A(c,{value:e.value,children:e.label},e.value))})]})}function ke({path:e,label:t,value:n,onCommit:r}){let[i,a]=O(n),[o,s]=O(n);return o!==n&&(s(n),a(n)),/* @__PURE__ */ A(T,{path:e,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:t}),/* @__PURE__ */ A(h,{value:i,placeholder:`18:00`,"aria-label":t,style:{width:96},onChange:e=>{a(e),me(e)&&r(e)}})]})})}function Ae({prefSection:e,matchesPref:n,preferences:r,setPreferences:a,mode:o,handleThemeModeChange:u,isDark:d,themeColor:m,setThemeColor:h}){let g=ce(null),_=ce(null),v=ae()(`loadingStyle`)&&n([`加载动画`,`加载效果`,`Loading`,...M.map(e=>e.label)]),[b,ne]=O({canPrev:!1,canNext:!1}),x=E(()=>{let e=g.current;e&&ne({canPrev:e.scrollLeft>1,canNext:e.scrollLeft+e.clientWidth<e.scrollWidth-1})},[]);D(()=>{if(!v)return;let e=g.current;if(!e)return;x();let t=new ResizeObserver(x);return t.observe(e),()=>t.disconnect()},[v,x]),D(()=>{let e=g.current,t=_.current;if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect();r.left<n.left?e.scrollLeft-=n.left-r.left:r.right>n.right&&(e.scrollLeft+=r.right-n.right)},[v,r.loadingStyle]);let S=E(e=>{let t=g.current;t&&t.scrollBy({left:e*t.clientWidth,behavior:`smooth`})},[]);return/* @__PURE__ */ j(w,{title:e(`外观`),children:[n([`颜色模式`,`深色`,`浅色`,`系统`,`主题模式`])&&/* @__PURE__ */ A(T,{path:`colorMode`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`颜色模式`}),/* @__PURE__ */ j(i,{type:`button`,value:o,onChange:e=>{let t=e.target.value;u(t)},children:[/* @__PURE__ */ A(c,{value:`light`,children:`浅色`}),/* @__PURE__ */ A(c,{value:`dark`,children:`深色`}),/* @__PURE__ */ A(c,{value:`system`,children:`系统`})]})]})}),n([`主题颜色`,`主题色`,`颜色`,`品牌色`,`自定义颜色`])&&/* @__PURE__ */ A(T,{path:`themeColor`,children:/* @__PURE__ */ j(`div`,{children:[/* @__PURE__ */ A(`div`,{style:{marginBottom:12,fontSize:13,fontWeight:500,color:`var(--arc-antd-color-text-0)`},children:`主题颜色`}),/* @__PURE__ */ A(Ee,{value:m,onChange:e=>{e!==m&&h(e)},options:ge.map(e=>({key:e.key,label:e.name,color:d?e.dark.primary:e.light.primary}))})]})}),n([`定时深色`,`夜间深色`,`自动深色`,`深色定时`,`深色时段`])&&/* @__PURE__ */ A(T,{path:`scheduledDarkMode`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`定时深色`,/* @__PURE__ */ A(f,{content:`时段内无条件使用深色;时段外跟随颜色模式`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ j(i,{type:`button`,value:r.scheduledDarkMode??`off`,onChange:e=>a({scheduledDarkMode:e.target.value}),children:[/* @__PURE__ */ A(c,{value:`off`,children:`关闭`}),/* @__PURE__ */ A(c,{value:`custom`,children:`自定义时段`})]})]})}),n([`深色开始时间`,`开始时间`,`定时深色`,`夜间开始`])&&/* @__PURE__ */ A(ke,{path:`scheduledDarkStart`,label:`深色开始时间`,value:r.scheduledDarkStart??`18:00`,onCommit:e=>a({scheduledDarkStart:e})}),n([`深色结束时间`,`结束时间`,`定时深色`,`夜间结束`])&&/* @__PURE__ */ A(ke,{path:`scheduledDarkEnd`,label:`深色结束时间`,value:r.scheduledDarkEnd??`06:00`,onCommit:e=>a({scheduledDarkEnd:e})}),!d&&n([`顶部栏深色`,`深色`,`深色模式`,`顶部栏`,`顶部导航`])&&/* @__PURE__ */ A(T,{path:`headerDarkMode`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`顶部栏深色模式`}),/* @__PURE__ */ A(l,{checked:r.headerDarkMode??!1,onChange:e=>a({headerDarkMode:e})})]})}),!d&&n([`侧边栏深色`,`深色`,`深色模式`,`侧边栏`])&&/* @__PURE__ */ A(T,{path:`sidebarDarkMode`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`侧边栏深色模式`}),/* @__PURE__ */ A(l,{checked:r.sidebarDarkMode??!1,onChange:e=>a({sidebarDarkMode:e})})]})}),(d||r.sidebarDarkMode)&&n([`侧边栏底色`,`底色`,`色调`,`深浅`,`侧边栏`])&&/* @__PURE__ */ A(T,{path:`darkSidebarTone`,children:/* @__PURE__ */ A(Q,{label:`侧边栏底色`,hint:`标准与卡片、表格同色;更深会比标准再暗一档,让侧边栏从内容中分离出来`,value:r.darkSidebarTone??`bg-1`,onChange:e=>a({darkSidebarTone:e})})}),(d||r.headerDarkMode)&&n([`顶部底色`,`底色`,`色调`,`深浅`,`顶部`,`顶栏`,`标签栏`,`面包屑`])&&/* @__PURE__ */ A(T,{path:`darkHeaderTone`,children:/* @__PURE__ */ A(Q,{label:`顶部底色`,hint:`作用于顶栏、头部、面包屑栏与标签栏;更深会让整条顶部区域比内容更暗`,value:r.darkHeaderTone??`bg-1`,onChange:e=>a({darkHeaderTone:e})})}),d&&n([`主区域底色`,`底色`,`色调`,`深浅`,`主区域`,`内容区`,`画布`])&&/* @__PURE__ */ A(T,{path:`darkContentTone`,children:/* @__PURE__ */ A(Q,{label:`主区域底色`,hint:`作用于内容画布;更深时卡片与表格会从画布中浮起,形成明度层次`,value:r.darkContentTone??`bg-1`,onChange:e=>a({darkContentTone:e})})}),n([`圆角`,`圆角大小`,`直角`,`边框圆角`,`radius`,`外观`])&&/* @__PURE__ */ A(T,{path:`borderRadius`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`圆角大小`,/* @__PURE__ */ A(f,{content:`调整按钮、卡片、弹窗等组件的圆角风格:直角更硬朗,大圆角更柔和`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ j(i,{type:`button`,value:r.borderRadius??`medium`,onChange:e=>a({borderRadius:e.target.value}),children:[/* @__PURE__ */ A(c,{value:`none`,children:`直角`}),/* @__PURE__ */ A(c,{value:`small`,children:`小`}),/* @__PURE__ */ A(c,{value:`medium`,children:`默认`}),/* @__PURE__ */ A(c,{value:`large`,children:`大`})]})]})}),n([`界面缩放`,`缩放`,`字号`,`字体大小`,`放大`,`缩小`,`外观`,`无障碍`])&&/* @__PURE__ */ A(T,{path:`uiScale`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,gap:12},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4,flexShrink:0},children:[`界面缩放`,/* @__PURE__ */ A(f,{content:`整体放大或缩小界面(含文字、控件与弹层),适合高分屏或需要更大字号的场景`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(s,{value:r.uiScale??100,optionList:pe.map(e=>({value:e.value,label:e.label})),onChange:e=>a({uiScale:e}),style:{width:100}})]})}),n([`字体`,`界面字体`,`Inter`,`思源`,`等宽`,`外观`])&&/* @__PURE__ */ A(T,{path:`fontFamily`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,gap:12},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4,flexShrink:0},children:[`界面字体`,/* @__PURE__ */ A(f,{content:`只使用系统已安装的字体,未安装时按预设回退到系统默认字体`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(s,{value:r.fontFamily??`system`,optionList:fe.map(e=>({value:e.value,label:e.label})),onChange:e=>a({fontFamily:e}),style:{width:140}})]})}),n([`标签栏尺寸`,`Tabs尺寸`,`Tabs 大小`,`标签控件尺寸`,`small`,`medium`,`large`,`外观`])&&/* @__PURE__ */ A(T,{path:`tabsSize`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`标签栏尺寸`,/* @__PURE__ */ A(f,{content:`控制页面内部标签栏的尺寸,与多标签页开关无关`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ j(i,{type:`button`,value:r.tabsSize??`small`,onChange:e=>a({tabsSize:e.target.value}),children:[/* @__PURE__ */ A(c,{value:`small`,children:`小`}),/* @__PURE__ */ A(c,{value:`medium`,children:`中`}),/* @__PURE__ */ A(c,{value:`large`,children:`大`})]})]})}),n([`标签栏样式`,`Tabs样式`,`Tabs 类型`,`line`,`button`,`card`,`slash`,`外观`])&&/* @__PURE__ */ A(T,{path:`tabsType`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`标签栏样式`,/* @__PURE__ */ A(f,{content:`控制页面内部标签栏的显示样式`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(s,{value:r.tabsType??`line`,optionList:[{value:`line`,label:`线条`},{value:`button`,label:`按钮`},{value:`card`,label:`卡片`},{value:`slash`,label:`斜线`}],onChange:e=>a({tabsType:e}),style:{width:120}})]})}),v&&/* @__PURE__ */ A(T,{path:`loadingStyle`,children:/* @__PURE__ */ j(`div`,{children:[/* @__PURE__ */ j(`div`,{className:`loading-style-picker__heading`,children:[/* @__PURE__ */ A(`span`,{children:`加载动画`}),/* @__PURE__ */ A(f,{content:`用于首次进入系统、菜单首载和页面懒加载`,position:`right`,children:/* @__PURE__ */ A(y,{size:13})})]}),/* @__PURE__ */ j(`div`,{className:`loading-style-picker__nav`,children:[/* @__PURE__ */ A(p,{theme:`borderless`,size:`small`,className:`loading-style-picker__nav-button`,icon:/* @__PURE__ */ A(ee,{size:14}),"aria-label":`上一个加载动画`,title:`上一个`,disabled:!b.canPrev,onClick:()=>S(-1)}),/* @__PURE__ */ A(C,{className:`loading-style-picker`,scrollRef:g,horizontal:!0,vertical:!1,onScroll:x,"aria-label":`加载动画预览`,children:M.map(e=>{let n=r.loadingStyle===e.value;return/* @__PURE__ */ j(`button`,{type:`button`,ref:n?_:void 0,className:`loading-style-picker__option${n?` loading-style-picker__option--active`:``}`,"aria-pressed":n,title:e.isDefault?`${e.label}(默认)`:e.label,onClick:()=>{n||a({loadingStyle:e.value})},children:[/* @__PURE__ */ A(`span`,{className:`loading-style-picker__preview`,children:/* @__PURE__ */ A(t,{variant:e.value})}),/* @__PURE__ */ A(`span`,{className:`loading-style-picker__label`,children:e.label})]},e.value)})}),/* @__PURE__ */ A(p,{theme:`borderless`,size:`small`,className:`loading-style-picker__nav-button`,icon:/* @__PURE__ */ A(te,{size:14}),"aria-label":`下一个加载动画`,title:`下一个`,disabled:!b.canNext,onClick:()=>S(1)})]})]})}),n([`灰色`,`灰色模式`,`无障碍`,`公祭日`,`去色`])&&/* @__PURE__ */ A(T,{path:`grayscale`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`灰色模式`,/* @__PURE__ */ A(f,{content:`适用于国家公祭日等场景,全局去除色彩`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:r.grayscale??!1,onChange:e=>a({grayscale:e,...e?{colorBlind:!1}:{}})})]})}),n([`色弱`,`色弱模式`,`无障碍`,`对比度`,`色觉`])&&/* @__PURE__ */ A(T,{path:`colorBlind`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`色弱模式`,/* @__PURE__ */ A(f,{content:`提高界面对比度,辅助色觉障碍用户`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:r.colorBlind??!1,onChange:e=>a({colorBlind:e,...e?{grayscale:!1}:{}})})]})}),n([`动效`,`动画`,`减弱动效`,`性能`,`晕动`,`过渡`])&&/* @__PURE__ */ A(T,{path:`reduceMotion`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`减弱动效`,/* @__PURE__ */ A(f,{content:`关闭路由切换、标签页、主题切换扩散等装饰性动画与过渡;加载指示不受影响。适合低配设备或对动效敏感的用户`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:r.reduceMotion??!1,onChange:e=>a({reduceMotion:e})})]})})]})}function je({prefSection:e,matchesPref:t,preferences:n,setPreferences:r,prefsSearch:a}){return/* @__PURE__ */ j(w,{title:e(`导航与工具栏`),children:[t([`动态标题`,`浏览器标题`,`页面标题`,`标题`])&&/* @__PURE__ */ A(T,{path:`dynamicTitle`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`动态浏览器标题`,/* @__PURE__ */ A(f,{content:`开启后浏览器标签页标题会随当前页面变化,如「用户管理 - ArcBase」;关闭后固定显示应用名称`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.dynamicTitle??!0,onChange:e=>r({dynamicTitle:e})})]})}),t([`面包屑`,`面包屑导航`,`导航栏`,`路径导航`])&&/* @__PURE__ */ A(T,{path:`showBreadcrumb`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`显示面包屑导航`,/* @__PURE__ */ A(f,{content:`在页面顶部显示路径导航(如:首页 / 系统管理 / 用户管理),帮助定位当前位置`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.showBreadcrumb,onChange:e=>r({showBreadcrumb:e})})]})}),(n.showBreadcrumb||!!a.trim())&&t([`面包屑图标`,`图标`,`面包屑`])&&/* @__PURE__ */ A(T,{path:`breadcrumbIcon`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`面包屑显示图标`}),/* @__PURE__ */ A(l,{checked:n.breadcrumbIcon??!1,onChange:e=>r({breadcrumbIcon:e})})]})}),(n.showBreadcrumb||!!a.trim())&&t([`面包屑首页`,`首页`,`面包屑`])&&/* @__PURE__ */ A(T,{path:`breadcrumbShowHome`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`面包屑从首页开始`,/* @__PURE__ */ A(f,{content:`开启后面包屑导航会以「首页」作为第一项,关闭后直接从当前页面的父级路径开始`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.breadcrumbShowHome??!0,onChange:e=>r({breadcrumbShowHome:e})})]})}),(n.showBreadcrumb||!!a.trim())&&t([`面包屑可点击`,`点击`,`面包屑跳转`,`面包屑`])&&/* @__PURE__ */ A(T,{path:`breadcrumbClickable`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`面包屑可点击`,/* @__PURE__ */ A(f,{content:`关闭后面包屑仅展示路径文字,不可点击跳转`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.breadcrumbClickable??!0,onChange:e=>r({breadcrumbClickable:e})})]})}),(n.showBreadcrumb||!!a.trim())&&t([`面包屑子菜单`,`子菜单`,`面包屑悬浮`,`面包屑展开`])&&/* @__PURE__ */ A(T,{path:`breadcrumbSubMenu`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`面包屑子菜单`,/* @__PURE__ */ A(f,{content:`悬停目录层级时弹出子菜单快速导航,支持多级展开`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.breadcrumbSubMenu??!1,onChange:e=>r({breadcrumbSubMenu:e})})]})}),t([`菜单搜索`,`搜索框`,`搜索`,`搜索菜单`])&&/* @__PURE__ */ A(T,{path:`showMenuSearch`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`显示菜单搜索框`}),/* @__PURE__ */ A(l,{checked:n.showMenuSearch??!0,onChange:e=>r({showMenuSearch:e})})]})}),t([`收藏`,`收藏菜单`,`收藏按钮`,`显示收藏`,`收藏入口`,`快捷收藏`])&&/* @__PURE__ */ A(T,{path:`showFavorites`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`显示收藏入口`}),/* @__PURE__ */ A(l,{checked:n.showFavorites??!1,onChange:e=>r({showFavorites:e})})]})}),t([`全屏`,`全屏按钮`,`显示全屏`])&&/* @__PURE__ */ A(T,{path:`showFullscreen`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`显示全屏按钮`}),/* @__PURE__ */ A(l,{checked:n.showFullscreen??!0,onChange:e=>r({showFullscreen:e})})]})}),t([`回到顶部`,`BackTop`,`返回顶部`,`回到顶`,`顶部按钮`])&&/* @__PURE__ */ A(T,{path:`showBackTop`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`显示回到顶部按钮`,/* @__PURE__ */ A(f,{content:`内容区域滚动超过 400px 后,右下角浮现回顶按钮`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.showBackTop??!0,onChange:e=>r({showBackTop:e})})]})}),t([`顶栏时钟`,`时钟`,`时钟显示`,`12小时`,`24小时`])&&/* @__PURE__ */ A(T,{path:`topbarClock`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`顶栏时钟`}),/* @__PURE__ */ j(i,{type:`button`,value:n.topbarClock??`off`,onChange:e=>r({topbarClock:e.target.value}),children:[/* @__PURE__ */ A(c,{value:`off`,children:`关闭`}),/* @__PURE__ */ A(c,{value:`12h`,children:`12小时制`}),/* @__PURE__ */ A(c,{value:`24h`,children:`24小时制`})]})]})}),t([`时钟显示日期`,`日期`,`时钟日期`,`星期`])&&/* @__PURE__ */ A(T,{path:`topbarClockShowDate`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`时钟显示日期`}),/* @__PURE__ */ A(l,{checked:n.topbarClockShowDate??!0,onChange:e=>r({topbarClockShowDate:e})})]})})]})}function Me({prefSection:e,matchesPref:t,preferences:n,setPreferences:a,navLayout:o}){return/* @__PURE__ */ j(w,{title:e(`侧边栏`),children:[t([`侧边栏宽度`,`侧边栏`,`菜单宽度`,`展开宽度`])&&o!==`horizontal`&&/* @__PURE__ */ A(T,{path:`sidebarWidth`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,gap:12},children:[/* @__PURE__ */ A(`span`,{style:{flexShrink:0},children:`侧边栏宽度`}),/* @__PURE__ */ A(r,{style:{width:110},size:`small`,min:160,max:320,step:4,suffix:`px`,value:n.sidebarWidth??216,onChange:e=>a({sidebarWidth:Number(e)||216})})]})}),t([`箭头`,`展开箭头`,`箭头位置`,`展开收起`,`子菜单箭头`,`侧边栏`])&&/* @__PURE__ */ A(T,{path:`sidebarToggleIconPosition`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`子菜单箭头位置`,/* @__PURE__ */ A(f,{content:`侧边栏可展开子菜单的展开/收起箭头显示位置:默认在菜单项右端,可改为显示在左侧`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ j(i,{type:`button`,value:n.sidebarToggleIconPosition??`right`,onChange:e=>a({sidebarToggleIconPosition:e.target.value}),children:[/* @__PURE__ */ A(c,{value:`left`,children:`左侧`}),/* @__PURE__ */ A(c,{value:`right`,children:`右侧`})]})]})}),t([`侧边栏`,`分组标题`,`滚动固定`,`侧边栏分组`])&&/* @__PURE__ */ A(T,{path:`sidebarStickyScroll`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`侧边栏分组标题滚动固定`,/* @__PURE__ */ A(f,{content:`侧边栏菜单滚动时,分组标题吸附固定在顶部,便于识别当前菜单所属分组`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.sidebarStickyScroll??!0,onChange:e=>a({sidebarStickyScroll:e})})]})}),t([`侧边栏`,`手风琴`,`排他展开`,`侧栏排他`])&&/* @__PURE__ */ A(T,{path:`sidebarAccordion`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`侧栏排他展开`,/* @__PURE__ */ A(f,{content:`开启后侧边栏同级菜单同时只允许展开一项,点击其他分组时自动收起之前展开的分组`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.sidebarAccordion??!1,onChange:e=>a({sidebarAccordion:e})})]})}),t([`悬浮展开`,`侧边栏悬浮`,`侧边栏`,`hover`])&&/* @__PURE__ */ A(T,{path:`sidebarHoverTrigger`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`悬浮展开侧边栏`,/* @__PURE__ */ A(f,{content:`开启后侧边栏收起时,鼠标悬浮即可临时展开,移开后自动收起`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.sidebarHoverTrigger??!1,onChange:e=>a({sidebarHoverTrigger:e})})]})}),t([`菜单滚动`,`自动定位`,`菜单`,`滚动定位`])&&/* @__PURE__ */ A(T,{path:`scrollMenuIntoView`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`菜单自动滚动定位`,/* @__PURE__ */ A(f,{content:`开启后切换菜单时,侧边栏自动平滑滚动使激活项居中可见`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.scrollMenuIntoView??!0,onChange:e=>a({scrollMenuIntoView:e})})]})})]})}function Ne({prefSection:e,matchesPref:t,preferences:n,setPreferences:r,homePathOptions:a,autoLockMinutes:o,setAutoLockMinutes:u,hasPassword:d,clearLockPassword:m,openLockPasswordModal:h}){return/* @__PURE__ */ j(w,{title:e(`通用`),children:[t([`默认首页`,`首页`,`登录跳转`,`落地页`,`默认页面`,`登录页面`])&&/* @__PURE__ */ A(T,{path:`homePath`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,gap:12},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4,flexShrink:0},children:[`登录默认页面`,/* @__PURE__ */ A(f,{content:`登录成功后进入的页面;不影响日常点击「首页」菜单的行为`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(s,{filter:!0,style:{width:170},value:n.homePath??`/`,onChange:e=>{let t=ye.safeParse({homePath:e||`/`});t.success&&r(t.data)},optionList:a})]})}),t([`时间显示`,`相对时间`,`绝对时间`,`分钟前`,`时间格式`,`时间戳`])&&/* @__PURE__ */ A(T,{path:`timeDisplay`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`时间显示方式`,/* @__PURE__ */ A(f,{content:`列表、消息与时间线里的时间:绝对时间显示完整日期时刻;相对时间显示「3 分钟前」,悬停查看精确时刻。详情页字段始终为绝对时间`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ j(i,{type:`button`,value:n.timeDisplay??`absolute`,onChange:e=>r({timeDisplay:e.target.value}),children:[/* @__PURE__ */ A(c,{value:`absolute`,children:`绝对`}),/* @__PURE__ */ A(c,{value:`relative`,children:`相对`})]})]})}),t([`一周起始日`,`周一`,`周日`,`星期`,`日历`,`日期选择器`,`起始日`])&&/* @__PURE__ */ A(T,{path:`weekStart`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`一周起始日`,/* @__PURE__ */ A(f,{content:`日期选择器与日历面板每周从哪一天开始排列`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ j(i,{type:`button`,value:n.weekStart??`monday`,onChange:e=>r({weekStart:e.target.value}),children:[/* @__PURE__ */ A(c,{value:`monday`,children:`周一`}),/* @__PURE__ */ A(c,{value:`sunday`,children:`周日`})]})]})}),t([`自动刷新`,`聚焦`,`切回`,`窗口`,`页签`,`重新获取`,`过期数据`,`refetch`])&&/* @__PURE__ */ A(T,{path:`refetchOnFocus`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`切回窗口时自动刷新数据`,/* @__PURE__ */ A(f,{content:`从其他窗口或页签切回时,自动重新获取已过期的列表与详情数据;网络较差时可关闭`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.refetchOnFocus??!1,onChange:e=>r({refetchOnFocus:e})})]})}),t([`进度条`,`加载进度`,`页面加载`,`顶部进度`,`NProgress`])&&/* @__PURE__ */ A(T,{path:`showProgressBar`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`页面加载进度条`,/* @__PURE__ */ A(f,{content:`页面切换时在内容区顶部显示加载进度条`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.showProgressBar??!0,onChange:e=>r({showProgressBar:e})})]})}),t([`快捷键`,`键盘`,`热键`,`Alt`,`Ctrl`,`组合键`])&&/* @__PURE__ */ A(T,{path:`enableShortcuts`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`启用全局快捷键`,/* @__PURE__ */ A(f,{content:`Alt+L 锁屏、Alt+S 收起/展开侧边栏、Alt+C 内容全屏、Ctrl+K 搜索菜单;关闭后这些组合键不再生效`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.enableShortcuts??!0,onChange:e=>r({enableShortcuts:e})})]})}),t([`地址栏`,`URL`,`深链`,`页面状态`,`查询参数`,`分享`,`书签`,`标签参数`,`tab参数`,`选中项`])&&/* @__PURE__ */ A(T,{path:`syncPageStateToUrl`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`页面状态同步到地址栏`,/* @__PURE__ */ A(f,{content:`页面内的 Tab 与分栏选中项以查询参数写入地址栏(如 ?tab=),刷新、收藏或分享链接可直达当前视图;关闭时地址栏保持干净,外部带参链接进入仍会生效一次`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.syncPageStateToUrl??!1,onChange:e=>r({syncPageStateToUrl:e})})]})}),t([`退出确认`,`退出登录`,`二次确认`,`注销`,`登出`])&&/* @__PURE__ */ A(T,{path:`confirmLogout`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`退出登录二次确认`,/* @__PURE__ */ A(f,{content:`关闭后点击「退出登录」将直接退出,不再弹出确认框`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.confirmLogout??!0,onChange:e=>r({confirmLogout:e})})]})}),t([`弹窗`,`模态框`,`遮罩`,`蒙层`,`点击关闭`,`maskClosable`,`误触`])&&/* @__PURE__ */ A(T,{path:`modalClickMaskToClose`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`弹窗点击遮罩关闭`,/* @__PURE__ */ A(f,{content:`开启后,点击弹窗外的遮罩区域可直接关闭弹窗(按 Esc 关闭不受影响);关闭时需点击右上角或底部按钮,可防止误触丢失表单内容`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.modalClickMaskToClose??!1,onChange:e=>r({modalClickMaskToClose:e})})]})}),t([`文件视图`,`文件列表`,`文件管理`,`列表`,`网格`,`文件`])&&/* @__PURE__ */ A(T,{path:`filesViewMode`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`文件列表默认视图`}),/* @__PURE__ */ j(i,{type:`button`,value:n.filesViewMode??`list`,onChange:e=>r({filesViewMode:e.target.value}),children:[/* @__PURE__ */ A(c,{value:`list`,children:`列表`}),/* @__PURE__ */ A(c,{value:`grid`,children:`网格`})]})]})}),t([`锁屏`,`屏幕锁`,`密码`,`锁定`])&&/* @__PURE__ */ A(k,{children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`开启屏幕锁`,/* @__PURE__ */ A(f,{content:`开启后可通过 Alt+L 快捷键或用户菜单锁定屏幕,解锁需输入密码`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:d(),onChange:e=>{e?h(`set`):m()}})]})}),t([`锁屏`,`密码`,`锁屏密码`])&&/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`锁屏密码`}),/* @__PURE__ */ A(p,{size:`small`,theme:`light`,onClick:()=>{h(d()?`change`:`set`)},children:d()?`修改密码`:`设置密码`})]}),d()&&t([`自动锁屏`,`锁屏`,`无操作`,`空闲`,`闲置`])&&/* @__PURE__ */ A(k,{children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`无操作自动锁屏`,/* @__PURE__ */ A(f,{content:`超过设定时长没有任何鼠标/键盘操作时自动锁定屏幕`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(s,{style:{width:110},value:o,onChange:e=>{(e===0||e===5||e===10||e===30)&&u(e)},optionList:[{value:0,label:`关闭`},{value:5,label:`5 分钟`},{value:10,label:`10 分钟`},{value:30,label:`30 分钟`}]})]})})]})}function Pe({prefSection:e,matchesPref:t,preferences:n,setPreferences:r}){return/* @__PURE__ */ j(w,{title:e(`表格`),children:[t([`表格`,`边框`,`斦马纹`,`尺寸`,`分页`,`列设置`,`显示表格`,`启用斦马纹`])&&/* @__PURE__ */ j(k,{children:[/* @__PURE__ */ A(T,{path:`tableBordered`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`显示表格边框`}),/* @__PURE__ */ A(l,{checked:n.tableBordered??!0,onChange:e=>r({tableBordered:e})})]})}),/* @__PURE__ */ A(T,{path:`tableStriped`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`启用斑马纹`}),/* @__PURE__ */ A(l,{checked:n.tableStriped??!1,onChange:e=>r({tableStriped:e})})]})}),/* @__PURE__ */ A(T,{path:`tableSize`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`表格尺寸`}),/* @__PURE__ */ j(i,{type:`button`,value:n.tableSize??`default`,onChange:e=>r({tableSize:e.target.value}),children:[/* @__PURE__ */ A(c,{value:`small`,children:`紧凑`}),/* @__PURE__ */ A(c,{value:`middle`,children:`适中`}),/* @__PURE__ */ A(c,{value:`default`,children:`宽松`})]})]})}),/* @__PURE__ */ A(T,{path:`tablePageSize`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`默认分页大小`}),/* @__PURE__ */ A(s,{value:n.tablePageSize??10,onChange:e=>r({tablePageSize:e}),style:{width:100},optionList:[10,20,50,100].map(e=>({value:e,label:`${e} 条`}))})]})}),/* @__PURE__ */ A(T,{path:`showTableColumnSettings`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`显示表格列设置按钮`}),/* @__PURE__ */ A(l,{checked:n.showTableColumnSettings??!0,onChange:e=>r({showTableColumnSettings:e})})]})})]}),t([`筛选`,`筛选条件`,`记住`,`搜索条件`,`恢复`,`查询条件`,`表格`])&&/* @__PURE__ */ A(T,{path:`rememberListFilters`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`记住列表筛选条件`,/* @__PURE__ */ A(f,{content:`离开列表页再回来时恢复上次查询的筛选条件(分页回到第 1 页);关闭浏览器即清除`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.rememberListFilters??!1,onChange:e=>{e||be(),r({rememberListFilters:e})}})]})})]})}function Fe({prefSection:e,matchesPref:t,preferences:n,setPreferences:a,prefsSearch:u}){return/* @__PURE__ */ j(w,{title:e(`标签页`),children:[t([`多标签页`,`标签页`,`标签`,`启用标签`])&&/* @__PURE__ */ A(T,{path:`enableTabs`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`启用多标签页`}),/* @__PURE__ */ A(l,{checked:n.enableTabs,onChange:e=>a({enableTabs:e})})]})}),(n.enableTabs||!!u.trim())&&t([`保存标签`,`恢复标签`,`标签页`,`标签`])&&/* @__PURE__ */ A(T,{path:`keepTabs`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`保存标签页`,/* @__PURE__ */ A(f,{content:`刷新页面或重新登录后,自动恢复上次打开的标签页`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.keepTabs??!0,onChange:e=>a({keepTabs:e})})]})}),(n.enableTabs||!!u.trim())&&t([`页面缓存`,`keepalive`,`keep-alive`,`缓存`,`标签页`,`标签`])&&/* @__PURE__ */ A(T,{path:`enablePageCache`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`页面缓存`,/* @__PURE__ */ A(f,{content:`菜单管理中开启「页面缓存」的页面,切换标签页时保留状态(搜索条件、滚动位置等),关闭标签页时释放`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.enablePageCache??!0,onChange:e=>a({enablePageCache:e})})]})}),(n.enableTabs||!!u.trim())&&t([`标签图标`,`图标`,`标签页`,`标签`])&&/* @__PURE__ */ A(T,{path:`showTabIcon`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`标签页显示图标`}),/* @__PURE__ */ A(l,{checked:n.showTabIcon,onChange:e=>a({showTabIcon:e})})]})}),(n.enableTabs||!!u.trim())&&t([`紧凑标签`,`紧凑模式`,`页签密度`,`标签页`,`标签`])&&/* @__PURE__ */ A(T,{path:`compactTabs`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`紧凑标签页`,/* @__PURE__ */ A(f,{content:`减少标签栏的高度与页签间距,适合同时打开较多页面`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.compactTabs??!0,onChange:e=>a({compactTabs:e})})]})}),(n.enableTabs||!!u.trim())&&t([`标签切换器`,`切换器`,`chevron`,`标签页`,`标签`])&&/* @__PURE__ */ A(T,{path:`showTabSwitcher`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`显示标签切换器`}),/* @__PURE__ */ A(l,{checked:n.showTabSwitcher??!0,onChange:e=>a({showTabSwitcher:e})})]})}),(n.enableTabs||!!u.trim())&&t([`自动隐藏`,`隐藏标签`,`程序坞`,`dock`,`标签页`,`标签`])&&/* @__PURE__ */ A(T,{path:`autoHideTabs`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`自动隐藏标签栏`,/* @__PURE__ */ A(f,{content:`平时收起为一条细线,鼠标悬停或键盘聚焦时展开;触屏设备上保持常显`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ A(l,{checked:n.autoHideTabs??!1,onChange:e=>a({autoHideTabs:e})})]})}),(n.enableTabs||!!u.trim())&&t([`最大标签`,`标签数量`,`标签页`,`标签`])&&/* @__PURE__ */ A(T,{path:`tabsMaxCount`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`最大标签数`}),/* @__PURE__ */ A(r,{min:5,max:50,value:n.tabsMaxCount,onChange:e=>a({tabsMaxCount:e}),style:{width:100}})]})}),(n.enableTabs||!!u.trim())&&t([`超限策略`,`FIFO`,`LRU`,`关闭策略`,`标签页`,`标签`])&&/* @__PURE__ */ A(T,{path:`tabEvictPolicy`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`超限关闭策略`,/* @__PURE__ */ A(f,{content:`FIFO: 关闭最早打开的标签;LRU: 关闭最久未使用的标签`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ j(i,{type:`button`,value:n.tabEvictPolicy??`fifo`,onChange:e=>a({tabEvictPolicy:e.target.value}),children:[/* @__PURE__ */ A(c,{value:`fifo`,children:`FIFO`}),/* @__PURE__ */ A(c,{value:`lru`,children:`LRU`})]})]})}),(n.enableTabs||!!u.trim())&&t([`插入位置`,`新标签位置`,`标签插入`,`标签页`,`标签`])&&/* @__PURE__ */ A(T,{path:`openTabBehavior`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ j(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[`新标签插入位置`,/* @__PURE__ */ A(f,{content:`末尾:新标签始终排在最右侧;当前后方:新标签紧跟在当前标签之后插入`,position:`right`,children:/* @__PURE__ */ A(y,{size:13,style:{color:`var(--arc-antd-color-text-2)`,cursor:`help`}})})]}),/* @__PURE__ */ j(i,{type:`button`,value:n.openTabBehavior??`append`,onChange:e=>a({openTabBehavior:e.target.value}),children:[/* @__PURE__ */ A(c,{value:`append`,children:`末尾`}),/* @__PURE__ */ A(c,{value:`insert-next`,children:`当前后方`})]})]})}),(n.enableTabs||!!u.trim())&&t([`双击标签`,`双击`,`标签行为`,`标签页`,`标签`])&&/* @__PURE__ */ A(T,{path:`tabDoubleClickAction`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`双击标签行为`}),/* @__PURE__ */ j(i,{type:`button`,value:n.tabDoubleClickAction??`refresh`,onChange:e=>a({tabDoubleClickAction:e.target.value}),children:[/* @__PURE__ */ A(c,{value:`refresh`,children:`刷新`}),/* @__PURE__ */ A(c,{value:`close`,children:`关闭`}),/* @__PURE__ */ A(c,{value:`none`,children:`无`})]})]})}),(n.enableTabs||!!u.trim())&&t([`标签风格`,`风格`,`线条`,`胶囊`,`卡片`,`chrome`,`谷歌`,`极简`,`minimal`,`分段`,`segment`,`方块`,`block`,`短线`,`shortline`,`圆点`,`dot`,`顶线`,`topline`,`标签页`,`标签`])&&/* @__PURE__ */ A(T,{path:`tabStyle`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`标签页风格`}),/* @__PURE__ */ A(s,{value:n.tabStyle??`line`,optionList:[{value:`line`,label:`线条`},{value:`pill`,label:`胶囊`},{value:`card`,label:`卡片`},{value:`chrome`,label:`谷歌`},{value:`minimal`,label:`极简`},{value:`segment`,label:`分段`},{value:`block`,label:`方块`},{value:`shortline`,label:`短线`},{value:`dot`,label:`圆点`},{value:`topline`,label:`顶线`}],onChange:e=>a({tabStyle:e}),style:{width:120}})]})}),(n.enableTabs||!!u.trim())&&t([`标签动画`,`动画`,`淡入`,`滑入`,`缩放`,`标签页`,`标签`])&&/* @__PURE__ */ A(T,{path:`tabAnimation`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`标签页动画`}),/* @__PURE__ */ A(i,{type:`button`,value:n.tabAnimation??`none`,onChange:e=>a({tabAnimation:e.target.value}),children:[`none`,`fade`,`slide`,`scale`].map(e=>{let t=/* @__PURE__ */ A(c,{value:e,children:{none:`无`,fade:`淡入`,slide:`滑入`,scale:`缩放`}[e]},e);return e===`none`?t:/* @__PURE__ */ A(o,{trigger:`hover`,position:`bottom`,mouseEnterDelay:100,mouseLeaveDelay:100,content:/* @__PURE__ */ j(`div`,{className:`tab-anim-preview`,"data-anim":e,children:[/* @__PURE__ */ A(`span`,{className:`tab-anim-preview__pill`,children:`首页`}),/* @__PURE__ */ A(`span`,{className:`tab-anim-preview__pill tab-anim-preview__pill--active`,children:`用户管理`}),/* @__PURE__ */ A(`span`,{className:`tab-anim-preview__pill tab-anim-preview__demo`,children:`角色管理`})]}),children:t},e)})})]})}),t([`路由动画`,`切换动画`,`动画`,`淡入`,`上滑`,`左滑`])&&/* @__PURE__ */ A(T,{path:`routeAnimation`,children:/* @__PURE__ */ j(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[/* @__PURE__ */ A(`span`,{children:`路由切换动画`}),/* @__PURE__ */ A(i,{type:`button`,value:n.routeAnimation??`fade`,onChange:e=>a({routeAnimation:e.target.value}),children:[`none`,`fade`,`slide-up`,`slide-left`].map(e=>{let t=/* @__PURE__ */ A(c,{value:e,children:{none:`无`,fade:`淡入`,"slide-up":`上滑`,"slide-left":`左滑`}[e]},e);return e===`none`?t:/* @__PURE__ */ A(o,{trigger:`hover`,position:`bottom`,mouseEnterDelay:100,mouseLeaveDelay:100,content:/* @__PURE__ */ A(`div`,{className:`route-anim-preview`,"data-anim":e,children:/* @__PURE__ */ j(`div`,{className:`route-anim-preview__page`,children:[/* @__PURE__ */ A(`div`,{className:`route-anim-preview__title`}),/* @__PURE__ */ A(`div`,{className:`route-anim-preview__line`}),/* @__PURE__ */ A(`div`,{className:`route-anim-preview__line route-anim-preview__line--short`})]})}),children:t},e)})})]})})]})}function Ie(){return(Ie=e((()=>{a(),S(),g(),_(),v(),ie(),De(),re(),n(),oe()})))()}function Le(e){let{canEditPreference:t,hasManagedPreferences:n}=he(),[r,i]=O(`layout`),a=!!e.prefsSearch.trim(),o=we(``,t,e.quickChatEnabled,e.hasPassword(),e.hasPassword()),s=we(e.prefsSearch,t,e.quickChatEnabled,e.hasPassword(),e.hasPassword()),c=o.find(e=>e.key===r)??o[0],l=a?s:c?[c]:[],u={prefSection:ze,matchesPref:t=>!e.prefsSearch.trim()||t.some(t=>N(t,e.prefsSearch.trim())),preferences:e.preferences,setPreferences:e.setPreferences},d={layout:/* @__PURE__ */ A(Oe,{...u,navLayout:e.navLayout}),appearance:/* @__PURE__ */ A(Ae,{...u,mode:e.mode,handleThemeModeChange:e.handleThemeModeChange,isDark:e.isDark,themeColor:e.themeColor,setThemeColor:e.setThemeColor}),navigation:/* @__PURE__ */ A(je,{...u,prefsSearch:e.prefsSearch,quickChatEnabled:e.quickChatEnabled}),sidebar:/* @__PURE__ */ A(Me,{...u,navLayout:e.navLayout}),general:/* @__PURE__ */ A(Ne,{...u,homePathOptions:e.homePathOptions,autoLockMinutes:e.autoLockMinutes,setAutoLockMinutes:e.setAutoLockMinutes,hasPassword:e.hasPassword,clearLockPassword:e.clearLockPassword,openLockPasswordModal:e.openLockPasswordModal}),table:/* @__PURE__ */ A(Pe,{...u}),tabs:/* @__PURE__ */ A(Fe,{...u,prefsSearch:e.prefsSearch})};return/* @__PURE__ */ A(se.Provider,{value:t=>Ce(_e[t],e.prefsSearch),children:/* @__PURE__ */ j(`div`,{className:`arc-preferences__browser${a?` arc-preferences__browser--search`:``}`,children:[!a&&o.length>0&&/* @__PURE__ */ A(C,{as:`nav`,className:`arc-preferences__categories`,"aria-label":`偏好分类`,children:o.map(e=>{let t=Re[e.key];return/* @__PURE__ */ j(`button`,{type:`button`,"aria-pressed":e.key===c?.key,onClick:()=>i(e.key),children:[/* @__PURE__ */ A(t,{size:16}),/* @__PURE__ */ A(`span`,{children:e.label})]},e.key)})}),/* @__PURE__ */ j(C,{className:`arc-preferences__content`,"aria-label":`偏好设置内容`,children:[a&&/* @__PURE__ */ j(`div`,{className:`arc-preferences__result-summary`,role:`status`,children:[`找到 `,s.reduce((e,t)=>e+t.fields.length+t.localCount,0),` 项可调整的设置`]}),l.map(e=>/* @__PURE__ */ j(`section`,{className:`arc-preferences__section`,"aria-label":`${e.label}设置`,children:[/* @__PURE__ */ j(`div`,{className:`arc-preferences__section-heading`,children:[/* @__PURE__ */ A(`h3`,{children:e.label}),/* @__PURE__ */ A(`p`,{children:e.description})]}),d[e.key]]},e.key)),l.length===0&&/* @__PURE__ */ A(ue,{image:ue.PRESENTED_IMAGE_SIMPLE,description:a?`没有找到匹配的设置`:`当前没有可调整的个人设置`,children:a&&/* @__PURE__ */ A(le,{onClick:e.onClearSearch,children:`清空搜索`})}),n&&/* @__PURE__ */ A(`p`,{className:`arc-preferences__policy-note`,children:`部分设置由系统统一管理,此处仅展示可调整的项目。`})]},a?`search`:c?.key)]})})}var Re,ze;function $(){return($=e((()=>{I(),z(),H(),x(),G(),J(),Se(),re(),ie(),Z(),Ie(),Re={layout:R,appearance:q,navigation:W,sidebar:ne,tabs:F,table:V,general:xe},ze=()=>null})))()}$();export{Le as default};
44
- //# sourceMappingURL=PreferencesSheetBody-D276rrp4.js.map
44
+ //# sourceMappingURL=PreferencesSheetBody-B0poTPEA.js.map