@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.
- package/LICENSE +21 -21
- package/README.md +58 -42
- package/THIRD_PARTY_NOTICES.md +55 -55
- package/dist/automation.js +3 -3
- package/dist/chunks/App-DNjXLysb.js +79 -0
- package/dist/chunks/{AppModal-B_xvSaeq.js → AppModal-DJzQA6FR.js} +1 -1
- package/dist/chunks/ArcBaseAdmin-BZrHGq2f.js +1 -0
- package/dist/chunks/ConfigurableTable-DzmZDd8F.js +55 -0
- package/dist/chunks/{DashboardPage-BTLufKzi.js → DashboardPage-BohGodSl.js} +1 -1
- package/dist/chunks/DataScopePanel-B2-x8Jcz.js +1 -0
- package/dist/chunks/{DateTimeText-rk9NeYgA.js → DateTimeText-CIt0Qy45.js} +1 -1
- package/dist/chunks/DepartmentsPage-DMWY__Y_.js +1 -0
- package/dist/chunks/DictTag-2-adKbYg.js +1 -0
- package/dist/chunks/DictsPage-DILDyHi-.js +15 -0
- package/dist/chunks/EditFormModal-DNHOZHxM.js +1 -0
- package/dist/chunks/EntityContextRuntime-DMklAv-k.js +1 -0
- package/dist/chunks/{EntityContextRuntime-BrAz-aCV.js → EntityContextRuntime-sslBZqYD.js} +1 -1
- package/dist/chunks/{EntityRelationButton-C8Cl8wyh.js → EntityRelationButton-DWn1rC2J.js} +2 -2
- package/dist/chunks/{ExportButton-D4IvZKHy.js → ExportButton-AzH4D0oW.js} +1 -1
- package/dist/chunks/FileNameCell-DPyi64Rv.js +1 -0
- package/dist/chunks/FileStorageConfigsPage-CzuOgeK0.js +15 -0
- package/dist/chunks/FileTypeIcon-DIih3XQG.js +1 -0
- package/dist/chunks/{FileViewerPreviewPanel-wbXzgqxc.js → FileViewerPreviewPanel-CMqVtGCr.js} +2 -2
- package/dist/chunks/FilesPage-BaEBCOCs.js +43 -0
- package/dist/chunks/IdentitySecurityPage-BO7nY8id.js +1 -0
- package/dist/chunks/{JsonPreviewPanel-D8YpZD1A.js → JsonPreviewPanel-Dhbza-Uu.js} +1 -1
- package/dist/chunks/LogStatsScaffold-CLycj3da.js +1 -0
- package/dist/chunks/LoginLogsPage-DTmHi8u0.js +1 -0
- package/dist/chunks/LoginLogsTable-DVmHnC6V.js +1 -0
- package/dist/chunks/{MasterDetailLayout-DDVFodpX.js → MasterDetailLayout-sjPWw8BI.js} +2 -2
- package/dist/chunks/{MemberAssignmentSheet-NWm5vThg.js → MemberAssignmentSheet-Czbt6_zv.js} +1 -1
- package/dist/chunks/MenuCommandPalette-BCOzf-Kq.js +8 -0
- package/dist/chunks/MenusPage-DN8DTGB1.js +1 -0
- package/dist/chunks/{ModalFooter-vXDpmYTM.js → ModalFooter-RMlvqrO9.js} +1 -1
- package/dist/chunks/NavListPanel-vjIOIqK0.js +1 -0
- package/dist/chunks/OnlineSessionsPage-FoHYZKlR.js +1 -0
- package/dist/chunks/OperationLogsPage-BeRnGcBJ.js +1 -0
- package/dist/chunks/OperationLogsTable-COI-Lp-y.js +1 -0
- package/dist/chunks/PDFPreviewPanel-BIQuBnZZ.js +37 -0
- package/dist/chunks/PasswordInput-DGEJO9yx.js +1 -0
- package/dist/chunks/PositionsPage-DohI0luX.js +1 -0
- package/dist/chunks/PreferencesSheetBody-B9niQABW.js +43 -0
- package/dist/chunks/ProfilePage-CVTRv7xb.js +15 -0
- package/dist/chunks/RelationPanel-B1X6AVaM.js +36 -0
- package/dist/chunks/RolesPage-CtUw93L8.js +1 -0
- package/dist/chunks/{SearchToolbar-BAh56OAa.js → SearchToolbar-CvgYKUjr.js} +1 -1
- package/dist/chunks/{SessionClientTag-DafwXf-o.js → SessionClientTag-DIwnYodW.js} +2 -2
- package/dist/chunks/SessionConflictModal-BLNuDsN_.js +1 -0
- package/dist/chunks/SettingRow-DVNmTJWC.js +1 -0
- package/dist/chunks/SettingsPage-BRnCxYQm.js +26 -0
- package/dist/chunks/StatCard-Czjfs0fa.js +4 -0
- package/dist/chunks/{UserDisplay-BYhcfa84.js → UserDisplay-J0Re8z-7.js} +1 -1
- package/dist/chunks/UserGroupsPage-CNwbejx-.js +1 -0
- package/dist/chunks/{UserLogsPanels-3ZlKQsCu.js → UserLogsPanels-BHeSxWrk.js} +2 -2
- package/dist/chunks/UserTransferSelect-CAeyxdor.js +22 -0
- package/dist/chunks/UsersPage-BXt9fOru.js +36 -0
- package/dist/chunks/{archive-D0BSMQmn.js → archive-B_IKvysI.js} +4 -4
- package/dist/chunks/chart-data-DImT_Mzn.js +5 -0
- package/dist/chunks/{chart-renderer-BWLqOvLF.js → chart-renderer-k-Rd8vdL.js} +1 -1
- package/dist/chunks/{user-cC0uCe3d.js → chevron-right-EBApfX6q.js} +2 -2
- package/dist/chunks/{clipboard-BKPNFY58.js → clipboard-ERcMSMRH.js} +1 -1
- package/dist/chunks/{confirm-CC2F8XXe.js → confirm-BtBBEqk8.js} +1 -1
- package/dist/chunks/{data-DPCozzrG.js → data-B05HzECj.js} +1 -1
- package/dist/chunks/{deleteAction-NGTDhZud.js → deleteAction-CCocr5uV.js} +1 -1
- package/dist/chunks/{diagram-vBbcsoK2.js → diagram-D9cwc7QH.js} +3 -3
- package/dist/chunks/dist-Bauqz5on.js +1 -0
- package/dist/chunks/{drawing-CUAfa3D5.js → drawing-D2Qrun-P.js} +2 -2
- package/dist/chunks/{email-U025DuXM.js → email-ByshRsFv.js} +2 -2
- package/dist/chunks/{export-CCaKk9VN.js → export-DlTz5dc2.js} +5 -5
- package/dist/chunks/{eye-DNBTmA6c.js → eye-off-BtJoIT5n.js} +1 -8
- package/dist/chunks/feedback-BnjMKZpz.js +1 -0
- package/dist/chunks/file-utils-DyvnVEoH.js +1 -0
- package/dist/chunks/fit-CsnhEncA.js +1 -0
- package/dist/chunks/{form-DhQiOMvp.js → form-CQutQFiD.js} +1 -1
- package/dist/chunks/geo-DR0fL7r2.js +38 -0
- package/dist/chunks/{image-C52XMTxg.js → image-ez9hvzKT.js} +1 -1
- package/dist/chunks/{lib-DZsU27Fn.js → lib-BlRm3nk1.js} +4 -4
- package/dist/chunks/line-BV7qVRkM.js +1 -0
- package/dist/chunks/{msg-DNXH9mKo.js → msg-BzZbudMm.js} +1 -1
- package/dist/chunks/{ofd-B0_-rey2.js → ofd-C7DKqJ6Z.js} +1 -1
- package/dist/chunks/{openDocument-DW7w0HpR.js → openDocument-DGzqlyJg.js} +1 -1
- package/dist/chunks/parse-6ZQGx714.js +1 -0
- package/dist/chunks/{parser-BFNqF7wU.js → parser-DC3PvpL4.js} +1 -1
- package/dist/chunks/ppt-B0WY5Gks.js +30 -0
- package/dist/chunks/pptx-DX5KDFZ7.js +109 -0
- package/dist/chunks/{print-mask-DTiml6Ox.js → print-mask-Dguzv0rv.js} +2 -2
- package/dist/chunks/{psd-yU36O76Y.js → psd-hjeNFQZ-.js} +1 -1
- package/dist/chunks/{search-filters-BoRMIesR.js → search-filters-CRIhZ0gL.js} +1 -1
- package/dist/chunks/spreadsheet-BzbBEhmY.js +1 -0
- package/dist/chunks/{spreadsheet-DiZ31XlH.js → spreadsheet-LR3SOG-x.js} +3 -3
- package/dist/chunks/toolbar-controls-CThS0xuP.js +15 -0
- package/dist/chunks/ui-BFsHoY7a.js +1 -0
- package/dist/chunks/{useCrudOperationColumn-PObQMk2y.js → useCrudOperationColumn-D935tixd.js} +1 -1
- package/dist/chunks/useListPage-CbcOQG4m.js +1 -0
- package/dist/chunks/{useStatusToggle-B7KSIN75.js → useStatusToggle-B2qZaoc-.js} +1 -1
- package/dist/chunks/wordDoc-BZY3ZnxN.js +152 -0
- package/dist/chunks/wordDocx-Bt2mlB3C.js +77 -0
- package/dist/chunks/{xmind-B9BtGBNI.js → xmind-CF9YwkOD.js} +2 -2
- package/dist/file-viewer/flyfish-viewer-assets.json +5 -5
- package/dist/file-viewer/vendor/docx/jszip.min.js +0 -0
- package/dist/file-viewer/wasm/data/sql-wasm.wasm +0 -0
- package/dist/index.js +1 -1
- package/dist/{src-DVwjbBTf.js → src-LbWcrSWe.js} +1 -1
- package/dist/styles.css +1 -1
- package/package.json +7 -7
- package/dist/chunks/App-DX7JOOmP.js +0 -79
- package/dist/chunks/ArcBaseAdmin-CdB_roNY.js +0 -1
- package/dist/chunks/ConfigurableTable-CyfZLgG0.js +0 -55
- package/dist/chunks/DataScopePanel-CubtBhTT.js +0 -1
- package/dist/chunks/DepartmentsPage-ECexbzsK.js +0 -1
- package/dist/chunks/DictTag-BerYvaUM.js +0 -1
- package/dist/chunks/DictsPage-65kAxYFd.js +0 -15
- package/dist/chunks/DirectoryLoginModal-rRXvoqV7.js +0 -1
- package/dist/chunks/EditFormModal-D68dOnaj.js +0 -1
- package/dist/chunks/EntityContextRuntime-D9mWi5xC.js +0 -1
- package/dist/chunks/FileNameCell-C_V1k0q-.js +0 -1
- package/dist/chunks/FilePreviewModal-D7v5seXB.js +0 -1
- package/dist/chunks/FileStorageConfigsPage-D2UYESb5.js +0 -15
- package/dist/chunks/FileTypeIcon-C77EVWXZ.js +0 -1
- package/dist/chunks/FilesPage-By81A2i7.js +0 -43
- package/dist/chunks/ForgotPasswordModal-DTlunJpM.js +0 -1
- package/dist/chunks/IdentitySecurityPage-Dp5EP7aT.js +0 -1
- package/dist/chunks/LogStatsScaffold-BFwbN_MU.js +0 -1
- package/dist/chunks/LoginField-Bu4C0-Mk.js +0 -1
- package/dist/chunks/LoginLogsPage-BuMJ6U8I.js +0 -1
- package/dist/chunks/LoginLogsTable-DfAlWPZb.js +0 -1
- package/dist/chunks/MenuCommandPalette-BvW2kEU4.js +0 -8
- package/dist/chunks/MenusPage-DT3kxAfi.js +0 -1
- package/dist/chunks/NavListPanel-agMt2kc6.js +0 -1
- package/dist/chunks/OnlineSessionsPage-BJJAB2pV.js +0 -1
- package/dist/chunks/OperationLogsPage-CP-wUt_N.js +0 -1
- package/dist/chunks/OperationLogsTable-BX0vV3fT.js +0 -1
- package/dist/chunks/PDFPreviewPanel-D8-74Zqs.js +0 -30
- package/dist/chunks/PasswordInput--G8GKd5g.js +0 -1
- package/dist/chunks/PositionsPage-Cs7xq89s.js +0 -1
- package/dist/chunks/PreferencesSheetBody-CdA4Ig_g.js +0 -43
- package/dist/chunks/ProfilePage-Bt3yP6D-.js +0 -15
- package/dist/chunks/RelationPanel-B-KAfl9B.js +0 -36
- package/dist/chunks/RolesPage-DDNGkGAq.js +0 -1
- package/dist/chunks/SessionConflictModal-DgFNCU3j.js +0 -1
- package/dist/chunks/SettingRow-BIb1ruW2.js +0 -1
- package/dist/chunks/SettingsPage-rhqkPOJ9.js +0 -16
- package/dist/chunks/StatCard-BwhGDWpE.js +0 -4
- package/dist/chunks/UserGroupsPage-D3_aji58.js +0 -1
- package/dist/chunks/UserTransferSelect-S-GUw2Y9.js +0 -1
- package/dist/chunks/UsersPage-CLRJX-V9.js +0 -29
- package/dist/chunks/WorkflowPrintButton-BVa-xw-8.js +0 -1
- package/dist/chunks/chart-data-DOMSCLwj.js +0 -5
- package/dist/chunks/chevron-left-DnDEG_PI.js +0 -8
- package/dist/chunks/chevron-right-CzizTV5i.js +0 -8
- package/dist/chunks/dist-BqNhxPp5.js +0 -1
- package/dist/chunks/feedback-D4BIfDNd.js +0 -1
- package/dist/chunks/file-utils-DJ9ksj-g.js +0 -1
- package/dist/chunks/geo-Bf8ymo43.js +0 -38
- package/dist/chunks/line-DSFA8EqT.js +0 -1
- package/dist/chunks/mail-Cduf1OFr.js +0 -8
- package/dist/chunks/mono-icons-CxCoktev.js +0 -1
- package/dist/chunks/plus-Bvdn6bx1.js +0 -8
- package/dist/chunks/ppt-C9RgrmNU.js +0 -30
- package/dist/chunks/pptx-_T8ZPVQn.js +0 -109
- package/dist/chunks/printer-DL8WQci4.js +0 -8
- package/dist/chunks/shield-check-DZGK8n9u.js +0 -8
- package/dist/chunks/spreadsheet-CHFSQY8j.js +0 -1
- package/dist/chunks/table-columns-XaoxVUJN.js +0 -1
- package/dist/chunks/toolbar-controls-BFOuV86W.js +0 -8
- package/dist/chunks/ui-DoIHGuTR.js +0 -1
- package/dist/chunks/useDebouncedValue-DFoJN77o.js +0 -22
- package/dist/chunks/useListPage-1Upr_ala.js +0 -1
- package/dist/chunks/wordDoc-CtetBfzo.js +0 -152
- package/dist/chunks/wordDocx-8ak39HcF.js +0 -77
- package/dist/chunks/zoom-8Eo2fTNd.js +0 -1
- package/dist/public/monaco/vs/editor/editor.worker.js +0 -1
- package/dist/public/monaco/vs/language/css/css.worker.js +0 -66
- package/dist/public/monaco/vs/language/html/html.worker.js +0 -443
- package/dist/public/monaco/vs/language/json/json.worker.js +0 -17
- package/dist/public/monaco/vs/language/typescript/ts.worker.js +0 -67693
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{n as t,t as n}from"./preload-helper-C-73SErw.js";import{t as r}from"./controls-C5dPckUT.js";import{t as i}from"./typography-DKK_iHcj.js";import{i as a,n as o}from"./feedback-BnjMKZpz.js";import{i as s,r as c,t as l}from"./media-DoGe_p4O.js";import{n as u,t as d}from"./x-Ak9hw1R9.js";import{C as f,S as p,_ as m,a as h,c as g,g as _,u as v}from"./ui-BFsHoY7a.js";import{i as y,r as b}from"./confirm-BtBBEqk8.js";import{r as x,t as S}from"./deleteAction-CCocr5uV.js";import{n as ee,r as te}from"./theme-controller-D-ATwFal.js";import{S as C,_ as ne,a as w,b as re,c as ie,d as ae,f as oe,g as se,h as ce,i as T,l as le,m as ue,n as E,o as de,p as fe,s as pe,t as D,u as me,v as he,x as ge,y as _e}from"./file-utils-DyvnVEoH.js";import{n as O,t as k}from"./AppModal-DJzQA6FR.js";import{Suspense as A,cloneElement as ve,lazy as j,useCallback as M,useEffect as N,useMemo as P,useRef as F,useState as I}from"react";import{Fragment as L,jsx as R,jsxs as z}from"react/jsx-runtime";import{escapeRegExp as ye,formatBytes as B}from"@fudanda/shared/core";import{fileContract as be}from"@fudanda/react-core/lib/native-operations";import{contractKey as xe}from"@fudanda/react-core/lib/contract-query";import{formatDateTime as Se}from"@fudanda/react-core/utils/date";import{useQuery as Ce}from"@tanstack/react-query";import{createPortal as we}from"react-dom";import{generateWatermarkTile as Te}from"@fudanda/react-core/components/watermark-tile";import{createDisplayableImageUrl as V}from"@fudanda/react-core/utils/image-decode";function Ee(e,{preview:t,onDetail:n,onCopyUrl:r,onDelete:i,canDelete:a}){return[{key:`preview`,label:`预览`,disabled:!D(e.mimeType,e.originalName),loading:t.previewLoadingId===e.id,onClick:()=>t.handlePreview(e)},{key:`download`,label:`下载`,loading:t.downloadLoadingId===e.id,onClick:()=>t.handleDownload(e)},{key:`detail`,label:`详情`,onClick:()=>n(e)},{key:`copy-url`,label:`复制链接`,onClick:()=>r(e)},{key:`delete`,label:`删除`,danger:!0,dividerBefore:!0,hidden:!a,onClick:()=>{b({title:`确认删除此文件?`,content:`删除文件记录后,将同步尝试删除实际存储对象。`,onOk:()=>i(e)})}}]}function H(){return(H=e((()=>{w(),y()})))()}function De(e){(e?.kind===`audio`||e?.kind===`video`||e?.kind===`svg`)&&URL.revokeObjectURL(e.url)}function U({title:e,onCancel:t,fullscreen:n,onToggleFullscreen:r,width:i,viewportHeight:a,children:o}){return/* @__PURE__ */ R(k,{visible:!0,onCancel:t,title:e,footer:null,fullscreenable:!0,fullscreen:n,onToggleFullscreen:r,width:i,centered:!0,bodyStyle:{padding:0,display:`flex`,flexDirection:`column`,overflow:`hidden`,height:n?`calc(100vh - 40px)`:`calc(${a} - 40px)`},keepDOM:!1,children:/* @__PURE__ */ R(A,{fallback:/* @__PURE__ */ R(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`center`,flex:1},children:/* @__PURE__ */ R(m,{size:`large`,tip:`加载预览组件...`})}),children:o})})}function Oe({fileUrl:e,fileName:t=`文件`,mimeType:n,visible:r,onClose:c,onFallback:u}){let[f,p]=I(!1),h=M(()=>{p(e=>!e)},[]),{isDark:g}=te(),_=P(()=>C(n,t),[t,n]),v=P(()=>{if(!_)return null;let e=_.startsWith(`image/`),n=_===`video/mp2t`&&/\.(ts|tsx)$/i.test(t);return _e(_)?`spreadsheet`:ge(_)?`word`:he(_)?`presentation`:se(_)?`ofd`:me(_)?`email`:ce(_)?`mindmap`:le(_)?`drawing`:ie(_)?`dataAsset`:oe(_)?`geo`:ue(_)?`markdown`:ne(_)?`plainText`:de(_)?`archive`:fe(_)?`json`:re(_)?`svg`:pe(_)||n?`code`:_===`application/pdf`?`pdf`:_.startsWith(`audio/`)?`audio`:_.startsWith(`video/`)&&!n?`video`:e?`image`:`unsupported`},[t,_]),y=Ce({queryKey:[...xe(be.content),`preview`,r,e,t,_,v],queryFn:async()=>{let n=await E(e);if(v===`spreadsheet`||v===`word`||v===`presentation`||v===`ofd`||v===`email`||v===`mindmap`||v===`drawing`||v===`dataAsset`||v===`geo`||v===`archive`)return{kind:v,file:new File([n],t,{type:_||n.type})};if(v===`markdown`)return{kind:`markdown`,text:await n.text()};if(v===`plainText`)return{kind:`plainText`,text:await n.text()};if(v===`json`)return{kind:`json`,text:await n.text()};if(v===`svg`)return{kind:`svg`,url:URL.createObjectURL(n)};if(v===`code`)return{kind:`code`,text:await n.text()};if(v===`pdf`)return{kind:`pdf`,file:new File([n],t,{type:`application/pdf`})};if(v===`audio`)return{kind:`audio`,url:URL.createObjectURL(n)};if(v===`video`)return{kind:`video`,url:URL.createObjectURL(n)};throw Error(`文件加载失败`)},enabled:r&&!!v&&v!==`unsupported`&&v!==`image`,staleTime:0,gcTime:0}),b=y.data;N(()=>()=>De(b),[b]),N(()=>{r?_?v===`unsupported`?(u?.(e,t,_),c()):v===`image`&&c():c():p(!1)},[t,e,c,u,v,_,r]),N(()=>{y.error&&(a.error(y.error instanceof Error?y.error.message:`文件加载失败`),c())},[c,y.error]);let x=()=>{c()},S=/* @__PURE__ */ z(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,minWidth:0},children:[T(n,15,t),/* @__PURE__ */ R(i.Text,{ellipsis:{showTooltip:!0},style:{fontSize:13,fontWeight:500,minWidth:0},children:t})]});if(!r)return null;if(y.isLoading)return/* @__PURE__ */ R(k,{visible:!0,onCancel:x,title:S,footer:null,fullscreenable:!1,centered:!0,keepDOM:!1,bodyStyle:{display:`flex`,alignItems:`center`,justifyContent:`center`,padding:40},children:/* @__PURE__ */ R(m,{size:`large`,tip:`加载中...`})});if(b?.kind===`pdf`)return/* @__PURE__ */ R(o,{visible:!0,onCancel:x,title:null,footer:null,fullScreen:f,width:`min(1100px, 92vw)`,centered:!0,bodyStyle:{padding:0,display:`flex`,overflow:`hidden`,height:f?`100vh`:`88vh`},closable:!1,keepDOM:!1,children:/* @__PURE__ */ R(A,{fallback:/* @__PURE__ */ R(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`center`,width:`100%`},children:/* @__PURE__ */ R(m,{size:`large`})}),children:/* @__PURE__ */ R(W,{file:b.file,onClose:x,fullscreen:f,onToggleFullscreen:h,style:{width:`100%`,borderLeft:`none`}})})});if(b?.kind===`spreadsheet`||b?.kind===`word`||b?.kind===`presentation`||b?.kind===`ofd`||b?.kind===`email`||b?.kind===`mindmap`||b?.kind===`drawing`||b?.kind===`dataAsset`||b?.kind===`geo`||b?.kind===`archive`){let e=b.kind===`presentation`,t=b.kind===`spreadsheet`||b.kind===`archive`||b.kind===`email`||b.kind===`mindmap`||b.kind===`drawing`||b.kind===`dataAsset`||b.kind===`geo`||e;return/* @__PURE__ */ R(U,{title:S,onCancel:x,fullscreen:f,onToggleFullscreen:h,width:t?`min(1200px, 94vw)`:`min(960px, 92vw)`,viewportHeight:`90vh`,children:/* @__PURE__ */ R(G,{file:b.file,style:{flex:1}})})}if(b?.kind===`markdown`){let e=b.text.startsWith(`\0PLAINTEXT\0`),t=e?b.text.slice(11):b.text;return/* @__PURE__ */ R(U,{title:S,onCancel:x,fullscreen:f,onToggleFullscreen:h,width:`min(900px, 92vw)`,viewportHeight:`90vh`,children:/* @__PURE__ */ R(K,{content:t,rawText:e,style:{flex:1,minHeight:0}})})}return b?.kind===`json`?/* @__PURE__ */ R(U,{title:S,onCancel:x,fullscreen:f,onToggleFullscreen:h,width:`min(900px, 92vw)`,viewportHeight:`88vh`,children:/* @__PURE__ */ R(q,{content:b.text,style:{flex:1,minHeight:0}})}):b?.kind===`code`||b?.kind===`plainText`?/* @__PURE__ */ R(U,{title:S,onCancel:x,fullscreen:f,onToggleFullscreen:h,width:`min(1100px, 92vw)`,viewportHeight:`90vh`,children:/* @__PURE__ */ R(J,{content:b.text,fileName:t,style:{flex:1,minHeight:0}})}):b?.kind===`svg`?/* @__PURE__ */ R(k,{visible:!0,onCancel:x,title:S,footer:null,fullscreenable:!0,fullscreen:f,onToggleFullscreen:h,width:`min(900px, 92vw)`,centered:!0,bodyStyle:{padding:16,display:`flex`,alignItems:`center`,justifyContent:`center`,overflow:`auto`,height:f?`calc(100vh - 40px)`:`calc(80vh - 40px)`},keepDOM:!1,children:/* @__PURE__ */ R(`img`,{src:b.url,alt:t,style:{maxWidth:`100%`,maxHeight:`100%`,objectFit:`contain`}})}):b?.kind===`audio`?we(/* @__PURE__ */ R(`div`,{className:`arcbase-audio-dock`,role:`region`,"aria-label":`音频播放器`,children:/* @__PURE__ */ z(`div`,{className:`arcbase-audio-dock__inner`,children:[/* @__PURE__ */ R(`div`,{className:`arcbase-audio-dock__player`,children:/* @__PURE__ */ R(l,{className:`arcbase-audio-preview`,audioUrl:{src:b.url,title:t},theme:g?`dark`:`light`,autoPlay:!0,style:{width:`100%`}})}),/* @__PURE__ */ R(`button`,{type:`button`,className:`arcbase-audio-dock__close`,onClick:x,"aria-label":`关闭音频播放器`,children:/* @__PURE__ */ R(d,{size:18})})]})}),document.body):b?.kind===`video`?/* @__PURE__ */ R(k,{visible:!0,onCancel:x,title:S,footer:null,fullscreenable:!1,width:`min(960px, 92vw)`,centered:!0,bodyStyle:{padding:0,overflow:`hidden`,borderRadius:`var(--arc-antd-border-radius-medium)`},keepDOM:!1,children:/* @__PURE__ */ R(s,{src:b.url,theme:g?`dark`:`light`,width:`100%`,autoPlay:!1,muted:!1,volume:100,clickToPlay:!0,defaultPlaybackRate:1,playbackRateList:[{label:`0.5x`,value:.5},{label:`1x`,value:1},{label:`1.5x`,value:1.5},{label:`2x`,value:2}],style:{borderRadius:`var(--arc-antd-border-radius-medium)`}})}):null}var W,G,K,q,J;function Y(){return(Y=e((()=>{f(),u(),ee(),w(),O(),t(),W=j(()=>n(()=>import(`./PDFPreviewPanel-BIQuBnZZ.js`).then(e=>({default:e.PDFPreviewPanel})),[],import.meta.url)),G=j(()=>n(()=>import(`./FileViewerPreviewPanel-CMqVtGCr.js`),[],import.meta.url)),K=j(()=>n(()=>import(`./MarkdownPreviewPanel-DoiaAeRv.js`),[],import.meta.url)),q=j(()=>n(()=>import(`./JsonPreviewPanel-Dhbza-Uu.js`),[],import.meta.url)),J=j(()=>n(()=>import(`./MonacoPreviewPanel-Dnz7xpWP.js`),[],import.meta.url))})))()}function ke({content:e,visible:t}){let n=(Array.isArray(e)?e:e?[e]:[]).filter(Boolean),r=JSON.stringify(n),[i,a]=I(null);return N(()=>{let e=JSON.parse(r);if(!t||e.length===0){a(null);return}let n=document.body.getAttribute(`theme-mode`)===`dark`,i=Te(e,13,.22,-22,180,110,n);i&&a({position:`fixed`,inset:0,pointerEvents:`none`,userSelect:`none`,zIndex:2100,backgroundImage:`url(${i.dataUrl})`,backgroundRepeat:`repeat`,backgroundSize:`${i.cssWidth}px ${i.cssHeight}px`})},[r,t]),i?/* @__PURE__ */ R(`div`,{"aria-hidden":!0,style:i,"data-testid":`preview-watermark`}):null}function X(){return(X=e((()=>{})))()}function Ae({preview:e,watermark:t}){return/* @__PURE__ */ z(L,{children:[/* @__PURE__ */ R(c,{src:e.previewSrcList,visible:e.previewVisible,currentIndex:e.previewCurrentIndex,onChange:e.setPreviewCurrentIndex,onVisibleChange:t=>{t||e.closeImagePreview()},infinite:!0}),/* @__PURE__ */ R(Oe,{fileUrl:e.filePreview?.url??``,fileName:e.filePreview?.name,mimeType:e.filePreview?.mimeType,visible:!!e.filePreview,onClose:e.closeFilePreview}),/* @__PURE__ */ R(ke,{content:t,visible:e.previewVisible||!!e.filePreview})]})}function Z(){return(Z=e((()=>{f(),Y(),X()})))()}function je({visible:e,file:t,loading:n,resolveUrl:r,onCopyUrl:i,onClose:a,extraRows:o=[]}){return/* @__PURE__ */ R(k,{title:`文件详情`,visible:e,onCancel:a,footer:/* @__PURE__ */ z(_,{children:[/* @__PURE__ */ R(h,{onClick:()=>t&&i(t),children:`复制链接`}),/* @__PURE__ */ R(h,{type:`primary`,onClick:a,children:`关闭`})]}),width:560,children:/* @__PURE__ */ R(m,{spinning:n,tip:`加载中...`,size:`small`,children:t&&/* @__PURE__ */ R(g,{align:`left`,size:`medium`,data:[{key:`文件名`,value:t.originalName},{key:`存储服务`,value:t.storageName},{key:`MIME 类型`,value:t.mimeType||`—`},{key:`文件大小`,value:B(t.size)},...o,{key:`上传人`,value:t.uploaderName||`—`},{key:`对象键`,value:/* @__PURE__ */ R(Q,{copyable:!0,style:{fontSize:12,wordBreak:`break-all`},children:t.objectKey})},{key:`访问链接`,value:/* @__PURE__ */ R(Q,{copyable:!0,style:{fontSize:12,wordBreak:`break-all`},children:r(t)})},{key:`上传时间`,value:Se(t.createdAt)}]})})})}var Q;function Me(){return(Me=e((()=>{f(),O(),{Text:Q}=i})))()}function Ne(e){let[t,n]=I(!1),[r,i]=I([]),[o,s]=I(0),[c,l]=I(null),[u,d]=I(null),[f,p]=I(null),m=F([]),h=F(0),g=()=>{m.current.forEach(e=>globalThis.URL.revokeObjectURL(e)),m.current=[]};return{previewVisible:t,previewSrcList:r,previewCurrentIndex:o,setPreviewCurrentIndex:s,previewLoadingId:c,downloadLoadingId:f,filePreview:u,handlePreview:async t=>{let r=C(t.mimeType,t.originalName),o=ae(t.mimeType,t.originalName);if(!D(t.mimeType,t.originalName)&&!o){try{let e=await E(t.url),n=globalThis.URL.createObjectURL(e);globalThis.open(n,`_blank`,`noopener,noreferrer`),globalThis.setTimeout(()=>globalThis.URL.revokeObjectURL(n),6e4)}catch(e){a.error(e instanceof Error?e.message:`预览文件失败`)}return}if(!o){l(t.id);try{d({id:t.id,url:t.url,name:t.originalName,mimeType:r??`application/octet-stream`})}catch(e){a.error(e instanceof Error?e.message:`预览文件失败`)}finally{l(null)}return}let c=e().filter(e=>ae(e.mimeType,e.originalName)),u=c.findIndex(e=>e.id===t.id);l(t.id),h.current+=1;let f=h.current;try{g();let e=c.map(()=>``);m.current=[...e];let t=c[u],r=await E(t.url);if(h.current!==f)return;let a=await V(r,t.mimeType,t.originalName);if(h.current!==f){globalThis.URL.revokeObjectURL(a);return}e[u]=a,m.current[u]=a,i([...e]),s(Math.max(0,u)),n(!0),c.forEach(async(e,t)=>{if(t!==u)try{let n=await E(e.url);if(h.current!==f)return;let r=await V(n,e.mimeType,e.originalName);if(h.current!==f){globalThis.URL.revokeObjectURL(r);return}m.current[t]=r,i(e=>{let n=[...e];return n[t]=r,n})}catch{}})}catch(e){a.error(e instanceof Error?e.message:`预览图片失败`)}finally{l(null)}},handleDownload:async e=>{p(e.id);try{let t=await E(e.url),n=globalThis.URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=e.originalName,r.click(),globalThis.setTimeout(()=>globalThis.URL.revokeObjectURL(n),6e4)}catch(e){a.error(e instanceof Error?e.message:`下载文件失败`)}finally{p(null)}},closeImagePreview:()=>{h.current+=1,n(!1),g(),i([])},closeFilePreview:()=>d(null),resetPreview:()=>{d(null),n(!1),h.current+=1}}}function Pe(){return(Pe=e((()=>{f(),w()})))()}function Fe(e){return ve(e,{style:{...e.props.style,...Re}})}function Ie(){return document.body}function Le({point:e,contextKey:t,render:n,onClose:r}){let i=`${t}:${e.x}:${e.y}`,a=F(null),o=M(()=>{a.current!==i&&(a.current=i,r())},[r,i]);return/* @__PURE__ */ R(v,{visible:!0,trigger:`click`,position:`bottomLeft`,autoAdjustOverflow:!0,rePosKey:i,render:Fe(n),getPopupContainer:Ie,clickToHide:!0,closeOnEsc:!0,onClickOutSide:o,onVisibleChange:e=>{e||o()},children:/* @__PURE__ */ R(`span`,{"aria-hidden":`true`,style:{position:`fixed`,left:e.x,top:e.y,width:1,height:1,pointerEvents:`none`}})})}var Re;function ze(){return(ze=e((()=>{f(),Re={maxHeight:`calc(100vh - 16px)`,overflowY:`auto`}})))()}function Be(){return(Be=e((()=>{})))()}function Ve({file:e,selected:t,canSelect:n,onSelect:i,onPreview:a,onDownload:o,onDelete:s,onDetail:c,onCopyUrl:l,canDelete:u,previewLoading:d}){let[f,h]=I(null),g=D(e.mimeType,e.originalName),_=e.originalName.includes(`.`)?e.originalName.split(`.`).pop()?.toUpperCase():``;return/* @__PURE__ */ z(L,{children:[/* @__PURE__ */ z(`div`,{className:`files-grid-card${t?` files-grid-card--selected`:``}`,onContextMenu:e=>{e.preventDefault(),h({x:e.clientX,y:e.clientY})},children:[/* @__PURE__ */ R(`button`,{type:`button`,className:`files-grid-card__preview-btn`,"aria-label":g?`预览 ${e.originalName}`:e.originalName,style:{cursor:g?`pointer`:`default`},onClick:r=>{n&&(r.ctrlKey||r.metaKey||r.shiftKey)?i(e.id,!t):g&&a(e)}}),n&&/* @__PURE__ */ R(`div`,{className:`files-grid-card__checkbox`,children:/* @__PURE__ */ R(r,{checked:t,onChange:()=>i(e.id,!t)})}),/* @__PURE__ */ R(`div`,{className:`files-grid-card__media-wrap`,children:/* @__PURE__ */ z(`div`,{className:`files-grid-card__media`,children:[/* @__PURE__ */ R(`span`,{className:`files-grid-card__icon`,children:T(e.mimeType,34,e.originalName)}),_&&/* @__PURE__ */ R(`span`,{className:`files-grid-card__type-badge`,children:_}),d&&/* @__PURE__ */ R(`div`,{className:`files-grid-card__media-overlay`,children:/* @__PURE__ */ R(m,{})})]})}),/* @__PURE__ */ z(`div`,{className:`files-grid-card__info`,children:[/* @__PURE__ */ R(p,{content:e.originalName,position:`top`,children:/* @__PURE__ */ R(`div`,{className:`files-grid-card__name`,children:e.originalName})}),/* @__PURE__ */ R(`div`,{className:`files-grid-card__meta`,children:/* @__PURE__ */ R(`span`,{children:B(e.size)})})]})]}),f&&/* @__PURE__ */ R(Le,{point:f,contextKey:e.id,onClose:()=>h(null),render:/* @__PURE__ */ z(v.Menu,{children:[g&&/* @__PURE__ */ R(v.Item,{onClick:()=>a(e),children:`预览`}),/* @__PURE__ */ R(v.Item,{onClick:()=>o(e),children:`下载`}),/* @__PURE__ */ R(v.Item,{onClick:()=>c(e),children:`详情`}),/* @__PURE__ */ R(v.Item,{onClick:()=>l(e),children:`复制链接`}),u&&/* @__PURE__ */ z(L,{children:[/* @__PURE__ */ R(v.Divider,{}),/* @__PURE__ */ R(v.Item,{type:`danger`,onClick:()=>{S({title:`确认删除此文件?`,content:`删除文件记录后,将同步尝试删除实际存储对象。`,run:()=>Promise.resolve(s(e)),successMessage:null})},children:`删除`})]})]})})]})}function He(){return(He=e((()=>{f(),w(),x(),ze()})))()}function Ue({name:e,icon:t,mimeType:n,onClick:r,highlight:i}){let a=i?e.split(RegExp(`(${ye(i)})`,`gi`)):[e],o=/* @__PURE__ */ z(L,{children:[/* @__PURE__ */ R(`span`,{className:`file-name-cell__icon`,children:t??T(n,16,e)}),/* @__PURE__ */ R(p,{content:e,children:/* @__PURE__ */ R(`span`,{className:`file-name-cell__text`,children:a.map((e,t)=>i&&e.toLowerCase()===i.toLowerCase()?/* @__PURE__ */ R(`mark`,{children:e},t):e)})})]});return r?/* @__PURE__ */ R(`button`,{type:`button`,className:`file-name-cell file-name-cell--button`,onClick:r,children:o}):/* @__PURE__ */ R(`div`,{className:`file-name-cell`,children:o})}function $(){return($=e((()=>{f(),w()})))()}export{Be as a,je as c,Z as d,Ee as f,He as i,Me as l,$ as n,Pe as o,H as p,Ve as r,Ne as s,Ue as t,Ae as u};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{i as t,o as n,s as r}from"./controls-C5dPckUT.js";import{t as i}from"./typography-DKK_iHcj.js";import{i as a,o,r as ee,s}from"./feedback-BnjMKZpz.js";import{_ as c,a as l,d as u,g as d,l as f,n as p,o as m,r as h,t as te}from"./ConfigurableTable-DzmZDd8F.js";import{n as g,t as _}from"./createLucideIcon-BtwfYE6A.js";import{r as v,s as y}from"./toolbar-controls-CThS0xuP.js";import{i as b,n as x,r as ne,t as S}from"./chevron-right-EBApfX6q.js";import{n as C,t as re}from"./layout-grid-Bp9bwiQZ.js";import{n as w,t as ie}from"./list-DCcWnjUg.js";import{t as T}from"./form-CQutQFiD.js";import{C as E,S as ae,_ as oe,a as D,g as O,h as k,i as A,o as j,y as M}from"./ui-BFsHoY7a.js";import{n as N,t as P}from"./useStatusToggle-B2qZaoc-.js";import{n as se,t as ce}from"./ResponsiveTableActions-y54aSdhs.js";import{n as F,t as I}from"./useCrudOperationColumn-D935tixd.js";import{n as L,t as R}from"./useListPage-CbcOQG4m.js";import{n as le,t as ue}from"./DateTimeText-CIt0Qy45.js";import{a as z,i as B,n as V,o as de,r as fe}from"./EditFormModal-DNHOZHxM.js";import{n as pe,r as me}from"./clipboard-ERcMSMRH.js";import{a as he,r as ge,t as _e}from"./file-utils-DyvnVEoH.js";import{n as ve,t as ye}from"./PasswordInput-DGEJO9yx.js";import{n as be,t as xe}from"./ExportButton-AzH4D0oW.js";import{c as Se,d as Ce,f as we,i as Te,l as Ee,n as De,o as Oe,p as ke,r as Ae,s as je,t as Me,u as Ne}from"./FileNameCell-DPyi64Rv.js";import{useEffect as Pe,useState as H}from"react";import{Fragment as Fe,jsx as U,jsxs as W}from"react/jsx-runtime";import{abortSubmit as Ie}from"@fudanda/react-core/lib/abort-submit";import{formatBytes as Le}from"@fudanda/shared/core";import{fileStorageConfigContract as G}from"@fudanda/react-core/lib/native-operations";import{usePermission as Re}from"@fudanda/react-core/hooks/usePermission";import{usePagination as ze}from"@fudanda/react-core/hooks/usePagination";import{IS_GO_FOUNDATION as K}from"@fudanda/react-core/lib/foundation-mode";import{FILE_OBJECT_ACL_LABELS as Be,FILE_OBJECT_ACL_SUPPORT as Ve,FILE_STORAGE_PROVIDER_LABELS as He,FILE_STORAGE_PROVIDER_OPTIONS as Ue,FILE_URL_STRATEGY_LABELS as We,FILE_URL_STRATEGY_OPTIONS as Ge,PRESIGNED_EXPIRY_DEFAULT_SECONDS as q,PRESIGNED_EXPIRY_MAX_SECONDS as Ke,PRESIGNED_EXPIRY_MIN_SECONDS as qe}from"@fudanda/shared/platform";import{useDeleteFiles as Je,useFileDetail as Ye}from"@fudanda/react-core/hooks/queries/files";import{useDeleteFileStorageConfigs as Xe,useFileStorageConfigDetail as Ze,useFileStorageConfigList as Qe,useSaveFileStorageConfig as $e,useSetDefaultFileStorageConfig as et,useStorageBrowse as tt,useTestFileStorageConfig as nt}from"@fudanda/react-core/hooks/queries/file-storage-configs";var J,Y;function rt(){return(rt=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
|
+
g(),J={name:`folder`,size:24,node:[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]},J.node,Y=_(J)})))()}var X,it;function at(){return(at=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
|
+
g(),X={name:`plug-zap`,size:24,node:[[`path`,{d:`M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z`,key:`goz73y`}],[`path`,{d:`m2 22 3-3`,key:`19mgm9`}],[`path`,{d:`M7.5 13.5 10 11`,key:`7xgeeb`}],[`path`,{d:`M10.5 16.5 13 14`,key:`10btkg`}],[`path`,{d:`m18 3-4 4h6l-4 4`,key:`16psg9`}]],aliases:[`plug-zap-2`]},X.node,it=_(X)})))()}function ot({config:e,onClose:t}){let{hasPermission:n}=Re(),[r,i]=H(`list`),[o,s]=H(``),{page:c,setPage:l}=ze(),d=tt(e?.id,o,!!e),f=d.data??null,p=d.isFetching,m=Je(),[h,g]=H([``]),[_,v]=H(0),y=_>0,b=_<h.length-1,x=je(()=>f?.files??[]),[C,w]=H(null),T=Ye(C?.id,!!C),E=T.data??C,k=T.isFetching;Pe(()=>{e&&(s(``),i(`list`),l(1),g([``]),v(0),w(null),x.resetPreview())},[e,l]);let j=(e,t=!0)=>{s(e),l(1),t&&(g(t=>{let n=t.slice(0,_+1);return n.push(e),n}),v(e=>e+1))},M=e=>j(e.path),N=e=>j(e),P=()=>{let e=_-1,t=h[e]??``;v(e),s(t),l(1)},se=()=>{let e=_+1,t=h[e]??``;v(e),s(t),l(1)},F=o?o.split(`/`):[],I=async e=>{await m.mutateAsync([e.id]),a.success(`文件已删除`),d.refetch()},L=e=>{w(e)},R=async e=>{await pe(ge(e.url),{success:`链接已复制`,error:`复制失败,请手动复制`})},le=[{title:`名称`,key:`name`,ellipsis:{showTitle:!1},render:(e,t)=>{if(!(`id`in t))return/* @__PURE__ */ U(Me,{name:t.name,icon:/* @__PURE__ */ U(Y,{size:15,className:`storage-browser__folder-icon`}),onClick:()=>M(t)});let n=_e(t.mimeType,t.originalName);return/* @__PURE__ */ U(Me,{name:t.originalName,mimeType:t.mimeType,onClick:n?()=>void x.handlePreview(t):void 0})}},{title:`大小`,key:`size`,width:110,align:`right`,render:(e,t)=>`id`in t?Le(t.size):/* @__PURE__ */ U(`span`,{className:`table-cell-placeholder`,children:`—`})},{title:`上传时间`,key:`createdAt`,width:180,render:(e,t)=>`id`in t?/* @__PURE__ */ U(ue,{value:t.createdAt}):/* @__PURE__ */ U(`span`,{className:`table-cell-placeholder`,children:`—`})},ce({width:180,desktopInlineKeys:[`open`,`preview`,`download`],actions:e=>`id`in e?we(e,{preview:x,onDetail:e=>{L(e)},onCopyUrl:R,onDelete:I,canDelete:n(`system:file:delete`)}):[{key:`open`,label:`打开`,onClick:()=>M(e)}]})],z=[...f?.folders??[],...f?.files??[]],B=z.length,V=z.slice((c-1)*50,c*50);return/* @__PURE__ */ W(Fe,{children:[/* @__PURE__ */ W(ee,{title:e?`文件浏览 · ${e.name}`:`文件浏览`,visible:!!e,onCancel:t,size:`large`,bodyStyle:{padding:0,display:`flex`,flexDirection:`column`},headerStyle:{borderBottom:`1px solid var(--arc-antd-color-border)`},children:[/* @__PURE__ */ W(`div`,{className:`storage-browser__toolbar`,children:[/* @__PURE__ */ W(O,{spacing:4,style:{flexShrink:0},children:[/* @__PURE__ */ U(D,{size:`small`,theme:`borderless`,type:`tertiary`,icon:/* @__PURE__ */ U(ne,{size:15}),disabled:!y,onClick:P}),/* @__PURE__ */ U(D,{size:`small`,theme:`borderless`,type:`tertiary`,icon:/* @__PURE__ */ U(S,{size:15}),disabled:!b,onClick:se})]}),/* @__PURE__ */ W(A,{className:`storage-browser__breadcrumb`,children:[/* @__PURE__ */ U(A.Item,{onClick:()=>N(``),style:{cursor:o?`pointer`:`default`,color:o?`var(--arc-antd-color-primary)`:void 0},children:`根目录`}),F.map((e,t)=>{let n=F.slice(0,t+1).join(`/`),r=t===F.length-1;return/* @__PURE__ */ U(A.Item,{onClick:r?void 0:()=>N(n),style:{cursor:r?`default`:`pointer`,color:r?void 0:`var(--arc-antd-color-primary)`},children:e},n)})]}),/* @__PURE__ */ W(O,{spacing:0,children:[/* @__PURE__ */ U(D,{size:`small`,theme:r===`list`?`solid`:`light`,type:r===`list`?`primary`:`tertiary`,icon:/* @__PURE__ */ U(ie,{size:14}),style:{borderRadius:`4px 0 0 4px`},onClick:()=>i(`list`)}),/* @__PURE__ */ U(D,{size:`small`,theme:r===`grid`?`solid`:`light`,type:r===`grid`?`primary`:`tertiary`,icon:/* @__PURE__ */ U(re,{size:14}),style:{borderRadius:`0 4px 4px 0`},onClick:()=>i(`grid`)})]})]}),/* @__PURE__ */ U(`div`,{className:`storage-browser__content`,children:/* @__PURE__ */ W(oe,{spinning:p,size:`large`,wrapperClassName:`storage-browser__spin`,children:[!p&&B===0&&/* @__PURE__ */ U(`div`,{className:`storage-browser__empty`,children:`当前目录为空`}),r===`list`&&B>0&&/* @__PURE__ */ U(te,{bordered:!0,columns:le,dataSource:V,rowKey:e=>e?`id`in e?`file-${e.id}`:`folder-${e.path}`:``,loading:!1,onRefresh:()=>void d.refetch(),refreshLoading:p,size:`small`,pagination:!1,onRow:e=>e&&!(`id`in e)?{onClick:()=>M(e),style:{cursor:`pointer`}}:{}}),r===`grid`&&B>0&&(()=>{let e=V.filter(e=>!(`id`in e)),t=V.filter(e=>`id`in e);return/* @__PURE__ */ W(`div`,{className:`storage-browser__grid-wrap`,children:[e.length>0&&/* @__PURE__ */ W(`div`,{className:`storage-browser__grid-section`,children:[/* @__PURE__ */ U(`div`,{className:`storage-browser__grid-section-label`,children:`文件夹`}),/* @__PURE__ */ U(`div`,{className:`storage-browser__folder-grid`,children:e.map(e=>/* @__PURE__ */ W(`button`,{type:`button`,className:`storage-browser__folder-card`,onClick:()=>M(e),children:[/* @__PURE__ */ U(Y,{size:32,className:`storage-browser__folder-card-icon`}),/* @__PURE__ */ U(ae,{content:e.name,position:`top`,children:/* @__PURE__ */ U(`span`,{className:`storage-browser__folder-card-name`,children:e.name})})]},e.path))})]}),t.length>0&&/* @__PURE__ */ W(`div`,{className:`storage-browser__grid-section`,children:[e.length>0&&/* @__PURE__ */ U(`div`,{className:`storage-browser__grid-section-label`,children:`文件`}),/* @__PURE__ */ U(`div`,{className:`storage-browser__file-grid`,children:t.map(e=>/* @__PURE__ */ U(Ae,{file:e,selected:!1,canSelect:!1,onSelect:()=>{},onPreview:x.handlePreview,onDownload:x.handleDownload,onDelete:I,onDetail:L,onCopyUrl:R,canDelete:n(`system:file:delete`),previewLoading:x.previewLoadingId===e.id},e.id))})]})]})})()]})}),/* @__PURE__ */ W(`div`,{className:`storage-browser__footer`,children:[/* @__PURE__ */ W(st,{type:`secondary`,size:`small`,children:[(f?.folders.length??0)>0&&`${f.folders.length} 个文件夹`,(f?.folders.length??0)>0&&(f?.files.length??0)>0&&`,`,(f?.files.length??0)>0&&`${f.files.length} 个文件`,B===0&&!p&&`空目录`]}),B>0&&/* @__PURE__ */ U(u,{currentPage:c,pageSize:50,total:B,onPageChange:l,size:`small`,hoverShowPageSelect:!0})]})]}),/* @__PURE__ */ U(Ne,{preview:x}),/* @__PURE__ */ U(Se,{visible:!!C,file:E,loading:k,resolveUrl:e=>ge(e.url),onCopyUrl:e=>void R(e),onClose:()=>w(null)})]})}var st;function ct(){return(ct=e((()=>{E(),rt(),b(),x(),C(),w(),le(),he(),ke(),me(),Ce(),Ee(),Oe(),p(),se(),Te(),De(),{Text:st}=i})))()}function Z(e){return e?.trim()??``}function Q(e,t,n){return G.create.input.shape.body.parse({name:n.name?.trim()??``,status:n.status??`enabled`,isDefault:t,basePath:Z(n.basePath),objectAcl:`default`,urlStrategy:`proxy`,publicBaseUrl:``,presignedExpirySeconds:q,provider:e,remark:Z(n.remark),...e===`local`?{localRootPath:Z(n.localRootPath)}:{s3Region:Z(n.s3Region),s3Endpoint:Z(n.s3Endpoint),s3Bucket:Z(n.s3Bucket),s3AccessKeyId:Z(n.s3AccessKeyId),s3SecretAccessKey:Z(n.s3SecretAccessKey),s3ForcePathStyle:n.s3ForcePathStyle??!1}})}function lt(e){return e.provider===`local`?e.localRootPath||h:[e.s3Bucket,e.s3Region].filter(Boolean).join(` / `)||h}function ut(){let{hasPermission:e}=Re(),i=L({contract:G,useList:Qe}),{tableProps:o,filterQuery:ee}=i,[c,u]=H(`local`),[p,m]=H(!1),[h,g]=H(null),_=$e(),y=$e(),b=de({entityName:`文件配置`,save:B(_,{create:G.create.input.shape.body,update:G.update.input.shape.body}),useDetail:Ze,defaults:{name:``,provider:`local`,status:`enabled`,isDefault:!1,basePath:``,objectAcl:`default`,urlStrategy:`proxy`,publicBaseUrl:``,presignedExpirySeconds:q,localRootPath:`storage/local`,remark:``},toValues:e=>({name:e.name,status:e.status,isDefault:e.isDefault,provider:e.provider,basePath:e.basePath,objectAcl:`default`,urlStrategy:`proxy`,publicBaseUrl:``,presignedExpirySeconds:q,localRootPath:e.localRootPath??``,s3Region:e.s3Region??``,s3Endpoint:e.s3Endpoint??``,s3Bucket:e.s3Bucket??``,s3AccessKeyId:e.s3AccessKeyId??``,s3SecretAccessKey:``,s3ForcePathStyle:e.s3ForcePathStyle??!1,remark:e.remark??``}),beforeSave:e=>Q(c,p,e),successMessage:({isEdit:e})=>e?`文件服务配置已更新`:`文件服务配置已创建`,labelWidth:150}),x=Xe(),ne=et(),S=nt(),C=S.isPending&&!S.variables?.id,re=S.isPending?S.variables?.id??null:null;Pe(()=>{b.editing&&(u(b.editing.provider),m(b.editing.isDefault))},[b.editing]);let w=()=>{u(`local`),m(!1),b.openCreate()},ie=e=>{u(e.provider),m(e.isDefault),b.openEdit(e)},E=async()=>{let e;try{e=await b.formApi.current.validate()}catch{return}if(!e)return;let t=Q(c,p,e);await S.mutateAsync(b.editing?{id:b.editing.id,values:t}:{values:t}),a.success(`存储连接测试通过`)},ae=async e=>{await ne.mutateAsync({params:{id:e.id}}),a.success(`默认文件服务已更新`)},oe=async e=>{await S.mutateAsync({id:e.id,values:{}}),a.success(`存储连接测试通过`)},O=N({toggle:async(e,t)=>{!t&&e.isDefault&&(a.warning(`默认配置不能禁用,请先将其他配置设为默认`),Ie(`default-config-cannot-be-disabled`)),await y.mutateAsync({id:e.id,values:Q(e.provider,e.isDefault,{...e,status:t?`enabled`:`disabled`})})},confirmDisable:e=>e.isDefault?null:{danger:!0,title:`确认禁用「${e.name}」?`,okText:`确认禁用`},disabled:!e(`system:file:config:update`),messages:{disabled:`已禁用`}}),A=F({permission:`system:file:config`,edit:ie,remove:x,title:`确认删除此文件服务配置?`,content:`若已绑定文件记录,后端会阻止删除。`,successMessage:`文件服务配置已删除`,disabled:{remove:e=>e.isDefault},extra:t=>[{key:`browse`,label:`浏览`,hidden:!e(`system:file:list`),onClick:()=>g(t)},{key:`default`,label:`设为默认`,hidden:!e(`system:file:config:default`),disabled:t.isDefault||t.status!==`enabled`,onClick:()=>ae(t)}],extraBetween:t=>[{key:`test`,label:`测试连接`,loading:re===t.id,hidden:!e(`system:file:config`),onClick:()=>{oe(t)}}],width:180,desktopInlineKeys:[`browse`,`edit`]}),P=[{title:`配置名称`,dataIndex:`name`,minWidth:180,render:f},{title:`存储类型`,dataIndex:`provider`,width:120,render:e=>/* @__PURE__ */ U(M,{color:{local:`blue`,s3:`purple`}[e],size:`small`,children:He[e]})},{title:`默认服务`,dataIndex:`isDefault`,width:110,align:`center`,render:e=>e?/* @__PURE__ */ U(M,{color:`green`,size:`small`,children:`默认`}):/* @__PURE__ */ U(`span`,{className:`table-cell-placeholder`,children:`—`})},{title:`存储信息`,key:`storageSummary`,dataIndex:`storageSummary`,width:180,render:(e,t)=>{let n={local:`目录`,s3:`Bucket`}[t.provider]??`Bucket`,r=lt(t);return f(`${n}: ${r}`)}},{title:`基础路径`,dataIndex:`basePath`,width:160,render:e=>f(e)},{title:`读写权限`,dataIndex:`objectAcl`,width:120,align:`center`,render:(e,t)=>{if(!$.includes(t.provider))return/* @__PURE__ */ U(`span`,{className:`table-cell-placeholder`,children:`—`});let n={default:`grey`},r=e??`default`;return/* @__PURE__ */ U(M,{color:n[r],size:`small`,children:Be[r]})}},{title:`访问策略`,dataIndex:`urlStrategy`,width:120,align:`center`,render:e=>{let t=e??`proxy`;return/* @__PURE__ */ U(M,{color:{proxy:`grey`}[t],size:`small`,children:We[t]})}},l(`更新时间`,`updatedAt`),O.column(),A];return/* @__PURE__ */ W(`div`,{className:`page-container`,children:[/* @__PURE__ */ U(`div`,{className:`storage-configs-tip`,style:{marginBottom:0,marginTop:-4},children:/* @__PURE__ */ U(dt,{type:`secondary`,children:`当前支持多文件服务配置,但上传时会优先走"默认文件服务"。切换默认服务不会影响历史文件记录。`})}),/* @__PURE__ */ U(te,{searchConfig:d({page:i,filters:[`status`,[`startTime`,`endTime`]],create:/* @__PURE__ */ U(v,{permission:`system:file:config:create`,onClick:w}),actions:/* @__PURE__ */ U(xe,{entity:`system.file-storage-configs`,query:ee}),filterTitle:`文件配置筛选`,actionTitle:`文件配置操作`}),columns:P,...o}),/* @__PURE__ */ W(V,{modal:b,width:780,footer:/* @__PURE__ */ W(`div`,{style:{display:`flex`,justifyContent:`space-between`,gap:8},children:[` `,/* @__PURE__ */ U(D,{icon:/* @__PURE__ */ U(it,{size:14}),loading:C,disabled:b.detailLoading,onClick:()=>void E(),children:` 测试连接 `}),` `,/* @__PURE__ */ W(`div`,{style:{display:`flex`,gap:8},children:[` `,/* @__PURE__ */ U(D,{type:`tertiary`,onClick:b.close,children:`取消`}),` `,/* @__PURE__ */ U(D,{type:`primary`,theme:`solid`,loading:b.modalProps.okButtonProps.loading,disabled:b.modalProps.okButtonProps.disabled,onClick:()=>void s(b.modalProps.onOk),children:` 保存 `}),` `]}),` `]}),children:[/* @__PURE__ */ W(T.Section,{text:`基础信息`,children:[/* @__PURE__ */ W(k,{gutter:16,children:[/* @__PURE__ */ U(j,{span:12,children:/* @__PURE__ */ U(T.Input,{field:`name`,label:`配置名称`,placeholder:`请输入配置名称`,rules:[{required:!0,message:`请输入配置名称`}]})}),/* @__PURE__ */ U(j,{span:12,children:/* @__PURE__ */ U(T.Select,{field:`provider`,label:`存储类型`,style:{width:`100%`},optionList:Ue.filter(e=>[`local`,`s3`].includes(e.value)),onChange:e=>{if(e!==`local`&&e!==`s3`)return;let t=e;u(t);let n=b.formApi.current?.getValue(`objectAcl`);n&&!(Ve[t]??[]).includes(n)&&b.formApi.current?.setValue(`objectAcl`,`default`)},placeholder:`请选择存储类型`})})]}),/* @__PURE__ */ W(k,{gutter:16,children:[/* @__PURE__ */ U(j,{span:12,children:/* @__PURE__ */ W(T.Select,{field:`status`,label:`状态`,style:{width:`100%`},placeholder:`请选择状态`,children:[/* @__PURE__ */ U(n.Option,{value:`enabled`,children:`启用`}),/* @__PURE__ */ U(n.Option,{value:`disabled`,children:`禁用`})]})}),c===`s3`&&/* @__PURE__ */ U(j,{span:12,children:/* @__PURE__ */ U(T.Input,{field:`basePath`,label:`基础路径`,placeholder:`例如 uploads / images`})})]}),/* @__PURE__ */ U(T.Slot,{label:`设为默认服务`,children:/* @__PURE__ */ U(r,{checked:p,onChange:m})}),/* @__PURE__ */ U(k,{gutter:16,children:/* @__PURE__ */ U(j,{span:24,children:/* @__PURE__ */ U(T.Input,{field:`remark`,label:`备注`,placeholder:`选填,说明该文件服务的用途`})})})]}),/* @__PURE__ */ W(T.Section,{text:`${He[c]} 连接配置`,children:[c===`local`&&/* @__PURE__ */ U(k,{gutter:16,children:/* @__PURE__ */ U(j,{span:24,children:/* @__PURE__ */ U(T.Input,{field:`localRootPath`,label:`存储目录`,placeholder:`例如 storage/local 或 D:/uploads`,rules:[{required:!0,message:`请输入本地磁盘存储目录`}]})})}),c===`s3`&&/* @__PURE__ */ W(Fe,{children:[/* @__PURE__ */ W(k,{gutter:16,children:[/* @__PURE__ */ U(j,{span:12,children:/* @__PURE__ */ U(T.Input,{field:`s3Region`,label:`Region`,placeholder:`请输入 S3 Region`,rules:[{required:!0,message:`请输入 S3 Region`}]})}),/* @__PURE__ */ U(j,{span:12,children:/* @__PURE__ */ U(T.Input,{field:`s3Bucket`,label:`Bucket`,placeholder:`请输入 S3 Bucket`,rules:[{required:!0,message:`请输入 S3 Bucket`}]})})]}),/* @__PURE__ */ U(k,{gutter:16,children:/* @__PURE__ */ U(j,{span:24,children:/* @__PURE__ */ U(T.Input,{field:`s3Endpoint`,label:`Endpoint`,placeholder:`可选,兼容 S3 自定义存储`})})}),/* @__PURE__ */ U(k,{gutter:16,children:/* @__PURE__ */ U(j,{span:24,children:/* @__PURE__ */ U(T.Input,{field:`s3AccessKeyId`,label:`Access Key ID`,placeholder:`请输入 Access Key ID`,rules:[{required:!0,message:`请输入 Access Key ID`}]})})}),/* @__PURE__ */ U(k,{gutter:16,children:/* @__PURE__ */ U(j,{span:24,children:/* @__PURE__ */ U(ye,{field:`s3SecretAccessKey`,label:`Secret Access Key`,placeholder:b.isEdit?`留空表示不修改`:`请输入 Secret Access Key`,rules:b.isEdit?[]:[{required:!0,message:`请输入 Secret Access Key`}]})})}),/* @__PURE__ */ U(T.Checkbox,{field:`s3ForcePathStyle`,noLabel:!0,children:`强制路径样式(MinIO / Ceph 等兼容当需开启)`})]})]}),/* @__PURE__ */ W(T.Section,{text:`访问与权限`,children:[$.includes(c)&&/* @__PURE__ */ U(T.RadioGroup,{field:`objectAcl`,label:`读写权限`,type:`button`,extraText:c===`s3`?`上传文件将按此权限设置对象 ACL。注意:AWS S3 新建桶默认禁用 ACL(Bucket owner enforced),启用前请先在桶设置中开启;MinIO / Cloudflare R2 不支持对象 ACL,请保持「继承 Bucket」。`:`上传文件将按此权限设置对象 ACL;「继承 Bucket」表示不单独指定、跟随 Bucket 权限。公共读 / 公共读写存在数据泄露风险,请谨慎选择。`,children:[`default`].map(e=>/* @__PURE__ */ U(t,{value:e,children:Be[e]},e))}),/* @__PURE__ */ U(k,{gutter:16,children:/* @__PURE__ */ U(j,{span:24,children:/* @__PURE__ */ U(T.Select,{field:`urlStrategy`,disabled:K,label:`访问策略`,style:{width:`100%`},extraText:`代理:文件流量经过服务端(兜底);公开直链:返回永久直连地址,要求对象可公开读;临时签名:按需签发限时直连地址,适合私有文件(本地磁盘 / SFTP 不支持)`,children:Ge.filter(e=>e.value===`proxy`).map(e=>/* @__PURE__ */ U(n.Option,{value:e.value,children:e.label},e.value))})})}),/* @__PURE__ */ U(k,{gutter:16,children:/* @__PURE__ */ U(j,{span:24,children:/* @__PURE__ */ U(T.InputNumber,{field:`presignedExpirySeconds`,disabled:K,label:`签名有效期(秒)`,style:{width:`100%`},min:qe,max:Ke,extraText:`仅临时签名策略生效;修改只影响新签发的链接`})})}),/* @__PURE__ */ U(k,{gutter:16,children:/* @__PURE__ */ U(j,{span:24,children:/* @__PURE__ */ U(T.Input,{field:`publicBaseUrl`,disabled:K,label:`访问域名(CDN)`,placeholder:`可选,例如 https://cdn.example.com,公开直链优先使用该域名`})})})]})]}),/* @__PURE__ */ U(ot,{config:h,onClose:()=>g(null)})]})}var dt,$;function ft(){return(ft=e((()=>{ve(),E(),at(),z(),be(),m(),p(),c(),P(),I(),o(),ct(),y(),R(),fe(),{Text:dt}=i,$=[`s3`]})))()}ft();export{ut as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{jsx as t}from"react/jsx-runtime";var n;function r(){return(r=e((()=>{n={"ant-design:dingtalk-outlined":{body:`<path fill="currentColor" d="M573.7 252.5C422.5 197.4 201.3 96.7 201.3 96.7c-15.7-4.1-17.9 11.1-17.9 11.1c-5 61.1 33.6 160.5 53.6 182.8c19.9 22.3 319.1 113.7 319.1 113.7S326 357.9 270.5 341.9c-55.6-16-37.9 17.8-37.9 17.8c11.4 61.7 64.9 131.8 107.2 138.4c42.2 6.6 220.1 4 220.1 4s-35.5 4.1-93.2 11.9c-42.7 5.8-97 12.5-111.1 17.8c-33.1 12.5 24 62.6 24 62.6c84.7 76.8 129.7 50.5 129.7 50.5c33.3-10.7 61.4-18.5 85.2-24.2L565 743.1h84.6L603 928l205.3-271.9H700.8l22.3-38.7c.3.5.4.8.4.8S799.8 496.1 829 433.8l.6-1h-.1c5-10.8 8.6-19.7 10-25.8c17-71.3-114.5-99.4-265.8-154.5"/>`,width:1024,height:1024},"ant-design:wechat-work-filled":{body:`<path fill="currentColor" fill-rule="evenodd" d="M805.333 112H218.667C159.756 112 112 159.756 112 218.667v586.666C112 864.244 159.756 912 218.667 912h586.666C864.244 912 912 864.244 912 805.333V218.667C912 159.756 864.244 112 805.333 112m-98.169 417.862a102.13 102.13 0 0 0 28.09 52.454l2.137 2.062c.409.275.796.573 1.156.902l.555.636l.191.022a7.964 7.964 0 0 1-.969 10.818a7.964 7.964 0 0 1-10.853-.178c-1.102-1.05-2.142-2.142-3.24-3.24a102.5 102.5 0 0 0-53.818-28.356l-2.004-.275c-.658-.116-1.342-.387-1.978-.387c-16.28-3.785-27.224-19.06-25.574-35.692s15.384-29.458 32.09-29.97c16.72-.5 31.213 11.487 33.857 28.004c.165 1.085.36 2.156.36 3.2M494.062 683.684a276.8 276.8 0 0 1-61.706.165a267.3 267.3 0 0 1-44.663-8.605l-68.44 34.405c-.329.244-.769.431-1.15.711h-.276a18.289 18.289 0 0 1-27.516-15.902q.042-.882.191-1.742c.134-1.97.6-3.898 1.378-5.712l2.747-11.155l9.564-39.56a277.6 277.6 0 0 1-49.253-54.671a186 186 0 0 1-31.827-103.516a182.4 182.4 0 0 1 19.076-81.044a204 204 0 0 1 37.19-52.316c38.916-39.938 93.259-65.52 153.094-72.035a278 278 0 0 1 30.182-1.64c10.498.03 20.987.649 31.414 1.866c59.586 6.783 113.653 32.476 152.266 72.36a203 203 0 0 1 37 52.476a182.3 182.3 0 0 1 18.17 94.675c-.52-.577-1.019-1.208-1.57-1.76c-10.873-10.836-27.75-12.823-40.844-4.808c.222-2.254.222-4.538.222-6.783a143.64 143.64 0 0 0-14.76-63.382a164 164 0 0 0-29.684-42.147c-31.774-32.768-76.467-53.955-125.885-59.55a234.4 234.4 0 0 0-51.67-.143c-49.614 5.413-94.605 26.453-126.574 59.262a163.6 163.6 0 0 0-29.818 41.951a143.4 143.4 0 0 0-15.12 63.925a147.16 147.16 0 0 0 25.289 81.515a170.5 170.5 0 0 0 24.929 29.396a172 172 0 0 0 17.564 14.747a17.6 17.6 0 0 1 6.351 19.622l-6.489 24.667l-1.866 7.146l-1.622 6.45a2.85 2.85 0 0 0 2.777 2.88a4 4 0 0 0 1.925-.68l43.866-25.934l1.432-.774a23.2 23.2 0 0 1 18.248-1.84c11.09 3.23 22.41 5.61 33.863 7.12l5.222.685a227.3 227.3 0 0 0 51.671-.138a226.6 226.6 0 0 0 42.747-9.067c-1.498 15.476 7.943 29.919 22.72 34.756a269.3 269.3 0 0 1-60.365 14.124m89.071-24.875a33.33 33.33 0 0 1-33.764-18.747a33.32 33.32 0 0 1 6.644-38.03a33.16 33.16 0 0 1 18.254-9.312c1.07-.142 2.19-.36 3.24-.36a102.37 102.37 0 0 0 52.475-28.053l2.2-2.33a10.2 10.2 0 0 1 1.57-1.68v-.026a7.969 7.969 0 1 1 10.64 11.809l-3.245 3.24a102.44 102.44 0 0 0-28.56 53.738c-.085.635-.276 1.35-.276 2.009l-.387 2.004a33.29 33.29 0 0 1-28.79 25.738m94.431 93.867c-16.405 2.02-31.809-8.303-36.177-24.245a28 28 0 0 1-1.098-6.729a102.4 102.4 0 0 0-28.147-52.39l-2.31-2.25a7 7 0 0 1-1.103-.91l-.542-.6h-.031v.057a7.964 7.964 0 0 1 .964-10.818a7.956 7.956 0 0 1 10.849.178l3.222 3.24a102.3 102.3 0 0 0 53.791 28.355l2.005.272a33.271 33.271 0 1 1-1.423 65.84m113.672-103.338a32.84 32.84 0 0 1-18.276 9.315a26 26 0 0 1-3.24.36a102.3 102.3 0 0 0-52.444 28.103a50 50 0 0 0-3.138 3.408l-.68.552h.022l.084.053a7.938 7.938 0 1 1-10.604-11.809l3.24-3.24a102.05 102.05 0 0 0 28.364-53.707a33.262 33.262 0 1 1 62.405-12.093a33.21 33.21 0 0 1-5.733 39.058"/>`,width:1024,height:1024},"codicon:terminal-cmd":{body:`<path fill="currentColor" d="M12.5 1h-9A2.5 2.5 0 0 0 1 3.5v9A2.5 2.5 0 0 0 3.5 15h9a2.5 2.5 0 0 0 2.5-2.5v-9A2.5 2.5 0 0 0 12.5 1M14 12.5a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 2 12.5V5h12zM14 4H2v-.5A1.5 1.5 0 0 1 3.5 2h9A1.5 1.5 0 0 1 14 3.5zM4 10.508v-2c0-.827.673-1.5 1.5-1.5s1.5.673 1.5 1.5a.5.5 0 0 1-1 0a.5.5 0 0 0-1 0v2a.5.5 0 0 0 1 0a.5.5 0 0 1 1 0c0 .827-.673 1.5-1.5 1.5s-1.5-.673-1.5-1.5M8 8.5a.5.5 0 1 1 1 0a.5.5 0 0 1-1 0m0 2a.5.5 0 1 1 1 0a.5.5 0 0 1-1 0m1.532-2.824a.5.5 0 0 1 .292-.644a.5.5 0 0 1 .644.292l1.5 4A.5.5 0 0 1 11.5 12a.5.5 0 0 1-.468-.324z"/>`,width:16,height:16},"icon-park-outline:lark":{body:`<path fill="currentColor" fill-rule="evenodd" d="M41.072 5.994L3.31 16.52l9.075 9.294l8.414.146l9.683-9.44q-.384-.787-.384-1.318c0-.794.311-1.422.796-1.868q1.244-1.145 2.994-.342zm1.03.734L31.578 44.49l-9.294-9.075L22.137 27l9.375-9.518a2.54 2.54 0 0 0 1.664.495c.902-.05 1.485-.596 1.759-.917a2.35 2.35 0 0 0 .567-1.649a2.57 2.57 0 0 0-.52-1.464z" clip-rule="evenodd"/>`,width:48,height:48},"simple-icons:github":{body:`<path fill="currentColor" d="M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/>`,width:24,height:24}}})))()}function i({icon:e,size:n=16,style:r,...i}){let a=e.width===e.height?n:Math.round(n*e.height/e.width);return/* @__PURE__ */ t(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 ${e.width} ${e.height}`,width:n,height:a,"aria-hidden":`true`,focusable:`false`,style:{flexShrink:0,...r},...i,dangerouslySetInnerHTML:{__html:e.body}})}function a(){return(a=e((()=>{})))()}function o({icon:e,size:r=16,className:a,style:o}){if(e in n)return/* @__PURE__ */ t(i,{icon:n[e],size:r,className:a,style:o});let l=s[e]??s[c];return l?/* @__PURE__ */ t(`img`,{src:l,width:r,height:r,alt:``,"aria-hidden":`true`,draggable:!1,loading:`lazy`,decoding:`async`,className:a,style:{flexShrink:0,display:`inline-block`,verticalAlign:`middle`,...o}}):null}var s,c;function l(){return(l=e((()=>{r(),a(),s=Object.fromEntries(Object.entries(/* #__PURE__ */ Object.assign({})).map(([e,t])=>[`vscode-icons:${e.slice(e.lastIndexOf(`/`)+1,-4)}`,t])),c=`vscode-icons:default-file`})))()}export{l as n,o as t};
|
package/dist/chunks/{FileViewerPreviewPanel-wbXzgqxc.js → FileViewerPreviewPanel-CMqVtGCr.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{n as t,t as n}from"./preload-helper-C-73SErw.js";import{
|
|
1
|
+
import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{n as t,t as n}from"./preload-helper-C-73SErw.js";import{n as r,r as i}from"./theme-controller-D-ATwFal.js";import{D as a,F as o,G as s,H as c,I as l,M as u,N as d,P as f,U as p,X as m,Y as h,Z as g,et as _,ft as ee,g as te,h as ne,i as re,j as v,k as ie,l as ae,m as oe,mt as y,q as b,s as se,t as x,v as S}from"./dist-Bauqz5on.js";import{t as ce}from"./messages-CFyOVxEM.js";import{a as le,i as ue,n as de,r as fe}from"./options-B65xkxOY.js";import{S as C,a as w,y as T}from"./file-utils-DyvnVEoH.js";import{forwardRef as E,useEffect as pe,useImperativeHandle as D,useMemo as O,useRef as k}from"react";import{jsx as A}from"react/jsx-runtime";var me,j,M,N,P,F,he,ge,I,L,_e,ve,R,z,ye,be,xe,Se,Ce,B,V,we,Te,H;function Ee(){return(Ee=e((()=>{x(),me=()=>typeof window<`u`&&typeof document<`u`,j=(e={})=>!!(e.url||e.file||e.buffer),M=(e={})=>({url:e.url,file:e.file,buffer:e.buffer,filename:e.filename||e.name,name:e.name,type:e.type,size:e.size}),N=[`theme`,`rendererMode`,`builtinRenderers`,`autoRenderers`,`preset`,`presets`,`renderers`,`text`,`archive`,`chm`,`pdf`,`docx`,`presentation`,`spreadsheet`,`iwork`,`wordPerfect`,`hangul`,`typst`,`geo`,`data`,`binary`,`design`,`drawing`,`cad`,`model`],P=e=>{let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},F=(e,t,n=/* @__PURE__ */ new WeakMap)=>{if(Object.is(e,t))return!0;if(e===null||t===null||typeof e!=`object`||typeof t!=`object`)return!1;let r=n.get(e);if(r)return r===t;if(n.set(e,t),Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,r)=>F(e,t[r],n));if(!P(e)||!P(t))return!1;let i=Object.keys(e).sort(),a=Object.keys(t).sort();return i.length===a.length&&i.every((r,i)=>r===a[i]&&F(e[r],t[r],n))},he=(e,t)=>N.some(n=>!F(e?.[n],t?.[n])),ge=(e,t)=>!e||!t?e===t:e.url===t.url&&e.file===t.file&&e.buffer===t.buffer&&e.filename===t.filename&&e.name===t.name&&e.type===t.type&&Object.is(e.size,t.size),I=()=>typeof fetch==`function`,L=async({url:e,signal:t})=>{if(!I())throw Error(`fetch is not available in the current environment.`);let n=S(e)||e,r=await fetch(n,{signal:t});if(!r.ok)throw Error(`Failed to fetch file: ${r.status} ${r.statusText}`);return r.blob()},_e=e=>s(e.filename||e.name||h({file:e.file,url:e.url,fallback:`preview.bin`}),e.type?`preview.${e.type}`:c),ve=async(e,t={})=>{let n=_e(e),r=e.type||p(n);if(e.buffer)return{buffer:e.buffer,filename:n,type:r,size:e.size??e.buffer.byteLength,url:e.url};if(e.file){let t=m(e.file,n);return{file:t,buffer:await b(t),filename:t.name||n,type:r||p(t.name),size:e.size??t.size,url:e.url}}if(e.url){let i=await(t.fetchFile||L)({url:e.url,signal:t.signal,source:e});if(!i)throw Error(`Downloaded file is empty.`);let a=m(i,n);return{file:a,buffer:await b(a),filename:a.name||n,type:r||p(a.name),size:e.size??a.size,url:e.url}}return{filename:n,type:r}},R=(e,t)=>({load(t){return e()?.load(t)??Promise.resolve()},update(t){return e()?.update(t)??Promise.resolve()},reload(){return e()?.reload()??Promise.resolve()},destroy(){t()},getController:e,getApi(){return e()?.getApi()??null},downloadOriginalFile(){return e()?.downloadOriginalFile()??Promise.resolve()},printRenderedHtml(t){return e()?.printRenderedHtml(t)??Promise.resolve()},printWithMask(t){return e()?.printWithMask(t)??Promise.resolve()},exportRenderedHtml(){return e()?.exportRenderedHtml()??Promise.resolve()},zoomIn(){return e()?.zoomIn()??Promise.resolve(null)},zoomOut(){return e()?.zoomOut()??Promise.resolve(null)},resetZoom(){return e()?.resetZoom()??Promise.resolve(null)},fitToView(t){return e()?.fitToView(t)??Promise.resolve(null)},getViewState(){return e()?.getViewState()??null},applyViewState(t,n){return e()?.applyViewState(t,n)??Promise.resolve(null)},searchDocument(t){return e()?.searchDocument(t)??Promise.resolve(null)},clearDocumentSearch(){return e()?.clearDocumentSearch()??Promise.resolve(null)},nextSearchResult(){return e()?.nextSearchResult()??Promise.resolve(null)},previousSearchResult(){return e()?.previousSearchResult()??Promise.resolve(null)},collectDocumentAnchors(){return e()?.collectDocumentAnchors()??Promise.resolve([])},scrollToAnchor(t){return e()?.scrollToAnchor(t)??Promise.resolve(!1)},scrollToLine(t){return e()?.scrollToLine(t)??Promise.resolve(!1)},getDocumentTextChunks(){return e()?.getDocumentTextChunks()??[]},getOperationAvailability(){return e()?.getOperationAvailability()??null},getZoomState(){return e()?.getZoomState()??null},getSearchState(){return e()?.getSearchState()??null},getState(){return e()?.getState()??null},subscribe(t){return e()?.subscribe(t)??(()=>{})}}),z=async(e,t,n)=>e?t(e):n,ye=e=>!!(e&&typeof e==`object`&&e.name===`AbortError`),be={download:!1,print:!1,exportHtml:!1,zoom:!1,zoomIn:!1,zoomOut:!1,zoomReset:!1},xe={scale:1,label:`100%`,canZoomIn:!1,canZoomOut:!1,canReset:!1},Se=/* @__PURE__ */ new WeakMap,Ce=`
|
|
2
2
|
:host,.file-viewer-web-shell{display:block;width:100%;height:100%;min-width:0;min-height:0;contain:content;--file-viewer-bg:transparent;--file-viewer-content-bg:transparent;--file-viewer-text:#172033;--file-viewer-muted:#607282;--file-viewer-font:14px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--file-viewer-border:rgba(20,35,53,.08);--file-viewer-toolbar-bg:rgba(255,255,255,.92);--file-viewer-toolbar-border:rgba(20,35,53,.06);--file-viewer-toolbar-shadow:0 18px 44px rgba(15,23,42,.16);--file-viewer-toolbar-radius:999px;--file-viewer-toolbar-gap:6px;--file-viewer-toolbar-min-height:45px;--file-viewer-toolbar-padding:6px 10px;--file-viewer-toolbar-floating-min-height:42px;--file-viewer-toolbar-floating-padding:6px;--file-viewer-toolbar-floating-offset:16px;--file-viewer-group-bg:rgba(20,35,53,.035);--file-viewer-group-border:rgba(20,35,53,.08);--file-viewer-group-gap:2px;--file-viewer-group-padding:2px;--file-viewer-button-color:#40546a;--file-viewer-button-hover-bg:rgba(33,163,102,.1);--file-viewer-button-hover-color:#16774c;--file-viewer-button-disabled-color:#aab5c0;--file-viewer-button-radius:8px;--file-viewer-button-min-width:42px;--file-viewer-button-height:30px;--file-viewer-button-padding:0 10px;--file-viewer-icon-button-size:30px;--file-viewer-zoom-meter-min-width:48px;--file-viewer-zoom-meter-padding:0 8px;--file-viewer-floating-button-min-width:48px;--file-viewer-floating-button-height:32px;--file-viewer-floating-icon-button-size:32px;--file-viewer-floating-zoom-meter-min-width:54px;--file-viewer-search-input-height:30px;--file-viewer-search-input-padding:0 10px;--file-viewer-search-button-min-width:32px;--file-viewer-search-button-padding:0 8px;--file-viewer-search-count-min-width:42px;--file-viewer-floating-search-input-height:32px;--file-viewer-focus-ring:rgba(31,157,103,.22);--file-viewer-z-toolbar:20;--file-viewer-z-floating-toolbar:30}
|
|
3
3
|
:host([theme='dark']),.file-viewer-web-shell[data-viewer-theme='dark']{--file-viewer-bg:#0f1720;--file-viewer-content-bg:#111b24;--file-viewer-text:#e5eef8;--file-viewer-muted:#cbd5e1;--file-viewer-border:rgba(148,163,184,.18);--file-viewer-toolbar-bg:rgba(15,23,42,.9);--file-viewer-toolbar-border:rgba(148,163,184,.18);--file-viewer-group-bg:rgba(148,163,184,.1);--file-viewer-group-border:rgba(148,163,184,.16);--file-viewer-button-color:#d7dee8;--file-viewer-button-hover-bg:rgba(45,212,191,.14);--file-viewer-button-hover-color:#5eead4;--file-viewer-button-disabled-color:#64748b;--file-viewer-input-bg:rgba(15,23,42,.78);--file-viewer-input-color:#f8fafc}
|
|
4
4
|
.file-viewer-web-shell,.file-viewer-web-shell *,.file-viewer-web-shell *::before,.file-viewer-web-shell *::after{box-sizing:border-box}
|
|
@@ -38,4 +38,4 @@ import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{n as t,t as n}from"./p
|
|
|
38
38
|
.file-viewer-web-shell[data-viewer-theme='dark']{color-scheme:dark;--file-viewer-bg:#0f1720;--file-viewer-content-bg:#111b24;--file-viewer-text:#e5eef8;--file-viewer-muted:#cbd5e1;--file-viewer-border:rgba(148,163,184,.18);--file-viewer-toolbar-bg:rgba(15,23,42,.9);--file-viewer-toolbar-border:rgba(148,163,184,.18);--file-viewer-group-bg:rgba(148,163,184,.1);--file-viewer-group-border:rgba(148,163,184,.16);--file-viewer-button-color:#d7dee8;--file-viewer-button-hover-bg:rgba(45,212,191,.14);--file-viewer-button-hover-color:#5eead4;--file-viewer-button-disabled-color:#64748b;--file-viewer-input-bg:rgba(15,23,42,.78);--file-viewer-input-color:#f8fafc}
|
|
39
39
|
@media (prefers-color-scheme:dark){.file-viewer-web-shell[data-viewer-theme='system']{color-scheme:dark;--file-viewer-bg:#0f1720;--file-viewer-content-bg:#111b24;--file-viewer-text:#e5eef8;--file-viewer-muted:#cbd5e1;--file-viewer-border:rgba(148,163,184,.18);--file-viewer-toolbar-bg:rgba(15,23,42,.9);--file-viewer-toolbar-border:rgba(148,163,184,.18);--file-viewer-group-bg:rgba(148,163,184,.1);--file-viewer-group-border:rgba(148,163,184,.16);--file-viewer-button-color:#d7dee8;--file-viewer-button-hover-bg:rgba(45,212,191,.14);--file-viewer-button-hover-color:#5eead4;--file-viewer-button-disabled-color:#64748b;--file-viewer-input-bg:rgba(15,23,42,.78);--file-viewer-input-color:#f8fafc}}
|
|
40
40
|
@media (max-width:640px){.file-viewer-web-toolbar{max-width:100%;overflow-x:auto;overflow-y:visible}.file-viewer-web-toolbar[data-toolbar-position="bottom-right"]{max-width:calc(100% - 32px);overflow:visible}.file-viewer-web-toolbar[data-toolbar-position="bottom-right"] .file-viewer-web-print-menu-panel{left:50%;right:auto;transform:translateX(-50%);min-width:min(148px,calc(100vw - 32px))}.file-viewer-web-search input{width:120px}}
|
|
41
|
-
`,B=(e,...t)=>{let n=e.part;if(n?.add){n.add(...t);return}let r=/* @__PURE__ */ new Set([...(e.getAttribute(`part`)||``).split(/\s+/).filter(Boolean),...t]);e.setAttribute(`part`,[...r].join(` `))},V=(e,t,n,r)=>{let i=e.createElement(`button`);return i.type=`button`,i.className=n,B(i,`button`),i.textContent=t,i.title=t,i.setAttribute(`aria-label`,t),i.addEventListener(`click`,()=>{r()}),i},we=(e,t,n)=>{let r=e.createElement(`span`);return r.className=`${n} file-viewer-web-zoom-meter--readonly`,B(r,`button`),r.textContent=t,r.title=t,r.setAttribute(`aria-label`,t),r},Te=(e,t)=>{e.innerHTML=t===`dark`?`<svg viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.42 1.42M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.42-1.42M17.66 6.34l1.41-1.41"/></svg>`:`<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79Z"/></svg>`},H=(e,t={},n={})=>{var r,i;if(!me())throw Error(`Flyfish File Viewer can only be mounted in a browser DOM environment.`);let c=e.ownerDocument,l=te(t.options?.styleIsolation),m=l===`auto`||l===`shadow`,h=e.shadowRoot,g=Se.get(e),_=!!(h&&g===h),oe=typeof e.attachShadow==`function`&&!e.shadowRoot,y=null,b=e;if(m&&_&&h)b=h;else if(m&&oe)try{b=e.attachShadow({mode:`open`}),Se.set(e,b)}catch{b=e}else if(h&&!_){if(y=c.createElement(`div`),y.dataset.fileViewerMountBoundary=`true`,h.appendChild(y),m&&typeof y.attachShadow==`function`)try{b=y.attachShadow({mode:`open`})}catch{b=y}else b=y}else if(!m&&_&&h){let t=c.createElement(`slot`);t.dataset.fileViewerLightDomSlot=`true`,h.replaceChildren(t),b=e}b.replaceChildren();let se=ie(b,Ce,{adoptedStyleSheet:ae(b)}),x=c.createElement(`div`);x.className=`file-viewer-web-shell`,B(x,`shell`);let S=c.createElement(`div`);S.className=`file-viewer-web-toolbar`,B(S,`toolbar`);let C=c.createElement(`div`);C.className=`file-viewer-web-content`,B(C,`content`),C.dataset.viewerScrollContainer=`true`,x.append(S,C),b.appendChild(x);let w=!1,T=t,E=((r=c.defaultView)?.matchMedia)?.call(r,`(prefers-color-scheme: dark)`)??null,pe=e=>E?ue(e,E.matches):ue(e),D=j(T)?M(T):null,O=null,k=/* @__PURE__ */ new Set,A={loading:!1,ready:!1,error:null,lastEvent:null,lifecycle:null,availability:null,search:null,zoom:null,location:null,viewState:null},N=()=>A.lifecycle?.type?A.lifecycle.type:D?o(_e(D)):``,P=()=>A.zoom||J.getZoomState()||xe,F=()=>s(A.availability||J.getCapabilities()||be,P()),I=()=>({...A,availability:F(),search:A.search?{...A.search,matches:[...A.search.matches]}:null,zoom:A.zoom?{...A.zoom}:null,location:A.location?{...A.location}:null,viewState:A.viewState?{...A.viewState,zoom:A.viewState.zoom?{...A.viewState.zoom}:void 0,scroll:A.viewState.scroll?{...A.viewState.scroll}:void 0,navigation:A.viewState.navigation?{...A.viewState.navigation}:void 0,extra:A.viewState.extra?{...A.viewState.extra}:void 0}:null}),L=()=>{x.dataset.viewerTheme=de(T.options?.theme),x.dataset.viewerDensity=fe(T.options?.ui?.density),ee(x,T.options)},R=null,H=``,Ee=(e,t)=>e.search===!1||t.search===!1||!A.ready||A.loading||A.error||C.querySelector(`.file-viewer-missing-renderer`)?!1:!!J.getRenderer(N())?.capabilities?.search,U=()=>{if(w)return;L();let e=T.options||{},t=u(e),n=F(),r=Ee(t,e),i=a(t,n,r),o=re(i),s=f(e,N()),l=A.loading||!!A.error,p=P(),m=ce(e);if(S.hidden=!o,S.dataset.toolbarPosition=s,S.replaceChildren(),!o)return;let h=()=>{if(!r)return;let e=A.search,t=e?.total??0,n=t>0?(e?.currentIndex??-1)+1:0,i=c.createElement(`form`);i.className=`file-viewer-web-toolbar-group file-viewer-web-search`,B(i,`toolbar-group`),i.setAttribute(`role`,`search`),i.setAttribute(`aria-label`,m(`toolbar.search`));let a=c.createElement(`input`);a.type=`search`,B(a,`input`),a.value=H,a.placeholder=m(`toolbar.searchPlaceholder`),a.title=m(`toolbar.searchPlaceholder`),a.setAttribute(`aria-label`,m(`toolbar.searchPlaceholder`)),a.disabled=l,a.addEventListener(`input`,()=>{H=a.value});let o=c.createElement(`button`);o.type=`submit`,B(o,`button`),o.textContent=m(`toolbar.search`),o.title=m(`toolbar.search`),o.setAttribute(`aria-label`,m(`toolbar.search`)),o.disabled=l;let s=V(c,`<`,`file-viewer-web-icon-button`,()=>R?.previousSearchResult());s.title=m(`toolbar.searchPrevious`),s.setAttribute(`aria-label`,m(`toolbar.searchPrevious`)),s.disabled=l||t<1;let u=V(c,`>`,`file-viewer-web-icon-button`,()=>R?.nextSearchResult());u.title=m(`toolbar.searchNext`),u.setAttribute(`aria-label`,m(`toolbar.searchNext`)),u.disabled=l||t<1;let d=V(c,`x`,`file-viewer-web-icon-button`,async()=>{H=``,await R?.clearDocumentSearch()});d.title=m(`toolbar.searchClear`),d.setAttribute(`aria-label`,m(`toolbar.searchClear`)),d.disabled=l||!H&&!e?.query;let f=c.createElement(`span`);f.className=`file-viewer-web-search-count`,B(f,`toolbar-status`),f.textContent=`${n}/${t}`,f.setAttribute(`aria-live`,`polite`),i.addEventListener(`submit`,e=>{e.preventDefault(),H=a.value;let t=H.trim();t?R?.searchDocument(t):R?.clearDocumentSearch()}),i.append(a,o,s,u,d,f),S.appendChild(i)},g=()=>{if(!i.zoom)return;let e=c.createElement(`div`);if(e.className=`file-viewer-web-toolbar-group`,B(e,`toolbar-group`),e.setAttribute(`aria-label`,m(`toolbar.zoomGroup`)),n.zoomOut){let t=V(c,`-`,`file-viewer-web-icon-button`,()=>R?.zoomOut());t.title=m(`toolbar.zoomOut`),t.setAttribute(`aria-label`,m(`toolbar.zoomOut`)),t.disabled=v({action:`canZoomOut`,availability:n,toolbarDisabled:l,zoomState:p}),e.appendChild(t)}if(n.zoomReset){let t=V(c,p.label,`file-viewer-web-zoom-meter`,()=>R?.resetZoom());t.title=m(`toolbar.zoomReset`),t.disabled=v({action:`canReset`,availability:n,toolbarDisabled:l,zoomState:p}),e.appendChild(t)}else e.appendChild(we(c,p.label,`file-viewer-web-zoom-meter`));if(n.zoomReset){let t=V(c,`1:1`,`file-viewer-web-icon-button`,()=>R?.resetZoom());t.title=m(`toolbar.zoomReset`),t.setAttribute(`aria-label`,m(`toolbar.zoomReset`)),t.disabled=v({action:`canReset`,availability:n,toolbarDisabled:l,zoomState:p}),e.appendChild(t)}if(n.zoomIn){let t=V(c,`+`,`file-viewer-web-icon-button`,()=>R?.zoomIn());t.title=m(`toolbar.zoomIn`),t.setAttribute(`aria-label`,m(`toolbar.zoomIn`)),t.disabled=v({action:`canZoomIn`,availability:n,toolbarDisabled:l,zoomState:p}),e.appendChild(t)}e.childElementCount&&S.appendChild(e)},_=(e,t,n,r)=>{if(!e)return;let i=V(c,t,``,r);i.title=n,i.disabled=l,S.appendChild(i)},ee=()=>{if(!i.theme)return;let t=pe(e.theme),n=m(t===`dark`?`toolbar.themeToLight`:`toolbar.themeToDark`),r=V(c,``,`file-viewer-web-icon-button file-viewer-web-theme-button`,async()=>{let e=J.getViewState(),t=le(T.options?.theme,E?.matches);T={...T,options:{...T.options||{},theme:t}},J.updateOptions({theme:t}),q({type:`theme-change`,payload:t}),D&&await X(D).catch(()=>null)&&e&&await J.applyViewState(e,{action:`restore`,source:`api`})});B(r,`theme-toggle`),Te(r,t),r.title=n,r.setAttribute(`aria-label`,n),r.setAttribute(`aria-pressed`,String(t===`dark`)),r.disabled=l,S.appendChild(r)};d(t).forEach(e=>{if(e===`search`)h();else if(e===`zoom`)g();else if(e===`download`)_(i.download,m(`toolbar.download`),m(`toolbar.downloadTitle`),()=>R?.downloadOriginalFile());else if(e===`print`){if(!i.print)return;let e=c.createElement(`div`);e.className=`file-viewer-web-print-menu`,B(e,`toolbar-group`);let t=V(c,m(`toolbar.print`),``,()=>{e.dataset.open=e.dataset.open===`true`?`false`:`true`});t.title=m(`toolbar.printTitle`),t.setAttribute(`aria-label`,m(`toolbar.printTitle`)),t.setAttribute(`aria-haspopup`,`menu`),t.disabled=l;let n=c.createElement(`div`);n.className=`file-viewer-web-print-menu-panel`,n.setAttribute(`role`,`menu`);let r=()=>{e.dataset.open=`false`},a=V(c,m(`toolbar.printDirect`),``,async()=>{r(),await R?.printRenderedHtml()});a.title=m(`toolbar.printTitle`),a.setAttribute(`role`,`menuitem`),a.disabled=l;let o=V(c,m(`toolbar.printMask`),``,async()=>{r(),await R?.printWithMask()});o.title=m(`toolbar.printMaskTitle`),o.setAttribute(`role`,`menuitem`),o.disabled=l,n.append(a,o),e.append(t,n),e.addEventListener(`focusout`,t=>{let n=t.relatedTarget;(!n||!e.contains(n))&&r()}),S.appendChild(e)}else e===`exportHtml`?_(i.exportHtml,m(`toolbar.exportHtml`),m(`toolbar.exportHtmlTitle`),()=>R?.exportRenderedHtml()):e===`theme`&&ee()})},W=null,G=()=>{de(T.options?.theme)===`system`&&(U(),W?.())},K=e=>{var t;let n=I();U(),(t=T.onStateChange)==null||t.call(T,n,e),k.forEach(t=>t(n,e))},q=e=>{var t;A.lastEvent=e,e.type===`load-start`?(A.loading=!0,A.ready=!1,A.error=null,A.lifecycle=e.payload,A.search=null,H=``):e.type===`load-complete`?(A.loading=!1,A.ready=!0,A.lifecycle=e.payload):e.type===`unload-start`?(A.loading=!0,A.ready=!1,A.lifecycle=e.payload):e.type===`unload-complete`?(A.loading=!1,A.ready=!1,A.lifecycle=e.payload):e.type===`operation-availability-change`?A.availability=e.payload:e.type===`search-change`?(A.search=e.payload,H=e.payload.query):e.type===`location-change`?A.location=e.payload:e.type===`zoom-change`?A.zoom=e.payload:e.type===`view-state-change`&&(A.viewState=e.payload.state),(t=T.onEvent)==null||t.call(T,e),K(e)},J=ne(C,{registry:n.registry,options:T.options,onEvent:q});(i=E?.addEventListener)==null||i.call(E,`change`,G),U();let Y=()=>{O?.abort(),O=null},X=async e=>{var t;Y(),D=e,O=typeof AbortController<`u`?new AbortController:null;let r=O;try{A.loading=!0,A.error=null,K();let t=await ve(e,{fetchFile:n.fetchFile,signal:r?.signal});return w||r?.signal.aborted||O!==r?null:await J.load(t)}catch(i){if(ye(i)&&r?.signal.aborted)return null;throw A.loading=!1,A.ready=!1,A.error=i,K(),(t=n.onError)==null||t.call(n,i,e),i}finally{O===r&&(O=null)}};return W=async()=>{if(!D)return;let e=J.getViewState();await X(D).catch(()=>null)&&e&&await J.applyViewState(e,{action:`restore`,source:`api`})},D&&X(D).catch(()=>void 0),R={container:e,async load(e){w||(T=e,J.updateOptions(T.options||{}),U(),j(T)&&await X(M(T)))},async update(e={}){if(w)return;let t=e.options??T.options,n=he(T.options,t);T={...T,...e,options:t};let r=j(T)?M(T):null,i=ge(D,r),a=i&&n?J.getViewState():null;J.updateOptions(T.options||{}),U(),(!i||n)&&(r?await X(r)&&a&&await J.applyViewState(a,{action:`restore`,source:`api`}):(D=null,await J.load({filename:p})))},async reload(){w||D&&await X(D)},destroy(){var e;w||(w=!0,Y(),(e=E?.removeEventListener)==null||e.call(E,`change`,G),J.destroy(`component-unmount`),se.remove(),b.replaceChildren(),y?.remove())},getApi(){return J},downloadOriginalFile(){return z(J,e=>e.download(),void 0)},printRenderedHtml(e){return z(J,t=>t.print(e),void 0)},printWithMask(e){return z(J,t=>t.printWithMask(e),void 0)},exportRenderedHtml(){return z(J,e=>e.exportHtml({download:!0}).then(()=>void 0),void 0)},zoomIn(){return z(J,e=>e.zoomIn(),null)},zoomOut(){return z(J,e=>e.zoomOut(),null)},resetZoom(){return z(J,e=>e.resetZoom(),null)},fitToView(e){return z(J,t=>t.fitToView(e),null)},getViewState(){return J.getViewState()},applyViewState(e,t){return z(J,n=>n.applyViewState(e,t),null)},searchDocument(e){return z(J,t=>t.search(e),null)},clearDocumentSearch(){return z(J,e=>e.clearSearch(),null)},nextSearchResult(){return z(J,e=>e.nextSearchResult(),null)},previousSearchResult(){return z(J,e=>e.previousSearchResult(),null)},collectDocumentAnchors(){return z(J,e=>e.collectDocumentAnchors(),[])},scrollToAnchor(e){return z(J,t=>t.scrollToDocumentAnchor(e),!1)},scrollToLine(e){return z(J,t=>t.scrollToLine(e),!1)},getDocumentTextChunks(){return J.getDocumentTextChunks()},getOperationAvailability(){return F()},getZoomState(){return J.getZoomState()},getSearchState(){return J.getSearchState()},getState(){return I()},subscribe(e){return k.add(e),e(I()),()=>{k.delete(e)}}},R}})))()}function U(){return(U=e((()=>{b(),Ee()})))()}function W(){return(W=e((()=>{U()})))()}var G,K,q,J;function Y(){return(Y=e((()=>{W(),b(),G={width:`100%`,height:`100%`,minHeight:0},K={registry:y},q=(e,t)=>{var n;(n=e.current)==null||n.destroy(),e.current=null,t&&(t.innerHTML=``)},J=E((e,t)=>{let{url:n,file:r,buffer:i,name:a,filename:o,type:s,size:c,options:l,onEvent:u,onStateChange:d,style:f,...p}=e,m=k(null),h=k(null),g=k(null),_=O(()=>({url:n,file:r,buffer:i,name:a,filename:o,type:s,size:c,options:l,onEvent:u,onStateChange:d}),[n,r,i,a,o,s,c,l,u,d]);return pe(()=>{let e=m.current;if(e&&!h.current)return g.current=_,h.current=H(e,_,K),()=>{g.current=null,q(h,e)}},[]),pe(()=>{var e;g.current!==_&&(g.current=_,(e=h.current)==null||e.update(_))},[_]),D(t,()=>R(()=>h.current,()=>q(h,m.current)),[]),A(`div`,{...p,ref:m,style:{...G,...f}})}),J.displayName=`FileViewer`})))()}var X,De,Oe,ke;function Ae(){return(Ae=e((()=>{if(b(),t(),X=h.find(e=>e.id===`archive`),!X)throw Error(`@file-viewer/renderer-archive could not locate the shared archive format definition.`);De=X,Oe=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./archive-D0BSMQmn.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),ke={id:`file-viewer-renderer-archive`,label:`Flyfish File Viewer archive renderer`,definitions:[De],handlers:[{rendererId:De.id,handler:Oe}]}})))()}var je,Me,Ne,Pe,Fe,Ie,Le;function Re(){return(Re=e((()=>{if(b(),t(),je=h.find(e=>e.id===`office-presentation-binary`),Me=h.find(e=>e.id===`office-presentation`),!je||!Me)throw Error(`@file-viewer/renderer-presentation could not locate the core presentation renderer definitions.`);Ne=je,Pe=Me,Fe=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./ppt-C9RgrmNU.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),Ie=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./pptx-_T8ZPVQn.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),Le={id:`file-viewer-renderer-presentation`,label:`Flyfish File Viewer presentation renderer`,definitions:[Ne,Pe],handlers:[{rendererId:Ne.id,handler:Fe},{rendererId:Pe.id,handler:Ie}]}})))()}var ze;function Be(){return(Be=e((()=>{ze=new URL(`../assets/worker-bundle-Dx5mKZOL.js`,import.meta.url).href})))()}var Ve;function He(){return(He=e((()=>{Ve=new URL(`../assets/libarchive-DxGirPmi.wasm`,import.meta.url).href})))()}var Ue,We,Ge,Ke,qe,Je,Ye,Xe;function Ze(){return(Ze=e((()=>{if(b(),t(),Ue=[`office-word-openxml`,`office-word-binary`,`open-document`],We=h.filter(e=>Ue.includes(e.id)),We.length!==Ue.length)throw Error(`@file-viewer/renderer-word could not locate the shared Word renderer definitions.`);Ge=We,Ke=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./wordDocx-8ak39HcF.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,i)),qe=e=>{if(e.byteLength<2)return`binary`;let t=new Uint8Array(e,0,2);if(t[0]===80&&t[1]===75)return`openxml`;let n=new Uint8Array(e,0,Math.min(e.byteLength,8192)),r=t[0]===255&&t[1]===254||t[0]===60&&t[1]===0,i=t[0]===254&&t[1]===255||t[0]===0&&t[1]===60,a=new TextDecoder(r?`utf-16le`:i?`utf-16be`:`utf-8`).decode(n);return/<(?:[\w.-]+:)?wordDocument(?:\s|>)/.test(a)&&a.includes(`http://schemas.microsoft.com/office/word/2003/wordml`)?`wordml`:`binary`},Je=(e,t,r,i)=>{let a=qe(e);return a===`wordml`?Promise.all([n(()=>import(`./wordMl-Y_ghyTZ8.js`),[],import.meta.url),n(()=>import(`./wordDocx-8ak39HcF.js`),[],import.meta.url)]).then(async([{convertWordMlToDocx:n},{default:r}])=>r(await n(e,t),t,i)):a===`openxml`?n(async()=>{let{default:e}=await import(`./wordDocx-8ak39HcF.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,i)):n(async()=>{let{default:e}=await import(`./wordDoc-CtetBfzo.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,i))},Ye=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./openDocument-DW7w0HpR.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),Xe={id:`file-viewer-renderer-word`,label:`Flyfish File Viewer Word renderer`,definitions:Ge,handlers:[{rendererId:`office-word-openxml`,handler:Ke},{rendererId:`office-word-binary`,handler:Je},{rendererId:`open-document`,handler:Ye}]}})))()}var Qe,$e,et,tt,nt,rt;function it(){return(it=e((()=>{if(b(),t(),Qe=h.find(e=>e.id===`spreadsheet-openxml`),$e=h.find(e=>e.id===`spreadsheet-dbf`),!Qe||!$e)throw Error(`@file-viewer/renderer-spreadsheet could not locate the shared Spreadsheet format definition.`);et=Qe,tt=$e,nt=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./spreadsheet-CHFSQY8j.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),rt={id:`file-viewer-renderer-spreadsheet`,label:`Flyfish File Viewer Spreadsheet renderer`,definitions:[et,tt],handlers:[et,tt].map(e=>({rendererId:e.id,handler:nt}))}})))()}var at,ot,st,ct;function lt(){return(lt=e((()=>{if(b(),t(),at=h.find(e=>e.id===`ofd`),!at)throw Error(`@file-viewer/renderer-ofd could not locate the core OFD renderer definition.`);ot=at,st=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./ofd-B0_-rey2.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,i)),ct={id:`file-viewer-renderer-ofd`,label:`Flyfish File Viewer OFD renderer`,definitions:[ot],handlers:[{rendererId:ot.id,handler:st}]}})))()}var ut,dt,ft,pt;function mt(){return(mt=e((()=>{if(b(),t(),ut=h.find(e=>e.id===`email`),!ut)throw Error(`@file-viewer/renderer-email could not locate the shared email format definition.`);dt=ut,ft=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./email-U025DuXM.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),pt={id:`file-viewer-renderer-email`,label:`Flyfish File Viewer email renderer`,definitions:[dt],handlers:[{rendererId:dt.id,handler:ft}]}})))()}var ht,gt,_t,vt;function yt(){return(yt=e((()=>{if(b(),t(),ht=h.find(e=>e.id===`mindmap`),!ht)throw Error(`@file-viewer/renderer-mindmap could not locate the core mind map renderer definition.`);gt=ht,_t=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./xmind-B9BtGBNI.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),vt={id:`file-viewer-renderer-mindmap`,label:`Flyfish File Viewer mind map renderer`,definitions:[gt],handlers:[{rendererId:gt.id,handler:_t}]}})))()}var bt,Z,xt,St;function Ct(){return(Ct=e((()=>{if(b(),t(),bt=h.find(e=>e.id===`drawing`),!bt)throw Error(`@file-viewer/renderer-drawing could not locate the core drawing renderer definition.`);Z=bt,xt=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./drawing-CUAfa3D5.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),St={id:`file-viewer-renderer-drawing`,label:`Flyfish File Viewer drawing renderer`,definitions:[Z],handlers:[{rendererId:Z.id,handler:xt}]}})))()}var wt,Tt,Et,Dt;function Ot(){return(Ot=e((()=>{if(b(),t(),wt=h.find(e=>e.id===`data-asset`),!wt)throw Error(`@file-viewer/renderer-data could not locate the shared data asset renderer definition.`);Tt=wt,Et=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./data-DPCozzrG.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),Dt={id:`file-viewer-renderer-data`,label:`Flyfish File Viewer data asset renderer`,definitions:[Tt],handlers:[{rendererId:Tt.id,handler:Et}]}})))()}var kt,At,jt,Mt;function Nt(){return(Nt=e((()=>{if(b(),t(),kt=h.find(e=>e.id===`geo`),!kt)throw Error(`@file-viewer/renderer-geo could not locate the core geospatial renderer definition.`);At=kt,jt=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./geo-Bf8ymo43.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),Mt={id:`file-viewer-renderer-geo`,label:`Flyfish File Viewer geospatial renderer`,definitions:[At],handlers:[{rendererId:At.id,handler:jt}]}})))()}var Q,Pt,$;function Ft(){return(Ft=e((()=>{b(),r(),Ze(),it(),lt(),mt(),yt(),Ct(),Ot(),Nt(),Q=typeof document>`u`?`/`:_(document),Pt=typeof document>`u`?`/file-viewer/`:new URL(`file-viewer/`,Q.endsWith(`/`)?Q:Q+`/`).href,oe(Pt),$=[Xe,rt,ct,pt,vt,St,Dt,Mt],i($,{id:`@file-viewer/vite-plugin:configured`})})))()}function It({file:e,style:t}){let{isDark:n}=S(),r=T(C(e.type,e.name)),i=n&&!r,a=O(()=>({theme:i?`dark`:`light`,locale:`zh-CN`,styleIsolation:`shadow`,rendererMode:`replace`,autoRenderers:!1,renderers:Lt,ui:{density:`compact`},toolbar:{position:`top-center`,download:!1,print:!0,exportHtml:!1,zoom:!0,search:!0,theme:!1},docx:{worker:!0,visualPagination:!0},spreadsheet:{worker:`auto`,textEncoding:`auto`,resizableColumns:!0,resizableRows:!0},archive:{workerUrl:ze,wasmUrl:Ve},drawing:{preferOfficial:!1},geo:{basemap:`offline`}}),[i]);return/* @__PURE__ */ A(`div`,{style:{width:`100%`,height:`100%`,minWidth:0,minHeight:0,...t},children:/* @__PURE__ */ A(J,{file:e,options:a,style:{width:`100%`,height:`100%`}})})}var Lt;function Rt(){return(Rt=e((()=>{Y(),Ae(),Re(),Be(),He(),Ft(),x(),w(),Lt=[...Array.isArray($)?$:[$],ke,Le]})))()}Rt();export{It as default};
|
|
41
|
+
`,B=(e,...t)=>{let n=e.part;if(n?.add){n.add(...t);return}let r=/* @__PURE__ */ new Set([...(e.getAttribute(`part`)||``).split(/\s+/).filter(Boolean),...t]);e.setAttribute(`part`,[...r].join(` `))},V=(e,t,n,r)=>{let i=e.createElement(`button`);return i.type=`button`,i.className=n,B(i,`button`),i.textContent=t,i.title=t,i.setAttribute(`aria-label`,t),i.addEventListener(`click`,()=>{r()}),i},we=(e,t,n)=>{let r=e.createElement(`span`);return r.className=`${n} file-viewer-web-zoom-meter--readonly`,B(r,`button`),r.textContent=t,r.title=t,r.setAttribute(`aria-label`,t),r},Te=(e,t)=>{e.innerHTML=t===`dark`?`<svg viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.42 1.42M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.42-1.42M17.66 6.34l1.41-1.41"/></svg>`:`<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79Z"/></svg>`},H=(e,t={},n={})=>{var r,i;if(!me())throw Error(`Flyfish File Viewer can only be mounted in a browser DOM environment.`);let a=e.ownerDocument,s=ne(t.options?.styleIsolation),m=s===`auto`||s===`shadow`,h=e.shadowRoot,g=Se.get(e),_=!!(h&&g===h),ee=typeof e.attachShadow==`function`&&!e.shadowRoot,y=null,b=e;if(m&&_&&h)b=h;else if(m&&ee)try{b=e.attachShadow({mode:`open`}),Se.set(e,b)}catch{b=e}else if(h&&!_){if(y=a.createElement(`div`),y.dataset.fileViewerMountBoundary=`true`,h.appendChild(y),m&&typeof y.attachShadow==`function`)try{b=y.attachShadow({mode:`open`})}catch{b=y}else b=y}else if(!m&&_&&h){let t=a.createElement(`slot`);t.dataset.fileViewerLightDomSlot=`true`,h.replaceChildren(t),b=e}b.replaceChildren();let se=ae(b,Ce,{adoptedStyleSheet:oe(b)}),x=a.createElement(`div`);x.className=`file-viewer-web-shell`,B(x,`shell`);let S=a.createElement(`div`);S.className=`file-viewer-web-toolbar`,B(S,`toolbar`);let C=a.createElement(`div`);C.className=`file-viewer-web-content`,B(C,`content`),C.dataset.viewerScrollContainer=`true`,x.append(S,C),b.appendChild(x);let w=!1,T=t,E=((r=a.defaultView)?.matchMedia)?.call(r,`(prefers-color-scheme: dark)`)??null,pe=e=>E?ue(e,E.matches):ue(e),D=j(T)?M(T):null,O=null,k=/* @__PURE__ */ new Set,A={loading:!1,ready:!1,error:null,lastEvent:null,lifecycle:null,availability:null,search:null,zoom:null,location:null,viewState:null},N=()=>A.lifecycle?.type?A.lifecycle.type:D?p(_e(D)):``,P=()=>A.zoom||J.getZoomState()||xe,F=()=>l(A.availability||J.getCapabilities()||be,P()),I=()=>({...A,availability:F(),search:A.search?{...A.search,matches:[...A.search.matches]}:null,zoom:A.zoom?{...A.zoom}:null,location:A.location?{...A.location}:null,viewState:A.viewState?{...A.viewState,zoom:A.viewState.zoom?{...A.viewState.zoom}:void 0,scroll:A.viewState.scroll?{...A.viewState.scroll}:void 0,navigation:A.viewState.navigation?{...A.viewState.navigation}:void 0,extra:A.viewState.extra?{...A.viewState.extra}:void 0}:null}),L=()=>{x.dataset.viewerTheme=de(T.options?.theme),x.dataset.viewerDensity=fe(T.options?.ui?.density),te(x,T.options)},R=null,H=``,Ee=(e,t)=>e.search===!1||t.search===!1||!A.ready||A.loading||A.error||C.querySelector(`.file-viewer-missing-renderer`)?!1:!!J.getRenderer(N())?.capabilities?.search,U=()=>{if(w)return;L();let e=T.options||{},t=u(e),n=F(),r=Ee(t,e),i=o(t,n,r),s=ie(i),c=f(e,N()),l=A.loading||!!A.error,p=P(),m=ce(e);if(S.hidden=!s,S.dataset.toolbarPosition=c,S.replaceChildren(),!s)return;let h=()=>{if(!r)return;let e=A.search,t=e?.total??0,n=t>0?(e?.currentIndex??-1)+1:0,i=a.createElement(`form`);i.className=`file-viewer-web-toolbar-group file-viewer-web-search`,B(i,`toolbar-group`),i.setAttribute(`role`,`search`),i.setAttribute(`aria-label`,m(`toolbar.search`));let o=a.createElement(`input`);o.type=`search`,B(o,`input`),o.value=H,o.placeholder=m(`toolbar.searchPlaceholder`),o.title=m(`toolbar.searchPlaceholder`),o.setAttribute(`aria-label`,m(`toolbar.searchPlaceholder`)),o.disabled=l,o.addEventListener(`input`,()=>{H=o.value});let s=a.createElement(`button`);s.type=`submit`,B(s,`button`),s.textContent=m(`toolbar.search`),s.title=m(`toolbar.search`),s.setAttribute(`aria-label`,m(`toolbar.search`)),s.disabled=l;let c=V(a,`<`,`file-viewer-web-icon-button`,()=>R?.previousSearchResult());c.title=m(`toolbar.searchPrevious`),c.setAttribute(`aria-label`,m(`toolbar.searchPrevious`)),c.disabled=l||t<1;let u=V(a,`>`,`file-viewer-web-icon-button`,()=>R?.nextSearchResult());u.title=m(`toolbar.searchNext`),u.setAttribute(`aria-label`,m(`toolbar.searchNext`)),u.disabled=l||t<1;let d=V(a,`x`,`file-viewer-web-icon-button`,async()=>{H=``,await R?.clearDocumentSearch()});d.title=m(`toolbar.searchClear`),d.setAttribute(`aria-label`,m(`toolbar.searchClear`)),d.disabled=l||!H&&!e?.query;let f=a.createElement(`span`);f.className=`file-viewer-web-search-count`,B(f,`toolbar-status`),f.textContent=`${n}/${t}`,f.setAttribute(`aria-live`,`polite`),i.addEventListener(`submit`,e=>{e.preventDefault(),H=o.value;let t=H.trim();t?R?.searchDocument(t):R?.clearDocumentSearch()}),i.append(o,s,c,u,d,f),S.appendChild(i)},g=()=>{if(!i.zoom)return;let e=a.createElement(`div`);if(e.className=`file-viewer-web-toolbar-group`,B(e,`toolbar-group`),e.setAttribute(`aria-label`,m(`toolbar.zoomGroup`)),n.zoomOut){let t=V(a,`-`,`file-viewer-web-icon-button`,()=>R?.zoomOut());t.title=m(`toolbar.zoomOut`),t.setAttribute(`aria-label`,m(`toolbar.zoomOut`)),t.disabled=v({action:`canZoomOut`,availability:n,toolbarDisabled:l,zoomState:p}),e.appendChild(t)}if(n.zoomReset){let t=V(a,p.label,`file-viewer-web-zoom-meter`,()=>R?.resetZoom());t.title=m(`toolbar.zoomReset`),t.disabled=v({action:`canReset`,availability:n,toolbarDisabled:l,zoomState:p}),e.appendChild(t)}else e.appendChild(we(a,p.label,`file-viewer-web-zoom-meter`));if(n.zoomReset){let t=V(a,`1:1`,`file-viewer-web-icon-button`,()=>R?.resetZoom());t.title=m(`toolbar.zoomReset`),t.setAttribute(`aria-label`,m(`toolbar.zoomReset`)),t.disabled=v({action:`canReset`,availability:n,toolbarDisabled:l,zoomState:p}),e.appendChild(t)}if(n.zoomIn){let t=V(a,`+`,`file-viewer-web-icon-button`,()=>R?.zoomIn());t.title=m(`toolbar.zoomIn`),t.setAttribute(`aria-label`,m(`toolbar.zoomIn`)),t.disabled=v({action:`canZoomIn`,availability:n,toolbarDisabled:l,zoomState:p}),e.appendChild(t)}e.childElementCount&&S.appendChild(e)},_=(e,t,n,r)=>{if(!e)return;let i=V(a,t,``,r);i.title=n,i.disabled=l,S.appendChild(i)},ee=()=>{if(!i.theme)return;let t=pe(e.theme),n=m(t===`dark`?`toolbar.themeToLight`:`toolbar.themeToDark`),r=V(a,``,`file-viewer-web-icon-button file-viewer-web-theme-button`,async()=>{let e=J.getViewState(),t=le(T.options?.theme,E?.matches);T={...T,options:{...T.options||{},theme:t}},J.updateOptions({theme:t}),q({type:`theme-change`,payload:t}),D&&await X(D).catch(()=>null)&&e&&await J.applyViewState(e,{action:`restore`,source:`api`})});B(r,`theme-toggle`),Te(r,t),r.title=n,r.setAttribute(`aria-label`,n),r.setAttribute(`aria-pressed`,String(t===`dark`)),r.disabled=l,S.appendChild(r)};d(t).forEach(e=>{if(e===`search`)h();else if(e===`zoom`)g();else if(e===`download`)_(i.download,m(`toolbar.download`),m(`toolbar.downloadTitle`),()=>R?.downloadOriginalFile());else if(e===`print`){if(!i.print)return;let e=a.createElement(`div`);e.className=`file-viewer-web-print-menu`,B(e,`toolbar-group`);let t=V(a,m(`toolbar.print`),``,()=>{e.dataset.open=e.dataset.open===`true`?`false`:`true`});t.title=m(`toolbar.printTitle`),t.setAttribute(`aria-label`,m(`toolbar.printTitle`)),t.setAttribute(`aria-haspopup`,`menu`),t.disabled=l;let n=a.createElement(`div`);n.className=`file-viewer-web-print-menu-panel`,n.setAttribute(`role`,`menu`);let r=()=>{e.dataset.open=`false`},o=V(a,m(`toolbar.printDirect`),``,async()=>{r(),await R?.printRenderedHtml()});o.title=m(`toolbar.printTitle`),o.setAttribute(`role`,`menuitem`),o.disabled=l;let s=V(a,m(`toolbar.printMask`),``,async()=>{r(),await R?.printWithMask()});s.title=m(`toolbar.printMaskTitle`),s.setAttribute(`role`,`menuitem`),s.disabled=l,n.append(o,s),e.append(t,n),e.addEventListener(`focusout`,t=>{let n=t.relatedTarget;(!n||!e.contains(n))&&r()}),S.appendChild(e)}else e===`exportHtml`?_(i.exportHtml,m(`toolbar.exportHtml`),m(`toolbar.exportHtmlTitle`),()=>R?.exportRenderedHtml()):e===`theme`&&ee()})},W=null,G=()=>{de(T.options?.theme)===`system`&&(U(),W?.())},K=e=>{var t;let n=I();U(),(t=T.onStateChange)==null||t.call(T,n,e),k.forEach(t=>t(n,e))},q=e=>{var t;A.lastEvent=e,e.type===`load-start`?(A.loading=!0,A.ready=!1,A.error=null,A.lifecycle=e.payload,A.search=null,H=``):e.type===`load-complete`?(A.loading=!1,A.ready=!0,A.lifecycle=e.payload):e.type===`unload-start`?(A.loading=!0,A.ready=!1,A.lifecycle=e.payload):e.type===`unload-complete`?(A.loading=!1,A.ready=!1,A.lifecycle=e.payload):e.type===`operation-availability-change`?A.availability=e.payload:e.type===`search-change`?(A.search=e.payload,H=e.payload.query):e.type===`location-change`?A.location=e.payload:e.type===`zoom-change`?A.zoom=e.payload:e.type===`view-state-change`&&(A.viewState=e.payload.state),(t=T.onEvent)==null||t.call(T,e),K(e)},J=re(C,{registry:n.registry,options:T.options,onEvent:q});(i=E?.addEventListener)==null||i.call(E,`change`,G),U();let Y=()=>{O?.abort(),O=null},X=async e=>{var t;Y(),D=e,O=typeof AbortController<`u`?new AbortController:null;let r=O;try{A.loading=!0,A.error=null,K();let t=await ve(e,{fetchFile:n.fetchFile,signal:r?.signal});return w||r?.signal.aborted||O!==r?null:await J.load(t)}catch(i){if(ye(i)&&r?.signal.aborted)return null;throw A.loading=!1,A.ready=!1,A.error=i,K(),(t=n.onError)==null||t.call(n,i,e),i}finally{O===r&&(O=null)}};return W=async()=>{if(!D)return;let e=J.getViewState();await X(D).catch(()=>null)&&e&&await J.applyViewState(e,{action:`restore`,source:`api`})},D&&X(D).catch(()=>void 0),R={container:e,async load(e){w||(T=e,J.updateOptions(T.options||{}),U(),j(T)&&await X(M(T)))},async update(e={}){if(w)return;let t=e.options??T.options,n=he(T.options,t);T={...T,...e,options:t};let r=j(T)?M(T):null,i=ge(D,r),a=i&&n?J.getViewState():null;J.updateOptions(T.options||{}),U(),(!i||n)&&(r?await X(r)&&a&&await J.applyViewState(a,{action:`restore`,source:`api`}):(D=null,await J.load({filename:c})))},async reload(){w||D&&await X(D)},destroy(){var e;w||(w=!0,Y(),(e=E?.removeEventListener)==null||e.call(E,`change`,G),J.destroy(`component-unmount`),se.remove(),b.replaceChildren(),y?.remove())},getApi(){return J},downloadOriginalFile(){return z(J,e=>e.download(),void 0)},printRenderedHtml(e){return z(J,t=>t.print(e),void 0)},printWithMask(e){return z(J,t=>t.printWithMask(e),void 0)},exportRenderedHtml(){return z(J,e=>e.exportHtml({download:!0}).then(()=>void 0),void 0)},zoomIn(){return z(J,e=>e.zoomIn(),null)},zoomOut(){return z(J,e=>e.zoomOut(),null)},resetZoom(){return z(J,e=>e.resetZoom(),null)},fitToView(e){return z(J,t=>t.fitToView(e),null)},getViewState(){return J.getViewState()},applyViewState(e,t){return z(J,n=>n.applyViewState(e,t),null)},searchDocument(e){return z(J,t=>t.search(e),null)},clearDocumentSearch(){return z(J,e=>e.clearSearch(),null)},nextSearchResult(){return z(J,e=>e.nextSearchResult(),null)},previousSearchResult(){return z(J,e=>e.previousSearchResult(),null)},collectDocumentAnchors(){return z(J,e=>e.collectDocumentAnchors(),[])},scrollToAnchor(e){return z(J,t=>t.scrollToDocumentAnchor(e),!1)},scrollToLine(e){return z(J,t=>t.scrollToLine(e),!1)},getDocumentTextChunks(){return J.getDocumentTextChunks()},getOperationAvailability(){return F()},getZoomState(){return J.getZoomState()},getSearchState(){return J.getSearchState()},getState(){return I()},subscribe(e){return k.add(e),e(I()),()=>{k.delete(e)}}},R}})))()}function U(){return(U=e((()=>{x(),Ee()})))()}function W(){return(W=e((()=>{U()})))()}var G,K,q,J;function Y(){return(Y=e((()=>{W(),x(),G={width:`100%`,height:`100%`,minHeight:0},K={registry:se},q=(e,t)=>{var n;(n=e.current)==null||n.destroy(),e.current=null,t&&(t.innerHTML=``)},J=E((e,t)=>{let{url:n,file:r,buffer:i,name:a,filename:o,type:s,size:c,options:l,onEvent:u,onStateChange:d,style:f,...p}=e,m=k(null),h=k(null),g=k(null),_=O(()=>({url:n,file:r,buffer:i,name:a,filename:o,type:s,size:c,options:l,onEvent:u,onStateChange:d}),[n,r,i,a,o,s,c,l,u,d]);return pe(()=>{let e=m.current;if(e&&!h.current)return g.current=_,h.current=H(e,_,K),()=>{g.current=null,q(h,e)}},[]),pe(()=>{var e;g.current!==_&&(g.current=_,(e=h.current)==null||e.update(_))},[_]),D(t,()=>R(()=>h.current,()=>q(h,m.current)),[]),A(`div`,{...p,ref:m,style:{...G,...f}})}),J.displayName=`FileViewer`})))()}var X,De,Oe,ke;function Ae(){return(Ae=e((()=>{if(x(),t(),X=g.find(e=>e.id===`archive`),!X)throw Error(`@file-viewer/renderer-archive could not locate the shared archive format definition.`);De=X,Oe=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./archive-B_IKvysI.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),ke={id:`file-viewer-renderer-archive`,label:`Flyfish File Viewer archive renderer`,definitions:[De],handlers:[{rendererId:De.id,handler:Oe}]}})))()}var je,Me,Ne,Pe,Fe,Ie,Le;function Re(){return(Re=e((()=>{if(x(),t(),je=g.find(e=>e.id===`office-presentation-binary`),Me=g.find(e=>e.id===`office-presentation`),!je||!Me)throw Error(`@file-viewer/renderer-presentation could not locate the core presentation renderer definitions.`);Ne=je,Pe=Me,Fe=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./ppt-B0WY5Gks.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),Ie=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./pptx-DX5KDFZ7.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),Le={id:`file-viewer-renderer-presentation`,label:`Flyfish File Viewer presentation renderer`,definitions:[Ne,Pe],handlers:[{rendererId:Ne.id,handler:Fe},{rendererId:Pe.id,handler:Ie}]}})))()}var ze;function Be(){return(Be=e((()=>{ze=new URL(`../assets/worker-bundle-Dx5mKZOL.js`,import.meta.url).href})))()}var Ve;function He(){return(He=e((()=>{Ve=new URL(`../assets/libarchive-DxGirPmi.wasm`,import.meta.url).href})))()}var Ue,We,Ge,Ke,qe,Je,Ye,Xe;function Ze(){return(Ze=e((()=>{if(x(),t(),Ue=[`office-word-openxml`,`office-word-binary`,`open-document`],We=g.filter(e=>Ue.includes(e.id)),We.length!==Ue.length)throw Error(`@file-viewer/renderer-word could not locate the shared Word renderer definitions.`);Ge=We,Ke=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./wordDocx-Bt2mlB3C.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,i)),qe=e=>{if(e.byteLength<2)return`binary`;let t=new Uint8Array(e,0,2);if(t[0]===80&&t[1]===75)return`openxml`;let n=new Uint8Array(e,0,Math.min(e.byteLength,8192)),r=t[0]===255&&t[1]===254||t[0]===60&&t[1]===0,i=t[0]===254&&t[1]===255||t[0]===0&&t[1]===60,a=new TextDecoder(r?`utf-16le`:i?`utf-16be`:`utf-8`).decode(n);return/<(?:[\w.-]+:)?wordDocument(?:\s|>)/.test(a)&&a.includes(`http://schemas.microsoft.com/office/word/2003/wordml`)?`wordml`:`binary`},Je=(e,t,r,i)=>{let a=qe(e);return a===`wordml`?Promise.all([n(()=>import(`./wordMl-Y_ghyTZ8.js`),[],import.meta.url),n(()=>import(`./wordDocx-Bt2mlB3C.js`),[],import.meta.url)]).then(async([{convertWordMlToDocx:n},{default:r}])=>r(await n(e,t),t,i)):a===`openxml`?n(async()=>{let{default:e}=await import(`./wordDocx-Bt2mlB3C.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,i)):n(async()=>{let{default:e}=await import(`./wordDoc-BZY3ZnxN.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,i))},Ye=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./openDocument-DGzqlyJg.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),Xe={id:`file-viewer-renderer-word`,label:`Flyfish File Viewer Word renderer`,definitions:Ge,handlers:[{rendererId:`office-word-openxml`,handler:Ke},{rendererId:`office-word-binary`,handler:Je},{rendererId:`open-document`,handler:Ye}]}})))()}var Qe,$e,et,tt,nt,rt;function it(){return(it=e((()=>{if(x(),t(),Qe=g.find(e=>e.id===`spreadsheet-openxml`),$e=g.find(e=>e.id===`spreadsheet-dbf`),!Qe||!$e)throw Error(`@file-viewer/renderer-spreadsheet could not locate the shared Spreadsheet format definition.`);et=Qe,tt=$e,nt=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./spreadsheet-BzbBEhmY.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),rt={id:`file-viewer-renderer-spreadsheet`,label:`Flyfish File Viewer Spreadsheet renderer`,definitions:[et,tt],handlers:[et,tt].map(e=>({rendererId:e.id,handler:nt}))}})))()}var at,ot,st,ct;function lt(){return(lt=e((()=>{if(x(),t(),at=g.find(e=>e.id===`ofd`),!at)throw Error(`@file-viewer/renderer-ofd could not locate the core OFD renderer definition.`);ot=at,st=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./ofd-C7DKqJ6Z.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,i)),ct={id:`file-viewer-renderer-ofd`,label:`Flyfish File Viewer OFD renderer`,definitions:[ot],handlers:[{rendererId:ot.id,handler:st}]}})))()}var ut,dt,ft,pt;function mt(){return(mt=e((()=>{if(x(),t(),ut=g.find(e=>e.id===`email`),!ut)throw Error(`@file-viewer/renderer-email could not locate the shared email format definition.`);dt=ut,ft=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./email-ByshRsFv.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),pt={id:`file-viewer-renderer-email`,label:`Flyfish File Viewer email renderer`,definitions:[dt],handlers:[{rendererId:dt.id,handler:ft}]}})))()}var ht,gt,_t,vt;function yt(){return(yt=e((()=>{if(x(),t(),ht=g.find(e=>e.id===`mindmap`),!ht)throw Error(`@file-viewer/renderer-mindmap could not locate the core mind map renderer definition.`);gt=ht,_t=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./xmind-CF9YwkOD.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),vt={id:`file-viewer-renderer-mindmap`,label:`Flyfish File Viewer mind map renderer`,definitions:[gt],handlers:[{rendererId:gt.id,handler:_t}]}})))()}var bt,Z,xt,St;function Ct(){return(Ct=e((()=>{if(x(),t(),bt=g.find(e=>e.id===`drawing`),!bt)throw Error(`@file-viewer/renderer-drawing could not locate the core drawing renderer definition.`);Z=bt,xt=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./drawing-D2Qrun-P.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),St={id:`file-viewer-renderer-drawing`,label:`Flyfish File Viewer drawing renderer`,definitions:[Z],handlers:[{rendererId:Z.id,handler:xt}]}})))()}var wt,Tt,Et,Dt;function Ot(){return(Ot=e((()=>{if(x(),t(),wt=g.find(e=>e.id===`data-asset`),!wt)throw Error(`@file-viewer/renderer-data could not locate the shared data asset renderer definition.`);Tt=wt,Et=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./data-B05HzECj.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),Dt={id:`file-viewer-renderer-data`,label:`Flyfish File Viewer data asset renderer`,definitions:[Tt],handlers:[{rendererId:Tt.id,handler:Et}]}})))()}var kt,At,jt,Mt;function Nt(){return(Nt=e((()=>{if(x(),t(),kt=g.find(e=>e.id===`geo`),!kt)throw Error(`@file-viewer/renderer-geo could not locate the core geospatial renderer definition.`);At=kt,jt=(e,t,r,i)=>n(async()=>{let{default:e}=await import(`./geo-DR0fL7r2.js`);return{default:e}},[],import.meta.url).then(({default:n})=>n(e,t,r,i)),Mt={id:`file-viewer-renderer-geo`,label:`Flyfish File Viewer geospatial renderer`,definitions:[At],handlers:[{rendererId:At.id,handler:jt}]}})))()}var Q,Pt,$;function Ft(){return(Ft=e((()=>{x(),_(),Ze(),it(),lt(),mt(),yt(),Ct(),Ot(),Nt(),Q=typeof document>`u`?`/`:ee(document),Pt=typeof document>`u`?`/file-viewer/`:new URL(`file-viewer/`,Q.endsWith(`/`)?Q:Q+`/`).href,y(Pt),$=[Xe,rt,ct,pt,vt,St,Dt,Mt],a($,{id:`@file-viewer/vite-plugin:configured`})})))()}function It({file:e,style:t}){let{isDark:n}=i(),r=T(C(e.type,e.name)),a=n&&!r,o=O(()=>({theme:a?`dark`:`light`,locale:`zh-CN`,styleIsolation:`shadow`,rendererMode:`replace`,autoRenderers:!1,renderers:Lt,ui:{density:`compact`},toolbar:{position:`top-center`,download:!1,print:!0,exportHtml:!1,zoom:!0,search:!0,theme:!1},docx:{worker:!0,visualPagination:!0},spreadsheet:{worker:`auto`,textEncoding:`auto`,resizableColumns:!0,resizableRows:!0},archive:{workerUrl:ze,wasmUrl:Ve},drawing:{preferOfficial:!1},geo:{basemap:`offline`}}),[a]);return/* @__PURE__ */ A(`div`,{style:{width:`100%`,height:`100%`,minWidth:0,minHeight:0,...t},children:/* @__PURE__ */ A(J,{file:e,options:o,style:{width:`100%`,height:`100%`}})})}var Lt;function Rt(){return(Rt=e((()=>{Y(),Ae(),Re(),Be(),He(),Ft(),r(),w(),Lt=[...Array.isArray($)?$:[$],ke,Le]})))()}Rt();export{It as default};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{t}from"./controls-C5dPckUT.js";import{t as n}from"./typography-DKK_iHcj.js";import{i as r}from"./feedback-BnjMKZpz.js";import{n as i,t as a}from"./tabs-BobA_IcO.js";import{_ as o,a as s,d as c,g as l,h as u,l as d,n as f,o as p,r as m,t as ee}from"./ConfigurableTable-DzmZDd8F.js";import{n as te,o as ne,r as re,t as ie}from"./search-filters-CRIhZ0gL.js";import{n as h,t as g}from"./createLucideIcon-BtwfYE6A.js";import{c as ae,l as oe,s as _,t as se}from"./toolbar-controls-CThS0xuP.js";import{n as v,t as ce}from"./circle-check-RKAno__V.js";import{n as le,t as ue}from"./circle-x-BB5x-D-8.js";import{n as y,t as de}from"./layout-grid-Bp9bwiQZ.js";import{n as b,t as fe}from"./list-DCcWnjUg.js";import{n as x,t as pe}from"./x-Ak9hw1R9.js";import{n as me}from"./list-0CbyOlT9.js";import{C as S,S as he,_ as ge,a as C,g as w,m as _e}from"./ui-BFsHoY7a.js";import{n as T,t as ve}from"./ResponsiveTableActions-y54aSdhs.js";import{r as ye,t as be}from"./deleteAction-CCocr5uV.js";import{n as xe}from"./listTableProps-DDynsnLF.js";import{n as Se,r as Ce}from"./clipboard-ERcMSMRH.js";import{a as we,i as Te,n as Ee,r as De,t as Oe}from"./file-utils-DyvnVEoH.js";import{n as E,t as ke}from"./AppModal-DJzQA6FR.js";import{c as Ae,d as D,f as je,i as Me,l as O,n as k,o as Ne,p as Pe,r as Fe,s as Ie,t as Le,u as Re}from"./FileNameCell-DPyi64Rv.js";import{Ar as A,At as ze,C as j,Ct as M,D as N,Dt as P,E as Be,Et as Ve,I as He,It as F,L as I,Lt as L,Mt as Ue,Nt as We,Ot as Ge,S as R,St as z,T as Ke,Tt as qe,_ as Je,_t as Ye,b as Xe,bt as Ze,c as Qe,fi as $e,gt as et,ht as tt,i as nt,ir as rt,jr as B,jt as it,kt as at,m as V,n as ot,ni as st,o as ct,pi as lt,r as ut,ri as dt,rr as ft,t as H,vt as pt,w as mt,wt as ht,x as gt,xt as _t,yt as vt}from"./StatCard-Czjfs0fa.js";import{Hn as yt}from"./chart-data-DImT_Mzn.js";import{n as bt,t as xt}from"./line-BV7qVRkM.js";import{useEffect as St,useMemo as U,useRef as Ct,useState as W}from"react";import{usePreferences as wt}from"@fudanda/react-core/hooks/usePreferences";import{Fragment as Tt,jsx as G,jsxs as K}from"react/jsx-runtime";import{formatBytes as q}from"@fudanda/shared/core";import{goTransport as Et}from"@fudanda/react-core/lib/go-transport";import{usePermission as Dt}from"@fudanda/react-core/hooks/usePermission";import{useFilterQuery as Ot}from"@fudanda/react-core/hooks/useFilterQuery";import{useListSearch as kt}from"@fudanda/react-core/hooks/useListSearch";import{formatDateTimeRangeValuesForApi as At}from"@fudanda/react-core/utils/date";import{usePagination as jt}from"@fudanda/react-core/hooks/usePagination";import{useQueryClient as Mt}from"@tanstack/react-query";import{downloadBlob as Nt}from"@fudanda/react-core/utils/download";import{useUrlTabState as Pt}from"@fudanda/react-core/hooks/useUrlTabState";import{FILE_STORAGE_PROVIDER_LABELS as Ft,FILE_STORAGE_PROVIDER_OPTIONS as It,FILE_TYPE_FILTER_OPTIONS as Lt}from"@fudanda/shared/platform";import{fileKeys as Rt,invalidateAfterFilesAdded as zt,useChunkUploadThreshold as Bt,useDeleteFiles as Vt,useFileDetail as Ht,useFileList as Ut,useFileStats as Wt,useUploadFile as Gt}from"@fudanda/react-core/hooks/queries/files";import{useDefaultFileStorageConfig as Kt}from"@fudanda/react-core/hooks/queries/file-storage-configs";import{filesBatchDownload as qt,filesList as Jt}from"@fudanda/shared/api/files";import{CHUNKED_UPLOAD_CANCELLED as Yt,chunkedUpload as Xt}from"@fudanda/react-core/utils/chunked-upload";var Zt,Qt;function $t(){return($t=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
|
+
h(),Zt={name:`file-image`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`circle`,{cx:`10`,cy:`12`,r:`2`,key:`737tya`}],[`path`,{d:`m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22`,key:`wt3hpn`}]]},Zt.node,Qt=g(Zt)})))()}var en,tn;function nn(){return(nn=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
|
+
h(),en={name:`file-text`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]},en.node,tn=g(en)})))()}var rn,an;function on(){return(on=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
|
+
h(),rn={name:`file`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]},rn.node,an=g(rn)})))()}var sn,cn;function ln(){return(ln=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
|
+
h(),sn={name:`folder-down`,size:24,node:[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}],[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`m15 13-3 3-3-3`,key:`6j2sf0`}]]},sn.node,cn=g(sn)})))()}var un,dn;function fn(){return(fn=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
|
+
h(),un={name:`music`,size:24,node:[[`path`,{d:`M9 18V5l12-2v13`,key:`1jmyc2`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}],[`circle`,{cx:`18`,cy:`16`,r:`3`,key:`1hluhg`}]]},un.node,dn=g(un)})))()}var pn,mn;function hn(){return(hn=e((()=>{
|
|
37
|
+
/**
|
|
38
|
+
* @license lucide-react v1.53.0 - ISC
|
|
39
|
+
*
|
|
40
|
+
* This source code is licensed under the ISC license.
|
|
41
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
42
|
+
*/
|
|
43
|
+
h(),pn={name:`video`,size:24,node:[[`path`,{d:`m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5`,key:`ftymec`}],[`rect`,{x:`2`,y:`6`,width:`14`,height:`12`,rx:`2`,key:`158x01`}]]},pn.node,mn=g(pn)})))()}var gn;function _n(){return(_n=e((()=>{We(),A(),gn=class extends Ue{_getDefaultSeriesSpec(e){let t=super._getDefaultSeriesSpec(e,[`point`,`line`,`activePoint`,`sampling`,`samplingFactor`,`pointDis`,`pointDisMul`,`markOverlap`,`lineLabel`]);return t.seriesMark=e.seriesMark??`line`,t}transformSpec(e){super.transformSpec(e),B(e)}}})))()}var J,vn;function yn(){return(yn=e((()=>{lt(),xt(),dt(),_n(),L(),it(),Ge(),Ve(),qe(),z(),vt(),Ye(),tt(),J=class extends F{constructor(){super(...arguments),this.transformerConstructor=gn,this.type=`line`,this.seriesType=$e.line}_setModelOption(){this._modelOption.getDimensionInfo=M,this._modelOption.getDimensionInfoByValue=ht,this._modelOption.getRectByDimensionData=_t}},J.type=`line`,J.seriesType=$e.line,J.transformerConstructor=gn,yt(J,ze),vn=()=>{Ze(),pt(),et(),P(),at(),bt(),st.registerChart(J.type,J)}})))()}var bn;function xn(){return(xn=e((()=>{rt(),yn(),He(),N(),mt(),bn=Be(`LineChart`,{type:`line`,vchartConstructor:ft},[vn,I,...Ke])})))()}function Sn({value:e,max:t,minPercent:n=0,color:r,fillOpacity:i,track:a,height:o=8,radius:s,title:c,className:l,style:u}){let d=Number.isFinite(e)&&Number.isFinite(t)&&t>0?e/t:0,f=Math.min(100,Math.max(e>0?n:0,d*100)),p=[`zx-data-bar`,l].filter(Boolean).join(` `),m={"--zx-bar-height":`${o}px`,"--zx-bar-scale":f/100,...r?{"--zx-bar-stroke":r}:{},...i===void 0?{}:{"--zx-bar-opacity":i},...a?{"--zx-bar-track":a}:{},...s===void 0?{}:{"--zx-bar-radius":typeof s==`number`?`${s}px`:s},...u};return/* @__PURE__ */ G(`div`,{className:p,style:m,title:c,"aria-hidden":`true`,children:/* @__PURE__ */ G(`span`,{className:`zx-data-bar__fill`})})}function Cn(){return(Cn=e((()=>{})))()}function wn(){let e=gt(),t=Wt(),n=t.data??null,r=n?.summary,i=r?.totalFiles??0,a=U(()=>(n?.providerStats??[]).map((e,t)=>({...e,providerLabel:Tn[e.provider]??e.provider,fill:En[t%En.length]})),[n]),o=U(()=>(n?.uploaderStats??[]).map(e=>({...e,sizeLabel:q(e.size)})),[n]),s=U(()=>ct({data:a,xField:`providerLabel`,series:[{field:`count`,name:`文件数`,color:`#3b82f6`}],palette:e,horizontal:!0,categoryAxisWidth:80,colorByDatum:e=>String(e?.fill),tooltip:{value:e=>`${e} 个文件`}}),[e,a]),c=U(()=>Qe({data:n?.monthlyStats??[],xField:`month`,series:[{field:`count`,name:`新增文件`,color:`#3b82f6`}],palette:e,point:!0,tooltip:{value:e=>`${e} 个`}}),[e,n]),l=U(()=>ct({data:n?.sizeRangeStats??[],xField:`range`,series:[{field:`count`,name:`文件数`,color:`#10b981`}],palette:e,tooltip:{value:e=>`${e} 个`}}),[e,n]),u=U(()=>ct({data:o,xField:`username`,series:[{field:`count`,name:`文件数`,color:`#8b5cf6`}],palette:e,horizontal:!0,categoryAxisWidth:80,tooltip:{value:e=>`${e} 个文件`}}),[e,o]);return/* @__PURE__ */ G(ge,{spinning:t.isFetching,children:/* @__PURE__ */ K(`div`,{style:{display:`flex`,flexDirection:`column`,gap:16},children:[/* @__PURE__ */ K(ot,{children:[/* @__PURE__ */ G(H,{title:`文件总数`,value:i>0?i.toLocaleString():m}),/* @__PURE__ */ G(H,{title:`占用空间`,value:r?q(r.totalSize):m}),/* @__PURE__ */ G(H,{title:`今日新增`,value:r?.todayCount==null?m:r.todayCount.toLocaleString(),sub:`今日共上传`}),/* @__PURE__ */ G(H,{title:`本月新增`,value:r?.thisMonthCount==null?m:r.thisMonthCount.toLocaleString(),sub:`本月共上传`})]}),/* @__PURE__ */ G(`div`,{style:{display:`grid`,gridTemplateColumns:`repeat(auto-fit, minmax(min(160px, 100%), 1fr))`,gap:12},children:Dn.map(({type:e,label:t,Icon:r,color:a,bgColor:o})=>{let s=n?.typeStats.find(t=>t.type===e),c=s?.count??0,l=s?.size??0,u=i>0?c/i*100:0;return/* @__PURE__ */ K(`div`,{className:`zx-panel`,style:{padding:16,display:`flex`,flexDirection:`column`,gap:10},children:[/* @__PURE__ */ K(`div`,{style:{display:`flex`,alignItems:`flex-start`,gap:10},children:[/* @__PURE__ */ G(`div`,{style:{width:38,height:38,borderRadius:`var(--arc-antd-border-radius-large)`,background:o,display:`flex`,alignItems:`center`,justifyContent:`center`,flexShrink:0},children:/* @__PURE__ */ G(r,{size:19,color:a})}),/* @__PURE__ */ K(`div`,{style:{flex:1,minWidth:0},children:[/* @__PURE__ */ K(`div`,{style:{display:`flex`,alignItems:`baseline`,justifyContent:`space-between`,gap:4},children:[/* @__PURE__ */ G(`span`,{style:{fontSize:13,fontWeight:600,color:`var(--arc-antd-color-text-0)`},children:t}),/* @__PURE__ */ G(`span`,{style:{fontSize:18,fontWeight:700,color:`var(--arc-antd-color-text-0)`,flexShrink:0},children:c.toLocaleString()})]}),/* @__PURE__ */ G(`div`,{style:{fontSize:11,color:`var(--arc-antd-color-text-2)`,marginTop:3},children:q(l)})]})]}),/* @__PURE__ */ K(`div`,{children:[/* @__PURE__ */ K(`div`,{style:{display:`flex`,justifyContent:`space-between`,marginBottom:5},children:[/* @__PURE__ */ G(`span`,{style:{fontSize:11,color:`var(--arc-antd-color-text-2)`},children:`占比`}),/* @__PURE__ */ K(`span`,{style:{fontSize:11,fontWeight:600,color:a},children:[u.toFixed(1),`%`]})]}),/* @__PURE__ */ G(Sn,{value:u,max:100,color:a,height:5})]})]},e)})}),/* @__PURE__ */ K(`div`,{className:`chart-grid`,children:[/* @__PURE__ */ K(`div`,{className:`zx-panel`,children:[/* @__PURE__ */ G(`div`,{style:Y,children:`存储类型分布`}),/* @__PURE__ */ G(R,{...s,options:V,height:220})]}),/* @__PURE__ */ K(`div`,{className:`zx-panel`,children:[/* @__PURE__ */ G(`div`,{style:Y,children:`月度上传趋势(近 12 个月)`}),/* @__PURE__ */ G(bn,{...c,options:V,height:220})]})]}),/* @__PURE__ */ K(`div`,{className:`chart-grid`,children:[/* @__PURE__ */ K(`div`,{className:`zx-panel`,children:[/* @__PURE__ */ G(`div`,{style:Y,children:`文件大小分布`}),/* @__PURE__ */ G(R,{...l,options:V,height:220})]}),n&&n.uploaderStats.length>0&&/* @__PURE__ */ K(`div`,{className:`zx-panel`,children:[/* @__PURE__ */ G(`div`,{style:Y,children:`Top 上传人(按文件数)`}),/* @__PURE__ */ G(R,{...u,options:V,height:220})]})]})]})})}var Tn,En,Dn,Y;function On(){return(On=e((()=>{S(),j(),xn(),Je(),nt(),Xe(),ut(),$t(),hn(),fn(),nn(),on(),Cn(),p(),Tn=Ft,En=[`#3b82f6`,`#10b981`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#06b6d4`,`#f97316`,`#84cc16`,`#ec4899`],Dn=[{type:`image`,label:`图片`,Icon:Qt,color:`#3b82f6`,bgColor:`rgba(59,130,246,0.12)`},{type:`video`,label:`视频`,Icon:mn,color:`#8b5cf6`,bgColor:`rgba(139,92,246,0.12)`},{type:`audio`,label:`音频`,Icon:dn,color:`#f59e0b`,bgColor:`rgba(245,158,11,0.12)`},{type:`document`,label:`文档`,Icon:tn,color:`#10b981`,bgColor:`rgba(16,185,129,0.12)`},{type:`other`,label:`其他`,Icon:an,color:`#6b7280`,bgColor:`rgba(107,114,128,0.12)`}],Y={fontSize:14,fontWeight:600,color:`var(--arc-antd-color-text-0)`,marginBottom:12}})))()}function kn(e){if(e===`success`)return`var(--arc-antd-color-success)`;if(e===`error`)return`var(--arc-antd-color-danger)`;if(e===`cancelled`)return`var(--arc-antd-color-disabled-text)`}function An(e,t,n,r,i,a){let o=e=>i(n=>n.map(n=>n.uid===t?e(n):n)),s=()=>o(e=>({...e,progress:100,status:`success`})),c=e=>o(t=>n.aborted?{...t,status:`cancelled`}:{...t,status:`error`,errorMsg:e instanceof Error?e.message:`上传失败`});o(e=>({...e,status:`uploading`})),e.size>r?Xt(e,{signal:n,onProgress:e=>o(t=>({...t,progress:e}))}).then(s).catch(c):a([e],e=>o(t=>({...t,progress:e})),n).then(s).catch(c)}async function jn(e){try{let t,n=e.directUrl??(/^https?:\/\//.test(e.url)?e.url:null);if(n)t=n;else{let n=await Ee(e.url);t=URL.createObjectURL(n)}return await new Promise(e=>{let r=new Image,i=()=>{n||URL.revokeObjectURL(t)};r.onload=()=>{i(),e({width:r.naturalWidth,height:r.naturalHeight})},r.onerror=()=>{i(),e(null)},r.src=t})}catch{return null}}function Mn(){let[e,o]=Pt([`list`,`stats`],`list`),f=Mt(),{hasPermission:p}=Dt(),{preferences:m,setPreferences:ne,canEditPreference:h}=wt(),g={keyword:``,provider:void 0,fileType:void 0,timeRange:null},oe=Ct(null),_=Ct(!1),[v,le]=W([]),[y,b]=W(!1),x=Ct(/* @__PURE__ */ new Map),{bind:S,bindKeyword:ge,submittedParams:T,handleSearch:ye,handleReset:Ce}=kt({defaults:g,listKey:Rt.lists}),{page:we,pageSize:Ee,setPage:E,setPageSize:D,buildPagination:Me}=jt({pageSize:(m.filesViewMode??`list`)===`grid`?$:Q,pageSizeOpts:Pn}),[O,k]=W([]),[Ne,Pe]=W(!1),[A,ze]=W(null),[j,M]=W(null),N=m.filesViewMode??`list`,P=Kt().data?.config??null,[Be,Ve]=At(T.timeRange),He=Ot({keyword:T.keyword,provider:Jt.query.shape.provider.safeParse(T.provider).data,fileType:Jt.query.shape.fileType.safeParse(T.fileType).data,startDate:Be,endDate:Ve}),F=Ut({page:we,pageSize:Ee,...He}),I=F.data??null,L=Ie(()=>I?.list??[]),Ue=Gt(),We=Bt(),Ge=Vt(),R=Vt(),z=Ht(A?.id,!!A),Ke=z.data??A,qe=z.isFetching,Je=e=>{if(!h(`filesViewMode`))return;_.current=!0,ne({filesViewMode:e});let t=e===`grid`?$:Q;E(1),D(t),f.invalidateQueries({queryKey:Rt.lists})},Ye=(e,t)=>{k(n=>t?[...n,e]:n.filter(t=>t!==e))},Xe=e=>{let t=(I?.list??[]).map(e=>e.id);k(e?e=>{let n=[...e];for(let e of t)n.includes(e)||n.push(e);return n}:e=>e.filter(e=>!t.includes(e)))},Ze=e=>{ze(e),M(null)};St(()=>{if(_.current){_.current=!1;return}let e=N===`grid`?$:Q;E(1),D(e),f.invalidateQueries({queryKey:Rt.lists})},[N,E,D,f]),St(()=>{let e=z.data;e?.mimeType?.startsWith(`image/`)&&jn(e).then(e=>{e&&M(e)})},[z.data]),St(()=>{if(y&&v.length>0&&v.every(Z)){let e=v.filter(e=>e.status===`success`).length,t=setTimeout(()=>{b(!1),e>0&&(r.success(e>1?`成功上传 ${e} 个文件`:`文件上传成功`),E(1),zt(f))},1e3);return()=>clearTimeout(t)}},[v,y,f,E]);let Qe=()=>{oe.current?.click()},$e=e=>{let t=Array.from(e.target.files??[]);if(e.target.value=``,t.length===0)return;let n=t.map((e,t)=>({uid:`${e.name}-${Date.now()}-${t}`,name:e.name,size:e.size,progress:0,status:`pending`}));x.current.clear(),le(n),b(!0);for(let[e,r]of t.entries()){let t=new AbortController;x.current.set(n[e].uid,t),An(r,n[e].uid,t.signal,We,le,(e,t,n)=>Ue.mutateAsync({files:e,onProgress:t,signal:n}))}},et=e=>{x.current.get(e)?.abort(Yt)},tt=async e=>{await Ge.mutateAsync([e.id]),r.success(`文件已删除`)},nt=()=>{be({title:`确认删除选中的 ${O.length} 个文件?`,content:`删除后将同步尝试删除实际存储对象,无法恢复。`,run:()=>R.mutateAsync(O),successMessage:`批量删除成功`,onDeleted:()=>k([])})},rt=async()=>{if(O.length!==0){Pe(!0);try{let e=await(await Et.download(qt,{body:{ids:O}})).blob();if(!e)return;Nt(e,`files_${Date.now()}.zip`),r.success(`已打包 ${O.length} 个文件`)}catch{r.error(`批量下载失败`)}finally{Pe(!1)}}},B=async e=>{await Se(e.directUrl??De(e.url),{success:`链接已复制`,error:`复制失败,请手动复制`})},it=[{title:`文件名`,dataIndex:`originalName`,minWidth:220,ellipsis:{showTitle:!1},render:(e,t)=>{let n=Oe(t.mimeType,e);return/* @__PURE__ */ G(Le,{name:e,mimeType:t.mimeType,onClick:n?()=>void L.handlePreview(t):void 0})}},{title:`来源服务`,dataIndex:`storageName`,width:120,ellipsis:!0,render:(e,t)=>d(t.storageName)},{title:`MIME 类型`,dataIndex:`mimeType`,width:160,ellipsis:!0,render:d},{title:`大小`,dataIndex:`size`,width:100,align:`right`,render:e=>q(e)},s(`上传时间`,`createdAt`),{title:`上传人`,dataIndex:`uploaderName`,width:100,ellipsis:!0,render:d},ve({width:180,desktopInlineKeys:[`preview`,`download`],actions:e=>je(e,{preview:L,onDetail:e=>{Ze(e)},onCopyUrl:B,onDelete:tt,canDelete:p(`system:file:delete`)})})],at=l({keyword:/* @__PURE__ */ G(re,{placeholder:`搜索文件名 / 对象键 / 文件服务`,...ge(`keyword`),style:{width:`min(280px, 100%)`}}),filters:/* @__PURE__ */ K(Tt,{children:[/* @__PURE__ */ G(te,{placeholder:`全部存储类型`,items:It.filter(e=>[`local`,`s3`].includes(e.value)),...S(`provider`),width:140}),/* @__PURE__ */ G(te,{placeholder:`全部文件类型`,items:Lt,...S(`fileType`),width:140}),/* @__PURE__ */ G(ie,{searchLabel:`上传时间`,type:`dateTimeRange`,...S(`timeRange`)})]}),onSearch:ye,onReset:Ce,create:p(`system:file:upload`)&&/* @__PURE__ */ G(C,{type:`primary`,icon:/* @__PURE__ */ G(ae,{size:14}),loading:y&&v.some(e=>e.status===`uploading`||e.status===`pending`),disabled:!P,onClick:Qe,children:`上传文件`}),actions:O.length>0?/* @__PURE__ */ K(Tt,{children:[/* @__PURE__ */ K(C,{type:`tertiary`,theme:`light`,icon:/* @__PURE__ */ G(cn,{size:14}),loading:Ne,onClick:rt,children:[`批量下载 (`,O.length,`)`]}),p(`system:file:delete`)&&/* @__PURE__ */ G(se,{count:O.length,loading:R.isPending,onClick:nt}),/* @__PURE__ */ G(C,{type:`tertiary`,theme:`light`,icon:/* @__PURE__ */ G(pe,{size:12}),onClick:()=>k([]),children:`取消选择`})]}):null,filterTitle:`文件筛选`,actionTitle:`文件操作`});return/* @__PURE__ */ G(`div`,{className:`page-container page-tabs-page`,children:/* @__PURE__ */ K(i,{collapsible:`auto`,type:`line`,activeKey:e,onChange:e=>o(e),children:[/* @__PURE__ */ K(a,{tab:`文件列表`,itemKey:`list`,children:[N===`grid`&&/* @__PURE__ */ G(u,{config:at}),/* @__PURE__ */ G(`input`,{ref:oe,type:`file`,hidden:!0,multiple:!0,onChange:$e}),/* @__PURE__ */ K(`div`,{className:`files-default-tip`,style:{padding:`8px 0`},children:[/* @__PURE__ */ K(w,{children:[/* @__PURE__ */ G(X,{strong:!0,children:`默认文件服务:`}),P?/* @__PURE__ */ G(X,{children:P.name}):/* @__PURE__ */ G(X,{type:`danger`,children:`未配置默认文件服务,请先前往"文件配置"设置。`})]}),h(`filesViewMode`)&&/* @__PURE__ */ K(w,{spacing:0,children:[/* @__PURE__ */ G(C,{size:`small`,theme:N===`list`?`solid`:`light`,type:N===`list`?`primary`:`tertiary`,icon:/* @__PURE__ */ G(fe,{size:14}),style:{borderRadius:`4px 0 0 4px`},onClick:()=>Je(`list`)}),/* @__PURE__ */ G(C,{size:`small`,theme:N===`grid`?`solid`:`light`,type:N===`grid`?`primary`:`tertiary`,icon:/* @__PURE__ */ G(de,{size:14}),style:{borderRadius:`0 4px 4px 0`},onClick:()=>Je(`grid`)})]})]}),/* @__PURE__ */ G(ke,{title:`上传进度`,visible:y,onCancel:()=>b(!1),footer:v.every(Z)?/* @__PURE__ */ G(C,{type:`primary`,onClick:()=>b(!1),children:`关闭`}):null,width:480,keepDOM:!1,children:/* @__PURE__ */ G(`div`,{style:{display:`flex`,flexDirection:`column`,gap:14,padding:`4px 0`},children:v.map(e=>/* @__PURE__ */ K(`div`,{children:[/* @__PURE__ */ K(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,marginBottom:4},children:[/* @__PURE__ */ K(w,{spacing:6,style:{overflow:`hidden`,flex:1,minWidth:0},children:[/* @__PURE__ */ G(`span`,{style:{display:`flex`,alignItems:`center`,flexShrink:0},children:Te(void 0,14,e.name)}),/* @__PURE__ */ G(n.Text,{ellipsis:{showTooltip:!0},style:{fontSize:13,flex:1,minWidth:0},children:e.name})]}),/* @__PURE__ */ K(w,{spacing:6,style:{flexShrink:0,marginLeft:8},children:[/* @__PURE__ */ G(n.Text,{type:`tertiary`,size:`small`,children:q(e.size)}),e.status===`uploading`&&/* @__PURE__ */ K(n.Text,{size:`small`,children:[e.progress,`%`]}),e.status===`success`&&/* @__PURE__ */ G(ce,{size:14,color:`var(--arc-antd-color-success)`}),e.status===`error`&&/* @__PURE__ */ G(he,{content:e.errorMsg,children:/* @__PURE__ */ G(ue,{size:14,color:`var(--arc-antd-color-danger)`})}),e.status===`cancelled`&&/* @__PURE__ */ G(n.Text,{type:`tertiary`,size:`small`,children:`已取消`}),!Z(e)&&/* @__PURE__ */ G(he,{content:`取消上传`,children:/* @__PURE__ */ G(C,{theme:`borderless`,type:`tertiary`,size:`small`,icon:/* @__PURE__ */ G(pe,{size:14}),"aria-label":`取消上传 ${e.name}`,onClick:()=>et(e.uid)})})]})]}),/* @__PURE__ */ G(_e,{percent:e.progress,type:`line`,size:`small`,stroke:kn(e.status),showInfo:!1,style:{margin:0}})]},e.uid))})}),/* @__PURE__ */ G(Re,{preview:L}),/* @__PURE__ */ G(Ae,{visible:!!A,file:Ke,loading:qe,resolveUrl:e=>e.directUrl??De(e.url),onCopyUrl:e=>void B(e),onClose:()=>{ze(null),M(null)},extraRows:j?[{key:`分辨率`,value:`${j.width} × ${j.height} px`}]:[]}),N===`list`?/* @__PURE__ */ G(ee,{searchConfig:at,columns:it,empty:`暂无文件记录`,...xe(F,{pagination:Me,rowSelection:p(`system:file:delete`)?{selectedRowKeys:O,onChange:e=>k((e??[]).map(String))}:void 0})}):/* @__PURE__ */ K(Tt,{children:[p(`system:file:delete`)&&(I?.list??[]).length>0&&(()=>{let e=(I?.list??[]).map(e=>e.id),n=e.filter(e=>O.includes(e)),r=n.length===e.length,i=n.length>0&&!r;return/* @__PURE__ */ K(`div`,{className:`files-grid-select-bar`,style:{display:`flex`,alignItems:`center`,gap:8},children:[/* @__PURE__ */ G(t,{checked:r,indeterminate:i,onChange:()=>Xe(!r),children:/* @__PURE__ */ K(`span`,{style:{fontSize:14,color:`var(--arc-antd-color-text-0)`},children:[`全选当前页`,n.length>0&&/* @__PURE__ */ K(`span`,{style:{marginLeft:4,color:`var(--arc-antd-color-text-2)`,fontWeight:400},children:[`(`,n.length,`/`,e.length,`)`]})]})}),O.length>0&&/* @__PURE__ */ K(C,{size:`small`,theme:`light`,type:`tertiary`,icon:/* @__PURE__ */ G(pe,{size:12}),onClick:()=>k([]),children:[`已选 `,O.length,` 项,取消选择`]})]})})(),/* @__PURE__ */ G(me,{grid:{gutter:[6,8],xs:8,sm:6,md:4,lg:3,xl:2,xxl:2},dataSource:I?.list??[],loading:F.isFetching,split:!1,emptyContent:/* @__PURE__ */ G(`div`,{className:`files-grid-empty`,children:`暂无文件记录`}),renderItem:e=>/* @__PURE__ */ G(me.Item,{style:{padding:0,height:`100%`},children:/* @__PURE__ */ G(Fe,{file:e,selected:O.includes(e.id),canSelect:p(`system:file:delete`),onSelect:Ye,onPreview:L.handlePreview,onDownload:L.handleDownload,onDelete:tt,onDetail:Ze,onCopyUrl:B,canDelete:p(`system:file:delete`),previewLoading:L.previewLoadingId===e.id})},e.id)}),(I?.total??0)>0&&/* @__PURE__ */ G(`div`,{className:`files-grid-pagination`,children:/* @__PURE__ */ G(c,{currentPage:we,pageSize:Ee,total:I?.total??0,onPageChange:e=>{E(e)},onPageSizeChange:e=>{D(e),E(1)},showSizeChanger:!0,showTotal:!0,pageSizeOpts:Fn})})]})]}),/* @__PURE__ */ G(a,{tab:`统计分析`,itemKey:`stats`,children:/* @__PURE__ */ G(wn,{})})]})})}var X,Nn,Z,Q,$,Pn,Fn;function In(){return(In=e((()=>{E(),O(),S(),oe(),ln(),y(),b(),v(),le(),x(),we(),Pe(),D(),Ne(),On(),Me(),k(),p(),f(),T(),_(),ye(),o(),Ce(),ne(),{Text:X}=n,Nn=[`pending`,`uploading`],Z=e=>!Nn.includes(e.status),Q=20,$=60,Pn=[20,50,100],Fn=[60,120,240]})))()}In();export{Mn as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{a as t,i as n}from"./controls-C5dPckUT.js";import{i as r}from"./feedback-BnjMKZpz.js";import{n as i}from"./tabs-BobA_IcO.js";import{i as a,s as o}from"./toolbar-controls-CThS0xuP.js";import{n as s,t as c}from"./info-BQa8C31Y.js";import{n as l,t as u}from"./save-w-NwiMMY.js";import{a as d,i as f,t as p}from"./form-CQutQFiD.js";import{C as m,a as h,d as g}from"./ui-BFsHoY7a.js";import{n as _,t as v}from"./SearchToolbar-CvgYKUjr.js";import{useEffect as y,useRef as b,useState as x}from"react";import{Fragment as S,jsx as C,jsxs as w}from"react/jsx-runtime";import{GoaError as T}from"@fudanda/client";import{usePermission as E}from"@fudanda/react-core/hooks/usePermission";import{SESSION_CONCURRENCY_SCOPES as D,SESSION_CONCURRENCY_SCOPE_LABELS as O,SESSION_EXCEED_ACTIONS as k,SESSION_EXCEED_ACTION_LABELS as A}from"@fudanda/shared/identity";import{formatSessionPolicyHint as j}from"@fudanda/shared/settings";import{useSaveSettings as M,useSettings as N}from"@fudanda/react-core/hooks/queries/settings";import{useUrlTabState as P}from"@fudanda/react-core/hooks/useUrlTabState";import{ApiIdentitySecuritySettingsSchema as F}from"@fudanda/shared/api/settings";import{foundationSettingDefaults as I}from"@fudanda/shared/settings/foundation";function L(e){return e<=0?`unlimited`:e===1?`single`:`limited`}function R(){let e=f(),{values:r}=d(),i=r?.session,a={maxSessions:i?.maxSessions??0,scope:i?.scope??`global`,exceedAction:i?.exceedAction??`kick-oldest`},o=L(a.maxSessions),s=o===`unlimited`,l=j(a),u=t=>{let n=t===`unlimited`?0:t===`single`?1:Math.max(a.maxSessions,z);e.setValue(`session.maxSessions`,n)};return/* @__PURE__ */ w(S,{children:[/* @__PURE__ */ C(p.Slot,{label:`同时在线`,children:/* @__PURE__ */ w(`div`,{className:`session-policy-limit`,children:[/* @__PURE__ */ w(t,{value:o,onChange:e=>u(e.target.value),"aria-label":`同时在线上限`,children:[/* @__PURE__ */ C(n,{value:`unlimited`,children:`不限制`}),/* @__PURE__ */ C(n,{value:`single`,children:`仅一处登录`}),/* @__PURE__ */ C(n,{value:`limited`,children:`最多 N 处`})]}),/* @__PURE__ */ C(p.InputNumber,{field:`session.maxSessions`,noLabel:!0,min:o===`limited`?2:0,max:20,style:{width:120},fieldStyle:{padding:0},fieldClassName:o===`limited`?void 0:`session-policy-limit-hidden`,suffix:`处`,"aria-label":`同时在线上限(处)`})]})}),/* @__PURE__ */ C(p.Select,{field:`session.scope`,label:`统计范围`,disabled:s,style:{width:260},optionList:D.map(e=>({value:e,label:O[e]})),extraText:`按终端分别计算时,网页、移动审批、桌面端各占一份名额`}),/* @__PURE__ */ C(p.RadioGroup,{field:`session.exceedAction`,label:`超限处理`,disabled:s,options:k.map(e=>({value:e,label:A[e]})),extraText:`拒绝新登录时,用户可在登录页选择下线其它设备后继续登录`}),/* @__PURE__ */ C(p.Slot,{label:` `,children:/* @__PURE__ */ w(`div`,{className:`session-policy-preview`,role:`status`,children:[/* @__PURE__ */ C(c,{size:14,"aria-hidden":!0}),/* @__PURE__ */ C(`span`,{children:l})]})})]})}var z;function B(){return(B=e((()=>{m(),s(),z=3})))()}function V(){let{hasPermission:e}=E(),t=e(`system:identity-security:manage`),n=[...t?[`policy`]:[]],[o,s]=P(n,t?`policy`:`risk`),c=b(null),[l,d]=x(U),f=N(`identitySecurity`,t&&o===`policy`),m=M(`identitySecurity`);y(()=>{f.data&&d(F.parse(f.data.effective))},[f.data]);async function _(){let e;try{e=await c.current?.validate()}catch{return}try{let t=await m.mutateAsync({body:{version:f.data?.version??0,data:e}});d(F.parse(t.effective)),r.success(`身份安全策略已保存`)}catch(e){e instanceof T&&e.status===409&&f.refetch()}}return n.length===0?/* @__PURE__ */ C(g,{description:`无访问权限`}):/* @__PURE__ */ C(`div`,{className:`page-container page-tabs-page`,children:/* @__PURE__ */ C(i,{collapsible:`auto`,type:`line`,keepDOM:!1,activeKey:o,onChange:e=>s(e),children:t&&/* @__PURE__ */ w(H,{tab:`策略配置`,itemKey:`policy`,children:[/* @__PURE__ */ w(v,{children:[/* @__PURE__ */ C(h,{type:`primary`,icon:/* @__PURE__ */ C(u,{size:14}),loading:m.isPending,onClick:_,children:`保存`}),/* @__PURE__ */ C(a,{onClick:()=>void f.refetch(),loading:f.isFetching,children:`重载`})]}),/* @__PURE__ */ C(`div`,{style:{maxWidth:760,padding:`4px 0`},children:/* @__PURE__ */ w(p,{initValues:l,getFormApi:e=>{c.current=e},labelPosition:`left`,labelWidth:150,children:[/* @__PURE__ */ C(`div`,{className:`section-title`,children:`密码策略`}),/* @__PURE__ */ C(p.InputNumber,{field:`password.minLength`,label:`最小长度`,min:6,max:64}),/* @__PURE__ */ C(p.Switch,{field:`password.requireUppercase`,label:`必须包含大写`}),/* @__PURE__ */ C(p.Switch,{field:`password.requireSpecialChar`,label:`必须包含特殊字符`}),/* @__PURE__ */ C(p.Switch,{field:`password.expiryEnabled`,label:`启用密码过期`}),/* @__PURE__ */ C(p.InputNumber,{field:`password.expiryDays`,label:`过期天数`,min:1,max:3650}),/* @__PURE__ */ C(`div`,{className:`section-title`,style:{marginTop:24},children:`登录失败防护`}),/* @__PURE__ */ C(p.InputNumber,{field:`loginChallenge.maxAttemptsPerSource`,label:`单来源失败阈值`,min:1,max:1e3,extraText:`同一账号 + 同一 IP 的失败次数,达到后该来源需先过验证码`}),/* @__PURE__ */ C(p.InputNumber,{field:`loginChallenge.sourceLimit`,label:`多来源失败阈值`,min:1,max:100,extraText:`窗口内失败来源 IP 数,达到后该账号所有来源都需验证码(防分布式猜解)`}),/* @__PURE__ */ C(p.InputNumber,{field:`loginChallenge.windowMinutes`,label:`计数窗口(分钟)`,min:1,max:1440}),!1,/* @__PURE__ */ C(`div`,{className:`section-title`,style:{marginTop:24},children:`会话并发`}),/* @__PURE__ */ C(R,{}),!1]},JSON.stringify(l))})]})})})}var H,U;function W(){return(W=e((()=>{m(),l(),_(),o(),B(),{TabPane:H}=i,U=I.identitySecurity})))()}W();export{V as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{t}from"./typography-DKK_iHcj.js";import{t as n}from"./json-viewer-DHYRjY8I.js";import{
|
|
1
|
+
import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{t}from"./typography-DKK_iHcj.js";import{t as n}from"./json-viewer-DHYRjY8I.js";import{C as r}from"./ui-BFsHoY7a.js";import{useMemo as i}from"react";import{jsx as a,jsxs as o}from"react/jsx-runtime";function s({content:e,style:r}){let s=i(()=>{try{return JSON.parse(e)}catch{return null}},[e]);return s===null?/* @__PURE__ */ o(`div`,{style:{flex:1,minHeight:0,overflowY:`auto`,padding:`16px 20px`,...r},children:[/* @__PURE__ */ a(t.Text,{type:`warning`,style:{display:`block`,marginBottom:12,fontSize:12},children:`JSON 格式无效,显示原始内容`}),/* @__PURE__ */ a(`pre`,{style:{margin:0,fontSize:13,fontFamily:`Consolas, "JetBrains Mono", monospace`,whiteSpace:`pre-wrap`,wordBreak:`break-all`,color:`var(--arc-antd-color-text-1)`},children:e})]}):/* @__PURE__ */ a(`div`,{style:{flex:1,minHeight:0,overflowY:`auto`,padding:`12px 16px`,...r},children:/* @__PURE__ */ a(n,{value:JSON.stringify(s,null,2),height:`100%`,width:`100%`,options:{readOnly:!0}})})}function c(){return(c=e((()=>{r()})))()}c();export{s as JsonPreviewPanel,s as default};
|
|
@@ -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"./skeleton-CrjMjJNr.js";import{i as r}from"./feedback-BnjMKZpz.js";import{n as i,t as a}from"./chevron-down-mn2tSKQd.js";import{n as o,t as s}from"./trash-tHBT8Mpw.js";import{C as c,_ as l,a as u,u as d,v as f}from"./ui-BFsHoY7a.js";import{n as p,t as ee}from"./AppModal-DJzQA6FR.js";import{$n as m,$r as h,$t as g,A as _,An as v,Ar as y,At as te,Bt as b,Cn as x,Ct as S,D as C,Dn as ne,Dr as re,Dt as ie,E as ae,En as oe,Er as se,Et as ce,F as le,Fn as w,Ft as ue,G as de,Gr as fe,Gt as pe,H as me,Hr as he,Ht as ge,I as _e,In as ve,It as ye,J as be,Jn as xe,Jt as Se,K as Ce,Kt as we,L as Te,Ln as Ee,Lr as De,Lt as Oe,M as ke,Mn as Ae,Mr as T,Mt as je,N as Me,Nr as Ne,Nt as Pe,O as Fe,On as Ie,Or as Le,Ot as Re,P as ze,Pn as Be,Pt as Ve,Qr as He,Qt as E,R as Ue,Rr as We,Rt as Ge,Si as Ke,Sn as qe,St as Je,T as Ye,Ti as Xe,Tn as Ze,Tr as Qe,Tt as $e,U as et,Ur as tt,Ut as nt,Vr as rt,Vt as it,W as at,Wr as ot,Wt as st,Xr as D,Xt as ct,Y as lt,Yn as ut,Yt as dt,Zr as ft,Zt as pt,_ as mt,_i as ht,_n as gt,_t,ai as vt,an as yt,ar as bt,br as xt,bt as St,ci as Ct,cn as wt,dn as Tt,dr as Et,ei as O,en as Dt,er as Ot,fi as k,fn as kt,gn as At,gt as jt,hi as Mt,hn as Nt,ht as Pt,ii as Ft,in as It,ir as Lt,j as Rt,jn as A,jr as zt,jt as Bt,k as Vt,kn as Ht,kt as Ut,li as Wt,ln as Gt,mi as Kt,mn as qt,mr as Jt,mt as Yt,n as Xt,ni as j,nn as Zt,nr as Qt,oi as $t,on as en,or as tn,pi as M,pn as nn,pr as rn,pt as an,q as on,qt as sn,r as cn,ri as N,rn as ln,rr as un,si as dn,sn as P,sr as fn,ti as pn,tn as mn,un as hn,ur as gn,vi as _n,vn,vt as yn,w as bn,wi as xn,wn as Sn,wr as F,wt as Cn,xi as wn,xr as Tn,xt as En,y as Dn,yi as On,yt as kn,z as An,zt as jn}from"./StatCard-Czjfs0fa.js";import{Ar as Mn,Dr as I,Er as L,Ft as Nn,Gn as Pn,Hn as Fn,In as R,Kn as In,Lt as z,Nn as B,Nt as Ln,Or as V,Pt as H,Un as Rn,Wn as zn,_ as Bn,_r as Vn,b as Hn,cr as Un,g as Wn,gr as Gn,jr as Kn,kr as U,lr as qn,x as Jn}from"./chart-data-DImT_Mzn.js";import{a as Yn,ar as Xn,ir as Zn,ln as Qn,o as $n,un as W}from"./chart-renderer-k-Rd8vdL.js";import{useContext as er,useState as tr}from"react";import{Fragment as nr,jsx as G,jsxs as K}from"react/jsx-runtime";import rr from"dayjs";import{ToolbarSlotContext as ir}from"@fudanda/react-core/components/toolbar-slot-context";var ar;function or(){return(or=e((()=>{ut(),R(),L(),ar=class extends xe{constructor(){super(...arguments),this._getSeriesStyle=(e,t,n)=>{for(let n of B(t)){let t=this.series.getSeriesStyle(e)?.(n);if(!1!==t||n!==`fill`&&n!==`stroke`||(t=n===`fill`?this.series.getSeriesStyle(e)?.(`stroke`)?.[0]:this.series.getSeriesStyle(e)?.(`fill`)),I(t))return t}return n}}}})))()}var sr;function cr(){return(cr=e((()=>{Ee(),gt(),sr=Object.assign(Object.assign(Object.assign({},ve),vn),{area:{name:`area`,type:`area`}})})))()}var lr;function ur(){return(ur=e((()=>{gn(),lr=()=>{Et(),rn(),Jt()}})))()}var dr;function fr(){return(fr=e((()=>{L(),Gt(),Qn(),dr=class extends wt{constructor(){super(...arguments),this._supportStack=!0}_transformLabelSpec(e){let t=!1!==e.point?.visible&&!1!==e.point?.style?.visible;this._addMarkLabelSpec(e,(e=>{let n=e.position===`inside-middle`;return!t||n?`area`:`point`})),this._addMarkLabelSpec(e,`area`,`areaLabel`,`initLineLabelMarkStyle`,void 0,!0)}_transformSpecAfterMergingTheme(e,t,n){var r;super._transformSpecAfterMergingTheme(e,t,n);let{area:i={},line:a={},seriesMark:o}=e,s=!1!==i.visible&&!1!==i.style?.visible,c=!1!==a.visible&&!1!==a.style?.visible;i.support3d=!(!i.support3d&&!a.support3d),i.zIndex=I(i.zIndex)||I(a.zIndex)?Math.max(i.zIndex??0,a.zIndex??0):void 0,i.style&&delete i.style.stroke,i.state&&Object.keys(i.state).forEach((e=>{`style`in i.state[e]?delete i.state[e].style.stroke:delete i.state[e].stroke}));let l=i,u=a;(o===`line`||c&&!s)&&(l=a,u=i),i.style=W({},u.style,l.style),i.state=W({},u.state,l.state),!1===i.interactive&&(i.style.fillPickable=!1),!1===a.interactive&&(a.style.strokePickable=!1),i.interactive=!(!i.interactive&&(r=a.interactive)!=null&&!r),e.area=i,e.line=a}}})))()}var pr;function mr(){return(mr=e((()=>{pr={label:{visible:!1,offset:5,position:`top`,style:{stroke:{type:`palette`,key:`backgroundColor`},lineWidth:2}},point:{style:{symbolType:`circle`}},seriesMark:`area`}})))()}var q,hr;function gr(){return(gr=e((()=>{Gn(),At(),x(),Qe(),dn(),M(),Ae(),Qt(),kt(),an(),hn(),or(),cr(),N(),ur(),fr(),Ze(),ge(),st(),h(),b(),Ge(),mr(),q=class e extends qe{constructor(){super(...arguments),this.type=k.area,this.transformerConstructor=dr,this._sortDataByAxis=!1}_getSpecUpdatePolicy(){let e=super._getSpecUpdatePolicy();return Object.assign(Object.assign({},e),{dataRelatedKeys:Object.assign(Object.assign({},e.dataRelatedKeys),qt)})}initMark(){let t=this._spec.seriesMark??`area`,n=this._isAreaVisible()||this._isLineVisible();this._areaMark=this._createMark(e.mark.area,{groupKey:this._seriesField,isSeriesMark:n&&t!==`point`},{morphElementKey:this.getDimensionField()[0]}),this.initSymbolMark(t===`point`)}initMarkStyle(){this.initAreaMarkStyle(),this.initSymbolMarkStyle()}initAreaMarkStyle(){let e=this.getSpec().area?.style?.curveType??this.getSpec().line?.style?.curveType,t=e===`monotone`?this._direction===`horizontal`?`monotoneY`:`monotoneX`:e,n=this._areaMark;if(n){let e=this._isAreaVisible(),r=this._isLineVisible();e||r?n.setVisible(!0):n.setVisible(!1),this._direction===`horizontal`?this.setMarkStyle(this._areaMark,{x:this.dataToPositionX.bind(this),x1:e=>{var t;return Wt(this.dataToPositionX1(e),((t=this._xAxisHelper)?.getScale)?.call(t,0))},y:this.dataToPositionY.bind(this),y1:this.dataToPositionY.bind(this),z:this._fieldZ?this.dataToPositionZ.bind(this):null,orient:this._direction},`normal`,F.Series):this.setMarkStyle(this._areaMark,{x:this.dataToPositionX.bind(this),x1:this.dataToPositionX.bind(this),y1:e=>{var t;return Wt(this.dataToPositionY1(e),((t=this._yAxisHelper)?.getScale)?.call(t,0))},y:this.dataToPositionY.bind(this),z:this._fieldZ?this.dataToPositionZ.bind(this):null},`normal`,F.Series),this.setMarkStyle(n,{fill:!!e&&this.getColorAttribute(),stroke:!!r&&this.getColorAttribute()},`normal`,F.Series),this._invalidType!==`zero`&&this.setMarkStyle(n,{defined:this._getInvalidDefined.bind(this),connectedType:this._getInvalidConnectType()},`normal`,F.Series),this.getStack()&&this.setMarkStyle(n,{zIndex:e=>-e[He]},`normal`,F.Series),this.setMarkStyle(n,{curveType:t},`normal`,F.Built_In),Object.keys(n.stateStyle).forEach((e=>{n.stateStyle[e].stroke&&n.setPostProcess(`stroke`,(e=>[e,!1,!1,!1]),e)}))}}initAnimation(){let e={direction:this.direction},t=this._spec.animationAppear?.preset;if(this._lineMark&&this._lineMark.setAnimationConfig(A(j.getAnimationInKey(`line`)?.(e,t),w(`line`,this._spec,this._markAttributeContext))),this._areaMark&&this._areaMark.setAnimationConfig(A(j.getAnimationInKey(`area`)?.(e,t),w(`area`,this._spec,this._markAttributeContext))),this._symbolMark){let e=Sn(this);this._symbolMark.setAnimationConfig(A(j.getAnimationInKey(`scaleInOut`)?.(),w(`point`,this._spec,this._markAttributeContext),e))}}_isAreaVisible(){let e=this._spec.area||{};return!1!==e.visible&&!1!==e.style?.visible}_isLineVisible(){let e=this._spec.line||{};return!1!==e.visible&&!1!==e.style?.visible}initTooltip(){this._tooltipHelper=new ar(this);let{group:e,mark:t}=this._tooltipHelper.activeTriggerSet;this._areaMark&&e.add(this._areaMark),this._lineMark&&e.add(this._lineMark),this._symbolMark&&(t.add(this._symbolMark),e.add(this._symbolMark))}viewDataStatisticsUpdate(e){super.viewDataStatisticsUpdate(e),this.encodeDefined(this._areaMark,`defined`)}compile(){super.compile(),this.addSamplingCompile(),this.addOverlapCompile()}getDefaultShapeType(){return`square`}getActiveMarks(){return[this._areaMark,this._symbolMark,this._lineMark]}onLayoutEnd(){super.onLayoutEnd(),this.reCompileSampling()}getSeriesStyle(e){return t=>{let n=this._spec.seriesMark??`area`,r=this._seriesMark?.getAttribute(t,e)??void 0;return t!==`fill`||r&&n!==`line`||(t=`stroke`,r=this._seriesMark?.getAttribute(t,e)??void 0),t===`stroke`&&Vn(r)?r[0]:r}}},q.type=k.area,q.builtInTheme={area:pr},q.mark=sr,q.transformerConstructor=dr,Fn(q,Nt),hr=()=>{jn(),it(),nn(),Yt(),Tt(),lr(),pe(),nt(),j.registerSeries(q.type,q)}})))()}var _r;function vr(){return(vr=e((()=>{Pe(),y(),_r=class extends je{_getDefaultSeriesSpec(e){return super._getDefaultSeriesSpec(e,[`point`,`line`,`area`,`seriesMark`,`activePoint`,`sampling`,`samplingFactor`,`pointDis`,`pointDisMul`,`markOverlap`,`areaLabel`,`useSequentialAnimation`])}transformSpec(e){super.transformSpec(e),zt(e)}}})))()}var J,yr;function br(){return(br=e((()=>{gr(),M(),N(),vr(),Oe(),Bt(),Re(),ce(),$e(),Je(),kn(),_t(),Pt(),J=class extends ye{constructor(){super(...arguments),this.transformerConstructor=_r,this.type=`area`,this.seriesType=k.area}_setModelOption(){this._modelOption.getDimensionInfo=S,this._modelOption.getDimensionInfoByValue=Cn,this._modelOption.getRectByDimensionData=En}},J.type=`area`,J.seriesType=k.area,J.transformerConstructor=_r,Fn(J,te),yr=()=>{St(),yn(),jt(),Ut(),hr(),ie(),j.registerChart(J.type,J)}})))()}var xr;function Sr(){return(Sr=e((()=>{R(),L(),V(),Wn(),P(),Ie(),Ze(),rt(),xr=class extends ne{constructor(){super(...arguments),this.coordinate=`polar`,this._outerRadius=It,this._innerRadius=0,this._angleField=[],this._radiusField=[],this._sortDataByAxis=!1}get outerRadius(){return this._outerRadius}get innerRadius(){return this._innerRadius}getAngleField(){return this._angleField}setAngleField(e){return this._angleField=I(e)?B(e):[],this._angleField}getRadiusField(){return this._radiusField}setRadiusField(e){return this._radiusField=I(e)?B(e):[],this._radiusField}get innerRadiusField(){return this._innerRadiusField}setInnerRadiusField(e){return this._innerRadiusField=B(e),this._innerRadiusField}get radiusScale(){return this._radiusScale}setRadiusScale(e){return this._radiusScale=e,e}get angleScale(){return this._angleScale}setAngleScale(e){return this._angleScale=e,e}get angleAxisHelper(){return this._angleAxisHelper}set angleAxisHelper(e){this._angleAxisHelper=e,this.onAngleAxisHelperUpdate()}get radiusAxisHelper(){return this._radiusAxisHelper}set radiusAxisHelper(e){this._radiusAxisHelper=e,this.onRadiusAxisHelperUpdate()}get sortDataByAxis(){return this._sortDataByAxis}_buildMarkAttributeContext(){super._buildMarkAttributeContext(),this._markAttributeContext.valueToPosition=this.valueToPosition.bind(this),this._markAttributeContext.getCenter=()=>this.angleAxisHelper.center(),this._markAttributeContext.getLayoutRadius=()=>this._computeLayoutRadius()}valueToPosition(e,t){if(U(e)||U(t)||!this.angleAxisHelper||!this.radiusAxisHelper)return{x:NaN,y:NaN};let n=this.radiusAxisHelper.dataToPosition(B(t));if(n<0){if(this._invalidType===`break`||this._invalidType===`link`)return{x:NaN,y:NaN};if(this._invalidType===`zero`)return this.angleAxisHelper.center()}let r=this.angleAxisHelper.dataToPosition(B(e));return this.angleAxisHelper.coordToPoint({angle:r,radius:n})}dataToPosition(e,t){return e&&this.angleAxisHelper&&this.radiusAxisHelper?t&&!this.isDatumInViewData(e)?null:this.valueToPosition(this.getDatumPositionValues(e,this._angleField),this.getDatumPositionValues(e,this._radiusField)):null}dataToPositionX(e){return this.dataToPosition(e)?.x}dataToPositionY(e){return this.dataToPosition(e)?.y}dataToPositionZ(e){return 0}positionToData(e){}radiusToData(e){}angleToData(e){}getStatisticFields(){var e,t;let n=[];return(e=this.radiusAxisHelper)!=null&&e.getScale&&this._radiusField.forEach((e=>{let t={key:e,operations:[]};t.operations=Bn(this.radiusAxisHelper.getScale(0).type)?[`max`,`min`]:[`values`],n.push(t)})),(t=this.angleAxisHelper)!=null&&t.getScale&&this._angleField.forEach((e=>{let t={key:e,operations:[]};t.operations=Bn(this.angleAxisHelper.getScale(0).type)?[`max`,`min`]:[`values`],n.push(t)})),n}setAttrFromSpec(){super.setAttrFromSpec(),I(this._spec.outerRadius)&&(this._outerRadius=this._spec.outerRadius),I(this._spec.radius)&&(this._outerRadius=this._spec.radius),I(this._spec.innerRadius)&&(this._innerRadius=this._spec.innerRadius),I(this._spec.sortDataByAxis)&&(this._sortDataByAxis=!0===this._spec.sortDataByAxis)}onRadiusAxisHelperUpdate(){this.onMarkPositionUpdate()}onAngleAxisHelperUpdate(){this.onMarkPositionUpdate()}afterInitMark(){super.afterInitMark()}_computeLayoutRadius(){let e=this._angleAxisHelper||this._radiusAxisHelper;if(e)return e.layoutRadius();let{width:t,height:n}=this._region.getLayoutRect();return Math.min(t/2,n/2)}initEvent(){super.initEvent(),this.sortDataByAxis&&this.event.on(We.scaleDomainUpdate,{filter:e=>e.model.id===this._angleAxisHelper?.getAxisId()},(()=>{this._sortDataInAxisDomain()}))}_sortDataInAxisDomain(){var e;(e=this.getViewData()?.latestData)!=null&&e.length&&oe(this.angleAxisHelper,this._angleField[0],this.getViewData().latestData)}getInvalidCheckFields(){let e=[];return this.angleAxisHelper.isContinuous&&this._angleField.forEach((t=>{e.push(t)})),this.radiusAxisHelper.isContinuous&&this._radiusField.forEach((t=>{e.push(t)})),e}}})))()}function Cr(e){return wn(e)?Number.parseFloat(e):0}var wr,Tr;function Er(){return(Er=e((()=>{Ke(),_n(),P(),V(),Nn(),wr=(e,t)=>{let{asStartAngle:n,asEndAngle:r,asMiddleAngle:i,asRadian:a,asRatio:o,asQuadrant:s,asK:c,showAllZero:l,supportNegative:u,showEmptyCircle:d}=t,f=t.angleField(),p=t.startAngle(),ee=t.endAngle(),m=t.minAngle(),h=e.map((e=>Object.assign({},e)));if(!h||h.length===0)return h;if(!l&&d&&Tr(h,f,u))return[];let g=(e,t,o)=>{e[n]=t,e[r]=t+o,e[i]=t+o/2,e[a]=o,e[s]=Ln(t+o/2)},_=0,v=-1/0,y=!0;for(let e=0;e<h.length;e++){let t=u?Math.abs(Cr(h[e][f])):Cr(h[e][f]);_+=t,v=Math.max(t,v),y&&t!==0&&(y=!1),h[e][ln]=t}let te=h.map((e=>Number(e[f]))),b=ee-p,x=p,S=b,C=0,ne=ht(te);if(h.forEach(((e,t)=>{let n=e[ln],r=_?n/_:0,i=r*b;i<m?(i=m,S-=m):C+=n;let a=x,s=x+i;e[o]=r,e[c]=v?n/v:0,e._percent_=ne[t],g(e,a,i),x=s})),S<b){if(S<=.001){let e=b/h.length;h.forEach(((t,n)=>{g(t,p+n*e,e)}))}else{let e=S/C;x=p,h.forEach((t=>{let n=t[a]===m?m:t[ln]*e;g(t,x,n),x+=n}))}}if(_!==0&&(h[h.length-1][r]=ee),y&&l){let e=b/h.length;h.forEach(((t,n)=>{g(t,p+n*e,e)}))}return h},Tr=(e,t,n)=>!!U(e)||e.length===0||!!e.every((e=>Cr(e[t])===0))||!n&&e.reduce(((e,n)=>e+Cr(n[t])),0)===0})))()}function Dr(e,t,n){return(r,i,a)=>t?e.growField===`radius`?{overall:0}:{overall:e.growFrom(r,i,n)}:{overall:!1}}function Or(e,t){if(!1===t)return{};switch(t){case`fadeIn`:return Ar;case`growRadius`:return kr(Object.assign(Object.assign({},e),{growField:`radius`}));default:return kr(Object.assign(Object.assign({},e),{growField:`angle`}))}}var kr,Ar,jr,Mr,Nr,Pr;function Fr(){return(Fr=e((()=>{Ne(),N(),gn(),kr=e=>({type:e.growField===`radius`?`growRadiusIn`:`growAngleIn`,options:Dr(e,!0,T.appear)}),Ar={type:`fadeIn`},jr=e=>({type:e.growField===`radius`?`growRadiusIn`:`growAngleIn`,easing:`linear`,options:Dr(e,!0,T.enter)}),Mr=e=>({type:e.growField===`radius`?`growRadiusOut`:`growAngleOut`,easing:`linear`,options:Dr(e,!0,T.exit)}),Nr=()=>{j.registerAnimation(`pie`,((e,t)=>({appear:Or(e,t),enter:jr(e),exit:Mr(e),disappear:{duration:fn.disappear.duration}})))},Pr=()=>{j.registerAnimation(`emptyCircle`,((e,t)=>({appear:Or(e,t)})))}})))()}function Ir(e,t){var n;let r=t.options?.distance??10,i=qn(t.duration)?t.duration/2:1e3,a=t.options.easing??`cubicOut`;return{oneByOne:t.oneByOne,loop:(n=t.loop)!=null&&n,timeSlices:[{duration:i,effects:{easing:a,channel:{x:{from:t=>e.getAttribute(`x`,t),to:t=>e.getAttribute(`x`,t)+z({x:0,y:0},r,t[E]).x},y:{from:t=>e.getAttribute(`y`,t),to:t=>e.getAttribute(`y`,t)+z({x:0,y:0},r,t[E]).y}}}},{duration:i,effects:{easing:a,channel:{x:{to:t=>e.getAttribute(`x`,t),from:t=>e.getAttribute(`x`,t)+z({x:0,y:0},r,t[E]).x},y:{to:t=>e.getAttribute(`y`,t),from:t=>e.getAttribute(`y`,t)+z({x:0,y:0},r,t[E]).y}}}}]}}function Lr(){return(Lr=e((()=>{P(),Un(),Nn()})))()}var Rr;function zr(){return(zr=e((()=>{Ee(),Rr=Object.assign(Object.assign({},ve),{pie:{name:`pie`,type:`arc`},labelLine:{name:`labelLine`,type:`path`}})})))()}var Br;function Vr(){return(Vr=e((()=>{Gn(),L(),Qn(),v(),Br=class extends Ht{_transformLabelSpec(e){this._addMarkLabelSpec(e,`pie`)}_mergeThemeToSpec(e,t){let n=this._theme,r=e;if(this._shouldMergeThemeToSpec()){let n=this._getDefaultSpecFromChart(t);r=W({},this._theme,n,e);let i=(e,t)=>W({},e===`inside`||e===`inside-center`?this._theme.innerLabel:this._theme.outerLabel,t);Vn(r.label)?r.label=r.label.map((e=>i(e.position,e))):r.label=i(r.label.position,r.label)}return{spec:r,theme:n}}_getDefaultSpecFromChart(e){let t=super._getDefaultSpecFromChart(e)??{},{centerX:n,centerY:r}=e;return I(n)&&(t.centerX=n),I(r)&&(t.centerY=r),Object.keys(t).length>0?t:void 0}}})))()}var Hr;function Ur(){return(Ur=e((()=>{pn(),`${O}`,`${O}`,`${O}`,Hr=`${O}_LABEL_VISIBLE`,`${O}`,`${O}`})))()}var Wr;function Gr(){return(Gr=e((()=>{Wr={outerRadius:.6,pie:{style:{fillOpacity:1}},label:{visible:!1,interactive:!0,position:`outside`,style:{fontWeight:`normal`,stroke:{type:`palette`,key:`backgroundColor`},fillOpacity:1}},innerLabel:{style:{lineWidth:2}},emptyCircle:{style:{fill:{type:`palette`,key:`emptyCircleColor`},fillOpacity:1}}}})))()}var Kr,qr,Y,Jr,Yr;function Xr(){return(Xr=e((()=>{L(),V(),Nn(),Jn(),P(),Qe(),h(),pn(),_n(),dn(),Mt(),Sr(),M(),Er(),Fr(),Ae(),Ne(),Lr(),be(),zr(),N(),Vr(),Ur(),rt(),dt(),$t(),Tn(),Gr(),Kr={valueField:!0,angleField:!0,startAngle:!0,endAngle:!0,minAngle:!0},qr={outerRadius:!0},Y=class e extends xr{constructor(){super(...arguments),this.transformerConstructor=Br,this._pieMarkName=`pie`,this._pieMarkType=`arc`,this.getCenter=()=>{let e=this._region.getLayoutRect();return{x:Ft(this._spec?.centerX,e.width,e,e.width/2),y:Ft(this._spec?.centerY,e.height,e,e.height/2)}},this._startAngle=en,this._endAngle=yt,this._pieMark=null,this._labelMark=null,this._labelLineMark=null,this._emptyArcMark=null,this.dataToCentralPosition=e=>{let t=e[E];if(U(t))return null;let n=this.computeDatumRadius(e),r=this.computeDatumInnerRadius(e),i=this.computeCenter(e);return z(i,(n+r)/2,t)}}_buildMarkAttributeContext(){super._buildMarkAttributeContext(),this._markAttributeContext.getCenter=()=>({x:()=>this.getCenter().x,y:()=>this.getCenter().y}),this._markAttributeContext.startAngleScale=e=>this.startAngleScale(e),this._markAttributeContext.endAngleScale=e=>this.endAngleScale(e)}setAttrFromSpec(){var e,t,n;super.setAttrFromSpec(),this._centerOffset=this._spec.centerOffset??0,this._cornerRadius=this._spec.cornerRadius??0;let r=On(I(this._spec.startAngle)?H(this._spec.startAngle):this._startAngle,I(this._spec.endAngle)?H(this._spec.endAngle):this._endAngle);this._startAngle=r.startAngle,this._endAngle=r.endAngle,this._padAngle=I(this._spec.padAngle)?H(this._spec.padAngle):0,this.setAngleField(this._spec.valueField||this._spec.angleField),this._spec.categoryField&&this.setSeriesField(this._spec.categoryField),this._radiusField=[],this._specAngleField=this._angleField.slice(),this._specRadiusField=[],this._showEmptyCircle=(e=this._spec.emptyPlaceholder?.showEmptyCircle)!=null&&e,this._showAllZero=(t=this._spec.showAllZero)!=null&&t,this._supportNegative=(n=this._spec.supportNegative)!=null&&n}initData(){super.initData();let e=this.getViewData();if(!e)return;De(this._dataSet,`pie`,wr),e.transform({type:`pie`,options:{angleField:()=>this._angleField[0],startAngle:()=>this._startAngle,endAngle:()=>this._endAngle,minAngle:()=>I(this._spec.minAngle)?H(this._spec.minAngle):0,asStartAngle:Zt,asEndAngle:ct,asRatio:mn,asMiddleAngle:E,asRadian:Dt,asQuadrant:g,asK:pt,showAllZero:this._showAllZero,supportNegative:this._supportNegative,showEmptyCircle:this._showEmptyCircle}},!1);let t=new Hn(this._dataSet,{name:`${O}_series_${this.id}_viewDataLabel`});t.parse([this.getViewData()],{type:`dataview`}),this._viewDataLabel=new xt(this._option,t)}compileData(){var e;super.compileData(),(e=this._viewDataLabel)==null||e.compile()}initMark(){this._pieMark=this._createMark(Object.assign(Object.assign({},e.mark.pie),{name:this._pieMarkName,type:this._pieMarkType}),{key:ft,groupKey:this._seriesField,isSeriesMark:!0},{morph:Be(this._spec,this._pieMarkName),morphElementKey:this._seriesField}),this._showEmptyCircle&&(this._emptyArcMark=this._createMark({name:`emptyCircle`,type:`arc`},{dataView:!1}),this._data.addRelatedMark(this._emptyArcMark))}startAngleScale(e){return Kt(Zt)(e)}endAngleScale(e){return Kt(ct)(e)}_computeLayoutRadius(){return Se((()=>this._spec.layoutRadius),this.getLayoutRect,this.getCenter,(()=>({startAngle:this._startAngle,endAngle:this._endAngle})))}initMarkStyle(){let e={x:()=>this.getCenter().x,y:()=>this.getCenter().y,fill:this.getColorAttribute(),outerRadius:Ct(this._outerRadius)?this._outerRadius:()=>this._computeLayoutRadius()*this._outerRadius,innerRadius:Ct(this._innerRadius)?this._innerRadius:()=>this._computeLayoutRadius()*this._innerRadius,cornerRadius:()=>this._computeLayoutRadius()*this._cornerRadius,startAngle:e=>this.startAngleScale(e),endAngle:e=>this.endAngleScale(e),padAngle:this._padAngle,centerOffset:this._centerOffset},t=this._pieMark;t&&this.setMarkStyle(t,e,`normal`,F.Series);let n=this._emptyArcMark;n&&this.setMarkStyle(n,Object.assign(Object.assign({},e),{visible:()=>{let e=this.getViewData().latestData;return!e||!e.length}}),`normal`,F.Series)}getInteractionTriggers(){return this._parseInteractionConfig(this._pieMark?[this._pieMark]:[])}initTooltip(){super.initTooltip(),this._pieMark&&this._tooltipHelper.activeTriggerSet.mark.add(this._pieMark)}initMarkStyleWithSpec(e,t){if(super.initMarkStyleWithSpec(e,t),e.name===this._pieMarkName){let t=this.getSpec()[e.name];if(t)for(let n in t.state||{})this.setMarkStyle(e,this.generateRadiusStyle(t.state[n]),n,F.User_Mark)}e.name===`emptyCircle`&&this.setMarkStyle(e,this.generateRadiusStyle(t.style),`normal`,F.User_Mark)}initLabelMarkStyle(e){e&&this.setMarkStyle(e,{visible:Kt(Hr).bind(this),text:e=>e[this.getDimensionField()[0]],fill:this.getColorAttribute(),z:this.dataToPositionZ.bind(this)})}afterInitMark(){super.afterInitMark()}initEvent(){var e;super.initEvent(),(e=this._viewDataLabel.getDataView())==null||e.target.addListener(`change`,this.viewDataLabelUpdate.bind(this))}initGroups(){}onLayoutEnd(){this._viewDataLabel.getDataView().reRunAllTransform(),this.onMarkPositionUpdate(),super.onLayoutEnd()}getDimensionField(){return this._seriesField?[this._seriesField]:[]}getMeasureField(){return this._specAngleField}viewDataLabelUpdate(){this.event.emit(We.viewDataLabelUpdate,{model:this}),this._viewDataLabel.updateData()}generateRadiusStyle(e){if(!e)return;let t={};return e.outerRadius&&(t.outerRadius=()=>this._computeLayoutRadius()*e.outerRadius),e.innerRadius&&(t.innerRadius=()=>this._computeLayoutRadius()*e.innerRadius),e.cornerRadius&&(t.cornerRadius=()=>this._computeLayoutRadius()*e.cornerRadius),t}computeCenter(e){return{x:this._pieMark.getAttribute(`x`,e,`normal`),y:this._pieMark.getAttribute(`y`,e,`normal`)}}getRadius(e=`normal`){return(e===`normal`?this.getSpec()[this._pieMark?.name||`pie`]?.style?.outerRadius:this.getSpec()[this._pieMark?.name||`pie`]?.state?.[e]?.outerRadius)??this._outerRadius}getInnerRadius(e=`normal`){return(e===`normal`?this.getSpec()[this._pieMark?.name||`pie`]?.style?.innerRadius:this.getSpec()[this._pieMark?.name||`pie`]?.state?.[e]?.innerRadius)??this._innerRadius}computeRadius(e,t){return this._computeLayoutRadius()*e*(U(t)?1:t)+this._centerOffset}computeDatumRadius(e,t){return this._computeLayoutRadius()*this.getRadius(t)+this._centerOffset}_getSpecUpdatePolicy(){let e=super._getSpecUpdatePolicy();return Object.assign(Object.assign({},e),{compileOnlyKeys:Object.assign(Object.assign({},e.compileOnlyKeys),qr),dataRelatedKeys:Object.assign(Object.assign({},e.dataRelatedKeys),Kr)})}_compareSpec(e,t,n){n??={data:!0};let r=[`centerX`,`centerY`,`centerOffset`,`radius`,`innerRadius`,`cornerRadius`,`startAngle`,`endAngle`,`padAngle`];r.forEach((e=>{n[e]=!0}));let i=super._compareSpec(e,t,n);return e??={},r.some((n=>e[n]!==t[n]))&&(i.reRender=!0,i.change=!0),i}computeDatumInnerRadius(e,t){return this._computeLayoutRadius()*this.getInnerRadius(t)+this._centerOffset}dataToPosition(e,t){let n=e[E];if(U(n)||t&&!this.isDatumInViewData(e))return null;let r=this.computeDatumRadius(e),i=this.computeCenter(e);return z(i,r,n)}initAnimation(){let e={growFrom:(e,t,n)=>{if(n===T.appear)return this._startAngle;if(n===T.disappear)return this._endAngle;let r=[T.disappear,T.exit],i=this._pieMark.getGraphics(),a=e?.[D];if(i.find((e=>e.context.data[0]?.[D]<a))===void 0)return this._startAngle;if(i.find((e=>e.context.data[0]?.[D]>a))===void 0)return this._endAngle;let o=[...i].reverse().find((e=>e.context.data[0]?.[D]<a));return r.includes(n)?o?.getFinalAttribute()?.endAngle:o?.attribute?.endAngle}},t=this._spec.animationAppear?.preset;if(this._pieMark){let n=A(j.getAnimationInKey(`pie`)?.(e,t),w(`pie`,this._spec,this._markAttributeContext));n.normal&&n.normal.type&&(n.normal=Ir(this._pieMark,n.normal)),this._pieMark.setAnimationConfig(n)}if(this._emptyArcMark){let n=A(j.getAnimationInKey(`emptyCircle`)?.(e,t??`fadeIn`));this._emptyArcMark.setAnimationConfig(n)}}getDefaultShapeType(){return`circle`}getGroupFields(){return[]}getStackGroupFields(){return[]}getStackValueField(){return``}_noAnimationDataKey(e,t){return t}getActiveMarks(){return[this._pieMark]}},Y.transformerConstructor=Br,Y.mark=Rr,Y.builtInTheme={pie:Wr},Jr=class extends Y{constructor(){super(...arguments),this.type=k.pie}},Jr.type=k.pie,Yr=()=>{lt(),Nr(),Pr(),j.registerSeries(Jr.type,Jr)}})))()}var Zr;function Qr(){return(Qr=e((()=>{R(),Gn(),V(),L(),ue(),Zr=class extends Ve{_isValidSeries(e){return!this.seriesType||e===this.seriesType}getIndicatorSpec(e){let t=B(e.indicator),n=e.innerRadius??e.series?.[0]?.innerRadius;return I(n)&&t.forEach((e=>{U(e.limitRatio)&&(e.limitRatio=n)})),t}_getDefaultSeriesSpec(e,t){return super._getDefaultSeriesSpec(e,[`radius`,`outerRadius`,`innerRadius`,`startAngle`,`endAngle`,`centerX`,`centerY`,`sortDataByAxis`],t)}transformSpec(e){super.transformSpec(e),Vn(e.dataZoom)&&e.dataZoom.length>0&&e.dataZoom.forEach((e=>{e.filterMode===`axis`&&(e.filterMode=`filter`)})),this.transformSeriesSpec(e),I(e.indicator)&&(e.indicator=this.getIndicatorSpec(e))}}})))()}var X;function $r(){return($r=e((()=>{Qr(),X=class extends Zr{needAxes(){return!1}_getDefaultSeriesSpec(e){let t=super._getDefaultSeriesSpec(e,[`center`,`centerOffset`,`cornerRadius`,`padAngle`,`minAngle`,`emptyPlaceholder`,`showAllZero`,`supportNegative`,`useSequentialAnimation`,`layoutRadius`]);return this._addSeriesRelatedSpecKeys([`valueField`,`angleField`]),t.categoryField=e.categoryField||e.seriesField,t.valueField=e.valueField||e.angleField,t.emptyCircle=e.emptyPlaceholder?.emptyCircle,t}}})))()}var ei;function ti(){return(ti=e((()=>{Oe(),$r(),ei=class extends ye{constructor(){super(...arguments),this.transformerConstructor=X}},ei.transformerConstructor=X})))()}var Z,ni;function ri(){return(ri=e((()=>{Xr(),M(),ti(),N(),$r(),_t(),Z=class extends ei{constructor(){super(...arguments),this.transformerConstructor=X,this.type=`pie`,this.seriesType=k.pie}},Z.type=`pie`,Z.seriesType=k.pie,Z.transformerConstructor=X,ni=()=>{yn(),Yr(),j.registerChart(Z.type,Z)}})))()}var ii;function ai(){return(ai=e((()=>{R(),Mn(),ii=(e,t)=>{let{datum:n,title:r,content:i}=Kn(t)?t():t,a=[],o=n.call(null);return r.visible&&a.push({type:`title`,index:0,datum:o,spec:r}),B(i).forEach(((e,t)=>{e.visible&&a.push({type:`content`,index:t,datum:o,spec:e})})),a}})))()}var oi,si;function ci(){return(ci=e((()=>{oi=(e,t)=>({fontSize:{type:`token`,key:e},fill:{type:`palette`,key:t},fontWeight:`normal`,fillOpacity:1,textBaseline:`top`,textAlign:`center`}),si={title:{visible:!0,autoLimit:!1,autoFit:!1,style:oi(`l1FontSize`,`primaryFontColor`)},content:{visible:!0,style:oi(`l2FontSize`,`tertiaryFontColor`)}}})))()}var li,Q,ui;function di(){return(di=e((()=>{Jn(),Le(),Xe(),sn(),Qn(),ot(),$t(),Rn(),L(),Mn(),R(),Pn(),ai(),Tn(),$n(),N(),Ot(),tt(),ci(),li=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n},Q=class extends we{constructor(){super(...arguments),this.type=xn.indicator,this.name=xn.indicator,this.specKey=`indicator`,this.layoutType=`none`,this.layoutZIndex=re.Indicator,this.layoutLevel=se.Indicator,this._gap=0,this._activeDatum=null}static getSpecInfo(e){return m(e,this.specKey,this.type,(e=>e&&!1!==e.visible))}created(){super.created(),this.initData(),this.initEvent()}setAttrFromSpec(){super.setAttrFromSpec(),this._gap=this._spec.gap||0,this._title=this._spec.title,this._content=B(this._spec.content),this._regions=this._option.getRegionsInUserIdOrIndex(B(this._spec.regionId),B(this._spec.regionIndex))}_compareSpec(e,t){let n=super._compareSpec(e,t);return zn(t,e)||n.reMake||n.reCompile||(n.change=!0,n.reRender=!0,n.effects=Object.assign(Object.assign({},n.effects),{component:!0,layout:!0,render:!0})),n}initEvent(){this._option.disableTriggerEvent||this._spec.trigger!==`none`&&(this._spec.trigger===`hover`?(this.event.on(`element-highlight:start`,(e=>{let t=e.graphics[0];this.isRelativeModel(t)&&this.updateDatum(he(t))})),this.event.on(`element-highlight:reset`,(e=>{this._activeDatum&&this.updateDatum(null)}))):(this.event.on(`element-select:start`,(e=>{let t=e.graphics[0];this.isRelativeModel(t)&&this.updateDatum(he(t))})),this.event.on(`element-select:reset`,(e=>{this._activeDatum&&this.updateDatum(null)}))))}updateDatum(e){this._activeDatum=e,this._displayData.updateData();let t=this._getIndicatorAttrs();this._createOrUpdateIndicatorComponent(t)}initData(){De(this._option.dataSet,`indicatorFilter`,ii);let e=new Hn(this._option.dataSet,{name:`${this.type}_${this.id}_data`});e.transform({type:`indicatorFilter`,options:()=>({title:this._title,content:this._content,datum:()=>this._activeDatum})}),e.target.addListener(`change`,this.updateDatum.bind(this)),this._displayData=new xt(this._option,e)}updateLayoutAttribute(){let e=this._getIndicatorAttrs();this._createOrUpdateIndicatorComponent(e),super.updateLayoutAttribute()}_getIndicatorAttrs(){if(!1===this._spec.visible||!1===this._spec.fixed&&this._activeDatum===null)return{visible:!1};let e=this._regions[0],{width:t,height:n}=e.getLayoutRect(),{x:r,y:i}=e.getLayoutStartPoint(),a=this._spec,{content:o,offsetX:s,offsetY:c,limitRatio:l,title:u}=a,d=li(a,[`content`,`offsetX`,`offsetY`,`limitRatio`,`title`]),f=[];return B(o).forEach((e=>{let t=W({},this._theme.content,e);f.push({visible:!1!==t.visible&&(!t.field||this._activeDatum!==null),space:t.space||this._gap,autoLimit:t.autoLimit,autoFit:t.autoFit,fitPercent:t.fitPercent,fitStrategy:t.fitStrategy,style:Object.assign(Object.assign({},fe(In(t.style,[`text`]),this._activeDatum)),{text:this._createText(t.field,t.style.text)})})})),Object.assign({visible:!0,size:{width:t,height:n},zIndex:this.layoutZIndex,x:r,y:i,dx:s?vt(s,this._computeLayoutRadius()):0,dy:c?vt(c,this._computeLayoutRadius()):0,limitRatio:l||1/0,title:{visible:!1!==u.visible&&(!I(u.field)||this._activeDatum!==null),space:u.space||this._gap,autoLimit:u.autoLimit,autoFit:u.autoFit,fitPercent:u.fitPercent,fitStrategy:u.fitStrategy,style:Object.assign(Object.assign({},fe(In(u.style,[`text`]),this._activeDatum)),{text:this._createText(u.field,u.style.text)})},content:f},d)}_createOrUpdateIndicatorComponent(e){if(!1===e.visible)return this._indicatorComponent&&this._indicatorComponent.parent&&this._indicatorComponent.parent.removeChild(this._indicatorComponent),void(this._indicatorComponent=null);if(this._indicatorComponent)zn(e,this._cacheAttrs)||this._indicatorComponent.setAttributes(e);else{let t=this.getContainer(),n=new Yn(e);n.name=`indicator`,t.add(n),this._indicatorComponent=n,this._indicatorComponent.on(`*`,((e,t)=>this._delegateEvent(this._indicatorComponent,e,t)))}this._cacheAttrs=e}_createText(e,t){return e?this._activeDatum?this._activeDatum[e]:``:Kn(t)?t(this._activeDatum,void 0)??``:t??``}_computeLayoutRadius(){let{width:e,height:t}=this._regions[0].getLayoutRect();return Math.min(e/2,t/2)}isRelativeModel(e){return this._regions.some((t=>!!t.getSeriesInId(e.context.modelId)))}_getNeedClearVRenderComponents(){return[this._indicatorComponent]}clear(){this._cacheAttrs=null,super.clear()}getIndicatorComponent(){return this._indicatorComponent}},Q.type=xn.indicator,Q.builtInTheme={indicator:si},Q.specKey=`indicator`,ui=()=>{j.registerComponent(Q.type,Q)}})))()}var fi;function pi(){return(pi=e((()=>{Lt(),br(),_e(),ze(),C(),bn(),fi=ae(`AreaChart`,{type:`area`,vchartConstructor:un},[yr,Te,le,...Ye])})))()}var mi;function hi(){return(hi=e((()=>{at(),Ce(),ke(),Fe(),Ue(),me(),_(),bt(),Zn(),mi=[tn,Xn,et,Rt,on,de,Me,Vt,An]})))()}var gi;function _i(){return(_i=e((()=>{Lt(),ri(),_e(),di(),C(),hi(),gi=ae(`PieChart`,{type:`pie`,vchartConstructor:un},[ni,Te,ui,...mi])})))()}function vi({height:e=260,text:t=`暂无数据`,tone:n=`muted`}){return/* @__PURE__ */ G(`div`,{style:{height:e,display:`flex`,alignItems:`center`,justifyContent:`center`,color:n===`success`?`var(--arc-antd-color-success)`:`var(--arc-antd-color-text-2)`,fontSize:13},children:t})}function yi(){return(yi=e((()=>{})))()}function bi({clean:e,onCleared:t}){let[n,i]=tr(!1),[a,o]=tr(180),[s,c]=tr(!1);return{modalVisible:n,days:a,verifying:s,openClearModal:e=>{o(e),i(!0)},closeModal:()=>i(!1),confirmClear:async()=>{if(!s){c(!0);try{await e(a),i(!1),r.success(`清除成功`),t?.()}finally{c(!1)}}}}}var $,xi;function Si(){return(Si=e((()=>{c(),$={30:`一个月前`,90:`三个月前`,180:`六个月前`,365:`一年前`},xi=[365,180,90,30]})))()}function Ci({loading:e,onClear:t,label:n=`日志`}){return er(ir)===`mobile-actions`?/* @__PURE__ */ G(nr,{children:xi.map(r=>/* @__PURE__ */ K(u,{type:`danger`,theme:`light`,icon:/* @__PURE__ */ G(s,{size:14}),loading:e,onClick:()=>t(r),children:[`清除`,$[r],`的`,n]},r))}):/* @__PURE__ */ K(f,{children:[/* @__PURE__ */ K(u,{type:`danger`,theme:`light`,icon:/* @__PURE__ */ G(s,{size:14}),loading:e,onClick:()=>t(xi[0]),children:[`清除`,n]}),/* @__PURE__ */ G(d,{trigger:`click`,position:`bottomRight`,clickToHide:!0,render:/* @__PURE__ */ G(d.Menu,{children:xi.map(e=>/* @__PURE__ */ K(d.Item,{onClick:()=>t(e),children:[`清除`,$[e],`的`,n]},e))}),children:/* @__PURE__ */ G(u,{type:`danger`,theme:`light`,icon:/* @__PURE__ */ G(a,{size:14})})})]})}function wi({logName:e,control:t}){return/* @__PURE__ */ G(ee,{title:`清除${$[t.days]??`${t.days} 天前`}的${e}`,visible:t.modalVisible,onCancel:t.closeModal,okText:`确认清除`,okButtonProps:{type:`danger`,loading:t.verifying},onOk:t.confirmClear,maskClosable:!1,children:/* @__PURE__ */ K(`p`,{style:{marginBottom:12},children:[`此操作将永久删除`,$[t.days]??`${t.days} 天前`,`的`,e,`,不可恢复。`,/* @__PURE__ */ G(`br`,{}),`请确认保留天数后继续。`]})})}function Ti(){return(Ti=e((()=>{c(),i(),o(),p(),Si()})))()}function Ei(e){let t=Array(7).fill(0);for(let n of e??[])t[(rr(n.date).day()+6)%7]+=n.count;return Pi.map((e,n)=>({name:e,count:t[n]}))}function Di(e,t){return t>0?e-t:null}function Oi(e){return e==null||e.total===0?null:(e.successCount/e.total*100).toFixed(1)}function ki(e,t){return e&&t&&e.total>0&&t.total>0?e.successCount/e.total-t.successCount/t.total:null}function Ai(){return/* @__PURE__ */ G(n,{loading:!0,active:!0,placeholder:/* @__PURE__ */ K(nr,{children:[/* @__PURE__ */ G(Xt,{style:{marginBottom:16},children:Array.from({length:4},(e,t)=>`sk-stat-${t}`).map(e=>/* @__PURE__ */ K(`div`,{children:[/* @__PURE__ */ G(n.Title,{style:{width:64,height:26,marginBottom:10}}),/* @__PURE__ */ G(n.Paragraph,{rows:1,style:{width:80,marginBottom:0}})]},e))}),/* @__PURE__ */ K(`div`,{className:`zx-panel`,style:{marginBottom:16},children:[/* @__PURE__ */ G(n.Title,{style:{width:180,height:14,marginBottom:16}}),/* @__PURE__ */ G(n.Image,{style:{width:`100%`,height:230}})]}),/* @__PURE__ */ G(`div`,{className:`chart-grid`,children:[`sk-chart-a`,`sk-chart-b`].map(e=>/* @__PURE__ */ K(`div`,{className:`zx-panel`,children:[/* @__PURE__ */ G(n.Title,{style:{width:120,height:14,marginBottom:16}}),/* @__PURE__ */ G(n.Image,{style:{width:`100%`,height:260}})]},e))})]}),children:null})}function ji({days:e,onDaysChange:n,loading:r,fetching:i,children:a}){return/* @__PURE__ */ K(`div`,{children:[/* @__PURE__ */ G(`div`,{style:{display:`flex`,justifyContent:`flex-end`,marginBottom:16},children:/* @__PURE__ */ G(t,{value:e,onChange:e=>n(e),style:{width:140},children:Ni.map(e=>/* @__PURE__ */ G(t.Option,{value:e.value,children:e.label},e.value))})}),r?/* @__PURE__ */ G(Ai,{}):/* @__PURE__ */ G(l,{spinning:i,children:a})]})}function Mi({title:e,children:t,danger:n}){return/* @__PURE__ */ K(`div`,{className:`zx-panel`,children:[/* @__PURE__ */ G(`div`,{style:{...Dn,color:n?`var(--arc-antd-color-danger)`:Dn.color},children:e}),t]})}var Ni,Pi;function Fi(){return(Fi=e((()=>{c(),mt(),cn(),Ni=[{label:`最近 7 天`,value:7},{label:`最近 30 天`,value:30},{label:`最近 90 天`,value:90}],Pi=[`周一`,`周二`,`周三`,`周四`,`周五`,`周六`,`周日`]})))()}export{Yr as C,Xr as S,hr as T,_i as _,ki as a,fi as b,Ei as c,Ti as d,Si as f,gi as g,yi as h,Oi as i,Ci as l,vi as m,ji as n,Di as o,bi as p,Pi as r,Fi as s,Mi as t,wi as u,hi as v,gr as w,pi as x,mi as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{n as t,t as n}from"./tabs-BobA_IcO.js";import{_ as r,g as i,o as a,r as o}from"./ConfigurableTable-DzmZDd8F.js";import{a as s,n as c,o as l,r as u,t as d}from"./search-filters-CRIhZ0gL.js";import{n as f,t as p}from"./circle-check-RKAno__V.js";import{n as m,t as h}from"./circle-x-BB5x-D-8.js";import{n as g,t as ee}from"./log-in-OzbNes8i.js";import{C as _}from"./ui-BFsHoY7a.js";import{n as v,t as y}from"./LoginLogsTable-DVmHnC6V.js";import{n as b,t as x}from"./ExportButton-AzH4D0oW.js";import{An as S,C,Ci as w,Cn as T,D as E,E as D,Fn as O,Gt as k,Ht as te,I as ne,In as re,It as ie,Jn as ae,L as oe,Ln as se,Lt as ce,Mn as le,Mt as ue,Nt as de,Pn as fe,S as A,Sn as pe,T as me,Tn as he,Tr as ge,Ut as _e,Wt as ve,X as ye,Yn as be,Z as xe,_ as Se,_t as Ce,a as we,b as Te,cr as Ee,fi as j,gr as De,hr as Oe,i as ke,ir as Ae,jn as je,kn as Me,m as M,n as Ne,ni as N,o as P,pi as F,r as Pe,ri as I,rr as Fe,s as Ie,t as L,u as R,ur as Le,v as z,vt as Re,w as ze,wn as Be,wr as Ve,x as He}from"./StatCard-Czjfs0fa.js";import{In as Ue,K as We,Nn as Ge,Or as Ke,kr as qe,q as Je}from"./chart-data-DImT_Mzn.js";import{Cn as Ye,hr as Xe,nt as Ze,rt as Qe,xn as $e}from"./chart-renderer-k-Rd8vdL.js";import{_ as et,a as tt,b as nt,c as rt,d as it,f as at,g as B,h as ot,i as st,l as ct,m as V,n as lt,o as ut,p as dt,r as ft,s as pt,t as H,u as mt,x as ht}from"./LogStatsScaffold-CLycj3da.js";import{useMemo as U,useState as gt}from"react";import{Fragment as W,jsx as G,jsxs as K}from"react/jsx-runtime";import{enumValueOf as q}from"@fudanda/shared/core";import _t from"dayjs";import{useFilterQuery as vt}from"@fudanda/react-core/hooks/useFilterQuery";import{useListSearch as yt}from"@fudanda/react-core/hooks/useListSearch";import{formatDateTimeRangeForApi as bt,parseDateTimeParam as xt,shortDate as St}from"@fudanda/react-core/utils/date";import{useListDeepLink as Ct}from"@fudanda/react-core/hooks/useListDeepLink";import{LOGIN_EVENT_TYPES as wt,LOGIN_EVENT_TYPE_OPTIONS as Tt,LOGIN_STATUSES as Et,LOGIN_STATUS_OPTIONS as Dt}from"@fudanda/shared/identity";import{useUrlTabState as Ot}from"@fudanda/react-core/hooks/useUrlTabState";import{buildUserChartLabels as kt}from"@fudanda/react-core/utils/user-labels";import{loginLogKeys as At,useCleanLoginLogs as jt,useLoginLogList as Mt,useLoginLogStats as Nt}from"@fudanda/react-core/hooks/queries/login-logs";var J,Pt;function Ft(){return(Ft=e((()=>{I(),Ze(),w(),Ke(),De(),J=class e extends Oe{constructor(){super(...arguments),this.type=e.type}_getDefaultStyle(){return Object.assign(Object.assign({},super._getDefaultStyle()),{fill:void 0,lineWidth:0,padding:0})}_createGraphic(e={}){return Xe(e)}_transformGraphicAttributes(e,t,n){let r=super._transformGraphicAttributes(e,t,n),i=r.shape??r.symbolType??e.attribute?.symbolType;return r.symbolType=qe(i)?`rect`:i,r}},J.type=`cell`,Pt=()=>{N.registerMark(J.type,J),N.registerGraphicComponent(`symbol`,Xe),Ye(),$e(),Qe()}})))()}function It(e){return!1===e?{}:{type:`fadeIn`}}var Lt;function Rt(){return(Rt=e((()=>{I(),Le(),Lt=()=>{N.registerAnimation(`heatmap`,((e,t)=>Object.assign(Object.assign({},Ee),{appear:It(t)})))}})))()}var zt;function Bt(){return(Bt=e((()=>{be(),zt=class extends ae{enableByType(e){return e!==`dimension`}}})))()}var Vt;function Ht(){return(Ht=e((()=>{se(),Vt=Object.assign(Object.assign({},re),{cell:{name:`cell`,type:`cell`},cellBackground:{name:`cellBackground`,type:`cell`}})})))()}var Y;function Ut(){return(Ut=e((()=>{S(),Y=class extends Me{_transformLabelSpec(e){this._addMarkLabelSpec(e,`cell`)}}})))()}var X;function Wt(){return(Wt=e((()=>{X={cell:{style:{shape:`rect`,fillOpacity:1}},cellBackground:{visible:!1},label:{style:{lineWidth:2}}}})))()}var Gt,Z,Kt;function qt(){return(qt=e((()=>{Ft(),T(),ge(),Rt(),le(),ye(),F(),Ue(),We(),Bt(),Ht(),I(),he(),Ut(),te(),ve(),Wt(),Gt={valueField:!0},Z=class e extends pe{constructor(){super(...arguments),this.type=j.heatmap,this.transformerConstructor=Y}getFieldValue(){return this._fieldValue}setFieldValue(e){this._fieldValue=Ge(e)}_getSpecUpdatePolicy(){let e=super._getSpecUpdatePolicy();return Object.assign(Object.assign({},e),{dataRelatedKeys:Object.assign(Object.assign({},e.dataRelatedKeys),Gt)})}setAttrFromSpec(){super.setAttrFromSpec(),this.setFieldValue(this._spec.valueField)}initMark(){this._cellMark=this._createMark(e.mark.cell,{isSeriesMark:!0},{morph:fe(this._spec,e.mark.cell.name),morphElementKey:this.getDimensionField()[0]}),this._backgroundMark=this._createMark(e.mark.cellBackground)}initMarkStyle(){this.initCellMarkStyle(),this.initCellBackgroundMarkStyle()}initLabelMarkStyle(e){e&&this.setMarkStyle(e,{fill:this._spec.cell?.style?.fill??this.getColorAttribute(),text:e=>e[this.getMeasureField()[0]]})}initCellMarkStyle(){this.setMarkStyle(this._cellMark,{x:e=>this.dataToPositionX(e),y:e=>this.dataToPositionY(e),size:()=>[this.getCellSize(this._xAxisHelper),this.getCellSize(this._yAxisHelper)],fill:this.getColorAttribute()},`normal`,Ve.Series)}initCellBackgroundMarkStyle(){let e=Je(this._spec.cellBackground?.style?.padding??0);this.setMarkStyle(this._backgroundMark,{x:t=>{let n=this.getCellSize(this._xAxisHelper);return this.dataToPositionX(t)-n/2+e[3]},y:t=>{let n=this.getCellSize(this._yAxisHelper);return this.dataToPositionY(t)-n/2+e[0]},width:()=>this.getCellSize(this._xAxisHelper)-e[1]-e[3],height:()=>this.getCellSize(this._yAxisHelper)-e[0]-e[2]},`normal`,Ve.Series)}getColorAttribute(){return{scale:this._option.globalScale.getScale(`color`)??this._getDefaultColorScale(),field:this.getFieldValue()[0]}}getInteractionTriggers(){return this._parseInteractionConfig(this._cellMark?[this._cellMark]:[])}initAnimation(){let e=this._spec?.animationAppear?.preset,t=Be(this);this._cellMark.setAnimationConfig(je(N.getAnimationInKey(`heatmap`)?.(e),O(`cell`,this._spec,this._markAttributeContext),t))}getCellSize(e){return e.getBandwidth?.call(e,0)??6}initTooltip(){this._tooltipHelper=new zt(this),this._cellMark&&this._tooltipHelper.activeTriggerSet.mark.add(this._cellMark)}getDefaultShapeType(){return`rect`}getDimensionField(){return[].concat(this.fieldX,this.fieldY)}getMeasureField(){return this.getFieldValue()}getActiveMarks(){return[this._cellMark]}},Z.type=j.heatmap,Z.mark=Vt,Z.builtInTheme={heatmap:X},Z.transformerConstructor=Y,Kt=()=>{xe(),Pt(),Lt(),k(),_e(),N.registerSeries(Z.type,Z)}})))()}var Q;function Jt(){return(Jt=e((()=>{de(),Q=class extends ue{_getDefaultSeriesSpec(e){return super._getDefaultSeriesSpec(e,[`valueField`,`cell`])}}})))()}var $,Yt;function Xt(){return(Xt=e((()=>{F(),qt(),I(),Jt(),ce(),Ce(),$=class extends ie{constructor(){super(...arguments),this.transformerConstructor=Q,this.type=`heatmap`,this.seriesType=j.heatmap}},$.type=`heatmap`,$.seriesType=j.heatmap,$.transformerConstructor=Q,Yt=()=>{Re(),Kt(),N.registerChart($.type,$)}})))()}var Zt;function Qt(){return(Qt=e((()=>{Ae(),Xt(),ne(),E(),ze(),Zt=D(`HeatmapChart`,{type:`heatmap`,vchartConstructor:Fe},[Yt,oe,...me])})))()}function $t(e){let t=(/\(([^)]+)\)/.exec(e)?.[1]??e).split(`,`).map(e=>e.trim());return(t[1]||t[0]||e).slice(0,40)}function en(){let e=He(),[t,n]=gt(30),r=Nt({days:t}),i=r.data??null,a=U(()=>{if(!i)return[];let e=new Map(i.dailyStats.map(e=>[e.date,e])),n=_t();return Array.from({length:t},(r,i)=>{let a=n.subtract(t-1-i,`day`).format(`YYYY-MM-DD`);return e.get(a)??{date:a,count:0,successCount:0,failCount:0}})},[i,t]),s=U(()=>rt(i?.dailyStats),[i]),{userChartData:c,userChartTitleOf:l}=U(()=>{let e=[...i?.userStats??[]].reverse(),{nameOf:t,fullOf:n}=kt(e);return{userChartData:e.map(e=>({name:t(e),count:e.count})),userChartTitleOf:e=>n.get(e)??e}},[i]),u=U(()=>[...i?.ipFailStats??[]].reverse().map(e=>({name:e.ip,count:e.count})),[i]),d=U(()=>(i?.hourlyStats??[]).map(e=>({name:`${String(e.hour).padStart(2,`0`)}:00`,count:e.count})),[i]),f=U(()=>(i?.browserStats??[]).map(e=>({name:e.browser,value:e.count})),[i]),m=U(()=>(i?.osStats??[]).map(e=>({name:e.os,value:e.count})),[i]),g=U(()=>(i?.failReasonStats??[]).map(e=>({name:e.message,value:e.count})),[i]),_=U(()=>[...i?.locationStats??[]].reverse().map(e=>({name:e.location,count:e.count})),[i]),v=U(()=>[...i?.resolutionStats??[]].reverse().map(e=>({name:e.resolution,count:e.count})),[i]),y=U(()=>[...i?.gpuStats??[]].reverse().map(e=>({name:$t(e.gpu),count:e.count})),[i]),b=U(()=>(i?.dowHourStats??[]).map(e=>({hour:`${String(e.hour).padStart(2,`0`)}h`,weekday:ft[e.dow-1]??`周${e.dow}`,count:e.count})),[i]),x=i?.summary,S=i?.prevSummary,C=st(x),w=tt(x,S),T=U(()=>x?[{name:`成功`,value:x.successCount},{name:`失败`,value:x.failCount}]:[],[x]),E=U(()=>we({data:a,xField:`date`,series:[{field:`successCount`,name:`成功`,color:e.success},{field:`failCount`,name:`失败`,color:e.danger}],palette:e,point:t<=7,pointSize:6,fillOpacity:.26,axis:{xLabel:St},tooltip:{title:e=>`日期:${e}`,value:e=>`${e} 次`}}),[t,a,e]),D=U(()=>P({data:c,xField:`name`,series:[{field:`count`,name:`登录次数`,color:e.success}],palette:e,horizontal:!0,barMinHeight:3,cornerRadius:5,showLabel:!0,labelColor:e.success,categoryAxisWidth:96,tooltip:{title:l,value:e=>`${e} 次`}}),[e,c,l]),O=U(()=>P({data:u,xField:`name`,series:[{field:`count`,name:`失败次数`,color:e.risk}],palette:e,horizontal:!0,barMinHeight:3,cornerRadius:5,showLabel:!0,labelColor:e.risk,categoryAxisWidth:120,tooltip:{value:e=>`${e} 次`}}),[u,e]),k=U(()=>P({data:d,xField:`name`,series:[{field:`count`,name:`登录次数`,color:e.active}],palette:e,barMaxWidth:18,axis:{xLabel:e=>e.replace(`:00`,`h`)},tooltip:{title:e=>`${e} - ${e.replace(`:00`,`:59`)}`,value:e=>`${e} 次`}}),[d,e]),te=U(()=>R({data:T,categoryField:`name`,valueField:`value`,palette:e,donut:!0,colors:[e.success,e.danger],outerRadius:.86,innerRadius:.58,padAngle:1.5,cornerRadius:5,label:`value`,labelPosition:`inside`,labelColor:`#fff`,labelFontSize:12,indicator:{title:C==null?`--`:`${C}%`,subtitle:`成功率`},indicatorTitleFontSize:28,tooltipKey:`次数`,valueUnit:`次`}),[e,T,C]),ne=U(()=>R({data:f,categoryField:`name`,valueField:`value`,palette:e,donut:!0,innerRadius:.48,outerRadius:.82,padAngle:1,cornerRadius:3,legendLabelFontSize:11,tooltipKey:`访问次数`,valueUnit:`次`}),[f,e]),re=U(()=>R({data:m,categoryField:`name`,valueField:`value`,palette:e,donut:!0,innerRadius:.48,outerRadius:.82,padAngle:1,cornerRadius:3,legendLabelFontSize:11,tooltipKey:`访问次数`,valueUnit:`次`}),[m,e]),ie=U(()=>P({data:s,xField:`name`,series:[{field:`count`,name:`登录次数`,color:e.primary}],palette:e,showLabel:!0,tooltip:{value:e=>`${e} 次`}}),[s,e]),ae=U(()=>R({data:g,categoryField:`name`,valueField:`value`,palette:e,donut:!0,innerRadius:.48,outerRadius:.82,padAngle:1,cornerRadius:3,legendLabelFontSize:11,tooltipKey:`失败次数`,valueUnit:`次`}),[g,e]),oe=U(()=>P({data:_,xField:`name`,series:[{field:`count`,name:`登录次数`,color:e.active}],palette:e,horizontal:!0,barMinHeight:3,cornerRadius:5,showLabel:!0,labelColor:e.active,categoryAxisWidth:120,tooltip:{value:e=>`${e} 次`}}),[_,e]),se=U(()=>P({data:v,xField:`name`,series:[{field:`count`,name:`登录次数`,color:e.dataColors[4]??e.primary}],palette:e,horizontal:!0,barMinHeight:3,cornerRadius:5,showLabel:!0,categoryAxisWidth:96,tooltip:{value:e=>`${e} 次`}}),[v,e]),ce=U(()=>P({data:y,xField:`name`,series:[{field:`count`,name:`登录次数`,color:e.dataColors[6]??e.primary}],palette:e,horizontal:!0,barMinHeight:3,cornerRadius:5,showLabel:!0,categoryAxisWidth:150,tooltip:{value:e=>`${e} 次`}}),[y,e]),le=U(()=>Ie({data:b,xField:`hour`,yField:`weekday`,valueField:`count`,palette:e,tooltip:{title:e=>`${e?.weekday??``} ${e?.hour??``}`,valueName:`登录次数`,value:e=>`${e} 次`}}),[b,e]);return/* @__PURE__ */ K(lt,{days:t,onDaysChange:n,loading:r.isLoading,fetching:r.isFetching,children:[/* @__PURE__ */ K(Ne,{style:{marginBottom:16},children:[/* @__PURE__ */ G(L,{title:`总登录次数`,value:x?x.total.toLocaleString():o,sub:`近 ${t} 天累计`,icon:/* @__PURE__ */ G(ee,{size:22}),accent:`var(--arc-antd-color-primary)`,delta:x&&S?ut(x.total,S.total):null,deltaLabel:`较上一周期`}),/* @__PURE__ */ G(L,{title:`登录成功率`,value:C==null?o:`${C}%`,sub:x?`成功 ${x.successCount.toLocaleString()} · 失败 ${x.failCount.toLocaleString()}`:void 0,icon:/* @__PURE__ */ G(p,{size:22}),accent:`var(--arc-antd-color-success)`,delta:w,deltaLabel:`较上一周期`,deltaFormat:`ratio`}),/* @__PURE__ */ G(L,{title:`登录失败次数`,value:x?x.failCount.toLocaleString():o,sub:`密码错误、账号锁定等`,icon:/* @__PURE__ */ G(h,{size:22}),accent:x&&x.failCount>0?`var(--arc-antd-color-danger)`:void 0,delta:x&&S?ut(x.failCount,S.failCount):null,deltaLabel:`较上一周期`})]}),/* @__PURE__ */ G(H,{title:`每日登录趋势(成功 / 失败)`,children:z(a)?/* @__PURE__ */ G(V,{height:230}):/* @__PURE__ */ G(nt,{...E,options:M,height:230})}),/* @__PURE__ */ K(`div`,{className:`chart-grid`,style:{marginTop:16,marginBottom:16},children:[/* @__PURE__ */ G(H,{title:`Top 10 登录用户`,children:c.length===0?/* @__PURE__ */ G(V,{}):/* @__PURE__ */ G(A,{...D,options:M,height:260})}),/* @__PURE__ */ G(H,{danger:u.length>0,title:/* @__PURE__ */ K(W,{children:[`失败登录 Top 10 IP`,u.length>0&&/* @__PURE__ */ G(`span`,{style:{fontSize:12,fontWeight:400,marginLeft:8,color:`var(--arc-antd-color-text-2)`},children:`可能存在安全风险`})]}),children:u.length===0?/* @__PURE__ */ G(V,{tone:`success`,text:`该时间段无失败登录`}):/* @__PURE__ */ G(A,{...O,options:M,height:260})})]}),/* @__PURE__ */ K(`div`,{className:`chart-grid`,style:{marginBottom:16},children:[/* @__PURE__ */ G(H,{title:`按小时登录分布`,children:z(d)?/* @__PURE__ */ G(V,{height:240}):/* @__PURE__ */ G(A,{...k,options:M,height:240})}),/* @__PURE__ */ G(H,{title:`成功 / 失败占比`,children:z(T)?/* @__PURE__ */ G(V,{height:240}):/* @__PURE__ */ G(B,{...te,options:M,height:240})})]}),/* @__PURE__ */ K(`div`,{className:`chart-grid`,style:{marginBottom:16},children:[/* @__PURE__ */ G(H,{title:`浏览器分布`,children:f.length===0?/* @__PURE__ */ G(V,{height:260}):/* @__PURE__ */ G(B,{...ne,options:M,height:260})}),/* @__PURE__ */ G(H,{title:`操作系统分布`,children:m.length===0?/* @__PURE__ */ G(V,{height:260}):/* @__PURE__ */ G(B,{...re,options:M,height:260})})]}),/* @__PURE__ */ K(`div`,{className:`chart-grid`,style:{marginBottom:16},children:[/* @__PURE__ */ G(H,{danger:g.length>0,title:`失败原因分布`,children:g.length===0?/* @__PURE__ */ G(V,{tone:`success`,text:`该时间段无失败登录`,height:260}):/* @__PURE__ */ G(B,{...ae,options:M,height:260})}),/* @__PURE__ */ G(H,{title:`登录地点 Top 10`,children:_.length===0?/* @__PURE__ */ G(V,{height:260}):/* @__PURE__ */ G(A,{...oe,options:M,height:260})})]}),/* @__PURE__ */ G(H,{title:`星期 × 小时登录热力(近 ${t} 天)`,children:z(b)?/* @__PURE__ */ G(V,{height:280}):/* @__PURE__ */ G(Zt,{...le,options:M,height:280})}),/* @__PURE__ */ K(`div`,{className:`chart-grid`,style:{marginTop:16,marginBottom:16},children:[/* @__PURE__ */ G(H,{title:`设备分辨率 Top 8`,children:v.length===0?/* @__PURE__ */ G(V,{height:240}):/* @__PURE__ */ G(A,{...se,options:M,height:240})}),/* @__PURE__ */ G(H,{title:`设备 GPU Top 8`,children:y.length===0?/* @__PURE__ */ G(V,{height:240}):/* @__PURE__ */ G(A,{...ce,options:M,height:240})})]}),/* @__PURE__ */ G(H,{title:`按星期登录分布(近 ${t} 天)`,children:z(s)?/* @__PURE__ */ G(V,{height:220}):/* @__PURE__ */ G(A,{...ie,options:M,height:220})})]})}function tn(){return(tn=e((()=>{g(),f(),m(),ht(),C(),Qt(),et(),ot(),Te(),Se(),ke(),Pe(),pt(),a()})))()}function nn(){let[e,r]=Ot([`list`,`stats`],`list`),a={username:``,eventType:void 0,status:void 0,timeRange:null},{page:o,pageSize:l,setPage:f,buildPagination:p,bind:m,bindKeyword:h,submittedParams:g,handleSearch:ee,handleReset:_,applySearch:v}=yt({defaults:a,listKey:At.lists});Ct([`status`,`startTime`,`endTime`],e=>{let t=xt(e.startTime),n=xt(e.endTime);v({...a,status:q(Et,e.status),timeRange:t&&n?[t,n]:null})},{getNextParams:()=>({tab:`list`})});let b=vt({username:g.username,eventType:q(wt,g.eventType),status:q(Et,g.status),...bt(g.timeRange)}),S=Mt({page:o,pageSize:l,...b}),C=S.data?.list??[],w=S.data?.total??0,T=jt(),E=T.isPending,D=dt({clean:e=>T.mutateAsync({query:{days:e}}),onCleared:()=>f(1)});return/* @__PURE__ */ K(`div`,{className:`page-container page-tabs-page`,children:[/* @__PURE__ */ K(t,{collapsible:`auto`,type:`line`,lazyRender:!0,activeKey:e,onChange:e=>r(e),children:[/* @__PURE__ */ G(n,{tab:`日志列表`,itemKey:`list`,children:/* @__PURE__ */ G(y,{searchConfig:i({keyword:/* @__PURE__ */ G(u,{placeholder:`用户名 / 昵称`,...h(`username`),width:180}),filters:/* @__PURE__ */ K(W,{children:[/* @__PURE__ */ G(c,{placeholder:`全部事件`,items:Tt,...m(`eventType`)}),/* @__PURE__ */ G(s,{items:Dt,...m(`status`)}),/* @__PURE__ */ G(d,{searchLabel:`登录时间`,...m(`timeRange`)})]}),onSearch:ee,onReset:_,actions:/* @__PURE__ */ K(W,{children:[/* @__PURE__ */ G(x,{entity:`system.login-logs`,query:b}),/* @__PURE__ */ G(ct,{loading:E,onClear:D.openClearModal})]}),filterTitle:`登录日志筛选`,actionTitle:`日志操作`}),dataSource:C,loading:S.isFetching,onRefresh:()=>void S.refetch(),pagination:p(w)})}),/* @__PURE__ */ G(n,{tab:`统计分析`,itemKey:`stats`,children:/* @__PURE__ */ G(en,{})})]}),/* @__PURE__ */ G(mt,{logName:`登录日志`,control:D})]})}function rn(){return(rn=e((()=>{_(),r(),b(),v(),it(),at(),tn(),l()})))()}rn();export{nn as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-BKuNeK48.js";import{a as t,l as n,n as r,o as i,t as a}from"./ConfigurableTable-DzmZDd8F.js";import{C as o,a as s,c,y as l}from"./ui-BFsHoY7a.js";import{n as u,t as d}from"./AppModal-DJzQA6FR.js";import{n as f,t as p}from"./UserDisplay-J0Re8z-7.js";import{useMemo as m,useState as h}from"react";import{Fragment as g,jsx as _,jsxs as v}from"react/jsx-runtime";import{formatDateTime as y}from"@fudanda/react-core/utils/date";import{LOGIN_EVENT_TYPE_LABELS as b}from"@fudanda/shared/identity";import{formatUserLabel as x}from"@fudanda/react-core/utils/user-labels";function S({status:e,size:t}){return/* @__PURE__ */ _(l,{color:e===`success`?`green`:`red`,size:t,children:e===`success`?`成功`:`失败`})}function C({eventType:e,size:t}){let n=e??`login`;return/* @__PURE__ */ _(l,{color:T[n],size:t,children:b[n]})}function w({searchConfig:e,dataSource:r,loading:i,pagination:o,onRefresh:l,columnSettings:u,columnSettingsKey:f}){let[b,w]=h(null),T=m(()=>[{title:`ID`,dataIndex:`id`,width:80,defaultHidden:!0},{title:`用户`,dataIndex:`username`,width:160,render:(e,t)=>/* @__PURE__ */ _(p,{username:e,nickname:t.nickname})},{title:`事件`,dataIndex:`eventType`,width:110,render:e=>/* @__PURE__ */ _(C,{eventType:e})},{title:`事件信息`,dataIndex:`message`,minWidth:160,render:n},{title:`IP 地址`,dataIndex:`ip`,width:150,render:e=>e??`-`},{title:`地点`,dataIndex:`location`,width:180,defaultHidden:!0,render:n},{title:`浏览器`,dataIndex:`browser`,width:150,defaultHidden:!0,render:n},{title:`操作系统`,dataIndex:`os`,width:150,defaultHidden:!0,render:n},t(`操作时间`,`createdAt`),{title:`状态`,dataIndex:`status`,width:90,fixed:`right`,render:e=>/* @__PURE__ */ _(S,{status:e})},{title:`操作`,key:`operation`,width:80,fixed:`right`,render:(e,t)=>/* @__PURE__ */ _(s,{theme:`borderless`,type:`primary`,size:`small`,onClick:()=>w(t),children:`详情`})}],[]);return/* @__PURE__ */ v(g,{children:[/* @__PURE__ */ _(a,{searchConfig:e,bordered:!0,columns:T,dataSource:r,loading:i,pagination:o,rowKey:`id`,onRefresh:l,columnSettings:u,columnSettingsKey:f}),/* @__PURE__ */ _(d,{title:`登录日志详情`,visible:b!==null,onCancel:()=>w(null),footer:null,width:560,style:{top:40},children:b&&/* @__PURE__ */ _(c,{data:[{key:`ID`,value:String(b.id)},{key:`用户`,value:x(b.username,b.nickname)},{key:`事件`,value:/* @__PURE__ */ _(C,{eventType:b.eventType,size:`small`})},{key:`状态`,value:/* @__PURE__ */ _(S,{status:b.status,size:`small`})},{key:`事件信息`,value:b.message??`-`},{key:`IP 地址`,value:b.ip??`-`},{key:`地点`,value:`-`},{key:`浏览器`,value:b.browser??`-`},{key:`操作系统`,value:b.os??`-`},{key:`User-Agent`,value:b.userAgent??`-`,span:2},{key:`操作时间`,value:y(b.createdAt),span:2}],column:2,layout:`horizontal`,align:`left`})})]})}var T;function E(){return(E=e((()=>{o(),u(),r(),i(),f(),T={login:`cyan`,logout:`blue`,impersonate:`orange`,impersonate_end:`grey`,kicked:`red`}})))()}export{E as n,w as t};
|