react-public-components 1.2.7 → 1.2.9
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/README.md +181 -109
- package/dist/AnnouncementBar/index.cjs +3 -3
- package/dist/AnnouncementBar/index.js +2 -2
- package/dist/AudioPlayer/index.cjs +3 -3
- package/dist/AudioPlayer/index.js +2 -2
- package/dist/CeilingBox/index.cjs +2 -2
- package/dist/CeilingBox/index.js +1 -1
- package/dist/CodeSnippet/index.cjs +3 -3
- package/dist/CodeSnippet/index.js +2 -2
- package/dist/CollapseBox/index.cjs +3 -3
- package/dist/CollapseBox/index.js +2 -2
- package/dist/ColorPicker/index.cjs +5 -5
- package/dist/ColorPicker/index.js +2 -2
- package/dist/ContextMenu/index.cjs +3 -3
- package/dist/ContextMenu/index.js +2 -2
- package/dist/CopyButton/index.cjs +3 -3
- package/dist/CopyButton/index.js +2 -2
- package/dist/CronPicker/index.cjs +4 -4
- package/dist/CronPicker/index.js +3 -3
- package/dist/DebounceSelect/index.cjs +3 -3
- package/dist/DebounceSelect/index.js +2 -2
- package/dist/DisabledBox/index.cjs +3 -3
- package/dist/DisabledBox/index.js +2 -2
- package/dist/DragSortList/index.cjs +3 -3
- package/dist/DragSortList/index.js +2 -2
- package/dist/FilePreviewer/index.cjs +4 -4
- package/dist/FilePreviewer/index.js +2 -2
- package/dist/Fullscreen/index.cjs +3 -3
- package/dist/Fullscreen/index.js +2 -2
- package/dist/GuidedTour/index.cjs +3 -3
- package/dist/GuidedTour/index.js +2 -2
- package/dist/ImageCropper/index.cjs +3 -3
- package/dist/ImageCropper/index.js +2 -2
- package/dist/InfiniteScrollList/index.cjs +3 -3
- package/dist/InfiniteScrollList/index.js +2 -2
- package/dist/JsonEditor/index.cjs +4 -4
- package/dist/JsonEditor/index.js +3 -3
- package/dist/KeyValEditor/index.cjs +3 -3
- package/dist/KeyValEditor/index.js +2 -2
- package/dist/LazyLoadBox/index.cjs +3 -3
- package/dist/LazyLoadBox/index.js +1 -1
- package/dist/MiniSparkline/index.cjs +2 -2
- package/dist/MiniSparkline/index.js +1 -1
- package/dist/PasswordStrength/index.cjs +4 -4
- package/dist/PasswordStrength/index.js +2 -2
- package/dist/PdfViewer/index.cjs +3 -3
- package/dist/PdfViewer/index.js +2 -2
- package/dist/PeriodSelect/index.cjs +4 -4
- package/dist/PeriodSelect/index.js +1 -1
- package/dist/QrCodeCard/index.cjs +3 -3
- package/dist/QrCodeCard/index.js +2 -2
- package/dist/SensitiveMask/index.cjs +5 -5
- package/dist/SensitiveMask/index.js +3 -3
- package/dist/Splitter/index.cjs +3 -3
- package/dist/Splitter/index.js +2 -2
- package/dist/TagInput/index.cjs +3 -3
- package/dist/TagInput/index.js +2 -2
- package/dist/TextEllipsis/index.cjs +4 -4
- package/dist/TextEllipsis/index.js +3 -3
- package/dist/TreeTransfer/index.cjs +3 -3
- package/dist/TreeTransfer/index.js +2 -2
- package/dist/VideoPlayer/index.cjs +3 -3
- package/dist/VideoPlayer/index.js +2 -2
- package/dist/{chunk-56VELHCH.js → chunk-2SEHUMQH.js} +3 -3
- package/dist/{chunk-56VELHCH.js.map → chunk-2SEHUMQH.js.map} +1 -1
- package/dist/{chunk-2INP6NM4.js → chunk-3WLGM74R.js} +3 -3
- package/dist/{chunk-2INP6NM4.js.map → chunk-3WLGM74R.js.map} +1 -1
- package/dist/{chunk-2IDVNTKR.js → chunk-537T6BR3.js} +32 -8
- package/dist/chunk-537T6BR3.js.map +1 -0
- package/dist/{chunk-XUAHWX6B.js → chunk-5QEXX32M.js} +3 -3
- package/dist/{chunk-XUAHWX6B.js.map → chunk-5QEXX32M.js.map} +1 -1
- package/dist/{chunk-ETFLLRTO.js → chunk-5XTIASJH.js} +3 -3
- package/dist/{chunk-ETFLLRTO.js.map → chunk-5XTIASJH.js.map} +1 -1
- package/dist/{chunk-TNZ2OLGW.cjs → chunk-6KODABJW.cjs} +4 -4
- package/dist/{chunk-TNZ2OLGW.cjs.map → chunk-6KODABJW.cjs.map} +1 -1
- package/dist/{chunk-ZWKUHYTV.cjs → chunk-6WCWYSFU.cjs} +6 -6
- package/dist/{chunk-ZWKUHYTV.cjs.map → chunk-6WCWYSFU.cjs.map} +1 -1
- package/dist/{chunk-Y54KVULF.js → chunk-7FGE7NRH.js} +11 -4
- package/dist/chunk-7FGE7NRH.js.map +1 -0
- package/dist/{chunk-VJOO2DG3.cjs → chunk-7NXCDDBT.cjs} +8 -8
- package/dist/{chunk-VJOO2DG3.cjs.map → chunk-7NXCDDBT.cjs.map} +1 -1
- package/dist/{chunk-VYPIRVL4.js → chunk-7W7PCWMM.js} +2 -2
- package/dist/chunk-7W7PCWMM.js.map +1 -0
- package/dist/{chunk-NNS4YN3C.js → chunk-B3FMPSBM.js} +10 -4
- package/dist/chunk-B3FMPSBM.js.map +1 -0
- package/dist/{chunk-TUEVILTA.cjs → chunk-BKHKPZ6O.cjs} +5 -5
- package/dist/{chunk-TUEVILTA.cjs.map → chunk-BKHKPZ6O.cjs.map} +1 -1
- package/dist/{chunk-AXPVN2OO.js → chunk-BXLUH6FE.js} +3 -3
- package/dist/{chunk-AXPVN2OO.js.map → chunk-BXLUH6FE.js.map} +1 -1
- package/dist/{chunk-PYCSRJSF.cjs → chunk-CWG7A5DS.cjs} +7 -7
- package/dist/{chunk-PYCSRJSF.cjs.map → chunk-CWG7A5DS.cjs.map} +1 -1
- package/dist/{chunk-YP4XTMK3.cjs → chunk-DTJEY3BC.cjs} +4 -4
- package/dist/{chunk-YP4XTMK3.cjs.map → chunk-DTJEY3BC.cjs.map} +1 -1
- package/dist/{chunk-2EIAWXFA.cjs → chunk-DWG4FUDX.cjs} +5 -5
- package/dist/{chunk-2EIAWXFA.cjs.map → chunk-DWG4FUDX.cjs.map} +1 -1
- package/dist/{chunk-IF4XAUV3.js → chunk-E6EJLQL7.js} +3 -3
- package/dist/{chunk-IF4XAUV3.js.map → chunk-E6EJLQL7.js.map} +1 -1
- package/dist/{chunk-RFTYEXKU.js → chunk-EMQHYD3G.js} +6 -14
- package/dist/chunk-EMQHYD3G.js.map +1 -0
- package/dist/{chunk-O4EABET3.js → chunk-ERPKXNWM.js} +10 -4
- package/dist/chunk-ERPKXNWM.js.map +1 -0
- package/dist/{chunk-QRZ2GVVJ.js → chunk-FJ33L5D7.js} +3 -3
- package/dist/{chunk-QRZ2GVVJ.js.map → chunk-FJ33L5D7.js.map} +1 -1
- package/dist/{chunk-4KMVABTM.js → chunk-FQHPCK3S.js} +4 -6
- package/dist/chunk-FQHPCK3S.js.map +1 -0
- package/dist/{chunk-OLLVIQPL.js → chunk-FT2XGH4D.js} +3 -3
- package/dist/{chunk-OLLVIQPL.js.map → chunk-FT2XGH4D.js.map} +1 -1
- package/dist/{chunk-EMT4NUI5.js → chunk-G76ELHWZ.js} +3 -3
- package/dist/{chunk-EMT4NUI5.js.map → chunk-G76ELHWZ.js.map} +1 -1
- package/dist/{chunk-QU33CY3M.cjs → chunk-IHUBENM6.cjs} +6 -14
- package/dist/chunk-IHUBENM6.cjs.map +1 -0
- package/dist/{chunk-M4FZJALR.js → chunk-J3C46E6G.js} +4 -4
- package/dist/{chunk-M4FZJALR.js.map → chunk-J3C46E6G.js.map} +1 -1
- package/dist/{chunk-UIU6VCEQ.cjs → chunk-JLW5ISIR.cjs} +6 -3
- package/dist/chunk-JLW5ISIR.cjs.map +1 -0
- package/dist/{chunk-UAUP5TJK.cjs → chunk-K4LVWWEE.cjs} +5 -5
- package/dist/{chunk-UAUP5TJK.cjs.map → chunk-K4LVWWEE.cjs.map} +1 -1
- package/dist/{chunk-P5CS7V4W.js → chunk-KJ537QZS.js} +3 -3
- package/dist/{chunk-P5CS7V4W.js.map → chunk-KJ537QZS.js.map} +1 -1
- package/dist/{chunk-U2EBNBGK.cjs → chunk-KSXCVQU3.cjs} +4 -4
- package/dist/{chunk-U2EBNBGK.cjs.map → chunk-KSXCVQU3.cjs.map} +1 -1
- package/dist/{chunk-LFGBZXQH.cjs → chunk-KWL5465Y.cjs} +4 -4
- package/dist/{chunk-LFGBZXQH.cjs.map → chunk-KWL5465Y.cjs.map} +1 -1
- package/dist/{chunk-TUDLE3RT.cjs → chunk-KYM35LPD.cjs} +13 -15
- package/dist/chunk-KYM35LPD.cjs.map +1 -0
- package/dist/{chunk-RN5WU7KA.cjs → chunk-L76JMQUH.cjs} +7 -7
- package/dist/{chunk-RN5WU7KA.cjs.map → chunk-L76JMQUH.cjs.map} +1 -1
- package/dist/{chunk-AHTRLNYK.cjs → chunk-LPDHDZTA.cjs} +5 -5
- package/dist/{chunk-AHTRLNYK.cjs.map → chunk-LPDHDZTA.cjs.map} +1 -1
- package/dist/{chunk-JHVPDKBM.cjs → chunk-LRUSUUPJ.cjs} +6 -6
- package/dist/{chunk-JHVPDKBM.cjs.map → chunk-LRUSUUPJ.cjs.map} +1 -1
- package/dist/{chunk-MQJBUHDB.js → chunk-MWVME3UR.js} +3 -3
- package/dist/{chunk-MQJBUHDB.js.map → chunk-MWVME3UR.js.map} +1 -1
- package/dist/{chunk-OONBZRPV.cjs → chunk-N4UF72SJ.cjs} +4 -4
- package/dist/{chunk-OONBZRPV.cjs.map → chunk-N4UF72SJ.cjs.map} +1 -1
- package/dist/{chunk-EKDJPOA3.cjs → chunk-NKLHMUGB.cjs} +5 -5
- package/dist/{chunk-EKDJPOA3.cjs.map → chunk-NKLHMUGB.cjs.map} +1 -1
- package/dist/{chunk-M3GQ7RCV.cjs → chunk-NZNNDZW4.cjs} +4 -4
- package/dist/{chunk-M3GQ7RCV.cjs.map → chunk-NZNNDZW4.cjs.map} +1 -1
- package/dist/{chunk-UZB7GOEI.cjs → chunk-OLIPC6HC.cjs} +4 -4
- package/dist/{chunk-UZB7GOEI.cjs.map → chunk-OLIPC6HC.cjs.map} +1 -1
- package/dist/{chunk-PTFKE67K.js → chunk-OOH3YSNC.js} +3 -3
- package/dist/{chunk-PTFKE67K.js.map → chunk-OOH3YSNC.js.map} +1 -1
- package/dist/{chunk-Q7OVUH5K.js → chunk-OXBOWSLR.js} +3 -3
- package/dist/{chunk-Q7OVUH5K.js.map → chunk-OXBOWSLR.js.map} +1 -1
- package/dist/{chunk-EDNBPLUS.js → chunk-P7P3UVGN.js} +3 -3
- package/dist/{chunk-EDNBPLUS.js.map → chunk-P7P3UVGN.js.map} +1 -1
- package/dist/{chunk-ANTFNDH4.js → chunk-Q2M3ZE7E.js} +3 -3
- package/dist/{chunk-ANTFNDH4.js.map → chunk-Q2M3ZE7E.js.map} +1 -1
- package/dist/{chunk-W5JA3YTT.js → chunk-Q3Z6OWKR.js} +3 -3
- package/dist/{chunk-W5JA3YTT.js.map → chunk-Q3Z6OWKR.js.map} +1 -1
- package/dist/{chunk-R4V3EJVP.cjs → chunk-QMLDK2DL.cjs} +32 -8
- package/dist/chunk-QMLDK2DL.cjs.map +1 -0
- package/dist/{chunk-PUMVD7CP.js → chunk-QVTQQB6M.js} +3 -3
- package/dist/{chunk-PUMVD7CP.js.map → chunk-QVTQQB6M.js.map} +1 -1
- package/dist/{chunk-ZCBT56AG.js → chunk-RBX6VEKI.js} +3 -3
- package/dist/{chunk-ZCBT56AG.js.map → chunk-RBX6VEKI.js.map} +1 -1
- package/dist/{chunk-4TMBGQQE.cjs → chunk-S35SIDXQ.cjs} +5 -5
- package/dist/{chunk-4TMBGQQE.cjs.map → chunk-S35SIDXQ.cjs.map} +1 -1
- package/dist/{chunk-CURWX7OY.js → chunk-SCVOSNWF.js} +3 -3
- package/dist/{chunk-CURWX7OY.js.map → chunk-SCVOSNWF.js.map} +1 -1
- package/dist/{chunk-ZXMFWVE4.cjs → chunk-SG7Z432O.cjs} +11 -5
- package/dist/chunk-SG7Z432O.cjs.map +1 -0
- package/dist/{chunk-FZH5FL7X.cjs → chunk-THZFDBJM.cjs} +12 -5
- package/dist/chunk-THZFDBJM.cjs.map +1 -0
- package/dist/{chunk-HKALWFWZ.cjs → chunk-TWL3QEFV.cjs} +5 -5
- package/dist/{chunk-HKALWFWZ.cjs.map → chunk-TWL3QEFV.cjs.map} +1 -1
- package/dist/{chunk-XLOGMDAQ.js → chunk-U4VZGKQV.js} +3 -3
- package/dist/{chunk-XLOGMDAQ.js.map → chunk-U4VZGKQV.js.map} +1 -1
- package/dist/{chunk-EJYTTSW6.js → chunk-VAU4USHW.js} +3 -3
- package/dist/{chunk-EJYTTSW6.js.map → chunk-VAU4USHW.js.map} +1 -1
- package/dist/{chunk-HSYTBMLN.cjs → chunk-VVKYGA2T.cjs} +9 -3
- package/dist/chunk-VVKYGA2T.cjs.map +1 -0
- package/dist/{chunk-JNA5AQ2K.js → chunk-VY4XERM4.js} +3 -3
- package/dist/{chunk-JNA5AQ2K.js.map → chunk-VY4XERM4.js.map} +1 -1
- package/dist/{chunk-V55FEQYU.cjs → chunk-W52O3Y2I.cjs} +2 -2
- package/dist/chunk-W52O3Y2I.cjs.map +1 -0
- package/dist/{chunk-7ZBA4NHH.cjs → chunk-W7LZVHTA.cjs} +4 -4
- package/dist/{chunk-7ZBA4NHH.cjs.map → chunk-W7LZVHTA.cjs.map} +1 -1
- package/dist/{chunk-5Q7THN6M.js → chunk-WLAHW5RF.js} +6 -3
- package/dist/chunk-WLAHW5RF.js.map +1 -0
- package/dist/{chunk-IPS7PC3M.cjs → chunk-X5X4YABT.cjs} +13 -13
- package/dist/{chunk-IPS7PC3M.cjs.map → chunk-X5X4YABT.cjs.map} +1 -1
- package/dist/{chunk-WKF4C6TJ.js → chunk-XLPOXPOV.js} +3 -3
- package/dist/{chunk-WKF4C6TJ.js.map → chunk-XLPOXPOV.js.map} +1 -1
- package/dist/{chunk-QP3RKA4J.cjs → chunk-XM6J7F5X.cjs} +4 -4
- package/dist/{chunk-QP3RKA4J.cjs.map → chunk-XM6J7F5X.cjs.map} +1 -1
- package/dist/{chunk-ED3ZG2VX.cjs → chunk-ZR56U55S.cjs} +5 -5
- package/dist/{chunk-ED3ZG2VX.cjs.map → chunk-ZR56U55S.cjs.map} +1 -1
- package/dist/{chunk-77ANKL4K.cjs → chunk-ZRNAJCZI.cjs} +8 -8
- package/dist/{chunk-77ANKL4K.cjs.map → chunk-ZRNAJCZI.cjs.map} +1 -1
- package/dist/index.cjs +73 -73
- package/dist/index.js +32 -32
- package/dist/src/icons.d.ts +6 -6
- package/dist/src/index.d.ts +2 -2
- package/package.json +1 -1
- package/dist/chunk-2IDVNTKR.js.map +0 -1
- package/dist/chunk-4KMVABTM.js.map +0 -1
- package/dist/chunk-5Q7THN6M.js.map +0 -1
- package/dist/chunk-FZH5FL7X.cjs.map +0 -1
- package/dist/chunk-HSYTBMLN.cjs.map +0 -1
- package/dist/chunk-NNS4YN3C.js.map +0 -1
- package/dist/chunk-O4EABET3.js.map +0 -1
- package/dist/chunk-QU33CY3M.cjs.map +0 -1
- package/dist/chunk-R4V3EJVP.cjs.map +0 -1
- package/dist/chunk-RFTYEXKU.js.map +0 -1
- package/dist/chunk-TUDLE3RT.cjs.map +0 -1
- package/dist/chunk-UIU6VCEQ.cjs.map +0 -1
- package/dist/chunk-V55FEQYU.cjs.map +0 -1
- package/dist/chunk-VYPIRVL4.js.map +0 -1
- package/dist/chunk-Y54KVULF.js.map +0 -1
- package/dist/chunk-ZXMFWVE4.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../FilePreviewer/index.tsx"],"names":[],"mappings":"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","file":"chunk-56VELHCH.js","sourcesContent":["import React, { useState, useEffect, ReactNode, CSSProperties } from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n\tCloseOutlined,\n\tRotateRightOutlined,\n\tZoomInOutlined,\n\tZoomOutOutlined,\n\tDownloadOutlined,\n\tFilePdfOutlined,\n\tFileImageOutlined,\n\tFileTextOutlined,\n\tFileOutlined,\n} from '../src/icons';\nimport './index.less';\n\nexport type FileType = 'image' | 'video' | 'audio' | 'pdf' | 'text' | 'unknown';\n\nexport interface FileItem {\n\t/** 文件访问 URL 或 Base64 */\n\turl: string;\n\t/** 文件名称 */\n\tname?: string;\n\t/** 文件类型(如不传则根据文件名后缀或 URL 自动推断) */\n\tfileType?: FileType;\n\t/** 文件大小描述(如 '2.4 MB') */\n\tsize?: string;\n\t/** 纯文本内容(针对直接传入 text 字符串预览) */\n\ttextContent?: string;\n}\n\nexport interface FilePreviewerProps {\n\t/** 是否打开预览弹窗 */\n\topen: boolean;\n\t/** 当前预览的文件对象或 URL 字符串 */\n\tfile?: FileItem | string | null;\n\t/** 关闭弹窗回调 */\n\tonCancel?: () => void;\n\t/** 自定义下载行为(不传时使用默认浏览器下载) */\n\tonDownload?: (file: FileItem) => void;\n\t/** 自定义标题栏右侧额外操作按钮 */\n\textraActions?: ReactNode;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\n// 根据文件名或 URL 后缀推断文件类型\nexport function inferFileType(urlOrName: string): FileType {\n\tif (!urlOrName) return 'unknown';\n\tconst clean = urlOrName.split('?')[0].split('#')[0].toLowerCase();\n\tconst ext = clean.substring(clean.lastIndexOf('.') + 1);\n\n\tif (['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg', 'bmp', 'ico'].includes(ext)) {\n\t\treturn 'image';\n\t}\n\tif (['mp4', 'webm', 'ogg', 'mov', 'mkv'].includes(ext)) {\n\t\treturn 'video';\n\t}\n\tif (['mp3', 'wav', 'aac', 'flac', 'm4a'].includes(ext)) {\n\t\treturn 'audio';\n\t}\n\tif (['pdf'].includes(ext)) {\n\t\treturn 'pdf';\n\t}\n\tif (\n\t\t['txt', 'json', 'js', 'ts', 'jsx', 'tsx', 'html', 'css', 'less', 'md', 'log', 'xml'].includes(\n\t\t\text,\n\t\t)\n\t) {\n\t\treturn 'text';\n\t}\n\treturn 'unknown';\n}\n\nconst FilePreviewer: React.FC<FilePreviewerProps> & {\n\tpreview: (options: FileItem) => { close: () => void };\n} = ({ open, file, onCancel, onDownload, extraActions, className = '', style }) => {\n\t// 图片控制状态\n\tconst [imageScale, setImageScale] = useState<number>(1);\n\tconst [imageRotate, setImageRotate] = useState<number>(0);\n\n\tuseEffect(() => {\n\t\tif (open) {\n\t\t\tsetImageScale(1);\n\t\t\tsetImageRotate(0);\n\t\t}\n\t}, [open, file]);\n\n\tif (!open || !file) return null;\n\n\tconst currentFile: FileItem =\n\t\ttypeof file === 'string'\n\t\t\t? { url: file, name: file.substring(file.lastIndexOf('/') + 1) }\n\t\t\t: file;\n\n\tconst type: FileType = currentFile.fileType || inferFileType(currentFile.name || currentFile.url);\n\n\t// 默认下载处理\n\tconst handleDefaultDownload = () => {\n\t\tif (onDownload) {\n\t\t\tonDownload(currentFile);\n\t\t\treturn;\n\t\t}\n\t\tconst a = document.createElement('a');\n\t\ta.href = currentFile.url;\n\t\ta.download = currentFile.name || 'download';\n\t\ta.target = '_blank';\n\t\tdocument.body.appendChild(a);\n\t\ta.click();\n\t\ta.remove();\n\t};\n\n\t// 渲染文件图标\n\tconst renderFileIcon = () => {\n\t\tswitch (type) {\n\t\t\tcase 'image':\n\t\t\t\treturn <FileImageOutlined style={{ color: '#1677ff' }} />;\n\t\t\tcase 'pdf':\n\t\t\t\treturn <FilePdfOutlined style={{ color: '#ff4d4f' }} />;\n\t\t\tcase 'text':\n\t\t\t\treturn <FileTextOutlined style={{ color: '#52c41a' }} />;\n\t\t\tdefault:\n\t\t\t\treturn <FileOutlined style={{ color: '#8c8c8c' }} />;\n\t\t}\n\t};\n\n\t// 渲染主体内容\n\tconst renderBodyContent = () => {\n\t\tswitch (type) {\n\t\t\tcase 'image':\n\t\t\t\treturn (\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={currentFile.url}\n\t\t\t\t\t\talt={currentFile.name || 'Preview'}\n\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_image\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\ttransform: `scale(${imageScale}) rotate(${imageRotate}deg)`,\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'video':\n\t\t\t\treturn (\n\t\t\t\t\t<video\n\t\t\t\t\t\tsrc={currentFile.url}\n\t\t\t\t\t\tcontrols\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_media\"\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'audio':\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_audio_wrap\">\n\t\t\t\t\t\t<div style={{ fontSize: 48 }}>🎵</div>\n\t\t\t\t\t\t<div style={{ fontSize: 16, fontWeight: 600 }}>{currentFile.name || '音频播放'}</div>\n\t\t\t\t\t\t<audio src={currentFile.url} controls autoPlay style={{ width: 320 }} />\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\tcase 'pdf':\n\t\t\t\treturn (\n\t\t\t\t\t<iframe\n\t\t\t\t\t\tsrc={currentFile.url}\n\t\t\t\t\t\ttitle={currentFile.name || 'PDF Preview'}\n\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_iframe\"\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'text':\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_text_wrap\">\n\t\t\t\t\t\t{currentFile.textContent || '正在加载文件内容...'}\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_fallback_card\">\n\t\t\t\t\t\t<div style={{ fontSize: 48, color: '#8c8c8c' }}>📦</div>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<h4 style={{ margin: '0 0 6px 0', fontSize: 16, color: '#1f1f1f' }}>\n\t\t\t\t\t\t\t\t{currentFile.name || '未知文件'}\n\t\t\t\t\t\t\t</h4>\n\t\t\t\t\t\t\t<p style={{ margin: 0, color: '#8c8c8c', fontSize: 13 }}>\n\t\t\t\t\t\t\t\t该格式暂不支持直接在线预览,请下载后在本地查看。\n\t\t\t\t\t\t\t\t{currentFile.size ? `(${currentFile.size})` : ''}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tonClick={handleDefaultDownload}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: 'inline-flex',\n\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\tgap: 6,\n\t\t\t\t\t\t\t\tpadding: '8px 20px',\n\t\t\t\t\t\t\t\tbackground: '#1677ff',\n\t\t\t\t\t\t\t\tcolor: '#fff',\n\t\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\t\tborderRadius: 6,\n\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\tfontSize: 14,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DownloadOutlined /> 立即下载\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t}\n\t};\n\n\treturn ReactDOM.createPortal(\n\t\t<div className={`rpc_file_previewer_modal ${className}`} onClick={onCancel} style={style}>\n\t\t\t<div className=\"rpc_file_previewer_modal_card\" onClick={(e) => e.stopPropagation()}>\n\t\t\t\t{/* 顶部标题栏与工具栏 */}\n\t\t\t\t<div className=\"rpc_file_previewer_modal_header\">\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_title\">\n\t\t\t\t\t\t{renderFileIcon()}\n\t\t\t\t\t\t<span>{currentFile.name || '文件预览'}</span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_actions\">\n\t\t\t\t\t\t{type === 'image' && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\t\t\tonClick={() => setImageScale((s) => Math.min(s + 0.2, 3))}\n\t\t\t\t\t\t\t\t\ttitle=\"放大\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ZoomInOutlined />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\t\t\tonClick={() => setImageScale((s) => Math.max(s - 0.2, 0.4))}\n\t\t\t\t\t\t\t\t\ttitle=\"缩小\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ZoomOutOutlined />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\t\t\tonClick={() => setImageRotate((r) => (r + 90) % 360)}\n\t\t\t\t\t\t\t\t\ttitle=\"顺时针旋转90°\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<RotateRightOutlined />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\tonClick={handleDefaultDownload}\n\t\t\t\t\t\t\ttitle=\"下载文件\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DownloadOutlined />\n\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t{extraActions}\n\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\tonClick={onCancel}\n\t\t\t\t\t\t\ttitle=\"关闭预览 (ESC)\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CloseOutlined />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* 预览主体内容区域 */}\n\t\t\t\t<div className=\"rpc_file_previewer_modal_body\">{renderBodyContent()}</div>\n\t\t\t</div>\n\t\t</div>,\n\t\tdocument.body,\n\t);\n};\n\n// 命令式调用方法\nFilePreviewer.preview = (options: FileItem) => {\n\tconst div = document.createElement('div');\n\tdocument.body.appendChild(div);\n\n\tconst close = () => {\n\t\tReactDOM.render(<></>, div);\n\t\tdiv.remove();\n\t};\n\n\tReactDOM.render(<FilePreviewer open={true} file={options} onCancel={close} />, div);\n\n\treturn { close };\n};\n\nexport default FilePreviewer;\n"]}
|
|
1
|
+
{"version":3,"sources":["../FilePreviewer/index.tsx"],"names":[],"mappings":"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","file":"chunk-2SEHUMQH.js","sourcesContent":["import React, { useState, useEffect, ReactNode, CSSProperties } from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n\tCloseOutlined,\n\tRotateRightOutlined,\n\tZoomInOutlined,\n\tZoomOutOutlined,\n\tDownloadOutlined,\n\tFilePdfOutlined,\n\tFileImageOutlined,\n\tFileTextOutlined,\n\tFileOutlined,\n} from '../src/icons';\nimport './index.less';\n\nexport type FileType = 'image' | 'video' | 'audio' | 'pdf' | 'text' | 'unknown';\n\nexport interface FileItem {\n\t/** 文件访问 URL 或 Base64 */\n\turl: string;\n\t/** 文件名称 */\n\tname?: string;\n\t/** 文件类型(如不传则根据文件名后缀或 URL 自动推断) */\n\tfileType?: FileType;\n\t/** 文件大小描述(如 '2.4 MB') */\n\tsize?: string;\n\t/** 纯文本内容(针对直接传入 text 字符串预览) */\n\ttextContent?: string;\n}\n\nexport interface FilePreviewerProps {\n\t/** 是否打开预览弹窗 */\n\topen: boolean;\n\t/** 当前预览的文件对象或 URL 字符串 */\n\tfile?: FileItem | string | null;\n\t/** 关闭弹窗回调 */\n\tonCancel?: () => void;\n\t/** 自定义下载行为(不传时使用默认浏览器下载) */\n\tonDownload?: (file: FileItem) => void;\n\t/** 自定义标题栏右侧额外操作按钮 */\n\textraActions?: ReactNode;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\n// 根据文件名或 URL 后缀推断文件类型\nexport function inferFileType(urlOrName: string): FileType {\n\tif (!urlOrName) return 'unknown';\n\tconst clean = urlOrName.split('?')[0].split('#')[0].toLowerCase();\n\tconst ext = clean.substring(clean.lastIndexOf('.') + 1);\n\n\tif (['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg', 'bmp', 'ico'].includes(ext)) {\n\t\treturn 'image';\n\t}\n\tif (['mp4', 'webm', 'ogg', 'mov', 'mkv'].includes(ext)) {\n\t\treturn 'video';\n\t}\n\tif (['mp3', 'wav', 'aac', 'flac', 'm4a'].includes(ext)) {\n\t\treturn 'audio';\n\t}\n\tif (['pdf'].includes(ext)) {\n\t\treturn 'pdf';\n\t}\n\tif (\n\t\t['txt', 'json', 'js', 'ts', 'jsx', 'tsx', 'html', 'css', 'less', 'md', 'log', 'xml'].includes(\n\t\t\text,\n\t\t)\n\t) {\n\t\treturn 'text';\n\t}\n\treturn 'unknown';\n}\n\nconst FilePreviewer: React.FC<FilePreviewerProps> & {\n\tpreview: (options: FileItem) => { close: () => void };\n} = ({ open, file, onCancel, onDownload, extraActions, className = '', style }) => {\n\t// 图片控制状态\n\tconst [imageScale, setImageScale] = useState<number>(1);\n\tconst [imageRotate, setImageRotate] = useState<number>(0);\n\n\tuseEffect(() => {\n\t\tif (open) {\n\t\t\tsetImageScale(1);\n\t\t\tsetImageRotate(0);\n\t\t}\n\t}, [open, file]);\n\n\tif (!open || !file) return null;\n\n\tconst currentFile: FileItem =\n\t\ttypeof file === 'string'\n\t\t\t? { url: file, name: file.substring(file.lastIndexOf('/') + 1) }\n\t\t\t: file;\n\n\tconst type: FileType = currentFile.fileType || inferFileType(currentFile.name || currentFile.url);\n\n\t// 默认下载处理\n\tconst handleDefaultDownload = () => {\n\t\tif (onDownload) {\n\t\t\tonDownload(currentFile);\n\t\t\treturn;\n\t\t}\n\t\tconst a = document.createElement('a');\n\t\ta.href = currentFile.url;\n\t\ta.download = currentFile.name || 'download';\n\t\ta.target = '_blank';\n\t\tdocument.body.appendChild(a);\n\t\ta.click();\n\t\ta.remove();\n\t};\n\n\t// 渲染文件图标\n\tconst renderFileIcon = () => {\n\t\tswitch (type) {\n\t\t\tcase 'image':\n\t\t\t\treturn <FileImageOutlined style={{ color: '#1677ff' }} />;\n\t\t\tcase 'pdf':\n\t\t\t\treturn <FilePdfOutlined style={{ color: '#ff4d4f' }} />;\n\t\t\tcase 'text':\n\t\t\t\treturn <FileTextOutlined style={{ color: '#52c41a' }} />;\n\t\t\tdefault:\n\t\t\t\treturn <FileOutlined style={{ color: '#8c8c8c' }} />;\n\t\t}\n\t};\n\n\t// 渲染主体内容\n\tconst renderBodyContent = () => {\n\t\tswitch (type) {\n\t\t\tcase 'image':\n\t\t\t\treturn (\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={currentFile.url}\n\t\t\t\t\t\talt={currentFile.name || 'Preview'}\n\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_image\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\ttransform: `scale(${imageScale}) rotate(${imageRotate}deg)`,\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'video':\n\t\t\t\treturn (\n\t\t\t\t\t<video\n\t\t\t\t\t\tsrc={currentFile.url}\n\t\t\t\t\t\tcontrols\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_media\"\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'audio':\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_audio_wrap\">\n\t\t\t\t\t\t<div style={{ fontSize: 48 }}>🎵</div>\n\t\t\t\t\t\t<div style={{ fontSize: 16, fontWeight: 600 }}>{currentFile.name || '音频播放'}</div>\n\t\t\t\t\t\t<audio src={currentFile.url} controls autoPlay style={{ width: 320 }} />\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\tcase 'pdf':\n\t\t\t\treturn (\n\t\t\t\t\t<iframe\n\t\t\t\t\t\tsrc={currentFile.url}\n\t\t\t\t\t\ttitle={currentFile.name || 'PDF Preview'}\n\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_iframe\"\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'text':\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_text_wrap\">\n\t\t\t\t\t\t{currentFile.textContent || '正在加载文件内容...'}\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_fallback_card\">\n\t\t\t\t\t\t<div style={{ fontSize: 48, color: '#8c8c8c' }}>📦</div>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<h4 style={{ margin: '0 0 6px 0', fontSize: 16, color: '#1f1f1f' }}>\n\t\t\t\t\t\t\t\t{currentFile.name || '未知文件'}\n\t\t\t\t\t\t\t</h4>\n\t\t\t\t\t\t\t<p style={{ margin: 0, color: '#8c8c8c', fontSize: 13 }}>\n\t\t\t\t\t\t\t\t该格式暂不支持直接在线预览,请下载后在本地查看。\n\t\t\t\t\t\t\t\t{currentFile.size ? `(${currentFile.size})` : ''}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tonClick={handleDefaultDownload}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: 'inline-flex',\n\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\tgap: 6,\n\t\t\t\t\t\t\t\tpadding: '8px 20px',\n\t\t\t\t\t\t\t\tbackground: '#1677ff',\n\t\t\t\t\t\t\t\tcolor: '#fff',\n\t\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\t\tborderRadius: 6,\n\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\tfontSize: 14,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DownloadOutlined /> 立即下载\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t}\n\t};\n\n\treturn ReactDOM.createPortal(\n\t\t<div className={`rpc_file_previewer_modal ${className}`} onClick={onCancel} style={style}>\n\t\t\t<div className=\"rpc_file_previewer_modal_card\" onClick={(e) => e.stopPropagation()}>\n\t\t\t\t{/* 顶部标题栏与工具栏 */}\n\t\t\t\t<div className=\"rpc_file_previewer_modal_header\">\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_title\">\n\t\t\t\t\t\t{renderFileIcon()}\n\t\t\t\t\t\t<span>{currentFile.name || '文件预览'}</span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_actions\">\n\t\t\t\t\t\t{type === 'image' && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\t\t\tonClick={() => setImageScale((s) => Math.min(s + 0.2, 3))}\n\t\t\t\t\t\t\t\t\ttitle=\"放大\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ZoomInOutlined />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\t\t\tonClick={() => setImageScale((s) => Math.max(s - 0.2, 0.4))}\n\t\t\t\t\t\t\t\t\ttitle=\"缩小\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ZoomOutOutlined />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\t\t\tonClick={() => setImageRotate((r) => (r + 90) % 360)}\n\t\t\t\t\t\t\t\t\ttitle=\"顺时针旋转90°\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<RotateRightOutlined />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\tonClick={handleDefaultDownload}\n\t\t\t\t\t\t\ttitle=\"下载文件\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DownloadOutlined />\n\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t{extraActions}\n\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\tonClick={onCancel}\n\t\t\t\t\t\t\ttitle=\"关闭预览 (ESC)\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CloseOutlined />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* 预览主体内容区域 */}\n\t\t\t\t<div className=\"rpc_file_previewer_modal_body\">{renderBodyContent()}</div>\n\t\t\t</div>\n\t\t</div>,\n\t\tdocument.body,\n\t);\n};\n\n// 命令式调用方法\nFilePreviewer.preview = (options: FileItem) => {\n\tconst div = document.createElement('div');\n\tdocument.body.appendChild(div);\n\n\tconst close = () => {\n\t\tReactDOM.render(<></>, div);\n\t\tdiv.remove();\n\t};\n\n\tReactDOM.render(<FilePreviewer open={true} file={options} onCancel={close} />, div);\n\n\treturn { close };\n};\n\nexport default FilePreviewer;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CheckOutlined, CloseOutlined } from './chunk-
|
|
1
|
+
import { CheckOutlined, CloseOutlined } from './chunk-537T6BR3.js';
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
4
|
|
|
@@ -99,5 +99,5 @@ var PasswordStrength = ({
|
|
|
99
99
|
var PasswordStrength_default = PasswordStrength;
|
|
100
100
|
|
|
101
101
|
export { PasswordStrength_default, evaluatePasswordStrength };
|
|
102
|
-
//# sourceMappingURL=chunk-
|
|
103
|
-
//# sourceMappingURL=chunk-
|
|
102
|
+
//# sourceMappingURL=chunk-3WLGM74R.js.map
|
|
103
|
+
//# sourceMappingURL=chunk-3WLGM74R.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../PasswordStrength/index.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../PasswordStrength/index.tsx"],"names":[],"mappings":"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","file":"chunk-3WLGM74R.js","sourcesContent":["import React, { useMemo, ReactNode, CSSProperties } from 'react';\nimport { CheckOutlined, CloseOutlined } from '../src/icons';\nimport './index.less';\n\nexport type PasswordStrengthLevel = 0 | 1 | 2 | 3 | 4;\n\nexport interface PasswordRule {\n\tkey: string;\n\tlabel: ReactNode;\n\tvalidator: (password: string) => boolean;\n}\n\nexport interface PasswordStrengthProps {\n\t/** 当前输入的密码文本 */\n\tpassword?: string;\n\t/** 是否显示密码强度文字(弱/中/强/极强),默认为 true */\n\tshowText?: boolean;\n\t/** 是否显示密码规则校验清单,默认为 false */\n\tshowRules?: boolean;\n\t/** 自定义规则列表 */\n\trules?: PasswordRule[];\n\t/** 强度等级改变回调 */\n\tonLevelChange?: (level: PasswordStrengthLevel) => void;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst defaultRules: PasswordRule[] = [\n\t{\n\t\tkey: 'length',\n\t\tlabel: '长度至少 8 位',\n\t\tvalidator: (pwd) => pwd.length >= 8,\n\t},\n\t{\n\t\tkey: 'lowercase',\n\t\tlabel: '包含小写字母 (a-z)',\n\t\tvalidator: (pwd) => /[a-z]/.test(pwd),\n\t},\n\t{\n\t\tkey: 'uppercase',\n\t\tlabel: '包含大写字母 (A-Z)',\n\t\tvalidator: (pwd) => /[A-Z]/.test(pwd),\n\t},\n\t{\n\t\tkey: 'number',\n\t\tlabel: '包含数字 (0-9)',\n\t\tvalidator: (pwd) => /[0-9]/.test(pwd),\n\t},\n\t{\n\t\tkey: 'special',\n\t\tlabel: '包含特殊符号 (!@#$...)',\n\t\tvalidator: (pwd) => /[^A-Za-z0-9]/.test(pwd),\n\t},\n];\n\n// 计算密码强度得分 (0~4)\nexport function evaluatePasswordStrength(\n\tpwd: string = '',\n\trules: PasswordRule[] = defaultRules,\n): { level: PasswordStrengthLevel; score: number; passedKeys: string[] } {\n\tif (!pwd) {\n\t\treturn { level: 0, score: 0, passedKeys: [] };\n\t}\n\n\tconst passedKeys = rules.filter((r) => r.validator(pwd)).map((r) => r.key);\n\tlet score = passedKeys.length;\n\n\t// 如果长度过短(<6),强制判定为弱\n\tif (pwd.length < 6) {\n\t\treturn { level: 1, score: 1, passedKeys };\n\t}\n\n\tlet level: PasswordStrengthLevel = 1;\n\tif (score <= 1) level = 1;\n\telse if (score <= 3) level = 2;\n\telse if (score === 4) level = 3;\n\telse level = 4;\n\n\treturn { level, score, passedKeys };\n}\n\nconst levelConfig: Record<\n\tPasswordStrengthLevel,\n\t{ text: string; color: string; classSuffix: string }\n> = {\n\t0: { text: '', color: '#d9d9d9', classSuffix: '' },\n\t1: { text: '强度较弱', color: '#ff4d4f', classSuffix: 'weak' },\n\t2: { text: '强度中等', color: '#fa8c16', classSuffix: 'medium' },\n\t3: { text: '强度良好', color: '#1677ff', classSuffix: 'good' },\n\t4: { text: '强度极高', color: '#52c41a', classSuffix: 'strong' },\n};\n\nconst PasswordStrength: React.FC<PasswordStrengthProps> = ({\n\tpassword = '',\n\tshowText = true,\n\tshowRules = false,\n\trules = defaultRules,\n\tonLevelChange,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst { level, passedKeys } = useMemo(() => {\n\t\tconst res = evaluatePasswordStrength(password, rules);\n\t\tonLevelChange?.(res.level);\n\t\treturn res;\n\t}, [password, rules, onLevelChange]);\n\n\tconst currentInfo = levelConfig[level];\n\n\treturn (\n\t\t<div className={`rpc_password_strength ${className}`} style={style}>\n\t\t\t{/* 4 段彩色进度条 */}\n\t\t\t<div className=\"rpc_password_strength_bars\">\n\t\t\t\t{[1, 2, 3, 4].map((segIndex) => {\n\t\t\t\t\tconst isActive = level >= segIndex;\n\t\t\t\t\tconst segmentClass = [\n\t\t\t\t\t\t'rpc_password_strength_bar_segment',\n\t\t\t\t\t\tisActive && currentInfo.classSuffix\n\t\t\t\t\t\t\t? `rpc_password_strength_bar_segment_active_${currentInfo.classSuffix}`\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t]\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.join(' ');\n\n\t\t\t\t\treturn <div key={segIndex} className={segmentClass} />;\n\t\t\t\t})}\n\t\t\t</div>\n\n\t\t\t{/* 文本说明 */}\n\t\t\t{showText && (\n\t\t\t\t<div className=\"rpc_password_strength_label\">\n\t\t\t\t\t<span>密码安全性</span>\n\t\t\t\t\t<span className=\"rpc_password_strength_level_text\" style={{ color: currentInfo.color }}>\n\t\t\t\t\t\t{password ? currentInfo.text : '未输入密码'}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* 规则校验列表 */}\n\t\t\t{showRules && (\n\t\t\t\t<div className=\"rpc_password_strength_rules\">\n\t\t\t\t\t{rules.map((r) => {\n\t\t\t\t\t\tconst isPassed = passedKeys.includes(r.key);\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={r.key}\n\t\t\t\t\t\t\t\tclassName={`rpc_password_strength_rule_item ${\n\t\t\t\t\t\t\t\t\tisPassed ? 'rpc_password_strength_rule_item_passed' : ''\n\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{isPassed ? (\n\t\t\t\t\t\t\t\t\t<CheckOutlined style={{ fontSize: 11 }} />\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<CloseOutlined style={{ fontSize: 10, opacity: 0.5 }} />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<span>{r.label}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default PasswordStrength;\n"]}
|
|
@@ -498,7 +498,11 @@ var ReloadOutlined = ({
|
|
|
498
498
|
children: /* @__PURE__ */ jsx("path", { d: "M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 96 512 96 282.2 96 96 282.2 96 512s186.2 416 416 416c196.4 0 361.3-136.2 404.7-319.4 1.2-5.1-1.9-10.2-7.1-11.4l-62.4-14.7c-5.1-1.2-10.2 1.9-11.4 7.1C800.7 724.8 667.6 832 512 832c-176.7 0-320-143.3-320-320s143.3-320 320-320c112.5 0 211.3 58 268.4 146.4l-75.1 58.7c-5.3 4.1-3.4 12.6 3.1 14.1l197.8 45.4c4.6 1.1 9.1-2.4 9.1-7.1l-1.9-202.9c0-6.6-8.2-9.7-12.7-4.9z" })
|
|
499
499
|
}
|
|
500
500
|
);
|
|
501
|
-
var CodeSandboxOutlined = ({
|
|
501
|
+
var CodeSandboxOutlined = ({
|
|
502
|
+
style,
|
|
503
|
+
className,
|
|
504
|
+
onClick
|
|
505
|
+
}) => /* @__PURE__ */ jsx(
|
|
502
506
|
"svg",
|
|
503
507
|
{
|
|
504
508
|
viewBox: "0 0 1024 1024",
|
|
@@ -513,7 +517,11 @@ var CodeSandboxOutlined = ({ style, className, onClick }) => /* @__PURE__ */ jsx
|
|
|
513
517
|
children: /* @__PURE__ */ jsx("path", { d: "M959.8 274.7L527.9 25.5c-9.8-5.6-21.9-5.6-31.7 0L64.2 274.7c-9.9 5.7-16.1 16.3-16.1 27.7v499c0 11.4 6.1 22 16.1 27.7l432 249.2c4.9 2.8 10.4 4.3 15.9 4.3s11-1.4 15.9-4.3l432-249.2c9.9-5.7 16.1-16.3 16.1-27.7v-499c0-11.4-6.2-22-16.3-27.7zM512 100.8l363.6 209.9-146.9 84.8-363.6-209.9L512 100.8zM476 121.6v239.5L148.6 550.5V310.8L476 121.6zM112 590.2l364 210.2v240.8L112 831V590.2zM548 1041.2V800.4l364-210.2v240.8l-364 210.2zM911.4 550.5L548 339.7V100.2l363.4 209.8v240.5z" })
|
|
514
518
|
}
|
|
515
519
|
);
|
|
516
|
-
var CodePenOutlined = ({
|
|
520
|
+
var CodePenOutlined = ({
|
|
521
|
+
style,
|
|
522
|
+
className,
|
|
523
|
+
onClick
|
|
524
|
+
}) => /* @__PURE__ */ jsx(
|
|
517
525
|
"svg",
|
|
518
526
|
{
|
|
519
527
|
viewBox: "0 0 1024 1024",
|
|
@@ -528,7 +536,11 @@ var CodePenOutlined = ({ style, className, onClick }) => /* @__PURE__ */ jsx(
|
|
|
528
536
|
children: /* @__PURE__ */ jsx("path", { d: "M912 360L536 109.3c-14.7-9.8-35.3-9.8-50 0L112 360c-10.7 7.1-16 19.3-16 32v240c0 12.7 5.3 24.9 16 32l374 250.7c14.7 9.8 35.3 9.8 50 0l376-250.7c10.7-7.1 16-19.3 16-32V392c0-12.7-5.3-24.9-16-32zM512 195.4l280.9 187.3L670 464.6 512 359.3V195.4zM476 359.3L318 464.6 195.1 382.7 476 195.4v163.9zM160 441.2l98.5 65.7L160 572.6V441.2zM476 828.6L195.1 641.3 318 559.4 476 664.7v163.9zm36-248.8L382.8 512 512 425.8l129.2 86.2L512 579.8zm0 248.8V664.7l158-105.3 122.9 81.9L512 828.6zm352-256l-98.5-65.7 98.5-65.7v131.4z" })
|
|
529
537
|
}
|
|
530
538
|
);
|
|
531
|
-
var ThunderboltOutlined = ({
|
|
539
|
+
var ThunderboltOutlined = ({
|
|
540
|
+
style,
|
|
541
|
+
className,
|
|
542
|
+
onClick
|
|
543
|
+
}) => /* @__PURE__ */ jsx(
|
|
532
544
|
"svg",
|
|
533
545
|
{
|
|
534
546
|
viewBox: "64 64 896 896",
|
|
@@ -543,7 +555,11 @@ var ThunderboltOutlined = ({ style, className, onClick }) => /* @__PURE__ */ jsx
|
|
|
543
555
|
children: /* @__PURE__ */ jsx("path", { d: "M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.6L183.1 915c-4.1 5.3-.4 13 6.3 13h342.7c2.8 0 5.5-1.5 6.9-4L854.9 371.3c3.1-5.3-.7-12-6.9-12z" })
|
|
544
556
|
}
|
|
545
557
|
);
|
|
546
|
-
var CodeOutlined = ({
|
|
558
|
+
var CodeOutlined = ({
|
|
559
|
+
style,
|
|
560
|
+
className,
|
|
561
|
+
onClick
|
|
562
|
+
}) => /* @__PURE__ */ jsx(
|
|
547
563
|
"svg",
|
|
548
564
|
{
|
|
549
565
|
viewBox: "64 64 896 896",
|
|
@@ -558,7 +574,11 @@ var CodeOutlined = ({ style, className, onClick }) => /* @__PURE__ */ jsx(
|
|
|
558
574
|
children: /* @__PURE__ */ jsx("path", { d: "M866.9 499.1L747.3 380.7c-6.2-6.2-16.4-6.2-22.6 0l-45.2 45.2c-6.2 6.2-6.2 16.4 0 22.6l75.4 75.4-75.4 75.4c-6.2 6.2-6.2 16.4 0 22.6l45.2 45.2c6.2 6.2 16.4 6.2 22.6 0l119.6-118.4a15.87 15.87 0 000-22.6zM344.5 448.5l-75.4-75.4c-6.2-6.2-16.4-6.2-22.6 0L126.9 491.5a15.87 15.87 0 000 22.6l119.6 118.4c6.2 6.2 16.4 6.2 22.6 0l45.2-45.2c6.2-6.2 6.2-16.4 0-22.6l-75.4-75.4 75.4-75.4c6.2-6.2 6.2-16.4 0-22.6l-45.2-45.2zM562.9 270.8c-7.9-3.2-16.9.7-20.1 8.6L378.1 729.1c-3.2 7.9.7 16.9 8.6 20.1l41.5 16.6c7.9 3.2 16.9-.7 20.1-8.6l164.7-449.7c3.2-7.9-.7-16.9-8.6-20.1l-41.5-16.6z" })
|
|
559
575
|
}
|
|
560
576
|
);
|
|
561
|
-
var ExportOutlined = ({
|
|
577
|
+
var ExportOutlined = ({
|
|
578
|
+
style,
|
|
579
|
+
className,
|
|
580
|
+
onClick
|
|
581
|
+
}) => /* @__PURE__ */ jsx(
|
|
562
582
|
"svg",
|
|
563
583
|
{
|
|
564
584
|
viewBox: "64 64 896 896",
|
|
@@ -573,7 +593,11 @@ var ExportOutlined = ({ style, className, onClick }) => /* @__PURE__ */ jsx(
|
|
|
573
593
|
children: /* @__PURE__ */ jsx("path", { d: "M868 732h-72c-4.4 0-8 3.6-8 8v84H236V200h84c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H164c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h704c17.7 0 32-14.3 32-32V740c0-4.4-3.6-8-8-8zM884 104H628c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8h121.9L445.1 494.8a8.03 8.03 0 000 11.3l50.9 50.9c3.1 3.1 8.2 3.1 11.3 0L810 254.1V376c0 4.4 3.6 8 8 8h72c4.4 0 8-3.6 8-8V112c0-4.4-3.6-8-8-8z" })
|
|
574
594
|
}
|
|
575
595
|
);
|
|
576
|
-
var HolderOutlined = ({
|
|
596
|
+
var HolderOutlined = ({
|
|
597
|
+
style,
|
|
598
|
+
className,
|
|
599
|
+
onClick
|
|
600
|
+
}) => /* @__PURE__ */ jsx(
|
|
577
601
|
"svg",
|
|
578
602
|
{
|
|
579
603
|
viewBox: "64 64 896 896",
|
|
@@ -590,5 +614,5 @@ var HolderOutlined = ({ style, className, onClick }) => /* @__PURE__ */ jsx(
|
|
|
590
614
|
);
|
|
591
615
|
|
|
592
616
|
export { CheckOutlined, CloseCircleFilled, CloseOutlined, CodeOutlined, CodePenOutlined, CodeSandboxOutlined, CopyOutlined, DownOutlined, DownloadOutlined, ExportOutlined, EyeInvisibleOutlined, EyeOutlined, FileImageOutlined, FileOutlined, FilePdfOutlined, FileTextOutlined, FullscreenExitOutlined, FullscreenOutlined, HolderOutlined, LeftOutlined, LoadingOutlined, LockOutlined, PauseCircleOutlined, PlayCircleOutlined, ReloadOutlined, RightOutlined, RotateRightOutlined, ThunderboltOutlined, UpOutlined, ZoomInOutlined, ZoomOutOutlined };
|
|
593
|
-
//# sourceMappingURL=chunk-
|
|
594
|
-
//# sourceMappingURL=chunk-
|
|
617
|
+
//# sourceMappingURL=chunk-537T6BR3.js.map
|
|
618
|
+
//# sourceMappingURL=chunk-537T6BR3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/icons.tsx"],"names":[],"mappings":"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","file":"chunk-537T6BR3.js","sourcesContent":["import type { CSSProperties } from 'react';\n\ninterface IconProps {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n}\n\nconst baseStyle: CSSProperties = {\n\tdisplay: 'inline-block',\n\twidth: '1em',\n\theight: '1em',\n\tverticalAlign: '-0.125em',\n};\n\nexport const LeftOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"left\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\" />\n\t</svg>\n);\n\nexport const RightOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"right\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\" />\n\t</svg>\n);\n\nexport const UpOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"up\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M890.5 755.3L537.4 268a31.96 31.96 0 00-50.8 0L133.5 755.3a7.95 7.95 0 006.3 12.7h75.5c4.9 0 9.6-2.3 12.6-6.1l281-360 281 360c3 3.8 7.7 6.1 12.6 6.1h75.5c6.7 0 10.4-7.6 6.1-12.7z\" />\n\t</svg>\n);\n\nexport const DownOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"down\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 37 17.6 49.8 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z\" />\n\t</svg>\n);\n\nexport const LockOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"lock\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M928 224H704v-64c0-88.4-71.6-160-160-160s-160 71.6-160 160v64H160c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h768c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zM456 160c0-44.2 35.8-80 80-80s80 35.8 80 80v64H456v-64zm408 696H224V296h640v560zM496 448c-30.9 0-56 25.1-56 56 0 24.7 16.1 45.6 38.4 52.7V680c0 9.7 7.8 17.5 17.6 17.5h32c9.7 0 17.6-7.8 17.6-17.5V556.7c22.3-7.1 38.4-28 38.4-52.7 0-30.9-25.1-56-56-56z\" />\n\t</svg>\n);\n\nexport const CloseCircleFilled = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"close-circle\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-66L512 516.8l-99.4 99.4-66-66L446 450.8 346.6 351.4l66-66L512 384.8l99.4-99.4 66 66L578 450.8l99.4 99.4z\" />\n\t</svg>\n);\n\nexport const CopyOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"copy\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v496c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V128c0-35.3-28.7-64-64-64zM704 192H192c-35.3 0-64 28.7-64 64v640c0 35.3 28.7 64 64 64h512c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64zm-8 648H200c-4.4 0-8-3.6-8-8V264c0-4.4 3.6-8 8-8h496c4.4 0 8 3.6 8 8v568c0 4.4-3.6 8-8 8z\" />\n\t</svg>\n);\n\nexport const CheckOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"check\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z\" />\n\t</svg>\n);\n\nexport const LoadingOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"loading\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"none\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{\n\t\t\t...baseStyle,\n\t\t\tanimation: 'rpc-spin 0.85s infinite linear',\n\t\t\t...style,\n\t\t}}\n\t\tclassName={`rpc_loading_icon ${className || ''}`}\n\t>\n\t\t<style>\n\t\t\t{`@keyframes rpc-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }`}\n\t\t</style>\n\t\t<circle cx=\"512\" cy=\"512\" r=\"380\" stroke=\"currentColor\" strokeWidth=\"96\" strokeOpacity=\"0.2\" />\n\t\t<path\n\t\t\td=\"M512 132c209.9 0 380 170.1 380 380\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth=\"96\"\n\t\t\tstrokeLinecap=\"round\"\n\t\t/>\n\t</svg>\n);\n\nexport const SearchOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"search\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M909.6 854.5L649.9 594.8C690.2 537.8 712 469 712 396c0-174.5-141.5-316-316-316S80 221.5 80 396s141.5 316 316 316c73 0 141.8-21.8 198.8-62.1l259.7 259.7c4.7 4.7 12.3 4.7 17 0l38.1-38.1c4.7-4.7 4.7-12.3 0-17zM396 644c-137 0-248-111-248-248S259 148 396 148s248 111 248 248-111 248-248 248z\" />\n\t</svg>\n);\n\nexport const CloseOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"close\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"none\"\n\t\tstroke=\"currentColor\"\n\t\tstrokeWidth=\"84\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M260 260l504 504M764 260L260 764\" />\n\t</svg>\n);\n\nexport const EditOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"edit\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-148.6L687.8 240.7l48.1 48.1-362.7 362.7-65.6 11.5 17.5-69.6zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z\" />\n\t</svg>\n);\n\nexport const DeleteOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"delete\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M864 256H704V144c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v112H160c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h60.5l52.6 578.6C251.2 922.3 273 944 298.8 944h426.4c25.8 0 47.6-21.7 49.7-47.4L827.5 320H888c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zM384 168h256v88H384v-88zm377.9 713.8a8.04 8.04 0 01-8 7.2H298.8c-4.2 0-7.7-3.2-8-7.2L240.2 320h543.5l-51.8 561.8z\" />\n\t</svg>\n);\n\nexport const ShareAltOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"share-alt\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M752 664c-28.5 0-54.8 10-75.6 26.8L414.5 522.6c1.5-7.3 2.5-14.9 2.5-22.6s-1-15.3-2.5-22.6L676.4 309.2C697.2 326 723.5 336 752 336c66.3 0 120-53.7 120-120s-53.7-120-120-120-120 53.7-120 120c0 7.7 1 15.3 2.5 22.6L372.6 406.8C351.8 390 325.5 380 296 380c-66.3 0-120 53.7-120 120s53.7 120 120 120c29.5 0 55.8-10 76.6-26.8l261.9 168.2c-1.5 7.3-2.5 14.9-2.5 22.6 0 66.3 53.7 120 120 120s120-53.7 120-120-53.7-120-120-120z\" />\n\t</svg>\n);\n\nexport const FullscreenOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"fullscreen\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"none\"\n\t\tstroke=\"currentColor\"\n\t\tstrokeWidth=\"88\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t{/* 左上角 ↖ */}\n\t\t<path d=\"M380 180H180v200\" />\n\t\t<path d=\"M180 180l240 240\" />\n\t\t{/* 右上角 ↗ */}\n\t\t<path d=\"M644 180h200v200\" />\n\t\t<path d=\"M844 180L604 420\" />\n\t\t{/* 左下角 ↙ */}\n\t\t<path d=\"M180 644v200h200\" />\n\t\t<path d=\"M180 844l240-240\" />\n\t\t{/* 右下角 ↘ */}\n\t\t<path d=\"M844 644v200H644\" />\n\t\t<path d=\"M844 844L604 604\" />\n\t</svg>\n);\n\nexport const FullscreenExitOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"fullscreen-exit\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"none\"\n\t\tstroke=\"currentColor\"\n\t\tstrokeWidth=\"88\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t{/* 左上角内聚 ↘ */}\n\t\t<path d=\"M180 420h240V180\" />\n\t\t<path d=\"M420 420L180 180\" />\n\t\t{/* 右上角内聚 ↙ */}\n\t\t<path d=\"M844 420H604V180\" />\n\t\t<path d=\"M604 420l240-240\" />\n\t\t{/* 左下角内聚 ↗ */}\n\t\t<path d=\"M180 604h240v240\" />\n\t\t<path d=\"M420 604L180 844\" />\n\t\t{/* 右下角内聚 ↖ */}\n\t\t<path d=\"M844 604H604v240\" />\n\t\t<path d=\"M604 604l240 240\" />\n\t</svg>\n);\n\nexport const RotateRightOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"rotate-right\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"none\"\n\t\tstroke=\"currentColor\"\n\t\tstrokeWidth=\"80\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t{/* 顺时针旋转主体圆弧 */}\n\t\t<path d=\"M896 512a384 384 0 1 1-112.5-271.5L896 341\" />\n\t\t{/* 顺时针旋转折线箭头 */}\n\t\t<path d=\"M896 128v213h-213\" />\n\t</svg>\n);\n\nexport const ZoomInOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"zoom-in\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"none\"\n\t\tstroke=\"currentColor\"\n\t\tstrokeWidth=\"76\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t{/* 放大镜圆镜框 */}\n\t\t<circle cx=\"440\" cy=\"440\" r=\"280\" />\n\t\t{/* 放大镜手柄 */}\n\t\t<path d=\"M640 640l220 220\" strokeWidth=\"88\" />\n\t\t{/* 放大镜内部清晰加号 */}\n\t\t<path d=\"M440 320v240M320 440h240\" strokeWidth=\"80\" />\n\t</svg>\n);\n\nexport const ZoomOutOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"zoom-out\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"none\"\n\t\tstroke=\"currentColor\"\n\t\tstrokeWidth=\"76\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t{/* 放大镜圆镜框 */}\n\t\t<circle cx=\"440\" cy=\"440\" r=\"280\" />\n\t\t{/* 放大镜手柄 */}\n\t\t<path d=\"M640 640l220 220\" strokeWidth=\"88\" />\n\t\t{/* 放大镜内部清晰减号 */}\n\t\t<path d=\"M320 440h240\" strokeWidth=\"80\" />\n\t</svg>\n);\n\nexport const DownloadOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"download\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"none\"\n\t\tstroke=\"currentColor\"\n\t\tstrokeWidth=\"76\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t{/* 下载向下箭头 */}\n\t\t<path d=\"M512 160v460M330 450l182 182 182-182\" />\n\t\t{/* 底部托盘 */}\n\t\t<path d=\"M200 680v160h624V680\" />\n\t</svg>\n);\n\nexport const FileOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"file\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zM224 896V128h314v230c0 17.7 14.3 32 32 32h230v506H224z\" />\n\t</svg>\n);\n\nexport const FilePdfOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"file-pdf\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M532 531.3c-7.9-25.1-17.9-57.9-29.2-94.8 17.4-44.5 28.5-84.5 32.8-118.6 6.8-54.6-1.5-87.1-23.7-92.3-15.6-3.7-33 11-40.4 46.1-5.1 24.3-3.6 56.4 4.3 93.3-8.8 33-21.9 76.5-38.3 125.7-18.7 56.2-41.2 108.6-66.2 153.8-37.1 20.3-69 41.5-92.9 63.8-38.2 35.6-46.7 67.2-24.1 89.8 12.8 12.8 31.6 15.3 54.1 7.2 28.8-10.4 62.9-38.9 98.7-83.3 43.1-13.8 91.5-26.3 143.1-37.2 32.8 23.3 64.9 39.8 94.6 48.7 32 9.6 57 8.3 69.8-3.9 15.6-14.8 11.6-42.3-11.4-78.7-17.7-27.9-43.9-51.5-76.3-69.6-1.4-.8-2.8-1.5-4.2-2.3zm-180.2 277c-7.8-7.8-7.8-21.1 0-38.2 11.3-24.8 29.5-48.4 52.8-68.5-25.3 47.9-43.2 86.8-52.8 106.7zm134.7-474c1.6-18.1 4.5-28.7 8.3-30.8 2.2-1.2 5-.8 8.1 1.2 5.1 3.3 7 14.5 5.5 32.5-1.9 22.8-8.2 49.3-18.4 78.4-3.2-30.1-4.7-57.2-3.5-81.3zm-27.1 257.6c17.5-47.5 31.8-90.8 42.1-127.3 9.4 29.6 17.5 56.4 24 79.2-21.6 4.9-43.9 10.3-66.1 16.1v32zm251.4 69.7c15.1 18.8 18.4 32.1 9.4 39.5-3.3 2.7-8.9 3.2-16.4.7-12.7-4.2-27.7-13.5-43.9-27.1 22.8 3.8 41.5-1.1 50.9-13.1zM854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zM224 896V128h314v230c0 17.7 14.3 32 32 32h230v506H224z\" />\n\t</svg>\n);\n\nexport const FileImageOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"file-image\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zM224 896V128h314v230c0 17.7 14.3 32 32 32h230v506H224zm136-280a48 48 0 1096 0 48 48 0 10-96 0zm336 96L552 544l-96 112-48-56-112 112h400z\" />\n\t</svg>\n);\n\nexport const FileTextOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"file-text\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zM224 896V128h314v230c0 17.7 14.3 32 32 32h230v506H224zm120-480h160c4.4 0 8-3.6 8-8v-32c0-4.4-3.6-8-8-8H344c-4.4 0-8 3.6-8 8v32c0 4.4 3.6 8 8 8zm0 120h336c4.4 0 8-3.6 8-8v-32c0-4.4-3.6-8-8-8H344c-4.4 0-8 3.6-8 8v32c0 4.4 3.6 8 8 8zm0 120h336c4.4 0 8-3.6 8-8v-32c0-4.4-3.6-8-8-8H344c-4.4 0-8 3.6-8 8v32c0 4.4 3.6 8 8 8z\" />\n\t</svg>\n);\n\nexport const EyeOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"eye\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.2a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.4 684.2 673.3 766 512 766zm-1-438c-101.6 0-184 82.4-184 184s82.4 184 184 184 184-82.4 184-184-82.4-184-184-184zm0 296c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\" />\n\t</svg>\n);\n\nexport const EyeInvisibleOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"eye-invisible\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M942.2 486.2Q889.47 375.11 804.85 296.83l57.75-57.75a8.03 8.03 0 000-11.32l-39.6-39.6a8.03 8.03 0 00-11.31 0L117.82 882.03a8.03 8.03 0 000 11.32l39.6 39.6a8.03 8.03 0 0011.31 0l79.47-79.47C333.62 882.35 421.36 900 512 900c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 828c-161.3 0-279.4-81.8-362.7-254 38.67-80.44 94.67-142.75 163.66-184.22l81.65 81.65a184.07 184.07 0 00231.42 231.42l77.72 77.72C637.38 812.59 576.84 828 512 828zm-399.7-331.4C108.6 489.1 106 480 106 470c0-10 2.6-19.1 6.3-26.6 94.8-199.7 238-300.2 430.2-300.2 73.1 0 141.7 14.5 204.6 41.5l-63.5 63.5A384.85 384.85 0 00512 210c-161.3 0-279.4 81.8-362.7 254 18.23 37.93 40.54 70.83 66.27 98.42l-51.3 51.3a549.9 549.9 0 01-51.97-117.12z\" />\n\t</svg>\n);\n\nexport const PlayCircleOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"play-circle\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm-88-532.7v325.4c0 10.7 11.9 17.1 20.9 11.3l244-162.7a13.6 13.6 0 000-22.6l-244-162.7c-9-5.8-20.9.6-20.9 11.3z\" />\n\t</svg>\n);\n\nexport const PauseCircleOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"pause-circle\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm-128-524c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360zm160 0c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360z\" />\n\t</svg>\n);\n\nexport const UndoOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"undo\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M758 416H428.8l93.7-93.7c3.1-3.1 3.1-8.2 0-11.3l-22.6-22.6a8.03 8.03 0 00-11.3 0L303.3 473.7a8.03 8.03 0 000 11.3l185.3 185.3c3.1 3.1 8.2 3.1 11.3 0l22.6-22.6c3.1-3.1 3.1-8.2 0-11.3L428.8 544H758c56.3 0 102 45.7 102 102s-45.7 102-102 102H260c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h498c120.4 0 218-97.6 218-218s-97.6-218-218-218z\" />\n\t</svg>\n);\n\nexport const RedoOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"redo\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M758.2 338.3L572.9 153c-3.1-3.1-8.2-3.1-11.3 0l-22.6 22.6a8.03 8.03 0 000 11.3l93.7 93.7H266c-120.4 0-218 97.6-218 218s97.6 218 218 218h498c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H266c-56.3 0-102-45.7-102-102s45.7-102 102-102h366.7l-93.7 93.7c-3.1 3.1-3.1 8.2 0 11.3l22.6 22.6c3.1 3.1 8.2 3.1 11.3 0l185.3-185.3a8.03 8.03 0 000-11.3z\" />\n\t</svg>\n);\n\nexport const ReloadOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"reload\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 96 512 96 282.2 96 96 282.2 96 512s186.2 416 416 416c196.4 0 361.3-136.2 404.7-319.4 1.2-5.1-1.9-10.2-7.1-11.4l-62.4-14.7c-5.1-1.2-10.2 1.9-11.4 7.1C800.7 724.8 667.6 832 512 832c-176.7 0-320-143.3-320-320s143.3-320 320-320c112.5 0 211.3 58 268.4 146.4l-75.1 58.7c-5.3 4.1-3.4 12.6 3.1 14.1l197.8 45.4c4.6 1.1 9.1-2.4 9.1-7.1l-1.9-202.9c0-6.6-8.2-9.7-12.7-4.9z\" />\n\t</svg>\n);\n\nexport const SoundOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"sound\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M625.9 115c-5.9 0-11.9 1.6-17.2 4.9L354.8 280H192c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h162.8l253.9 160.1c5.3 3.3 11.3 4.9 17.2 4.9 18.2 0 33.1-14.9 33.1-33.1V148.1c0-18.2-14.9-33.1-33.1-33.1zm-32.9 663.2L367.6 634.6a8 8 0 00-4.3-1.2H232V390.6h131.3a8 8 0 004.3-1.2L593 245.8v532.4zM704 398.7a32 32 0 00-32 32v162.6a32 32 0 0064 0V430.7a32 32 0 00-32-32zm96-99.3a32 32 0 00-32 32v361.3a32 32 0 0064 0V331.4a32 32 0 00-32-32z\" />\n\t</svg>\n);\n\nexport const SendOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"send\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M931.4 498.9L94.9 79.5c-3.4-1.7-7.3-2.1-11-1.2a15.8 15.8 0 00-11.8 17.9L173 496H512v32H173L72.1 927.8c-1.8 7.3 1.9 14.9 8.8 17.7 2.3.9 4.7 1.2 7.1.7 3.7-.7 7.1-2.9 9.1-6L931.4 525.1c6.1-4.7 7.4-13.5 2.7-19.6-.8-1-1.7-1.8-2.7-2.6z\" />\n\t</svg>\n);\n\nexport const LikeOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"like\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-85-65.6-104.2l-21.8-10.3 8.5-22.6c8.6-22.8 13-46.9 13-71.9 0-94.8-77-172-171.8-172-35.4 0-69.2 10.9-97.7 31.5L462.6 193c-2.4 1.7-4.6 3.6-6.6 5.6L348 306.6c-4.4 4.4-6.9 10.4-6.9 16.6V768c0 13.3 10.7 24 24 24h356c32.1 0 61.5-16.7 77.8-44.1l21.2-35.7 38.6-6.4c35.4-5.9 64.3-30.8 74.9-64.6l6.8-21.6 22 4.4c2.8.6 5.6.8 8.4.8 28.3 0 54.8-12.8 72.1-35.3 16.8-22.2 21.6-50.6 13.1-77.9l-6.8-21.6 22 4.4c2.8.6 5.6.8 8.4.8 28.3 0 54.8-12.8 72.1-35.3 16.8-22.2 21.6-50.6 13.1-77.9l-8.9-28.7zM792 720H406V336l96-96c21.2-21.2 46.3-37.4 73.9-47.5 12.8-4.7 26.3-7.1 40.1-7.1 55.1 0 100 44.9 100 100 0 18.2-4.1 36.1-11.9 52.3l-19.1 39.5H846c24.6 0 45.4 17.5 49.3 41.8 1.9 12-1 24.1-8.1 33.4L870.3 475l16.9 5.6c11.9 3.9 21.3 12.8 25.8 24.4s3 24.4-4.2 33.9L892 560l16.9 5.6c11.9 3.9 21.3 12.8 25.8 24.4s3 24.4-4.2 33.9L913.6 645l-12.1 38.6c-5.8 18.5-21.7 32.1-41.1 35.3L792 720zm-536 72h-80c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v456c0 4.4-3.6 8-8 8z\" />\n\t</svg>\n);\n\nexport const DislikeOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"dislike\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M885.9 490.3l8.9-28.7c8.5-27.3 3.7-55.7-13.1-77.9-17.3-22.5-43.8-35.3-72.1-35.3-2.8 0-5.6.3-8.4.8l-22 4.4 6.8-21.6c8.5-27.3 3.7-55.7-13.1-77.9-17.3-22.5-43.8-35.3-72.1-35.3-2.8 0-5.6.3-8.4.8l-22 4.4-6.8-21.6c-10.6-33.8-39.5-58.7-74.9-64.6l-38.6-6.4-21.2-35.7C620.5 106.7 591.1 90 559 90H203c-13.3 0-24 10.7-24 24v444.8c0 6.2 2.5 12.2 6.9 16.6l108 108c2 2 4.2 3.9 6.6 5.6l113.8 81.3c28.5 20.6 62.3 31.5 97.7 31.5 94.8 0 171.8-77.2 171.8-172 0-25-4.4-49.1-13-71.9l-8.5-22.6 21.8-10.3c40.5-19.2 65.6-59.3 65.6-104.2.1-28.3-9.2-55.5-26-77.7zM792 304l68.4-1.1c19.4 3.2 35.3 16.8 41.1 35.3l12.1 38.6 16.9 21.2c7.2 9.5 8.7 22.3 4.2 33.9s-13.9 20.5-25.8 24.4L892 462l16.9 21.2c7.2 9.5 8.7 22.3 4.2 33.9s-13.9 20.5-25.8 24.4l-16.9 5.6 14.8 17.9c7.1 9.3 10 21.4 8.1 33.4-3.9 24.3-24.7 41.8-49.3 41.8H741l19.1 39.5c7.8 16.2 11.9 34.1 11.9 52.3 0 55.1-44.9 100-100 100-13.8 0-27.3-2.4-40.1-7.1-27.6-10.1-52.7-26.3-73.9-47.5l-96-96V232h386zM256 232h-80c-4.4 0-8 3.6-8 8v456c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V240c0-4.4-3.6-8-8-8z\" />\n\t</svg>\n);\n\nexport const StarFilled = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"star\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M908.1 353.1l-253.9-36.9L540.7 86.6c-9.7-19.7-37.7-19.7-47.4 0L379.8 316.2l-253.9 36.9c-21.9 3.2-30.6 30-14.7 45.5l183.7 179-43.4 252.9c-3.7 21.8 19.1 38.4 38.8 28.1L512 740l221.7 116.6c19.7 10.4 42.5-6.3 38.8-28.1l-43.4-252.9 183.7-179c15.9-15.5 7.2-42.3-14.7-45.5z\" />\n\t</svg>\n);\n\nexport const CodeSandboxOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M959.8 274.7L527.9 25.5c-9.8-5.6-21.9-5.6-31.7 0L64.2 274.7c-9.9 5.7-16.1 16.3-16.1 27.7v499c0 11.4 6.1 22 16.1 27.7l432 249.2c4.9 2.8 10.4 4.3 15.9 4.3s11-1.4 15.9-4.3l432-249.2c9.9-5.7 16.1-16.3 16.1-27.7v-499c0-11.4-6.2-22-16.3-27.7zM512 100.8l363.6 209.9-146.9 84.8-363.6-209.9L512 100.8zM476 121.6v239.5L148.6 550.5V310.8L476 121.6zM112 590.2l364 210.2v240.8L112 831V590.2zM548 1041.2V800.4l364-210.2v240.8l-364 210.2zM911.4 550.5L548 339.7V100.2l363.4 209.8v240.5z\" />\n\t</svg>\n);\n\nexport const CodePenOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M912 360L536 109.3c-14.7-9.8-35.3-9.8-50 0L112 360c-10.7 7.1-16 19.3-16 32v240c0 12.7 5.3 24.9 16 32l374 250.7c14.7 9.8 35.3 9.8 50 0l376-250.7c10.7-7.1 16-19.3 16-32V392c0-12.7-5.3-24.9-16-32zM512 195.4l280.9 187.3L670 464.6 512 359.3V195.4zM476 359.3L318 464.6 195.1 382.7 476 195.4v163.9zM160 441.2l98.5 65.7L160 572.6V441.2zM476 828.6L195.1 641.3 318 559.4 476 664.7v163.9zm36-248.8L382.8 512 512 425.8l129.2 86.2L512 579.8zm0 248.8V664.7l158-105.3 122.9 81.9L512 828.6zm352-256l-98.5-65.7 98.5-65.7v131.4z\" />\n\t</svg>\n);\n\nexport const ThunderboltOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.6L183.1 915c-4.1 5.3-.4 13 6.3 13h342.7c2.8 0 5.5-1.5 6.9-4L854.9 371.3c3.1-5.3-.7-12-6.9-12z\" />\n\t</svg>\n);\n\nexport const CodeOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M866.9 499.1L747.3 380.7c-6.2-6.2-16.4-6.2-22.6 0l-45.2 45.2c-6.2 6.2-6.2 16.4 0 22.6l75.4 75.4-75.4 75.4c-6.2 6.2-6.2 16.4 0 22.6l45.2 45.2c6.2 6.2 16.4 6.2 22.6 0l119.6-118.4a15.87 15.87 0 000-22.6zM344.5 448.5l-75.4-75.4c-6.2-6.2-16.4-6.2-22.6 0L126.9 491.5a15.87 15.87 0 000 22.6l119.6 118.4c6.2 6.2 16.4 6.2 22.6 0l45.2-45.2c6.2-6.2 6.2-16.4 0-22.6l-75.4-75.4 75.4-75.4c6.2-6.2 6.2-16.4 0-22.6l-45.2-45.2zM562.9 270.8c-7.9-3.2-16.9.7-20.1 8.6L378.1 729.1c-3.2 7.9.7 16.9 8.6 20.1l41.5 16.6c7.9 3.2 16.9-.7 20.1-8.6l164.7-449.7c3.2-7.9-.7-16.9-8.6-20.1l-41.5-16.6z\" />\n\t</svg>\n);\n\nexport const ExportOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M868 732h-72c-4.4 0-8 3.6-8 8v84H236V200h84c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H164c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h704c17.7 0 32-14.3 32-32V740c0-4.4-3.6-8-8-8zM884 104H628c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8h121.9L445.1 494.8a8.03 8.03 0 000 11.3l50.9 50.9c3.1 3.1 8.2 3.1 11.3 0L810 254.1V376c0 4.4 3.6 8 8 8h72c4.4 0 8-3.6 8-8V112c0-4.4-3.6-8-8-8z\" />\n\t</svg>\n);\n\nexport const HolderOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M300 276a56 56 0 10112 0 56 56 0 10-112 0zm0 236a56 56 0 10112 0 56 56 0 10-112 0zm0 236a56 56 0 10112 0 56 56 0 10-112 0zm312-472a56 56 0 10112 0 56 56 0 10-112 0zm0 236a56 56 0 10112 0 56 56 0 10-112 0zm0 236a56 56 0 10112 0 56 56 0 10-112 0z\" />\n\t</svg>\n);\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ReloadOutlined, LoadingOutlined, DownloadOutlined } from './chunk-
|
|
1
|
+
import { ReloadOutlined, LoadingOutlined, DownloadOutlined } from './chunk-537T6BR3.js';
|
|
2
2
|
import { useRef, useEffect } from 'react';
|
|
3
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
4
|
|
|
@@ -149,5 +149,5 @@ var QrCodeCard = ({
|
|
|
149
149
|
var QrCodeCard_default = QrCodeCard;
|
|
150
150
|
|
|
151
151
|
export { QrCodeCard_default };
|
|
152
|
-
//# sourceMappingURL=chunk-
|
|
153
|
-
//# sourceMappingURL=chunk-
|
|
152
|
+
//# sourceMappingURL=chunk-5QEXX32M.js.map
|
|
153
|
+
//# sourceMappingURL=chunk-5QEXX32M.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../QrCodeCard/index.tsx"],"names":[],"mappings":"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","file":"chunk-XUAHWX6B.js","sourcesContent":["import React, { useRef, useEffect, ReactNode, CSSProperties } from 'react';\nimport { ReloadOutlined, LoadingOutlined, DownloadOutlined } from '../src/icons';\nimport './index.less';\n\nexport type QrCodeStatus = 'active' | 'expired' | 'loading';\n\nexport interface QrCodeCardProps {\n\t/** 二维码内容或跳转 URL */\n\tvalue: string;\n\t/** 二维码尺寸(像素),默认为 160 */\n\tsize?: number;\n\t/** 二维码颜色,默认为 #1a1a1a */\n\tcolor?: string;\n\t/** 二维码背景色,默认为 #ffffff */\n\tbackgroundColor?: string;\n\t/** 中心嵌入的 Logo 图标地址 */\n\ticon?: string;\n\t/** 中心 Logo 的尺寸(像素),默认根据 size 自动计算 (约 22%) */\n\ticonSize?: number;\n\t/** 二维码状态:'active' 正常,'expired' 已过期,'loading' 生成中,默认为 'active' */\n\tstatus?: QrCodeStatus;\n\t/** 卡片主标题说明 */\n\ttitle?: ReactNode;\n\t/** 卡片副标题或扫码引导文案 */\n\tdescription?: ReactNode;\n\t/** 是否显示一键下载二维码按钮,默认为 false */\n\tdownloadable?: boolean;\n\t/** 是否显示四角扫码引导角标,默认为 false */\n\tbordered?: boolean;\n\t/** 点击过期遮罩刷新时的回调 */\n\tonRefresh?: () => void;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\n// 经典的 25x25 规整 QR 矩阵模式生成器(带标准 3 方位探测器与时钟同步条)\nfunction renderQrCode(\n\tcanvas: HTMLCanvasElement,\n\ttext: string,\n\tsize: number,\n\tcolor: string = '#1a1a1a',\n\tbgColor: string = '#ffffff',\n) {\n\tconst ctx = canvas.getContext('2d');\n\tif (!ctx) return;\n\n\tconst dpr = window.devicePixelRatio || 2;\n\tcanvas.width = size * dpr;\n\tcanvas.height = size * dpr;\n\tctx.scale(dpr, dpr);\n\n\t// 背景\n\tctx.fillStyle = bgColor;\n\tctx.fillRect(0, 0, size, size);\n\n\tconst modules = 25; // 25x25 矩阵\n\tconst padding = 1.5; // 安全边距留白 (Quiet Zone)\n\tconst effectiveSize = size;\n\tconst cellSize = effectiveSize / (modules + padding * 2);\n\tconst startOffset = padding * cellSize;\n\n\tctx.fillStyle = color;\n\n\t// 绘制三个角的定位探测图案 (Position Detection Patterns)\n\tconst drawPositionPattern = (row: number, col: number) => {\n\t\tconst ox = startOffset + col * cellSize;\n\t\tconst oy = startOffset + row * cellSize;\n\n\t\t// 1. 外层 7x7 实心黑方块(带圆角)\n\t\tctx.fillStyle = color;\n\t\tctx.fillRect(ox, oy, 7 * cellSize, 7 * cellSize);\n\n\t\t// 2. 内层 5x5 白色挖空方块\n\t\tctx.fillStyle = bgColor;\n\t\tctx.fillRect(ox + 1 * cellSize, oy + 1 * cellSize, 5 * cellSize, 5 * cellSize);\n\n\t\t// 3. 中心 3x3 实心黑方块\n\t\tctx.fillStyle = color;\n\t\tctx.fillRect(ox + 2 * cellSize, oy + 2 * cellSize, 3 * cellSize, 3 * cellSize);\n\t};\n\n\tdrawPositionPattern(0, 0);\n\tdrawPositionPattern(0, modules - 7);\n\tdrawPositionPattern(modules - 7, 0);\n\n\t// 绘制时钟同步线 (Timing Patterns)\n\tfor (let i = 8; i < modules - 8; i++) {\n\t\tif (i % 2 === 0) {\n\t\t\tctx.fillRect(startOffset + i * cellSize, startOffset + 6 * cellSize, cellSize, cellSize);\n\t\t\tctx.fillRect(startOffset + 6 * cellSize, startOffset + i * cellSize, cellSize, cellSize);\n\t\t}\n\t}\n\n\t// 基于文本字符串的 hash 填充数据点\n\tlet hash = 0;\n\tfor (let i = 0; i < text.length; i++) {\n\t\thash = (hash << 5) - hash + text.charCodeAt(i);\n\t\thash |= 0;\n\t}\n\n\tfor (let r = 0; r < modules; r++) {\n\t\tfor (let c = 0; c < modules; c++) {\n\t\t\t// 跳过三个角的位置\n\t\t\tif (\n\t\t\t\t(r < 8 && c < 8) ||\n\t\t\t\t(r < 8 && c >= modules - 8) ||\n\t\t\t\t(r >= modules - 8 && c < 8) ||\n\t\t\t\tr === 6 ||\n\t\t\t\tc === 6\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst seed = (r * 37 + c * 23 + (hash ^ (r * c))) % 100;\n\t\t\tif (Math.abs(seed) % 2 === 0) {\n\t\t\t\tctx.fillStyle = color;\n\t\t\t\t// 轻微圆角方块效果\n\t\t\t\tconst x = startOffset + c * cellSize;\n\t\t\t\tconst y = startOffset + r * cellSize;\n\t\t\t\tctx.fillRect(x, y, cellSize - 0.15, cellSize - 0.15);\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst QrCodeCard: React.FC<QrCodeCardProps> = ({\n\tvalue,\n\tsize = 160,\n\tcolor = '#1f1f1f',\n\tbackgroundColor = '#ffffff',\n\ticon,\n\ticonSize,\n\tstatus = 'active',\n\ttitle,\n\tdescription,\n\tdownloadable = false,\n\tbordered = false,\n\tonRefresh,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst canvasRef = useRef<HTMLCanvasElement>(null);\n\tconst calculatedLogoSize = iconSize || Math.max(28, Math.round(size * 0.22));\n\n\tuseEffect(() => {\n\t\tif (canvasRef.current && value) {\n\t\t\trenderQrCode(canvasRef.current, value, size, color, backgroundColor);\n\t\t}\n\t}, [value, size, color, backgroundColor]);\n\n\tconst handleDownload = () => {\n\t\tif (!canvasRef.current) return;\n\t\tconst url = canvasRef.current.toDataURL('image/png');\n\t\tconst a = document.createElement('a');\n\t\ta.href = url;\n\t\ta.download = `qrcode-${Date.now()}.png`;\n\t\ta.click();\n\t};\n\n\treturn (\n\t\t<div className={`rpc_qrcode_card ${className}`} style={style}>\n\t\t\t<div\n\t\t\t\tclassName={`rpc_qrcode_card_wrap ${bordered ? 'rpc_qrcode_card_wrap_bordered' : ''}`}\n\t\t\t\tstyle={{ width: size + 24, height: size + 24 }}\n\t\t\t>\n\t\t\t\t<canvas\n\t\t\t\t\tref={canvasRef}\n\t\t\t\t\tclassName=\"rpc_qrcode_card_canvas\"\n\t\t\t\t\tstyle={{ width: size, height: size }}\n\t\t\t\t/>\n\n\t\t\t\t{/* 嵌入中心 Logo */}\n\t\t\t\t{icon && status === 'active' && (\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={icon}\n\t\t\t\t\t\talt=\"Logo\"\n\t\t\t\t\t\tclassName=\"rpc_qrcode_card_logo\"\n\t\t\t\t\t\tstyle={{ width: calculatedLogoSize, height: calculatedLogoSize }}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{/* 过期遮罩 */}\n\t\t\t\t{status === 'expired' && (\n\t\t\t\t\t<div className=\"rpc_qrcode_card_mask rpc_qrcode_card_mask_expired\" onClick={onRefresh}>\n\t\t\t\t\t\t<div className=\"rpc_qrcode_card_mask_title\">二维码已失效</div>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName=\"rpc_qrcode_card_refresh_btn\"\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\tonRefresh?.();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ReloadOutlined className=\"rpc_qrcode_card_refresh_icon\" />\n\t\t\t\t\t\t\t<span>点击刷新</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{/* 加载中遮罩 */}\n\t\t\t\t{status === 'loading' && (\n\t\t\t\t\t<div className=\"rpc_qrcode_card_mask rpc_qrcode_card_mask_loading\">\n\t\t\t\t\t\t<div className=\"rpc_qrcode_card_spinner_wrap\">\n\t\t\t\t\t\t\t<LoadingOutlined className=\"rpc_qrcode_card_spinner\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span className=\"rpc_qrcode_card_mask_text\">加载中...</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{/* 标题说明 */}\n\t\t\t{(title || description) && (\n\t\t\t\t<div className=\"rpc_qrcode_card_info\">\n\t\t\t\t\t{title && <div className=\"rpc_qrcode_card_title\">{title}</div>}\n\t\t\t\t\t{description && <div className=\"rpc_qrcode_card_description\">{description}</div>}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* 下载链接 */}\n\t\t\t{downloadable && status === 'active' && (\n\t\t\t\t<button type=\"button\" className=\"rpc_qrcode_card_download\" onClick={handleDownload}>\n\t\t\t\t\t<DownloadOutlined style={{ marginRight: 4, fontSize: 13 }} />\n\t\t\t\t\t<span>下载二维码</span>\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default QrCodeCard;\n"]}
|
|
1
|
+
{"version":3,"sources":["../QrCodeCard/index.tsx"],"names":[],"mappings":"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","file":"chunk-5QEXX32M.js","sourcesContent":["import React, { useRef, useEffect, ReactNode, CSSProperties } from 'react';\nimport { ReloadOutlined, LoadingOutlined, DownloadOutlined } from '../src/icons';\nimport './index.less';\n\nexport type QrCodeStatus = 'active' | 'expired' | 'loading';\n\nexport interface QrCodeCardProps {\n\t/** 二维码内容或跳转 URL */\n\tvalue: string;\n\t/** 二维码尺寸(像素),默认为 160 */\n\tsize?: number;\n\t/** 二维码颜色,默认为 #1a1a1a */\n\tcolor?: string;\n\t/** 二维码背景色,默认为 #ffffff */\n\tbackgroundColor?: string;\n\t/** 中心嵌入的 Logo 图标地址 */\n\ticon?: string;\n\t/** 中心 Logo 的尺寸(像素),默认根据 size 自动计算 (约 22%) */\n\ticonSize?: number;\n\t/** 二维码状态:'active' 正常,'expired' 已过期,'loading' 生成中,默认为 'active' */\n\tstatus?: QrCodeStatus;\n\t/** 卡片主标题说明 */\n\ttitle?: ReactNode;\n\t/** 卡片副标题或扫码引导文案 */\n\tdescription?: ReactNode;\n\t/** 是否显示一键下载二维码按钮,默认为 false */\n\tdownloadable?: boolean;\n\t/** 是否显示四角扫码引导角标,默认为 false */\n\tbordered?: boolean;\n\t/** 点击过期遮罩刷新时的回调 */\n\tonRefresh?: () => void;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\n// 经典的 25x25 规整 QR 矩阵模式生成器(带标准 3 方位探测器与时钟同步条)\nfunction renderQrCode(\n\tcanvas: HTMLCanvasElement,\n\ttext: string,\n\tsize: number,\n\tcolor: string = '#1a1a1a',\n\tbgColor: string = '#ffffff',\n) {\n\tconst ctx = canvas.getContext('2d');\n\tif (!ctx) return;\n\n\tconst dpr = window.devicePixelRatio || 2;\n\tcanvas.width = size * dpr;\n\tcanvas.height = size * dpr;\n\tctx.scale(dpr, dpr);\n\n\t// 背景\n\tctx.fillStyle = bgColor;\n\tctx.fillRect(0, 0, size, size);\n\n\tconst modules = 25; // 25x25 矩阵\n\tconst padding = 1.5; // 安全边距留白 (Quiet Zone)\n\tconst effectiveSize = size;\n\tconst cellSize = effectiveSize / (modules + padding * 2);\n\tconst startOffset = padding * cellSize;\n\n\tctx.fillStyle = color;\n\n\t// 绘制三个角的定位探测图案 (Position Detection Patterns)\n\tconst drawPositionPattern = (row: number, col: number) => {\n\t\tconst ox = startOffset + col * cellSize;\n\t\tconst oy = startOffset + row * cellSize;\n\n\t\t// 1. 外层 7x7 实心黑方块(带圆角)\n\t\tctx.fillStyle = color;\n\t\tctx.fillRect(ox, oy, 7 * cellSize, 7 * cellSize);\n\n\t\t// 2. 内层 5x5 白色挖空方块\n\t\tctx.fillStyle = bgColor;\n\t\tctx.fillRect(ox + 1 * cellSize, oy + 1 * cellSize, 5 * cellSize, 5 * cellSize);\n\n\t\t// 3. 中心 3x3 实心黑方块\n\t\tctx.fillStyle = color;\n\t\tctx.fillRect(ox + 2 * cellSize, oy + 2 * cellSize, 3 * cellSize, 3 * cellSize);\n\t};\n\n\tdrawPositionPattern(0, 0);\n\tdrawPositionPattern(0, modules - 7);\n\tdrawPositionPattern(modules - 7, 0);\n\n\t// 绘制时钟同步线 (Timing Patterns)\n\tfor (let i = 8; i < modules - 8; i++) {\n\t\tif (i % 2 === 0) {\n\t\t\tctx.fillRect(startOffset + i * cellSize, startOffset + 6 * cellSize, cellSize, cellSize);\n\t\t\tctx.fillRect(startOffset + 6 * cellSize, startOffset + i * cellSize, cellSize, cellSize);\n\t\t}\n\t}\n\n\t// 基于文本字符串的 hash 填充数据点\n\tlet hash = 0;\n\tfor (let i = 0; i < text.length; i++) {\n\t\thash = (hash << 5) - hash + text.charCodeAt(i);\n\t\thash |= 0;\n\t}\n\n\tfor (let r = 0; r < modules; r++) {\n\t\tfor (let c = 0; c < modules; c++) {\n\t\t\t// 跳过三个角的位置\n\t\t\tif (\n\t\t\t\t(r < 8 && c < 8) ||\n\t\t\t\t(r < 8 && c >= modules - 8) ||\n\t\t\t\t(r >= modules - 8 && c < 8) ||\n\t\t\t\tr === 6 ||\n\t\t\t\tc === 6\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst seed = (r * 37 + c * 23 + (hash ^ (r * c))) % 100;\n\t\t\tif (Math.abs(seed) % 2 === 0) {\n\t\t\t\tctx.fillStyle = color;\n\t\t\t\t// 轻微圆角方块效果\n\t\t\t\tconst x = startOffset + c * cellSize;\n\t\t\t\tconst y = startOffset + r * cellSize;\n\t\t\t\tctx.fillRect(x, y, cellSize - 0.15, cellSize - 0.15);\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst QrCodeCard: React.FC<QrCodeCardProps> = ({\n\tvalue,\n\tsize = 160,\n\tcolor = '#1f1f1f',\n\tbackgroundColor = '#ffffff',\n\ticon,\n\ticonSize,\n\tstatus = 'active',\n\ttitle,\n\tdescription,\n\tdownloadable = false,\n\tbordered = false,\n\tonRefresh,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst canvasRef = useRef<HTMLCanvasElement>(null);\n\tconst calculatedLogoSize = iconSize || Math.max(28, Math.round(size * 0.22));\n\n\tuseEffect(() => {\n\t\tif (canvasRef.current && value) {\n\t\t\trenderQrCode(canvasRef.current, value, size, color, backgroundColor);\n\t\t}\n\t}, [value, size, color, backgroundColor]);\n\n\tconst handleDownload = () => {\n\t\tif (!canvasRef.current) return;\n\t\tconst url = canvasRef.current.toDataURL('image/png');\n\t\tconst a = document.createElement('a');\n\t\ta.href = url;\n\t\ta.download = `qrcode-${Date.now()}.png`;\n\t\ta.click();\n\t};\n\n\treturn (\n\t\t<div className={`rpc_qrcode_card ${className}`} style={style}>\n\t\t\t<div\n\t\t\t\tclassName={`rpc_qrcode_card_wrap ${bordered ? 'rpc_qrcode_card_wrap_bordered' : ''}`}\n\t\t\t\tstyle={{ width: size + 24, height: size + 24 }}\n\t\t\t>\n\t\t\t\t<canvas\n\t\t\t\t\tref={canvasRef}\n\t\t\t\t\tclassName=\"rpc_qrcode_card_canvas\"\n\t\t\t\t\tstyle={{ width: size, height: size }}\n\t\t\t\t/>\n\n\t\t\t\t{/* 嵌入中心 Logo */}\n\t\t\t\t{icon && status === 'active' && (\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={icon}\n\t\t\t\t\t\talt=\"Logo\"\n\t\t\t\t\t\tclassName=\"rpc_qrcode_card_logo\"\n\t\t\t\t\t\tstyle={{ width: calculatedLogoSize, height: calculatedLogoSize }}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{/* 过期遮罩 */}\n\t\t\t\t{status === 'expired' && (\n\t\t\t\t\t<div className=\"rpc_qrcode_card_mask rpc_qrcode_card_mask_expired\" onClick={onRefresh}>\n\t\t\t\t\t\t<div className=\"rpc_qrcode_card_mask_title\">二维码已失效</div>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName=\"rpc_qrcode_card_refresh_btn\"\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\tonRefresh?.();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ReloadOutlined className=\"rpc_qrcode_card_refresh_icon\" />\n\t\t\t\t\t\t\t<span>点击刷新</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{/* 加载中遮罩 */}\n\t\t\t\t{status === 'loading' && (\n\t\t\t\t\t<div className=\"rpc_qrcode_card_mask rpc_qrcode_card_mask_loading\">\n\t\t\t\t\t\t<div className=\"rpc_qrcode_card_spinner_wrap\">\n\t\t\t\t\t\t\t<LoadingOutlined className=\"rpc_qrcode_card_spinner\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span className=\"rpc_qrcode_card_mask_text\">加载中...</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{/* 标题说明 */}\n\t\t\t{(title || description) && (\n\t\t\t\t<div className=\"rpc_qrcode_card_info\">\n\t\t\t\t\t{title && <div className=\"rpc_qrcode_card_title\">{title}</div>}\n\t\t\t\t\t{description && <div className=\"rpc_qrcode_card_description\">{description}</div>}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* 下载链接 */}\n\t\t\t{downloadable && status === 'active' && (\n\t\t\t\t<button type=\"button\" className=\"rpc_qrcode_card_download\" onClick={handleDownload}>\n\t\t\t\t\t<DownloadOutlined style={{ marginRight: 4, fontSize: 13 }} />\n\t\t\t\t\t<span>下载二维码</span>\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default QrCodeCard;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CopyButton_default } from './chunk-
|
|
1
|
+
import { CopyButton_default } from './chunk-KJ537QZS.js';
|
|
2
2
|
import React, { useState, useRef, useEffect } from 'react';
|
|
3
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
4
|
|
|
@@ -85,5 +85,5 @@ var TextEllipsis = ({
|
|
|
85
85
|
var TextEllipsis_default = TextEllipsis;
|
|
86
86
|
|
|
87
87
|
export { TextEllipsis_default };
|
|
88
|
-
//# sourceMappingURL=chunk-
|
|
89
|
-
//# sourceMappingURL=chunk-
|
|
88
|
+
//# sourceMappingURL=chunk-5XTIASJH.js.map
|
|
89
|
+
//# sourceMappingURL=chunk-5XTIASJH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../TextEllipsis/index.tsx"],"names":["_a"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../TextEllipsis/index.tsx"],"names":["_a"],"mappings":"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","file":"chunk-5XTIASJH.js","sourcesContent":["import React, { useState, useRef, useEffect, ReactNode, CSSProperties } from 'react';\nimport CopyButton from '../CopyButton';\nimport './index.less';\n\nexport interface TextEllipsisExpandConfig {\n\t/** 展开按钮文案,默认为 '展开' */\n\tcollapsedText?: ReactNode;\n\t/** 收起按钮文案,默认为 '收起' */\n\texpandedText?: ReactNode;\n\t/** 默认是否展开 */\n\tdefaultExpanded?: boolean;\n\t/** 展开状态改变回调 */\n\tonExpandChange?: (expanded: boolean) => void;\n}\n\nexport interface TextEllipsisProps {\n\t/** 显示的文本或节点 */\n\tchildren: ReactNode;\n\t/** 最大显示行数,超过则截断,默认为 1 */\n\tlines?: number;\n\t/** 是否支持展开/收起,可传 boolean 或配置对象 */\n\texpandable?: boolean | TextEllipsisExpandConfig;\n\t/** Tooltip 浮层展示配置:'auto' 仅在溢出截断时展示、true 始终在 hover 时展示、false 禁用 */\n\ttooltip?: 'auto' | boolean | ReactNode;\n\t/** 是否显示复制按钮 */\n\tcopyable?: boolean;\n\t/** 前缀节点 */\n\tprefix?: ReactNode;\n\t/** 后缀节点 */\n\tsuffix?: ReactNode;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst TextEllipsis: React.FC<TextEllipsisProps> = ({\n\tchildren,\n\tlines = 1,\n\texpandable = false,\n\ttooltip = 'auto',\n\tcopyable = false,\n\tprefix,\n\tsuffix,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst expandConfig = typeof expandable === 'object' ? expandable : {};\n\tconst [expanded, setExpanded] = useState<boolean>(expandConfig.defaultExpanded ?? false);\n\tconst [isOverflow, setIsOverflow] = useState<boolean>(false);\n\tconst [isHovered, setIsHovered] = useState<boolean>(false);\n\tconst textRef = useRef<HTMLDivElement>(null);\n\n\t// 检测文本是否发生溢出截断\n\tconst checkOverflow = () => {\n\t\tconst el = textRef.current;\n\t\tif (!el) return;\n\t\tif (lines === 1) {\n\t\t\tsetIsOverflow(el.scrollWidth > el.clientWidth);\n\t\t} else {\n\t\t\tsetIsOverflow(el.scrollHeight > el.clientHeight);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tcheckOverflow();\n\t\twindow.addEventListener('resize', checkOverflow);\n\t\treturn () => {\n\t\t\twindow.removeEventListener('resize', checkOverflow);\n\t\t};\n\t}, [children, lines, expanded]);\n\n\tconst handleToggleExpand = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tconst nextState = !expanded;\n\t\tsetExpanded(nextState);\n\t\texpandConfig.onExpandChange?.(nextState);\n\t};\n\n\t// 提取纯文本用于复制和默认 Tooltip\n\tconst rawText =\n\t\ttypeof children === 'string' || typeof children === 'number' ? String(children) : '';\n\n\t// 判断是否展示 Tooltip\n\tconst shouldShowTooltip =\n\t\t!expanded &&\n\t\t(tooltip === true ||\n\t\t\t(tooltip === 'auto' && isOverflow) ||\n\t\t\t(typeof tooltip === 'string' && tooltip.length > 0));\n\n\tconst tooltipText =\n\t\ttypeof tooltip === 'string' || React.isValidElement(tooltip) ? tooltip : rawText;\n\n\tconst collapsedBtnText = expandConfig.collapsedText ?? '展开';\n\tconst expandedBtnText = expandConfig.expandedText ?? '收起';\n\n\tconst isSingleLine = lines <= 1;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`rpc_text_ellipsis ${className}`}\n\t\t\tstyle={style}\n\t\t\tonMouseEnter={() => setIsHovered(true)}\n\t\t\tonMouseLeave={() => setIsHovered(false)}\n\t\t>\n\t\t\t{prefix && <span className=\"rpc_text_ellipsis_prefix\">{prefix}</span>}\n\n\t\t\t<div\n\t\t\t\tref={textRef}\n\t\t\t\tclassName={`rpc_text_ellipsis_content_wrap ${\n\t\t\t\t\texpanded\n\t\t\t\t\t\t? 'rpc_text_ellipsis_expanded'\n\t\t\t\t\t\t: isSingleLine\n\t\t\t\t\t\t\t? 'rpc_text_ellipsis_single_line'\n\t\t\t\t\t\t\t: 'rpc_text_ellipsis_multi_line'\n\t\t\t\t}`}\n\t\t\t\tstyle={{\n\t\t\t\t\tWebkitLineClamp: expanded ? undefined : lines > 1 ? lines : undefined,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\n\t\t\t{expandable && (isOverflow || expanded) && (\n\t\t\t\t<span className=\"rpc_text_ellipsis_action_btn\" onClick={handleToggleExpand}>\n\t\t\t\t\t{expanded ? expandedBtnText : collapsedBtnText}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t{copyable && rawText && (\n\t\t\t\t<span className=\"rpc_text_ellipsis_suffix\">\n\t\t\t\t\t<CopyButton mode=\"icon\" text={rawText} tooltip={false} />\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t{suffix && <span className=\"rpc_text_ellipsis_suffix\">{suffix}</span>}\n\n\t\t\t{shouldShowTooltip && tooltipText && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={`rpc_text_ellipsis_tooltip ${\n\t\t\t\t\t\tisHovered ? 'rpc_text_ellipsis_tooltip_visible' : ''\n\t\t\t\t\t}`}\n\t\t\t\t>\n\t\t\t\t\t{tooltipText}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default TextEllipsis;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkK4LVWWEE_cjs = require('./chunk-K4LVWWEE.cjs');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
|
|
@@ -75,7 +75,7 @@ var TextEllipsis = ({
|
|
|
75
75
|
}
|
|
76
76
|
),
|
|
77
77
|
expandable && (isOverflow || expanded) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_text_ellipsis_action_btn", onClick: handleToggleExpand, children: expanded ? expandedBtnText : collapsedBtnText }),
|
|
78
|
-
copyable && rawText && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_text_ellipsis_suffix", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
78
|
+
copyable && rawText && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_text_ellipsis_suffix", children: /* @__PURE__ */ jsxRuntime.jsx(chunkK4LVWWEE_cjs.CopyButton_default, { mode: "icon", text: rawText, tooltip: false }) }),
|
|
79
79
|
suffix && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_text_ellipsis_suffix", children: suffix }),
|
|
80
80
|
shouldShowTooltip && tooltipText && /* @__PURE__ */ jsxRuntime.jsx(
|
|
81
81
|
"div",
|
|
@@ -91,5 +91,5 @@ var TextEllipsis = ({
|
|
|
91
91
|
var TextEllipsis_default = TextEllipsis;
|
|
92
92
|
|
|
93
93
|
exports.TextEllipsis_default = TextEllipsis_default;
|
|
94
|
-
//# sourceMappingURL=chunk-
|
|
95
|
-
//# sourceMappingURL=chunk-
|
|
94
|
+
//# sourceMappingURL=chunk-6KODABJW.cjs.map
|
|
95
|
+
//# sourceMappingURL=chunk-6KODABJW.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../TextEllipsis/index.tsx"],"names":["useState","useRef","useEffect","_a","React","jsxs","jsx","CopyButton_default"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../TextEllipsis/index.tsx"],"names":["useState","useRef","useEffect","_a","React","jsxs","jsx","CopyButton_default"],"mappings":";;;;;;;;;;AAoCA,IAAM,eAA4C,CAAC;AAAA,EAClD,QAAA;AAAA,EACA,KAAA,GAAQ,CAAA;AAAA,EACR,UAAA,GAAa,KAAA;AAAA,EACb,OAAA,GAAU,MAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,MAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ;AACD,CAAA,KAAM;AA9CN,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA+CC,EAAA,MAAM,YAAA,GAAe,OAAO,UAAA,KAAe,QAAA,GAAW,aAAa,EAAC;AACpE,EAAA,MAAM,CAAC,UAAU,WAAW,CAAA,GAAIA,gBAAkB,EAAA,GAAA,YAAA,CAAa,eAAA,KAAb,YAAgC,KAAK,CAAA;AACvF,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,eAAkB,KAAK,CAAA;AAC3D,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,eAAkB,KAAK,CAAA;AACzD,EAAA,MAAM,OAAA,GAAUC,aAAuB,IAAI,CAAA;AAG3C,EAAA,MAAM,gBAAgB,MAAM;AAC3B,IAAA,MAAM,KAAK,OAAA,CAAQ,OAAA;AACnB,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,IAAI,UAAU,CAAA,EAAG;AAChB,MAAA,aAAA,CAAc,EAAA,CAAG,WAAA,GAAc,EAAA,CAAG,WAAW,CAAA;AAAA,IAC9C,CAAA,MAAO;AACN,MAAA,aAAA,CAAc,EAAA,CAAG,YAAA,GAAe,EAAA,CAAG,YAAY,CAAA;AAAA,IAChD;AAAA,EACD,CAAA;AAEA,EAAAC,eAAA,CAAU,MAAM;AACf,IAAA,aAAA,EAAc;AACd,IAAA,MAAA,CAAO,gBAAA,CAAiB,UAAU,aAAa,CAAA;AAC/C,IAAA,OAAO,MAAM;AACZ,MAAA,MAAA,CAAO,mBAAA,CAAoB,UAAU,aAAa,CAAA;AAAA,IACnD,CAAA;AAAA,EACD,CAAA,EAAG,CAAC,QAAA,EAAU,KAAA,EAAO,QAAQ,CAAC,CAAA;AAE9B,EAAA,MAAM,kBAAA,GAAqB,CAAC,CAAA,KAAwB;AAxErD,IAAA,IAAAC,GAAAA;AAyEE,IAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,IAAA,MAAM,YAAY,CAAC,QAAA;AACnB,IAAA,WAAA,CAAY,SAAS,CAAA;AACrB,IAAA,CAAAA,GAAAA,GAAA,YAAA,CAAa,cAAA,KAAb,IAAA,GAAA,MAAA,GAAAA,IAAA,IAAA,CAAA,YAAA,EAA8B,SAAA,CAAA;AAAA,EAC/B,CAAA;AAGA,EAAA,MAAM,OAAA,GACL,OAAO,QAAA,KAAa,QAAA,IAAY,OAAO,QAAA,KAAa,QAAA,GAAW,MAAA,CAAO,QAAQ,CAAA,GAAI,EAAA;AAGnF,EAAA,MAAM,iBAAA,GACL,CAAC,QAAA,KACA,OAAA,KAAY,IAAA,IACX,OAAA,KAAY,MAAA,IAAU,UAAA,IACtB,OAAO,OAAA,KAAY,QAAA,IAAY,OAAA,CAAQ,MAAA,GAAS,CAAA,CAAA;AAEnD,EAAA,MAAM,WAAA,GACL,OAAO,OAAA,KAAY,QAAA,IAAYC,uBAAM,cAAA,CAAe,OAAO,IAAI,OAAA,GAAU,OAAA;AAE1E,EAAA,MAAM,gBAAA,GAAA,CAAmB,EAAA,GAAA,YAAA,CAAa,aAAA,KAAb,IAAA,GAAA,EAAA,GAA8B,cAAA;AACvD,EAAA,MAAM,eAAA,GAAA,CAAkB,EAAA,GAAA,YAAA,CAAa,YAAA,KAAb,IAAA,GAAA,EAAA,GAA6B,cAAA;AAErD,EAAA,MAAM,eAAe,KAAA,IAAS,CAAA;AAE9B,EAAA,uBACCC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,SAAA,EAAW,qBAAqB,SAAS,CAAA,CAAA;AAAA,MACzC,KAAA;AAAA,MACA,YAAA,EAAc,MAAM,YAAA,CAAa,IAAI,CAAA;AAAA,MACrC,YAAA,EAAc,MAAM,YAAA,CAAa,KAAK,CAAA;AAAA,MAErC,QAAA,EAAA;AAAA,QAAA,MAAA,oBAAUC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0BAAA,EAA4B,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,wBAE9DA,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,GAAA,EAAK,OAAA;AAAA,YACL,WAAW,CAAA,+BAAA,EACV,QAAA,GACG,4BAAA,GACA,YAAA,GACC,kCACA,8BACL,CAAA,CAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACN,eAAA,EAAiB,QAAA,GAAW,MAAA,GAAY,KAAA,GAAQ,IAAI,KAAA,GAAQ;AAAA,aAC7D;AAAA,YAEC;AAAA;AAAA,SACF;AAAA,QAEC,UAAA,KAAe,UAAA,IAAc,QAAA,CAAA,oBAC7BA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8BAAA,EAA+B,OAAA,EAAS,kBAAA,EACtD,QAAA,EAAA,QAAA,GAAW,eAAA,GAAkB,gBAAA,EAC/B,CAAA;AAAA,QAGA,QAAA,IAAY,OAAA,oBACZA,cAAA,CAAC,MAAA,EAAA,EAAK,WAAU,0BAAA,EACf,QAAA,kBAAAA,cAAA,CAACC,oCAAA,EAAA,EAAW,IAAA,EAAK,MAAA,EAAO,IAAA,EAAM,OAAA,EAAS,OAAA,EAAS,OAAO,CAAA,EACxD,CAAA;AAAA,QAGA,MAAA,oBAAUD,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4BAA4B,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,QAE7D,qBAAqB,WAAA,oBACrBA,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,SAAA,EAAW,CAAA,0BAAA,EACV,SAAA,GAAY,mCAAA,GAAsC,EACnD,CAAA,CAAA;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA;AACF;AAAA;AAAA,GAEF;AAEF,CAAA;AAEA,IAAO,oBAAA,GAAQ","file":"chunk-6KODABJW.cjs","sourcesContent":["import React, { useState, useRef, useEffect, ReactNode, CSSProperties } from 'react';\nimport CopyButton from '../CopyButton';\nimport './index.less';\n\nexport interface TextEllipsisExpandConfig {\n\t/** 展开按钮文案,默认为 '展开' */\n\tcollapsedText?: ReactNode;\n\t/** 收起按钮文案,默认为 '收起' */\n\texpandedText?: ReactNode;\n\t/** 默认是否展开 */\n\tdefaultExpanded?: boolean;\n\t/** 展开状态改变回调 */\n\tonExpandChange?: (expanded: boolean) => void;\n}\n\nexport interface TextEllipsisProps {\n\t/** 显示的文本或节点 */\n\tchildren: ReactNode;\n\t/** 最大显示行数,超过则截断,默认为 1 */\n\tlines?: number;\n\t/** 是否支持展开/收起,可传 boolean 或配置对象 */\n\texpandable?: boolean | TextEllipsisExpandConfig;\n\t/** Tooltip 浮层展示配置:'auto' 仅在溢出截断时展示、true 始终在 hover 时展示、false 禁用 */\n\ttooltip?: 'auto' | boolean | ReactNode;\n\t/** 是否显示复制按钮 */\n\tcopyable?: boolean;\n\t/** 前缀节点 */\n\tprefix?: ReactNode;\n\t/** 后缀节点 */\n\tsuffix?: ReactNode;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst TextEllipsis: React.FC<TextEllipsisProps> = ({\n\tchildren,\n\tlines = 1,\n\texpandable = false,\n\ttooltip = 'auto',\n\tcopyable = false,\n\tprefix,\n\tsuffix,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst expandConfig = typeof expandable === 'object' ? expandable : {};\n\tconst [expanded, setExpanded] = useState<boolean>(expandConfig.defaultExpanded ?? false);\n\tconst [isOverflow, setIsOverflow] = useState<boolean>(false);\n\tconst [isHovered, setIsHovered] = useState<boolean>(false);\n\tconst textRef = useRef<HTMLDivElement>(null);\n\n\t// 检测文本是否发生溢出截断\n\tconst checkOverflow = () => {\n\t\tconst el = textRef.current;\n\t\tif (!el) return;\n\t\tif (lines === 1) {\n\t\t\tsetIsOverflow(el.scrollWidth > el.clientWidth);\n\t\t} else {\n\t\t\tsetIsOverflow(el.scrollHeight > el.clientHeight);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tcheckOverflow();\n\t\twindow.addEventListener('resize', checkOverflow);\n\t\treturn () => {\n\t\t\twindow.removeEventListener('resize', checkOverflow);\n\t\t};\n\t}, [children, lines, expanded]);\n\n\tconst handleToggleExpand = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tconst nextState = !expanded;\n\t\tsetExpanded(nextState);\n\t\texpandConfig.onExpandChange?.(nextState);\n\t};\n\n\t// 提取纯文本用于复制和默认 Tooltip\n\tconst rawText =\n\t\ttypeof children === 'string' || typeof children === 'number' ? String(children) : '';\n\n\t// 判断是否展示 Tooltip\n\tconst shouldShowTooltip =\n\t\t!expanded &&\n\t\t(tooltip === true ||\n\t\t\t(tooltip === 'auto' && isOverflow) ||\n\t\t\t(typeof tooltip === 'string' && tooltip.length > 0));\n\n\tconst tooltipText =\n\t\ttypeof tooltip === 'string' || React.isValidElement(tooltip) ? tooltip : rawText;\n\n\tconst collapsedBtnText = expandConfig.collapsedText ?? '展开';\n\tconst expandedBtnText = expandConfig.expandedText ?? '收起';\n\n\tconst isSingleLine = lines <= 1;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`rpc_text_ellipsis ${className}`}\n\t\t\tstyle={style}\n\t\t\tonMouseEnter={() => setIsHovered(true)}\n\t\t\tonMouseLeave={() => setIsHovered(false)}\n\t\t>\n\t\t\t{prefix && <span className=\"rpc_text_ellipsis_prefix\">{prefix}</span>}\n\n\t\t\t<div\n\t\t\t\tref={textRef}\n\t\t\t\tclassName={`rpc_text_ellipsis_content_wrap ${\n\t\t\t\t\texpanded\n\t\t\t\t\t\t? 'rpc_text_ellipsis_expanded'\n\t\t\t\t\t\t: isSingleLine\n\t\t\t\t\t\t\t? 'rpc_text_ellipsis_single_line'\n\t\t\t\t\t\t\t: 'rpc_text_ellipsis_multi_line'\n\t\t\t\t}`}\n\t\t\t\tstyle={{\n\t\t\t\t\tWebkitLineClamp: expanded ? undefined : lines > 1 ? lines : undefined,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\n\t\t\t{expandable && (isOverflow || expanded) && (\n\t\t\t\t<span className=\"rpc_text_ellipsis_action_btn\" onClick={handleToggleExpand}>\n\t\t\t\t\t{expanded ? expandedBtnText : collapsedBtnText}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t{copyable && rawText && (\n\t\t\t\t<span className=\"rpc_text_ellipsis_suffix\">\n\t\t\t\t\t<CopyButton mode=\"icon\" text={rawText} tooltip={false} />\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t{suffix && <span className=\"rpc_text_ellipsis_suffix\">{suffix}</span>}\n\n\t\t\t{shouldShowTooltip && tooltipText && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={`rpc_text_ellipsis_tooltip ${\n\t\t\t\t\t\tisHovered ? 'rpc_text_ellipsis_tooltip_visible' : ''\n\t\t\t\t\t}`}\n\t\t\t\t>\n\t\t\t\t\t{tooltipText}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default TextEllipsis;\n"]}
|