@fudanda/admin-antd 1.20261015.1-beta.1 → 2.20261024.1-beta.1

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 (176) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +58 -42
  3. package/THIRD_PARTY_NOTICES.md +55 -55
  4. package/dist/automation.js +3 -3
  5. package/dist/chunks/App-DNjXLysb.js +79 -0
  6. package/dist/chunks/{AppModal-B_xvSaeq.js → AppModal-DJzQA6FR.js} +1 -1
  7. package/dist/chunks/ArcBaseAdmin-BZrHGq2f.js +1 -0
  8. package/dist/chunks/ConfigurableTable-DzmZDd8F.js +55 -0
  9. package/dist/chunks/{DashboardPage-BTLufKzi.js → DashboardPage-BohGodSl.js} +1 -1
  10. package/dist/chunks/DataScopePanel-B2-x8Jcz.js +1 -0
  11. package/dist/chunks/{DateTimeText-rk9NeYgA.js → DateTimeText-CIt0Qy45.js} +1 -1
  12. package/dist/chunks/DepartmentsPage-DMWY__Y_.js +1 -0
  13. package/dist/chunks/DictTag-2-adKbYg.js +1 -0
  14. package/dist/chunks/DictsPage-DILDyHi-.js +15 -0
  15. package/dist/chunks/EditFormModal-DNHOZHxM.js +1 -0
  16. package/dist/chunks/EntityContextRuntime-DMklAv-k.js +1 -0
  17. package/dist/chunks/{EntityContextRuntime-BrAz-aCV.js → EntityContextRuntime-sslBZqYD.js} +1 -1
  18. package/dist/chunks/{EntityRelationButton-C8Cl8wyh.js → EntityRelationButton-DWn1rC2J.js} +2 -2
  19. package/dist/chunks/{ExportButton-D4IvZKHy.js → ExportButton-AzH4D0oW.js} +1 -1
  20. package/dist/chunks/FileNameCell-DPyi64Rv.js +1 -0
  21. package/dist/chunks/FileStorageConfigsPage-CzuOgeK0.js +15 -0
  22. package/dist/chunks/FileTypeIcon-DIih3XQG.js +1 -0
  23. package/dist/chunks/{FileViewerPreviewPanel-wbXzgqxc.js → FileViewerPreviewPanel-CMqVtGCr.js} +2 -2
  24. package/dist/chunks/FilesPage-BaEBCOCs.js +43 -0
  25. package/dist/chunks/IdentitySecurityPage-BO7nY8id.js +1 -0
  26. package/dist/chunks/{JsonPreviewPanel-D8YpZD1A.js → JsonPreviewPanel-Dhbza-Uu.js} +1 -1
  27. package/dist/chunks/LogStatsScaffold-CLycj3da.js +1 -0
  28. package/dist/chunks/LoginLogsPage-DTmHi8u0.js +1 -0
  29. package/dist/chunks/LoginLogsTable-DVmHnC6V.js +1 -0
  30. package/dist/chunks/{MasterDetailLayout-DDVFodpX.js → MasterDetailLayout-sjPWw8BI.js} +2 -2
  31. package/dist/chunks/{MemberAssignmentSheet-NWm5vThg.js → MemberAssignmentSheet-Czbt6_zv.js} +1 -1
  32. package/dist/chunks/MenuCommandPalette-BCOzf-Kq.js +8 -0
  33. package/dist/chunks/MenusPage-DN8DTGB1.js +1 -0
  34. package/dist/chunks/{ModalFooter-vXDpmYTM.js → ModalFooter-RMlvqrO9.js} +1 -1
  35. package/dist/chunks/NavListPanel-vjIOIqK0.js +1 -0
  36. package/dist/chunks/OnlineSessionsPage-FoHYZKlR.js +1 -0
  37. package/dist/chunks/OperationLogsPage-BeRnGcBJ.js +1 -0
  38. package/dist/chunks/OperationLogsTable-COI-Lp-y.js +1 -0
  39. package/dist/chunks/PDFPreviewPanel-BIQuBnZZ.js +37 -0
  40. package/dist/chunks/PasswordInput-DGEJO9yx.js +1 -0
  41. package/dist/chunks/PositionsPage-DohI0luX.js +1 -0
  42. package/dist/chunks/PreferencesSheetBody-B9niQABW.js +43 -0
  43. package/dist/chunks/ProfilePage-CVTRv7xb.js +15 -0
  44. package/dist/chunks/RelationPanel-B1X6AVaM.js +36 -0
  45. package/dist/chunks/RolesPage-CtUw93L8.js +1 -0
  46. package/dist/chunks/{SearchToolbar-BAh56OAa.js → SearchToolbar-CvgYKUjr.js} +1 -1
  47. package/dist/chunks/{SessionClientTag-DafwXf-o.js → SessionClientTag-DIwnYodW.js} +2 -2
  48. package/dist/chunks/SessionConflictModal-BLNuDsN_.js +1 -0
  49. package/dist/chunks/SettingRow-DVNmTJWC.js +1 -0
  50. package/dist/chunks/SettingsPage-BRnCxYQm.js +26 -0
  51. package/dist/chunks/StatCard-Czjfs0fa.js +4 -0
  52. package/dist/chunks/{UserDisplay-BYhcfa84.js → UserDisplay-J0Re8z-7.js} +1 -1
  53. package/dist/chunks/UserGroupsPage-CNwbejx-.js +1 -0
  54. package/dist/chunks/{UserLogsPanels-3ZlKQsCu.js → UserLogsPanels-BHeSxWrk.js} +2 -2
  55. package/dist/chunks/UserTransferSelect-CAeyxdor.js +22 -0
  56. package/dist/chunks/UsersPage-BXt9fOru.js +36 -0
  57. package/dist/chunks/{archive-D0BSMQmn.js → archive-B_IKvysI.js} +4 -4
  58. package/dist/chunks/chart-data-DImT_Mzn.js +5 -0
  59. package/dist/chunks/{chart-renderer-BWLqOvLF.js → chart-renderer-k-Rd8vdL.js} +1 -1
  60. package/dist/chunks/{user-cC0uCe3d.js → chevron-right-EBApfX6q.js} +2 -2
  61. package/dist/chunks/{clipboard-BKPNFY58.js → clipboard-ERcMSMRH.js} +1 -1
  62. package/dist/chunks/{confirm-CC2F8XXe.js → confirm-BtBBEqk8.js} +1 -1
  63. package/dist/chunks/{data-DPCozzrG.js → data-B05HzECj.js} +1 -1
  64. package/dist/chunks/{deleteAction-NGTDhZud.js → deleteAction-CCocr5uV.js} +1 -1
  65. package/dist/chunks/{diagram-vBbcsoK2.js → diagram-D9cwc7QH.js} +3 -3
  66. package/dist/chunks/dist-Bauqz5on.js +1 -0
  67. package/dist/chunks/{drawing-CUAfa3D5.js → drawing-D2Qrun-P.js} +2 -2
  68. package/dist/chunks/{email-U025DuXM.js → email-ByshRsFv.js} +2 -2
  69. package/dist/chunks/{export-CCaKk9VN.js → export-DlTz5dc2.js} +5 -5
  70. package/dist/chunks/{eye-DNBTmA6c.js → eye-off-BtJoIT5n.js} +1 -8
  71. package/dist/chunks/feedback-BnjMKZpz.js +1 -0
  72. package/dist/chunks/file-utils-DyvnVEoH.js +1 -0
  73. package/dist/chunks/fit-CsnhEncA.js +1 -0
  74. package/dist/chunks/{form-DhQiOMvp.js → form-CQutQFiD.js} +1 -1
  75. package/dist/chunks/geo-DR0fL7r2.js +38 -0
  76. package/dist/chunks/{image-C52XMTxg.js → image-ez9hvzKT.js} +1 -1
  77. package/dist/chunks/{lib-DZsU27Fn.js → lib-BlRm3nk1.js} +4 -4
  78. package/dist/chunks/line-BV7qVRkM.js +1 -0
  79. package/dist/chunks/{msg-DNXH9mKo.js → msg-BzZbudMm.js} +1 -1
  80. package/dist/chunks/{ofd-B0_-rey2.js → ofd-C7DKqJ6Z.js} +1 -1
  81. package/dist/chunks/{openDocument-DW7w0HpR.js → openDocument-DGzqlyJg.js} +1 -1
  82. package/dist/chunks/parse-6ZQGx714.js +1 -0
  83. package/dist/chunks/{parser-BFNqF7wU.js → parser-DC3PvpL4.js} +1 -1
  84. package/dist/chunks/ppt-B0WY5Gks.js +30 -0
  85. package/dist/chunks/pptx-DX5KDFZ7.js +109 -0
  86. package/dist/chunks/{print-mask-DTiml6Ox.js → print-mask-Dguzv0rv.js} +2 -2
  87. package/dist/chunks/{psd-yU36O76Y.js → psd-hjeNFQZ-.js} +1 -1
  88. package/dist/chunks/{search-filters-BoRMIesR.js → search-filters-CRIhZ0gL.js} +1 -1
  89. package/dist/chunks/spreadsheet-BzbBEhmY.js +1 -0
  90. package/dist/chunks/{spreadsheet-DiZ31XlH.js → spreadsheet-LR3SOG-x.js} +3 -3
  91. package/dist/chunks/toolbar-controls-CThS0xuP.js +15 -0
  92. package/dist/chunks/ui-BFsHoY7a.js +1 -0
  93. package/dist/chunks/{useCrudOperationColumn-PObQMk2y.js → useCrudOperationColumn-D935tixd.js} +1 -1
  94. package/dist/chunks/useListPage-CbcOQG4m.js +1 -0
  95. package/dist/chunks/{useStatusToggle-B7KSIN75.js → useStatusToggle-B2qZaoc-.js} +1 -1
  96. package/dist/chunks/wordDoc-BZY3ZnxN.js +152 -0
  97. package/dist/chunks/wordDocx-Bt2mlB3C.js +77 -0
  98. package/dist/chunks/{xmind-B9BtGBNI.js → xmind-CF9YwkOD.js} +2 -2
  99. package/dist/file-viewer/flyfish-viewer-assets.json +5 -5
  100. package/dist/file-viewer/vendor/docx/jszip.min.js +0 -0
  101. package/dist/file-viewer/wasm/data/sql-wasm.wasm +0 -0
  102. package/dist/index.js +1 -1
  103. package/dist/{src-DVwjbBTf.js → src-LbWcrSWe.js} +1 -1
  104. package/dist/styles.css +1 -1
  105. package/package.json +7 -7
  106. package/dist/chunks/App-DX7JOOmP.js +0 -79
  107. package/dist/chunks/ArcBaseAdmin-CdB_roNY.js +0 -1
  108. package/dist/chunks/ConfigurableTable-CyfZLgG0.js +0 -55
  109. package/dist/chunks/DataScopePanel-CubtBhTT.js +0 -1
  110. package/dist/chunks/DepartmentsPage-ECexbzsK.js +0 -1
  111. package/dist/chunks/DictTag-BerYvaUM.js +0 -1
  112. package/dist/chunks/DictsPage-65kAxYFd.js +0 -15
  113. package/dist/chunks/DirectoryLoginModal-rRXvoqV7.js +0 -1
  114. package/dist/chunks/EditFormModal-D68dOnaj.js +0 -1
  115. package/dist/chunks/EntityContextRuntime-D9mWi5xC.js +0 -1
  116. package/dist/chunks/FileNameCell-C_V1k0q-.js +0 -1
  117. package/dist/chunks/FilePreviewModal-D7v5seXB.js +0 -1
  118. package/dist/chunks/FileStorageConfigsPage-D2UYESb5.js +0 -15
  119. package/dist/chunks/FileTypeIcon-C77EVWXZ.js +0 -1
  120. package/dist/chunks/FilesPage-By81A2i7.js +0 -43
  121. package/dist/chunks/ForgotPasswordModal-DTlunJpM.js +0 -1
  122. package/dist/chunks/IdentitySecurityPage-Dp5EP7aT.js +0 -1
  123. package/dist/chunks/LogStatsScaffold-BFwbN_MU.js +0 -1
  124. package/dist/chunks/LoginField-Bu4C0-Mk.js +0 -1
  125. package/dist/chunks/LoginLogsPage-BuMJ6U8I.js +0 -1
  126. package/dist/chunks/LoginLogsTable-DfAlWPZb.js +0 -1
  127. package/dist/chunks/MenuCommandPalette-BvW2kEU4.js +0 -8
  128. package/dist/chunks/MenusPage-DT3kxAfi.js +0 -1
  129. package/dist/chunks/NavListPanel-agMt2kc6.js +0 -1
  130. package/dist/chunks/OnlineSessionsPage-BJJAB2pV.js +0 -1
  131. package/dist/chunks/OperationLogsPage-CP-wUt_N.js +0 -1
  132. package/dist/chunks/OperationLogsTable-BX0vV3fT.js +0 -1
  133. package/dist/chunks/PDFPreviewPanel-D8-74Zqs.js +0 -30
  134. package/dist/chunks/PasswordInput--G8GKd5g.js +0 -1
  135. package/dist/chunks/PositionsPage-Cs7xq89s.js +0 -1
  136. package/dist/chunks/PreferencesSheetBody-CdA4Ig_g.js +0 -43
  137. package/dist/chunks/ProfilePage-Bt3yP6D-.js +0 -15
  138. package/dist/chunks/RelationPanel-B-KAfl9B.js +0 -36
  139. package/dist/chunks/RolesPage-DDNGkGAq.js +0 -1
  140. package/dist/chunks/SessionConflictModal-DgFNCU3j.js +0 -1
  141. package/dist/chunks/SettingRow-BIb1ruW2.js +0 -1
  142. package/dist/chunks/SettingsPage-rhqkPOJ9.js +0 -16
  143. package/dist/chunks/StatCard-BwhGDWpE.js +0 -4
  144. package/dist/chunks/UserGroupsPage-D3_aji58.js +0 -1
  145. package/dist/chunks/UserTransferSelect-S-GUw2Y9.js +0 -1
  146. package/dist/chunks/UsersPage-CLRJX-V9.js +0 -29
  147. package/dist/chunks/WorkflowPrintButton-BVa-xw-8.js +0 -1
  148. package/dist/chunks/chart-data-DOMSCLwj.js +0 -5
  149. package/dist/chunks/chevron-left-DnDEG_PI.js +0 -8
  150. package/dist/chunks/chevron-right-CzizTV5i.js +0 -8
  151. package/dist/chunks/dist-BqNhxPp5.js +0 -1
  152. package/dist/chunks/feedback-D4BIfDNd.js +0 -1
  153. package/dist/chunks/file-utils-DJ9ksj-g.js +0 -1
  154. package/dist/chunks/geo-Bf8ymo43.js +0 -38
  155. package/dist/chunks/line-DSFA8EqT.js +0 -1
  156. package/dist/chunks/mail-Cduf1OFr.js +0 -8
  157. package/dist/chunks/mono-icons-CxCoktev.js +0 -1
  158. package/dist/chunks/plus-Bvdn6bx1.js +0 -8
  159. package/dist/chunks/ppt-C9RgrmNU.js +0 -30
  160. package/dist/chunks/pptx-_T8ZPVQn.js +0 -109
  161. package/dist/chunks/printer-DL8WQci4.js +0 -8
  162. package/dist/chunks/shield-check-DZGK8n9u.js +0 -8
  163. package/dist/chunks/spreadsheet-CHFSQY8j.js +0 -1
  164. package/dist/chunks/table-columns-XaoxVUJN.js +0 -1
  165. package/dist/chunks/toolbar-controls-BFOuV86W.js +0 -8
  166. package/dist/chunks/ui-DoIHGuTR.js +0 -1
  167. package/dist/chunks/useDebouncedValue-DFoJN77o.js +0 -22
  168. package/dist/chunks/useListPage-1Upr_ala.js +0 -1
  169. package/dist/chunks/wordDoc-CtetBfzo.js +0 -152
  170. package/dist/chunks/wordDocx-8ak39HcF.js +0 -77
  171. package/dist/chunks/zoom-8Eo2fTNd.js +0 -1
  172. package/dist/public/monaco/vs/editor/editor.worker.js +0 -1
  173. package/dist/public/monaco/vs/language/css/css.worker.js +0 -66
  174. package/dist/public/monaco/vs/language/html/html.worker.js +0 -443
  175. package/dist/public/monaco/vs/language/json/json.worker.js +0 -17
  176. package/dist/public/monaco/vs/language/typescript/ts.worker.js +0 -67693
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{t}from"./typography-DKK_iHcj.js";import{w as n}from"./ui-DoIHGuTR.js";import{jsx as r}from"react/jsx-runtime";import{formatUserLabel as i}from"@fudanda/react-core/utils/user-labels";function a({username:e,nickname:n}){return e?/* @__PURE__ */ r(t.Text,{ellipsis:{showTooltip:!0},style:{maxWidth:`100%`},children:i(e,n)}):/* @__PURE__ */ r(`span`,{style:{color:`var(--arc-antd-color-text-2)`},children:`-`})}function o(){return(o=e((()=>{n()})))()}export{o as n,a as t};
1
+ import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{t}from"./typography-DKK_iHcj.js";import{C as n}from"./ui-BFsHoY7a.js";import{jsx as r}from"react/jsx-runtime";import{formatUserLabel as i}from"@fudanda/react-core/utils/user-labels";function a({username:e,nickname:n}){return e?/* @__PURE__ */ r(t.Text,{ellipsis:{showTooltip:!0},style:{maxWidth:`100%`},children:i(e,n)}):/* @__PURE__ */ r(`span`,{style:{color:`var(--arc-antd-color-text-2)`},children:`-`})}function o(){return(o=e((()=>{n()})))()}export{o as n,a as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{o as t}from"./controls-C5dPckUT.js";import{t as n}from"./typography-DKK_iHcj.js";import{i as r,r as ee}from"./feedback-BnjMKZpz.js";import{_ as i,g as a,i as te,l as o,n as s,o as c,r as ne,s as re,t as ie}from"./ConfigurableTable-DzmZDd8F.js";import{r as ae,s as l,t as oe}from"./toolbar-controls-CThS0xuP.js";import{n as u,t as d}from"./refresh-cw-Dz8O9-Hp.js";import{n as f,t as se}from"./users-BXZLb4TY.js";import{t as p}from"./form-CQutQFiD.js";import{C as m,_ as h,a as g,d as ce,g as _,r as le,y as v}from"./ui-BFsHoY7a.js";import{n as ue,t as y}from"./useStatusToggle-B2qZaoc-.js";import{r as b,t as de}from"./deleteAction-CCocr5uV.js";import{n as fe,t as x}from"./useCrudOperationColumn-D935tixd.js";import{n as pe,t as S}from"./useRowSelection-4GOMFmjG.js";import{n as me,t as C}from"./useListPage-CbcOQG4m.js";import{a as w,i as he,n as ge,o as _e,r as T}from"./EditFormModal-DNHOZHxM.js";import{n as E,t as ve}from"./AppModal-DJzQA6FR.js";import{n as D,r as ye,t as be}from"./MemberAssignmentSheet-Czbt6_zv.js";import{useEffect as O,useMemo as k,useState as A}from"react";import{Fragment as j,jsx as M,jsxs as N}from"react/jsx-runtime";import{useDictItems as xe}from"@fudanda/react-core/hooks/useDictItems";import{userGroupContract as P}from"@fudanda/react-core/lib/native-operations";import{usePermission as Se}from"@fudanda/react-core/hooks/usePermission";import{useAllUsers as Ce}from"@fudanda/react-core/hooks/queries/users";import{departmentsToTreeData as we,useFlatDepartments as Te}from"@fudanda/react-core/hooks/queries/departments";import{useAllPositions as Ee}from"@fudanda/react-core/hooks/queries/positions";import{useAllRoles as De}from"@fudanda/react-core/hooks/queries/roles";import{useAssignUserGroupMembers as Oe,useAssignUserGroupRoles as ke,useDeleteUserGroups as Ae,useSaveUserGroup as F,useSyncUserGroup as je,useUserGroupDetail as Me,useUserGroupList as Ne,useUserGroupMembers as Pe,useUserGroupRoles as Fe,useUserGroupRulePreview as Ie}from"@fudanda/react-core/hooks/queries/user-groups";function I(){let{options:e}=xe(`common_status`),{hasPermission:i}=Se(),{selectedRowKeys:s,clear:c,rowSelection:l}=pe(),u=me({contract:P,useList:Ne,table:{empty:`暂无数据`,rowSelection:l}}),{tableProps:f}=u,m=Ce(),y=Te(),b=(m.data??[]).map(e=>({id:e.id,username:e.username,nickname:e.nickname,avatar:e.avatar,email:e.email,departmentId:e.departmentId,departmentName:e.departmentName})),x=k(()=>y.data??[],[y.data]),[S,C]=A(!1),[w,T]=A(null),[E,D]=A([]),I=Pe(w?.id,S),[L,R]=A(null),[z,B]=A(!1),[V,H]=A(null),[U,W]=A([]),G=Fe(V?.id,z),K=De(),Le=F(),q=Ie(),J=je(),Re=Ee(),Y=_e({entityName:`用户组`,save:he(Le,{create:P.create.input.shape.body,update:P.update.input.shape.body}),useDetail:Me,defaults:{status:`enabled`,memberMode:`static`,roleIds:[],userIds:[]},labelPosition:`top`,toValues:e=>({name:e.name,code:e.code,description:e.description??void 0,ownerId:e.ownerId??void 0,status:e.status,memberMode:e.memberMode??`static`,memberRule:e.memberRule??void 0,roleIds:e.rolePreview?.map(e=>e.id)??[]}),beforeSave:(e,{editing:t})=>({...e,description:e.description||void 0,ownerId:e.ownerId??void 0,memberRule:e.memberMode===`dynamic`?e.memberRule??void 0:void 0,...t?{clearFields:[...e.description?[]:[`description`],...e.ownerId==null?[`ownerId`]:[],...e.memberMode!==`dynamic`||!e.memberRule?[`memberRule`]:[]]}:{}})}),ze=F(),X=Ae(),Z=Oe(),Q=ke(),Be=ue({toggle:(e,t)=>ze.mutateAsync({id:e.id,values:{status:t?`enabled`:`disabled`}}),confirmDisable:e=>({danger:!0,title:`确认禁用用户组「${e.name}」?`,content:`禁用后该用户组将不可选择。`,okText:`确认禁用`}),disabled:!i(`system:user-groups:update`)}),Ve=k(()=>we(x,{keepEmptyChildren:!0}),[x]);O(()=>{S&&D((I.data??[]).map(e=>e.id))},[S,I.data]),O(()=>{z&&W((G.data??[]).map(e=>e.id))},[z,G.data]),O(()=>{Y.modalProps.visible||R(null)},[Y.modalProps.visible]);let He=()=>{s.length&&de({title:`确认删除选中的 ${s.length} 个用户组?`,content:`删除后无法恢复,请确认操作`,run:()=>X.mutateAsync(s),onDeleted:c})},Ue=e=>{T(e),C(!0)},$=e=>{H(e),B(!0)},We=async()=>{V&&(await Q.mutateAsync({params:{id:V.id},body:{roleIds:U}}),r.success(`角色已更新,组内成员即时生效`),B(!1),H(null))},Ge=async()=>{w&&(await Z.mutateAsync({params:{id:w.id},body:{userIds:E}}),C(!1))},Ke=fe({permission:`system:user-groups`,edit:e=>{Y.openEdit(e)},remove:X,title:`确定要删除该用户组吗?`,extra:e=>[{key:`members`,label:`成员`,hidden:!i(`system:user-groups:assign`),onClick:()=>{Ue(e)}},{key:`roles`,label:`角色`,hidden:!i(`system:user-groups:assign`),onClick:()=>{$(e)}},{key:`sync`,label:`同步`,hidden:e.memberMode!==`dynamic`||!i(`system:user-groups:assign`),onClick:()=>{J.mutate({params:{id:e.id}},{onSuccess:()=>r.success(`成员已按规则同步`)})}}],width:240,desktopInlineKeys:[`members`,`roles`,`edit`]}),qe=[{title:`用户组名称`,dataIndex:`name`,width:200,render:o},{title:`编码`,dataIndex:`code`,width:180,render:o},{title:`描述`,dataIndex:`description`,render:o},{title:`负责人`,dataIndex:`ownerName`,width:120,render:e=>e||ne},{title:`成员模式`,dataIndex:`memberMode`,width:110,render:(e,t)=>e===`dynamic`?/* @__PURE__ */ N(v,{color:`teal`,children:[`动态`,t.ruleSyncedAt?``:`(未同步)`]}):/* @__PURE__ */ M(v,{color:`grey`,children:`静态`})},ye({dataIndex:`memberPreview`,width:150,getPreview:e=>e.memberPreview,getCount:e=>e.memberCount,getScope:e=>({type:`userGroup`,id:e.id,name:e.name})}),re({title:`角色`,dataIndex:`rolePreview`,width:260,contentWidth:228,getItems:e=>(e??[]).map(e=>({key:String(e.id),label:e.name})),tagColor:`blue`,popoverWidth:240,empty:/* @__PURE__ */ M(v,{color:`grey`,children:`无角色`}),onClick:i(`system:user-groups:assign`)?$:void 0}),te,Be.column(),Ke];return/* @__PURE__ */ N(`div`,{className:`page-container`,children:[/* @__PURE__ */ M(ie,{searchConfig:a({page:u,filters:[`keyword`,`status`],create:/* @__PURE__ */ M(ae,{permission:`system:user-groups:create`,onClick:Y.openCreate}),actions:s.length>0&&i(`system:user-groups:delete`)&&/* @__PURE__ */ M(oe,{count:s.length,onClick:He}),filterTitle:`用户组筛选`,actionTitle:`用户组操作`}),columns:qe,...f}),/* @__PURE__ */ M(ge,{modal:Y,width:520,okText:`确定`,children:({formState:t})=>{let r=t.values.memberMode??`static`;return/* @__PURE__ */ N(j,{children:[/* @__PURE__ */ M(p.Input,{field:`name`,label:`名称`,placeholder:`请输入用户组名称`,rules:[{required:!0,message:`请输入用户组名称`}]}),/* @__PURE__ */ M(p.Input,{field:`code`,label:`编码`,placeholder:`字母数字下划线`,rules:[{required:!0,message:`请输入用户组编码`},{pattern:/^\w+$/,message:`编码只能包含字母、数字和下划线`}]}),/* @__PURE__ */ M(p.Select,{field:`ownerId`,label:`负责人`,placeholder:`请选择负责人(可选)`,style:{width:`100%`},filter:!0,showClear:!0,optionList:b.map(e=>({value:e.id,label:`${e.nickname} (${e.username})`}))}),/* @__PURE__ */ M(p.Select,{field:`status`,label:`状态`,style:{width:`100%`},optionList:e}),/* @__PURE__ */ M(p.Select,{field:`roleIds`,label:`角色`,placeholder:`请选择角色(可选)`,style:{width:`100%`},multiple:!0,filter:!0,showClear:!0,optionList:(K.data??[]).map(e=>({value:e.id,label:`${e.name}(${e.code})`}))}),!Y.editing&&r===`static`&&/* @__PURE__ */ M(p.Select,{field:`userIds`,label:`成员`,placeholder:`请选择成员(可选)`,style:{width:`100%`},multiple:!0,filter:!0,showClear:!0,optionList:b.map(e=>({value:e.id,label:`${e.nickname}(${e.username})`}))}),/* @__PURE__ */ N(p.RadioGroup,{field:`memberMode`,label:`成员模式`,type:`button`,extraText:r===`dynamic`?`成员由规则自动维护:用户的部门/岗位/状态变化后自动加入或退出,不可手工增删`:`成员由管理员手工维护`,children:[/* @__PURE__ */ M(p.Radio,{value:`static`,children:`静态(手工维护)`}),/* @__PURE__ */ M(p.Radio,{value:`dynamic`,children:`动态(按规则自动维护)`})]}),r===`dynamic`&&/* @__PURE__ */ N(`div`,{style:{border:`1px solid var(--arc-antd-color-border)`,borderRadius:`var(--arc-antd-border-radius-medium)`,padding:`4px 16px 16px`,margin:`12px 0`},children:[/* @__PURE__ */ M(p.TreeSelect,{field:`memberRule.departmentIds`,label:`命中部门`,placeholder:`选择部门(可多选)`,style:{width:`100%`},multiple:!0,filterTreeNode:!0,showClear:!0,leafOnly:!1,treeData:Ve}),/* @__PURE__ */ M(p.Switch,{field:`memberRule.includeSubDepartments`,label:`包含子部门`,checkedText:`是`,uncheckedText:`否`}),/* @__PURE__ */ M(p.Select,{field:`memberRule.positionIds`,label:`命中岗位`,placeholder:`选择岗位(可多选)`,extraText:`多个岗位满足任一即可;与部门条件同时设置时须同时满足`,style:{width:`100%`},multiple:!0,filter:!0,showClear:!0,optionList:(Re.data??[]).map(e=>({value:e.id,label:e.name}))}),/* @__PURE__ */ M(p.Select,{field:`memberRule.includeUserIds`,label:`强制包含`,placeholder:`选择用户(可选)`,extraText:`规则之外的例外成员`,style:{width:`100%`},multiple:!0,filter:!0,showClear:!0,optionList:b.map(e=>({value:e.id,label:`${e.nickname} (${e.username})`}))}),/* @__PURE__ */ M(p.Select,{field:`memberRule.excludeUserIds`,label:`强制排除`,placeholder:`选择用户(可选)`,extraText:`优先级最高,命中规则也不会加入`,style:{width:`100%`},multiple:!0,filter:!0,showClear:!0,optionList:b.map(e=>({value:e.id,label:`${e.nickname} (${e.username})`}))}),/* @__PURE__ */ N(_,{vertical:!0,align:`start`,spacing:8,style:{width:`100%`,marginTop:12},children:[/* @__PURE__ */ M(g,{theme:`light`,loading:q.isPending,onClick:()=>{let e=t.values.memberRule??{};q.mutate({body:{groupId:Y.editing?.id,memberRule:e}},{onSuccess:R})},children:`预览成员变化`}),L&&/* @__PURE__ */ N(`div`,{style:{fontSize:12,lineHeight:`20px`,width:`100%`},children:[/* @__PURE__ */ N(n.Text,{type:`secondary`,children:[`目标成员 `,L.total,` 人:新加入 `,L.joiningCount,` 人,移除 `,L.leavingCount,` 人`]}),L.joining.length>0&&/* @__PURE__ */ N(`div`,{style:{marginTop:4},children:[/* @__PURE__ */ M(n.Text,{type:`success`,children:`加入:`}),/* @__PURE__ */ N(_,{wrap:!0,spacing:4,children:[L.joining.map(e=>/* @__PURE__ */ M(v,{size:`small`,color:`green`,children:e.nickname},e.id)),L.joiningCount>L.joining.length&&/* @__PURE__ */ N(v,{size:`small`,children:[`+`,L.joiningCount-L.joining.length]})]})]}),L.leaving.length>0&&/* @__PURE__ */ N(`div`,{style:{marginTop:4},children:[/* @__PURE__ */ M(n.Text,{type:`danger`,children:`移除:`}),/* @__PURE__ */ N(_,{wrap:!0,spacing:4,children:[L.leaving.map(e=>/* @__PURE__ */ M(v,{size:`small`,color:`red`,children:e.nickname},e.id)),L.leavingCount>L.leaving.length&&/* @__PURE__ */ N(v,{size:`small`,children:[`+`,L.leavingCount-L.leaving.length]})]})]})]})]})]}),/* @__PURE__ */ M(p.TextArea,{field:`description`,label:`描述`,placeholder:`请输入描述(可选)`,maxCount:256})]})}}),w?.memberMode===`dynamic`?/* @__PURE__ */ M(ee,{title:/* @__PURE__ */ N(_,{children:[/* @__PURE__ */ M(se,{size:16}),/* @__PURE__ */ N(`span`,{children:[`成员管理 - `,w?.name]}),/* @__PURE__ */ M(v,{color:`teal`,size:`small`,children:`动态`})]}),visible:S,onCancel:()=>C(!1),width:720,footer:/* @__PURE__ */ N(`div`,{style:{display:`flex`,justifyContent:`flex-end`,gap:8},children:[/* @__PURE__ */ M(g,{onClick:()=>C(!1),children:`关闭`}),i(`system:user-groups:assign`)&&/* @__PURE__ */ M(g,{type:`primary`,icon:/* @__PURE__ */ M(d,{size:14}),loading:J.isPending,onClick:()=>{w&&J.mutate({params:{id:w.id}},{onSuccess:()=>r.success(`成员已按规则同步`)})},children:`立即同步`})]}),children:/* @__PURE__ */ N(_,{vertical:!0,align:`start`,spacing:12,style:{width:`100%`},children:[/* @__PURE__ */ M(le,{fullMode:!1,type:`info`,closeIcon:null,description:`成员由规则自动维护,不可手工增删;需要例外时请在编辑规则中使用强制包含/排除名单。${w.ruleSyncedAt?`最近同步:`+w.ruleSyncedAt:`尚未同步`}`,style:{width:`100%`}}),/* @__PURE__ */ M(h,{spinning:I.isFetching,style:{width:`100%`},children:(I.data??[]).length===0?/* @__PURE__ */ M(ce,{title:`暂无成员`,description:`当前没有用户命中该组规则`,style:{padding:`32px 0`}}):/* @__PURE__ */ M(_,{wrap:!0,spacing:6,children:(I.data??[]).map(e=>/* @__PURE__ */ N(v,{size:`large`,children:[e.nickname,`(`,e.username,`)`]},e.id))})})]})}):/* @__PURE__ */ M(be,{title:`成员管理 - ${w?.name??``}`,visible:S,onCancel:()=>C(!1),users:b,value:E,onChange:D,departments:x,canSave:I.isSuccess,saveLoading:Z.isPending,onSave:Ge}),/* @__PURE__ */ M(ve,{title:`分配角色 — ${V?.name??``}`,visible:z,onCancel:()=>{B(!1),H(null)},onOk:We,okButtonProps:{disabled:!G.isSuccess},confirmLoading:Q.isPending,width:480,children:/* @__PURE__ */ N(h,{spinning:G.isFetching||K.isFetching,children:[/* @__PURE__ */ M(`div`,{style:{marginBottom:8,fontSize:12,color:`var(--arc-antd-color-text-2)`},children:`组内成员将自动继承所选角色的菜单与数据权限(与成员直接分配的角色取并集)`}),/* @__PURE__ */ M(t,{multiple:!0,filter:!0,placeholder:`请选择角色`,style:{width:`100%`},value:U,onChange:e=>W(e??[]),optionList:(K.data??[]).map(e=>({value:e.id,label:`${e.name}(${e.code})`}))})]})})]})}function L(){return(L=e((()=>{m(),u(),f(),E(),s(),c(),w(),l(),b(),i(),S(),y(),x(),D(),C(),T()})))()}L();export{I as default};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{i as t}from"./feedback-D4BIfDNd.js";import{n}from"./media-DoGe_p4O.js";import{d as r,u as i}from"./ConfigurableTable-CyfZLgG0.js";import{a,n as o,o as s,r as c,t as l}from"./search-filters-BoRMIesR.js";import{n as u,t as d}from"./createLucideIcon-BtwfYE6A.js";import{a as f,o as p,s as m}from"./toolbar-controls-BFOuV86W.js";import{n as h,t as g}from"./rotate-ccw-D2__Zisi.js";import{n as _,t as v}from"./rotate-cw-BSTVLlWY.js";import{_ as y,a as b,w as x}from"./ui-DoIHGuTR.js";import{n as S,t as ee}from"./rendered-slot-YhfmcMJr.js";import{n as te,t as ne}from"./SearchToolbar-BAh56OAa.js";import{n as re,t as ie}from"./AppModal-B_xvSaeq.js";import{n as ae,t as oe}from"./LoginLogsTable-DfAlWPZb.js";import{n as se,t as ce}from"./OperationLogsTable-BX0vV3fT.js";import{useEffect as le,useMemo as ue,useRef as C,useState as w}from"react";import{Fragment as T,jsx as E,jsxs as D}from"react/jsx-runtime";import{enumValueOf as O}from"@fudanda/shared/core";import{useRenderedSlot as de}from"@fudanda/react-core/hooks/useRenderedSlot";import{useFilterQuery as fe}from"@fudanda/react-core/hooks/useFilterQuery";import{useListSearch as k}from"@fudanda/react-core/hooks/useListSearch";import{formatDateTimeRangeForApi as A}from"@fudanda/react-core/utils/date";import{useAdminPaths as pe}from"@fudanda/react-core/admin/runtime";import{LOGIN_EVENT_TYPES as me,LOGIN_EVENT_TYPE_OPTIONS as he,LOGIN_STATUSES as ge,LOGIN_STATUS_OPTIONS as _e}from"@fudanda/shared/identity";import{OPERATION_LOG_RESULTS as ve,OPERATION_LOG_RESULT_OPTIONS as ye}from"@fudanda/shared/platform";import{profileKeys as j,useProfileLoginLogs as be,useProfileOperationLogs as xe}from"@fudanda/react-core/hooks/queries/profile";import{operationLogKeys as Se,useOperationLogList as Ce}from"@fudanda/react-core/hooks/queries/operation-logs";import{loginLogKeys as we,useLoginLogList as Te}from"@fudanda/react-core/hooks/queries/login-logs";var M,N;function P(){return(P=e((()=>{
1
+ import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{i as t}from"./feedback-BnjMKZpz.js";import{n}from"./media-DoGe_p4O.js";import{v as r,y as i}from"./ConfigurableTable-DzmZDd8F.js";import{a,n as o,o as s,r as c,t as l}from"./search-filters-CRIhZ0gL.js";import{n as u,t as d}from"./createLucideIcon-BtwfYE6A.js";import{a as f,o as p,s as m}from"./toolbar-controls-CThS0xuP.js";import{n as h,t as g}from"./rotate-ccw-D2__Zisi.js";import{n as _,t as v}from"./rotate-cw-BSTVLlWY.js";import{C as y,a as b,g as x}from"./ui-BFsHoY7a.js";import{n as S,t as ee}from"./rendered-slot-YhfmcMJr.js";import{n as te,t as ne}from"./SearchToolbar-CvgYKUjr.js";import{n as re,t as ie}from"./AppModal-DJzQA6FR.js";import{n as ae,t as oe}from"./LoginLogsTable-DVmHnC6V.js";import{n as se,t as ce}from"./OperationLogsTable-COI-Lp-y.js";import{useEffect as le,useMemo as ue,useRef as C,useState as w}from"react";import{Fragment as T,jsx as E,jsxs as D}from"react/jsx-runtime";import{enumValueOf as O}from"@fudanda/shared/core";import{useRenderedSlot as de}from"@fudanda/react-core/hooks/useRenderedSlot";import{useFilterQuery as fe}from"@fudanda/react-core/hooks/useFilterQuery";import{useListSearch as k}from"@fudanda/react-core/hooks/useListSearch";import{formatDateTimeRangeForApi as A}from"@fudanda/react-core/utils/date";import{useAdminPaths as pe}from"@fudanda/react-core/admin/runtime";import{LOGIN_EVENT_TYPES as me,LOGIN_EVENT_TYPE_OPTIONS as he,LOGIN_STATUSES as ge,LOGIN_STATUS_OPTIONS as _e}from"@fudanda/shared/identity";import{profileKeys as j,useProfileLoginLogs as ve,useProfileOperationLogs as ye}from"@fudanda/react-core/hooks/queries/profile";import{operationLogKeys as be,useOperationLogList as xe}from"@fudanda/react-core/hooks/queries/operation-logs";import{loginLogKeys as Se,useLoginLogList as Ce}from"@fudanda/react-core/hooks/queries/login-logs";import{OPERATION_LOG_RESULTS as we,OPERATION_LOG_RESULT_OPTIONS as Te}from"@fudanda/shared/platform";var M,N;function P(){return(P=e((()=>{
2
2
  /**
3
3
  * @license lucide-react v1.53.0 - ISC
4
4
  *
@@ -33,4 +33,4 @@ u(),V={name:`zoom-in`,size:24,node:[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u
33
33
  * This source code is licensed under the ISC license.
34
34
  * See the LICENSE file in the root directory of this source tree.
35
35
  */
36
- u(),W={name:`zoom-out`,size:24,node:[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]},W.node,G=d(W)})))()}function q(e){let{create:t,actions:n,mobileActions:r,filterTitle:a,actionTitle:o,className:s}=e,c,l,u,d;if(e.page){let t=i({page:e.page,specs:e.filters,overrides:e.overrides});c=t.keyword.length?t.keyword:void 0,l=t.filters.length||e.extraFilters?/* @__PURE__ */ D(T,{children:[t.filters,e.extraFilters]}):void 0,{onSearch:u,onReset:d}=e.page.toolbarProps}else({keyword:c,filters:l,onSearch:u,onReset:d}=e);let m=de(),h=J(t)||J(n)?/* @__PURE__ */ D(T,{children:[t,/* @__PURE__ */ E(ee,{ref:m.probeRef,children:n})]}):void 0;return/* @__PURE__ */ E(ne,{className:s,primary:/* @__PURE__ */ D(T,{children:[c,l,/* @__PURE__ */ E(p,{onClick:u}),/* @__PURE__ */ E(f,{onClick:d})]}),actions:h,mobilePrimary:/* @__PURE__ */ D(T,{children:[c,/* @__PURE__ */ E(p,{onClick:u}),t]}),mobileFilters:J(l)?l:void 0,mobileActions:r??(m.rendered?n:!1),filterTitle:a,actionTitle:o,onFilterApply:u,onFilterReset:d})}var J;function Y(){return(Y=e((()=>{te(),m(),S(),r(),J=e=>!!e&&!(Array.isArray(e)&&e.length===0)})))()}function Ee(e){if(!Number.isFinite(e))return null;let t=Number((Math.round(e/Q)*Q).toFixed(2));return Math.min(Z,Math.max(X,t))}function De({file:e,confirmLoading:t,onCancel:r,onConfirm:i}){let a=C(null),o=C(``),[s,c]=w(``),[l,u]=w(0),[d,f]=w(1),p=e=>{o.current.startsWith(`blob:`)&&URL.revokeObjectURL(o.current),o.current=e,c(e)};le(()=>{if(u(0),f(1),!e)p(``);else return p(URL.createObjectURL(e)),()=>{p(``)}},[e]);function m(e){u(t=>((t+e)%360+360)%360)}function h(e){if(e===void 0)return;let t=Ee(typeof e==`number`?e:e[0]);t!==null&&f(t)}function _(e){f(t=>Ee(Number((t+e).toFixed(2)))??t)}function x(){let e=a.current?.getCropperCanvas();e&&e.toBlob(e=>{e&&i(e)},`image/jpeg`,.85)}return/* @__PURE__ */ D(ie,{title:`裁剪头像`,visible:e!==null,onCancel:r,footer:/* @__PURE__ */ D(y,{children:[/* @__PURE__ */ E(b,{onClick:r,children:`取消`}),/* @__PURE__ */ E(b,{type:`primary`,loading:t,onClick:x,children:`确认并上传`})]}),width:520,centered:!0,children:[/* @__PURE__ */ E(`div`,{style:{width:`100%`,height:380},children:s&&/* @__PURE__ */ E(n,{ref:a,src:s,shape:`round`,aspectRatio:1,showResizeBox:!0,rotate:l,zoom:d,minZoom:X,maxZoom:Z,zoomStep:Q,onZoomChange:h,style:{width:`100%`,height:`100%`}})}),/* @__PURE__ */ D(`div`,{style:{display:`flex`,justifyContent:`center`,gap:12,marginTop:12},children:[/* @__PURE__ */ E(b,{icon:/* @__PURE__ */ E(g,{size:14}),size:`small`,theme:`borderless`,onClick:()=>m(-90),children:`向左旋转`}),/* @__PURE__ */ E(b,{icon:/* @__PURE__ */ E(v,{size:14}),size:`small`,theme:`borderless`,onClick:()=>m(90),children:`向右旋转`})]}),/* @__PURE__ */ D(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`center`,gap:12,marginTop:8},children:[/* @__PURE__ */ E(b,{icon:/* @__PURE__ */ E(G,{size:14}),size:`small`,theme:`borderless`,"aria-label":`缩小`,disabled:d<=X,onClick:()=>_(-.1),children:`缩小`}),/* @__PURE__ */ D(`span`,{style:{fontSize:12,color:`var(--arc-antd-color-text-2)`,minWidth:44,textAlign:`center`},children:[d.toFixed(1),`x`]}),/* @__PURE__ */ E(b,{icon:/* @__PURE__ */ E(H,{size:14}),size:`small`,theme:`borderless`,"aria-label":`放大`,disabled:d>=Z,onClick:()=>_(Q),children:`放大`})]})]})}var X,Z,Q;function Oe(){return(Oe=e((()=>{x(),h(),_(),U(),K(),re(),X=.1,Z=3,Q=.1})))()}function ke({onUploaded:e,uploadBlob:n,maxSizeMB:r=2}){let i=C(null),[a,o]=w(null),[s,c]=w(!1);function l(e){let n=e.target.files?.[0];n&&(e.target.value=``,n.type.startsWith(`image/`)?n.size>r*1024*1024?t.warning(`图片不能超过 ${r}MB`):o(n):t.warning(`请选择图片文件`))}async function u(r){let i;c(!0);try{i=await n(r)}catch(e){t.error(e instanceof Error&&e.message?e.message:`上传失败`);return}finally{c(!1)}await e(i)!==!1&&o(null)}return{cropFile:a,uploading:s,openFilePicker:()=>i.current?.click(),fileInputProps:{ref:i,type:`file`,accept:`image/*`,style:{display:`none`},onChange:l},cropperProps:{file:a,onCancel:()=>o(null),onConfirm:e=>{u(e)}}}}function Ae(){return(Ae=e((()=>{x()})))()}function je({visible:e,currentAvatar:t,confirmLoading:n,uploadBlob:r,onCancel:i,onSelect:a,onRemove:o}){let{assetBasePath:s}=pe(),c=Array.from({length:12},(e,t)=>`${s}avatars/avatar-${String(t+1).padStart(2,`0`)}.svg`),l=ke({uploadBlob:r,onUploaded:e=>{a(e)}}),u=l.uploading||(n??!1);return/* @__PURE__ */ D(T,{children:[/* @__PURE__ */ D(ie,{title:`更换头像`,visible:e,onCancel:i,footer:null,width:480,centered:!0,children:[/* @__PURE__ */ D(`div`,{style:{marginBottom:16},children:[/* @__PURE__ */ E(`div`,{style:{fontSize:13,color:`var(--arc-antd-color-text-2)`,marginBottom:12},children:`预设头像`}),/* @__PURE__ */ E(`div`,{className:`auto-grid`,style:{"--auto-grid-min":`80px`,"--auto-grid-cols":4,"--auto-grid-gap":`12px`},children:c.map(e=>/* @__PURE__ */ E(`button`,{type:`button`,onClick:()=>a(e),style:{border:t===e?`2px solid var(--arc-antd-color-primary)`:`2px solid transparent`,borderRadius:`var(--arc-antd-border-radius-medium)`,padding:4,cursor:`pointer`,background:`var(--arc-antd-color-fill-0)`,display:`flex`,alignItems:`center`,justifyContent:`center`,transition:`border-color 0.2s`},onMouseEnter:n=>{t!==e&&(n.currentTarget.style.borderColor=`var(--arc-antd-color-primary-light-hover)`)},onMouseLeave:n=>{t!==e&&(n.currentTarget.style.borderColor=`transparent`)},children:/* @__PURE__ */ E(`img`,{src:e,alt:`预设头像`,width:72,height:72,style:{borderRadius:`var(--arc-antd-border-radius-small)`,display:`block`},loading:`lazy`})},e))})]}),/* @__PURE__ */ D(`div`,{style:{borderTop:`1px solid var(--arc-antd-color-border)`,paddingTop:16},children:[/* @__PURE__ */ E(`div`,{style:{fontSize:13,color:`var(--arc-antd-color-text-2)`,marginBottom:8},children:`本地上传(≤ 2MB,上传后可裁剪、旋转、缩放)`}),/* @__PURE__ */ D(`div`,{style:{display:`flex`,gap:8},children:[/* @__PURE__ */ E(b,{icon:/* @__PURE__ */ E(N,{size:14}),loading:l.uploading,onClick:l.openFilePicker,children:`选择图片`}),t&&o&&/* @__PURE__ */ E(b,{theme:`borderless`,type:`danger`,onClick:o,children:`移除头像`})]}),/* @__PURE__ */ E(`input`,{...l.fileInputProps})]})]}),/* @__PURE__ */ E(De,{...l.cropperProps,confirmLoading:u})]})}function $(){return($=e((()=>{x(),P(),re(),Oe(),Ae()})))()}function Me(e){if(!e)return 0;if(e.length<6)return 1;let t=0;return/[a-z]/.test(e)&&t++,/[A-Z]/.test(e)&&t++,/\d/.test(e)&&t++,/[^a-zA-Z0-9]/.test(e)&&t++,e.length>=10&&t++,t<=1?1:t===2?2:t===3?3:4}function Ne({password:e,policy:t}){let n=ue(()=>Me(e),[e]);if(!e)return null;let{label:r,color:i}=Pe[n],a=t?[...t.requireUppercase?[{label:`含大写字母`,ok:/[A-Z]/.test(e)}]:[],...t.requireSpecialChar?[{label:`含特殊字符`,ok:/[^a-zA-Z0-9]/.test(e)}]:[]]:null,o=t?e.length>=t.minLength:null,s=t?`至少 ${t.minLength} 位`:null;return/* @__PURE__ */ D(`div`,{style:{padding:`4px 0`},children:[/* @__PURE__ */ D(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[/* @__PURE__ */ E(`div`,{style:{display:`flex`,gap:3,flex:1},children:[1,2,3,4].map(e=>/* @__PURE__ */ E(`div`,{style:{flex:1,height:4,borderRadius:`var(--arc-antd-border-radius-small)`,background:e<=n?i:`var(--arc-antd-color-fill-2)`,transition:`background 0.25s ease`}},e))}),/* @__PURE__ */ E(`span`,{style:{fontSize:12,fontWeight:600,color:i,minWidth:28,textAlign:`right`},children:r}),s!==null&&/* @__PURE__ */ D(`div`,{style:{display:`flex`,alignItems:`center`,gap:3,flexShrink:0},children:[o?/* @__PURE__ */ E(I,{size:11,style:{flexShrink:0,color:`var(--arc-antd-color-success)`}}):/* @__PURE__ */ E(z,{size:11,style:{flexShrink:0,color:`var(--arc-antd-color-text-3)`}}),/* @__PURE__ */ E(`span`,{style:{fontSize:12,color:o?`var(--arc-antd-color-success)`:`var(--arc-antd-color-text-3)`,transition:`color 0.2s`},children:s})]})]}),a&&a.length>0&&/* @__PURE__ */ E(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`3px 14px`,marginTop:5},children:a.map(({label:e,ok:t})=>/* @__PURE__ */ D(`div`,{style:{display:`flex`,alignItems:`center`,gap:4,fontSize:12,color:t?`var(--arc-antd-color-success)`:`var(--arc-antd-color-text-3)`,transition:`color 0.2s`},children:[E(t?I:z,{size:11,style:{flexShrink:0}}),/* @__PURE__ */ E(`span`,{children:e})]},e))})]})}var Pe;function Fe(){return(Fe=e((()=>{L(),B(),Pe={0:{label:``,color:`transparent`},1:{label:`弱`,color:`var(--arc-antd-color-danger)`},2:{label:`一般`,color:`var(--arc-antd-color-warning)`},3:{label:`良好`,color:`var(--arc-antd-color-info)`},4:{label:`强`,color:`var(--arc-antd-color-success)`}}})))()}function Ie(e,t,n){let r=n.kind===`user`?n.userId:void 0;return ue(()=>({listKey:r===void 0?e:[...t,`user`,r],extraKeys:r===void 0?void 0:[t]}),[e,t,r])}function Le({scope:e,enabled:t=!0,columnSettingsKey:n}){let r=e.kind===`self`,{listKey:i,extraKeys:s}=Ie(j.loginLogs,we.lists,e),{page:c,pageSize:u,buildPagination:d,bind:f,submittedParams:p,handleSearch:m,handleReset:h}=k({defaults:{eventType:void 0,status:void 0,timeRange:null},listKey:i,extraKeys:s}),g={page:c,pageSize:u,...fe({eventType:O(me,p.eventType),status:O(ge,p.status),...A(p.timeRange)})},_=be(g,t&&r),v=Te({...g,userId:e.kind===`user`?e.userId:void 0},t&&!r),y=r?_:v,b=y.data?.list??[],x=y.data?.total??0;return/* @__PURE__ */ D(T,{children:[/* @__PURE__ */ E(q,{filters:/* @__PURE__ */ D(T,{children:[/* @__PURE__ */ E(o,{placeholder:`全部事件`,items:he,...f(`eventType`)}),/* @__PURE__ */ E(a,{items:_e,...f(`status`)}),/* @__PURE__ */ E(l,{...f(`timeRange`)})]}),onSearch:m,onReset:h,filterTitle:`登录记录筛选`}),/* @__PURE__ */ E(oe,{loading:y.isFetching,dataSource:b,onRefresh:()=>void y.refetch(),columnSettingsKey:n,pagination:d(x)})]})}function Re({scope:e,enabled:t=!0,columnSettingsKey:n}){let r=e.kind===`self`,{listKey:i,extraKeys:s}=Ie(j.operationLogs,Se.lists,e),{page:u,pageSize:d,buildPagination:f,bind:p,bindKeyword:m,submittedParams:h,handleSearch:g,handleReset:_}=k({defaults:{module:``,description:``,method:void 0,path:``,ip:``,status:void 0,content:``,impersonated:void 0,timeRange:null},listKey:i,extraKeys:s}),v={page:u,pageSize:d,...fe({module:h.module,description:h.description,method:h.method,path:h.path,ip:h.ip,status:O(ve,h.status),content:h.content,impersonated:h.impersonated===`true`||h.impersonated!==`false`&&void 0,...A(h.timeRange)})},y=xe(v,t&&r),b=Ce({...v,userId:e.kind===`user`?e.userId:void 0},t&&!r),x=r?y:b,S=x.data?.list??[],ee=x.data?.total??0;return/* @__PURE__ */ D(T,{children:[/* @__PURE__ */ E(q,{filters:/* @__PURE__ */ D(T,{children:[/* @__PURE__ */ E(c,{placeholder:`请输入功能模块`,...m(`module`),width:160}),/* @__PURE__ */ E(c,{placeholder:`请输入操作描述`,...m(`description`),width:160}),/* @__PURE__ */ E(o,{placeholder:`全部请求方法`,items:ze,...p(`method`),width:140}),/* @__PURE__ */ E(c,{placeholder:`请输入请求路径`,...m(`path`),width:180}),/* @__PURE__ */ E(c,{placeholder:`请输入 IP 地址`,...m(`ip`),width:160}),/* @__PURE__ */ E(c,{placeholder:`请求/变更内容包含…`,...m(`content`),width:180}),/* @__PURE__ */ E(a,{items:ye,...p(`status`)}),/* @__PURE__ */ E(o,{placeholder:`全部操作来源`,items:Be,...p(`impersonated`),width:140}),/* @__PURE__ */ E(l,{...p(`timeRange`)})]}),onSearch:g,onReset:_,filterTitle:`操作记录筛选`}),/* @__PURE__ */ E(ce,{loading:x.isFetching,dataSource:S,onRefresh:()=>void x.refetch(),columnSettingsKey:n,pagination:f(ee)})]})}var ze,Be;function Ve(){return(Ve=e((()=>{s(),Y(),ae(),se(),ze=[`GET`,`POST`,`PUT`,`PATCH`,`DELETE`].map(e=>({value:e,label:e})),Be=[{value:`true`,label:`仅模拟操作`},{value:`false`,label:`仅本人操作`}]})))()}export{Fe as a,I as c,Ne as i,L as l,Re as n,je as o,Ve as r,$ as s,Le as t};
36
+ u(),W={name:`zoom-out`,size:24,node:[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]},W.node,G=d(W)})))()}function q(e){let{create:t,actions:n,mobileActions:i,filterTitle:a,actionTitle:o,className:s}=e,c,l,u,d;if(e.page){let t=r({page:e.page,specs:e.filters,overrides:e.overrides});c=t.keyword.length?t.keyword:void 0,l=t.filters.length||e.extraFilters?/* @__PURE__ */ D(T,{children:[t.filters,e.extraFilters]}):void 0,{onSearch:u,onReset:d}=e.page.toolbarProps}else({keyword:c,filters:l,onSearch:u,onReset:d}=e);let m=de(),h=J(t)||J(n)?/* @__PURE__ */ D(T,{children:[t,/* @__PURE__ */ E(ee,{ref:m.probeRef,children:n})]}):void 0;return/* @__PURE__ */ E(ne,{className:s,primary:/* @__PURE__ */ D(T,{children:[c,l,/* @__PURE__ */ E(p,{onClick:u}),/* @__PURE__ */ E(f,{onClick:d})]}),actions:h,mobilePrimary:/* @__PURE__ */ D(T,{children:[c,/* @__PURE__ */ E(p,{onClick:u}),t]}),mobileFilters:J(l)?l:void 0,mobileActions:i??(m.rendered?n:!1),filterTitle:a,actionTitle:o,onFilterApply:u,onFilterReset:d})}var J;function Y(){return(Y=e((()=>{te(),m(),S(),i(),J=e=>!!e&&!(Array.isArray(e)&&e.length===0)})))()}function Ee(e){if(!Number.isFinite(e))return null;let t=Number((Math.round(e/Q)*Q).toFixed(2));return Math.min(Z,Math.max(X,t))}function De({file:e,confirmLoading:t,onCancel:r,onConfirm:i}){let a=C(null),o=C(``),[s,c]=w(``),[l,u]=w(0),[d,f]=w(1),p=e=>{o.current.startsWith(`blob:`)&&URL.revokeObjectURL(o.current),o.current=e,c(e)};le(()=>{if(u(0),f(1),!e)p(``);else return p(URL.createObjectURL(e)),()=>{p(``)}},[e]);function m(e){u(t=>((t+e)%360+360)%360)}function h(e){if(e===void 0)return;let t=Ee(typeof e==`number`?e:e[0]);t!==null&&f(t)}function _(e){f(t=>Ee(Number((t+e).toFixed(2)))??t)}function y(){let e=a.current?.getCropperCanvas();e&&e.toBlob(e=>{e&&i(e)},`image/jpeg`,.85)}return/* @__PURE__ */ D(ie,{title:`裁剪头像`,visible:e!==null,onCancel:r,footer:/* @__PURE__ */ D(x,{children:[/* @__PURE__ */ E(b,{onClick:r,children:`取消`}),/* @__PURE__ */ E(b,{type:`primary`,loading:t,onClick:y,children:`确认并上传`})]}),width:520,centered:!0,children:[/* @__PURE__ */ E(`div`,{style:{width:`100%`,height:380},children:s&&/* @__PURE__ */ E(n,{ref:a,src:s,shape:`round`,aspectRatio:1,showResizeBox:!0,rotate:l,zoom:d,minZoom:X,maxZoom:Z,zoomStep:Q,onZoomChange:h,style:{width:`100%`,height:`100%`}})}),/* @__PURE__ */ D(`div`,{style:{display:`flex`,justifyContent:`center`,gap:12,marginTop:12},children:[/* @__PURE__ */ E(b,{icon:/* @__PURE__ */ E(g,{size:14}),size:`small`,theme:`borderless`,onClick:()=>m(-90),children:`向左旋转`}),/* @__PURE__ */ E(b,{icon:/* @__PURE__ */ E(v,{size:14}),size:`small`,theme:`borderless`,onClick:()=>m(90),children:`向右旋转`})]}),/* @__PURE__ */ D(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`center`,gap:12,marginTop:8},children:[/* @__PURE__ */ E(b,{icon:/* @__PURE__ */ E(G,{size:14}),size:`small`,theme:`borderless`,"aria-label":`缩小`,disabled:d<=X,onClick:()=>_(-.1),children:`缩小`}),/* @__PURE__ */ D(`span`,{style:{fontSize:12,color:`var(--arc-antd-color-text-2)`,minWidth:44,textAlign:`center`},children:[d.toFixed(1),`x`]}),/* @__PURE__ */ E(b,{icon:/* @__PURE__ */ E(H,{size:14}),size:`small`,theme:`borderless`,"aria-label":`放大`,disabled:d>=Z,onClick:()=>_(Q),children:`放大`})]})]})}var X,Z,Q;function Oe(){return(Oe=e((()=>{y(),h(),_(),U(),K(),re(),X=.1,Z=3,Q=.1})))()}function ke({onUploaded:e,uploadBlob:n,maxSizeMB:r=2}){let i=C(null),[a,o]=w(null),[s,c]=w(!1);function l(e){let n=e.target.files?.[0];n&&(e.target.value=``,n.type.startsWith(`image/`)?n.size>r*1024*1024?t.warning(`图片不能超过 ${r}MB`):o(n):t.warning(`请选择图片文件`))}async function u(r){let i;c(!0);try{i=await n(r)}catch(e){t.error(e instanceof Error&&e.message?e.message:`上传失败`);return}finally{c(!1)}await e(i)!==!1&&o(null)}return{cropFile:a,uploading:s,openFilePicker:()=>i.current?.click(),fileInputProps:{ref:i,type:`file`,accept:`image/*`,style:{display:`none`},onChange:l},cropperProps:{file:a,onCancel:()=>o(null),onConfirm:e=>{u(e)}}}}function Ae(){return(Ae=e((()=>{y()})))()}function je({visible:e,currentAvatar:t,confirmLoading:n,uploadBlob:r,onCancel:i,onSelect:a,onRemove:o}){let{assetBasePath:s}=pe(),c=Array.from({length:12},(e,t)=>`${s}avatars/avatar-${String(t+1).padStart(2,`0`)}.svg`),l=ke({uploadBlob:r,onUploaded:e=>{a(e)}}),u=l.uploading||(n??!1);return/* @__PURE__ */ D(T,{children:[/* @__PURE__ */ D(ie,{title:`更换头像`,visible:e,onCancel:i,footer:null,width:480,centered:!0,children:[/* @__PURE__ */ D(`div`,{style:{marginBottom:16},children:[/* @__PURE__ */ E(`div`,{style:{fontSize:13,color:`var(--arc-antd-color-text-2)`,marginBottom:12},children:`预设头像`}),/* @__PURE__ */ E(`div`,{className:`auto-grid`,style:{"--auto-grid-min":`80px`,"--auto-grid-cols":4,"--auto-grid-gap":`12px`},children:c.map(e=>/* @__PURE__ */ E(`button`,{type:`button`,onClick:()=>a(e),style:{border:t===e?`2px solid var(--arc-antd-color-primary)`:`2px solid transparent`,borderRadius:`var(--arc-antd-border-radius-medium)`,padding:4,cursor:`pointer`,background:`var(--arc-antd-color-fill-0)`,display:`flex`,alignItems:`center`,justifyContent:`center`,transition:`border-color 0.2s`},onMouseEnter:n=>{t!==e&&(n.currentTarget.style.borderColor=`var(--arc-antd-color-primary-light-hover)`)},onMouseLeave:n=>{t!==e&&(n.currentTarget.style.borderColor=`transparent`)},children:/* @__PURE__ */ E(`img`,{src:e,alt:`预设头像`,width:72,height:72,style:{borderRadius:`var(--arc-antd-border-radius-small)`,display:`block`},loading:`lazy`})},e))})]}),/* @__PURE__ */ D(`div`,{style:{borderTop:`1px solid var(--arc-antd-color-border)`,paddingTop:16},children:[/* @__PURE__ */ E(`div`,{style:{fontSize:13,color:`var(--arc-antd-color-text-2)`,marginBottom:8},children:`本地上传(≤ 2MB,上传后可裁剪、旋转、缩放)`}),/* @__PURE__ */ D(`div`,{style:{display:`flex`,gap:8},children:[/* @__PURE__ */ E(b,{icon:/* @__PURE__ */ E(N,{size:14}),loading:l.uploading,onClick:l.openFilePicker,children:`选择图片`}),t&&o&&/* @__PURE__ */ E(b,{theme:`borderless`,type:`danger`,onClick:o,children:`移除头像`})]}),/* @__PURE__ */ E(`input`,{...l.fileInputProps})]})]}),/* @__PURE__ */ E(De,{...l.cropperProps,confirmLoading:u})]})}function $(){return($=e((()=>{y(),P(),re(),Oe(),Ae()})))()}function Me(e){if(!e)return 0;if(e.length<6)return 1;let t=0;return/[a-z]/.test(e)&&t++,/[A-Z]/.test(e)&&t++,/\d/.test(e)&&t++,/[^a-zA-Z0-9]/.test(e)&&t++,e.length>=10&&t++,t<=1?1:t===2?2:t===3?3:4}function Ne({password:e,policy:t}){let n=ue(()=>Me(e),[e]);if(!e)return null;let{label:r,color:i}=Pe[n],a=t?[...t.requireUppercase?[{label:`含大写字母`,ok:/[A-Z]/.test(e)}]:[],...t.requireSpecialChar?[{label:`含特殊字符`,ok:/[^a-zA-Z0-9]/.test(e)}]:[]]:null,o=t?e.length>=t.minLength:null,s=t?`至少 ${t.minLength} 位`:null;return/* @__PURE__ */ D(`div`,{style:{padding:`4px 0`},children:[/* @__PURE__ */ D(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[/* @__PURE__ */ E(`div`,{style:{display:`flex`,gap:3,flex:1},children:[1,2,3,4].map(e=>/* @__PURE__ */ E(`div`,{style:{flex:1,height:4,borderRadius:`var(--arc-antd-border-radius-small)`,background:e<=n?i:`var(--arc-antd-color-fill-2)`,transition:`background 0.25s ease`}},e))}),/* @__PURE__ */ E(`span`,{style:{fontSize:12,fontWeight:600,color:i,minWidth:28,textAlign:`right`},children:r}),s!==null&&/* @__PURE__ */ D(`div`,{style:{display:`flex`,alignItems:`center`,gap:3,flexShrink:0},children:[o?/* @__PURE__ */ E(I,{size:11,style:{flexShrink:0,color:`var(--arc-antd-color-success)`}}):/* @__PURE__ */ E(z,{size:11,style:{flexShrink:0,color:`var(--arc-antd-color-text-3)`}}),/* @__PURE__ */ E(`span`,{style:{fontSize:12,color:o?`var(--arc-antd-color-success)`:`var(--arc-antd-color-text-3)`,transition:`color 0.2s`},children:s})]})]}),a&&a.length>0&&/* @__PURE__ */ E(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`3px 14px`,marginTop:5},children:a.map(({label:e,ok:t})=>/* @__PURE__ */ D(`div`,{style:{display:`flex`,alignItems:`center`,gap:4,fontSize:12,color:t?`var(--arc-antd-color-success)`:`var(--arc-antd-color-text-3)`,transition:`color 0.2s`},children:[E(t?I:z,{size:11,style:{flexShrink:0}}),/* @__PURE__ */ E(`span`,{children:e})]},e))})]})}var Pe;function Fe(){return(Fe=e((()=>{L(),B(),Pe={0:{label:``,color:`transparent`},1:{label:`弱`,color:`var(--arc-antd-color-danger)`},2:{label:`一般`,color:`var(--arc-antd-color-warning)`},3:{label:`良好`,color:`var(--arc-antd-color-info)`},4:{label:`强`,color:`var(--arc-antd-color-success)`}}})))()}function Ie(e,t,n){let r=n.kind===`user`?n.userId:void 0;return ue(()=>({listKey:r===void 0?e:[...t,`user`,r],extraKeys:r===void 0?void 0:[t]}),[e,t,r])}function Le({scope:e,enabled:t=!0,columnSettingsKey:n}){let r=e.kind===`self`,{listKey:i,extraKeys:s}=Ie(j.loginLogs,Se.lists,e),{page:c,pageSize:u,buildPagination:d,bind:f,submittedParams:p,handleSearch:m,handleReset:h}=k({defaults:{eventType:void 0,status:void 0,timeRange:null},listKey:i,extraKeys:s}),g={page:c,pageSize:u,...fe({eventType:O(me,p.eventType),status:O(ge,p.status),...A(p.timeRange)})},_=ve(g,t&&r),v=Ce({...g,userId:e.kind===`user`?e.userId:void 0},t&&!r),y=r?_:v,b=y.data?.list??[],x=y.data?.total??0;return/* @__PURE__ */ D(T,{children:[/* @__PURE__ */ E(q,{filters:/* @__PURE__ */ D(T,{children:[/* @__PURE__ */ E(o,{placeholder:`全部事件`,items:he,...f(`eventType`)}),/* @__PURE__ */ E(a,{items:_e,...f(`status`)}),/* @__PURE__ */ E(l,{...f(`timeRange`)})]}),onSearch:m,onReset:h,filterTitle:`登录记录筛选`}),/* @__PURE__ */ E(oe,{loading:y.isFetching,dataSource:b,onRefresh:()=>void y.refetch(),columnSettingsKey:n,pagination:d(x)})]})}function Re({scope:e,enabled:t=!0,columnSettingsKey:n}){let r=e.kind===`self`,{listKey:i,extraKeys:s}=Ie(j.operationLogs,be.lists,e),{page:u,pageSize:d,buildPagination:f,bind:p,bindKeyword:m,submittedParams:h,handleSearch:g,handleReset:_}=k({defaults:{module:``,description:``,method:void 0,path:``,ip:``,status:void 0,content:``,impersonated:void 0,timeRange:null},listKey:i,extraKeys:s}),v={page:u,pageSize:d,...fe({module:h.module,description:h.description,method:h.method,path:h.path,ip:h.ip,status:O(we,h.status),content:h.content,impersonated:h.impersonated===`true`||h.impersonated!==`false`&&void 0,...A(h.timeRange)})},y=ye(v,t&&r),b=xe({...v,userId:e.kind===`user`?e.userId:void 0},t&&!r),x=r?y:b,S=x.data?.list??[],ee=x.data?.total??0;return/* @__PURE__ */ D(T,{children:[/* @__PURE__ */ E(q,{filters:/* @__PURE__ */ D(T,{children:[/* @__PURE__ */ E(c,{placeholder:`请输入功能模块`,...m(`module`),width:160}),/* @__PURE__ */ E(c,{placeholder:`请输入操作描述`,...m(`description`),width:160}),/* @__PURE__ */ E(o,{placeholder:`全部请求方法`,items:ze,...p(`method`),width:140}),/* @__PURE__ */ E(c,{placeholder:`请输入请求路径`,...m(`path`),width:180}),/* @__PURE__ */ E(c,{placeholder:`请输入 IP 地址`,...m(`ip`),width:160}),/* @__PURE__ */ E(c,{placeholder:`请求/变更内容包含…`,...m(`content`),width:180}),/* @__PURE__ */ E(a,{items:Te,...p(`status`)}),/* @__PURE__ */ E(o,{placeholder:`全部操作来源`,items:Be,...p(`impersonated`),width:140}),/* @__PURE__ */ E(l,{...p(`timeRange`)})]}),onSearch:g,onReset:_,filterTitle:`操作记录筛选`}),/* @__PURE__ */ E(ce,{loading:x.isFetching,dataSource:S,onRefresh:()=>void x.refetch(),columnSettingsKey:n,pagination:f(ee)})]})}var ze,Be;function Ve(){return(Ve=e((()=>{s(),Y(),ae(),se(),ze=[`GET`,`POST`,`PUT`,`PATCH`,`DELETE`].map(e=>({value:e,label:e})),Be=[{value:`true`,label:`仅模拟操作`},{value:`false`,label:`仅本人操作`}]})))()}export{Fe as a,I as c,Ne as i,L as l,Re as n,je as o,Ve as r,$ as s,Le as t};
@@ -0,0 +1,22 @@
1
+ import{n as e,t}from"./rolldown-runtime-BKuNeK48.js";import{a as n,i as r,t as i}from"./controls-C5dPckUT.js";import{t as a}from"./typography-DKK_iHcj.js";import{n as o}from"./feedback-BnjMKZpz.js";import{d as s,p as c}from"./ConfigurableTable-DzmZDd8F.js";import{o as l,r as u}from"./search-filters-CRIhZ0gL.js";import{n as d,t as f}from"./x-Ak9hw1R9.js";import{n as p}from"./list-0CbyOlT9.js";import{C as m,d as h,g,n as _,t as v,y}from"./ui-BFsHoY7a.js";import{n as b,t as x}from"./UserAvatar-B8CFnTCn.js";import{t as S}from"./builtin_esm-external-require-react-BsBndGeN.js";import{createContext as ee,useCallback as C,useContext as te,useEffect as w,useMemo as T,useState as E}from"react";import{Fragment as ne,jsx as D,jsxs as O}from"react/jsx-runtime";import{usePagination as re}from"@fudanda/react-core/hooks/usePagination";import{textMatches as k}from"@fudanda/react-core/utils/pinyin";import{usePinyinReady as ie}from"@fudanda/react-core/hooks/usePinyinReady";import{useScopeMembers as ae}from"@fudanda/react-core/hooks/queries/scope-members";function oe(){return te(A)?.defaultOptions??{}}var A;function se(){return(se=e((()=>{A=ee(null)})))()}function ce(e){return typeof e==`function`}function le(e,...t){return ce(e)?e(...t):e}/* @__NO_SIDE_EFFECTS__ */
2
+ function ue({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0)n=e.nextSub;else{for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}}while(1)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(1)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function j(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}function M(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=I(n,e)}function de(){if(!(U>0)){for(;B<V;){let e=N[B];N[B++]=void 0,e.notify()}B=0,V=0}}function fe(e,t){let n=typeof e==`function`,r=e,i={_snapshot:n?void 0:e,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:+!n,get(){return H!==void 0&&F(i,H,P),i._snapshot},subscribe(e){let t=j(e),n={current:!1},r=pe(()=>{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=H,o=t?.compare??Object.is;if(n)H=i,++P,i.depsTail=void 0;else if(e===void 0)return!1;n&&(i.flags=5);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{H=a,n&&(i.flags&=-5),M(i)}}};return n?(i.flags=17,i.get=function(){let e=i.flags;if(e&16||e&32&&R(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&z(e)}}else e&32&&(i.flags=e&-33);return H!==void 0&&F(i,H,P),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(L(e),z(e),de())}},i}function pe(e){let t=()=>{let t=H;H=n,++P,n.depsTail=void 0,n.flags=6;try{return e()}finally{H=t,n.flags&=-5,M(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:6,notify(){let e=this.flags;e&16||e&32&&R(this.deps,this)?t():this.flags=2},stop(){this.flags=0,this.depsTail=void 0,M(this)}};return t(),n}var N,P,F,I,L,R,z,B,V,H,U;function W(){return(W=e((()=>{N=[],P=0,{link:F,unlink:I,propagate:L,checkDirty:R,shallowPropagate:z}=/* @__PURE__ */ ue({update(e){return e._update()},notify(e){N[V++]=e,e.flags&=-3},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=17,M(e))}}),B=0,V=0,U=0})))()}var G;function K(){return(K=e((()=>{W(),G=class{constructor(e,t){this.atom=fe(e),this.get=this.get.bind(this),this.setState=this.setState.bind(this),this.subscribe=this.subscribe.bind(this),t&&(this.actions=t(this))}setState(e){this.atom.set(e)}get state(){return this.atom.get()}get(){return this.state}subscribe(e){return this.atom.subscribe(j(e))}}})))()}function q(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!t.has(n)||!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();let n=J(e);if(n.length!==J(t).length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!Object.is(e[n[r]],t[n[r]]))return!1;return!0}function J(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}var Y;function me(){return(me=e((()=>{Y=class{#e;constructor({pluginId:e}){this.#e=e}getPluginId(){return this.#e}createEventPayload(e,t){return{type:`${this.#e}:${e}`,payload:t,pluginId:this.#e}}emit(e,t){}on(e,t,n){return()=>{}}onAll(e){return()=>{}}onAllPluginEvents(e){return()=>{}}}})))()}var he;function ge(){return(ge=e((()=>{me(),he=Y})))()}function _e(e,t){xe.set(e,t)}function ve(e){if(e!==void 0)try{return JSON.parse(JSON.stringify(e))}catch{return null}}function ye(e){return typeof e.get==`function`?e.get():e.state}function be(e){return{key:e.key,store:{state:ve(ye(e.store))},options:ve(e.options)}}var xe,Se,Ce,X;function we(){return(we=e((()=>{ge(),xe=/* @__PURE__ */ new Map,Se=class extends he{constructor(e){super({pluginId:`pacer`,debug:e?.debug,reconnectEveryMs:1e3})}},Ce=(e,t)=>{let n=t.key;n&&(_e(n,t),X.emit(e,be({...t,key:n})))},X=new Se})))()}
3
+ /**
4
+ * @license React
5
+ * use-sync-external-store-shim.production.js
6
+ *
7
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
8
+ *
9
+ * This source code is licensed under the MIT license found in the
10
+ * LICENSE file in the root directory of this source tree.
11
+ */
12
+ var Te=/* @__PURE__ */ t((e=>{var t=S();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var d=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?d:t.useSyncExternalStore})),Ee=/* @__PURE__ */ t(((e,t)=>{t.exports=Te()})),De=/* @__PURE__ */ t((e=>{
13
+ /**
14
+ * @license React
15
+ * use-sync-external-store-shim/with-selector.production.js
16
+ *
17
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
18
+ *
19
+ * This source code is licensed under the MIT license found in the
20
+ * LICENSE file in the root directory of this source tree.
21
+ */
22
+ var t=S(),n=Ee();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),Oe=/* @__PURE__ */ t(((e,t)=>{t.exports=De()}));function ke(e,t){return e===t}function Ae(e,t=e=>e,n){let r=n?.compare??ke,i=C(t=>{let{unsubscribe:n}=e.subscribe(t);return n},[e]),a=C(()=>e.get(),[e]);return(0,je.useSyncExternalStoreWithSelector)(i,a,a,t,r)}var je;function Me(){return(Me=e((()=>{je=Oe()})))()}function Ne(){return{canLeadingExecute:!0,executionCount:0,isPending:!1,lastArgs:void 0,status:`idle`,maybeExecuteCount:0}}var Pe,Z;function Fe(){return(Fe=e((()=>{we(),K(),Pe={enabled:!0,leading:!1,trailing:!0,wait:0},Z=class{#e;constructor(e,t){this.fn=e,this.store=new G(Ne()),this.setOptions=e=>{this.options={...this.options,...e},this.#n()||this.cancel()},this.#t=e=>{this.store.setState(t=>{let n={...t,...e},{isPending:r}=n;return{...n,status:this.#n()?r?`pending`:`idle`:`disabled`}}),Ce(`Debouncer`,this)},this.#n=()=>!!le(this.options.enabled,this),this.#r=()=>le(this.options.wait,this),this.maybeExecute=(...e)=>{if(!this.#n())return;this.#t({maybeExecuteCount:this.store.state.maybeExecuteCount+1});let t=!1;this.options.leading&&this.store.state.canLeadingExecute&&(this.#t({canLeadingExecute:!1}),t=!0,this.#i(...e)),this.options.trailing&&this.#t({isPending:!0,lastArgs:e}),this.#e&&clearTimeout(this.#e),this.#e=setTimeout(()=>{this.#t({canLeadingExecute:!0}),this.options.trailing&&!t&&this.#i(...e)},this.#r())},this.#i=(...e)=>{this.#n()&&(this.fn(...e),this.#t({executionCount:this.store.state.executionCount+1,isPending:!1,lastArgs:void 0}),this.options.onExecute?.(e,this))},this.flush=()=>{this.store.state.isPending&&this.store.state.lastArgs&&(this.#a(),this.#i(...this.store.state.lastArgs))},this.#a=()=>{this.#e&&=(clearTimeout(this.#e),void 0)},this.cancel=()=>{this.#a(),this.#t({canLeadingExecute:!0,isPending:!1})},this.reset=()=>{this.#t(Ne())},this.key=t.key,this.options={...Pe,...t},this.#t(this.options.initialState??{}),this.key&&X.on(`d-Debouncer`,e=>{e.payload.key===this.key&&(this.#t(e.payload.store.state),this.setOptions(e.payload.options))})}#t;#n;#r;#i;#a}})))()}function Ie(e,t,n=()=>({})){let r={...oe().debouncer,...t},[i]=E(()=>{let t=new Z(e,r);return t.Subscribe=function(e){let n=Ae(t.store,e.selector,{compare:q});return typeof e.children==`function`?e.children(n):e.children},t});i.fn=e,i.setOptions(r),w(()=>()=>{r.onUnmount?r.onUnmount(i):i.cancel()},[]);let a=Ae(i.store,n,{compare:q});return T(()=>({...i,state:a}),[i,a])}function Le(){return(Le=e((()=>{se(),Me(),Fe()})))()}function Re(e,t,n){let[r,i]=E(e),a=Ie(i,t,n);return[r,a.maybeExecute,a]}function ze(){return(ze=e((()=>{Le()})))()}function Be(e,t,n){let[r,i,a]=Re(e,t,n);return w(()=>{i(e)},[e,i]),[r,a]}function Ve(){return(Ve=e((()=>{ze()})))()}function He({preview:e,count:t,scope:n}){let[r,i]=E(!1),a=e??[],o=t??0;if(o===0)return/* @__PURE__ */ D(y,{color:`blue`,children:`0`});let s=/* @__PURE__ */ O(g,{spacing:6,children:[/* @__PURE__ */ D(_,{maxCount:4,size:`extra-extra-small`,overlapFrom:`end`,children:a.map(e=>/* @__PURE__ */ D(v,{style:{width:22,height:22,minWidth:22,lineHeight:`22px`,fontSize:12,cursor:`inherit`},src:e.avatar??void 0,alt:e.nickname,color:`light-blue`,title:e.nickname,children:e.nickname?.[0]},e.id))}),/* @__PURE__ */ D(y,{color:`blue`,style:{flexShrink:0},children:o})]});return n?/* @__PURE__ */ O(ne,{children:[/* @__PURE__ */ D(`button`,{type:`button`,onClick:()=>i(!0),"aria-label":`查看${Q[n.type]}「${n.name}」的 ${o} 名成员`,style:{display:`inline-flex`,alignItems:`center`,padding:0,border:`none`,background:`transparent`,cursor:`pointer`,font:`inherit`,color:`inherit`},children:s}),r&&/* @__PURE__ */ D(Ue,{scope:n,total:o,onClose:()=>i(!1)})]}):s}function Ue({scope:e,total:t,onClose:n}){let[r,i]=E(``),[c,l]=E(``),{page:d,pageSize:f,setPage:m,resetPage:_}=re(),y=ae(e.type,e.id,{page:d,pageSize:f,keyword:c||void 0}),b=y.data,[x]=Be(r.trim(),{wait:300});return w(()=>{l(e=>e===x?e:(_(),x))},[x,_]),/* @__PURE__ */ O(o,{title:`${Q[e.type]}「${e.name}」成员`,visible:!0,onCancel:n,footer:null,width:640,closeOnEsc:!0,children:[/* @__PURE__ */ O(g,{style:{width:`100%`,marginBottom:8},children:[/* @__PURE__ */ D(u,{placeholder:`搜索昵称 / 用户名`,value:r,onChange:i}),/* @__PURE__ */ O(a.Text,{type:`tertiary`,size:`small`,children:[`共 `,t,` 人`]})]}),/* @__PURE__ */ D(p,{size:`small`,loading:y.isFetching,dataSource:b?.list??[],grid:{span:12},emptyContent:/* @__PURE__ */ D(h,{description:c?`没有匹配「${c}」的成员`:`暂无成员`}),renderItem:e=>/* @__PURE__ */ D(p.Item,{style:{padding:`8px 4px`},header:/* @__PURE__ */ D(v,{size:`small`,src:e.avatar??void 0,color:`light-blue`,alt:e.nickname,children:e.nickname?.[0]}),main:/* @__PURE__ */ O(`div`,{style:{minWidth:0},children:[/* @__PURE__ */ D(a.Text,{ellipsis:{showTooltip:!0},style:{maxWidth:`100%`},children:e.nickname}),/* @__PURE__ */ D(`div`,{children:/* @__PURE__ */ D(a.Text,{type:`tertiary`,size:`small`,ellipsis:{showTooltip:!0},style:{maxWidth:`100%`},children:e.username})})]})},e.id)}),(b?.total??0)>f&&/* @__PURE__ */ D(`div`,{style:{display:`flex`,justifyContent:`flex-end`,marginTop:8},children:/* @__PURE__ */ D(s,{size:`small`,hoverShowPageSelect:!0,currentPage:d,pageSize:f,total:b?.total??0,onPageChange:m})})]})}var Q;function We(){return(We=e((()=>{Ve(),m(),l(),Q={department:`部门`,role:`角色`,position:`岗位`,userGroup:`用户组`}})))()}function Ge(e,t){let n=new Map(e.map(e=>[e.id,e])),r=/* @__PURE__ */ new Map,i=[];e.forEach(e=>{let t=e.parentId&&n.has(e.parentId)?e.parentId:0;if(t){r.has(t)||r.set(t,[]);let n=r.get(t);n&&n.push(e.id)}else i.push(e.id)});let a=/* @__PURE__ */ new Map,o=/* @__PURE__ */ new Set;t.forEach(e=>{let t=e._departmentId??null;if(t!==null&&n.has(t)){a.has(t)||a.set(t,[]);let n=a.get(t);n&&n.push(e),o.add(e.value)}});function s(e){let t=n.get(e);if(!t)return null;let i=(r.get(e)??[]).map(s).filter(e=>e!==null),o=a.get(e)??[],c=[...i,...o];return{key:`dept-${e}`,value:`dept-${e}`,label:t.name,disabled:!0,children:c}}let c=[];i.forEach(e=>{let t=s(e);t&&c.push(t)});let l=t.filter(e=>!o.has(e.value));return l.length>0&&c.push({key:`dept-none`,value:`dept-none`,label:`无部门`,disabled:!0,children:l}),c}function Ke(e){let t=/* @__PURE__ */ new Map,n=[];e.forEach(e=>{if(e._departmentName){t.has(e._departmentName)||t.set(e._departmentName,[]);let n=t.get(e._departmentName);n&&n.push(e)}else n.push(e)});let r=[];return t.forEach((e,t)=>{r.push({key:`dept-${t}`,value:`dept-${t}`,label:t,disabled:!0,children:e})}),n.length>0&&r.push({key:`dept-none`,value:`dept-none`,label:`无部门`,disabled:!0,children:n}),r}function qe({dataSource:e,value:t,onChange:a,departments:o}){let[s,l]=E(`flat`);ie();let u=T(()=>e.map(e=>({key:String(e.id),value:e.id,label:e.nickname,disabled:!1,_username:e.username,_avatar:e.avatar,_departmentName:e.departmentName,_departmentId:e.departmentId})),[e]),d=(e,t)=>k(t._username??``,e)||k(t.label??``,e)||k(t._departmentName??``,e),p=e=>/* @__PURE__ */ D(`div`,{style:{height:52,boxSizing:`border-box`,display:`flex`,alignItems:`center`,padding:`0 12px`},children:/* @__PURE__ */ D(i,{onChange:()=>e.onChange(e.value),checked:e.checked,style:{display:`flex`,alignItems:`center`,width:`100%`},children:/* @__PURE__ */ O(`div`,{style:{display:`flex`,alignItems:`center`,gap:10,minWidth:0},children:[/* @__PURE__ */ D(x,{name:e.label,avatar:e._avatar,size:32,style:{flexShrink:0}}),/* @__PURE__ */ O(`div`,{style:{minWidth:0},children:[/* @__PURE__ */ O(`div`,{style:{fontSize:14,lineHeight:`20px`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:[e.label,/* @__PURE__ */ D(`span`,{style:{fontSize:12,color:`var(--arc-antd-color-text-2)`,marginLeft:4,fontWeight:400},children:e._username})]}),e._departmentName&&/* @__PURE__ */ D(`div`,{style:{fontSize:12,lineHeight:`16px`,color:`var(--arc-antd-color-text-2)`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e._departmentName})]})]})})},e.key),m=e=>/* @__PURE__ */ O(`div`,{style:{height:52,boxSizing:`border-box`,display:`flex`,alignItems:`center`,padding:`0 12px`,gap:10,justifyContent:`space-between`},children:[/* @__PURE__ */ D(x,{name:e.label,avatar:e._avatar,size:32,style:{flexShrink:0}}),/* @__PURE__ */ O(`div`,{style:{flex:1,minWidth:0},children:[/* @__PURE__ */ O(`div`,{style:{fontSize:14,lineHeight:`20px`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:[e.label,/* @__PURE__ */ D(`span`,{style:{fontSize:12,color:`var(--arc-antd-color-text-2)`,marginLeft:4,fontWeight:400},children:e._username})]}),e._departmentName&&/* @__PURE__ */ D(`div`,{style:{fontSize:12,lineHeight:`16px`,color:`var(--arc-antd-color-text-2)`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e._departmentName})]}),/* @__PURE__ */ D(f,{size:14,onClick:e.onRemove,style:{cursor:`pointer`,color:`var(--arc-antd-color-text-2)`,flexShrink:0}})]},e.key),h=T(()=>o&&o.length>0?Ge(o,u):Ke(u),[o,u]),g=C((e,t)=>{let n=t;return n._username?k(n._username,e)||k(n.label??``,e)||k(n._departmentName??``,e):!1},[]),_=C((e,t)=>{let n=t;return n._username?/* @__PURE__ */ O(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[/* @__PURE__ */ D(x,{name:n.label??``,avatar:n._avatar,size:24,style:{flexShrink:0}}),/* @__PURE__ */ D(`span`,{style:{fontSize:14},children:n.label}),/* @__PURE__ */ D(`span`,{style:{fontSize:12,color:`var(--arc-antd-color-text-2)`},children:n._username})]}):/* @__PURE__ */ D(`span`,{style:{fontSize:13,fontWeight:500},children:e})},[]),v={style:{width:`100%`},value:t,onChange:e=>a(e||[]),renderSelectedItem:m,inputProps:{placeholder:`搜索姓名、账号、部门`},emptyContent:{left:`暂无可选用户`,right:`暂无成员`,search:`无匹配用户`}};return/* @__PURE__ */ O(`div`,{children:[/* @__PURE__ */ D(`div`,{style:{marginBottom:8,display:`flex`,justifyContent:`flex-end`},children:/* @__PURE__ */ O(n,{value:s,onChange:e=>l(e.target.value),type:`button`,children:[/* @__PURE__ */ D(r,{value:`flat`,children:`列表`}),/* @__PURE__ */ D(r,{value:`tree`,children:`部门树`})]})}),s===`flat`?/* @__PURE__ */ D(c,{...v,dataSource:u,filter:d,renderSourceItem:p}):/* @__PURE__ */ D(c,{...v,type:`treeList`,dataSource:h,filter:!0,treeProps:{filterTreeNode:g,renderLabel:_,disableStrictly:!1}})]})}function $(){return($=e((()=>{m(),d(),b()})))()}export{We as i,$ as n,He as r,qe as t};
@@ -0,0 +1,36 @@
1
+ import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{o as t}from"./controls-C5dPckUT.js";import{t as n}from"./typography-DKK_iHcj.js";import{i as r,n as i,r as a}from"./feedback-BnjMKZpz.js";import{n as o,t as s}from"./tabs-BobA_IcO.js";import{_ as c,a as l,f as u,g as d,i as f,l as p,n as m,o as h,r as g,s as _,t as v}from"./ConfigurableTable-DzmZDd8F.js";import{a as y,o as b,r as x,t as ee}from"./search-filters-CRIhZ0gL.js";import{n as S,t as C}from"./createLucideIcon-BtwfYE6A.js";import{n as te,t as ne}from"./MasterDetailLayout-sjPWw8BI.js";import{n as re,r as ie,s as w,t as ae}from"./toolbar-controls-CThS0xuP.js";import{a as oe,i as se,n as ce,o as le,r as ue,s as de,t as fe}from"./UserLogsPanels-BHeSxWrk.js";import{n as pe,t as me}from"./chevron-down-mn2tSKQd.js";import{i as T,n as he,r as ge,t as _e}from"./chevrons-up-down-2M6hY6wt.js";import{n as ve,t as ye}from"./copy-ofLPH1I0.js";import{n as be,t as xe}from"./eye-off-BtJoIT5n.js";import{n as Se,r as Ce}from"./EntityRelationButton-DWn1rC2J.js";import{n as we,t as Te}from"./upload-M-n6woFv.js";import{i as Ee,s as De,t as E}from"./form-CQutQFiD.js";import{C as D,S as O,a as k,g as Oe,h as A,l as ke,o as j,u as M,y as N}from"./ui-BFsHoY7a.js";import{i as P,r as Ae,t as je}from"./confirm-BtBBEqk8.js";import{n as Me,t as Ne}from"./useStatusToggle-B2qZaoc-.js";import{n as Pe,t as Fe}from"./ResponsiveTableActions-y54aSdhs.js";import{n as Ie,r as Le,t as Re}from"./deleteAction-CCocr5uV.js";import{n as ze}from"./listTableProps-DDynsnLF.js";import{n as Be,t as Ve}from"./DateTimeText-CIt0Qy45.js";import{a as He,i as Ue,o as We,r as Ge,t as Ke}from"./EditFormModal-DNHOZHxM.js";import{n as qe,t as Je}from"./ModalFooter-RMlvqrO9.js";import{n as F,r as Ye}from"./clipboard-ERcMSMRH.js";import{n as Xe,t as Ze}from"./UserAvatar-B8CFnTCn.js";import{n as I,t as Qe}from"./AppModal-DJzQA6FR.js";import{n as $e,t as L}from"./PasswordInput-DGEJO9yx.js";import{n as et,t as tt}from"./DictTag-2-adKbYg.js";import{n as nt,t as rt}from"./ExportButton-AzH4D0oW.js";import{a as it,i as at,n as ot,r as st,t as ct}from"./DataScopePanel-B2-x8Jcz.js";import{useCallback as lt,useEffect as ut,useMemo as R,useRef as z,useState as B}from"react";import{Fragment as V,jsx as H,jsxs as U}from"react/jsx-runtime";import{abortSubmit as dt}from"@fudanda/react-core/lib/abort-submit";import{USER_STATUSES as ft,buildTree as W,enumValueOf as pt}from"@fudanda/shared/core";import{useDictItems as mt}from"@fudanda/react-core/hooks/useDictItems";import{goTransport as ht}from"@fudanda/react-core/lib/go-transport";import{identityDirectoryContract as G,userContract as gt}from"@fudanda/react-core/lib/native-operations";import{api as _t,useApiMutation as vt}from"@fudanda/react-core/lib/contract-query";import{usePermission as yt}from"@fudanda/react-core/hooks/usePermission";import{useFilterQuery as bt}from"@fudanda/react-core/hooks/useFilterQuery";import{useListSearch as xt}from"@fudanda/react-core/hooks/useListSearch";import{formatDateForApi as St,formatDateTimeRangeForApi as Ct}from"@fudanda/react-core/utils/date";import{useListDeepLink as wt}from"@fudanda/react-core/hooks/useListDeepLink";import{useAssignUserRoles as Tt,useBatchUserPassword as Et,useBatchUserStatus as Dt,useDeleteUsers as Ot,useKickUserSessions as kt,useResetUserPassword as At,useSaveUser as jt,useSaveUserDataPermission as K,useSaveUserMenus as Mt,useUnlockUser as Nt,useUserDataPermission as Pt,useUserDetail as Ft,useUserEffectivePermissions as It,useUserList as Lt,userKeys as Rt}from"@fudanda/react-core/hooks/queries/users";import{useAuth as zt}from"@fudanda/react-core/hooks/useAuth";import{useMenuTree as Bt}from"@fudanda/react-core/hooks/queries/menus";import{downloadBlob as Vt}from"@fudanda/react-core/utils/download";import{useIdentityCapabilities as Ht}from"@fudanda/react-core/hooks/queries/auth-public";import{DATA_SCOPES as Ut,mostPermissiveDataScope as Wt}from"@fudanda/shared/identity";import{uploadAvatarBlobToFileCenter as Gt}from"@fudanda/react-core/utils/avatar-upload";import{formatPasswordPolicyHint as Kt}from"@fudanda/shared/settings";import{useMySettings as qt}from"@fudanda/react-core/hooks/queries/settings";import{isAllKeysExpanded as Jt}from"@fudanda/react-core/hooks/useTreeExpansion";import{departmentsToTreeData as Yt,useFlatDepartments as Xt}from"@fudanda/react-core/hooks/queries/departments";import{useAllPositions as Zt}from"@fudanda/react-core/hooks/queries/positions";import{useAllRoles as Qt}from"@fudanda/react-core/hooks/queries/roles";import{useRevealedValue as $t}from"@fudanda/react-core/components/sensitive/useRevealedValue";import{useSensitiveFormFields as en}from"@fudanda/react-core/hooks/useSensitiveFormFields";import{useDirectoryCreate as tn,useDirectoryProvision as nn,useDirectorySync as rn,useDirectorySyncStatus as q,useDirectoryUpdate as an}from"@fudanda/react-core/hooks/queries/identity-directory";import{transferTemplate as on,transferUsers as J}from"@fudanda/shared/api/transfers";var sn,cn;function ln(){return(ln=e((()=>{
2
+ /**
3
+ * @license lucide-react v1.53.0 - ISC
4
+ *
5
+ * This source code is licensed under the ISC license.
6
+ * See the LICENSE file in the root directory of this source tree.
7
+ */
8
+ S(),sn={name:`building-complex`,size:24,node:[[`path`,{d:`M10 12h4`,key:`a56b0p`}],[`path`,{d:`M10 8h4`,key:`1sr2af`}],[`path`,{d:`M14 21v-3a2 2 0 0 0-4 0v3`,key:`1rgiei`}],[`path`,{d:`M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2`,key:`secmi2`}],[`path`,{d:`M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16`,key:`16ra0t`}]],aliases:[`building-2`]},sn.node,cn=C(sn)})))()}var un,dn;function Y(){return(Y=e((()=>{
9
+ /**
10
+ * @license lucide-react v1.53.0 - ISC
11
+ *
12
+ * This source code is licensed under the ISC license.
13
+ * See the LICENSE file in the root directory of this source tree.
14
+ */
15
+ S(),un={name:`eye`,size:24,node:[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]},un.node,dn=C(un)})))()}var fn,pn;function mn(){return(mn=e((()=>{
16
+ /**
17
+ * @license lucide-react v1.53.0 - ISC
18
+ *
19
+ * This source code is licensed under the ISC license.
20
+ * See the LICENSE file in the root directory of this source tree.
21
+ */
22
+ S(),fn={name:`key-round`,size:24,node:[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]},fn.node,pn=C(fn)})))()}var hn,gn;function X(){return(X=e((()=>{
23
+ /**
24
+ * @license lucide-react v1.53.0 - ISC
25
+ *
26
+ * This source code is licensed under the ISC license.
27
+ * See the LICENSE file in the root directory of this source tree.
28
+ */
29
+ S(),hn={name:`pencil-line`,size:24,node:[[`path`,{d:`M13 21h8`,key:`1jsn5i`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}],[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]]},hn.node,gn=C(hn)})))()}var Z,_n;function vn(){return(vn=e((()=>{
30
+ /**
31
+ * @license lucide-react v1.53.0 - ISC
32
+ *
33
+ * This source code is licensed under the ISC license.
34
+ * See the LICENSE file in the root directory of this source tree.
35
+ */
36
+ S(),Z={name:`undo-2`,size:24,node:[[`path`,{d:`M9 14 4 9l5-5`,key:`102s5s`}],[`path`,{d:`M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11`,key:`f3b9sd`}]]},Z.node,_n=C(Z)})))()}function yn({selectedRowKeys:e,clearSelection:t,run:n,disableLabel:a=`停用`,confirm:o=`disable`,entity:s=`项`,confirmContent:c,danger:l=!1,successMessage:u}){return async d=>{let f=[...e];if(f.length===0)return;let p=d===`enabled`?`启用`:a,m=async()=>{await n(f,d),t(),r.success(u?.(d,f.length)??`批量${p}成功`)};if(!(o===`always`||o===`disable`&&d===`disabled`))return m();let h={title:`确认批量${p}选中的 ${f.length} ${s}?`,content:c?.(d,f.length),onOk:m};l&&d===`disabled`?je(h):i.confirm(h)}}function bn(){return(bn=e((()=>{D(),P()})))()}function xn({control:e,field:t,label:r,...i}){let a=Ee(),o=e.record?.id??0,s=$t({entity:e.entity,id:o,field:t}),c=e.record?.[t],l=typeof c==`string`&&c?c:g;if(e.isLocked(t)){let o=s.revealed??l;return/* @__PURE__ */ H(E.Slot,{label:r,children:/* @__PURE__ */ U(Oe,{spacing:4,wrap:!0,className:`sensitive-form-locked`,children:[/* @__PURE__ */ H(n.Text,{className:`sensitive-form-locked__value`,children:o}),s.canReveal&&(s.revealed===null?/* @__PURE__ */ H(O,{content:`查看明文(记录审计)`,children:/* @__PURE__ */ H(k,{size:`small`,theme:`borderless`,type:`tertiary`,icon:/* @__PURE__ */ H(dn,{size:14}),loading:s.revealing,"aria-label":`查看明文`,onClick:()=>void s.show()})}):/* @__PURE__ */ H(O,{content:`收起明文`,children:/* @__PURE__ */ H(k,{size:`small`,theme:`borderless`,type:`tertiary`,icon:/* @__PURE__ */ H(xe,{size:14}),"aria-label":`收起明文`,onClick:s.hide})})),/* @__PURE__ */ H(k,{size:`small`,theme:`borderless`,icon:/* @__PURE__ */ H(gn,{size:14}),disabled:i.disabled,onClick:()=>{e.unlock(t),a.setValue(t,s.revealed??``)},children:`修改`})]})})}let u=e.isUnlocked(t);return/* @__PURE__ */ H(E.Input,{...i,field:t,label:r,extraText:u?/* @__PURE__ */ U(Oe,{spacing:4,children:[/* @__PURE__ */ H(n.Text,{type:`tertiary`,size:`small`,children:`留空则保持原值不变`}),/* @__PURE__ */ H(k,{size:`small`,theme:`borderless`,type:`tertiary`,icon:/* @__PURE__ */ H(_n,{size:12}),onClick:()=>{e.relock(t),a.setValue(t,c)},children:`取消修改`})]}):i.extraText})}function Sn(){return(Sn=e((()=>{D(),Y(),be(),X(),vn(),h()})))()}function Cn({administrator:e}){let t=q(e),r=rn();return e?/* @__PURE__ */ U(Oe,{wrap:!0,children:[/* @__PURE__ */ H(k,{loading:r.isPending||t.data?.running,disabled:!t.data||t.data.running,onClick:()=>{r.mutateAsync({}).catch(()=>{})},children:`同步统一账户`}),/* @__PURE__ */ U(n.Text,{type:`tertiary`,children:[`最近成功同步:`,t.data?.lastSuccessAt?/* @__PURE__ */ H(Ve,{value:t.data.lastSuccessAt,mode:`absolute`}):`尚未完成`]}),(t.isError||t.data?.error)&&/* @__PURE__ */ H(n.Text,{type:`danger`,children:t.data?.error||`无法读取同步状态`})]}):null}function wn({user:e,onClose:t}){let n=en({entity:`User`,fields:Tn,record:e??null}),i=tn(),a=an(),o=z(null),[s]=B(()=>crypto.randomUUID()),[c,l]=B(!1),[u,d]=B(``),f=nn(s,c),p=async()=>{if(!o.current||c)return;let u;try{let c=await o.current.validate();if(e){let t=G.update.input.shape.body.parse(n.strip(c));await a.mutateAsync({params:{id:e.id},body:t})}else{let e=c;u=G.create.input.shape.body.parse({...e,requestId:s,displayName:e.displayName??``,email:e.email??``,phone:e.phone??``}),await i.mutateAsync({body:u})}r.success(e?`统一资料已更新`:`统一账户已创建,请在本应用分配权限`),t()}catch(e){u&&l(!0),d(e instanceof Error?e.message:String(e))}finally{o.current?.setValue(`initialPassword`,``),u&&(u.initialPassword=``)}};return/* @__PURE__ */ U(Qe,{title:e?`统一账户资料`:`创建统一账户`,visible:!0,onCancel:t,onOk:()=>{p()},confirmLoading:i.isPending||a.isPending,okButtonProps:{disabled:c},children:[/* @__PURE__ */ U(E,{getFormApi:e=>{o.current=e},initValues:{displayName:e?.externalDisplayName||e?.nickname||``,email:e?.email||``,phone:e?.phone||``},children:[!e&&/* @__PURE__ */ H(E.Input,{field:`username`,label:`统一用户名`,rules:[{required:!0}]}),/* @__PURE__ */ H(E.Input,{field:`displayName`,label:`显示名`}),/* @__PURE__ */ H(xn,{control:n,field:`email`,label:`邮箱`}),/* @__PURE__ */ H(xn,{control:n,field:`phone`,label:`手机`}),!e&&/* @__PURE__ */ H(L,{field:`initialPassword`,label:`初始密码`,autoComplete:`new-password`,rules:[{required:!0}]})]}),/* @__PURE__ */ H(`p`,{children:`角色、部门和本应用停用状态在“本应用权限”中设置。密码后续修改和 MFA 由 Casdoor 管理。`}),u&&/* @__PURE__ */ H(`p`,{role:`alert`,children:u}),c&&/* @__PURE__ */ H(k,{loading:f.isFetching,onClick:()=>{f.refetch().then(({data:e})=>{e?.status===`complete`?(r.success(`开户已确认,请刷新用户列表`),t()):d(`开户结果尚未确认,请稍后再次查询。不会重新发送初始密码。`)})},children:`查询开户结果`})]})}var Tn;function En(){return(En=e((()=>{D(),I(),Be(),$e(),Sn(),Tn=[`email`,`phone`]})))()}function Dn({userId:e,userName:t,visible:n,onClose:i}){let[a,c]=B([]),[l,u]=B([]),[d,f]=B([]),[p,m]=B([]),[h,g]=B([]),[_,v]=B(`direct`),y=Bt({enabled:n}),b=It(e,n),x=Mt();ut(()=>{n&&v(`direct`)},[n,e]),ut(()=>{n&&b.data&&(c(b.data.directMenuIds),u(b.data.roleMenuIds),f(b.data.groupMenuIds??[]),m(b.data.groups??[]),g(b.data.effectiveMenuIds))},[n,b.data]);let ee=async()=>{await x.mutateAsync({params:{id:e},body:{menuIds:a}}),r.success(`菜单权限已更新`);let t=/* @__PURE__ */ new Set([...a,...l,...d]);g([...t]),i()};function S(){let e=b.data?.menuSources??{},t={};for(let n of h){let r=(e[String(n)]??[]).map(e=>/* @__PURE__ */ H(N,{size:`small`,color:e===`用户直接授权`?`green`:e.includes(`用户组:`)?`orange`:`blue`,children:e},e));t[String(n)]=/* @__PURE__ */ H(Oe,{spacing:4,style:{marginLeft:4},children:r})}return t}return/* @__PURE__ */ H(Qe,{title:`菜单权限 — ${t}`,visible:n,onCancel:i,footer:_===`effective`?null:/* @__PURE__ */ H(Je,{onCancel:i,onOk:ee,okText:`保存`,loading:x.isPending,disabled:!b.isSuccess}),width:640,children:/* @__PURE__ */ U(o,{collapsible:`auto`,activeKey:_,onChange:v,children:[/* @__PURE__ */ H(s,{tab:`直接授权`,itemKey:`direct`,children:/* @__PURE__ */ H(at,{allMenus:y.data??[],checkedMenuIds:a,onChange:c,loading:y.isFetching||b.isFetching})}),/* @__PURE__ */ U(s,{tab:`最终有效权限`,itemKey:`effective`,children:[/* @__PURE__ */ U(`div`,{style:{marginBottom:8,fontSize:12,color:`var(--arc-antd-color-text-2)`},children:[/* @__PURE__ */ H(`div`,{children:`最终权限 = 角色权限 ∪ 用户组继承 ∪ 用户直接授权,仅供预览`}),/* @__PURE__ */ U(`div`,{style:{display:`grid`,gridTemplateColumns:`88px minmax(0, 1fr)`,columnGap:8,rowGap:6,alignItems:`start`,marginTop:6},children:[/* @__PURE__ */ H(`span`,{children:`权限来源:`}),/* @__PURE__ */ H(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:6},children:[...new Set(Object.values(b.data?.menuSources??{}).flat())].map(e=>/* @__PURE__ */ H(N,{size:`small`,color:e===`用户直接授权`?`green`:e.includes(`用户组:`)?`orange`:`blue`,children:e},e))}),p.length>0&&/* @__PURE__ */ U(V,{children:[/* @__PURE__ */ H(`span`,{children:`继承自用户组:`}),/* @__PURE__ */ H(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:6},children:p.map(e=>/* @__PURE__ */ H(N,{size:`small`,color:`orange`,children:e.name},e.id))})]})]})]}),/* @__PURE__ */ H(at,{allMenus:y.data??[],checkedMenuIds:h,loading:y.isFetching||b.isFetching,readonly:!0,labelSuffix:S()})]})]})})}function On(){return(On=e((()=>{D(),I(),it(),qe()})))()}function kn(e){return e===null?`未设置`:ct.find(t=>t.value===e)?.label??e}function An(e){return Wt(e)??`self`}function jn({userId:e,userName:t,visible:n,deptTree:i,onClose:a}){let o=R(()=>W(i.map(e=>({...e,children:[]})),{keepEmptyChildren:!0}),[i]),[s,c]=B(null),[l,u]=B([]),[d,f]=B(null),[p,m]=B([]),[h,g]=B(null),[_,v]=B([]),[y,b]=B([]),x=Pt(e,n),ee=K();ut(()=>{n&&x.data&&(c(x.data.userDataScope??null),u(x.data.deptScopeIds),f(x.data.roleDataScope??null),m(x.data.roleDeptScopeIds),g(x.data.groupDataScope??null),v(x.data.groupDeptScopeIds??[]),b(x.data.groups??[]))},[n,x.data]);let S=async()=>{await ee.mutateAsync({params:{id:e},body:{dataScope:pt(Ut,s),deptScopeIds:s===`custom`?l:[]}}),r.success(`数据权限已更新`),a()},C=An([s,d,h]),te=C===`custom`?[.../* @__PURE__ */ new Set([...s===`custom`?l:[],...p,..._])]:[];return/* @__PURE__ */ U(Qe,{title:`数据权限 — ${t}`,visible:n,onCancel:a,onOk:S,okButtonProps:{disabled:!x.isSuccess},confirmLoading:ee.isPending,width:440,children:[/* @__PURE__ */ U(`div`,{style:{marginBottom:12},children:[/* @__PURE__ */ H(Q,{strong:!0,style:{display:`block`,marginBottom:6},children:`角色数据权限(只读)`}),/* @__PURE__ */ H(ot,{dataScope:d??`self`,deptScopeIds:p,deptTree:o,loading:x.isFetching,readonly:!0})]}),y.length>0&&/* @__PURE__ */ U(V,{children:[/* @__PURE__ */ H(ke,{margin:12}),/* @__PURE__ */ U(`div`,{style:{marginBottom:12},children:[/* @__PURE__ */ U(Q,{strong:!0,style:{display:`block`,marginBottom:6},children:[`用户组继承权限(只读)`,y.map(e=>/* @__PURE__ */ H(N,{size:`small`,color:`orange`,style:{marginLeft:6},children:e.name},e.id))]}),/* @__PURE__ */ H(ot,{dataScope:h??`self`,deptScopeIds:_,deptTree:o,loading:x.isFetching,readonly:!0})]})]}),/* @__PURE__ */ H(ke,{margin:12}),/* @__PURE__ */ U(`div`,{style:{marginBottom:12},children:[/* @__PURE__ */ H(Q,{strong:!0,style:{display:`block`,marginBottom:6},children:`用户直接权限`}),/* @__PURE__ */ H(ot,{dataScope:s,deptScopeIds:l,deptTree:o,onScopeChange:c,onDeptIdsChange:u,loading:x.isFetching,nullable:!0})]}),/* @__PURE__ */ H(ke,{margin:12}),/* @__PURE__ */ U(`div`,{children:[/* @__PURE__ */ U(Q,{strong:!0,style:{display:`block`,marginBottom:6},children:[`最终有效权限:`,/* @__PURE__ */ H(Q,{type:`secondary`,style:{fontWeight:`normal`,marginLeft:8},children:kn(C)})]}),/* @__PURE__ */ H(ot,{dataScope:C,deptScopeIds:te,deptTree:o,loading:x.isFetching,readonly:!0})]})]})}var Q;function Mn(){return(Mn=e((()=>{D(),I(),st(),{Text:Q}=n})))()}function Nn({visible:e,user:t,onClose:n,onUpdated:i}){let a=vt(gt.update,{requestOptions:{silent:!0},invalidate:e=>{e.invalidateQueries({queryKey:Rt.lists}),e.invalidateQueries({queryKey:Rt.detail(t.id)})}}),o=async e=>(await a.mutateAsync({params:{id:t.id},body:e===null?{clearFields:[`avatar`]}:{avatar:e}}),_t(gt.detail,{params:{id:t.id}}));async function s(e){try{i(await o(e)),r.success(`头像已更新`),n()}catch(e){r.error(e instanceof Error&&e.message?e.message:`头像更新失败`)}}function c(){Ae({title:`确定要移除该用户头像吗?`,content:`移除后将使用昵称缩写作为默认头像。`,onOk:async()=>{try{i(await o(null)),r.success(`头像已移除`),n()}catch(e){r.error(e instanceof Error&&e.message?e.message:`移除失败`)}}})}return/* @__PURE__ */ H(le,{visible:e,currentAvatar:t.avatar,confirmLoading:a.isPending,uploadBlob:Gt,onCancel:n,onSelect:e=>void s(e),onRemove:t.avatar?c:void 0})}function Pn(){return(Pn=e((()=>{D(),de(),P()})))()}function Fn({userId:e,userName:t,visible:n,canViewLoginLogs:r,canViewOperationLogs:i,onClose:c}){let l=r?`login`:`operation`,[u,d]=B(l);return ut(()=>{n||d(l)},[n,l]),/* @__PURE__ */ H(a,{title:`登录与操作记录 · ${t}`,visible:n,onCancel:c,width:1180,bodyStyle:{padding:`0 16px 16px`},closeOnEsc:!0,children:/* @__PURE__ */ U(o,{collapsible:`auto`,type:`line`,activeKey:u,onChange:e=>d(e),children:[r&&/* @__PURE__ */ H(s,{tab:`登录记录`,itemKey:`login`,children:/* @__PURE__ */ H(fe,{scope:{kind:`user`,userId:e},enabled:n&&u===`login`,columnSettingsKey:`user-logs-login-logs`})}),i&&/* @__PURE__ */ H(s,{tab:`操作记录`,itemKey:`operation`,children:/* @__PURE__ */ H(ce,{scope:{kind:`user`,userId:e},enabled:n&&u===`operation`,columnSettingsKey:`user-logs-operation-logs`})})]})})}function In(){return(In=e((()=>{D(),ue()})))()}function Ln({entity:e,title:a,label:o=`导入`,beforeSubmit:s,onFinished:c}){let l=z(null),d=z(!1),[f,p]=B(!1),[m,h]=B(`error`),[g,_]=B(null),[v,y]=B(!1),b=e=>{(!s||s())&&(d.current=e,l.current?.click())},x=async e=>{y(!0),p(!0),_(null);try{let t=await ht.upload(J,{body:{file:e,dryRun:d.current?`true`:`false`,duplicate:m}});_(t),d.current||c?.()}catch(e){r.error(e instanceof Error?e.message:`导入失败`),y(!1)}finally{p(!1)}},ee=async()=>{let e=await(await ht.download(on)).blob();Vt(e,`${a}导入模板.xlsx`)};return e===`identity.users`?/* @__PURE__ */ U(V,{children:[/* @__PURE__ */ H(`input`,{ref:l,type:`file`,accept:`.xlsx`,style:{display:`none`},onChange:e=>{let t=e.target.files?.[0];e.target.value=``,t&&x(t)}}),/* @__PURE__ */ H(M,{trigger:`click`,position:`bottomLeft`,clickToHide:!0,render:/* @__PURE__ */ U(M.Menu,{children:[/* @__PURE__ */ H(M.Item,{onClick:()=>b(!1),children:`上传文件导入`}),/* @__PURE__ */ H(M.Item,{onClick:()=>b(!0),children:`预检文件(仅校验不落库)`}),/* @__PURE__ */ H(M.Item,{onClick:()=>void ee(),children:`下载导入模板`}),/* @__PURE__ */ H(M.Item,{children:/* @__PURE__ */ H(t,{"aria-label":`重复数据处理`,value:m,onChange:e=>h(e),optionList:[{value:`error`,label:`重复时报错`},{value:`skip`,label:`跳过重复用户`},{value:`update`,label:`更新已有用户`}]})})]}),children:/* @__PURE__ */ U(k,{icon:/* @__PURE__ */ H(Te,{size:14}),loading:f,children:[o,` `,/* @__PURE__ */ H(me,{size:12})]})}),/* @__PURE__ */ H(i,{title:`${a}导入`,visible:v,maskClosable:!1,closable:!f,onCancel:()=>y(!1),width:640,footer:/* @__PURE__ */ H(k,{type:`primary`,disabled:f,onClick:()=>y(!1),children:`完成`}),children:f?/* @__PURE__ */ H(n.Text,{children:`正在同步处理,请等待当前请求完成。`}):g&&/* @__PURE__ */ U(V,{children:[g.dryRun&&/* @__PURE__ */ H(n.Text,{type:`warning`,children:`预检模式:仅校验数据,不写入任何记录。`}),/* @__PURE__ */ U(n.Paragraph,{children:[`共 `,g.total,` 行,成功 `,g.success,`,失败 `,g.failed,`,跳过 `,g.skipped]}),/* @__PURE__ */ H(u,{rowKey:`row`,size:`small`,dataSource:g.rows,columns:[{title:`行`,dataIndex:`row`,width:70},{title:`内容`,dataIndex:`label`},{title:`结果`,dataIndex:`status`,width:80,render:e=>/* @__PURE__ */ H(N,{color:e===`failed`?`red`:e===`success`?`green`:`grey`,children:e===`failed`?`失败`:e===`success`?`成功`:`跳过`})},{title:`说明`,dataIndex:`message`}],pagination:{pageSize:8}})]})})]}):null}function Rn(){return(Rn=e((()=>{D(),pe(),we()})))()}function zn(e){return/* @__PURE__ */ H(Ln,{...e})}function Bn(){return(Bn=e((()=>{Rn()})))()}function Vn({entity:e,id:t,field:r,value:i}){let a=$t({entity:e,id:t,field:r});if(i==null||i===``)return/* @__PURE__ */ H(n.Text,{type:`quaternary`,children:g});let o=a.isMasked&&a.canReveal,s=a.revealed??i;return/* @__PURE__ */ U(`span`,{className:`sensitive-text`,children:[/* @__PURE__ */ H(n.Text,{ellipsis:{showTooltip:!0},style:{minWidth:0},children:s}),o&&(a.revealed===null?/* @__PURE__ */ H(O,{content:`查看明文(记录审计)`,children:/* @__PURE__ */ H(k,{size:`small`,theme:`borderless`,type:`tertiary`,icon:/* @__PURE__ */ H(dn,{size:14}),loading:a.revealing,"aria-label":`查看明文`,onClick:()=>void a.show()})}):/* @__PURE__ */ U(V,{children:[/* @__PURE__ */ H(O,{content:`复制明文`,children:/* @__PURE__ */ H(k,{size:`small`,theme:`borderless`,type:`tertiary`,icon:/* @__PURE__ */ H(ye,{size:14}),"aria-label":`复制明文`,onClick:()=>void F(a.revealed??``)})}),/* @__PURE__ */ H(O,{content:`收起`,children:/* @__PURE__ */ H(k,{size:`small`,theme:`borderless`,type:`tertiary`,icon:/* @__PURE__ */ H(xe,{size:14}),"aria-label":`收起明文`,onClick:a.hide})})]}))]})}function Hn(){return(Hn=e((()=>{D(),ve(),Y(),be(),Ye(),h()})))()}function $(e){return e.username.trim().toLowerCase()===`admin`}function Un(){let{hasPermission:e}=yt(),{updateUser:n,user:i}=zt(),{page:a,pageSize:o,buildPagination:s,draftParams:c,bind:u,bindKeyword:m,submittedParams:h,handleSearch:g,applySearch:b,handleReset:S}=xt({defaults:Wn,listKey:Rt.lists});wt([`keyword`],e=>b({...Wn,keyword:e.keyword??``}));let[C,te]=B(!1),w=z(null),[oe,ce]=B(null),[le,ue]=B(!1),[de,fe]=B(null),[pe,me]=B(!1),[T,he]=B(null),[ve,ye]=B(!1),[be,xe]=B([]),[Ce,we]=B(null),[Te,Ee]=B(!1),[D,O]=B(null),[ke,M]=B(!1),P=Ht().data?.externalLogin===!0,[Ae,Ne]=B(null),[Pe,Le]=B(``),[Be,Ve]=B(``),[He,Ge]=B(``),{items:qe}=mt(`common_status`),{options:Je}=mt(`user_gender`),[F,Ye]=B([]),[Xe,I]=B([]),$e=e(`system:role:list`),et=e(`system:department:list`),nt=e(`system:position:list`),it=Qt({enabled:$e}),at=Xt({enabled:et}),ot=Zt({enabled:nt}),st=qt(),ct=it.data??Kn,W=at.data??qn,ht=ot.data??Jn,G=st.data?.identitySecurity.password??null,_t=bt({keyword:h.keyword,phone:h.phone,departmentId:h.departmentId,status:pt(ft,h.status),...Ct(h.timeRange)}),vt=Lt({page:a,pageSize:o,..._t}),K=vt.data?.list??Gn,Mt=jt(),Pt=At(),Bt=Ot(),Vt=Nt(),Ut=Dt(),Wt=Dt(),Gt=Et(),$t=Tt(),tn=It(T?.id,ve),nn=kt(),rn=z(null),q=We({entityName:`用户`,save:Ue(Mt,{create:gt.create.input.shape.body,update:gt.update.input.shape.body}),useDetail:Ft,defaults:{positionIds:[],roleIds:[],status:`enabled`},toValues:e=>({username:e.username,nickname:e.nickname,email:e.email??void 0,phone:e.phone??void 0,gender:e.gender??void 0,birthDate:e.birthDate??void 0,departmentId:e.departmentId??void 0,positionIds:e.positionIds??e.positions?.map(e=>e.id)??[],roleIds:e.roles.map(e=>e.id),status:e.status}),beforeSave:(e,{editing:t})=>{let n=rn.current,i=n?n.strip(e):e,a=[];t&&(i.departmentId??a.push(`departmentId`),`email`in i&&!i.email&&a.push(`email`),`phone`in i&&!i.phone&&a.push(`phone`),i.gender||a.push(`gender`),i.birthDate||a.push(`birthDate`));let o={username:i.username,nickname:i.nickname,email:i.email||void 0,phone:i.phone||void 0,departmentId:i.departmentId??void 0,gender:i.gender||void 0,birthDate:i.birthDate?St(i.birthDate):void 0,positionIds:i.positionIds??[],roleIds:i.roleIds??[],status:i.status,...t?{clearFields:a}:{password:i.password}};return`email`in i||delete o.email,`phone`in i||delete o.phone,t&&$(t)&&i.status===`disabled`&&(r.warning(`admin 账号不允许禁用`),dt(`admin_status_forbidden`)),P?{departmentId:o.departmentId,positionIds:o.positionIds,roleIds:o.roleIds,status:o.status,clearFields:i.departmentId==null?[`departmentId`]:[]}:o},labelWidth:72}),an=q.editing,on=en({entity:`User`,fields:[`email`,`phone`],record:an});rn.current=on;let J=We({save:{mutateAsync:async({id:e,values:t})=>(e??dt(`missing_user`),await Pt.mutateAsync({params:{id:e},body:{password:t.password}}),{}),isPending:!1},beforeSave:e=>(e.password!==e.confirmPassword&&(r.error(`两次密码输入不一致`),dt(`password_not_match`)),e),successMessage:()=>`密码修改成功`,onSaved:()=>Ve(``)}),sn=e(`system:log:login`),ln=e(`system:log:operation`),un=sn||ln,dn=R(()=>{if(!K.length)return 0;let e=new Set(F);return K.filter(t=>e.has(t.id)&&!$(t)).length},[K,F]),Y=R(()=>{if(!K.length)return[];let e=new Set(F);return K.filter(t=>e.has(t.id)&&!$(t)).map(e=>e.id)},[K,F]),fn=Me({toggle:(e,t)=>Wt.mutateAsync({body:{ids:[e.id],status:t?`enabled`:`disabled`}}),confirmDisable:e=>({danger:!0,title:`确认停用用户「${e.nickname??e.username}」?`,content:`停用后该用户将无法登录。`,okText:`确认停用`}),disabled:t=>$(t)||!e(`system:user:update`)}),mn=yn({selectedRowKeys:Y,clearSelection:()=>Ye([]),run:(e,t)=>Ut.mutateAsync({body:{ids:e,status:t}}),confirm:`always`,entity:`个用户`,confirmContent:e=>e===`disabled`?`停用后该用户将无法登录。`:`启用后该用户可正常登录。`,danger:!0}),hn=()=>{let e=K.filter(e=>F.includes(e.id)&&!$(e)).map(e=>e.id);e.length===0?r.warning(`admin 账号不允许删除`):Re({title:`确认删除选中的 ${e.length} 个用户?`,content:`删除后无法恢复,请谨慎操作。`,run:()=>Bt.mutateAsync(e),successMessage:`批量删除成功`,onDeleted:()=>Ye([])})},gn=R(()=>Yt(W,{keepEmptyChildren:!0}),[W]),X=R(()=>W.map(e=>String(e.id)),[W]),Z=z(!1);ut(()=>{Z.current||W.length===0||(Z.current=!0,I(X))},[X,W.length]);let _n=Jt(Xe,X);function vn(){I(_n?[]:X)}let bn=R(()=>ht.map(e=>({value:e.id,label:e.name})),[ht]),Sn=q.openCreate,Tn=q.openEdit,En=J.openEdit,{mutateAsync:On}=Vt,kn=lt(async e=>{await On({params:{id:e}}),r.success(`已清除登录验证码要求`)},[On]),{mutateAsync:An}=nn,{refetch:Q}=vt,Mn=R(()=>[{title:`用户`,dataIndex:`nickname`,minWidth:260,ellipsis:{showTitle:!1},render:(e,t)=>/* @__PURE__ */ U(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,minWidth:0},children:[/* @__PURE__ */ H(`span`,{title:t.isOnline?`在线`:`离线`,style:{flexShrink:0,width:8,height:8,borderRadius:`50%`,background:t.isOnline?`var(--arc-antd-color-success)`:`var(--arc-antd-color-fill-2)`,display:`inline-block`,boxShadow:t.isOnline?`0 0 0 2px color-mix(in srgb, var(--arc-antd-color-success) 20%, transparent)`:void 0}}),/* @__PURE__ */ H(Ze,{name:t.nickname||t.username,avatar:t.avatar,size:24}),/* @__PURE__ */ U(`span`,{className:`table-cell-ellipsis`,title:`${t.externalDisplayName||t.nickname}(${t.externalUsername||t.username})`,children:[t.externalDisplayName||t.nickname,`(`,t.externalUsername||t.username,`)`,t.accountSource===`casdoor`&&/* @__PURE__ */ U(N,{size:`small`,children:[`Casdoor · `,t.remoteStatus===`active`?`有效`:`停用或删除`]})]}),t.loginChallengeRequired&&/* @__PURE__ */ H(N,{size:`small`,color:`orange`,style:{flexShrink:0},children:`需验证码`})]})},{title:`手机号码`,dataIndex:`phone`,width:150,render:(e,t)=>/* @__PURE__ */ H(Vn,{entity:`User`,id:t.id,field:`phone`,value:e})},{title:`邮箱`,dataIndex:`email`,defaultHidden:!0,width:240,render:(e,t)=>/* @__PURE__ */ H(Vn,{entity:`User`,id:t.id,field:`email`,value:e})},{title:`部门`,dataIndex:`departmentName`,width:140,render:p},{..._({title:`岗位`,dataIndex:`positions`,width:160,contentWidth:128,getItems:e=>(e??[]).map(e=>({key:String(e.id),label:e.name})),tagColor:`purple`,popoverWidth:200,empty:/* @__PURE__ */ H(N,{color:`grey`,children:`无岗位`})}),defaultHidden:!0},_({title:`角色`,dataIndex:`roles`,width:180,contentWidth:148,getItems:e=>e.map(e=>({key:String(e.id),label:e.name})),tagColor:`blue`,popoverWidth:240,empty:/* @__PURE__ */ H(N,{color:`grey`,children:`无角色`})}),{title:`性别`,dataIndex:`gender`,defaultHidden:!0,width:80,render:e=>e?/* @__PURE__ */ H(tt,{dictCode:`user_gender`,value:e}):null},l(`最近登录`,`lastLoginAt`,{defaultHidden:!0}),l(`最近活跃`,`lastActiveAt`,{defaultHidden:!0}),{title:`关联信息`,key:`relations`,defaultHidden:!0,width:120,render:(e,t)=>/* @__PURE__ */ H(Se,{entityRef:{type:`identity.user`,key:String(t.id)}})},{...f,defaultHidden:!0},fn.column(),Fe({width:180,desktopInlineKeys:[`edit`,`delete`],actions:t=>{let n=$(t);return[{key:`edit`,label:P?`本应用权限`:`编辑`,hidden:!e(`system:user:update`),onClick:()=>{Tn(t)}},{key:`directory-profile`,label:`统一账户资料`,hidden:!P||!e(`system:user:update`),onClick:()=>Ne(t)},Ie({hidden:P||!e(`system:user:delete`),disabled:n,disabledReason:`admin 账号不允许删除`,title:`确定要删除该用户吗?`,run:()=>Bt.mutateAsync([t.id])}),{key:`avatar`,label:`管理头像`,hidden:P||!e(`system:user:update`),onClick:()=>{we(t),Ee(!0)}},{key:`password`,label:`修改密码`,hidden:P||!e(`system:user:update`),onClick:()=>{En(t)}},{key:`unlock`,label:`清除登录验证码要求`,hidden:!t.loginChallengeRequired||!e(`system:user:update`),onClick:()=>kn(t.id)},{key:`logs`,label:`登录与操作记录`,hidden:!un,onClick:()=>{O(t),M(!0)}},{key:`menu-permission`,label:`菜单权限`,hidden:!e(`system:user:assign`),onClick:()=>{ce(t),ue(!0)}},{key:`assign-role`,label:`分配角色`,hidden:!e(`system:user:assign`),onClick:()=>{he(t),xe(t.roles.map(e=>e.id)),ye(!0)}},{key:`data-permission`,label:`数据权限`,hidden:!e(`system:user:assign`),onClick:()=>{fe(t),me(!0)}},{key:`force-logout`,label:`强制下线`,danger:!0,dividerBefore:!0,hidden:!e(`system:session:forceLogout`),disabled:!t.isOnline,disabledReason:`该用户当前不在线`,onClick:()=>{je({title:`强制下线`,content:`确定要强制下线用户「${t.nickname}(${t.username})」的全部会话吗?`,onOk:async()=>{await An({params:{id:t.id}}),r.success(`已强制下线`),Q()}})}}]}})],[P,e,fn,Bt,kn,An,Q,Tn,En,un]),[Pn,In]=B(!1),[Ln,Rn]=B(!1),Bn=/* @__PURE__ */ U(`div`,{className:`users-dept-sidebar`,children:[/* @__PURE__ */ H(ne.Header,{className:`users-dept-sidebar-title`,style:{padding:`10px 12px`,minHeight:44,marginBottom:4},extra:/* @__PURE__ */ H(k,{className:`users-dept-tree-action`,theme:`borderless`,size:`small`,icon:H(_n?ge:_e,{size:14}),onClick:vn,children:_n?`全部折叠`:`全部展开`}),children:/* @__PURE__ */ H(`span`,{className:`users-dept-sidebar-title-text`,children:`组织架构`})}),/* @__PURE__ */ H(De,{treeData:gn,expandedKeys:Xe,value:c.departmentId===void 0?void 0:String(c.departmentId),filterTreeNode:!0,showFilteredOnly:!0,searchPlaceholder:`全部部门`,onExpand:e=>{I(e.map(String))},onSelect:e=>{let t=e,n=t?Number(t):void 0,r={...c,departmentId:n};b(r),In(!1)},style:{width:`100%`}})]}),Hn=(e=!1)=>/* @__PURE__ */ H(k,{theme:`borderless`,icon:/* @__PURE__ */ H(cn,{size:14}),onClick:()=>In(!0),style:{display:e||Ln?void 0:`none`},children:`按部门`}),Un=()=>/* @__PURE__ */ U(V,{children:[!P&&dn>0&&e(`system:user:delete`)&&/* @__PURE__ */ H(ae,{count:dn,onClick:hn}),Y.length>0&&e(`system:user:update`)&&/* @__PURE__ */ U(V,{children:[/* @__PURE__ */ H(re,{count:Y.length,onChange:mn,danger:!0}),!P&&/* @__PURE__ */ U(k,{theme:`light`,icon:/* @__PURE__ */ H(pn,{size:14}),onClick:()=>te(!0),children:[`批量修改密码 (`,Y.length,`)`]})]})]}),Yn=()=>!P&&e(`system:user:import`)?/* @__PURE__ */ H(zn,{entity:`identity.users`,title:`用户`,onFinished:()=>void Q()}):null;return/* @__PURE__ */ U(`div`,{className:`page-container page-container--stretch`,children:[/* @__PURE__ */ H(ne,{master:Bn,detail:/* @__PURE__ */ H(`div`,{className:`users-content`,children:/* @__PURE__ */ H(v,{searchConfig:d({keyword:/* @__PURE__ */ H(x,{placeholder:`搜索用户名/昵称/邮箱`,...m(`keyword`),width:260}),filters:/* @__PURE__ */ U(V,{children:[/* @__PURE__ */ H(x,{placeholder:`搜索手机号码`,...m(`phone`),width:180}),/* @__PURE__ */ H(y,{items:qe,...u(`status`)}),/* @__PURE__ */ H(ee,{placeholder:[`开始时间`,`结束时间`],...u(`timeRange`)})]}),onSearch:g,onReset:S,create:/* @__PURE__ */ H(ie,{permission:`system:user:create`,onClick:()=>P?Ne(!0):Sn()}),actions:/* @__PURE__ */ U(V,{children:[Hn(),Un(),/* @__PURE__ */ H(rt,{entity:`system.users`,query:_t,watermark:!1,permission:`system:user:export`}),Yn(),P&&/* @__PURE__ */ H(Cn,{administrator:i?.roles.some(e=>e.code===`super_admin`)??!1})]}),filterTitle:`用户筛选`,actionTitle:`用户操作`}),columns:Mn,...ze(vt,{pagination:s,empty:`暂无数据`,rowSelection:{selectedRowKeys:F,onChange:e=>{let t=(e??[]).map(Number),n=new Set(t),i=K.filter(e=>$(e)).map(e=>e.id),a=t.filter(e=>!i.includes(e));a.length<t.length&&i.some(e=>n.has(e))&&r.warning(`admin 账号不支持批量删除`),Ye(a)}}})})}),defaultSize:220,minSize:160,maxSize:400,showDetail:!Pn,onMasterBack:()=>In(!1),masterBackLabel:`返回用户列表`,onResponsiveChange:Rn,persistKey:`users`,style:{flex:1,minHeight:0,overflow:`hidden`}}),Ae&&/* @__PURE__ */ H(wn,{user:Ae===!0?void 0:Ae,onClose:()=>{Ne(null),Q()}}),/* @__PURE__ */ U(Ke,{modal:q,okButtonProps:{disabled:q.detailLoading},width:660,children:[an?/* @__PURE__ */ U(V,{children:[/* @__PURE__ */ U(A,{gutter:16,children:[/* @__PURE__ */ H(j,{span:12,children:/* @__PURE__ */ H(E.Input,{field:`username`,label:`用户名`,disabled:!0})}),/* @__PURE__ */ H(j,{span:12,children:/* @__PURE__ */ H(E.Input,{field:`nickname`,label:`昵称`,disabled:P,placeholder:`请输入昵称`,rules:[{required:!0,message:`请输入昵称`}]})})]}),/* @__PURE__ */ H(A,{gutter:16,children:/* @__PURE__ */ H(j,{span:12,children:/* @__PURE__ */ H(xn,{control:on,disabled:P,field:`phone`,label:`手机号码`,placeholder:`请输入手机号码`,rules:[{pattern:/^1[3-9]\d{9}$/,message:`请输入正确的手机号码`}]})})})]}):/* @__PURE__ */ U(V,{children:[/* @__PURE__ */ U(A,{gutter:16,children:[/* @__PURE__ */ H(j,{span:12,children:/* @__PURE__ */ H(E.Input,{field:`username`,label:`用户名`,placeholder:`请输入用户名`,rules:[{required:!0,message:`请输入用户名`}]})}),/* @__PURE__ */ H(j,{span:12,children:/* @__PURE__ */ H(E.Input,{field:`nickname`,label:`昵称`,disabled:P,placeholder:`请输入昵称`,rules:[{required:!0,message:`请输入昵称`}]})})]}),/* @__PURE__ */ U(A,{gutter:16,children:[/* @__PURE__ */ H(j,{span:12,children:/* @__PURE__ */ H(L,{field:`password`,label:`密码`,placeholder:`请输入密码`,rules:[{required:!0,message:`请输入密码`}],onChange:e=>Le(String(e??``)),helpText:/* @__PURE__ */ H(se,{password:Pe,policy:G})})}),/* @__PURE__ */ H(j,{span:12,children:/* @__PURE__ */ H(E.Input,{field:`phone`,label:`手机号码`,placeholder:`请输入手机号码`,rules:[{pattern:/^1[3-9]\d{9}$/,message:`请输入正确的手机号码`}]})})]})]}),/* @__PURE__ */ U(A,{gutter:16,children:[/* @__PURE__ */ H(j,{span:12,children:/* @__PURE__ */ H(xn,{control:on,field:`email`,disabled:P,label:`邮箱`,placeholder:`请输入邮箱`,rules:[{type:`email`,message:`邮箱格式不正确`}]})}),/* @__PURE__ */ H(j,{span:12,children:/* @__PURE__ */ H(E.TreeSelect,{field:`departmentId`,label:`所属部门`,disabled:!et,style:{width:`100%`},treeData:gn,placeholder:`请选择所属部门`,filterTreeNode:!0,showClear:!0})})]}),/* @__PURE__ */ U(A,{gutter:16,children:[/* @__PURE__ */ H(j,{span:12,children:/* @__PURE__ */ H(E.Select,{field:`positionIds`,label:`岗位`,disabled:!nt,style:{width:`100%`},multiple:!0,filter:!0,showClear:!0,optionList:bn,placeholder:`请选择岗位`})}),/* @__PURE__ */ H(j,{span:12,children:/* @__PURE__ */ H(E.Select,{field:`roleIds`,label:`角色`,disabled:!$e,style:{width:`100%`},multiple:!0,filter:!0,optionList:ct.map(e=>({value:e.id,label:e.name})),placeholder:`请选择角色`})})]}),/* @__PURE__ */ U(A,{gutter:16,children:[/* @__PURE__ */ H(j,{span:12,children:/* @__PURE__ */ H(E.Select,{field:`gender`,disabled:P,label:`性别`,style:{width:`100%`},showClear:!0,optionList:Je,placeholder:`请选择性别`})}),/* @__PURE__ */ H(j,{span:12,children:/* @__PURE__ */ H(E.DatePicker,{field:`birthDate`,disabled:P,label:`出生日期`,type:`date`,style:{width:`100%`},placeholder:`请选择出生日期`,showClear:!0})})]}),/* @__PURE__ */ H(A,{gutter:16,children:/* @__PURE__ */ H(j,{span:12,children:/* @__PURE__ */ H(E.Select,{field:`status`,label:`状态`,style:{width:`100%`},optionList:qe.map(e=>({value:e.value,label:e.label,disabled:an?$(an)&&e.value===`disabled`:!1})),placeholder:`请选择状态`})})})]}),/* @__PURE__ */ U(Ke,{modal:J,title:J.editing?`修改密码 - ${J.editing.nickname}`:`修改密码`,onCancel:()=>{J.close(),Ve(``)},width:420,children:[/* @__PURE__ */ H(L,{field:`password`,label:`新密码`,placeholder:`请输入新密码`,rules:[{required:!0,message:`请输入新密码`},{min:6,message:`密码至少 6 个字符`}],onChange:e=>Ve(String(e??``)),helpText:/* @__PURE__ */ H(se,{password:Be,policy:G})}),/* @__PURE__ */ H(L,{field:`confirmPassword`,label:`确认密码`,placeholder:`请再次输入新密码`,rules:[{required:!0,message:`请确认新密码`}]})]}),!1,/* @__PURE__ */ H(Qe,{title:`批量修改密码(共 ${Y.length} 个用户)`,visible:C,onCancel:()=>{te(!1),w.current?.setValues({password:``,confirmPassword:``}),Ge(``)},confirmLoading:Gt.isPending,onOk:async()=>{if(w.current)try{let e=await w.current.validate();if(e.password!==e.confirmPassword){w.current.setError(`confirmPassword`,`两次密码输入不一致`);return}await Gt.mutateAsync({body:{ids:Y,password:e.password}}),r.success(`密码修改成功`),te(!1),w.current.setValues({password:``,confirmPassword:``}),Ge(``),Ye([])}catch{}},children:/* @__PURE__ */ U(E,{getFormApi:e=>{w.current=e},labelPosition:`left`,labelWidth:90,children:[/* @__PURE__ */ H(L,{field:`password`,label:`新密码`,placeholder:G?Kt(G):`请输入新密码`,rules:[{required:!0,message:`请输入新密码`}],onChange:e=>Ge(String(e??``)),helpText:/* @__PURE__ */ H(se,{password:He,policy:G})}),/* @__PURE__ */ H(L,{field:`confirmPassword`,label:`确认密码`,placeholder:`请再次输入新密码`,rules:[{required:!0,message:`请确认密码`}]})]})}),Ce&&/* @__PURE__ */ H(Nn,{visible:Te,user:Ce,onClose:()=>Ee(!1),onUpdated:e=>{vt.refetch(),we(e),n(e)}}),D&&/* @__PURE__ */ H(Fn,{visible:ke,userId:D.id,userName:`${D.nickname||D.username}(${D.username})`,canViewLoginLogs:sn,canViewOperationLogs:ln,onClose:()=>M(!1)}),oe&&/* @__PURE__ */ H(Dn,{userId:oe.id,userName:oe.nickname||oe.username,visible:le,onClose:()=>ue(!1)}),de&&/* @__PURE__ */ H(jn,{userId:de.id,userName:de.nickname||de.username,visible:pe,deptTree:W,onClose:()=>me(!1)}),/* @__PURE__ */ U(Qe,{title:`分配角色——${T?.nickname||T?.username||``}`,visible:ve,onCancel:()=>ye(!1),confirmLoading:$t.isPending,onOk:async()=>{T&&(await $t.mutateAsync({params:{id:T.id},body:{roleIds:be}}),r.success(`角色分配成功`),ye(!1))},okText:`保存`,cancelText:`取消`,width:480,children:[/* @__PURE__ */ U(`div`,{children:[/* @__PURE__ */ H(`div`,{style:{marginBottom:6,fontSize:13,fontWeight:600},children:`直接分配角色`}),/* @__PURE__ */ H(t,{multiple:!0,filter:!0,showClear:!0,style:{width:`100%`},value:be,onChange:e=>xe(e??[]),optionList:ct.map(e=>({value:e.id,label:e.name})),placeholder:`请选择要分配的角色`})]}),/* @__PURE__ */ U(`div`,{style:{marginTop:18,paddingTop:14,borderTop:`1px solid var(--arc-antd-color-border)`},children:[/* @__PURE__ */ H(`div`,{style:{marginBottom:6,fontSize:13,fontWeight:600},children:`用户组继承角色`}),/* @__PURE__ */ H(`div`,{style:{marginBottom:8,fontSize:12,color:`var(--arc-antd-color-text-2)`},children:`以下角色由用户组自动继承,只能在用户组中调整。`}),tn.isFetching?/* @__PURE__ */ H(`div`,{style:{color:`var(--arc-antd-color-text-2)`,fontSize:12},children:`正在加载继承关系…`}):tn.data?.inheritedRoles.length?/* @__PURE__ */ H(Oe,{spacing:6,wrap:!0,children:tn.data.inheritedRoles.map(e=>/* @__PURE__ */ U(N,{color:`orange`,style:{marginBottom:4},children:[e.name,`(来自:`,e.groupNames.join(`、`),`)`]},e.id))}):/* @__PURE__ */ H(`div`,{style:{color:`var(--arc-antd-color-text-2)`,fontSize:12},children:`暂无用户组继承角色`})]})]})]})}var Wn,Gn,Kn,qn,Jn;function Yn(){return(Yn=e((()=>{En(),$e(),Ce(),D(),he(),T(),ln(),mn(),Xe(),oe(),et(),I(),m(),te(),Pe(),h(),On(),Mn(),Pn(),In(),nt(),Bn(),w(),b(),P(),bn(),Le(),c(),Ne(),He(),Sn(),Hn(),Ge(),Wn={keyword:``,phone:``,status:void 0,timeRange:null,departmentId:void 0},Gn=[],Kn=[],qn=[],Jn=[]})))()}Yn();export{Un as default};
@@ -1,8 +1,8 @@
1
- import{n as e,o as t}from"./rolldown-runtime-BKuNeK48.js";import{n,t as r}from"./preload-helper-C-73SErw.js";import{$ as i,C as a,E as o,G as s,O as c,S as l,T as u,Z as d,d as f,dt as ee,it as te,o as ne,rt as re,t as ie,u as p}from"./dist-BqNhxPp5.js";import{t as ae}from"./messages-CFyOVxEM.js";import{r as oe}from"./options-B65xkxOY.js";var m,h,g,_,v,y,b,se,ce,le,ue,de,fe;function x(){return(x=e((()=>{ie(),m=d,h=e=>{let t=e.split(/[?#]/)[0]||e,n=t.lastIndexOf(`.`);return n===-1?``:t.slice(n+1).toLowerCase()},g=/* @__PURE__ */ new Set([`.ds_store`,`desktop.ini`,`thumbs.db`]),_=e=>{let t=e.replace(/^\/+/,``).replace(/\\/g,`/`).split(`/`).filter(Boolean),n=t[t.length-1]?.toLowerCase()||``;return t.some(e=>e===`__MACOSX`||e.startsWith(`._`))||g.has(n)},v=e=>{let t=h(e);return m.includes(t)},y=e=>{if(!Number.isFinite(e)||e<0)return`-`;if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`],n=e/1024;for(let e of t){if(n<1024||e===t[t.length-1])return`${n.toFixed(+(n<10))} ${e}`;n/=1024}return`${e} B`},b=e=>typeof e==`object`&&!!e&&`extract`in e&&typeof e.extract==`function`,se=(e,t=``)=>{let n=[];return Object.entries(e).forEach(([e,r])=>{let i=t?`${t}/${e}`:e;if(!_(i)){if(b(r)){let t=r.name||e,a=h(t);n.push({id:i,path:i,name:t,extension:a,size:r.size||0,lastModified:r.lastModified,depth:i.split(`/`).length-1,previewable:v(t),compressedFile:r})}else r&&typeof r==`object`&&n.push(...se(r,i))}}),n},ce=(e,t,n)=>[`archive-entry`,e||`archive`,t,n.path,n.size,n.lastModified||0].join(`:`),le=e=>({path:e.path,name:e.name,extension:e.extension,size:e.size,lastModified:e.lastModified,depth:e.depth,previewable:e.previewable}),ue=(e,t)=>{let n=t?.entryActions?.download;if(n===void 0)return!0;if(typeof n==`boolean`)return n;try{return n(le(e))!==!1}catch{return!1}},de=(e,t)=>({...e?.options||{},archive:t}),fe=(e,t,n)=>({...e,filename:t.name,url:void 0,streamUrl:void 0,options:de(e,n)})})))()}var S,C,pe,me,he,w,T,ge,E,_e,ve,ye;function be(){return(be=e((()=>{S=`flyfish-file-viewer-cache`,C=`archiveEntries`,pe=1,me=25165824,he=100663296,w=null,T=()=>typeof indexedDB<`u`,ge=()=>T()?w||(w=new Promise((e,t)=>{let n=indexedDB.open(S,pe);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(C)||e.createObjectStore(C,{keyPath:`key`}).createIndex(`updatedAt`,`updatedAt`)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)}),w):Promise.reject(/* @__PURE__ */ Error(`IndexedDB 不可用`)),E=async(e,t)=>{let n=await ge();return new Promise((r,i)=>{let a=n.transaction(C,e),o=t(a.objectStore(C));o.onsuccess=()=>r(o.result),o.onerror=()=>i(o.error),a.onerror=()=>i(a.error)})},_e=async e=>{try{return await E(`readonly`,t=>t.get(e))||null}catch{return null}},ve=async()=>{try{let e=await ge();await new Promise((t,n)=>{let r=e.transaction(C,`readwrite`),i=r.objectStore(C),a=i.index(`updatedAt`),o=[],s=0;a.openCursor().onsuccess=e=>{let t=e.target.result;if(!t){for(;s>he&&o.length;){let e=o.shift();e&&(s-=e.size,i.delete(e.key))}return}let n=t.value;s+=n.size||0,o.push({key:n.key,size:n.size||0}),t.continue()},r.oncomplete=()=>t(),r.onerror=()=>n(r.error)})}catch{}},ye=async e=>{if(!(e.size>me))try{await E(`readwrite`,t=>t.put({...e,updatedAt:Date.now()})),await ve()}catch{}}})))()}var D,xe,O,k,A,Se,Ce,j,M,we,Te,N,Ee,P,F,I,De,L,Oe,R,ke,Ae,z,je,Me,B,V,H,Ne,U,Pe,Fe,Ie,Le,Re,ze;function Be(){return(Be=e((()=>{x(),n(),D=/* @__PURE__ */ new Set([`zip`,`zipx`,`jar`,`war`,`ear`,`apk`,`cbz`]),xe=/* @__PURE__ */ new Set([`tar`,`tgz`,`gz`,`gzip`]),O=512,k=33639248,A=67324752,Se=1,Ce=2048,j=new TextDecoder(`utf-8`),M=new TextDecoder(`utf-8`,{fatal:!0}),we=/[\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff]/,Te=e=>!!e&&(typeof e==`object`||typeof e==`function`)&&typeof e.loadAsync==`function`,N=e=>{try{return new TextDecoder(e)}catch{return null}},Ee=N(`gbk`)||N(`gb18030`),P=e=>{try{return M.decode(e)}catch{return null}},F=e=>{try{return Ee?.decode(e)||null}catch{return null}},I=e=>{let t=e instanceof Uint8Array?e:new Uint8Array(e),n=P(t);if(n!==null)return n;let r=F(t);return r&&we.test(r)?r:j.decode(t)},De=e=>{let t=e,n=t?.default,r=[t?.default,n?.default,t?.JSZip,e].find(Te);if(!r)throw Error(`JSZip module does not expose loadAsync.`);return r},L=e=>{let t=new Uint8Array(e.byteLength);return t.set(e),t.buffer},Oe=async(e,t)=>{if(typeof DecompressionStream>`u`)return null;let n=new Blob([L(e)]).stream().pipeThrough(new DecompressionStream(t));return new Uint8Array(await new Response(n).arrayBuffer())},R=e=>e.replace(/^\/+/,``).replace(/\\/g,`/`),ke=e=>{let t=R(e).split(`/`);return t[t.length-1]||e},Ae=e=>Math.max(0,R(e).split(`/`).length-1),z=e=>{let t=R(e.path),n=ke(t);return{id:t,path:t,name:n,extension:h(n),size:e.size,lastModified:e.lastModified,depth:Ae(t),previewable:v(n),compressedFile:{name:n,size:e.size,lastModified:e.lastModified,async extract(){let t=await e.load();return new File([t],n,{type:`application/octet-stream`,lastModified:e.lastModified||Date.now()})}}}},je=(e,t,n)=>{let r=new TextDecoder(`ascii`).decode(e.slice(t,t+n)).replace(/\0.*$/,``).trim();return r&&Number.parseInt(r,8)||0},Me=(e,t)=>{let n=new TextDecoder(`utf-8`),r=n.decode(e.slice(t,t+100)).replace(/\0.*$/,``),i=n.decode(e.slice(t+345,t+500)).replace(/\0.*$/,``);return R(i?`${i}/${r}`:r)},B=e=>{let t=[],n=0;for(;n+O<=e.length&&!e.slice(n,n+O).every(e=>e===0);){let r=Me(e,n),i=je(e,n+124,12),a=String.fromCharCode(e[n+156]||0),o=n+O,s=o+Math.ceil(i/O)*O;if(r&&a!==`5`&&!_(r)){let n=e.slice(o,o+i);t.push(z({path:r,size:i,load:async()=>L(n)}))}n=s}return t},V=e=>{let t=e.toLowerCase();return t.endsWith(`.tar.gz`)||t.endsWith(`.tgz`)?`tgz`:h(e)},H=(e,t)=>t+2<=e.byteLength?e.getUint16(t,!0):0,Ne=(e,t)=>t+4<=e.byteLength?e.getUint32(t,!0):0,U=e=>{let t=new DataView(e);for(let e=0;e+12<=t.byteLength;e+=1){let n=Ne(t,e);if(n!==k&&n!==A)continue;let r=n===k?e+8:e+6;if((H(t,r)&Se)!==0)return!0}return!1},Pe=(e,t)=>{let n=V(t);if(!D.has(n))return!1;let r=new DataView(e);for(let t=0;t+46<=r.byteLength;t+=1){if(Ne(r,t)!==k)continue;let n=H(r,t+8),i=H(r,t+28),a=H(r,t+30),o=H(r,t+32),s=t+46,c=s+i;if(c>r.byteLength)return!1;if((n&Ce)===0){let t=new Uint8Array(e,s,i),n=I(t);if(we.test(n))return!0}t=c+a+o-1}return!1},Fe=(e,t)=>{let n=V(t);return D.has(n)?U(e):!1},Ie=e=>{let t=e.toLowerCase();return t.endsWith(`.gzip`)?e.slice(0,-5)||`archive`:t.endsWith(`.gz`)?e.slice(0,-3)||`archive`:`${e||`archive`}.bin`},Le=async e=>{let n=await De(await r(()=>import(`./jszip.min-hNOoGCeG.js`).then(e=>/* @__PURE__ */ t(e.t(),1)),[],import.meta.url)).loadAsync(e,{decodeFileName:I}),i=[];return n.forEach((e,t)=>{if(t.dir)return;let n=t,r=R(e);_(r)||i.push(z({path:r,size:n._data?.uncompressedSize||0,lastModified:t.date?.getTime(),load:async()=>t.async(`arraybuffer`)}))}),i},Re=async(e,t,n)=>{let r=new Uint8Array(e),i=n===`tar`?r:await Oe(r,`gzip`);if(!i)return null;if(n===`gz`||n===`gzip`){let e=t.toLowerCase();if(!(e.endsWith(`.tar.gz`)||e.endsWith(`.tgz`))){let e=Ie(t);return[z({path:e,size:i.byteLength,load:async()=>L(i)})]}}return B(i)},ze=async(e,t)=>{let n=V(t);return D.has(n)?Fe(e,t)?null:Le(e):xe.has(n)?Re(e,t,n):null}})))()}var W,G,Ve,He,Ue,K,We,Ge,Ke;function qe(){return(qe=e((()=>{W=/* @__PURE__ */ new Set([`avif`,`bmp`,`gif`,`heic`,`heif`,`jpe`,`jpeg`,`jpg`,`jxl`,`png`,`tif`,`tiff`,`webp`]),G=`
1
+ import{n as e,o as t}from"./rolldown-runtime-BKuNeK48.js";import{n,t as r}from"./preload-helper-C-73SErw.js";import{C as i,E as a,K as o,O as s,Q as c,S as l,T as u,at as d,d as f,et as ee,ft as te,it as ne,o as re,t as ie,u as p}from"./dist-Bauqz5on.js";import{t as ae}from"./messages-CFyOVxEM.js";import{r as oe}from"./options-B65xkxOY.js";var m,h,g,_,v,y,b,se,ce,x,le,ue,de;function S(){return(S=e((()=>{ie(),m=c,h=e=>{let t=e.split(/[?#]/)[0]||e,n=t.lastIndexOf(`.`);return n===-1?``:t.slice(n+1).toLowerCase()},g=/* @__PURE__ */ new Set([`.ds_store`,`desktop.ini`,`thumbs.db`]),_=e=>{let t=e.replace(/^\/+/,``).replace(/\\/g,`/`).split(`/`).filter(Boolean),n=t[t.length-1]?.toLowerCase()||``;return t.some(e=>e===`__MACOSX`||e.startsWith(`._`))||g.has(n)},v=e=>{let t=h(e);return m.includes(t)},y=e=>{if(!Number.isFinite(e)||e<0)return`-`;if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`],n=e/1024;for(let e of t){if(n<1024||e===t[t.length-1])return`${n.toFixed(+(n<10))} ${e}`;n/=1024}return`${e} B`},b=e=>typeof e==`object`&&!!e&&`extract`in e&&typeof e.extract==`function`,se=(e,t=``)=>{let n=[];return Object.entries(e).forEach(([e,r])=>{let i=t?`${t}/${e}`:e;if(!_(i)){if(b(r)){let t=r.name||e,a=h(t);n.push({id:i,path:i,name:t,extension:a,size:r.size||0,lastModified:r.lastModified,depth:i.split(`/`).length-1,previewable:v(t),compressedFile:r})}else r&&typeof r==`object`&&n.push(...se(r,i))}}),n},ce=(e,t,n)=>[`archive-entry`,e||`archive`,t,n.path,n.size,n.lastModified||0].join(`:`),x=e=>({path:e.path,name:e.name,extension:e.extension,size:e.size,lastModified:e.lastModified,depth:e.depth,previewable:e.previewable}),le=(e,t)=>{let n=t?.entryActions?.download;if(n===void 0)return!0;if(typeof n==`boolean`)return n;try{return n(x(e))!==!1}catch{return!1}},ue=(e,t)=>({...e?.options||{},archive:t}),de=(e,t,n)=>({...e,filename:t.name,url:void 0,streamUrl:void 0,options:ue(e,n)})})))()}var C,w,fe,pe,me,T,E,he,D,ge,_e,ve;function ye(){return(ye=e((()=>{C=`flyfish-file-viewer-cache`,w=`archiveEntries`,fe=1,pe=25165824,me=100663296,T=null,E=()=>typeof indexedDB<`u`,he=()=>E()?T||(T=new Promise((e,t)=>{let n=indexedDB.open(C,fe);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(w)||e.createObjectStore(w,{keyPath:`key`}).createIndex(`updatedAt`,`updatedAt`)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)}),T):Promise.reject(/* @__PURE__ */ Error(`IndexedDB 不可用`)),D=async(e,t)=>{let n=await he();return new Promise((r,i)=>{let a=n.transaction(w,e),o=t(a.objectStore(w));o.onsuccess=()=>r(o.result),o.onerror=()=>i(o.error),a.onerror=()=>i(a.error)})},ge=async e=>{try{return await D(`readonly`,t=>t.get(e))||null}catch{return null}},_e=async()=>{try{let e=await he();await new Promise((t,n)=>{let r=e.transaction(w,`readwrite`),i=r.objectStore(w),a=i.index(`updatedAt`),o=[],s=0;a.openCursor().onsuccess=e=>{let t=e.target.result;if(!t){for(;s>me&&o.length;){let e=o.shift();e&&(s-=e.size,i.delete(e.key))}return}let n=t.value;s+=n.size||0,o.push({key:n.key,size:n.size||0}),t.continue()},r.oncomplete=()=>t(),r.onerror=()=>n(r.error)})}catch{}},ve=async e=>{if(!(e.size>pe))try{await D(`readwrite`,t=>t.put({...e,updatedAt:Date.now()})),await _e()}catch{}}})))()}var O,be,k,A,j,xe,Se,M,N,Ce,we,P,Te,F,I,L,Ee,R,De,z,Oe,ke,B,Ae,je,V,H,U,Me,W,Ne,Pe,Fe,Ie,Le,Re;function ze(){return(ze=e((()=>{S(),n(),O=/* @__PURE__ */ new Set([`zip`,`zipx`,`jar`,`war`,`ear`,`apk`,`cbz`]),be=/* @__PURE__ */ new Set([`tar`,`tgz`,`gz`,`gzip`]),k=512,A=33639248,j=67324752,xe=1,Se=2048,M=new TextDecoder(`utf-8`),N=new TextDecoder(`utf-8`,{fatal:!0}),Ce=/[\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff]/,we=e=>!!e&&(typeof e==`object`||typeof e==`function`)&&typeof e.loadAsync==`function`,P=e=>{try{return new TextDecoder(e)}catch{return null}},Te=P(`gbk`)||P(`gb18030`),F=e=>{try{return N.decode(e)}catch{return null}},I=e=>{try{return Te?.decode(e)||null}catch{return null}},L=e=>{let t=e instanceof Uint8Array?e:new Uint8Array(e),n=F(t);if(n!==null)return n;let r=I(t);return r&&Ce.test(r)?r:M.decode(t)},Ee=e=>{let t=e,n=t?.default,r=[t?.default,n?.default,t?.JSZip,e].find(we);if(!r)throw Error(`JSZip module does not expose loadAsync.`);return r},R=e=>{let t=new Uint8Array(e.byteLength);return t.set(e),t.buffer},De=async(e,t)=>{if(typeof DecompressionStream>`u`)return null;let n=new Blob([R(e)]).stream().pipeThrough(new DecompressionStream(t));return new Uint8Array(await new Response(n).arrayBuffer())},z=e=>e.replace(/^\/+/,``).replace(/\\/g,`/`),Oe=e=>{let t=z(e).split(`/`);return t[t.length-1]||e},ke=e=>Math.max(0,z(e).split(`/`).length-1),B=e=>{let t=z(e.path),n=Oe(t);return{id:t,path:t,name:n,extension:h(n),size:e.size,lastModified:e.lastModified,depth:ke(t),previewable:v(n),compressedFile:{name:n,size:e.size,lastModified:e.lastModified,async extract(){let t=await e.load();return new File([t],n,{type:`application/octet-stream`,lastModified:e.lastModified||Date.now()})}}}},Ae=(e,t,n)=>{let r=new TextDecoder(`ascii`).decode(e.slice(t,t+n)).replace(/\0.*$/,``).trim();return r&&Number.parseInt(r,8)||0},je=(e,t)=>{let n=new TextDecoder(`utf-8`),r=n.decode(e.slice(t,t+100)).replace(/\0.*$/,``),i=n.decode(e.slice(t+345,t+500)).replace(/\0.*$/,``);return z(i?`${i}/${r}`:r)},V=e=>{let t=[],n=0;for(;n+k<=e.length&&!e.slice(n,n+k).every(e=>e===0);){let r=je(e,n),i=Ae(e,n+124,12),a=String.fromCharCode(e[n+156]||0),o=n+k,s=o+Math.ceil(i/k)*k;if(r&&a!==`5`&&!_(r)){let n=e.slice(o,o+i);t.push(B({path:r,size:i,load:async()=>R(n)}))}n=s}return t},H=e=>{let t=e.toLowerCase();return t.endsWith(`.tar.gz`)||t.endsWith(`.tgz`)?`tgz`:h(e)},U=(e,t)=>t+2<=e.byteLength?e.getUint16(t,!0):0,Me=(e,t)=>t+4<=e.byteLength?e.getUint32(t,!0):0,W=e=>{let t=new DataView(e);for(let e=0;e+12<=t.byteLength;e+=1){let n=Me(t,e);if(n!==A&&n!==j)continue;let r=n===A?e+8:e+6;if((U(t,r)&xe)!==0)return!0}return!1},Ne=(e,t)=>{let n=H(t);if(!O.has(n))return!1;let r=new DataView(e);for(let t=0;t+46<=r.byteLength;t+=1){if(Me(r,t)!==A)continue;let n=U(r,t+8),i=U(r,t+28),a=U(r,t+30),o=U(r,t+32),s=t+46,c=s+i;if(c>r.byteLength)return!1;if((n&Se)===0){let t=new Uint8Array(e,s,i),n=L(t);if(Ce.test(n))return!0}t=c+a+o-1}return!1},Pe=(e,t)=>{let n=H(t);return O.has(n)?W(e):!1},Fe=e=>{let t=e.toLowerCase();return t.endsWith(`.gzip`)?e.slice(0,-5)||`archive`:t.endsWith(`.gz`)?e.slice(0,-3)||`archive`:`${e||`archive`}.bin`},Ie=async e=>{let n=await Ee(await r(()=>import(`./jszip.min-hNOoGCeG.js`).then(e=>/* @__PURE__ */ t(e.t(),1)),[],import.meta.url)).loadAsync(e,{decodeFileName:L}),i=[];return n.forEach((e,t)=>{if(t.dir)return;let n=t,r=z(e);_(r)||i.push(B({path:r,size:n._data?.uncompressedSize||0,lastModified:t.date?.getTime(),load:async()=>t.async(`arraybuffer`)}))}),i},Le=async(e,t,n)=>{let r=new Uint8Array(e),i=n===`tar`?r:await De(r,`gzip`);if(!i)return null;if(n===`gz`||n===`gzip`){let e=t.toLowerCase();if(!(e.endsWith(`.tar.gz`)||e.endsWith(`.tgz`))){let e=Fe(t);return[B({path:e,size:i.byteLength,load:async()=>R(i)})]}}return V(i)},Re=async(e,t)=>{let n=H(t);return O.has(n)?Pe(e,t)?null:Ie(e):be.has(n)?Le(e,t,n):null}})))()}var G,K,Be,Ve,He,q,Ue,We,Ge;function Ke(){return(Ke=e((()=>{G=/* @__PURE__ */ new Set([`avif`,`bmp`,`gif`,`heic`,`heif`,`jpe`,`jpeg`,`jpg`,`jxl`,`png`,`tif`,`tiff`,`webp`]),K=`
2
2
  .archive-comic-page{min-width:64px;color:#64748b!important;text-align:center;font-variant-numeric:tabular-nums}
3
3
  .archive-comic-nav:disabled{cursor:not-allowed;opacity:.42}
4
- `,Ve=e=>{let t=e.trim().toLowerCase();return t===`cbz`||t===`cbr`},He=e=>W.has(e.extension.toLowerCase()),Ue=(e,t)=>e.path.localeCompare(t.path,void 0,{numeric:!0,sensitivity:`base`}),K=e=>e.filter(He).sort(Ue),We=(e,t)=>Math.max(0,Math.min(e,Math.max(0,t-1))),Ge=(e,t,n)=>{let r=e.createElement(`button`);return r.type=`button`,r.className=`archive-comic-nav`,r.textContent=t,r.title=n,r.setAttribute(`aria-label`,n),r},Ke=e=>{let t=Ve(e.extension),n=Ge(e.document,`‹`,e.previousLabel),r=e.document.createElement(`span`);r.className=`archive-comic-page`,r.setAttribute(`role`,`status`),r.setAttribute(`aria-live`,`polite`),r.setAttribute(`aria-atomic`,`true`);let i=Ge(e.document,`›`,e.nextLabel),a=[n,r,i],o=[],s=/* @__PURE__ */ new Set,c=-1,l=null;a.forEach(e=>{e.hidden=!t}),t&&(e.root.tabIndex=0);let u=()=>K(e.getEntries()),d=t=>{let n=u();n.length&&(c=We(t,n.length),e.openEntry(n[c]))},f=(e,t,n)=>{e.addEventListener(t,n),o.push(()=>e.removeEventListener(t,n))};return t&&(f(n,`click`,()=>d(c-1)),f(i,`click`,()=>d(c+1)),f(e.root,`keydown`,e=>{e.target?.closest(`input, button, select, textarea, [contenteditable="true"]`)||(e.key===`ArrowLeft`||e.key===`PageUp`?(e.preventDefault(),d(c-1)):e.key===`ArrowRight`||e.key===`PageDown`||e.key===` `?(e.preventDefault(),d(c+1)):e.key===`Home`?(e.preventDefault(),d(0)):e.key===`End`&&(e.preventDefault(),d(u().length-1)))}),f(e.stage,`pointerdown`,t=>{t.isPrimary&&(e.root.focus({preventScroll:!0}),l=t.clientX)}),f(e.stage,`pointerup`,e=>{if(l===null||!e.isPrimary){l=null;return}let t=e.clientX-l;l=null,Math.abs(t)>=56&&d(c+(t<0?1:-1))}),f(e.stage,`pointercancel`,()=>{l=null})),{enabled:t,badge:t?e.extension.toUpperCase():`ARCHIVE`,toolbarElements:a,getVisibleEntries:e=>t?K(e):[...e],sortEntries:e=>e.sort(t?Ue:(e,t)=>e.path.localeCompare(t.path)),onEntriesReady(){if(!t||!u().length)return;let n=e.document.defaultView?.setTimeout(()=>{s.delete(n||0),d(0)},0);n!==void 0&&s.add(n)},onEntrySelected(e){t&&(c=u().findIndex(t=>t.id===e.id))},sync(){if(!t)return;let e=u().length;r.textContent=e?`${c+1} / ${e}`:`0 / 0`,n.disabled=c<=0,i.disabled=c<0||c>=e-1},dispose(){o.splice(0).forEach(e=>e()),s.forEach(t=>e.document.defaultView?.clearTimeout(t)),s.clear()}}}})))()}var q,Je,J,Y,X,Ye,Xe;function Z(){return(Z=e((()=>{x(),n(),q=/* @__PURE__ */ new Set([`shp`,`shx`,`dbf`,`prj`,`cpg`]),Je=/* @__PURE__ */ new Map([[`shp`,0],[`dbf`,1],[`shx`,2],[`prj`,3],[`cpg`,4]]),J=e=>e.replace(/^\/+/,``).replace(/\\/g,`/`),Y=e=>{let t=J(e),n=t.lastIndexOf(`/`),r=n===-1?``:t.slice(0,n),i=n===-1?t:t.slice(n+1),a=h(i),o=a?i.slice(0,-(a.length+1)):i;return{directory:r.toLowerCase(),filename:i,stem:o.toLowerCase(),extension:a}},X=e=>{let t=e,n=t?.default,r=[t?.default,n?.default,t?.JSZip,e].find(e=>typeof e==`function`);if(!r)throw Error(`JSZip module does not expose a constructor.`);return r},Ye=(e,t)=>{let n=Y(t.path);return n.extension===`shp`?e.filter(e=>{let t=Y(e.path);return t.directory===n.directory&&t.stem===n.stem&&q.has(t.extension)}).sort((e,t)=>{let n=Y(e.path).extension,r=Y(t.path).extension;return(Je.get(n)??2**53-1)-(Je.get(r)??2**53-1)}):[]},Xe=async(e,n)=>{let i=new(X(await r(()=>import(`./jszip.min-hNOoGCeG.js`).then(e=>/* @__PURE__ */ t(e.t(),1)),[],import.meta.url)));for(let t of e){let{filename:e}=Y(t.path);i.file(e||t.name,await n(t))}return i.generateAsync({type:`arraybuffer`,compression:`STORE`})}})))()}async function Q(e,t,n,i){let a=t.ownerDocument,o=a.defaultView||null,s=i?.options?.archive,c=i?.filename||`archive.bin`,l=(n||h(c)).toLowerCase(),u=s?.maxArchiveSize||Ze,d=s?.maxEntryPreviewSize||Qe,ee=s?.cache!==!1,te=s?.workerTimeoutMs||$e,ne=Pe(e,c),re=[],ie=[],p=null,m=[],g=null,_,v=!1,b=ae(i?.options),le=b(`archive.loading.readingDirectory`),de=b(`archive.loading.readingDirectoryHint`),x=``,S=``,C=null,pe=``,me=0,he=null,w=!1,T=0,ge=rt(a),E=$(a,`section`,`archive-shell archive-viewer`);E.dataset.viewerDensity=oe(i?.options?.ui?.density);let ve=$(a,`aside`,`archive-sidebar`),be=$(a,`div`,`archive-head`),D=$(a,`div`,`archive-head-main`),xe=$(a,`span`,void 0,`ARCHIVE`),O=$(a,`strong`,void 0,c);O.title=c;let k=$(a,`p`);k.setAttribute(`role`,`status`),k.setAttribute(`aria-live`,`polite`);let A=$(a,`button`,`archive-sidebar-toggle`);A.type=`button`,D.append(xe,O,k),be.append(D,A);let Se=$(a,`div`,`archive-warning`),Ce=$(a,`div`,`archive-info`),j=$(a,`input`,`archive-search`);j.type=`search`,j.placeholder=b(`archive.search.placeholder`);let M=$(a,`div`,`archive-list`);M.setAttribute(`role`,`list`),ve.append(be,Se,Ce,j,M);let we=$(a,`main`,`archive-preview`),Te=$(a,`div`,`archive-preview-toolbar`),N=$(a,`button`,`archive-sidebar-toggle`);N.type=`button`;let Ee=$(a,`div`,`archive-preview-title`);Ee.append($(a,`span`,void 0,b(`archive.preview.title`)),$(a,`strong`,void 0,b(`archive.preview.chooseFile`)));let P=$(a,`button`,`archive-download-button`,b(`archive.preview.downloadFile`));P.type=`button`;let F=$(a,`div`,`archive-nested-target`),I=Ke({document:a,extension:l,root:E,stage:F,previousLabel:b(`epub.previousPage`),nextLabel:b(`epub.nextPage`),getEntries:()=>m,openEntry:e=>void ht(e)});xe.textContent=I.badge,Te.append(N,Ee,...I.toolbarElements,P),we.append(Te,F),E.append(ve,we);let De=$(a,`div`,`archive-state`),L=$(a,`div`),Oe=$(a,`span`,`archive-spinner`),R=$(a,`div`),ke=$(a,`strong`,void 0,le),Ae=$(a,`p`,void 0,de);R.append(ke,Ae),L.append(Oe,R),De.append(L),E.append(De);let z=$(a,`div`,`archive-error`),je=$(a,`strong`,void 0,b(`archive.error.title`)),Me=$(a,`p`);z.append(je,Me),E.append(z);let B=$(a,`div`,`archive-password-dialog archive-hidden`);B.setAttribute(`role`,`dialog`),B.setAttribute(`aria-modal`,`true`);let V=$(a,`form`,`archive-password-card`),H=$(a,`h3`,void 0,b(`archive.password.title`)),Ne=$(a,`p`,void 0,b(`archive.password.description`)),U=$(a,`input`);U.type=`password`,U.autocomplete=`current-password`,U.placeholder=b(`archive.password.placeholder`);let Ie=$(a,`p`,`archive-password-error`),Le=$(a,`div`,`archive-password-actions`),Re=$(a,`button`,`archive-password-cancel`,b(`archive.password.cancel`));Re.type=`button`;let Be=$(a,`button`,`archive-password-submit`,b(`archive.password.confirm`));Be.type=`submit`,Le.append(Re,Be),V.append(H,Ne,U,Ie,Le),B.append(V),E.append(B),t.replaceChildren(ge,E);let W=(e,t,n)=>{e.addEventListener(t,n),ie.push(()=>e.removeEventListener(t,n))},G=e=>{B.classList.add(`archive-hidden`);let t=he;he=null,t?.(e)},Ve=async(e,t)=>{let n=v;return n&&(v=!1,J(),Y()),Ne.textContent=b(`archive.password.description`),Ie.textContent=t||e===`invalid-password`?b(`archive.password.invalid`):``,U.value=``,B.classList.remove(`archive-hidden`),o?.setTimeout(()=>U.focus(),0),new Promise(e=>{he=t=>{n&&t!==null&&(v=!0,J(),Y()),e(t)}})},He=async(e,t,n)=>{me+=1;let r={filename:c,entryName:t?.name,attempt:me,reason:e,error:n};return s?.password&&me===1&&!n?s.password:s?.requestPassword?await s.requestPassword(r)??null:Ve(e,n)},Ue=async e=>{await(p?.usePassword)?.call(p,e)},K=async(e,t,n)=>{let r=await He(e,t,n);if(r===null)throw new tt(b(`archive.error.passwordRequired`));await Ue(r)};W(V,`submit`,e=>{e.preventDefault();let t=U.value;t?G(t):(Ie.textContent=b(`archive.password.required`),U.focus())}),W(Re,`click`,()=>{G(null)}),W(B,`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),G(null))}),W(A,`click`,()=>{w=!0,J()}),W(N,`click`,()=>{w=!w,J()});let We=()=>{let e=m.reduce((e,t)=>e+t.size,0),t=m.filter(e=>e.previewable).length;return{count:m.length,totalSize:e,previewableCount:t}},Ge=()=>{let e=pe.trim().toLowerCase(),t=I.getVisibleEntries(m);return(e?t.filter(t=>t.path.toLowerCase().includes(e)):t).slice(0,et)},qe=async()=>{await f(_),_=void 0,F.replaceChildren()},q=async()=>{await(p?.close)?.call(p),p=null},Je=()=>{let e=b(`archive.sidebar.show`),t=b(`archive.sidebar.hide`),n=w?e:t;E.classList.toggle(`archive-sidebar-collapsed`,w),A.textContent=`‹`,N.textContent=w?`☰`:`‹`,A.title=t,N.title=n,A.setAttribute(`aria-label`,t),N.setAttribute(`aria-label`,n),A.setAttribute(`aria-expanded`,String(!w)),N.setAttribute(`aria-expanded`,String(!w))},J=()=>{let e=We(),t=b(`archive.stats.summary`,{count:e.count,size:y(e.totalSize),previewable:e.previewableCount});k.textContent=t,k.title=t,k.setAttribute(`aria-label`,t),Se.textContent=b(`archive.warning.encrypted`),Se.classList.toggle(`archive-hidden`,!C),Ce.textContent=S,Ce.classList.toggle(`archive-hidden`,!S),De.classList.toggle(`archive-hidden`,!v),ke.textContent=le,Ae.textContent=de,z.classList.toggle(`archive-hidden`,!x),Me.textContent=x;let n=g?ue(g,s):!1;P.hidden=!n,P.disabled=!n;let r=Ee.querySelector(`strong`);r&&(r.textContent=g?.name||b(`archive.preview.chooseFile`),r.setAttribute(`title`,g?.path||g?.name||``)),I.sync(),Je()},Y=()=>{if(g||v||F.childElementCount)return;let e=$(a,`div`,`archive-empty`);e.append($(a,`strong`,void 0,b(`archive.empty.title`)),$(a,`p`,void 0,b(`archive.empty.message`))),F.replaceChildren(e)},X=()=>{M.replaceChildren(),Ge().forEach(e=>{let t=$(a,`button`,`archive-entry`);t.type=`button`,t.style.setProperty(`--entry-depth`,String(e.depth)),t.classList.toggle(`active`,g?.id===e.id);let n=$(a,`span`,`entry-ext`,e.extension||`file`);n.title=e.extension||`file`;let r=$(a,`span`,`entry-copy`),i=$(a,`strong`,void 0,e.name),o=$(a,`em`,void 0,e.path),s=y(e.size),c=$(a,`small`,void 0,s);i.title=e.name,o.title=e.path,c.title=s,t.title=e.path,r.append(i,o),t.append(n,r,c),t.addEventListener(`click`,()=>{ht(e)}),M.append(t)})},Z=(e,t,n)=>{v=e,t&&(le=t),n&&(de=n),J(),Y()},Q=e=>{x=e,J()},nt=e=>{e.forEach(e=>e.terminate()),e.length=0},ot=async(e,t)=>{for(;;)try{return await lt(e.getFilesObject(),te,b(`archive.error.candidateReadTimeout`,{label:t.label}),o)}catch(e){if(!C&&!at(e))throw e;await K(C?`invalid-password`:`read-failed`,void 0,e)}},st=async(t,n)=>{let r=[],i=await gt(n,re),s=dt(a);try{t.init({getWorker:()=>{let e=new s(i,{type:`module`});return r.push(e),e}}),Z(!0,b(`archive.loading.initializingCandidate`,{label:n.label}),b(`archive.loading.initializingCandidateHint`));let l=pt(a,e,c),u=await lt(t.open(l),te,b(`archive.error.candidateInitTimeout`,{label:n.label}),o);p=u,ne&&typeof u.setLocale==`function`&&await u.setLocale(`zh_CN.GBK`).catch(()=>void 0),C=await lt(u.hasEncryptedData(),te,b(`archive.error.encryptedCheckTimeout`,{label:n.label}),o).catch(()=>null),C&&await K(`encrypted`),Z(!0,b(`archive.loading.readingDirectory`),b(`archive.loading.directoryReadyHint`));let d=await ot(u,n);return m=I.sortEntries(se(d)),J(),X(),Y(),I.onEntriesReady(),!0}catch(e){throw p||nt(r),e}},ct=async(t={})=>{let n=t.showWorkerFallbackNotice!==!1;Z(!0,b(n?`archive.loading.workerFallback`:`archive.loading.readingDirectory`),b(n?`archive.loading.workerFallbackHint`:`archive.loading.directoryReadyHint`));let r=await ze(e,c);return r?(m=I.sortEntries(r),C=null,S=n?b(`archive.notice.workerFallback`):``,J(),X(),Y(),I.onEntriesReady(),!0):!1},ut=async()=>{if(e.byteLength>u)Q(b(`archive.error.tooLarge`,{size:y(e.byteLength),limit:y(u)}));else{Z(!0,b(`archive.loading.initializingWorker`),b(`archive.loading.initializingWorkerHint`)),Q(``),S=``;try{if(ne&&!Fe(e,c)&&await ct({showWorkerFallbackNotice:!1}))return;let[{Archive:t},n]=await Promise.all([r(()=>import(`./libarchive-DRzzJvQl.js`),[],import.meta.url),_t(a,s)]),i=[];for(let e of n)try{await q(),await st(t,e);return}catch(t){if(t instanceof tt)throw t;i.push(`${e.label}: ${it(t)}`)}if(await q(),Fe(e,c))throw C=!0,J(),Error(b(`archive.error.encryptedRequiresWorker`));if(await ct())return;throw Error(i.join(`; `)||b(`archive.error.workerInitFailed`))}catch(e){console.error(e),Q(e instanceof Error?e.message:String(e))}finally{Z(!1)}}},ft=async(e,t,n)=>{if(await qe(),n!==T)return;let r=$(a,`div`,`archive-nested-content`);F.append(r);let o=fe(i,e,s),c=await yt(t,e.extension,r,o);n===T?_=c:(await f(c),r.remove())},mt=async t=>{let n=ce(c,e.byteLength,t);if(ee){let e=await _e(n);if(e)return e.buffer}let r;for(;;)try{r=await t.compressedFile.extract();break}catch(e){if(!p||!at(e))throw e;C=!0,J(),await K(`extract-failed`,t,e)}let i=await r.arrayBuffer();return ee&&await ye({key:n,filename:t.name,size:i.byteLength,updatedAt:Date.now(),buffer:i}),i};async function ht(e){let t=++T;g=e,I.onEntrySelected(e),X(),J();let n=Ye(m,e),r=n.length?n.reduce((e,t)=>e+t.size,0):e.size;if(r>d)Q(b(`archive.error.entryTooLarge`,{name:e.name,size:y(r),limit:y(d)}));else{Z(!0,b(`archive.loading.extracting`,{name:e.name})),Q(``);try{let r=n.length?await Xe(n,mt):await mt(e);if(t!==T)return;Z(!0,b(`archive.loading.rendering`,{name:e.name})),await ft(e,r,t)}catch(e){t===T&&(console.error(e),Q(e instanceof Error?e.message:String(e)))}finally{t===T&&Z(!1)}}}let vt=async e=>{Z(!0,b(`archive.loading.exporting`,{name:e.name}));try{let t=await mt(e),n=URL.createObjectURL(new Blob([t]));re.push(n);let r=a.createElement(`a`);r.href=n,r.download=e.name,a.body.append(r),r.click(),r.remove()}finally{Z(!1)}};return W(j,`input`,()=>{pe=j.value,X()}),W(P,`click`,()=>{g&&ue(g,s)&&vt(g)}),J(),Y(),ut(),{$el:E,async unmount(){G(null),I.dispose(),ie.splice(0).forEach(e=>e()),await qe(),await q(),re.forEach(e=>URL.revokeObjectURL(e)),t.replaceChildren()}}}var Ze,Qe,$e,et,tt,nt,rt,$,it,at,ot,st,ct,lt,ut,dt,ft,pt,mt,ht,gt,_t,vt,yt;function bt(){return(bt=e((()=>{i(),ie(),x(),be(),Be(),qe(),Z(),n(),Ze=335544320,Qe=67108864,$e=3e4,et=5e3,tt=class extends Error{constructor(e){super(e),this.name=`ArchivePasswordCancelledError`}},nt=`
5
- ${G}
4
+ `,Be=e=>{let t=e.trim().toLowerCase();return t===`cbz`||t===`cbr`},Ve=e=>G.has(e.extension.toLowerCase()),He=(e,t)=>e.path.localeCompare(t.path,void 0,{numeric:!0,sensitivity:`base`}),q=e=>e.filter(Ve).sort(He),Ue=(e,t)=>Math.max(0,Math.min(e,Math.max(0,t-1))),We=(e,t,n)=>{let r=e.createElement(`button`);return r.type=`button`,r.className=`archive-comic-nav`,r.textContent=t,r.title=n,r.setAttribute(`aria-label`,n),r},Ge=e=>{let t=Be(e.extension),n=We(e.document,`‹`,e.previousLabel),r=e.document.createElement(`span`);r.className=`archive-comic-page`,r.setAttribute(`role`,`status`),r.setAttribute(`aria-live`,`polite`),r.setAttribute(`aria-atomic`,`true`);let i=We(e.document,`›`,e.nextLabel),a=[n,r,i],o=[],s=/* @__PURE__ */ new Set,c=-1,l=null;a.forEach(e=>{e.hidden=!t}),t&&(e.root.tabIndex=0);let u=()=>q(e.getEntries()),d=t=>{let n=u();n.length&&(c=Ue(t,n.length),e.openEntry(n[c]))},f=(e,t,n)=>{e.addEventListener(t,n),o.push(()=>e.removeEventListener(t,n))};return t&&(f(n,`click`,()=>d(c-1)),f(i,`click`,()=>d(c+1)),f(e.root,`keydown`,e=>{e.target?.closest(`input, button, select, textarea, [contenteditable="true"]`)||(e.key===`ArrowLeft`||e.key===`PageUp`?(e.preventDefault(),d(c-1)):e.key===`ArrowRight`||e.key===`PageDown`||e.key===` `?(e.preventDefault(),d(c+1)):e.key===`Home`?(e.preventDefault(),d(0)):e.key===`End`&&(e.preventDefault(),d(u().length-1)))}),f(e.stage,`pointerdown`,t=>{t.isPrimary&&(e.root.focus({preventScroll:!0}),l=t.clientX)}),f(e.stage,`pointerup`,e=>{if(l===null||!e.isPrimary){l=null;return}let t=e.clientX-l;l=null,Math.abs(t)>=56&&d(c+(t<0?1:-1))}),f(e.stage,`pointercancel`,()=>{l=null})),{enabled:t,badge:t?e.extension.toUpperCase():`ARCHIVE`,toolbarElements:a,getVisibleEntries:e=>t?q(e):[...e],sortEntries:e=>e.sort(t?He:(e,t)=>e.path.localeCompare(t.path)),onEntriesReady(){if(!t||!u().length)return;let n=e.document.defaultView?.setTimeout(()=>{s.delete(n||0),d(0)},0);n!==void 0&&s.add(n)},onEntrySelected(e){t&&(c=u().findIndex(t=>t.id===e.id))},sync(){if(!t)return;let e=u().length;r.textContent=e?`${c+1} / ${e}`:`0 / 0`,n.disabled=c<=0,i.disabled=c<0||c>=e-1},dispose(){o.splice(0).forEach(e=>e()),s.forEach(t=>e.document.defaultView?.clearTimeout(t)),s.clear()}}}})))()}var qe,Je,J,Y,X,Ye,Xe;function Z(){return(Z=e((()=>{S(),n(),qe=/* @__PURE__ */ new Set([`shp`,`shx`,`dbf`,`prj`,`cpg`]),Je=/* @__PURE__ */ new Map([[`shp`,0],[`dbf`,1],[`shx`,2],[`prj`,3],[`cpg`,4]]),J=e=>e.replace(/^\/+/,``).replace(/\\/g,`/`),Y=e=>{let t=J(e),n=t.lastIndexOf(`/`),r=n===-1?``:t.slice(0,n),i=n===-1?t:t.slice(n+1),a=h(i),o=a?i.slice(0,-(a.length+1)):i;return{directory:r.toLowerCase(),filename:i,stem:o.toLowerCase(),extension:a}},X=e=>{let t=e,n=t?.default,r=[t?.default,n?.default,t?.JSZip,e].find(e=>typeof e==`function`);if(!r)throw Error(`JSZip module does not expose a constructor.`);return r},Ye=(e,t)=>{let n=Y(t.path);return n.extension===`shp`?e.filter(e=>{let t=Y(e.path);return t.directory===n.directory&&t.stem===n.stem&&qe.has(t.extension)}).sort((e,t)=>{let n=Y(e.path).extension,r=Y(t.path).extension;return(Je.get(n)??2**53-1)-(Je.get(r)??2**53-1)}):[]},Xe=async(e,n)=>{let i=new(X(await r(()=>import(`./jszip.min-hNOoGCeG.js`).then(e=>/* @__PURE__ */ t(e.t(),1)),[],import.meta.url)));for(let t of e){let{filename:e}=Y(t.path);i.file(e||t.name,await n(t))}return i.generateAsync({type:`arraybuffer`,compression:`STORE`})}})))()}async function Q(e,t,n,i){let a=t.ownerDocument,o=a.defaultView||null,s=i?.options?.archive,c=i?.filename||`archive.bin`,l=(n||h(c)).toLowerCase(),u=s?.maxArchiveSize||Ze,d=s?.maxEntryPreviewSize||Qe,ee=s?.cache!==!1,te=s?.workerTimeoutMs||$e,ne=Ne(e,c),re=[],ie=[],p=null,m=[],g=null,_,v=!1,b=ae(i?.options),x=b(`archive.loading.readingDirectory`),ue=b(`archive.loading.readingDirectoryHint`),S=``,C=``,w=null,fe=``,pe=0,me=null,T=!1,E=0,he=rt(a),D=$(a,`section`,`archive-shell archive-viewer`);D.dataset.viewerDensity=oe(i?.options?.ui?.density);let _e=$(a,`aside`,`archive-sidebar`),ye=$(a,`div`,`archive-head`),O=$(a,`div`,`archive-head-main`),be=$(a,`span`,void 0,`ARCHIVE`),k=$(a,`strong`,void 0,c);k.title=c;let A=$(a,`p`);A.setAttribute(`role`,`status`),A.setAttribute(`aria-live`,`polite`);let j=$(a,`button`,`archive-sidebar-toggle`);j.type=`button`,O.append(be,k,A),ye.append(O,j);let xe=$(a,`div`,`archive-warning`),Se=$(a,`div`,`archive-info`),M=$(a,`input`,`archive-search`);M.type=`search`,M.placeholder=b(`archive.search.placeholder`);let N=$(a,`div`,`archive-list`);N.setAttribute(`role`,`list`),_e.append(ye,xe,Se,M,N);let Ce=$(a,`main`,`archive-preview`),we=$(a,`div`,`archive-preview-toolbar`),P=$(a,`button`,`archive-sidebar-toggle`);P.type=`button`;let Te=$(a,`div`,`archive-preview-title`);Te.append($(a,`span`,void 0,b(`archive.preview.title`)),$(a,`strong`,void 0,b(`archive.preview.chooseFile`)));let F=$(a,`button`,`archive-download-button`,b(`archive.preview.downloadFile`));F.type=`button`;let I=$(a,`div`,`archive-nested-target`),L=Ge({document:a,extension:l,root:D,stage:I,previousLabel:b(`epub.previousPage`),nextLabel:b(`epub.nextPage`),getEntries:()=>m,openEntry:e=>void ht(e)});be.textContent=L.badge,we.append(P,Te,...L.toolbarElements,F),Ce.append(we,I),D.append(_e,Ce);let Ee=$(a,`div`,`archive-state`),R=$(a,`div`),De=$(a,`span`,`archive-spinner`),z=$(a,`div`),Oe=$(a,`strong`,void 0,x),ke=$(a,`p`,void 0,ue);z.append(Oe,ke),R.append(De,z),Ee.append(R),D.append(Ee);let B=$(a,`div`,`archive-error`),Ae=$(a,`strong`,void 0,b(`archive.error.title`)),je=$(a,`p`);B.append(Ae,je),D.append(B);let V=$(a,`div`,`archive-password-dialog archive-hidden`);V.setAttribute(`role`,`dialog`),V.setAttribute(`aria-modal`,`true`);let H=$(a,`form`,`archive-password-card`),U=$(a,`h3`,void 0,b(`archive.password.title`)),Me=$(a,`p`,void 0,b(`archive.password.description`)),W=$(a,`input`);W.type=`password`,W.autocomplete=`current-password`,W.placeholder=b(`archive.password.placeholder`);let Fe=$(a,`p`,`archive-password-error`),Ie=$(a,`div`,`archive-password-actions`),Le=$(a,`button`,`archive-password-cancel`,b(`archive.password.cancel`));Le.type=`button`;let ze=$(a,`button`,`archive-password-submit`,b(`archive.password.confirm`));ze.type=`submit`,Ie.append(Le,ze),H.append(U,Me,W,Fe,Ie),V.append(H),D.append(V),t.replaceChildren(he,D);let G=(e,t,n)=>{e.addEventListener(t,n),ie.push(()=>e.removeEventListener(t,n))},K=e=>{V.classList.add(`archive-hidden`);let t=me;me=null,t?.(e)},Be=async(e,t)=>{let n=v;return n&&(v=!1,J(),Y()),Me.textContent=b(`archive.password.description`),Fe.textContent=t||e===`invalid-password`?b(`archive.password.invalid`):``,W.value=``,V.classList.remove(`archive-hidden`),o?.setTimeout(()=>W.focus(),0),new Promise(e=>{me=t=>{n&&t!==null&&(v=!0,J(),Y()),e(t)}})},Ve=async(e,t,n)=>{pe+=1;let r={filename:c,entryName:t?.name,attempt:pe,reason:e,error:n};return s?.password&&pe===1&&!n?s.password:s?.requestPassword?await s.requestPassword(r)??null:Be(e,n)},He=async e=>{await(p?.usePassword)?.call(p,e)},q=async(e,t,n)=>{let r=await Ve(e,t,n);if(r===null)throw new tt(b(`archive.error.passwordRequired`));await He(r)};G(H,`submit`,e=>{e.preventDefault();let t=W.value;t?K(t):(Fe.textContent=b(`archive.password.required`),W.focus())}),G(Le,`click`,()=>{K(null)}),G(V,`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),K(null))}),G(j,`click`,()=>{T=!0,J()}),G(P,`click`,()=>{T=!T,J()});let Ue=()=>{let e=m.reduce((e,t)=>e+t.size,0),t=m.filter(e=>e.previewable).length;return{count:m.length,totalSize:e,previewableCount:t}},We=()=>{let e=fe.trim().toLowerCase(),t=L.getVisibleEntries(m);return(e?t.filter(t=>t.path.toLowerCase().includes(e)):t).slice(0,et)},Ke=async()=>{await f(_),_=void 0,I.replaceChildren()},qe=async()=>{await(p?.close)?.call(p),p=null},Je=()=>{let e=b(`archive.sidebar.show`),t=b(`archive.sidebar.hide`),n=T?e:t;D.classList.toggle(`archive-sidebar-collapsed`,T),j.textContent=`‹`,P.textContent=T?`☰`:`‹`,j.title=t,P.title=n,j.setAttribute(`aria-label`,t),P.setAttribute(`aria-label`,n),j.setAttribute(`aria-expanded`,String(!T)),P.setAttribute(`aria-expanded`,String(!T))},J=()=>{let e=Ue(),t=b(`archive.stats.summary`,{count:e.count,size:y(e.totalSize),previewable:e.previewableCount});A.textContent=t,A.title=t,A.setAttribute(`aria-label`,t),xe.textContent=b(`archive.warning.encrypted`),xe.classList.toggle(`archive-hidden`,!w),Se.textContent=C,Se.classList.toggle(`archive-hidden`,!C),Ee.classList.toggle(`archive-hidden`,!v),Oe.textContent=x,ke.textContent=ue,B.classList.toggle(`archive-hidden`,!S),je.textContent=S;let n=g?le(g,s):!1;F.hidden=!n,F.disabled=!n;let r=Te.querySelector(`strong`);r&&(r.textContent=g?.name||b(`archive.preview.chooseFile`),r.setAttribute(`title`,g?.path||g?.name||``)),L.sync(),Je()},Y=()=>{if(g||v||I.childElementCount)return;let e=$(a,`div`,`archive-empty`);e.append($(a,`strong`,void 0,b(`archive.empty.title`)),$(a,`p`,void 0,b(`archive.empty.message`))),I.replaceChildren(e)},X=()=>{N.replaceChildren(),We().forEach(e=>{let t=$(a,`button`,`archive-entry`);t.type=`button`,t.style.setProperty(`--entry-depth`,String(e.depth)),t.classList.toggle(`active`,g?.id===e.id);let n=$(a,`span`,`entry-ext`,e.extension||`file`);n.title=e.extension||`file`;let r=$(a,`span`,`entry-copy`),i=$(a,`strong`,void 0,e.name),o=$(a,`em`,void 0,e.path),s=y(e.size),c=$(a,`small`,void 0,s);i.title=e.name,o.title=e.path,c.title=s,t.title=e.path,r.append(i,o),t.append(n,r,c),t.addEventListener(`click`,()=>{ht(e)}),N.append(t)})},Z=(e,t,n)=>{v=e,t&&(x=t),n&&(ue=n),J(),Y()},Q=e=>{S=e,J()},nt=e=>{e.forEach(e=>e.terminate()),e.length=0},ot=async(e,t)=>{for(;;)try{return await lt(e.getFilesObject(),te,b(`archive.error.candidateReadTimeout`,{label:t.label}),o)}catch(e){if(!w&&!at(e))throw e;await q(w?`invalid-password`:`read-failed`,void 0,e)}},st=async(t,n)=>{let r=[],i=await gt(n,re),s=dt(a);try{t.init({getWorker:()=>{let e=new s(i,{type:`module`});return r.push(e),e}}),Z(!0,b(`archive.loading.initializingCandidate`,{label:n.label}),b(`archive.loading.initializingCandidateHint`));let l=pt(a,e,c),u=await lt(t.open(l),te,b(`archive.error.candidateInitTimeout`,{label:n.label}),o);p=u,ne&&typeof u.setLocale==`function`&&await u.setLocale(`zh_CN.GBK`).catch(()=>void 0),w=await lt(u.hasEncryptedData(),te,b(`archive.error.encryptedCheckTimeout`,{label:n.label}),o).catch(()=>null),w&&await q(`encrypted`),Z(!0,b(`archive.loading.readingDirectory`),b(`archive.loading.directoryReadyHint`));let d=await ot(u,n);return m=L.sortEntries(se(d)),J(),X(),Y(),L.onEntriesReady(),!0}catch(e){throw p||nt(r),e}},ct=async(t={})=>{let n=t.showWorkerFallbackNotice!==!1;Z(!0,b(n?`archive.loading.workerFallback`:`archive.loading.readingDirectory`),b(n?`archive.loading.workerFallbackHint`:`archive.loading.directoryReadyHint`));let r=await Re(e,c);return r?(m=L.sortEntries(r),w=null,C=n?b(`archive.notice.workerFallback`):``,J(),X(),Y(),L.onEntriesReady(),!0):!1},ut=async()=>{if(e.byteLength>u)Q(b(`archive.error.tooLarge`,{size:y(e.byteLength),limit:y(u)}));else{Z(!0,b(`archive.loading.initializingWorker`),b(`archive.loading.initializingWorkerHint`)),Q(``),C=``;try{if(ne&&!Pe(e,c)&&await ct({showWorkerFallbackNotice:!1}))return;let[{Archive:t},n]=await Promise.all([r(()=>import(`./libarchive-DRzzJvQl.js`),[],import.meta.url),_t(a,s)]),i=[];for(let e of n)try{await qe(),await st(t,e);return}catch(t){if(t instanceof tt)throw t;i.push(`${e.label}: ${it(t)}`)}if(await qe(),Pe(e,c))throw w=!0,J(),Error(b(`archive.error.encryptedRequiresWorker`));if(await ct())return;throw Error(i.join(`; `)||b(`archive.error.workerInitFailed`))}catch(e){console.error(e),Q(e instanceof Error?e.message:String(e))}finally{Z(!1)}}},ft=async(e,t,n)=>{if(await Ke(),n!==E)return;let r=$(a,`div`,`archive-nested-content`);I.append(r);let o=de(i,e,s),c=await yt(t,e.extension,r,o);n===E?_=c:(await f(c),r.remove())},mt=async t=>{let n=ce(c,e.byteLength,t);if(ee){let e=await ge(n);if(e)return e.buffer}let r;for(;;)try{r=await t.compressedFile.extract();break}catch(e){if(!p||!at(e))throw e;w=!0,J(),await q(`extract-failed`,t,e)}let i=await r.arrayBuffer();return ee&&await ve({key:n,filename:t.name,size:i.byteLength,updatedAt:Date.now(),buffer:i}),i};async function ht(e){let t=++E;g=e,L.onEntrySelected(e),X(),J();let n=Ye(m,e),r=n.length?n.reduce((e,t)=>e+t.size,0):e.size;if(r>d)Q(b(`archive.error.entryTooLarge`,{name:e.name,size:y(r),limit:y(d)}));else{Z(!0,b(`archive.loading.extracting`,{name:e.name})),Q(``);try{let r=n.length?await Xe(n,mt):await mt(e);if(t!==E)return;Z(!0,b(`archive.loading.rendering`,{name:e.name})),await ft(e,r,t)}catch(e){t===E&&(console.error(e),Q(e instanceof Error?e.message:String(e)))}finally{t===E&&Z(!1)}}}let vt=async e=>{Z(!0,b(`archive.loading.exporting`,{name:e.name}));try{let t=await mt(e),n=URL.createObjectURL(new Blob([t]));re.push(n);let r=a.createElement(`a`);r.href=n,r.download=e.name,a.body.append(r),r.click(),r.remove()}finally{Z(!1)}};return G(M,`input`,()=>{fe=M.value,X()}),G(F,`click`,()=>{g&&le(g,s)&&vt(g)}),J(),Y(),ut(),{$el:D,async unmount(){K(null),L.dispose(),ie.splice(0).forEach(e=>e()),await Ke(),await qe(),re.forEach(e=>URL.revokeObjectURL(e)),t.replaceChildren()}}}var Ze,Qe,$e,et,tt,nt,rt,$,it,at,ot,st,ct,lt,ut,dt,ft,pt,mt,ht,gt,_t,vt,yt;function bt(){return(bt=e((()=>{ee(),ie(),S(),ye(),ze(),Ke(),Z(),n(),Ze=335544320,Qe=67108864,$e=3e4,et=5e3,tt=class extends Error{constructor(e){super(e),this.name=`ArchivePasswordCancelledError`}},nt=`
5
+ ${K}
6
6
  .archive-shell,.archive-viewer{position:relative;box-sizing:border-box;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;display:grid;grid-template-columns:var(--archive-sidebar-track) minmax(0,1fr);grid-template-rows:minmax(0,1fr);--archive-sidebar-track:clamp(248px,30%,420px);--archive-sidebar-gap:8px;--archive-sidebar-padding:10px;--archive-head-gap:8px;--archive-eyebrow-size:10px;--archive-title-margin:2px;--archive-title-size:15px;--archive-stats-margin:4px;--archive-stats-size:11px;--archive-stats-line:1.35;--archive-toggle-size:32px;--archive-toggle-radius:9px;--archive-notice-padding:7px 9px;--archive-notice-radius:9px;--archive-notice-size:11px;--archive-search-height:36px;--archive-search-padding:0 10px;--archive-search-radius:9px;--archive-search-font-size:12px;--archive-list-gap:4px;--archive-list-padding:3px;--archive-entry-min-height:48px;--archive-entry-icon-column:34px;--archive-entry-gap:7px;--archive-entry-padding-y:5px;--archive-entry-padding-x:7px;--archive-entry-depth-step:8px;--archive-entry-depth-max:40px;--archive-entry-radius:9px;--archive-entry-ext-height:28px;--archive-entry-ext-radius:7px;--archive-entry-ext-size:9px;--archive-entry-name-size:13px;--archive-entry-name-line:1.25;--archive-entry-meta-size:11px;--archive-entry-meta-line:1.3;--archive-entry-size-width:64px;--archive-preview-toolbar-min-height:56px;--archive-preview-toolbar-gap:10px;--archive-preview-toolbar-padding:10px 12px;--archive-preview-button-height:32px;--archive-preview-button-padding:0 10px;--archive-preview-button-radius:9px;--archive-empty-padding:24px;--archive-state-gap:10px;--archive-state-padding:14px;--archive-state-radius:14px;background:#edf2f7;color:#172033;font-family:Aptos,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif}
7
7
  .archive-shell *,.archive-viewer *{box-sizing:border-box}
8
8
  .archive-shell[data-viewer-density='compact'],.archive-viewer[data-viewer-density='compact'],.file-viewer[data-viewer-density='compact'] .archive-shell,.file-viewer[data-viewer-density='compact'] .archive-viewer,.file-viewer-web-shell[data-viewer-density='compact'] .archive-shell,.file-viewer-web-shell[data-viewer-density='compact'] .archive-viewer{--archive-sidebar-track:clamp(224px,27%,360px);--archive-sidebar-gap:4px;--archive-sidebar-padding:6px;--archive-head-gap:5px;--archive-eyebrow-size:9px;--archive-title-margin:1px;--archive-title-size:14px;--archive-stats-margin:2px;--archive-stats-size:10px;--archive-toggle-size:28px;--archive-toggle-radius:7px;--archive-notice-padding:4px 6px;--archive-notice-radius:7px;--archive-notice-size:10px;--archive-search-height:30px;--archive-search-padding:0 7px;--archive-search-radius:7px;--archive-search-font-size:11px;--archive-list-gap:3px;--archive-list-padding:2px;--archive-entry-min-height:40px;--archive-entry-icon-column:28px;--archive-entry-gap:5px;--archive-entry-padding-y:3px;--archive-entry-padding-x:5px;--archive-entry-depth-step:6px;--archive-entry-depth-max:32px;--archive-entry-radius:7px;--archive-entry-ext-height:24px;--archive-entry-ext-radius:6px;--archive-entry-ext-size:8px;--archive-entry-name-size:12px;--archive-entry-meta-size:10px;--archive-entry-size-width:54px;--archive-preview-toolbar-min-height:38px;--archive-preview-toolbar-gap:5px;--archive-preview-toolbar-padding:4px 5px;--archive-preview-button-height:28px;--archive-preview-button-padding:0 5px;--archive-preview-button-radius:7px;--archive-empty-padding:18px;--archive-state-gap:5px;--archive-state-padding:5px;--archive-state-radius:10px}
@@ -69,4 +69,4 @@ import{n as e,o as t}from"./rolldown-runtime-BKuNeK48.js";import{n,t as r}from".
69
69
  @media (prefers-color-scheme:dark){[data-viewer-theme='system'] .archive-shell,[data-viewer-theme='system'] .archive-viewer{background:#101820;color:#e6edf3}[data-viewer-theme='system'] .archive-sidebar,[data-viewer-theme='system'] .archive-preview-toolbar{border-color:rgba(139,148,158,.2);background:rgba(21,27,35,.82)}[data-viewer-theme='system'] .archive-entry,[data-viewer-theme='system'] .archive-search,[data-viewer-theme='system'] .archive-state>div{background:#151b23;color:#e6edf3;border-color:rgba(139,148,158,.2)}[data-viewer-theme='system'] .archive-head span,[data-viewer-theme='system'] .archive-preview-toolbar span,[data-viewer-theme='system'] .archive-head p,[data-viewer-theme='system'] .entry-copy em,[data-viewer-theme='system'] .archive-entry small{color:#9cacc0}[data-viewer-theme='system'] .archive-password-card{background:#151b23;color:#e6edf3}[data-viewer-theme='system'] .archive-password-card input{background:#0d1117;color:#e6edf3;border-color:rgba(139,148,158,.24)}[data-viewer-theme='system'] .archive-password-cancel{background:#212a35;color:#d7dee8}[data-viewer-theme='system'] .archive-empty strong{color:#f8fafc}}
70
70
  @keyframes archive-spin{to{transform:rotate(360deg)}}
71
71
  @media (max-width:860px){.archive-shell,.archive-viewer{grid-template-columns:1fr;grid-template-rows:minmax(200px,34%) minmax(0,1fr);--archive-sidebar-gap:6px;--archive-sidebar-padding:8px;--archive-title-size:14px;--archive-stats-size:10px;--archive-search-height:38px;--archive-search-font-size:16px;--archive-list-gap:3px;--archive-entry-min-height:44px;--archive-entry-icon-column:30px;--archive-entry-gap:6px;--archive-entry-padding-y:4px;--archive-entry-padding-x:6px;--archive-entry-depth-step:6px;--archive-entry-depth-max:24px;--archive-entry-ext-height:26px;--archive-entry-name-size:12px;--archive-entry-meta-size:10px;--archive-entry-size-width:52px}.archive-shell.archive-sidebar-collapsed,.archive-viewer.archive-sidebar-collapsed{grid-template-columns:1fr;grid-template-rows:0 minmax(0,1fr)}.archive-sidebar{grid-column:1;grid-row:1;border-right:0;border-bottom:1px solid rgba(23,32,51,.08)}.archive-preview{grid-column:1;grid-row:2}.archive-preview-toolbar{min-height:52px;padding:8px 10px}.archive-preview-toolbar strong{font-size:15px}.archive-entry{grid-template-columns:var(--archive-entry-icon-column) minmax(0,1fr) minmax(40px,auto)}}
72
- `,rt=e=>{let t=e.createElement(`style`);return t.textContent=nt,t},$=(e,t,n,r)=>{let i=e.createElement(t);return n&&(i.className=n),r!==void 0&&(i.textContent=r),i},it=e=>e instanceof Error?e.message:typeof e==`string`?e:JSON.stringify(e),at=e=>{let t=it(e).toLowerCase();return/passphrase|password|encrypted|decrypt|crypto|wrong key|incorrect/i.test(t)},ot=(e={})=>{let t=e.autoRenderers;return typeof t==`boolean`?t:t?.enabled===void 0?(e.rendererMode||`extend`)!==`replace`:t.enabled},st=async e=>{let t=e?.options||{},n=t.rendererMode===`replace`?a([]):ne({builtinRenderers:t.builtinRenderers}).registry,r=[];ot(t)&&r.push(...o()),r.push(...c(t.preset),...c(t.presets)),t.renderers&&r.push(t.renderers);let i=l(r);return i.length&&await u({registry:n,plugins:i,registerHandler:e=>{let t=n.getById(e.rendererId);t&&n.register({...t,load:p({handler:e.handler,getTarget:e=>e.surface.container})})}}),n},ct=(e,t)=>({$el:e,destroy:()=>t.destroy?.call(t)}),lt=async(e,t,n,r)=>{let i=0,a=r||(typeof window<`u`?window:void 0);try{return await Promise.race([e,new Promise((e,r)=>{i=a?.setTimeout?a.setTimeout(()=>r(Error(n)),t):setTimeout(()=>r(Error(n)),t)})])}finally{a?.clearTimeout?a.clearTimeout(i):clearTimeout(i)}},ut=e=>e.baseURI||e.URL||`file:///`,dt=e=>{let t=e.defaultView?.Worker||(typeof Worker<`u`?Worker:void 0);if(!t)throw Error(`Web Worker is not supported by this browser.`);return t},ft=e=>e.defaultView?.File||(typeof File<`u`?File:void 0),pt=(e,t,n)=>{let r=ft(e);return r?new r([t],n||`archive.bin`,{type:`application/octet-stream`}):Object.assign(new Blob([t],{type:`application/octet-stream`}),{name:n||`archive.bin`})},mt=async e=>{try{let t=await fetch(e,{method:`HEAD`,cache:`no-cache`}),n=t.headers.get(`content-type`)||``;if(t.ok&&/javascript|ecmascript|octet-stream/i.test(n))return!0;if(t.status&&t.status!==405)return!1}catch{}try{let t=await fetch(e,{method:`GET`,cache:`no-cache`,headers:{Range:`bytes=0-0`}}),n=t.headers.get(`content-type`)||``;return t.ok&&/javascript|ecmascript|octet-stream/i.test(n)}catch{return!1}},ht=(e,t)=>{let n=JSON.stringify(t);return e.replace(/new URL\((['"])libarchive\.wasm\1\s*,\s*import\.meta\.url\)\.href/g,n)},gt=async(e,t)=>{if(!e.wasmUrl)return e.workerUrl;let n=await fetch(e.workerUrl,{cache:`no-cache`});if(!n.ok)throw Error(`Unable to read libarchive Worker: ${n.status}`);let r=await n.text(),i=URL.createObjectURL(new Blob([ht(r,e.wasmUrl)],{type:`application/javascript`}));return t.push(i),i},_t=async(e,t)=>{let n=[],r=ee(e)||ut(e),i=t?.wasmUrl?re(t,``,r):void 0;if(t?.workerUrl)return n.push({label:`custom libarchive Worker`,workerUrl:te(t,r),wasmUrl:i}),n;let a=te(void 0,r);return await mt(a)&&n.push({label:`static libarchive Worker`,workerUrl:a,wasmUrl:i}),n},vt=async(e,t,n,r)=>{let i=ae(r?.options),a=(await st(r)).getByExtension(t);if(!a?.load){n.textContent=i(`archive.error.nestedUnsupported`,{type:t});return}let o=await a.load({source:s({buffer:e,filename:r?.filename||`preview.${t}`,type:t,url:r?.url}),surface:{container:n},options:r?.options||{},registerExportAdapter:r?.registerExportAdapter,renderContext:{...r,renderNestedBuffer:r?.renderNestedBuffer||vt}});return ct(n,o)},yt=(e,t,n,r)=>(r?.renderNestedBuffer||vt)(e,t,n,{...r,renderNestedBuffer:r?.renderNestedBuffer||vt})})))()}bt();export{Q as default};
72
+ `,rt=e=>{let t=e.createElement(`style`);return t.textContent=nt,t},$=(e,t,n,r)=>{let i=e.createElement(t);return n&&(i.className=n),r!==void 0&&(i.textContent=r),i},it=e=>e instanceof Error?e.message:typeof e==`string`?e:JSON.stringify(e),at=e=>{let t=it(e).toLowerCase();return/passphrase|password|encrypted|decrypt|crypto|wrong key|incorrect/i.test(t)},ot=(e={})=>{let t=e.autoRenderers;return typeof t==`boolean`?t:t?.enabled===void 0?(e.rendererMode||`extend`)!==`replace`:t.enabled},st=async e=>{let t=e?.options||{},n=t.rendererMode===`replace`?i([]):re({builtinRenderers:t.builtinRenderers}).registry,r=[];ot(t)&&r.push(...a()),r.push(...s(t.preset),...s(t.presets)),t.renderers&&r.push(t.renderers);let o=l(r);return o.length&&await u({registry:n,plugins:o,registerHandler:e=>{let t=n.getById(e.rendererId);t&&n.register({...t,load:p({handler:e.handler,getTarget:e=>e.surface.container})})}}),n},ct=(e,t)=>({$el:e,destroy:()=>t.destroy?.call(t)}),lt=async(e,t,n,r)=>{let i=0,a=r||(typeof window<`u`?window:void 0);try{return await Promise.race([e,new Promise((e,r)=>{i=a?.setTimeout?a.setTimeout(()=>r(Error(n)),t):setTimeout(()=>r(Error(n)),t)})])}finally{a?.clearTimeout?a.clearTimeout(i):clearTimeout(i)}},ut=e=>e.baseURI||e.URL||`file:///`,dt=e=>{let t=e.defaultView?.Worker||(typeof Worker<`u`?Worker:void 0);if(!t)throw Error(`Web Worker is not supported by this browser.`);return t},ft=e=>e.defaultView?.File||(typeof File<`u`?File:void 0),pt=(e,t,n)=>{let r=ft(e);return r?new r([t],n||`archive.bin`,{type:`application/octet-stream`}):Object.assign(new Blob([t],{type:`application/octet-stream`}),{name:n||`archive.bin`})},mt=async e=>{try{let t=await fetch(e,{method:`HEAD`,cache:`no-cache`}),n=t.headers.get(`content-type`)||``;if(t.ok&&/javascript|ecmascript|octet-stream/i.test(n))return!0;if(t.status&&t.status!==405)return!1}catch{}try{let t=await fetch(e,{method:`GET`,cache:`no-cache`,headers:{Range:`bytes=0-0`}}),n=t.headers.get(`content-type`)||``;return t.ok&&/javascript|ecmascript|octet-stream/i.test(n)}catch{return!1}},ht=(e,t)=>{let n=JSON.stringify(t);return e.replace(/new URL\((['"])libarchive\.wasm\1\s*,\s*import\.meta\.url\)\.href/g,n)},gt=async(e,t)=>{if(!e.wasmUrl)return e.workerUrl;let n=await fetch(e.workerUrl,{cache:`no-cache`});if(!n.ok)throw Error(`Unable to read libarchive Worker: ${n.status}`);let r=await n.text(),i=URL.createObjectURL(new Blob([ht(r,e.wasmUrl)],{type:`application/javascript`}));return t.push(i),i},_t=async(e,t)=>{let n=[],r=te(e)||ut(e),i=t?.wasmUrl?ne(t,``,r):void 0;if(t?.workerUrl)return n.push({label:`custom libarchive Worker`,workerUrl:d(t,r),wasmUrl:i}),n;let a=d(void 0,r);return await mt(a)&&n.push({label:`static libarchive Worker`,workerUrl:a,wasmUrl:i}),n},vt=async(e,t,n,r)=>{let i=ae(r?.options),a=(await st(r)).getByExtension(t);if(!a?.load){n.textContent=i(`archive.error.nestedUnsupported`,{type:t});return}let s=await a.load({source:o({buffer:e,filename:r?.filename||`preview.${t}`,type:t,url:r?.url}),surface:{container:n},options:r?.options||{},registerExportAdapter:r?.registerExportAdapter,renderContext:{...r,renderNestedBuffer:r?.renderNestedBuffer||vt}});return ct(n,s)},yt=(e,t,n,r)=>(r?.renderNestedBuffer||vt)(e,t,n,{...r,renderNestedBuffer:r?.renderNestedBuffer||vt})})))()}bt();export{Q as default};