react-public-components 1.2.2 → 1.2.3
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/dist/ActivityLog/index.cjs +2 -2
- package/dist/ActivityLog/index.js +1 -1
- package/dist/AudioPlayer/index.cjs +3 -3
- package/dist/AudioPlayer/index.js +2 -2
- package/dist/CascadeDrawer/index.cjs +2 -2
- package/dist/CascadeDrawer/index.d.ts +1 -1
- package/dist/CascadeDrawer/index.js +1 -1
- package/dist/CodeSnippet/index.cjs +2 -2
- package/dist/CodeSnippet/index.css +79 -11
- package/dist/CodeSnippet/index.css.map +1 -1
- package/dist/CodeSnippet/index.d.ts +10 -1
- package/dist/CodeSnippet/index.js +1 -1
- 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/CountUp/index.cjs +2 -2
- package/dist/CountUp/index.js +1 -1
- 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.d.ts +1 -1
- package/dist/DebounceSelect/index.js +2 -2
- package/dist/DiffViewer/index.cjs +2 -2
- package/dist/DiffViewer/index.js +1 -1
- package/dist/DisabledBox/index.cjs +3 -3
- package/dist/DisabledBox/index.d.ts +11 -3
- package/dist/DisabledBox/index.js +2 -2
- package/dist/EnvBadge/index.cjs +2 -2
- package/dist/EnvBadge/index.js +1 -1
- 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/JsonDiffViewer/index.cjs +2 -2
- package/dist/JsonDiffViewer/index.js +1 -1
- package/dist/JsonEditor/index.cjs +4 -4
- package/dist/JsonEditor/index.d.ts +1 -1
- package/dist/JsonEditor/index.js +3 -3
- package/dist/JsonTree/index.cjs +2 -2
- package/dist/JsonTree/index.d.ts +1 -1
- package/dist/JsonTree/index.js +1 -1
- package/dist/KanbanBoard/index.cjs +2 -2
- package/dist/KanbanBoard/index.js +1 -1
- package/dist/KeyValEditor/index.cjs +3 -3
- package/dist/KeyValEditor/index.js +2 -2
- package/dist/Marquee/index.cjs +2 -2
- package/dist/Marquee/index.js +1 -1
- package/dist/MetricCard/index.cjs +3 -3
- package/dist/MetricCard/index.js +2 -2
- package/dist/NumericRangeInput/index.cjs +2 -2
- package/dist/NumericRangeInput/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/QrCodeCard/index.cjs +3 -3
- package/dist/QrCodeCard/index.js +2 -2
- package/dist/QuickDateRange/index.cjs +2 -2
- package/dist/QuickDateRange/index.js +1 -1
- package/dist/ScrollTracker/index.cjs +4 -4
- package/dist/ScrollTracker/index.js +1 -1
- package/dist/SegmentedProgress/index.cjs +2 -2
- package/dist/SegmentedProgress/index.js +1 -1
- 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/StatusTimeline/index.cjs +2 -2
- package/dist/StatusTimeline/index.js +1 -1
- 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/TreeFilterPanel/index.cjs +2 -2
- package/dist/TreeFilterPanel/index.js +1 -1
- package/dist/TreeTransfer/index.cjs +3 -3
- package/dist/TreeTransfer/index.js +2 -2
- package/dist/TrendIndicator/index.cjs +2 -2
- package/dist/TrendIndicator/index.js +1 -1
- package/dist/VideoPlayer/index.cjs +3 -3
- package/dist/VideoPlayer/index.js +2 -2
- package/dist/VirtualList/index.cjs +2 -2
- package/dist/VirtualList/index.js +1 -1
- package/dist/Watermark/index.cjs +2 -2
- package/dist/Watermark/index.js +1 -1
- package/dist/{chunk-FRGH3Q75.cjs → chunk-2DIU347W.cjs} +4 -4
- package/dist/{chunk-FRGH3Q75.cjs.map → chunk-2DIU347W.cjs.map} +1 -1
- package/dist/{chunk-DATPWEQK.cjs → chunk-2MDYHFLH.cjs} +4 -4
- package/dist/{chunk-DATPWEQK.cjs.map → chunk-2MDYHFLH.cjs.map} +1 -1
- package/dist/{chunk-I3HBI52O.js → chunk-2O2A5XYF.js} +3 -11
- package/dist/chunk-2O2A5XYF.js.map +1 -0
- package/dist/{chunk-KUW2ZR2A.cjs → chunk-2UCTE6YN.cjs} +65 -72
- package/dist/chunk-2UCTE6YN.cjs.map +1 -0
- package/dist/{chunk-VTANPKPT.js → chunk-3R3NOO4K.js} +2 -2
- package/dist/chunk-3R3NOO4K.js.map +1 -0
- package/dist/{chunk-AVSFSS7S.cjs → chunk-3UNZXPOT.cjs} +63 -61
- package/dist/chunk-3UNZXPOT.cjs.map +1 -0
- package/dist/{chunk-QI7XQDFZ.cjs → chunk-4BDO5TJH.cjs} +77 -85
- package/dist/chunk-4BDO5TJH.cjs.map +1 -0
- package/dist/{chunk-7JLQOQJZ.cjs → chunk-4OXVTRYV.cjs} +7 -7
- package/dist/{chunk-7JLQOQJZ.cjs.map → chunk-4OXVTRYV.cjs.map} +1 -1
- package/dist/{chunk-UT5UXO44.js → chunk-56TD4LDC.js} +3 -3
- package/dist/chunk-56TD4LDC.js.map +1 -0
- package/dist/{chunk-PBPGBVQQ.cjs → chunk-5E36FGRP.cjs} +2 -2
- package/dist/chunk-5E36FGRP.cjs.map +1 -0
- package/dist/{chunk-PVKBGP6Q.js → chunk-5GLC2HU6.js} +2 -2
- package/dist/{chunk-PVKBGP6Q.js.map → chunk-5GLC2HU6.js.map} +1 -1
- package/dist/{chunk-QKSCFVN2.js → chunk-5HIRDMZH.js} +2 -2
- package/dist/chunk-5HIRDMZH.js.map +1 -0
- package/dist/{chunk-7AKHSOSZ.js → chunk-5R2YXBXM.js} +3 -11
- package/dist/chunk-5R2YXBXM.js.map +1 -0
- package/dist/{chunk-F42Z33L7.cjs → chunk-5V4UAS6I.cjs} +2 -2
- package/dist/chunk-5V4UAS6I.cjs.map +1 -0
- package/dist/{chunk-FWRVCH7T.js → chunk-5VSEUDVY.js} +14 -6
- package/dist/chunk-5VSEUDVY.js.map +1 -0
- package/dist/{chunk-VPHHGQWP.js → chunk-64LBDDZU.js} +3 -3
- package/dist/{chunk-VPHHGQWP.js.map → chunk-64LBDDZU.js.map} +1 -1
- package/dist/{chunk-DNRZCHZG.js → chunk-6FVAQECF.js} +4 -11
- package/dist/chunk-6FVAQECF.js.map +1 -0
- package/dist/{chunk-5G3XVLJF.js → chunk-6IXVUD2M.js} +3 -3
- package/dist/{chunk-5G3XVLJF.js.map → chunk-6IXVUD2M.js.map} +1 -1
- package/dist/{chunk-HTA5EG6X.cjs → chunk-6UKUAYN3.cjs} +5 -5
- package/dist/{chunk-HTA5EG6X.cjs.map → chunk-6UKUAYN3.cjs.map} +1 -1
- package/dist/{chunk-WWL4VEPH.js → chunk-6UTLBY6Y.js} +2 -2
- package/dist/chunk-6UTLBY6Y.js.map +1 -0
- package/dist/{chunk-4MRZVLM6.cjs → chunk-7SIUSULP.cjs} +2 -2
- package/dist/{chunk-4MRZVLM6.cjs.map → chunk-7SIUSULP.cjs.map} +1 -1
- package/dist/{chunk-KBBLTGIU.js → chunk-AFR7V4A4.js} +13 -5
- package/dist/chunk-AFR7V4A4.js.map +1 -0
- package/dist/{chunk-G564WB32.cjs → chunk-AMCCRVHG.cjs} +2 -2
- package/dist/chunk-AMCCRVHG.cjs.map +1 -0
- package/dist/{chunk-PIIJVF5D.cjs → chunk-B7NN6SZD.cjs} +5 -5
- package/dist/chunk-B7NN6SZD.cjs.map +1 -0
- package/dist/{chunk-OYRX4AY6.js → chunk-BFQV5MYD.js} +2 -2
- package/dist/chunk-BFQV5MYD.js.map +1 -0
- package/dist/{chunk-AXHJC7FV.js → chunk-BRHXKRG6.js} +3 -11
- package/dist/chunk-BRHXKRG6.js.map +1 -0
- package/dist/{chunk-IECISUOZ.js → chunk-BZXMWKD2.js} +61 -59
- package/dist/chunk-BZXMWKD2.js.map +1 -0
- package/dist/{chunk-BXFP7EAW.cjs → chunk-CPQLXDBR.cjs} +2 -2
- package/dist/{chunk-BXFP7EAW.cjs.map → chunk-CPQLXDBR.cjs.map} +1 -1
- package/dist/{chunk-62NPVN7T.js → chunk-CT66HLZ5.js} +3 -3
- package/dist/{chunk-62NPVN7T.js.map → chunk-CT66HLZ5.js.map} +1 -1
- package/dist/{chunk-XMBTKO5I.cjs → chunk-DJQEBDEP.cjs} +3 -11
- package/dist/chunk-DJQEBDEP.cjs.map +1 -0
- package/dist/{chunk-LBEGRYTP.js → chunk-EGZSSZBX.js} +77 -85
- package/dist/chunk-EGZSSZBX.js.map +1 -0
- package/dist/{chunk-YJESCN4Y.cjs → chunk-EOGYWPX7.cjs} +14 -6
- package/dist/chunk-EOGYWPX7.cjs.map +1 -0
- package/dist/{chunk-5GCEQDBM.cjs → chunk-EPYD35KB.cjs} +2 -2
- package/dist/chunk-EPYD35KB.cjs.map +1 -0
- package/dist/{chunk-ZSK74QFN.cjs → chunk-EUOBMHFF.cjs} +3 -7
- package/dist/chunk-EUOBMHFF.cjs.map +1 -0
- package/dist/{chunk-4IBF4R3H.cjs → chunk-GMZSBGSL.cjs} +2 -2
- package/dist/{chunk-4IBF4R3H.cjs.map → chunk-GMZSBGSL.cjs.map} +1 -1
- package/dist/{chunk-L7ULSFW6.cjs → chunk-GV2RRQ2S.cjs} +18 -8
- package/dist/chunk-GV2RRQ2S.cjs.map +1 -0
- package/dist/{chunk-YPVRTMX6.js → chunk-HFPWBZID.js} +4 -6
- package/dist/chunk-HFPWBZID.js.map +1 -0
- package/dist/{chunk-HQ65GEM7.js → chunk-HUXPCMNP.js} +3 -3
- package/dist/{chunk-HQ65GEM7.js.map → chunk-HUXPCMNP.js.map} +1 -1
- package/dist/{chunk-PMNTOEXC.js → chunk-HZERTFL6.js} +2 -2
- package/dist/chunk-HZERTFL6.js.map +1 -0
- package/dist/{chunk-DKTB6PKI.js → chunk-IBI6AT5Z.js} +3 -10
- package/dist/chunk-IBI6AT5Z.js.map +1 -0
- package/dist/{chunk-2ORGQ2IY.js → chunk-IBOCJ2ZS.js} +4 -10
- package/dist/chunk-IBOCJ2ZS.js.map +1 -0
- package/dist/{chunk-4VGH44DT.js → chunk-IBYFOFSS.js} +14 -4
- package/dist/chunk-IBYFOFSS.js.map +1 -0
- package/dist/{chunk-TGSKTHTV.js → chunk-ISUXPTLV.js} +28 -18
- package/dist/chunk-ISUXPTLV.js.map +1 -0
- package/dist/{chunk-5WHBZH44.cjs → chunk-JAW7Q2YC.cjs} +5 -5
- package/dist/chunk-JAW7Q2YC.cjs.map +1 -0
- package/dist/{chunk-XB3BT6BU.js → chunk-JECYRODB.js} +3 -3
- package/dist/{chunk-XB3BT6BU.js.map → chunk-JECYRODB.js.map} +1 -1
- package/dist/{chunk-4DUMEO5E.cjs → chunk-JEDW76LI.cjs} +5 -5
- package/dist/chunk-JEDW76LI.cjs.map +1 -0
- package/dist/{chunk-W6BUNUQM.cjs → chunk-KGZNVN7P.cjs} +3 -10
- package/dist/chunk-KGZNVN7P.cjs.map +1 -0
- package/dist/{chunk-4YPT2HUD.cjs → chunk-KXZM322K.cjs} +16 -7
- package/dist/chunk-KXZM322K.cjs.map +1 -0
- package/dist/{chunk-R7CRWOHG.js → chunk-L7X3RVEY.js} +2 -2
- package/dist/{chunk-R7CRWOHG.js.map → chunk-L7X3RVEY.js.map} +1 -1
- package/dist/{chunk-XO6PBAAM.cjs → chunk-LFXMUCEO.cjs} +2 -2
- package/dist/chunk-LFXMUCEO.cjs.map +1 -0
- package/dist/{chunk-AIIXJB34.js → chunk-LLWK5VKA.js} +3 -3
- package/dist/{chunk-AIIXJB34.js.map → chunk-LLWK5VKA.js.map} +1 -1
- package/dist/{chunk-Q4QF6UYX.cjs → chunk-MBOWSS4B.cjs} +28 -18
- package/dist/chunk-MBOWSS4B.cjs.map +1 -0
- package/dist/{chunk-5MQCVYVD.js → chunk-MC3NERDH.js} +16 -6
- package/dist/chunk-MC3NERDH.js.map +1 -0
- package/dist/{chunk-7JRGQL63.js → chunk-MGUNFP6P.js} +13 -4
- package/dist/chunk-MGUNFP6P.js.map +1 -0
- package/dist/{chunk-N7IQ6LYD.cjs → chunk-MGYDOC76.cjs} +15 -5
- package/dist/chunk-MGYDOC76.cjs.map +1 -0
- package/dist/{chunk-WBN5SAY5.js → chunk-MLYM5LAX.js} +2 -2
- package/dist/{chunk-WBN5SAY5.js.map → chunk-MLYM5LAX.js.map} +1 -1
- package/dist/{chunk-4GQ3X7MG.cjs → chunk-MNY5P5EG.cjs} +18 -27
- package/dist/chunk-MNY5P5EG.cjs.map +1 -0
- package/dist/{chunk-RTAQSOVE.cjs → chunk-MY4M7HVW.cjs} +5 -5
- package/dist/{chunk-RTAQSOVE.cjs.map → chunk-MY4M7HVW.cjs.map} +1 -1
- package/dist/{chunk-EIFN6XMU.cjs → chunk-NJIYP6SC.cjs} +11 -5
- package/dist/chunk-NJIYP6SC.cjs.map +1 -0
- package/dist/{chunk-XYJMP23P.cjs → chunk-NUTVJGVT.cjs} +4 -10
- package/dist/chunk-NUTVJGVT.cjs.map +1 -0
- package/dist/{chunk-X7EE5DXL.js → chunk-O2YTJPG4.js} +2 -2
- package/dist/{chunk-X7EE5DXL.js.map → chunk-O2YTJPG4.js.map} +1 -1
- package/dist/{chunk-OJEZ3TKT.js → chunk-OBK6XTUY.js} +2 -2
- package/dist/chunk-OBK6XTUY.js.map +1 -0
- package/dist/{chunk-DFHFXKR5.cjs → chunk-OCN7L2ID.cjs} +5 -12
- package/dist/chunk-OCN7L2ID.cjs.map +1 -0
- package/dist/{chunk-6OKTK3AQ.cjs → chunk-ODNGFJVN.cjs} +3 -11
- package/dist/chunk-ODNGFJVN.cjs.map +1 -0
- package/dist/{chunk-IUR7SPDA.js → chunk-OKCQZO5E.js} +85 -92
- package/dist/chunk-OKCQZO5E.js.map +1 -0
- package/dist/{chunk-GZCNFM6C.js → chunk-PJB7ADK6.js} +8 -17
- package/dist/chunk-PJB7ADK6.js.map +1 -0
- package/dist/{chunk-ZAHKA2V2.js → chunk-PUJJHD22.js} +3 -3
- package/dist/chunk-PUJJHD22.js.map +1 -0
- package/dist/{chunk-U2TTRBES.js → chunk-PUTAVQJZ.js} +3 -3
- package/dist/{chunk-U2TTRBES.js.map → chunk-PUTAVQJZ.js.map} +1 -1
- package/dist/{chunk-NMYXVZQP.cjs → chunk-QNSEJGF6.cjs} +2 -2
- package/dist/chunk-QNSEJGF6.cjs.map +1 -0
- package/dist/{chunk-H5VPBP7U.js → chunk-QZZGBUW4.js} +10 -4
- package/dist/chunk-QZZGBUW4.js.map +1 -0
- package/dist/{chunk-2ARM7X7A.js → chunk-RAF7I4A5.js} +2 -2
- package/dist/chunk-RAF7I4A5.js.map +1 -0
- package/dist/{chunk-SMVAHIBN.cjs → chunk-UCG7ZVK5.cjs} +2 -2
- package/dist/chunk-UCG7ZVK5.cjs.map +1 -0
- package/dist/{chunk-ELI3LL3K.cjs → chunk-V4O325BX.cjs} +14 -6
- package/dist/chunk-V4O325BX.cjs.map +1 -0
- package/dist/{chunk-Z5LFRNNJ.js → chunk-V7IUSCQS.js} +3 -3
- package/dist/{chunk-Z5LFRNNJ.js.map → chunk-V7IUSCQS.js.map} +1 -1
- package/dist/{chunk-AJIIY2QT.cjs → chunk-VF5P7XMC.cjs} +2 -2
- package/dist/chunk-VF5P7XMC.cjs.map +1 -0
- package/dist/{chunk-K5FWY6HB.cjs → chunk-VS2YVJOB.cjs} +5 -5
- package/dist/{chunk-K5FWY6HB.cjs.map → chunk-VS2YVJOB.cjs.map} +1 -1
- package/dist/{chunk-ZGWBLJ6U.cjs → chunk-WDHU3BSM.cjs} +2 -2
- package/dist/{chunk-ZGWBLJ6U.cjs.map → chunk-WDHU3BSM.cjs.map} +1 -1
- package/dist/{chunk-NCNDJTOK.js → chunk-WEGDIRDB.js} +2 -2
- package/dist/chunk-WEGDIRDB.js.map +1 -0
- package/dist/{chunk-NFC2C2TD.js → chunk-WEOMKZC6.js} +65 -72
- package/dist/chunk-WEOMKZC6.js.map +1 -0
- package/dist/{chunk-EJNMH7ND.js → chunk-WN557PFJ.js} +2 -2
- package/dist/chunk-WN557PFJ.js.map +1 -0
- package/dist/{chunk-FBOTWA6O.cjs → chunk-WWXBH57R.cjs} +5 -7
- package/dist/chunk-WWXBH57R.cjs.map +1 -0
- package/dist/{chunk-ZQBEQK2I.cjs → chunk-WZRUBHS3.cjs} +5 -5
- package/dist/{chunk-ZQBEQK2I.cjs.map → chunk-WZRUBHS3.cjs.map} +1 -1
- package/dist/{chunk-X4MEHYWV.js → chunk-XOMV26WS.js} +3 -3
- package/dist/chunk-XOMV26WS.js.map +1 -0
- package/dist/{chunk-5NI6HK5V.js → chunk-XWXFENGT.js} +3 -3
- package/dist/{chunk-5NI6HK5V.js.map → chunk-XWXFENGT.js.map} +1 -1
- package/dist/{chunk-JD4TEUIV.js → chunk-YFHKH6HL.js} +3 -7
- package/dist/chunk-YFHKH6HL.js.map +1 -0
- package/dist/{chunk-GCMI5JGQ.cjs → chunk-ZKM664KC.cjs} +2 -2
- package/dist/chunk-ZKM664KC.cjs.map +1 -0
- package/dist/{chunk-C5B5Y4S2.cjs → chunk-ZLWY7QS2.cjs} +4 -4
- package/dist/{chunk-C5B5Y4S2.cjs.map → chunk-ZLWY7QS2.cjs.map} +1 -1
- package/dist/{chunk-R77VVMV5.cjs → chunk-ZNFW6L3E.cjs} +87 -94
- package/dist/chunk-ZNFW6L3E.cjs.map +1 -0
- package/dist/{chunk-RWZSTG6Q.cjs → chunk-ZUW3XLZQ.cjs} +4 -4
- package/dist/{chunk-RWZSTG6Q.cjs.map → chunk-ZUW3XLZQ.cjs.map} +1 -1
- package/dist/{chunk-24ND5WB7.cjs → chunk-ZVSN7ADO.cjs} +3 -11
- package/dist/chunk-ZVSN7ADO.cjs.map +1 -0
- package/dist/index.cjs +95 -95
- package/dist/index.css +79 -11
- package/dist/index.css.map +1 -1
- package/dist/index.js +45 -45
- package/dist/src/icons.d.ts +11 -11
- package/dist/src/index.d.ts +1 -1
- package/package.json +1 -1
- package/dist/chunk-24ND5WB7.cjs.map +0 -1
- package/dist/chunk-2ARM7X7A.js.map +0 -1
- package/dist/chunk-2ORGQ2IY.js.map +0 -1
- package/dist/chunk-4DUMEO5E.cjs.map +0 -1
- package/dist/chunk-4GQ3X7MG.cjs.map +0 -1
- package/dist/chunk-4VGH44DT.js.map +0 -1
- package/dist/chunk-4YPT2HUD.cjs.map +0 -1
- package/dist/chunk-5GCEQDBM.cjs.map +0 -1
- package/dist/chunk-5MQCVYVD.js.map +0 -1
- package/dist/chunk-5WHBZH44.cjs.map +0 -1
- package/dist/chunk-6OKTK3AQ.cjs.map +0 -1
- package/dist/chunk-7AKHSOSZ.js.map +0 -1
- package/dist/chunk-7JRGQL63.js.map +0 -1
- package/dist/chunk-AJIIY2QT.cjs.map +0 -1
- package/dist/chunk-AVSFSS7S.cjs.map +0 -1
- package/dist/chunk-AXHJC7FV.js.map +0 -1
- package/dist/chunk-DFHFXKR5.cjs.map +0 -1
- package/dist/chunk-DKTB6PKI.js.map +0 -1
- package/dist/chunk-DNRZCHZG.js.map +0 -1
- package/dist/chunk-EIFN6XMU.cjs.map +0 -1
- package/dist/chunk-EJNMH7ND.js.map +0 -1
- package/dist/chunk-ELI3LL3K.cjs.map +0 -1
- package/dist/chunk-F42Z33L7.cjs.map +0 -1
- package/dist/chunk-FBOTWA6O.cjs.map +0 -1
- package/dist/chunk-FWRVCH7T.js.map +0 -1
- package/dist/chunk-G564WB32.cjs.map +0 -1
- package/dist/chunk-GCMI5JGQ.cjs.map +0 -1
- package/dist/chunk-GZCNFM6C.js.map +0 -1
- package/dist/chunk-H5VPBP7U.js.map +0 -1
- package/dist/chunk-I3HBI52O.js.map +0 -1
- package/dist/chunk-IECISUOZ.js.map +0 -1
- package/dist/chunk-IUR7SPDA.js.map +0 -1
- package/dist/chunk-JD4TEUIV.js.map +0 -1
- package/dist/chunk-KBBLTGIU.js.map +0 -1
- package/dist/chunk-KUW2ZR2A.cjs.map +0 -1
- package/dist/chunk-L7ULSFW6.cjs.map +0 -1
- package/dist/chunk-LBEGRYTP.js.map +0 -1
- package/dist/chunk-N7IQ6LYD.cjs.map +0 -1
- package/dist/chunk-NCNDJTOK.js.map +0 -1
- package/dist/chunk-NFC2C2TD.js.map +0 -1
- package/dist/chunk-NMYXVZQP.cjs.map +0 -1
- package/dist/chunk-OJEZ3TKT.js.map +0 -1
- package/dist/chunk-OYRX4AY6.js.map +0 -1
- package/dist/chunk-PBPGBVQQ.cjs.map +0 -1
- package/dist/chunk-PIIJVF5D.cjs.map +0 -1
- package/dist/chunk-PMNTOEXC.js.map +0 -1
- package/dist/chunk-Q4QF6UYX.cjs.map +0 -1
- package/dist/chunk-QI7XQDFZ.cjs.map +0 -1
- package/dist/chunk-QKSCFVN2.js.map +0 -1
- package/dist/chunk-R77VVMV5.cjs.map +0 -1
- package/dist/chunk-SMVAHIBN.cjs.map +0 -1
- package/dist/chunk-TGSKTHTV.js.map +0 -1
- package/dist/chunk-UT5UXO44.js.map +0 -1
- package/dist/chunk-VTANPKPT.js.map +0 -1
- package/dist/chunk-W6BUNUQM.cjs.map +0 -1
- package/dist/chunk-WWL4VEPH.js.map +0 -1
- package/dist/chunk-X4MEHYWV.js.map +0 -1
- package/dist/chunk-XMBTKO5I.cjs.map +0 -1
- package/dist/chunk-XO6PBAAM.cjs.map +0 -1
- package/dist/chunk-XYJMP23P.cjs.map +0 -1
- package/dist/chunk-YJESCN4Y.cjs.map +0 -1
- package/dist/chunk-YPVRTMX6.js.map +0 -1
- package/dist/chunk-ZAHKA2V2.js.map +0 -1
- package/dist/chunk-ZSK74QFN.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../QrCodeCard/index.tsx"],"names":[],"mappings":"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","file":"chunk-XOMV26WS.js","sourcesContent":["import React, { useRef, useEffect, ReactNode, CSSProperties } from 'react';\nimport { ReloadOutlined, LoadingOutlined } 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/** 中心嵌入的 Logo 图标地址 */\n\ticon?: string;\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/** 点击过期遮罩刷新时的回调 */\n\tonRefresh?: () => void;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\n// 简易轻量伪随机但确定性的二维码图案矩阵绘制算法(保证零外部大库)\nfunction drawQrCode(canvas: HTMLCanvasElement, text: string, size: number) {\n\tconst ctx = canvas.getContext('2d');\n\tif (!ctx) return;\n\n\tconst dpr = window.devicePixelRatio || 1;\n\tcanvas.width = size * dpr;\n\tcanvas.height = size * dpr;\n\tctx.scale(dpr, dpr);\n\n\tctx.fillStyle = '#ffffff';\n\tctx.fillRect(0, 0, size, size);\n\n\tconst modules = 25; // 25x25 矩阵\n\tconst cellSize = size / modules;\n\n\tctx.fillStyle = '#000000';\n\n\t// 绘制三个角的定位方块 (Position Detection Patterns)\n\tconst drawPositionPattern = (x: number, y: number) => {\n\t\t// 外 7x7\n\t\tctx.fillRect(x * cellSize, y * cellSize, 7 * cellSize, 7 * cellSize);\n\t\t// 中间挖空 5x5\n\t\tctx.fillStyle = '#ffffff';\n\t\tctx.fillRect((x + 1) * cellSize, (y + 1) * cellSize, 5 * cellSize, 5 * cellSize);\n\t\t// 中心实心 3x3\n\t\tctx.fillStyle = '#000000';\n\t\tctx.fillRect((x + 2) * cellSize, (y + 2) * cellSize, 3 * cellSize, 3 * cellSize);\n\t};\n\n\tdrawPositionPattern(0, 0);\n\tdrawPositionPattern(modules - 7, 0);\n\tdrawPositionPattern(0, modules - 7);\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 ((r < 8 && c < 8) || (r < 8 && c >= modules - 8) || (r >= modules - 8 && c < 8)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst seed = (r * 31 + c * 17 + hash) % 100;\n\t\t\tif (Math.abs(seed) % 2 === 0) {\n\t\t\t\tctx.fillStyle = '#000000';\n\t\t\t\tctx.fillRect(c * cellSize, r * cellSize, cellSize - 0.2, cellSize - 0.2);\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst QrCodeCard: React.FC<QrCodeCardProps> = ({\n\tvalue,\n\tsize = 160,\n\ticon,\n\tstatus = 'active',\n\ttitle,\n\tdescription,\n\tdownloadable = false,\n\tonRefresh,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst canvasRef = useRef<HTMLCanvasElement>(null);\n\n\tuseEffect(() => {\n\t\tif (canvasRef.current && value) {\n\t\t\tdrawQrCode(canvasRef.current, value, size);\n\t\t}\n\t}, [value, size]);\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 className=\"rpc_qrcode_card_wrap\" style={{ width: size, height: size }}>\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 src={icon} alt=\"Logo\" className=\"rpc_qrcode_card_logo\" />\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\" onClick={onRefresh}>\n\t\t\t\t\t\t<span>二维码已失效</span>\n\t\t\t\t\t\t<button type=\"button\" className=\"rpc_qrcode_card_refresh_btn\">\n\t\t\t\t\t\t\t<ReloadOutlined />\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{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<LoadingOutlined style={{ fontSize: 28, color: '#1677ff' }} />\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 && <span className=\"rpc_qrcode_card_title\">{title}</span>}\n\t\t\t\t\t{description && <span className=\"rpc_qrcode_card_description\">{description}</span>}\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<span className=\"rpc_qrcode_card_download\" onClick={handleDownload}>\n\t\t\t\t\t下载二维码\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default QrCodeCard;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FullscreenExitOutlined, FullscreenOutlined } from './chunk-
|
|
1
|
+
import { FullscreenExitOutlined, FullscreenOutlined } from './chunk-ISUXPTLV.js';
|
|
2
2
|
import { forwardRef, useRef, useState, useCallback, useImperativeHandle, useEffect } from 'react';
|
|
3
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
4
|
|
|
@@ -155,5 +155,5 @@ Fullscreen.displayName = "Fullscreen";
|
|
|
155
155
|
var Fullscreen_default = Fullscreen;
|
|
156
156
|
|
|
157
157
|
export { Fullscreen_default };
|
|
158
|
-
//# sourceMappingURL=chunk-
|
|
159
|
-
//# sourceMappingURL=chunk-
|
|
158
|
+
//# sourceMappingURL=chunk-XWXFENGT.js.map
|
|
159
|
+
//# sourceMappingURL=chunk-XWXFENGT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../Fullscreen/index.tsx"],"names":[],"mappings":"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","file":"chunk-5NI6HK5V.js","sourcesContent":["import React, {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tuseImperativeHandle,\n\tforwardRef,\n\tReactNode,\n\tCSSProperties,\n} from 'react';\nimport { FullscreenOutlined, FullscreenExitOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface FullscreenRef {\n\t/** 进入全屏 */\n\tenter: () => Promise<void>;\n\t/** 退出全屏 */\n\texit: () => Promise<void>;\n\t/** 切换全屏状态 */\n\ttoggle: () => Promise<void>;\n\t/** 当前是否处于全屏状态 */\n\tisFullscreen: boolean;\n\t/** 当前目标容器 DOM 元素 */\n\tgetElement: () => HTMLElement | null;\n}\n\nexport type FullscreenMode = 'browser' | 'web';\nexport type FullscreenButtonPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';\n\nexport interface FullscreenRenderProps {\n\tisFullscreen: boolean;\n\tenter: () => Promise<void>;\n\texit: () => Promise<void>;\n\ttoggle: () => Promise<void>;\n}\n\nexport interface FullscreenProps {\n\t/** 子元素或 Render Props 函数 */\n\tchildren?: ReactNode | ((props: FullscreenRenderProps) => ReactNode);\n\t/** 全屏模式:'browser' 原生浏览器全屏,'web' 网页内最大化置顶 */\n\tmode?: FullscreenMode;\n\t/** 自定义目标全屏元素(不传时默认为当前包裹的容器元素,传 document.documentElement 时为整页全屏) */\n\ttarget?: HTMLElement | (() => HTMLElement | null) | null;\n\t/** 受控全屏状态 */\n\tfullscreen?: boolean;\n\t/** 默认全屏状态 */\n\tdefaultFullscreen?: boolean;\n\t/** 全屏状态变化回调 */\n\tonChange?: (isFullscreen: boolean) => void;\n\t/** 是否在容器角落展示快速全屏切换悬浮按钮,默认 false */\n\tshowButton?: boolean;\n\t/** 悬浮按钮对齐位置,默认 'top-right' */\n\tbuttonPosition?: FullscreenButtonPosition;\n\t/** 悬浮按钮的自定义 Tooltip 提示或图标 */\n\tenterIcon?: ReactNode;\n\texitIcon?: ReactNode;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst Fullscreen = forwardRef<FullscreenRef, FullscreenProps>(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\tmode = 'browser',\n\t\t\ttarget,\n\t\t\tfullscreen: controlledFullscreen,\n\t\t\tdefaultFullscreen = false,\n\t\t\tonChange,\n\t\t\tshowButton = false,\n\t\t\tbuttonPosition = 'top-right',\n\t\t\tenterIcon,\n\t\t\texitIcon,\n\t\t\tclassName = '',\n\t\t\tstyle,\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst containerRef = useRef<HTMLDivElement>(null);\n\t\tconst [internalFullscreen, setInternalFullscreen] = useState<boolean>(defaultFullscreen);\n\t\tconst isControlled = controlledFullscreen !== undefined;\n\t\tconst isFullscreen = isControlled ? controlledFullscreen : internalFullscreen;\n\n\t\tconst getTargetElement = useCallback((): HTMLElement | null => {\n\t\t\tif (typeof target === 'function') {\n\t\t\t\treturn target();\n\t\t\t}\n\t\t\tif (target) {\n\t\t\t\treturn target;\n\t\t\t}\n\t\t\treturn containerRef.current;\n\t\t}, [target]);\n\n\t\t// 进入全屏\n\t\tconst enter = useCallback(async () => {\n\t\t\tconst el = getTargetElement();\n\t\t\tif (!el) return;\n\n\t\t\tif (mode === 'browser') {\n\t\t\t\tif (el.requestFullscreen) {\n\t\t\t\t\tawait el.requestFullscreen();\n\t\t\t\t} else if ((el as any).webkitRequestFullscreen) {\n\t\t\t\t\tawait (el as any).webkitRequestFullscreen();\n\t\t\t\t} else if ((el as any).msRequestFullscreen) {\n\t\t\t\t\tawait (el as any).msRequestFullscreen();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!isControlled) {\n\t\t\t\t\tsetInternalFullscreen(true);\n\t\t\t\t}\n\t\t\t\tonChange?.(true);\n\t\t\t}\n\t\t}, [mode, getTargetElement, isControlled, onChange]);\n\n\t\t// 退出全屏\n\t\tconst exit = useCallback(async () => {\n\t\t\tif (mode === 'browser') {\n\t\t\t\tif (document.fullscreenElement || (document as any).webkitFullscreenElement) {\n\t\t\t\t\tif (document.exitFullscreen) {\n\t\t\t\t\t\tawait document.exitFullscreen();\n\t\t\t\t\t} else if ((document as any).webkitExitFullscreen) {\n\t\t\t\t\t\tawait (document as any).webkitExitFullscreen();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!isControlled) {\n\t\t\t\t\tsetInternalFullscreen(false);\n\t\t\t\t}\n\t\t\t\tonChange?.(false);\n\t\t\t}\n\t\t}, [mode, isControlled, onChange]);\n\n\t\t// 切换全屏\n\t\tconst toggle = useCallback(async () => {\n\t\t\tif (isFullscreen) {\n\t\t\t\tawait exit();\n\t\t\t} else {\n\t\t\t\tawait enter();\n\t\t\t}\n\t\t}, [isFullscreen, enter, exit]);\n\n\t\t// 暴露 Imperative Ref\n\t\tuseImperativeHandle(\n\t\t\tref,\n\t\t\t() => ({\n\t\t\t\tenter,\n\t\t\t\texit,\n\t\t\t\ttoggle,\n\t\t\t\tisFullscreen,\n\t\t\t\tgetElement: getTargetElement,\n\t\t\t}),\n\t\t\t[enter, exit, toggle, isFullscreen, getTargetElement],\n\t\t);\n\n\t\t// 监听浏览器原生全屏事件\n\t\tuseEffect(() => {\n\t\t\tif (mode !== 'browser') return;\n\n\t\t\tconst handleFullscreenChange = () => {\n\t\t\t\tconst currentFsEl =\n\t\t\t\t\tdocument.fullscreenElement ||\n\t\t\t\t\t(document as any).webkitFullscreenElement ||\n\t\t\t\t\t(document as any).mozFullScreenElement ||\n\t\t\t\t\t(document as any).msFullscreenElement;\n\n\t\t\t\tconst targetEl = getTargetElement();\n\t\t\t\tconst isActive = currentFsEl !== null && (currentFsEl === targetEl || targetEl === document.documentElement);\n\n\t\t\t\tif (!isControlled) {\n\t\t\t\t\tsetInternalFullscreen(isActive);\n\t\t\t\t}\n\t\t\t\tonChange?.(isActive);\n\t\t\t};\n\n\t\t\tdocument.addEventListener('fullscreenchange', handleFullscreenChange);\n\t\t\tdocument.addEventListener('webkitfullscreenchange', handleFullscreenChange);\n\t\t\tdocument.addEventListener('mozfullscreenchange', handleFullscreenChange);\n\t\t\tdocument.addEventListener('MSFullscreenChange', handleFullscreenChange);\n\n\t\t\treturn () => {\n\t\t\t\tdocument.removeEventListener('fullscreenchange', handleFullscreenChange);\n\t\t\t\tdocument.removeEventListener('webkitfullscreenchange', handleFullscreenChange);\n\t\t\t\tdocument.removeEventListener('mozfullscreenchange', handleFullscreenChange);\n\t\t\t\tdocument.removeEventListener('MSFullscreenChange', handleFullscreenChange);\n\t\t\t};\n\t\t}, [mode, getTargetElement, isControlled, onChange]);\n\n\t\t// Web 模拟全屏模式下的 ESC 监听\n\t\tuseEffect(() => {\n\t\t\tif (mode !== 'web' || !isFullscreen) return;\n\n\t\t\tconst handleKeyDown = (e: KeyboardEvent) => {\n\t\t\t\tif (e.key === 'Escape') {\n\t\t\t\t\texit();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\twindow.addEventListener('keydown', handleKeyDown);\n\t\t\treturn () => {\n\t\t\t\twindow.removeEventListener('keydown', handleKeyDown);\n\t\t\t};\n\t\t}, [mode, isFullscreen, exit]);\n\n\t\tconst positionClass = `rpc_fullscreen_container_action_btn_${buttonPosition.replace('-', '_')}`;\n\t\tconst isWebFsActive = mode === 'web' && isFullscreen;\n\n\t\tconst currentEnterIcon = enterIcon ?? <FullscreenOutlined />;\n\t\tconst currentExitIcon = exitIcon ?? <FullscreenExitOutlined />;\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={containerRef}\n\t\t\t\tclassName={`rpc_fullscreen_container ${\n\t\t\t\t\tisFullscreen ? 'rpc_fullscreen_container_fullscreen' : ''\n\t\t\t\t} ${isWebFsActive ? 'rpc_fullscreen_container_web_fullscreen' : ''} ${className}`}\n\t\t\t\tstyle={{\n\t\t\t\t\t...(isFullscreen ? { backgroundColor: '#ffffff' } : {}),\n\t\t\t\t\t...style,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{/* 右上角/指定角落的快捷切换按钮 */}\n\t\t\t\t{showButton && (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={`rpc_fullscreen_container_action_btn ${positionClass}`}\n\t\t\t\t\t\tonClick={toggle}\n\t\t\t\t\t\ttitle={isFullscreen ? '退出全屏 (ESC)' : '全屏显示'}\n\t\t\t\t\t>\n\t\t\t\t\t\t{isFullscreen ? currentExitIcon : currentEnterIcon}\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\n\t\t\t\t{typeof children === 'function'\n\t\t\t\t\t? children({\n\t\t\t\t\t\t\tisFullscreen,\n\t\t\t\t\t\t\tenter,\n\t\t\t\t\t\t\texit,\n\t\t\t\t\t\t\ttoggle,\n\t\t\t\t\t\t})\n\t\t\t\t\t: children}\n\t\t\t</div>\n\t\t);\n\t},\n);\n\nFullscreen.displayName = 'Fullscreen';\n\nexport default Fullscreen;\n"]}
|
|
1
|
+
{"version":3,"sources":["../Fullscreen/index.tsx"],"names":[],"mappings":"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","file":"chunk-XWXFENGT.js","sourcesContent":["import React, {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tuseImperativeHandle,\n\tforwardRef,\n\tReactNode,\n\tCSSProperties,\n} from 'react';\nimport { FullscreenOutlined, FullscreenExitOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface FullscreenRef {\n\t/** 进入全屏 */\n\tenter: () => Promise<void>;\n\t/** 退出全屏 */\n\texit: () => Promise<void>;\n\t/** 切换全屏状态 */\n\ttoggle: () => Promise<void>;\n\t/** 当前是否处于全屏状态 */\n\tisFullscreen: boolean;\n\t/** 当前目标容器 DOM 元素 */\n\tgetElement: () => HTMLElement | null;\n}\n\nexport type FullscreenMode = 'browser' | 'web';\nexport type FullscreenButtonPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';\n\nexport interface FullscreenRenderProps {\n\tisFullscreen: boolean;\n\tenter: () => Promise<void>;\n\texit: () => Promise<void>;\n\ttoggle: () => Promise<void>;\n}\n\nexport interface FullscreenProps {\n\t/** 子元素或 Render Props 函数 */\n\tchildren?: ReactNode | ((props: FullscreenRenderProps) => ReactNode);\n\t/** 全屏模式:'browser' 原生浏览器全屏,'web' 网页内最大化置顶 */\n\tmode?: FullscreenMode;\n\t/** 自定义目标全屏元素(不传时默认为当前包裹的容器元素,传 document.documentElement 时为整页全屏) */\n\ttarget?: HTMLElement | (() => HTMLElement | null) | null;\n\t/** 受控全屏状态 */\n\tfullscreen?: boolean;\n\t/** 默认全屏状态 */\n\tdefaultFullscreen?: boolean;\n\t/** 全屏状态变化回调 */\n\tonChange?: (isFullscreen: boolean) => void;\n\t/** 是否在容器角落展示快速全屏切换悬浮按钮,默认 false */\n\tshowButton?: boolean;\n\t/** 悬浮按钮对齐位置,默认 'top-right' */\n\tbuttonPosition?: FullscreenButtonPosition;\n\t/** 悬浮按钮的自定义 Tooltip 提示或图标 */\n\tenterIcon?: ReactNode;\n\texitIcon?: ReactNode;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst Fullscreen = forwardRef<FullscreenRef, FullscreenProps>(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\tmode = 'browser',\n\t\t\ttarget,\n\t\t\tfullscreen: controlledFullscreen,\n\t\t\tdefaultFullscreen = false,\n\t\t\tonChange,\n\t\t\tshowButton = false,\n\t\t\tbuttonPosition = 'top-right',\n\t\t\tenterIcon,\n\t\t\texitIcon,\n\t\t\tclassName = '',\n\t\t\tstyle,\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst containerRef = useRef<HTMLDivElement>(null);\n\t\tconst [internalFullscreen, setInternalFullscreen] = useState<boolean>(defaultFullscreen);\n\t\tconst isControlled = controlledFullscreen !== undefined;\n\t\tconst isFullscreen = isControlled ? controlledFullscreen : internalFullscreen;\n\n\t\tconst getTargetElement = useCallback((): HTMLElement | null => {\n\t\t\tif (typeof target === 'function') {\n\t\t\t\treturn target();\n\t\t\t}\n\t\t\tif (target) {\n\t\t\t\treturn target;\n\t\t\t}\n\t\t\treturn containerRef.current;\n\t\t}, [target]);\n\n\t\t// 进入全屏\n\t\tconst enter = useCallback(async () => {\n\t\t\tconst el = getTargetElement();\n\t\t\tif (!el) return;\n\n\t\t\tif (mode === 'browser') {\n\t\t\t\tif (el.requestFullscreen) {\n\t\t\t\t\tawait el.requestFullscreen();\n\t\t\t\t} else if ((el as any).webkitRequestFullscreen) {\n\t\t\t\t\tawait (el as any).webkitRequestFullscreen();\n\t\t\t\t} else if ((el as any).msRequestFullscreen) {\n\t\t\t\t\tawait (el as any).msRequestFullscreen();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!isControlled) {\n\t\t\t\t\tsetInternalFullscreen(true);\n\t\t\t\t}\n\t\t\t\tonChange?.(true);\n\t\t\t}\n\t\t}, [mode, getTargetElement, isControlled, onChange]);\n\n\t\t// 退出全屏\n\t\tconst exit = useCallback(async () => {\n\t\t\tif (mode === 'browser') {\n\t\t\t\tif (document.fullscreenElement || (document as any).webkitFullscreenElement) {\n\t\t\t\t\tif (document.exitFullscreen) {\n\t\t\t\t\t\tawait document.exitFullscreen();\n\t\t\t\t\t} else if ((document as any).webkitExitFullscreen) {\n\t\t\t\t\t\tawait (document as any).webkitExitFullscreen();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!isControlled) {\n\t\t\t\t\tsetInternalFullscreen(false);\n\t\t\t\t}\n\t\t\t\tonChange?.(false);\n\t\t\t}\n\t\t}, [mode, isControlled, onChange]);\n\n\t\t// 切换全屏\n\t\tconst toggle = useCallback(async () => {\n\t\t\tif (isFullscreen) {\n\t\t\t\tawait exit();\n\t\t\t} else {\n\t\t\t\tawait enter();\n\t\t\t}\n\t\t}, [isFullscreen, enter, exit]);\n\n\t\t// 暴露 Imperative Ref\n\t\tuseImperativeHandle(\n\t\t\tref,\n\t\t\t() => ({\n\t\t\t\tenter,\n\t\t\t\texit,\n\t\t\t\ttoggle,\n\t\t\t\tisFullscreen,\n\t\t\t\tgetElement: getTargetElement,\n\t\t\t}),\n\t\t\t[enter, exit, toggle, isFullscreen, getTargetElement],\n\t\t);\n\n\t\t// 监听浏览器原生全屏事件\n\t\tuseEffect(() => {\n\t\t\tif (mode !== 'browser') return;\n\n\t\t\tconst handleFullscreenChange = () => {\n\t\t\t\tconst currentFsEl =\n\t\t\t\t\tdocument.fullscreenElement ||\n\t\t\t\t\t(document as any).webkitFullscreenElement ||\n\t\t\t\t\t(document as any).mozFullScreenElement ||\n\t\t\t\t\t(document as any).msFullscreenElement;\n\n\t\t\t\tconst targetEl = getTargetElement();\n\t\t\t\tconst isActive =\n\t\t\t\t\tcurrentFsEl !== null &&\n\t\t\t\t\t(currentFsEl === targetEl || targetEl === document.documentElement);\n\n\t\t\t\tif (!isControlled) {\n\t\t\t\t\tsetInternalFullscreen(isActive);\n\t\t\t\t}\n\t\t\t\tonChange?.(isActive);\n\t\t\t};\n\n\t\t\tdocument.addEventListener('fullscreenchange', handleFullscreenChange);\n\t\t\tdocument.addEventListener('webkitfullscreenchange', handleFullscreenChange);\n\t\t\tdocument.addEventListener('mozfullscreenchange', handleFullscreenChange);\n\t\t\tdocument.addEventListener('MSFullscreenChange', handleFullscreenChange);\n\n\t\t\treturn () => {\n\t\t\t\tdocument.removeEventListener('fullscreenchange', handleFullscreenChange);\n\t\t\t\tdocument.removeEventListener('webkitfullscreenchange', handleFullscreenChange);\n\t\t\t\tdocument.removeEventListener('mozfullscreenchange', handleFullscreenChange);\n\t\t\t\tdocument.removeEventListener('MSFullscreenChange', handleFullscreenChange);\n\t\t\t};\n\t\t}, [mode, getTargetElement, isControlled, onChange]);\n\n\t\t// Web 模拟全屏模式下的 ESC 监听\n\t\tuseEffect(() => {\n\t\t\tif (mode !== 'web' || !isFullscreen) return;\n\n\t\t\tconst handleKeyDown = (e: KeyboardEvent) => {\n\t\t\t\tif (e.key === 'Escape') {\n\t\t\t\t\texit();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\twindow.addEventListener('keydown', handleKeyDown);\n\t\t\treturn () => {\n\t\t\t\twindow.removeEventListener('keydown', handleKeyDown);\n\t\t\t};\n\t\t}, [mode, isFullscreen, exit]);\n\n\t\tconst positionClass = `rpc_fullscreen_container_action_btn_${buttonPosition.replace('-', '_')}`;\n\t\tconst isWebFsActive = mode === 'web' && isFullscreen;\n\n\t\tconst currentEnterIcon = enterIcon ?? <FullscreenOutlined />;\n\t\tconst currentExitIcon = exitIcon ?? <FullscreenExitOutlined />;\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={containerRef}\n\t\t\t\tclassName={`rpc_fullscreen_container ${\n\t\t\t\t\tisFullscreen ? 'rpc_fullscreen_container_fullscreen' : ''\n\t\t\t\t} ${isWebFsActive ? 'rpc_fullscreen_container_web_fullscreen' : ''} ${className}`}\n\t\t\t\tstyle={{\n\t\t\t\t\t...(isFullscreen ? { backgroundColor: '#ffffff' } : {}),\n\t\t\t\t\t...style,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{/* 右上角/指定角落的快捷切换按钮 */}\n\t\t\t\t{showButton && (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={`rpc_fullscreen_container_action_btn ${positionClass}`}\n\t\t\t\t\t\tonClick={toggle}\n\t\t\t\t\t\ttitle={isFullscreen ? '退出全屏 (ESC)' : '全屏显示'}\n\t\t\t\t\t>\n\t\t\t\t\t\t{isFullscreen ? currentExitIcon : currentEnterIcon}\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\n\t\t\t\t{typeof children === 'function'\n\t\t\t\t\t? children({\n\t\t\t\t\t\t\tisFullscreen,\n\t\t\t\t\t\t\tenter,\n\t\t\t\t\t\t\texit,\n\t\t\t\t\t\t\ttoggle,\n\t\t\t\t\t\t})\n\t\t\t\t\t: children}\n\t\t\t</div>\n\t\t);\n\t},\n);\n\nFullscreen.displayName = 'Fullscreen';\n\nexport default Fullscreen;\n"]}
|
|
@@ -7,11 +7,7 @@ var statusIcons = {
|
|
|
7
7
|
error: "\u2715",
|
|
8
8
|
wait: "\u25CB"
|
|
9
9
|
};
|
|
10
|
-
var StatusTimeline = ({
|
|
11
|
-
items = [],
|
|
12
|
-
className = "",
|
|
13
|
-
style
|
|
14
|
-
}) => {
|
|
10
|
+
var StatusTimeline = ({ items = [], className = "", style }) => {
|
|
15
11
|
return /* @__PURE__ */ jsx("div", { className: `rpc_status_timeline ${className}`, style, children: items.map((item, idx) => {
|
|
16
12
|
const status = item.status || "finish";
|
|
17
13
|
return /* @__PURE__ */ jsxs("div", { className: "rpc_status_timeline_item", children: [
|
|
@@ -43,5 +39,5 @@ var StatusTimeline = ({
|
|
|
43
39
|
var StatusTimeline_default = StatusTimeline;
|
|
44
40
|
|
|
45
41
|
export { StatusTimeline_default };
|
|
46
|
-
//# sourceMappingURL=chunk-
|
|
47
|
-
//# sourceMappingURL=chunk-
|
|
42
|
+
//# sourceMappingURL=chunk-YFHKH6HL.js.map
|
|
43
|
+
//# sourceMappingURL=chunk-YFHKH6HL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../StatusTimeline/index.tsx"],"names":[],"mappings":";;;AA4BA,IAAM,WAAA,GAA8C;AAAA,EACnD,MAAA,EAAQ,QAAA;AAAA,EACR,OAAA,EAAS,QAAA;AAAA,EACT,KAAA,EAAO,QAAA;AAAA,EACP,IAAA,EAAM;AACP,CAAA;AAEA,IAAM,cAAA,GAAgD,CAAC,EAAE,KAAA,GAAQ,EAAC,EAAG,SAAA,GAAY,EAAA,EAAI,KAAA,EAAM,KAAM;AAChG,EAAA,uBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA,oBAAA,EAAuB,SAAS,CAAA,CAAA,EAAI,KAAA,EAClD,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,GAAA,KAAQ;AACzB,IAAA,MAAM,MAAA,GAAS,KAAK,MAAA,IAAU,QAAA;AAE9B,IAAA,uBACC,IAAA,CAAC,KAAA,EAAA,EAAc,SAAA,EAAU,0BAAA,EAExB,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,0BAAA,EACd,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,SAAI,SAAA,EAAW,CAAA,gDAAA,EAAmD,MAAM,CAAA,CAAA,EACvE,QAAA,EAAA,WAAA,CAAY,MAAM,CAAA,EACpB,CAAA;AAAA,wBACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAAA,EAA2B;AAAA,OAAA,EAC3C,CAAA;AAAA,sBAGA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACd,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,4BAAA,EACd,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2BAAA,EAA6B,QAAA,EAAA,IAAA,CAAK,KAAA,EAAM,CAAA;AAAA,UACvD,KAAK,IAAA,oBAAQ,GAAA,CAAC,UAAK,SAAA,EAAU,0BAAA,EAA4B,eAAK,IAAA,EAAK;AAAA,SAAA,EACrE,CAAA;AAAA,QAEC,IAAA,CAAK,QAAA,oBACL,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,8BAAA,EACb,QAAA,EAAA;AAAA,UAAA,IAAA,CAAK,SAAS,MAAA,oBAAU,GAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,IAAA,CAAK,SAAS,MAAA,EAAO,CAAA;AAAA,+BACpD,MAAA,EAAA,EAAK,QAAA,EAAA;AAAA,YAAA,0BAAA;AAAA,YAAK,KAAK,QAAA,CAAS;AAAA,WAAA,EAAK;AAAA,SAAA,EAC/B,CAAA;AAAA,QAGA,KAAK,QAAA,oBACL,GAAA,CAAC,SACA,QAAA,kBAAA,IAAA,CAAC,MAAA,EAAA,EAAK,WAAU,8BAAA,EAA+B,QAAA,EAAA;AAAA,UAAA,oBAAA;AAAA,UAAI,IAAA,CAAK;AAAA,SAAA,EAAS,CAAA,EAClE,CAAA;AAAA,QAGA,KAAK,WAAA,oBACL,GAAA,CAAC,SAAI,SAAA,EAAU,0BAAA,EAA4B,eAAK,WAAA,EAAY;AAAA,OAAA,EAE9D;AAAA,KAAA,EAAA,EAhCS,GAiCV,CAAA;AAAA,EAEF,CAAC,CAAA,EACF,CAAA;AAEF,CAAA;AAEA,IAAO,sBAAA,GAAQ","file":"chunk-YFHKH6HL.js","sourcesContent":["import React, { ReactNode, CSSProperties } from 'react';\nimport './index.less';\n\nexport type TimelineStatus = 'finish' | 'process' | 'error' | 'wait';\n\nexport interface TimelineOperator {\n\tname: string;\n\tavatar?: ReactNode;\n}\n\nexport interface StatusTimelineItem {\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\ttime?: string;\n\tduration?: string;\n\tstatus?: TimelineStatus;\n\toperator?: TimelineOperator;\n}\n\nexport interface StatusTimelineProps {\n\t/** 时间轴节点列表 */\n\titems: StatusTimelineItem[];\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst statusIcons: Record<TimelineStatus, string> = {\n\tfinish: '✓',\n\tprocess: '●',\n\terror: '✕',\n\twait: '○',\n};\n\nconst StatusTimeline: React.FC<StatusTimelineProps> = ({ items = [], className = '', style }) => {\n\treturn (\n\t\t<div className={`rpc_status_timeline ${className}`} style={style}>\n\t\t\t{items.map((item, idx) => {\n\t\t\t\tconst status = item.status || 'finish';\n\n\t\t\t\treturn (\n\t\t\t\t\t<div key={idx} className=\"rpc_status_timeline_item\">\n\t\t\t\t\t\t{/* 轴线与节点 */}\n\t\t\t\t\t\t<div className=\"rpc_status_timeline_axis\">\n\t\t\t\t\t\t\t<div className={`rpc_status_timeline_dot rpc_status_timeline_dot_${status}`}>\n\t\t\t\t\t\t\t\t{statusIcons[status]}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"rpc_status_timeline_line\" />\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* 节点内容 */}\n\t\t\t\t\t\t<div className=\"rpc_status_timeline_content\">\n\t\t\t\t\t\t\t<div className=\"rpc_status_timeline_header\">\n\t\t\t\t\t\t\t\t<span className=\"rpc_status_timeline_title\">{item.title}</span>\n\t\t\t\t\t\t\t\t{item.time && <span className=\"rpc_status_timeline_time\">{item.time}</span>}\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{item.operator && (\n\t\t\t\t\t\t\t\t<div className=\"rpc_status_timeline_operator\">\n\t\t\t\t\t\t\t\t\t{item.operator.avatar && <span>{item.operator.avatar}</span>}\n\t\t\t\t\t\t\t\t\t<span>经办人:{item.operator.name}</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t{item.duration && (\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<span className=\"rpc_status_timeline_duration\">耗时:{item.duration}</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t{item.description && (\n\t\t\t\t\t\t\t\t<div className=\"rpc_status_timeline_desc\">{item.description}</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nexport default StatusTimeline;\n"]}
|
|
@@ -122,5 +122,5 @@ var ScrollTracker_default = ScrollTracker;
|
|
|
122
122
|
exports.ScrollTracker = ScrollTracker;
|
|
123
123
|
exports.ScrollTracker_default = ScrollTracker_default;
|
|
124
124
|
exports.StickyHeader = StickyHeader;
|
|
125
|
-
//# sourceMappingURL=chunk-
|
|
126
|
-
//# sourceMappingURL=chunk-
|
|
125
|
+
//# sourceMappingURL=chunk-ZKM664KC.cjs.map
|
|
126
|
+
//# sourceMappingURL=chunk-ZKM664KC.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../ScrollTracker/index.tsx"],"names":["useState","useEffect","targetEl","jsxs","jsx","useRef","Fragment"],"mappings":"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","file":"chunk-ZKM664KC.cjs","sourcesContent":["import React, { useState, useEffect, useRef, ReactNode, CSSProperties } from 'react';\nimport './index.less';\n\n/* =========================================================================\n * 1. ScrollTracker 组件\n * ========================================================================= */\n\nexport interface ScrollTrackerProps {\n\t/** 进度条吸附位置:'top' 顶部,'bottom' 底部,默认为 'top' */\n\tposition?: 'top' | 'bottom';\n\t/** 进度条高度(像素),默认为 3 */\n\theight?: number;\n\t/** 进度条颜色或渐变色配置(如 '#1677ff' 或 ['#1677ff', '#52c41a']) */\n\tcolor?: string | string[];\n\t/** 是否显示右上角/角落的百分比数字浮签,默认为 false */\n\tshowPercentage?: boolean;\n\t/** 监听滚动的目标元素或 ref(不传时监听整个 window 视口) */\n\ttarget?: HTMLElement | (() => HTMLElement | null) | null;\n\t/** 进度改变回调 (0 ~ 100) */\n\tonChange?: (percent: number) => void;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nexport const ScrollTracker: React.FC<ScrollTrackerProps> = ({\n\tposition = 'top',\n\theight = 3,\n\tcolor = '#1677ff',\n\tshowPercentage = false,\n\ttarget,\n\tonChange,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [percent, setPercent] = useState<number>(0);\n\n\tuseEffect(() => {\n\t\tconst calculateScroll = () => {\n\t\t\tlet scrollTop = 0;\n\t\t\tlet scrollHeight = 0;\n\t\t\tlet clientHeight = 0;\n\n\t\t\tconst targetEl = typeof target === 'function' ? target() : target;\n\n\t\t\tif (targetEl) {\n\t\t\t\tscrollTop = targetEl.scrollTop;\n\t\t\t\tscrollHeight = targetEl.scrollHeight;\n\t\t\t\tclientHeight = targetEl.clientHeight;\n\t\t\t} else {\n\t\t\t\tscrollTop = window.pageYOffset || document.documentElement.scrollTop;\n\t\t\t\tscrollHeight = document.documentElement.scrollHeight;\n\t\t\t\tclientHeight = document.documentElement.clientHeight;\n\t\t\t}\n\n\t\t\tconst total = scrollHeight - clientHeight;\n\t\t\tconst currentPercent = total > 0 ? Math.min(100, Math.max(0, (scrollTop / total) * 100)) : 0;\n\t\t\tconst rounded = Math.round(currentPercent);\n\n\t\t\tsetPercent(rounded);\n\t\t\tonChange?.(rounded);\n\t\t};\n\n\t\tcalculateScroll();\n\n\t\tconst targetEl = typeof target === 'function' ? target() : target;\n\t\tconst scrollSource = targetEl || window;\n\n\t\tscrollSource.addEventListener('scroll', calculateScroll, { passive: true });\n\t\twindow.addEventListener('resize', calculateScroll);\n\n\t\treturn () => {\n\t\t\tscrollSource.removeEventListener('scroll', calculateScroll);\n\t\t\twindow.removeEventListener('resize', calculateScroll);\n\t\t};\n\t}, [target, onChange]);\n\n\t// 计算背景渐变色\n\tconst backgroundStyle = Array.isArray(color)\n\t\t? `linear-gradient(90deg, ${color.join(', ')})`\n\t\t: color;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`rpc_scroll_tracker rpc_scroll_tracker_${position} ${className}`}\n\t\t\tstyle={{ height, ...style }}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName=\"rpc_scroll_tracker_bar\"\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: `${percent}%`,\n\t\t\t\t\tbackground: backgroundStyle,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{showPercentage && <span className=\"rpc_scroll_tracker_percentage\">{percent}%</span>}\n\t\t</div>\n\t);\n};\n\n/* =========================================================================\n * 2. StickyHeader 组件\n * ========================================================================= */\n\nexport interface StickyHeaderProps {\n\t/** 子内容 */\n\tchildren: ReactNode | ((isSticky: boolean) => ReactNode);\n\t/** 吸顶距离顶部偏移量(像素),默认为 0 */\n\toffsetTop?: number;\n\t/** 吸顶状态改变回调 */\n\tonStickyChange?: (isSticky: boolean) => void;\n\t/** 监听滚动的目标容器(默认为 window) */\n\ttarget?: HTMLElement | (() => HTMLElement | null) | null;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nexport const StickyHeader: React.FC<StickyHeaderProps> = ({\n\tchildren,\n\toffsetTop = 0,\n\tonStickyChange,\n\ttarget,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [isSticky, setIsSticky] = useState<boolean>(false);\n\tconst headerRef = useRef<HTMLDivElement>(null);\n\tconst sentinelRef = useRef<HTMLDivElement>(null);\n\n\tuseEffect(() => {\n\t\tconst sentinel = sentinelRef.current;\n\t\tconst targetEl = typeof target === 'function' ? target() : target;\n\n\t\tif (!sentinel) return;\n\n\t\tconst observer = new IntersectionObserver(\n\t\t\t([entry]) => {\n\t\t\t\t// 当占位元素滚出视口顶部时触发吸顶\n\t\t\t\tconst sticky = !entry.isIntersecting && entry.boundingClientRect.top <= offsetTop;\n\t\t\t\tsetIsSticky(sticky);\n\t\t\t\tonStickyChange?.(sticky);\n\t\t\t},\n\t\t\t{\n\t\t\t\troot: targetEl || null,\n\t\t\t\tthreshold: [0],\n\t\t\t\trootMargin: `-${offsetTop}px 0px 0px 0px`,\n\t\t\t},\n\t\t);\n\n\t\tobserver.observe(sentinel);\n\t\treturn () => observer.disconnect();\n\t}, [offsetTop, target, onStickyChange]);\n\n\treturn (\n\t\t<>\n\t\t\t{/* 探测哨兵元素 */}\n\t\t\t<div ref={sentinelRef} style={{ height: 1, marginBottom: -1 }} />\n\t\t\t<div\n\t\t\t\tref={headerRef}\n\t\t\t\tclassName={`rpc_sticky_header ${isSticky ? 'rpc_sticky_header_stuck' : ''} ${className}`}\n\t\t\t\tstyle={{\n\t\t\t\t\ttop: `${offsetTop}px`,\n\t\t\t\t\t...style,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{typeof children === 'function' ? children(isSticky) : children}\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nexport default ScrollTracker;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkJAW7Q2YC_cjs = require('./chunk-JAW7Q2YC.cjs');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
|
|
@@ -276,7 +276,7 @@ var CronPicker = ({
|
|
|
276
276
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_cron_picker_cron_badge", children: [
|
|
277
277
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u751F\u6210\u7684 Cron:" }),
|
|
278
278
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_cron_picker_cron_code", children: cron }),
|
|
279
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
279
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkJAW7Q2YC_cjs.CopyButton_default, { mode: "icon", text: cron, tooltip: "\u590D\u5236 Cron \u8868\u8FBE\u5F0F" })
|
|
280
280
|
] }),
|
|
281
281
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_cron_picker_human_desc", children: [
|
|
282
282
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u{1F4A1} \u5468\u671F\u4EBA\u8BDD\u89E3\u91CA\uFF1A" }),
|
|
@@ -288,5 +288,5 @@ var CronPicker = ({
|
|
|
288
288
|
var CronPicker_default = CronPicker;
|
|
289
289
|
|
|
290
290
|
exports.CronPicker_default = CronPicker_default;
|
|
291
|
-
//# sourceMappingURL=chunk-
|
|
292
|
-
//# sourceMappingURL=chunk-
|
|
291
|
+
//# sourceMappingURL=chunk-ZLWY7QS2.cjs.map
|
|
292
|
+
//# sourceMappingURL=chunk-ZLWY7QS2.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../CronPicker/index.tsx"],"names":["useState","React","useEffect","jsx","jsxs","CopyButton_default"],"mappings":"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","file":"chunk-C5B5Y4S2.cjs","sourcesContent":["import React, { useState, useEffect, CSSProperties } from 'react';\nimport CopyButton from '../CopyButton';\nimport './index.less';\n\nexport type CronPeriodType = 'minute' | 'hour' | 'day' | 'week' | 'month' | 'custom';\n\nexport interface CronPickerProps {\n\t/** 当前 Cron 表达式(受控) */\n\tvalue?: string;\n\t/** 默认 Cron 表达式,默认为 '0 0 12 * * ?' */\n\tdefaultValue?: string;\n\t/** 表达式改变回调 */\n\tonChange?: (cron: string, humanReadable: string) => void;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst CronPicker: React.FC<CronPickerProps> = ({\n\tvalue: controlledValue,\n\tdefaultValue = '0 0 12 * * ?',\n\tonChange,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [period, setPeriod] = useState<CronPeriodType>('day');\n\n\t// 状态字段\n\tconst [minuteInterval, setMinuteInterval] = useState<number>(5);\n\tconst [hourMinute, setHourMinute] = useState<number>(0);\n\tconst [dayHour, setDayHour] = useState<number>(12);\n\tconst [dayMinute, setDayMinute] = useState<number>(0);\n\tconst [weekDay, setWeekDay] = useState<number>(1); // 1 = 周一\n\tconst [weekHour, setWeekHour] = useState<number>(9);\n\tconst [weekMinute, setWeekMinute] = useState<number>(0);\n\tconst [monthDay, setMonthDay] = useState<number>(1);\n\tconst [monthHour, setMonthHour] = useState<number>(0);\n\tconst [monthMinute, setMonthMinute] = useState<number>(0);\n\tconst [customCron, setCustomCron] = useState<string>(defaultValue);\n\n\t// 计算当前周期对应的 Cron 表达式与中文描述\n\tconst { cron, desc } = React.useMemo(() => {\n\t\tif (controlledValue && period === 'custom') {\n\t\t\treturn { cron: controlledValue, desc: '自定义 Cron 调度' };\n\t\t}\n\n\t\tswitch (period) {\n\t\t\tcase 'minute':\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 0/${minuteInterval} * * * ?`,\n\t\t\t\t\tdesc: `每隔 ${minuteInterval} 分钟执行一次`,\n\t\t\t\t};\n\t\t\tcase 'hour':\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 ${hourMinute} * * * ?`,\n\t\t\t\t\tdesc: `每小时的第 ${hourMinute} 分钟执行一次`,\n\t\t\t\t};\n\t\t\tcase 'day':\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 ${dayMinute} ${dayHour} * * ?`,\n\t\t\t\t\tdesc: `每天 ${String(dayHour).padStart(2, '0')}:${String(dayMinute).padStart(2, '0')} 执行一次`,\n\t\t\t\t};\n\t\t\tcase 'week': {\n\t\t\t\tconst weekMap: Record<number, string> = {\n\t\t\t\t\t1: '周一',\n\t\t\t\t\t2: '周二',\n\t\t\t\t\t3: '周三',\n\t\t\t\t\t4: '周四',\n\t\t\t\t\t5: '周五',\n\t\t\t\t\t6: '周六',\n\t\t\t\t\t7: '周日',\n\t\t\t\t};\n\t\t\t\t// Cron 中 1 为周日/周一根据规范不同,这里按常规映射\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 ${weekMinute} ${weekHour} ? * ${weekDay}`,\n\t\t\t\t\tdesc: `每${weekMap[weekDay]} ${String(weekHour).padStart(2, '0')}:${String(weekMinute).padStart(2, '0')} 执行一次`,\n\t\t\t\t};\n\t\t\t}\n\t\t\tcase 'month':\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 ${monthMinute} ${monthHour} ${monthDay} * ?`,\n\t\t\t\t\tdesc: `每月 ${monthDay} 号 ${String(monthHour).padStart(2, '0')}:${String(monthMinute).padStart(2, '0')} 执行一次`,\n\t\t\t\t};\n\t\t\tcase 'custom':\n\t\t\t\treturn {\n\t\t\t\t\tcron: customCron,\n\t\t\t\t\tdesc: '自定义 Cron 表达式',\n\t\t\t\t};\n\t\t\tdefault:\n\t\t\t\treturn { cron: defaultValue, desc: '定时执行' };\n\t\t}\n\t}, [\n\t\tperiod,\n\t\tcontrolledValue,\n\t\tminuteInterval,\n\t\thourMinute,\n\t\tdayHour,\n\t\tdayMinute,\n\t\tweekDay,\n\t\tweekHour,\n\t\tweekMinute,\n\t\tmonthDay,\n\t\tmonthHour,\n\t\tmonthMinute,\n\t\tcustomCron,\n\t\tdefaultValue,\n\t]);\n\n\tuseEffect(() => {\n\t\tonChange?.(cron, desc);\n\t}, [cron, desc, onChange]);\n\n\treturn (\n\t\t<div className={`rpc_cron_picker ${className}`} style={style}>\n\t\t\t{/* 周期切换 Tab */}\n\t\t\t<div className=\"rpc_cron_picker_tabs\">\n\t\t\t\t{[\n\t\t\t\t\t{ key: 'minute', label: '每隔分钟' },\n\t\t\t\t\t{ key: 'hour', label: '每小时' },\n\t\t\t\t\t{ key: 'day', label: '每天' },\n\t\t\t\t\t{ key: 'week', label: '每周' },\n\t\t\t\t\t{ key: 'month', label: '每月' },\n\t\t\t\t\t{ key: 'custom', label: '自定义 Cron' },\n\t\t\t\t].map((tab) => (\n\t\t\t\t\t<button\n\t\t\t\t\t\tkey={tab.key}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={`rpc_cron_picker_tab_btn ${\n\t\t\t\t\t\t\tperiod === tab.key ? 'rpc_cron_picker_tab_btn_active' : ''\n\t\t\t\t\t\t}`}\n\t\t\t\t\t\tonClick={() => setPeriod(tab.key as CronPeriodType)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{tab.label}\n\t\t\t\t\t</button>\n\t\t\t\t))}\n\t\t\t</div>\n\n\t\t\t{/* 参数配置区域 */}\n\t\t\t<div className=\"rpc_cron_picker_panel\">\n\t\t\t\t{period === 'minute' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每隔</span>\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_select\"\n\t\t\t\t\t\t\tvalue={minuteInterval}\n\t\t\t\t\t\t\tonChange={(e) => setMinuteInterval(Number(e.target.value))}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{[1, 2, 3, 5, 10, 15, 20, 30].map((m) => (\n\t\t\t\t\t\t\t\t<option key={m} value={m}>\n\t\t\t\t\t\t\t\t\t{m}\n\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\t<span>分钟执行一次</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'hour' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每小时的第</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={59}\n\t\t\t\t\t\t\tvalue={hourMinute}\n\t\t\t\t\t\t\tonChange={(e) => setHourMinute(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>分执行一次</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'day' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每天在</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={23}\n\t\t\t\t\t\t\tvalue={dayHour}\n\t\t\t\t\t\t\tonChange={(e) => setDayHour(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>时</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={59}\n\t\t\t\t\t\t\tvalue={dayMinute}\n\t\t\t\t\t\t\tonChange={(e) => setDayMinute(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>分执行一次</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'week' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每周</span>\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_select\"\n\t\t\t\t\t\t\tvalue={weekDay}\n\t\t\t\t\t\t\tonChange={(e) => setWeekDay(Number(e.target.value))}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<option value={1}>周一</option>\n\t\t\t\t\t\t\t<option value={2}>周二</option>\n\t\t\t\t\t\t\t<option value={3}>周三</option>\n\t\t\t\t\t\t\t<option value={4}>周四</option>\n\t\t\t\t\t\t\t<option value={5}>周五</option>\n\t\t\t\t\t\t\t<option value={6}>周六</option>\n\t\t\t\t\t\t\t<option value={7}>周日</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\t<span>的</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={23}\n\t\t\t\t\t\t\tvalue={weekHour}\n\t\t\t\t\t\t\tonChange={(e) => setWeekHour(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>时</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={59}\n\t\t\t\t\t\t\tvalue={weekMinute}\n\t\t\t\t\t\t\tonChange={(e) => setWeekMinute(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>分执行</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'month' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每月第</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\tmax={31}\n\t\t\t\t\t\t\tvalue={monthDay}\n\t\t\t\t\t\t\tonChange={(e) => setMonthDay(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>天的</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={23}\n\t\t\t\t\t\t\tvalue={monthHour}\n\t\t\t\t\t\t\tonChange={(e) => setMonthHour(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>时</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={59}\n\t\t\t\t\t\t\tvalue={monthMinute}\n\t\t\t\t\t\t\tonChange={(e) => setMonthMinute(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>分执行</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'custom' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tvalue={customCron}\n\t\t\t\t\t\t\tonChange={(e) => setCustomCron(e.target.value)}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: '100%', fontFamily: 'monospace' }}\n\t\t\t\t\t\t\tplaceholder=\"例如: 0 0/15 * * * ?\"\n\t\t\t\t\t\t/>\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<div className=\"rpc_cron_picker_footer\">\n\t\t\t\t<div className=\"rpc_cron_picker_cron_badge\">\n\t\t\t\t\t<span>生成的 Cron:</span>\n\t\t\t\t\t<span className=\"rpc_cron_picker_cron_code\">{cron}</span>\n\t\t\t\t\t<CopyButton mode=\"icon\" text={cron} tooltip=\"复制 Cron 表达式\" />\n\t\t\t\t</div>\n\t\t\t\t<div className=\"rpc_cron_picker_human_desc\">\n\t\t\t\t\t<span>💡 周期人话解释:</span>\n\t\t\t\t\t<span>{desc}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default CronPicker;\n"]}
|
|
1
|
+
{"version":3,"sources":["../CronPicker/index.tsx"],"names":["useState","React","useEffect","jsx","jsxs","CopyButton_default"],"mappings":"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","file":"chunk-ZLWY7QS2.cjs","sourcesContent":["import React, { useState, useEffect, CSSProperties } from 'react';\nimport CopyButton from '../CopyButton';\nimport './index.less';\n\nexport type CronPeriodType = 'minute' | 'hour' | 'day' | 'week' | 'month' | 'custom';\n\nexport interface CronPickerProps {\n\t/** 当前 Cron 表达式(受控) */\n\tvalue?: string;\n\t/** 默认 Cron 表达式,默认为 '0 0 12 * * ?' */\n\tdefaultValue?: string;\n\t/** 表达式改变回调 */\n\tonChange?: (cron: string, humanReadable: string) => void;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst CronPicker: React.FC<CronPickerProps> = ({\n\tvalue: controlledValue,\n\tdefaultValue = '0 0 12 * * ?',\n\tonChange,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [period, setPeriod] = useState<CronPeriodType>('day');\n\n\t// 状态字段\n\tconst [minuteInterval, setMinuteInterval] = useState<number>(5);\n\tconst [hourMinute, setHourMinute] = useState<number>(0);\n\tconst [dayHour, setDayHour] = useState<number>(12);\n\tconst [dayMinute, setDayMinute] = useState<number>(0);\n\tconst [weekDay, setWeekDay] = useState<number>(1); // 1 = 周一\n\tconst [weekHour, setWeekHour] = useState<number>(9);\n\tconst [weekMinute, setWeekMinute] = useState<number>(0);\n\tconst [monthDay, setMonthDay] = useState<number>(1);\n\tconst [monthHour, setMonthHour] = useState<number>(0);\n\tconst [monthMinute, setMonthMinute] = useState<number>(0);\n\tconst [customCron, setCustomCron] = useState<string>(defaultValue);\n\n\t// 计算当前周期对应的 Cron 表达式与中文描述\n\tconst { cron, desc } = React.useMemo(() => {\n\t\tif (controlledValue && period === 'custom') {\n\t\t\treturn { cron: controlledValue, desc: '自定义 Cron 调度' };\n\t\t}\n\n\t\tswitch (period) {\n\t\t\tcase 'minute':\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 0/${minuteInterval} * * * ?`,\n\t\t\t\t\tdesc: `每隔 ${minuteInterval} 分钟执行一次`,\n\t\t\t\t};\n\t\t\tcase 'hour':\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 ${hourMinute} * * * ?`,\n\t\t\t\t\tdesc: `每小时的第 ${hourMinute} 分钟执行一次`,\n\t\t\t\t};\n\t\t\tcase 'day':\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 ${dayMinute} ${dayHour} * * ?`,\n\t\t\t\t\tdesc: `每天 ${String(dayHour).padStart(2, '0')}:${String(dayMinute).padStart(2, '0')} 执行一次`,\n\t\t\t\t};\n\t\t\tcase 'week': {\n\t\t\t\tconst weekMap: Record<number, string> = {\n\t\t\t\t\t1: '周一',\n\t\t\t\t\t2: '周二',\n\t\t\t\t\t3: '周三',\n\t\t\t\t\t4: '周四',\n\t\t\t\t\t5: '周五',\n\t\t\t\t\t6: '周六',\n\t\t\t\t\t7: '周日',\n\t\t\t\t};\n\t\t\t\t// Cron 中 1 为周日/周一根据规范不同,这里按常规映射\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 ${weekMinute} ${weekHour} ? * ${weekDay}`,\n\t\t\t\t\tdesc: `每${weekMap[weekDay]} ${String(weekHour).padStart(2, '0')}:${String(weekMinute).padStart(2, '0')} 执行一次`,\n\t\t\t\t};\n\t\t\t}\n\t\t\tcase 'month':\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 ${monthMinute} ${monthHour} ${monthDay} * ?`,\n\t\t\t\t\tdesc: `每月 ${monthDay} 号 ${String(monthHour).padStart(2, '0')}:${String(monthMinute).padStart(2, '0')} 执行一次`,\n\t\t\t\t};\n\t\t\tcase 'custom':\n\t\t\t\treturn {\n\t\t\t\t\tcron: customCron,\n\t\t\t\t\tdesc: '自定义 Cron 表达式',\n\t\t\t\t};\n\t\t\tdefault:\n\t\t\t\treturn { cron: defaultValue, desc: '定时执行' };\n\t\t}\n\t}, [\n\t\tperiod,\n\t\tcontrolledValue,\n\t\tminuteInterval,\n\t\thourMinute,\n\t\tdayHour,\n\t\tdayMinute,\n\t\tweekDay,\n\t\tweekHour,\n\t\tweekMinute,\n\t\tmonthDay,\n\t\tmonthHour,\n\t\tmonthMinute,\n\t\tcustomCron,\n\t\tdefaultValue,\n\t]);\n\n\tuseEffect(() => {\n\t\tonChange?.(cron, desc);\n\t}, [cron, desc, onChange]);\n\n\treturn (\n\t\t<div className={`rpc_cron_picker ${className}`} style={style}>\n\t\t\t{/* 周期切换 Tab */}\n\t\t\t<div className=\"rpc_cron_picker_tabs\">\n\t\t\t\t{[\n\t\t\t\t\t{ key: 'minute', label: '每隔分钟' },\n\t\t\t\t\t{ key: 'hour', label: '每小时' },\n\t\t\t\t\t{ key: 'day', label: '每天' },\n\t\t\t\t\t{ key: 'week', label: '每周' },\n\t\t\t\t\t{ key: 'month', label: '每月' },\n\t\t\t\t\t{ key: 'custom', label: '自定义 Cron' },\n\t\t\t\t].map((tab) => (\n\t\t\t\t\t<button\n\t\t\t\t\t\tkey={tab.key}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={`rpc_cron_picker_tab_btn ${\n\t\t\t\t\t\t\tperiod === tab.key ? 'rpc_cron_picker_tab_btn_active' : ''\n\t\t\t\t\t\t}`}\n\t\t\t\t\t\tonClick={() => setPeriod(tab.key as CronPeriodType)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{tab.label}\n\t\t\t\t\t</button>\n\t\t\t\t))}\n\t\t\t</div>\n\n\t\t\t{/* 参数配置区域 */}\n\t\t\t<div className=\"rpc_cron_picker_panel\">\n\t\t\t\t{period === 'minute' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每隔</span>\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_select\"\n\t\t\t\t\t\t\tvalue={minuteInterval}\n\t\t\t\t\t\t\tonChange={(e) => setMinuteInterval(Number(e.target.value))}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{[1, 2, 3, 5, 10, 15, 20, 30].map((m) => (\n\t\t\t\t\t\t\t\t<option key={m} value={m}>\n\t\t\t\t\t\t\t\t\t{m}\n\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\t<span>分钟执行一次</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'hour' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每小时的第</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={59}\n\t\t\t\t\t\t\tvalue={hourMinute}\n\t\t\t\t\t\t\tonChange={(e) => setHourMinute(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>分执行一次</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'day' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每天在</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={23}\n\t\t\t\t\t\t\tvalue={dayHour}\n\t\t\t\t\t\t\tonChange={(e) => setDayHour(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>时</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={59}\n\t\t\t\t\t\t\tvalue={dayMinute}\n\t\t\t\t\t\t\tonChange={(e) => setDayMinute(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>分执行一次</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'week' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每周</span>\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_select\"\n\t\t\t\t\t\t\tvalue={weekDay}\n\t\t\t\t\t\t\tonChange={(e) => setWeekDay(Number(e.target.value))}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<option value={1}>周一</option>\n\t\t\t\t\t\t\t<option value={2}>周二</option>\n\t\t\t\t\t\t\t<option value={3}>周三</option>\n\t\t\t\t\t\t\t<option value={4}>周四</option>\n\t\t\t\t\t\t\t<option value={5}>周五</option>\n\t\t\t\t\t\t\t<option value={6}>周六</option>\n\t\t\t\t\t\t\t<option value={7}>周日</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\t<span>的</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={23}\n\t\t\t\t\t\t\tvalue={weekHour}\n\t\t\t\t\t\t\tonChange={(e) => setWeekHour(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>时</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={59}\n\t\t\t\t\t\t\tvalue={weekMinute}\n\t\t\t\t\t\t\tonChange={(e) => setWeekMinute(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>分执行</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'month' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每月第</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\tmax={31}\n\t\t\t\t\t\t\tvalue={monthDay}\n\t\t\t\t\t\t\tonChange={(e) => setMonthDay(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>天的</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={23}\n\t\t\t\t\t\t\tvalue={monthHour}\n\t\t\t\t\t\t\tonChange={(e) => setMonthHour(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>时</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={59}\n\t\t\t\t\t\t\tvalue={monthMinute}\n\t\t\t\t\t\t\tonChange={(e) => setMonthMinute(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>分执行</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'custom' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tvalue={customCron}\n\t\t\t\t\t\t\tonChange={(e) => setCustomCron(e.target.value)}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: '100%', fontFamily: 'monospace' }}\n\t\t\t\t\t\t\tplaceholder=\"例如: 0 0/15 * * * ?\"\n\t\t\t\t\t\t/>\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<div className=\"rpc_cron_picker_footer\">\n\t\t\t\t<div className=\"rpc_cron_picker_cron_badge\">\n\t\t\t\t\t<span>生成的 Cron:</span>\n\t\t\t\t\t<span className=\"rpc_cron_picker_cron_code\">{cron}</span>\n\t\t\t\t\t<CopyButton mode=\"icon\" text={cron} tooltip=\"复制 Cron 表达式\" />\n\t\t\t\t</div>\n\t\t\t\t<div className=\"rpc_cron_picker_human_desc\">\n\t\t\t\t\t<span>💡 周期人话解释:</span>\n\t\t\t\t\t<span>{desc}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default CronPicker;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkMBOWSS4B_cjs = require('./chunk-MBOWSS4B.cjs');
|
|
4
4
|
var react = require('react');
|
|
5
5
|
var ReactDOM = require('react-dom');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -184,109 +184,102 @@ var ImageCropper = react.forwardRef(
|
|
|
184
184
|
onOk == null ? void 0 : onOk(res);
|
|
185
185
|
};
|
|
186
186
|
const cropBox = getCropBoxRect();
|
|
187
|
-
const coreContent = /* @__PURE__ */ jsxRuntime.jsxs(
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
onMouseLeave: handleMouseUp,
|
|
203
|
-
onWheel: handleWheel,
|
|
204
|
-
children: [
|
|
205
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
206
|
-
"canvas",
|
|
207
|
-
{
|
|
208
|
-
ref: canvasRef,
|
|
209
|
-
className: "rpc_image_cropper_canvas",
|
|
210
|
-
style: { width: "100%", height }
|
|
211
|
-
}
|
|
212
|
-
),
|
|
213
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
214
|
-
"div",
|
|
215
|
-
{
|
|
216
|
-
className: `rpc_image_cropper_crop_box ${shape === "round" ? "rpc_image_cropper_crop_box_round" : ""}`,
|
|
217
|
-
style: {
|
|
218
|
-
left: `${cropBox.left}px`,
|
|
219
|
-
top: `${cropBox.top}px`,
|
|
220
|
-
width: `${cropBox.width}px`,
|
|
221
|
-
height: `${cropBox.height}px`
|
|
222
|
-
},
|
|
223
|
-
children: shape === "rect" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_image_cropper_crop_box_grid" })
|
|
224
|
-
}
|
|
225
|
-
)
|
|
226
|
-
]
|
|
227
|
-
}
|
|
228
|
-
),
|
|
229
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_image_cropper_toolbar", children: [
|
|
230
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
231
|
-
"button",
|
|
232
|
-
{
|
|
233
|
-
type: "button",
|
|
234
|
-
className: "rpc_image_cropper_btn",
|
|
235
|
-
onClick: () => handleZoom(0.1),
|
|
236
|
-
title: "\u653E\u5927",
|
|
237
|
-
children: [
|
|
238
|
-
/* @__PURE__ */ jsxRuntime.jsx(chunkQ4QF6UYX_cjs.ZoomInOutlined, {}),
|
|
239
|
-
" \u653E\u5927"
|
|
240
|
-
]
|
|
241
|
-
}
|
|
242
|
-
),
|
|
243
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
244
|
-
"button",
|
|
245
|
-
{
|
|
246
|
-
type: "button",
|
|
247
|
-
className: "rpc_image_cropper_btn",
|
|
248
|
-
onClick: () => handleZoom(-0.1),
|
|
249
|
-
title: "\u7F29\u5C0F",
|
|
250
|
-
children: [
|
|
251
|
-
/* @__PURE__ */ jsxRuntime.jsx(chunkQ4QF6UYX_cjs.ZoomOutOutlined, {}),
|
|
252
|
-
" \u7F29\u5C0F"
|
|
253
|
-
]
|
|
254
|
-
}
|
|
255
|
-
),
|
|
256
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
257
|
-
"button",
|
|
187
|
+
const coreContent = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `rpc_image_cropper ${className}`, style: { ...style }, children: [
|
|
188
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
189
|
+
"div",
|
|
190
|
+
{
|
|
191
|
+
ref: containerRef,
|
|
192
|
+
className: "rpc_image_cropper_canvas_wrap",
|
|
193
|
+
style: { height },
|
|
194
|
+
onMouseDown: handleMouseDown,
|
|
195
|
+
onMouseMove: handleMouseMove,
|
|
196
|
+
onMouseUp: handleMouseUp,
|
|
197
|
+
onMouseLeave: handleMouseUp,
|
|
198
|
+
onWheel: handleWheel,
|
|
199
|
+
children: [
|
|
200
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
201
|
+
"canvas",
|
|
258
202
|
{
|
|
259
|
-
|
|
260
|
-
className: "
|
|
261
|
-
|
|
262
|
-
title: "\u987A\u65F6\u9488\u65CB\u8F6C90\xB0",
|
|
263
|
-
children: [
|
|
264
|
-
/* @__PURE__ */ jsxRuntime.jsx(chunkQ4QF6UYX_cjs.RotateRightOutlined, {}),
|
|
265
|
-
" \u65CB\u8F6C"
|
|
266
|
-
]
|
|
203
|
+
ref: canvasRef,
|
|
204
|
+
className: "rpc_image_cropper_canvas",
|
|
205
|
+
style: { width: "100%", height }
|
|
267
206
|
}
|
|
268
207
|
),
|
|
269
208
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
270
|
-
"
|
|
209
|
+
"div",
|
|
271
210
|
{
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
211
|
+
className: `rpc_image_cropper_crop_box ${shape === "round" ? "rpc_image_cropper_crop_box_round" : ""}`,
|
|
212
|
+
style: {
|
|
213
|
+
left: `${cropBox.left}px`,
|
|
214
|
+
top: `${cropBox.top}px`,
|
|
215
|
+
width: `${cropBox.width}px`,
|
|
216
|
+
height: `${cropBox.height}px`
|
|
217
|
+
},
|
|
218
|
+
children: shape === "rect" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_image_cropper_crop_box_grid" })
|
|
277
219
|
}
|
|
278
220
|
)
|
|
279
|
-
]
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
221
|
+
]
|
|
222
|
+
}
|
|
223
|
+
),
|
|
224
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_image_cropper_toolbar", children: [
|
|
225
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
226
|
+
"button",
|
|
227
|
+
{
|
|
228
|
+
type: "button",
|
|
229
|
+
className: "rpc_image_cropper_btn",
|
|
230
|
+
onClick: () => handleZoom(0.1),
|
|
231
|
+
title: "\u653E\u5927",
|
|
232
|
+
children: [
|
|
233
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.ZoomInOutlined, {}),
|
|
234
|
+
" \u653E\u5927"
|
|
235
|
+
]
|
|
236
|
+
}
|
|
237
|
+
),
|
|
238
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
239
|
+
"button",
|
|
240
|
+
{
|
|
241
|
+
type: "button",
|
|
242
|
+
className: "rpc_image_cropper_btn",
|
|
243
|
+
onClick: () => handleZoom(-0.1),
|
|
244
|
+
title: "\u7F29\u5C0F",
|
|
245
|
+
children: [
|
|
246
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.ZoomOutOutlined, {}),
|
|
247
|
+
" \u7F29\u5C0F"
|
|
248
|
+
]
|
|
249
|
+
}
|
|
250
|
+
),
|
|
251
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
252
|
+
"button",
|
|
253
|
+
{
|
|
254
|
+
type: "button",
|
|
255
|
+
className: "rpc_image_cropper_btn",
|
|
256
|
+
onClick: () => handleRotate(90),
|
|
257
|
+
title: "\u987A\u65F6\u9488\u65CB\u8F6C90\xB0",
|
|
258
|
+
children: [
|
|
259
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.RotateRightOutlined, {}),
|
|
260
|
+
" \u65CB\u8F6C"
|
|
261
|
+
]
|
|
262
|
+
}
|
|
263
|
+
),
|
|
264
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
265
|
+
"button",
|
|
266
|
+
{
|
|
267
|
+
type: "button",
|
|
268
|
+
className: "rpc_image_cropper_btn",
|
|
269
|
+
onClick: handleReset,
|
|
270
|
+
title: "\u91CD\u7F6E",
|
|
271
|
+
children: "\u91CD\u7F6E"
|
|
272
|
+
}
|
|
273
|
+
)
|
|
274
|
+
] })
|
|
275
|
+
] });
|
|
283
276
|
if (modal) {
|
|
284
277
|
if (!open) return null;
|
|
285
278
|
return ReactDOM__default.default.createPortal(
|
|
286
279
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_cropper_modal", onClick: onCancel, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_cropper_modal_card", onClick: (e) => e.stopPropagation(), children: [
|
|
287
280
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_cropper_modal_header", children: [
|
|
288
281
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: title }),
|
|
289
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
282
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.CloseOutlined, { className: "rpc_cropper_modal_close", onClick: onCancel })
|
|
290
283
|
] }),
|
|
291
284
|
/* @__PURE__ */ jsxRuntime.jsx("div", { style: { padding: 16, background: "#141414" }, children: coreContent }),
|
|
292
285
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_cropper_modal_footer", children: [
|
|
@@ -307,7 +300,7 @@ var ImageCropper = react.forwardRef(
|
|
|
307
300
|
className: "rpc_image_cropper_btn rpc_image_cropper_btn_primary",
|
|
308
301
|
onClick: handleConfirm,
|
|
309
302
|
children: [
|
|
310
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
303
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.CheckOutlined, {}),
|
|
311
304
|
" \u786E\u5B9A\u88C1\u526A"
|
|
312
305
|
]
|
|
313
306
|
}
|
|
@@ -324,5 +317,5 @@ ImageCropper.displayName = "ImageCropper";
|
|
|
324
317
|
var ImageCropper_default = ImageCropper;
|
|
325
318
|
|
|
326
319
|
exports.ImageCropper_default = ImageCropper_default;
|
|
327
|
-
//# sourceMappingURL=chunk-
|
|
328
|
-
//# sourceMappingURL=chunk-
|
|
320
|
+
//# sourceMappingURL=chunk-ZNFW6L3E.cjs.map
|
|
321
|
+
//# sourceMappingURL=chunk-ZNFW6L3E.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../ImageCropper/index.tsx"],"names":["forwardRef","useRef","useState","useEffect","useCallback","cropBox","useImperativeHandle","jsxs","jsx","ZoomInOutlined","ZoomOutOutlined","RotateRightOutlined","ReactDOM","CloseOutlined","CheckOutlined"],"mappings":";;;;;;;;;;;AAiEA,IAAM,YAAA,GAAeA,gBAAA;AAAA,EACpB,CACC;AAAA,IACC,GAAA;AAAA,IACA,WAAA,GAAc,CAAA;AAAA,IACd,KAAA,GAAQ,MAAA;AAAA,IACR,KAAA,GAAQ,KAAA;AAAA,IACR,KAAA,GAAQ,0BAAA;AAAA,IACR,IAAA,GAAO,IAAA;AAAA,IACP,IAAA;AAAA,IACA,QAAA;AAAA,IACA,MAAA,GAAS,GAAA;AAAA,IACT,SAAA,GAAY,EAAA;AAAA,IACZ;AAAA,KAED,GAAA,KACI;AACJ,IAAA,MAAM,SAAA,GAAYC,aAA0B,IAAI,CAAA;AAChD,IAAA,MAAM,YAAA,GAAeA,aAAuB,IAAI,CAAA;AAChD,IAAA,MAAM,MAAA,GAASA,aAAgC,IAAI,CAAA;AAGnD,IAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIC,eAAiB,CAAC,CAAA;AAC5C,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,eAAiB,CAAC,CAAA;AACpD,IAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,cAAA,CAAmC,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA;AAC7E,IAAA,MAAM,aAAA,GAAgBD,aAAgB,KAAK,CAAA;AAC3C,IAAA,MAAM,eAAeA,YAAA,CAAiC,EAAE,GAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA;AAGpE,IAAAE,eAAA,CAAU,MAAM;AACf,MAAA,IAAI,CAAC,GAAA,EAAK;AACV,MAAA,MAAM,GAAA,GAAM,IAAI,KAAA,EAAM;AACtB,MAAA,GAAA,CAAI,WAAA,GAAc,WAAA;AAClB,MAAA,GAAA,CAAI,GAAA,GAAM,GAAA;AACV,MAAA,GAAA,CAAI,SAAS,MAAM;AAClB,QAAA,MAAA,CAAO,OAAA,GAAU,GAAA;AAEjB,QAAA,QAAA,CAAS,CAAC,CAAA;AACV,QAAA,YAAA,CAAa,CAAC,CAAA;AACd,QAAA,SAAA,CAAU,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA;AACxB,QAAA,YAAA,CAAa,GAAG,CAAA,EAAG,EAAE,GAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA;AAAA,MAClC,CAAA;AAAA,IACD,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA;AAGR,IAAA,MAAM,YAAA,GAAeC,iBAAA;AAAA,MACpB,CAAC,QAAA,EAAkB,MAAA,EAAgB,SAAA,KAAwC;AAC1E,QAAA,MAAM,SAAS,SAAA,CAAU,OAAA;AACzB,QAAA,MAAM,MAAM,MAAA,CAAO,OAAA;AACnB,QAAA,IAAI,CAAC,MAAA,IAAU,CAAC,GAAA,EAAK;AAErB,QAAA,MAAM,GAAA,GAAM,MAAA,CAAO,UAAA,CAAW,IAAI,CAAA;AAClC,QAAA,IAAI,CAAC,GAAA,EAAK;AAEV,QAAA,MAAM,GAAA,GAAM,OAAO,gBAAA,IAAoB,CAAA;AACvC,QAAA,MAAM,KAAA,GAAQ,OAAO,WAAA,IAAe,GAAA;AACpC,QAAA,MAAM,YAAA,GAAe,OAAO,YAAA,IAAgB,MAAA;AAE5C,QAAA,MAAA,CAAO,QAAQ,KAAA,GAAQ,GAAA;AACvB,QAAA,MAAA,CAAO,SAAS,YAAA,GAAe,GAAA;AAC/B,QAAA,GAAA,CAAI,KAAA,CAAM,KAAK,GAAG,CAAA;AAElB,QAAA,GAAA,CAAI,SAAA,CAAU,CAAA,EAAG,CAAA,EAAG,KAAA,EAAO,YAAY,CAAA;AACvC,QAAA,GAAA,CAAI,IAAA,EAAK;AAGT,QAAA,MAAM,OAAA,GAAU,KAAA,GAAQ,CAAA,GAAI,SAAA,CAAU,CAAA;AACtC,QAAA,MAAM,OAAA,GAAU,YAAA,GAAe,CAAA,GAAI,SAAA,CAAU,CAAA;AAE7C,QAAA,GAAA,CAAI,SAAA,CAAU,SAAS,OAAO,CAAA;AAC9B,QAAA,GAAA,CAAI,MAAA,CAAQ,MAAA,GAAS,IAAA,CAAK,EAAA,GAAM,GAAG,CAAA;AACnC,QAAA,GAAA,CAAI,KAAA,CAAM,UAAU,QAAQ,CAAA;AAG5B,QAAA,MAAM,QAAA,GAAW,GAAA,CAAI,YAAA,IAAgB,GAAA,CAAI,KAAA;AACzC,QAAA,MAAM,SAAA,GAAY,GAAA,CAAI,aAAA,IAAiB,GAAA,CAAI,MAAA;AAG3C,QAAA,MAAM,SAAA,GAAY,KAAK,GAAA,CAAK,KAAA,GAAQ,MAAO,QAAA,EAAW,YAAA,GAAe,GAAA,GAAO,SAAA,EAAW,CAAC,CAAA;AACxF,QAAA,MAAM,UAAU,QAAA,GAAW,SAAA;AAC3B,QAAA,MAAM,UAAU,SAAA,GAAY,SAAA;AAE5B,QAAA,GAAA,CAAI,SAAA,CAAU,KAAK,CAAC,OAAA,GAAU,GAAG,CAAC,OAAA,GAAU,CAAA,EAAG,OAAA,EAAS,OAAO,CAAA;AAC/D,QAAA,GAAA,CAAI,OAAA,EAAQ;AAAA,MACb,CAAA;AAAA,MACA,CAAC,MAAM;AAAA,KACR;AAEA,IAAAD,eAAA,CAAU,MAAM;AACf,MAAA,YAAA,CAAa,KAAA,EAAO,WAAW,MAAM,CAAA;AAAA,IACtC,GAAG,CAAC,KAAA,EAAO,SAAA,EAAW,MAAA,EAAQ,YAAY,CAAC,CAAA;AAG3C,IAAA,MAAM,eAAA,GAAkB,CAAC,CAAA,KAAwB;AAChD,MAAA,aAAA,CAAc,OAAA,GAAU,IAAA;AACxB,MAAA,YAAA,CAAa,OAAA,GAAU,EAAE,CAAA,EAAG,CAAA,CAAE,OAAA,GAAU,MAAA,CAAO,CAAA,EAAG,CAAA,EAAG,CAAA,CAAE,OAAA,GAAU,MAAA,CAAO,CAAA,EAAE;AAAA,IAC3E,CAAA;AAEA,IAAA,MAAM,eAAA,GAAkB,CAAC,CAAA,KAAwB;AAChD,MAAA,IAAI,CAAC,cAAc,OAAA,EAAS;AAC5B,MAAA,MAAM,UAAA,GAAa;AAAA,QAClB,CAAA,EAAG,CAAA,CAAE,OAAA,GAAU,YAAA,CAAa,OAAA,CAAQ,CAAA;AAAA,QACpC,CAAA,EAAG,CAAA,CAAE,OAAA,GAAU,YAAA,CAAa,OAAA,CAAQ;AAAA,OACrC;AACA,MAAA,SAAA,CAAU,UAAU,CAAA;AAAA,IACrB,CAAA;AAEA,IAAA,MAAM,gBAAgB,MAAM;AAC3B,MAAA,aAAA,CAAc,OAAA,GAAU,KAAA;AAAA,IACzB,CAAA;AAGA,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAwB;AAC5C,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,MAAM,QAAA,GAAW,CAAA,CAAE,MAAA,GAAS,CAAA,GAAI,GAAA,GAAM,IAAA;AACtC,MAAA,QAAA,CAAS,CAAC,IAAA,KAAS,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,IAAA,GAAO,QAAQ,CAAA,EAAG,CAAC,CAAC,CAAA;AAAA,IAC/D,CAAA;AAGA,IAAA,MAAM,YAAA,GAAe,CAAC,GAAA,GAAM,EAAA,KAAO;AAClC,MAAA,YAAA,CAAa,CAAC,IAAA,KAAA,CAAU,IAAA,GAAO,GAAA,IAAO,GAAG,CAAA;AAAA,IAC1C,CAAA;AAEA,IAAA,MAAM,UAAA,GAAa,CAAC,KAAA,KAAkB;AACrC,MAAA,QAAA,CAAS,CAAC,IAAA,KAAS,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,IAAA,GAAO,KAAK,CAAA,EAAG,CAAC,CAAC,CAAA;AAAA,IAC5D,CAAA;AAEA,IAAA,MAAM,cAAc,MAAM;AACzB,MAAA,QAAA,CAAS,CAAC,CAAA;AACV,MAAA,YAAA,CAAa,CAAC,CAAA;AACd,MAAA,SAAA,CAAU,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA;AAAA,IACzB,CAAA;AAGA,IAAA,MAAM,iBAAiB,MAAM;AAC5B,MAAA,MAAM,YAAY,YAAA,CAAa,OAAA;AAC/B,MAAA,MAAM,UAAA,GAAA,CAAa,uCAAW,WAAA,KAAe,GAAA;AAC7C,MAAA,MAAM,UAAA,GAAa,MAAA;AAEnB,MAAA,IAAI,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,UAAA,GAAa,KAAK,GAAG,CAAA;AACzC,MAAA,IAAI,IAAA,GAAO,WAAA,GAAc,IAAA,GAAO,WAAA,GAAc,IAAA;AAE9C,MAAA,IAAI,IAAA,GAAO,aAAa,GAAA,EAAK;AAC5B,QAAA,IAAA,GAAO,UAAA,GAAa,GAAA;AACpB,QAAA,IAAA,GAAO,WAAA,GAAc,OAAO,WAAA,GAAc,IAAA;AAAA,MAC3C;AAEA,MAAA,MAAM,OAAA,GAAA,CAAW,aAAa,IAAA,IAAQ,CAAA;AACtC,MAAA,MAAM,MAAA,GAAA,CAAU,aAAa,IAAA,IAAQ,CAAA;AAErC,MAAA,OAAO,EAAE,MAAM,OAAA,EAAS,GAAA,EAAK,QAAQ,KAAA,EAAO,IAAA,EAAM,QAAQ,IAAA,EAAK;AAAA,IAChE,CAAA;AAGA,IAAA,MAAM,gBAAA,GAAmBC,iBAAA;AAAA,MACxB,OAAO,IAAA,GAAO,WAAA,EAAa,OAAA,GAAU,IAAA,KAA8B;AAClE,QAAA,MAAM,SAAS,SAAA,CAAU,OAAA;AACzB,QAAA,IAAI,CAAC,MAAA,EAAQ,MAAM,IAAI,MAAM,kBAAkB,CAAA;AAE/C,QAAA,MAAMC,WAAU,cAAA,EAAe;AAC/B,QAAA,MAAM,GAAA,GAAM,OAAO,gBAAA,IAAoB,CAAA;AAEvC,QAAA,MAAM,UAAA,GAAa,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAClD,QAAA,UAAA,CAAW,KAAA,GAAQA,SAAQ,KAAA,GAAQ,GAAA;AACnC,QAAA,UAAA,CAAW,MAAA,GAASA,SAAQ,MAAA,GAAS,GAAA;AACrC,QAAA,MAAM,OAAA,GAAU,UAAA,CAAW,UAAA,CAAW,IAAI,CAAA;AAE1C,QAAA,IAAI,CAAC,OAAA,EAAS,MAAM,IAAI,MAAM,iCAAiC,CAAA;AAE/D,QAAA,IAAI,UAAU,OAAA,EAAS;AACtB,UAAA,OAAA,CAAQ,SAAA,EAAU;AAClB,UAAA,OAAA,CAAQ,GAAA;AAAA,YACNA,QAAAA,CAAQ,QAAQ,GAAA,GAAO,CAAA;AAAA,YACvBA,QAAAA,CAAQ,SAAS,GAAA,GAAO,CAAA;AAAA,YACxBA,QAAAA,CAAQ,QAAQ,GAAA,GAAO,CAAA;AAAA,YACxB,CAAA;AAAA,YACA,KAAK,EAAA,GAAK;AAAA,WACX;AACA,UAAA,OAAA,CAAQ,SAAA,EAAU;AAClB,UAAA,OAAA,CAAQ,IAAA,EAAK;AAAA,QACd;AAEA,QAAA,OAAA,CAAQ,SAAA;AAAA,UACP,MAAA;AAAA,UACAA,SAAQ,IAAA,GAAO,GAAA;AAAA,UACfA,SAAQ,GAAA,GAAM,GAAA;AAAA,UACdA,SAAQ,KAAA,GAAQ,GAAA;AAAA,UAChBA,SAAQ,MAAA,GAAS,GAAA;AAAA,UACjB,CAAA;AAAA,UACA,CAAA;AAAA,UACAA,SAAQ,KAAA,GAAQ,GAAA;AAAA,UAChBA,SAAQ,MAAA,GAAS;AAAA,SAClB;AAEA,QAAA,MAAM,OAAA,GAAU,UAAA,CAAW,SAAA,CAAU,IAAA,EAAM,OAAO,CAAA;AAClD,QAAA,MAAM,IAAA,GAAoB,MAAM,IAAI,OAAA,CAAQ,CAAC,OAAA,KAAY;AACxD,UAAA,UAAA,CAAW,OAAO,CAAC,CAAA,KAAM,QAAQ,CAAC,CAAA,EAAG,MAAM,OAAO,CAAA;AAAA,QACnD,CAAC,CAAA;AAED,QAAA,OAAO;AAAA,UACN,OAAA;AAAA,UACA,IAAA;AAAA,UACA,KAAA,EAAO,IAAA,CAAK,KAAA,CAAMA,QAAAA,CAAQ,KAAK,CAAA;AAAA,UAC/B,MAAA,EAAQ,IAAA,CAAK,KAAA,CAAMA,QAAAA,CAAQ,MAAM;AAAA,SAClC;AAAA,MACD,CAAA;AAAA,MACA,CAAC,KAAA,EAAO,WAAA,EAAa,MAAM;AAAA,KAC5B;AAEA,IAAAC,yBAAA;AAAA,MACC,GAAA;AAAA,MACA,OAAO;AAAA,QACN,gBAAA;AAAA,QACA,MAAA,EAAQ,YAAA;AAAA,QACR,IAAA,EAAM,UAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACR,CAAA;AAAA,MACA,CAAC,gBAAgB;AAAA,KAClB;AAEA,IAAA,MAAM,gBAAgB,YAAY;AACjC,MAAA,MAAM,GAAA,GAAM,MAAM,gBAAA,EAAiB;AACnC,MAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAO,GAAA,CAAA;AAAA,IACR,CAAA;AAEA,IAAA,MAAM,UAAU,cAAA,EAAe;AAE/B,IAAA,MAAM,WAAA,mBACLC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA,kBAAA,EAAqB,SAAS,CAAA,CAAA,EAAI,KAAA,EAAO,EAAE,GAAG,KAAA,EAAM,EACnE,QAAA,EAAA;AAAA,sBAAAA,eAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACA,GAAA,EAAK,YAAA;AAAA,UACL,SAAA,EAAU,+BAAA;AAAA,UACV,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,UAChB,WAAA,EAAa,eAAA;AAAA,UACb,WAAA,EAAa,eAAA;AAAA,UACb,SAAA,EAAW,aAAA;AAAA,UACX,YAAA,EAAc,aAAA;AAAA,UACd,OAAA,EAAS,WAAA;AAAA,UAET,QAAA,EAAA;AAAA,4BAAAC,cAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACA,GAAA,EAAK,SAAA;AAAA,gBACL,SAAA,EAAU,0BAAA;AAAA,gBACV,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,MAAA;AAAO;AAAA,aAChC;AAAA,4BAGAA,cAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACA,SAAA,EAAW,CAAA,2BAAA,EACV,KAAA,KAAU,OAAA,GAAU,qCAAqC,EAC1D,CAAA,CAAA;AAAA,gBACA,KAAA,EAAO;AAAA,kBACN,IAAA,EAAM,CAAA,EAAG,OAAA,CAAQ,IAAI,CAAA,EAAA,CAAA;AAAA,kBACrB,GAAA,EAAK,CAAA,EAAG,OAAA,CAAQ,GAAG,CAAA,EAAA,CAAA;AAAA,kBACnB,KAAA,EAAO,CAAA,EAAG,OAAA,CAAQ,KAAK,CAAA,EAAA,CAAA;AAAA,kBACvB,MAAA,EAAQ,CAAA,EAAG,OAAA,CAAQ,MAAM,CAAA,EAAA;AAAA,iBAC1B;AAAA,gBAEC,QAAA,EAAA,KAAA,KAAU,MAAA,oBAAUA,cAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iCAAA,EAAkC;AAAA;AAAA;AACvE;AAAA;AAAA,OACD;AAAA,sBAGAD,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACd,QAAA,EAAA;AAAA,wBAAAA,eAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACA,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,uBAAA;AAAA,YACV,OAAA,EAAS,MAAM,UAAA,CAAW,GAAG,CAAA;AAAA,YAC7B,KAAA,EAAM,cAAA;AAAA,YAEN,QAAA,EAAA;AAAA,8BAAAC,cAAA,CAACC,gCAAA,EAAA,EAAe,CAAA;AAAA,cAAE;AAAA;AAAA;AAAA,SACnB;AAAA,wBACAF,eAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACA,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,uBAAA;AAAA,YACV,OAAA,EAAS,MAAM,UAAA,CAAW,IAAI,CAAA;AAAA,YAC9B,KAAA,EAAM,cAAA;AAAA,YAEN,QAAA,EAAA;AAAA,8BAAAC,cAAA,CAACE,iCAAA,EAAA,EAAgB,CAAA;AAAA,cAAE;AAAA;AAAA;AAAA,SACpB;AAAA,wBACAH,eAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACA,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,uBAAA;AAAA,YACV,OAAA,EAAS,MAAM,YAAA,CAAa,EAAE,CAAA;AAAA,YAC9B,KAAA,EAAM,sCAAA;AAAA,YAEN,QAAA,EAAA;AAAA,8BAAAC,cAAA,CAACG,qCAAA,EAAA,EAAoB,CAAA;AAAA,cAAE;AAAA;AAAA;AAAA,SACxB;AAAA,wBACAH,cAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACA,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,uBAAA;AAAA,YACV,OAAA,EAAS,WAAA;AAAA,YACT,KAAA,EAAM,cAAA;AAAA,YACN,QAAA,EAAA;AAAA;AAAA;AAED,OAAA,EACD;AAAA,KAAA,EACD,CAAA;AAGD,IAAA,IAAI,KAAA,EAAO;AACV,MAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAClB,MAAA,OAAOI,yBAAA,CAAS,YAAA;AAAA,wBACfJ,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAoB,SAAS,QAAA,EAC3C,QAAA,kBAAAD,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAAyB,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,iBAAgB,EACzE,QAAA,EAAA;AAAA,0BAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,0BAAA,EACd,QAAA,EAAA;AAAA,4BAAAC,cAAA,CAAC,UAAM,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,4BACbA,cAAA,CAACK,+BAAA,EAAA,EAAc,SAAA,EAAU,yBAAA,EAA0B,SAAS,QAAA,EAAU;AAAA,WAAA,EACvE,CAAA;AAAA,0BACAL,cAAA,CAAC,SAAI,KAAA,EAAO,EAAE,SAAS,EAAA,EAAI,UAAA,EAAY,SAAA,EAAU,EAAI,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,0BACjED,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAAA,EACd,QAAA,EAAA;AAAA,4BAAAC,cAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACA,IAAA,EAAK,QAAA;AAAA,gBACL,SAAA,EAAU,uBAAA;AAAA,gBACV,OAAO,EAAE,UAAA,EAAY,WAAW,KAAA,EAAO,SAAA,EAAW,aAAa,SAAA,EAAU;AAAA,gBACzE,OAAA,EAAS,QAAA;AAAA,gBACT,QAAA,EAAA;AAAA;AAAA,aAED;AAAA,4BACAD,eAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACA,IAAA,EAAK,QAAA;AAAA,gBACL,SAAA,EAAU,qDAAA;AAAA,gBACV,OAAA,EAAS,aAAA;AAAA,gBAET,QAAA,EAAA;AAAA,kCAAAC,cAAA,CAACM,+BAAA,EAAA,EAAc,CAAA;AAAA,kBAAE;AAAA;AAAA;AAAA;AAClB,WAAA,EACD;AAAA,SAAA,EACD,CAAA,EACD,CAAA;AAAA,QACA,QAAA,CAAS;AAAA,OACV;AAAA,IACD;AAEA,IAAA,OAAO,WAAA;AAAA,EACR;AACD,CAAA;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAO,oBAAA,GAAQ","file":"chunk-ZNFW6L3E.cjs","sourcesContent":["import React, {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tuseImperativeHandle,\n\tforwardRef,\n\tReactNode,\n\tCSSProperties,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n\tRotateRightOutlined,\n\tZoomInOutlined,\n\tZoomOutOutlined,\n\tCloseOutlined,\n\tCheckOutlined,\n} from '../src/icons';\nimport './index.less';\n\nexport type CropShape = 'rect' | 'round';\n\nexport interface CropResult {\n\tdataURL: string;\n\tblob: Blob | null;\n\twidth: number;\n\theight: number;\n}\n\nexport interface ImageCropperRef {\n\t/** 获取当前裁剪结果(DataURL 与 Blob) */\n\tgetCroppedResult: (type?: string, quality?: number) => Promise<CropResult>;\n\t/** 顺时针旋转 90 度 */\n\trotate: (degree?: number) => void;\n\t/** 缩放图片 */\n\tzoom: (delta: number) => void;\n\t/** 重置所有变换参数 */\n\treset: () => void;\n}\n\nexport interface ImageCropperProps {\n\t/** 图片源地址或 Base64 字符串 */\n\tsrc: string;\n\t/** 裁剪框宽高比(如 1 代表 1:1 正方形,16/9 代表宽屏,0 代表自由矩形),默认为 1 */\n\taspectRatio?: number;\n\t/** 裁剪框形状:'rect' 矩形,'round' 圆形(适合头像),默认为 'rect' */\n\tshape?: CropShape;\n\t/** 是否以 Modal 模态弹窗形式展示,默认为 false */\n\tmodal?: boolean;\n\t/** Modal 模式下的标题,默认为 '图片裁剪' */\n\ttitle?: ReactNode;\n\t/** Modal 模式下的显隐受控状态 */\n\topen?: boolean;\n\t/** 确认裁剪回调 */\n\tonOk?: (result: CropResult) => void;\n\t/** 取消/关闭回调 */\n\tonCancel?: () => void;\n\t/** 容器高度(内联模式有效),默认为 360 */\n\theight?: number;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst ImageCropper = forwardRef<ImageCropperRef, ImageCropperProps>(\n\t(\n\t\t{\n\t\t\tsrc,\n\t\t\taspectRatio = 1,\n\t\t\tshape = 'rect',\n\t\t\tmodal = false,\n\t\t\ttitle = '图片裁剪',\n\t\t\topen = true,\n\t\t\tonOk,\n\t\t\tonCancel,\n\t\t\theight = 360,\n\t\t\tclassName = '',\n\t\t\tstyle,\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst canvasRef = useRef<HTMLCanvasElement>(null);\n\t\tconst containerRef = useRef<HTMLDivElement>(null);\n\t\tconst imgRef = useRef<HTMLImageElement | null>(null);\n\n\t\t// 图片变换参数\n\t\tconst [scale, setScale] = useState<number>(1);\n\t\tconst [rotateDeg, setRotateDeg] = useState<number>(0);\n\t\tconst [offset, setOffset] = useState<{ x: number; y: number }>({ x: 0, y: 0 });\n\t\tconst isDraggingRef = useRef<boolean>(false);\n\t\tconst dragStartRef = useRef<{ x: number; y: number }>({ x: 0, y: 0 });\n\n\t\t// 加载图片\n\t\tuseEffect(() => {\n\t\t\tif (!src) return;\n\t\t\tconst img = new Image();\n\t\t\timg.crossOrigin = 'anonymous';\n\t\t\timg.src = src;\n\t\t\timg.onload = () => {\n\t\t\t\timgRef.current = img;\n\t\t\t\t// 初始计算合适缩放比例\n\t\t\t\tsetScale(1);\n\t\t\t\tsetRotateDeg(0);\n\t\t\t\tsetOffset({ x: 0, y: 0 });\n\t\t\t\trenderCanvas(1, 0, { x: 0, y: 0 });\n\t\t\t};\n\t\t}, [src]);\n\n\t\t// 重新渲染 Canvas\n\t\tconst renderCanvas = useCallback(\n\t\t\t(curScale: number, curDeg: number, curOffset: { x: number; y: number }) => {\n\t\t\t\tconst canvas = canvasRef.current;\n\t\t\t\tconst img = imgRef.current;\n\t\t\t\tif (!canvas || !img) return;\n\n\t\t\t\tconst ctx = canvas.getContext('2d');\n\t\t\t\tif (!ctx) return;\n\n\t\t\t\tconst dpr = window.devicePixelRatio || 1;\n\t\t\t\tconst width = canvas.clientWidth || 400;\n\t\t\t\tconst canvasHeight = canvas.clientHeight || height;\n\n\t\t\t\tcanvas.width = width * dpr;\n\t\t\t\tcanvas.height = canvasHeight * dpr;\n\t\t\t\tctx.scale(dpr, dpr);\n\n\t\t\t\tctx.clearRect(0, 0, width, canvasHeight);\n\t\t\t\tctx.save();\n\n\t\t\t\t// 移动到中心点进行旋转、缩放与平移\n\t\t\t\tconst centerX = width / 2 + curOffset.x;\n\t\t\t\tconst centerY = canvasHeight / 2 + curOffset.y;\n\n\t\t\t\tctx.translate(centerX, centerY);\n\t\t\t\tctx.rotate((curDeg * Math.PI) / 180);\n\t\t\t\tctx.scale(curScale, curScale);\n\n\t\t\t\t// 居中绘制原始图像\n\t\t\t\tconst imgWidth = img.naturalWidth || img.width;\n\t\t\t\tconst imgHeight = img.naturalHeight || img.height;\n\n\t\t\t\t// 保持图像按比例自适应居中\n\t\t\t\tconst baseRatio = Math.min((width * 0.8) / imgWidth, (canvasHeight * 0.8) / imgHeight, 1);\n\t\t\t\tconst renderW = imgWidth * baseRatio;\n\t\t\t\tconst renderH = imgHeight * baseRatio;\n\n\t\t\t\tctx.drawImage(img, -renderW / 2, -renderH / 2, renderW, renderH);\n\t\t\t\tctx.restore();\n\t\t\t},\n\t\t\t[height],\n\t\t);\n\n\t\tuseEffect(() => {\n\t\t\trenderCanvas(scale, rotateDeg, offset);\n\t\t}, [scale, rotateDeg, offset, renderCanvas]);\n\n\t\t// 鼠标拖拽平移\n\t\tconst handleMouseDown = (e: React.MouseEvent) => {\n\t\t\tisDraggingRef.current = true;\n\t\t\tdragStartRef.current = { x: e.clientX - offset.x, y: e.clientY - offset.y };\n\t\t};\n\n\t\tconst handleMouseMove = (e: React.MouseEvent) => {\n\t\t\tif (!isDraggingRef.current) return;\n\t\t\tconst nextOffset = {\n\t\t\t\tx: e.clientX - dragStartRef.current.x,\n\t\t\t\ty: e.clientY - dragStartRef.current.y,\n\t\t\t};\n\t\t\tsetOffset(nextOffset);\n\t\t};\n\n\t\tconst handleMouseUp = () => {\n\t\t\tisDraggingRef.current = false;\n\t\t};\n\n\t\t// 滚轮缩放\n\t\tconst handleWheel = (e: React.WheelEvent) => {\n\t\t\te.preventDefault();\n\t\t\tconst zoomStep = e.deltaY < 0 ? 0.1 : -0.1;\n\t\t\tsetScale((prev) => Math.min(Math.max(0.2, prev + zoomStep), 5));\n\t\t};\n\n\t\t// 顺时针旋转\n\t\tconst handleRotate = (deg = 90) => {\n\t\t\tsetRotateDeg((prev) => (prev + deg) % 360);\n\t\t};\n\n\t\tconst handleZoom = (delta: number) => {\n\t\t\tsetScale((prev) => Math.min(Math.max(0.2, prev + delta), 5));\n\t\t};\n\n\t\tconst handleReset = () => {\n\t\t\tsetScale(1);\n\t\t\tsetRotateDeg(0);\n\t\t\tsetOffset({ x: 0, y: 0 });\n\t\t};\n\n\t\t// 计算裁剪框尺寸与位置\n\t\tconst getCropBoxRect = () => {\n\t\t\tconst container = containerRef.current;\n\t\t\tconst containerW = container?.clientWidth || 400;\n\t\t\tconst containerH = height;\n\n\t\t\tlet boxW = Math.min(containerW * 0.7, 240);\n\t\t\tlet boxH = aspectRatio ? boxW / aspectRatio : boxW;\n\n\t\t\tif (boxH > containerH * 0.8) {\n\t\t\t\tboxH = containerH * 0.8;\n\t\t\t\tboxW = aspectRatio ? boxH * aspectRatio : boxH;\n\t\t\t}\n\n\t\t\tconst boxLeft = (containerW - boxW) / 2;\n\t\t\tconst boxTop = (containerH - boxH) / 2;\n\n\t\t\treturn { left: boxLeft, top: boxTop, width: boxW, height: boxH };\n\t\t};\n\n\t\t// 提取裁剪区域生成图片\n\t\tconst getCroppedResult = useCallback(\n\t\t\tasync (type = 'image/png', quality = 0.92): Promise<CropResult> => {\n\t\t\t\tconst canvas = canvasRef.current;\n\t\t\t\tif (!canvas) throw new Error('Canvas not found');\n\n\t\t\t\tconst cropBox = getCropBoxRect();\n\t\t\t\tconst dpr = window.devicePixelRatio || 1;\n\n\t\t\t\tconst cropCanvas = document.createElement('canvas');\n\t\t\t\tcropCanvas.width = cropBox.width * dpr;\n\t\t\t\tcropCanvas.height = cropBox.height * dpr;\n\t\t\t\tconst cropCtx = cropCanvas.getContext('2d');\n\n\t\t\t\tif (!cropCtx) throw new Error('Failed to create canvas context');\n\n\t\t\t\tif (shape === 'round') {\n\t\t\t\t\tcropCtx.beginPath();\n\t\t\t\t\tcropCtx.arc(\n\t\t\t\t\t\t(cropBox.width * dpr) / 2,\n\t\t\t\t\t\t(cropBox.height * dpr) / 2,\n\t\t\t\t\t\t(cropBox.width * dpr) / 2,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tMath.PI * 2,\n\t\t\t\t\t);\n\t\t\t\t\tcropCtx.closePath();\n\t\t\t\t\tcropCtx.clip();\n\t\t\t\t}\n\n\t\t\t\tcropCtx.drawImage(\n\t\t\t\t\tcanvas,\n\t\t\t\t\tcropBox.left * dpr,\n\t\t\t\t\tcropBox.top * dpr,\n\t\t\t\t\tcropBox.width * dpr,\n\t\t\t\t\tcropBox.height * dpr,\n\t\t\t\t\t0,\n\t\t\t\t\t0,\n\t\t\t\t\tcropBox.width * dpr,\n\t\t\t\t\tcropBox.height * dpr,\n\t\t\t\t);\n\n\t\t\t\tconst dataURL = cropCanvas.toDataURL(type, quality);\n\t\t\t\tconst blob: Blob | null = await new Promise((resolve) => {\n\t\t\t\t\tcropCanvas.toBlob((b) => resolve(b), type, quality);\n\t\t\t\t});\n\n\t\t\t\treturn {\n\t\t\t\t\tdataURL,\n\t\t\t\t\tblob,\n\t\t\t\t\twidth: Math.round(cropBox.width),\n\t\t\t\t\theight: Math.round(cropBox.height),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[shape, aspectRatio, height],\n\t\t);\n\n\t\tuseImperativeHandle(\n\t\t\tref,\n\t\t\t() => ({\n\t\t\t\tgetCroppedResult,\n\t\t\t\trotate: handleRotate,\n\t\t\t\tzoom: handleZoom,\n\t\t\t\treset: handleReset,\n\t\t\t}),\n\t\t\t[getCroppedResult],\n\t\t);\n\n\t\tconst handleConfirm = async () => {\n\t\t\tconst res = await getCroppedResult();\n\t\t\tonOk?.(res);\n\t\t};\n\n\t\tconst cropBox = getCropBoxRect();\n\n\t\tconst coreContent = (\n\t\t\t<div className={`rpc_image_cropper ${className}`} style={{ ...style }}>\n\t\t\t\t<div\n\t\t\t\t\tref={containerRef}\n\t\t\t\t\tclassName=\"rpc_image_cropper_canvas_wrap\"\n\t\t\t\t\tstyle={{ height }}\n\t\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\t\tonMouseMove={handleMouseMove}\n\t\t\t\t\tonMouseUp={handleMouseUp}\n\t\t\t\t\tonMouseLeave={handleMouseUp}\n\t\t\t\t\tonWheel={handleWheel}\n\t\t\t\t>\n\t\t\t\t\t<canvas\n\t\t\t\t\t\tref={canvasRef}\n\t\t\t\t\t\tclassName=\"rpc_image_cropper_canvas\"\n\t\t\t\t\t\tstyle={{ width: '100%', height }}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{/* 裁剪框与遮罩 */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={`rpc_image_cropper_crop_box ${\n\t\t\t\t\t\t\tshape === 'round' ? 'rpc_image_cropper_crop_box_round' : ''\n\t\t\t\t\t\t}`}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tleft: `${cropBox.left}px`,\n\t\t\t\t\t\t\ttop: `${cropBox.top}px`,\n\t\t\t\t\t\t\twidth: `${cropBox.width}px`,\n\t\t\t\t\t\t\theight: `${cropBox.height}px`,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{shape === 'rect' && <div className=\"rpc_image_cropper_crop_box_grid\" />}\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_image_cropper_toolbar\">\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName=\"rpc_image_cropper_btn\"\n\t\t\t\t\t\tonClick={() => handleZoom(0.1)}\n\t\t\t\t\t\ttitle=\"放大\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ZoomInOutlined /> 放大\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName=\"rpc_image_cropper_btn\"\n\t\t\t\t\t\tonClick={() => handleZoom(-0.1)}\n\t\t\t\t\t\ttitle=\"缩小\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ZoomOutOutlined /> 缩小\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName=\"rpc_image_cropper_btn\"\n\t\t\t\t\t\tonClick={() => handleRotate(90)}\n\t\t\t\t\t\ttitle=\"顺时针旋转90°\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<RotateRightOutlined /> 旋转\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName=\"rpc_image_cropper_btn\"\n\t\t\t\t\t\tonClick={handleReset}\n\t\t\t\t\t\ttitle=\"重置\"\n\t\t\t\t\t>\n\t\t\t\t\t\t重置\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\n\t\tif (modal) {\n\t\t\tif (!open) return null;\n\t\t\treturn ReactDOM.createPortal(\n\t\t\t\t<div className=\"rpc_cropper_modal\" onClick={onCancel}>\n\t\t\t\t\t<div className=\"rpc_cropper_modal_card\" onClick={(e) => e.stopPropagation()}>\n\t\t\t\t\t\t<div className=\"rpc_cropper_modal_header\">\n\t\t\t\t\t\t\t<span>{title}</span>\n\t\t\t\t\t\t\t<CloseOutlined className=\"rpc_cropper_modal_close\" onClick={onCancel} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div style={{ padding: 16, background: '#141414' }}>{coreContent}</div>\n\t\t\t\t\t\t<div className=\"rpc_cropper_modal_footer\">\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tclassName=\"rpc_image_cropper_btn\"\n\t\t\t\t\t\t\t\tstyle={{ background: '#ffffff', color: '#262626', borderColor: '#d9d9d9' }}\n\t\t\t\t\t\t\t\tonClick={onCancel}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t取消\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tclassName=\"rpc_image_cropper_btn rpc_image_cropper_btn_primary\"\n\t\t\t\t\t\t\t\tonClick={handleConfirm}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<CheckOutlined /> 确定裁剪\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>,\n\t\t\t\tdocument.body,\n\t\t\t);\n\t\t}\n\n\t\treturn coreContent;\n\t},\n);\n\nImageCropper.displayName = 'ImageCropper';\n\nexport default ImageCropper;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkMBOWSS4B_cjs = require('./chunk-MBOWSS4B.cjs');
|
|
4
4
|
var react = require('react');
|
|
5
5
|
var ReactDOM = require('react-dom');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -90,7 +90,7 @@ var ContextMenu = ({
|
|
|
90
90
|
item.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_context_menu_item_icon", children: item.icon }),
|
|
91
91
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_context_menu_item_label", children: item.label }),
|
|
92
92
|
item.shortcut && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_context_menu_item_shortcut", children: item.shortcut }),
|
|
93
|
-
hasSub && /* @__PURE__ */ jsxRuntime.jsx(
|
|
93
|
+
hasSub && /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.RightOutlined, { className: "rpc_context_menu_item_arrow" }),
|
|
94
94
|
hasSub && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_context_menu_submenu", children: item.children.map((sub) => renderMenuItem(sub)) })
|
|
95
95
|
] }, item.key);
|
|
96
96
|
};
|
|
@@ -127,5 +127,5 @@ var ContextMenu = ({
|
|
|
127
127
|
var ContextMenu_default = ContextMenu;
|
|
128
128
|
|
|
129
129
|
exports.ContextMenu_default = ContextMenu_default;
|
|
130
|
-
//# sourceMappingURL=chunk-
|
|
131
|
-
//# sourceMappingURL=chunk-
|
|
130
|
+
//# sourceMappingURL=chunk-ZUW3XLZQ.cjs.map
|
|
131
|
+
//# sourceMappingURL=chunk-ZUW3XLZQ.cjs.map
|