react-public-components 1.2.8 → 1.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +181 -109
- package/dist/AnnouncementBar/index.cjs +3 -3
- package/dist/AnnouncementBar/index.js +2 -2
- package/dist/AudioPlayer/index.cjs +3 -3
- package/dist/AudioPlayer/index.js +2 -2
- package/dist/CeilingBox/index.cjs +2 -2
- package/dist/CeilingBox/index.js +1 -1
- package/dist/CodeSnippet/index.cjs +3 -3
- package/dist/CodeSnippet/index.js +2 -2
- package/dist/CollapseBox/index.cjs +3 -3
- package/dist/CollapseBox/index.js +2 -2
- package/dist/ColorPicker/index.cjs +5 -5
- package/dist/ColorPicker/index.js +2 -2
- package/dist/ContextMenu/index.cjs +3 -3
- package/dist/ContextMenu/index.js +2 -2
- package/dist/CopyButton/index.cjs +3 -3
- package/dist/CopyButton/index.js +2 -2
- package/dist/CronPicker/index.cjs +4 -4
- package/dist/CronPicker/index.js +3 -3
- package/dist/DebounceSelect/index.cjs +3 -3
- package/dist/DebounceSelect/index.js +2 -2
- package/dist/DisabledBox/index.cjs +3 -3
- package/dist/DisabledBox/index.js +2 -2
- package/dist/DragSortList/index.cjs +3 -3
- package/dist/DragSortList/index.js +2 -2
- package/dist/FilePreviewer/index.cjs +4 -4
- package/dist/FilePreviewer/index.js +2 -2
- package/dist/Fullscreen/index.cjs +3 -3
- package/dist/Fullscreen/index.js +2 -2
- package/dist/GuidedTour/index.cjs +3 -3
- package/dist/GuidedTour/index.js +2 -2
- package/dist/ImageCropper/index.cjs +3 -3
- package/dist/ImageCropper/index.js +2 -2
- package/dist/InfiniteScrollList/index.cjs +3 -3
- package/dist/InfiniteScrollList/index.js +2 -2
- package/dist/JsonEditor/index.cjs +4 -4
- package/dist/JsonEditor/index.js +3 -3
- package/dist/KeyValEditor/index.cjs +3 -3
- package/dist/KeyValEditor/index.js +2 -2
- package/dist/LazyLoadBox/index.cjs +3 -3
- package/dist/LazyLoadBox/index.js +1 -1
- package/dist/PasswordStrength/index.cjs +4 -4
- package/dist/PasswordStrength/index.js +2 -2
- package/dist/PdfViewer/index.cjs +3 -3
- package/dist/PdfViewer/index.js +2 -2
- package/dist/PeriodSelect/index.cjs +4 -4
- package/dist/PeriodSelect/index.js +1 -1
- package/dist/QrCodeCard/index.cjs +3 -3
- package/dist/QrCodeCard/index.js +2 -2
- package/dist/SensitiveMask/index.cjs +5 -5
- package/dist/SensitiveMask/index.js +3 -3
- package/dist/Splitter/index.cjs +3 -3
- package/dist/Splitter/index.js +2 -2
- package/dist/TagInput/index.cjs +3 -3
- package/dist/TagInput/index.js +2 -2
- package/dist/TextEllipsis/index.cjs +4 -4
- package/dist/TextEllipsis/index.js +3 -3
- package/dist/TreeTransfer/index.cjs +3 -3
- package/dist/TreeTransfer/index.js +2 -2
- package/dist/VideoPlayer/index.cjs +3 -3
- package/dist/VideoPlayer/index.js +2 -2
- package/dist/{chunk-56VELHCH.js → chunk-2SEHUMQH.js} +3 -3
- package/dist/{chunk-56VELHCH.js.map → chunk-2SEHUMQH.js.map} +1 -1
- package/dist/{chunk-2INP6NM4.js → chunk-3WLGM74R.js} +3 -3
- package/dist/{chunk-2INP6NM4.js.map → chunk-3WLGM74R.js.map} +1 -1
- package/dist/{chunk-2IDVNTKR.js → chunk-537T6BR3.js} +32 -8
- package/dist/chunk-537T6BR3.js.map +1 -0
- package/dist/{chunk-XUAHWX6B.js → chunk-5QEXX32M.js} +3 -3
- package/dist/{chunk-XUAHWX6B.js.map → chunk-5QEXX32M.js.map} +1 -1
- package/dist/{chunk-ETFLLRTO.js → chunk-5XTIASJH.js} +3 -3
- package/dist/{chunk-ETFLLRTO.js.map → chunk-5XTIASJH.js.map} +1 -1
- package/dist/{chunk-TNZ2OLGW.cjs → chunk-6KODABJW.cjs} +4 -4
- package/dist/{chunk-TNZ2OLGW.cjs.map → chunk-6KODABJW.cjs.map} +1 -1
- package/dist/{chunk-ZWKUHYTV.cjs → chunk-6WCWYSFU.cjs} +6 -6
- package/dist/{chunk-ZWKUHYTV.cjs.map → chunk-6WCWYSFU.cjs.map} +1 -1
- package/dist/{chunk-Y54KVULF.js → chunk-7FGE7NRH.js} +11 -4
- package/dist/chunk-7FGE7NRH.js.map +1 -0
- package/dist/{chunk-VJOO2DG3.cjs → chunk-7NXCDDBT.cjs} +8 -8
- package/dist/{chunk-VJOO2DG3.cjs.map → chunk-7NXCDDBT.cjs.map} +1 -1
- package/dist/{chunk-VYPIRVL4.js → chunk-7W7PCWMM.js} +2 -2
- package/dist/chunk-7W7PCWMM.js.map +1 -0
- package/dist/{chunk-TUEVILTA.cjs → chunk-BKHKPZ6O.cjs} +5 -5
- package/dist/{chunk-TUEVILTA.cjs.map → chunk-BKHKPZ6O.cjs.map} +1 -1
- package/dist/{chunk-AXPVN2OO.js → chunk-BXLUH6FE.js} +3 -3
- package/dist/{chunk-AXPVN2OO.js.map → chunk-BXLUH6FE.js.map} +1 -1
- package/dist/{chunk-PYCSRJSF.cjs → chunk-CWG7A5DS.cjs} +7 -7
- package/dist/{chunk-PYCSRJSF.cjs.map → chunk-CWG7A5DS.cjs.map} +1 -1
- package/dist/{chunk-YP4XTMK3.cjs → chunk-DTJEY3BC.cjs} +4 -4
- package/dist/{chunk-YP4XTMK3.cjs.map → chunk-DTJEY3BC.cjs.map} +1 -1
- package/dist/{chunk-2EIAWXFA.cjs → chunk-DWG4FUDX.cjs} +5 -5
- package/dist/{chunk-2EIAWXFA.cjs.map → chunk-DWG4FUDX.cjs.map} +1 -1
- package/dist/{chunk-IF4XAUV3.js → chunk-E6EJLQL7.js} +3 -3
- package/dist/{chunk-IF4XAUV3.js.map → chunk-E6EJLQL7.js.map} +1 -1
- package/dist/{chunk-RFTYEXKU.js → chunk-EMQHYD3G.js} +6 -14
- package/dist/chunk-EMQHYD3G.js.map +1 -0
- package/dist/{chunk-O4EABET3.js → chunk-ERPKXNWM.js} +10 -4
- package/dist/chunk-ERPKXNWM.js.map +1 -0
- package/dist/{chunk-QRZ2GVVJ.js → chunk-FJ33L5D7.js} +3 -3
- package/dist/{chunk-QRZ2GVVJ.js.map → chunk-FJ33L5D7.js.map} +1 -1
- package/dist/{chunk-4KMVABTM.js → chunk-FQHPCK3S.js} +4 -6
- package/dist/chunk-FQHPCK3S.js.map +1 -0
- package/dist/{chunk-OLLVIQPL.js → chunk-FT2XGH4D.js} +3 -3
- package/dist/{chunk-OLLVIQPL.js.map → chunk-FT2XGH4D.js.map} +1 -1
- package/dist/{chunk-EMT4NUI5.js → chunk-G76ELHWZ.js} +3 -3
- package/dist/{chunk-EMT4NUI5.js.map → chunk-G76ELHWZ.js.map} +1 -1
- package/dist/{chunk-QU33CY3M.cjs → chunk-IHUBENM6.cjs} +6 -14
- package/dist/chunk-IHUBENM6.cjs.map +1 -0
- package/dist/{chunk-M4FZJALR.js → chunk-J3C46E6G.js} +4 -4
- package/dist/{chunk-M4FZJALR.js.map → chunk-J3C46E6G.js.map} +1 -1
- package/dist/{chunk-UIU6VCEQ.cjs → chunk-JLW5ISIR.cjs} +6 -3
- package/dist/chunk-JLW5ISIR.cjs.map +1 -0
- package/dist/{chunk-UAUP5TJK.cjs → chunk-K4LVWWEE.cjs} +5 -5
- package/dist/{chunk-UAUP5TJK.cjs.map → chunk-K4LVWWEE.cjs.map} +1 -1
- package/dist/{chunk-P5CS7V4W.js → chunk-KJ537QZS.js} +3 -3
- package/dist/{chunk-P5CS7V4W.js.map → chunk-KJ537QZS.js.map} +1 -1
- package/dist/{chunk-U2EBNBGK.cjs → chunk-KSXCVQU3.cjs} +4 -4
- package/dist/{chunk-U2EBNBGK.cjs.map → chunk-KSXCVQU3.cjs.map} +1 -1
- package/dist/{chunk-LFGBZXQH.cjs → chunk-KWL5465Y.cjs} +4 -4
- package/dist/{chunk-LFGBZXQH.cjs.map → chunk-KWL5465Y.cjs.map} +1 -1
- package/dist/{chunk-TUDLE3RT.cjs → chunk-KYM35LPD.cjs} +13 -15
- package/dist/chunk-KYM35LPD.cjs.map +1 -0
- package/dist/{chunk-RN5WU7KA.cjs → chunk-L76JMQUH.cjs} +7 -7
- package/dist/{chunk-RN5WU7KA.cjs.map → chunk-L76JMQUH.cjs.map} +1 -1
- package/dist/{chunk-AHTRLNYK.cjs → chunk-LPDHDZTA.cjs} +5 -5
- package/dist/{chunk-AHTRLNYK.cjs.map → chunk-LPDHDZTA.cjs.map} +1 -1
- package/dist/{chunk-JHVPDKBM.cjs → chunk-LRUSUUPJ.cjs} +6 -6
- package/dist/{chunk-JHVPDKBM.cjs.map → chunk-LRUSUUPJ.cjs.map} +1 -1
- package/dist/{chunk-MQJBUHDB.js → chunk-MWVME3UR.js} +3 -3
- package/dist/{chunk-MQJBUHDB.js.map → chunk-MWVME3UR.js.map} +1 -1
- package/dist/{chunk-OONBZRPV.cjs → chunk-N4UF72SJ.cjs} +4 -4
- package/dist/{chunk-OONBZRPV.cjs.map → chunk-N4UF72SJ.cjs.map} +1 -1
- package/dist/{chunk-EKDJPOA3.cjs → chunk-NKLHMUGB.cjs} +5 -5
- package/dist/{chunk-EKDJPOA3.cjs.map → chunk-NKLHMUGB.cjs.map} +1 -1
- package/dist/{chunk-M3GQ7RCV.cjs → chunk-NZNNDZW4.cjs} +4 -4
- package/dist/{chunk-M3GQ7RCV.cjs.map → chunk-NZNNDZW4.cjs.map} +1 -1
- package/dist/{chunk-UZB7GOEI.cjs → chunk-OLIPC6HC.cjs} +4 -4
- package/dist/{chunk-UZB7GOEI.cjs.map → chunk-OLIPC6HC.cjs.map} +1 -1
- package/dist/{chunk-PTFKE67K.js → chunk-OOH3YSNC.js} +3 -3
- package/dist/{chunk-PTFKE67K.js.map → chunk-OOH3YSNC.js.map} +1 -1
- package/dist/{chunk-Q7OVUH5K.js → chunk-OXBOWSLR.js} +3 -3
- package/dist/{chunk-Q7OVUH5K.js.map → chunk-OXBOWSLR.js.map} +1 -1
- package/dist/{chunk-EDNBPLUS.js → chunk-P7P3UVGN.js} +3 -3
- package/dist/{chunk-EDNBPLUS.js.map → chunk-P7P3UVGN.js.map} +1 -1
- package/dist/{chunk-ANTFNDH4.js → chunk-Q2M3ZE7E.js} +3 -3
- package/dist/{chunk-ANTFNDH4.js.map → chunk-Q2M3ZE7E.js.map} +1 -1
- package/dist/{chunk-W5JA3YTT.js → chunk-Q3Z6OWKR.js} +3 -3
- package/dist/{chunk-W5JA3YTT.js.map → chunk-Q3Z6OWKR.js.map} +1 -1
- package/dist/{chunk-R4V3EJVP.cjs → chunk-QMLDK2DL.cjs} +32 -8
- package/dist/chunk-QMLDK2DL.cjs.map +1 -0
- package/dist/{chunk-PUMVD7CP.js → chunk-QVTQQB6M.js} +3 -3
- package/dist/{chunk-PUMVD7CP.js.map → chunk-QVTQQB6M.js.map} +1 -1
- package/dist/{chunk-ZCBT56AG.js → chunk-RBX6VEKI.js} +3 -3
- package/dist/{chunk-ZCBT56AG.js.map → chunk-RBX6VEKI.js.map} +1 -1
- package/dist/{chunk-4TMBGQQE.cjs → chunk-S35SIDXQ.cjs} +5 -5
- package/dist/{chunk-4TMBGQQE.cjs.map → chunk-S35SIDXQ.cjs.map} +1 -1
- package/dist/{chunk-CURWX7OY.js → chunk-SCVOSNWF.js} +3 -3
- package/dist/{chunk-CURWX7OY.js.map → chunk-SCVOSNWF.js.map} +1 -1
- package/dist/{chunk-ZXMFWVE4.cjs → chunk-SG7Z432O.cjs} +11 -5
- package/dist/chunk-SG7Z432O.cjs.map +1 -0
- package/dist/{chunk-FZH5FL7X.cjs → chunk-THZFDBJM.cjs} +12 -5
- package/dist/chunk-THZFDBJM.cjs.map +1 -0
- package/dist/{chunk-HKALWFWZ.cjs → chunk-TWL3QEFV.cjs} +5 -5
- package/dist/{chunk-HKALWFWZ.cjs.map → chunk-TWL3QEFV.cjs.map} +1 -1
- package/dist/{chunk-XLOGMDAQ.js → chunk-U4VZGKQV.js} +3 -3
- package/dist/{chunk-XLOGMDAQ.js.map → chunk-U4VZGKQV.js.map} +1 -1
- package/dist/{chunk-EJYTTSW6.js → chunk-VAU4USHW.js} +3 -3
- package/dist/{chunk-EJYTTSW6.js.map → chunk-VAU4USHW.js.map} +1 -1
- package/dist/{chunk-JNA5AQ2K.js → chunk-VY4XERM4.js} +3 -3
- package/dist/{chunk-JNA5AQ2K.js.map → chunk-VY4XERM4.js.map} +1 -1
- package/dist/{chunk-V55FEQYU.cjs → chunk-W52O3Y2I.cjs} +2 -2
- package/dist/chunk-W52O3Y2I.cjs.map +1 -0
- package/dist/{chunk-7ZBA4NHH.cjs → chunk-W7LZVHTA.cjs} +4 -4
- package/dist/{chunk-7ZBA4NHH.cjs.map → chunk-W7LZVHTA.cjs.map} +1 -1
- package/dist/{chunk-5Q7THN6M.js → chunk-WLAHW5RF.js} +6 -3
- package/dist/chunk-WLAHW5RF.js.map +1 -0
- package/dist/{chunk-IPS7PC3M.cjs → chunk-X5X4YABT.cjs} +13 -13
- package/dist/{chunk-IPS7PC3M.cjs.map → chunk-X5X4YABT.cjs.map} +1 -1
- package/dist/{chunk-WKF4C6TJ.js → chunk-XLPOXPOV.js} +3 -3
- package/dist/{chunk-WKF4C6TJ.js.map → chunk-XLPOXPOV.js.map} +1 -1
- package/dist/{chunk-QP3RKA4J.cjs → chunk-XM6J7F5X.cjs} +4 -4
- package/dist/{chunk-QP3RKA4J.cjs.map → chunk-XM6J7F5X.cjs.map} +1 -1
- package/dist/{chunk-ED3ZG2VX.cjs → chunk-ZR56U55S.cjs} +5 -5
- package/dist/{chunk-ED3ZG2VX.cjs.map → chunk-ZR56U55S.cjs.map} +1 -1
- package/dist/{chunk-77ANKL4K.cjs → chunk-ZRNAJCZI.cjs} +8 -8
- package/dist/{chunk-77ANKL4K.cjs.map → chunk-ZRNAJCZI.cjs.map} +1 -1
- package/dist/index.cjs +71 -71
- package/dist/index.js +31 -31
- package/dist/src/icons.d.ts +6 -6
- package/dist/src/index.d.ts +2 -2
- package/package.json +1 -1
- package/dist/chunk-2IDVNTKR.js.map +0 -1
- package/dist/chunk-4KMVABTM.js.map +0 -1
- package/dist/chunk-5Q7THN6M.js.map +0 -1
- package/dist/chunk-FZH5FL7X.cjs.map +0 -1
- package/dist/chunk-O4EABET3.js.map +0 -1
- package/dist/chunk-QU33CY3M.cjs.map +0 -1
- package/dist/chunk-R4V3EJVP.cjs.map +0 -1
- package/dist/chunk-RFTYEXKU.js.map +0 -1
- package/dist/chunk-TUDLE3RT.cjs.map +0 -1
- package/dist/chunk-UIU6VCEQ.cjs.map +0 -1
- package/dist/chunk-V55FEQYU.cjs.map +0 -1
- package/dist/chunk-VYPIRVL4.js.map +0 -1
- package/dist/chunk-Y54KVULF.js.map +0 -1
- package/dist/chunk-ZXMFWVE4.cjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../LazyLoadBox/index.tsx"],"names":["forwardRef","useRef","useState","useImperativeHandle","useEffect","jsx"],"mappings":"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","file":"chunk-V55FEQYU.cjs","sourcesContent":["import React, {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tforwardRef,\n\tCSSProperties,\n\tReactNode,\n\tRefObject,\n} from 'react';\nimport './index.less';\n\nexport interface LazyLoadBoxRef {\n\t/** 立即强制触发加载真实内容 */\n\tload: () => void;\n\t/** 重置加载状态(仅在 once=false 或需要重新触发时可用) */\n\treset: () => void;\n\t/** 获取当前元素是否在可视/预加载区域内 */\n\tgetInView: () => boolean;\n\t/** 获取当前是否已经完成过加载 */\n\tgetHasLoaded: () => boolean;\n\t/** 获取容器原生 DOM 节点 */\n\tgetDOMNode: () => HTMLDivElement | null;\n}\n\nexport interface LazyRenderProps {\n\t/** 当前是否在视口范围内 */\n\tisInView: boolean;\n\t/** 是否已经触发过加载并完成挂载 */\n\thasLoaded: boolean;\n\t/** 重新触发加载函数 */\n\tload: () => void;\n}\n\nexport type LazyOffset = number | string | [number | string, number | string] | [number | string, number | string, number | string, number | string];\n\nexport interface LazyLoadBoxProps {\n\t/**\n\t * 子组件或 Render Props\n\t * 当为普通组件时:未进入视口时不渲染,进入视口预加载范围后挂载并触发其内部网络请求与渲染;\n\t * 当为函数时:接收 ({ isInView, hasLoaded, load }) 回传参数\n\t */\n\tchildren?: ReactNode | ((props: LazyRenderProps) => ReactNode);\n\t/**\n\t * 距离视口/滚动条多远时提前触发加载(单位 px,或标准 rootMargin 字符串/数组)\n\t * 例如:\n\t * - 纯数字:offset={200} (表示上下预加载 200px)\n\t * - 字符串:offset=\"200px 0px\"\n\t * - 数组:offset={[100, 200]} (表示上下预加载距离)\n\t * 默认:150\n\t */\n\toffset?: LazyOffset;\n\t/**\n\t * 未加载前的预估高度/最小高度,防止页面未渲染时高度坍塌导致滚动条剧烈跳动(CLS)\n\t * 默认:180\n\t */\n\theight?: number | string;\n\t/**\n\t * 预估宽度/最小宽度(可选)\n\t */\n\twidth?: number | string;\n\t/**\n\t * 未加载时显示的占位内容(如骨架屏或加载动画)\n\t * 默认提供内置的高品质流光呼吸骨架屏\n\t */\n\tplaceholder?: ReactNode;\n\t/**\n\t * 是否显示默认占位骨架屏(当 placeholder 未指定时生效)\n\t * 默认:true\n\t */\n\tskeleton?: boolean;\n\t/**\n\t * 骨架屏是否显示微边框\n\t * 默认:false\n\t */\n\tbordered?: boolean;\n\t/**\n\t * 是否只加载一次(默认 true:进入视口后保持挂载,移出不会销毁与重复请求)\n\t * 若设为 false,则移出视口时会自动卸载,再次移入时重新挂载\n\t */\n\tonce?: boolean;\n\t/**\n\t * 强制立即渲染(忽略视口距离,用于一键展开、批量导出、页面打印等场景)\n\t */\n\tforceRender?: boolean;\n\t/**\n\t * 指定局部滚动容器(支持 DOM 节点、RefObject、选择器字符串或 getter 函数),默认监听 window 视口\n\t */\n\tscrollContainer?:\n\t\t| HTMLElement\n\t\t| null\n\t\t| string\n\t\t| RefObject<HTMLElement | null>\n\t\t| (() => HTMLElement | null);\n\t/**\n\t * 交叉比例阈值(0 ~ 1),默认 0\n\t */\n\tthreshold?: number | number[];\n\t/**\n\t * 是否在加载完成后启用平滑淡入动效\n\t * 默认:true\n\t */\n\tanimate?: boolean;\n\t/**\n\t * 服务端渲染(SSR)时是否直接渲染内容(默认为 false)\n\t */\n\tssr?: boolean;\n\t/**\n\t * 首次进入可视/预加载区域触发加载时的回调\n\t */\n\tonVisible?: () => void;\n\t/**\n\t * 可见性变化时的实时回调\n\t */\n\tonInViewChange?: (inView: boolean) => void;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\n/** 规范化 offset 为标准 CSS 4 方向 rootMargin 字符串 */\nfunction parseRootMargin(offset: LazyOffset): string {\n\tif (typeof offset === 'number') {\n\t\treturn `${offset}px 0px ${offset}px 0px`;\n\t}\n\tif (typeof offset === 'string') {\n\t\treturn offset;\n\t}\n\tif (Array.isArray(offset)) {\n\t\tif (offset.length === 2) {\n\t\t\tconst [v, h] = offset.map((item) => (typeof item === 'number' ? `${item}px` : item));\n\t\t\treturn `${v} ${h} ${v} ${h}`;\n\t\t}\n\t\tif (offset.length === 4) {\n\t\t\treturn offset.map((item) => (typeof item === 'number' ? `${item}px` : item)).join(' ');\n\t\t}\n\t}\n\treturn '150px 0px 150px 0px';\n}\n\nexport const LazyLoadBox = forwardRef<LazyLoadBoxRef, LazyLoadBoxProps>(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\toffset = 150,\n\t\t\theight = 180,\n\t\t\twidth,\n\t\t\tplaceholder,\n\t\t\tskeleton = true,\n\t\t\tbordered = false,\n\t\t\tonce = true,\n\t\t\tforceRender = false,\n\t\t\tscrollContainer,\n\t\t\tthreshold = 0,\n\t\t\tanimate = true,\n\t\t\tssr = false,\n\t\t\tonVisible,\n\t\t\tonInViewChange,\n\t\t\tclassName = '',\n\t\t\tstyle,\n\t\t},\n\t\tref\n\t) => {\n\t\tconst containerRef = useRef<HTMLDivElement | null>(null);\n\t\tconst [isInView, setIsInView] = useState<boolean>(Boolean(ssr || forceRender));\n\t\tconst [hasLoaded, setHasLoaded] = useState<boolean>(Boolean(ssr || forceRender));\n\t\tconst hasLoadedRef = useRef<boolean>(hasLoaded);\n\t\tconst onVisibleRef = useRef(onVisible);\n\t\tconst onInViewChangeRef = useRef(onInViewChange);\n\n\t\tonVisibleRef.current = onVisible;\n\t\tonInViewChangeRef.current = onInViewChange;\n\n\t\tconst rootMargin = parseRootMargin(offset);\n\n\t\tconst triggerLoad = () => {\n\t\t\tif (!hasLoadedRef.current) {\n\t\t\t\tsetHasLoaded(true);\n\t\t\t\tsetIsInView(true);\n\t\t\t\thasLoadedRef.current = true;\n\t\t\t\tonVisibleRef.current?.();\n\t\t\t}\n\t\t};\n\n\t\t// 暴露命令式操作方法\n\t\tuseImperativeHandle(ref, () => ({\n\t\t\tload: triggerLoad,\n\t\t\treset: () => {\n\t\t\t\tsetHasLoaded(false);\n\t\t\t\tsetIsInView(false);\n\t\t\t\thasLoadedRef.current = false;\n\t\t\t},\n\t\t\tgetInView: () => isInView,\n\t\t\tgetHasLoaded: () => hasLoadedRef.current,\n\t\t\tgetDOMNode: () => containerRef.current,\n\t\t}));\n\n\t\t// 响应 forceRender 受控属性变化\n\t\tuseEffect(() => {\n\t\t\tif (forceRender && !hasLoadedRef.current) {\n\t\t\t\ttriggerLoad();\n\t\t\t}\n\t\t}, [forceRender]);\n\n\t\tuseEffect(() => {\n\t\t\t// 如果已经加载且 once 为 true,则无需挂载 Observer\n\t\t\tif (hasLoaded && once) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst target = containerRef.current;\n\t\t\tif (!target) return;\n\n\t\t\t// 环境不支持 IntersectionObserver,降级为立即加载\n\t\t\tif (typeof window === 'undefined' || !('IntersectionObserver' in window)) {\n\t\t\t\ttriggerLoad();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// 解析 scrollContainer 根节点\n\t\t\tlet rootElement: HTMLElement | null = null;\n\t\t\tif (typeof scrollContainer === 'string') {\n\t\t\t\trootElement = document.querySelector(scrollContainer);\n\t\t\t} else if (typeof scrollContainer === 'function') {\n\t\t\t\trootElement = scrollContainer();\n\t\t\t} else if (scrollContainer && 'current' in scrollContainer) {\n\t\t\t\trootElement = (scrollContainer as RefObject<HTMLElement | null>).current;\n\t\t\t} else if (scrollContainer instanceof HTMLElement) {\n\t\t\t\trootElement = scrollContainer;\n\t\t\t}\n\n\t\t\tlet observer: IntersectionObserver | null = null;\n\n\t\t\ttry {\n\t\t\t\tobserver = new IntersectionObserver(\n\t\t\t\t\t(entries) => {\n\t\t\t\t\t\tentries.forEach((entry) => {\n\t\t\t\t\t\t\tconst inView = entry.isIntersecting;\n\t\t\t\t\t\t\tsetIsInView(inView);\n\t\t\t\t\t\t\tonInViewChangeRef.current?.(inView);\n\n\t\t\t\t\t\t\tif (inView) {\n\t\t\t\t\t\t\t\tif (!hasLoadedRef.current) {\n\t\t\t\t\t\t\t\t\tsetHasLoaded(true);\n\t\t\t\t\t\t\t\t\thasLoadedRef.current = true;\n\t\t\t\t\t\t\t\t\tonVisibleRef.current?.();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (once) {\n\t\t\t\t\t\t\t\t\tobserver?.unobserve(target);\n\t\t\t\t\t\t\t\t\tobserver?.disconnect();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (!once) {\n\t\t\t\t\t\t\t\t\tsetHasLoaded(false);\n\t\t\t\t\t\t\t\t\thasLoadedRef.current = false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\troot: rootElement,\n\t\t\t\t\t\trootMargin,\n\t\t\t\t\t\tthreshold,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tobserver.observe(target);\n\t\t\t} catch {\n\t\t\t\t// 如果传参格式或环境发生意外,安全降级立即触发\n\t\t\t\ttriggerLoad();\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\tif (observer) {\n\t\t\t\t\tobserver.unobserve(target);\n\t\t\t\t\tobserver.disconnect();\n\t\t\t\t}\n\t\t\t};\n\t\t}, [rootMargin, threshold, once, hasLoaded, scrollContainer]);\n\n\t\tconst formattedHeight = typeof height === 'number' ? `${height}px` : height;\n\t\tconst formattedWidth = typeof width === 'number' ? `${width}px` : width;\n\n\t\t// 默认骨架占位\n\t\tconst defaultPlaceholder = skeleton ? (\n\t\t\t<div\n\t\t\t\tclassName={`rpc_lazy_load_placeholder ${bordered ? 'rpc_lazy_load_placeholder_bordered' : ''}`}\n\t\t\t\tstyle={{\n\t\t\t\t\tminHeight: formattedHeight,\n\t\t\t\t\twidth: formattedWidth,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div className=\"rpc_lazy_load_skeleton\" />\n\t\t\t</div>\n\t\t) : (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tminHeight: formattedHeight,\n\t\t\t\t\twidth: formattedWidth,\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\n\t\tconst shouldRenderContent = hasLoaded || (once ? hasLoaded : isInView);\n\n\t\tconst containerClass = [\n\t\t\t'rpc_lazy_load_box',\n\t\t\tshouldRenderContent ? 'rpc_lazy_load_loaded' : 'rpc_lazy_load_pending',\n\t\t\tanimate && shouldRenderContent ? 'rpc_lazy_load_fade_in' : '',\n\t\t\tclassName,\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ');\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={containerRef}\n\t\t\t\tclassName={containerClass}\n\t\t\t\tstyle={{\n\t\t\t\t\tminHeight: shouldRenderContent ? undefined : formattedHeight,\n\t\t\t\t\twidth: formattedWidth,\n\t\t\t\t\t...style,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{shouldRenderContent ? (\n\t\t\t\t\ttypeof children === 'function' ? (\n\t\t\t\t\t\t(children as (props: LazyRenderProps) => ReactNode)({\n\t\t\t\t\t\t\tisInView,\n\t\t\t\t\t\t\thasLoaded,\n\t\t\t\t\t\t\tload: triggerLoad,\n\t\t\t\t\t\t})\n\t\t\t\t\t) : (\n\t\t\t\t\t\tchildren\n\t\t\t\t\t)\n\t\t\t\t) : placeholder !== undefined ? (\n\t\t\t\t\tplaceholder\n\t\t\t\t) : (\n\t\t\t\t\tdefaultPlaceholder\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nLazyLoadBox.displayName = 'LazyLoadBox';\n\nexport default LazyLoadBox;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../LazyLoadBox/index.tsx"],"names":[],"mappings":"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","file":"chunk-VYPIRVL4.js","sourcesContent":["import React, {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tforwardRef,\n\tCSSProperties,\n\tReactNode,\n\tRefObject,\n} from 'react';\nimport './index.less';\n\nexport interface LazyLoadBoxRef {\n\t/** 立即强制触发加载真实内容 */\n\tload: () => void;\n\t/** 重置加载状态(仅在 once=false 或需要重新触发时可用) */\n\treset: () => void;\n\t/** 获取当前元素是否在可视/预加载区域内 */\n\tgetInView: () => boolean;\n\t/** 获取当前是否已经完成过加载 */\n\tgetHasLoaded: () => boolean;\n\t/** 获取容器原生 DOM 节点 */\n\tgetDOMNode: () => HTMLDivElement | null;\n}\n\nexport interface LazyRenderProps {\n\t/** 当前是否在视口范围内 */\n\tisInView: boolean;\n\t/** 是否已经触发过加载并完成挂载 */\n\thasLoaded: boolean;\n\t/** 重新触发加载函数 */\n\tload: () => void;\n}\n\nexport type LazyOffset = number | string | [number | string, number | string] | [number | string, number | string, number | string, number | string];\n\nexport interface LazyLoadBoxProps {\n\t/**\n\t * 子组件或 Render Props\n\t * 当为普通组件时:未进入视口时不渲染,进入视口预加载范围后挂载并触发其内部网络请求与渲染;\n\t * 当为函数时:接收 ({ isInView, hasLoaded, load }) 回传参数\n\t */\n\tchildren?: ReactNode | ((props: LazyRenderProps) => ReactNode);\n\t/**\n\t * 距离视口/滚动条多远时提前触发加载(单位 px,或标准 rootMargin 字符串/数组)\n\t * 例如:\n\t * - 纯数字:offset={200} (表示上下预加载 200px)\n\t * - 字符串:offset=\"200px 0px\"\n\t * - 数组:offset={[100, 200]} (表示上下预加载距离)\n\t * 默认:150\n\t */\n\toffset?: LazyOffset;\n\t/**\n\t * 未加载前的预估高度/最小高度,防止页面未渲染时高度坍塌导致滚动条剧烈跳动(CLS)\n\t * 默认:180\n\t */\n\theight?: number | string;\n\t/**\n\t * 预估宽度/最小宽度(可选)\n\t */\n\twidth?: number | string;\n\t/**\n\t * 未加载时显示的占位内容(如骨架屏或加载动画)\n\t * 默认提供内置的高品质流光呼吸骨架屏\n\t */\n\tplaceholder?: ReactNode;\n\t/**\n\t * 是否显示默认占位骨架屏(当 placeholder 未指定时生效)\n\t * 默认:true\n\t */\n\tskeleton?: boolean;\n\t/**\n\t * 骨架屏是否显示微边框\n\t * 默认:false\n\t */\n\tbordered?: boolean;\n\t/**\n\t * 是否只加载一次(默认 true:进入视口后保持挂载,移出不会销毁与重复请求)\n\t * 若设为 false,则移出视口时会自动卸载,再次移入时重新挂载\n\t */\n\tonce?: boolean;\n\t/**\n\t * 强制立即渲染(忽略视口距离,用于一键展开、批量导出、页面打印等场景)\n\t */\n\tforceRender?: boolean;\n\t/**\n\t * 指定局部滚动容器(支持 DOM 节点、RefObject、选择器字符串或 getter 函数),默认监听 window 视口\n\t */\n\tscrollContainer?:\n\t\t| HTMLElement\n\t\t| null\n\t\t| string\n\t\t| RefObject<HTMLElement | null>\n\t\t| (() => HTMLElement | null);\n\t/**\n\t * 交叉比例阈值(0 ~ 1),默认 0\n\t */\n\tthreshold?: number | number[];\n\t/**\n\t * 是否在加载完成后启用平滑淡入动效\n\t * 默认:true\n\t */\n\tanimate?: boolean;\n\t/**\n\t * 服务端渲染(SSR)时是否直接渲染内容(默认为 false)\n\t */\n\tssr?: boolean;\n\t/**\n\t * 首次进入可视/预加载区域触发加载时的回调\n\t */\n\tonVisible?: () => void;\n\t/**\n\t * 可见性变化时的实时回调\n\t */\n\tonInViewChange?: (inView: boolean) => void;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\n/** 规范化 offset 为标准 CSS 4 方向 rootMargin 字符串 */\nfunction parseRootMargin(offset: LazyOffset): string {\n\tif (typeof offset === 'number') {\n\t\treturn `${offset}px 0px ${offset}px 0px`;\n\t}\n\tif (typeof offset === 'string') {\n\t\treturn offset;\n\t}\n\tif (Array.isArray(offset)) {\n\t\tif (offset.length === 2) {\n\t\t\tconst [v, h] = offset.map((item) => (typeof item === 'number' ? `${item}px` : item));\n\t\t\treturn `${v} ${h} ${v} ${h}`;\n\t\t}\n\t\tif (offset.length === 4) {\n\t\t\treturn offset.map((item) => (typeof item === 'number' ? `${item}px` : item)).join(' ');\n\t\t}\n\t}\n\treturn '150px 0px 150px 0px';\n}\n\nexport const LazyLoadBox = forwardRef<LazyLoadBoxRef, LazyLoadBoxProps>(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\toffset = 150,\n\t\t\theight = 180,\n\t\t\twidth,\n\t\t\tplaceholder,\n\t\t\tskeleton = true,\n\t\t\tbordered = false,\n\t\t\tonce = true,\n\t\t\tforceRender = false,\n\t\t\tscrollContainer,\n\t\t\tthreshold = 0,\n\t\t\tanimate = true,\n\t\t\tssr = false,\n\t\t\tonVisible,\n\t\t\tonInViewChange,\n\t\t\tclassName = '',\n\t\t\tstyle,\n\t\t},\n\t\tref\n\t) => {\n\t\tconst containerRef = useRef<HTMLDivElement | null>(null);\n\t\tconst [isInView, setIsInView] = useState<boolean>(Boolean(ssr || forceRender));\n\t\tconst [hasLoaded, setHasLoaded] = useState<boolean>(Boolean(ssr || forceRender));\n\t\tconst hasLoadedRef = useRef<boolean>(hasLoaded);\n\t\tconst onVisibleRef = useRef(onVisible);\n\t\tconst onInViewChangeRef = useRef(onInViewChange);\n\n\t\tonVisibleRef.current = onVisible;\n\t\tonInViewChangeRef.current = onInViewChange;\n\n\t\tconst rootMargin = parseRootMargin(offset);\n\n\t\tconst triggerLoad = () => {\n\t\t\tif (!hasLoadedRef.current) {\n\t\t\t\tsetHasLoaded(true);\n\t\t\t\tsetIsInView(true);\n\t\t\t\thasLoadedRef.current = true;\n\t\t\t\tonVisibleRef.current?.();\n\t\t\t}\n\t\t};\n\n\t\t// 暴露命令式操作方法\n\t\tuseImperativeHandle(ref, () => ({\n\t\t\tload: triggerLoad,\n\t\t\treset: () => {\n\t\t\t\tsetHasLoaded(false);\n\t\t\t\tsetIsInView(false);\n\t\t\t\thasLoadedRef.current = false;\n\t\t\t},\n\t\t\tgetInView: () => isInView,\n\t\t\tgetHasLoaded: () => hasLoadedRef.current,\n\t\t\tgetDOMNode: () => containerRef.current,\n\t\t}));\n\n\t\t// 响应 forceRender 受控属性变化\n\t\tuseEffect(() => {\n\t\t\tif (forceRender && !hasLoadedRef.current) {\n\t\t\t\ttriggerLoad();\n\t\t\t}\n\t\t}, [forceRender]);\n\n\t\tuseEffect(() => {\n\t\t\t// 如果已经加载且 once 为 true,则无需挂载 Observer\n\t\t\tif (hasLoaded && once) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst target = containerRef.current;\n\t\t\tif (!target) return;\n\n\t\t\t// 环境不支持 IntersectionObserver,降级为立即加载\n\t\t\tif (typeof window === 'undefined' || !('IntersectionObserver' in window)) {\n\t\t\t\ttriggerLoad();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// 解析 scrollContainer 根节点\n\t\t\tlet rootElement: HTMLElement | null = null;\n\t\t\tif (typeof scrollContainer === 'string') {\n\t\t\t\trootElement = document.querySelector(scrollContainer);\n\t\t\t} else if (typeof scrollContainer === 'function') {\n\t\t\t\trootElement = scrollContainer();\n\t\t\t} else if (scrollContainer && 'current' in scrollContainer) {\n\t\t\t\trootElement = (scrollContainer as RefObject<HTMLElement | null>).current;\n\t\t\t} else if (scrollContainer instanceof HTMLElement) {\n\t\t\t\trootElement = scrollContainer;\n\t\t\t}\n\n\t\t\tlet observer: IntersectionObserver | null = null;\n\n\t\t\ttry {\n\t\t\t\tobserver = new IntersectionObserver(\n\t\t\t\t\t(entries) => {\n\t\t\t\t\t\tentries.forEach((entry) => {\n\t\t\t\t\t\t\tconst inView = entry.isIntersecting;\n\t\t\t\t\t\t\tsetIsInView(inView);\n\t\t\t\t\t\t\tonInViewChangeRef.current?.(inView);\n\n\t\t\t\t\t\t\tif (inView) {\n\t\t\t\t\t\t\t\tif (!hasLoadedRef.current) {\n\t\t\t\t\t\t\t\t\tsetHasLoaded(true);\n\t\t\t\t\t\t\t\t\thasLoadedRef.current = true;\n\t\t\t\t\t\t\t\t\tonVisibleRef.current?.();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (once) {\n\t\t\t\t\t\t\t\t\tobserver?.unobserve(target);\n\t\t\t\t\t\t\t\t\tobserver?.disconnect();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (!once) {\n\t\t\t\t\t\t\t\t\tsetHasLoaded(false);\n\t\t\t\t\t\t\t\t\thasLoadedRef.current = false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\troot: rootElement,\n\t\t\t\t\t\trootMargin,\n\t\t\t\t\t\tthreshold,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tobserver.observe(target);\n\t\t\t} catch {\n\t\t\t\t// 如果传参格式或环境发生意外,安全降级立即触发\n\t\t\t\ttriggerLoad();\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\tif (observer) {\n\t\t\t\t\tobserver.unobserve(target);\n\t\t\t\t\tobserver.disconnect();\n\t\t\t\t}\n\t\t\t};\n\t\t}, [rootMargin, threshold, once, hasLoaded, scrollContainer]);\n\n\t\tconst formattedHeight = typeof height === 'number' ? `${height}px` : height;\n\t\tconst formattedWidth = typeof width === 'number' ? `${width}px` : width;\n\n\t\t// 默认骨架占位\n\t\tconst defaultPlaceholder = skeleton ? (\n\t\t\t<div\n\t\t\t\tclassName={`rpc_lazy_load_placeholder ${bordered ? 'rpc_lazy_load_placeholder_bordered' : ''}`}\n\t\t\t\tstyle={{\n\t\t\t\t\tminHeight: formattedHeight,\n\t\t\t\t\twidth: formattedWidth,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div className=\"rpc_lazy_load_skeleton\" />\n\t\t\t</div>\n\t\t) : (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tminHeight: formattedHeight,\n\t\t\t\t\twidth: formattedWidth,\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\n\t\tconst shouldRenderContent = hasLoaded || (once ? hasLoaded : isInView);\n\n\t\tconst containerClass = [\n\t\t\t'rpc_lazy_load_box',\n\t\t\tshouldRenderContent ? 'rpc_lazy_load_loaded' : 'rpc_lazy_load_pending',\n\t\t\tanimate && shouldRenderContent ? 'rpc_lazy_load_fade_in' : '',\n\t\t\tclassName,\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ');\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={containerRef}\n\t\t\t\tclassName={containerClass}\n\t\t\t\tstyle={{\n\t\t\t\t\tminHeight: shouldRenderContent ? undefined : formattedHeight,\n\t\t\t\t\twidth: formattedWidth,\n\t\t\t\t\t...style,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{shouldRenderContent ? (\n\t\t\t\t\ttypeof children === 'function' ? (\n\t\t\t\t\t\t(children as (props: LazyRenderProps) => ReactNode)({\n\t\t\t\t\t\t\tisInView,\n\t\t\t\t\t\t\thasLoaded,\n\t\t\t\t\t\t\tload: triggerLoad,\n\t\t\t\t\t\t})\n\t\t\t\t\t) : (\n\t\t\t\t\t\tchildren\n\t\t\t\t\t)\n\t\t\t\t) : placeholder !== undefined ? (\n\t\t\t\t\tplaceholder\n\t\t\t\t) : (\n\t\t\t\t\tdefaultPlaceholder\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nLazyLoadBox.displayName = 'LazyLoadBox';\n\nexport default LazyLoadBox;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../DragSortList/index.tsx"],"names":[],"mappings":"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","file":"chunk-Y54KVULF.js","sourcesContent":["import React, { useState, useRef, useEffect, ReactNode, CSSProperties } from 'react';\nimport ReactDOM from 'react-dom';\nimport { HolderOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface DragSortListProps<T> {\n\t/** 数据列表 */\n\titems: T[];\n\t/** 拖拽排序完成后的新列表回调 */\n\tonReorder: (newItems: T[], fromIndex: number, toIndex: number) => void;\n\t/** 提取唯一 Key */\n\tkeyExtractor: (item: T, index: number) => string | number;\n\t/** 自定义渲染单个列表项内容 */\n\trenderItem: (item: T, index: number, isDragging: boolean) => ReactNode;\n\t/** 是否仅允许通过左侧把手图标拖动,默认为 false */\n\thandleOnly?: boolean;\n\t/** 是否展示左侧拖拽把手图标,默认为 true */\n\tshowHandle?: boolean;\n\t/** 是否禁用拖拽排序,默认为 false */\n\tdisabled?: boolean;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nfunction arrayMove<T>(array: T[], from: number, to: number): T[] {\n\tconst next = [...array];\n\tconst [item] = next.splice(from, 1);\n\tnext.splice(to, 0, item);\n\treturn next;\n}\n\nfunction DragSortList<T>({\n\titems,\n\tonReorder,\n\tkeyExtractor,\n\trenderItem,\n\thandleOnly = false,\n\tshowHandle = true,\n\tdisabled = false,\n\tclassName = '',\n\tstyle,\n}: DragSortListProps<T>) {\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\n\t// 拖拽核心状态\n\tconst [dragIndex, setDragIndex] = useState<number | null>(null);\n\tconst [hoverIndex, setHoverIndex] = useState<number | null>(null);\n\tconst [pointerCoord, setPointerCoord] = useState<{ x: number; y: number } | null>(null);\n\tconst [grabOffset, setGrabOffset] = useState<{ x: number; y: number }>({ x: 0, y: 0 });\n\tconst [dragItemRect, setDragItemRect] = useState<{ width: number; height: number } | null>(null);\n\n\tconst dragIndexRef = useRef<number | null>(null);\n\tconst hoverIndexRef = useRef<number | null>(null);\n\tconst itemsRef = useRef<T[]>(items);\n\n\tdragIndexRef.current = dragIndex;\n\thoverIndexRef.current = hoverIndex;\n\titemsRef.current = items;\n\n\t// 处理鼠标按下发起拖拽\n\tconst handlePointerDown = (e: React.PointerEvent<HTMLElement>, index: number, fromHandle: boolean) => {\n\t\tif (disabled || e.button !== 0) return;\n\t\tif (handleOnly && !fromHandle) return;\n\n\t\tconst targetItemEl = e.currentTarget.closest('.rpc_drag_sort_list_item') as HTMLElement;\n\t\tif (!targetItemEl) return;\n\n\t\tconst rect = targetItemEl.getBoundingClientRect();\n\t\tconst offsetX = e.clientX - rect.left;\n\t\tconst offsetY = e.clientY - rect.top;\n\n\t\tsetGrabOffset({ x: offsetX, y: offsetY });\n\t\tsetDragItemRect({ width: rect.width, height: rect.height });\n\t\tsetPointerCoord({ x: e.clientX, y: e.clientY });\n\t\tsetDragIndex(index);\n\t\tsetHoverIndex(index);\n\n\t\tconst handlePointerMove = (moveEvent: PointerEvent) => {\n\t\t\tsetPointerCoord({ x: moveEvent.clientX, y: moveEvent.clientY });\n\n\t\t\tif (!containerRef.current) return;\n\t\t\tconst itemElements = Array.from(\n\t\t\t\tcontainerRef.current.querySelectorAll('.rpc_drag_sort_list_item'),\n\t\t\t) as HTMLElement[];\n\n\t\t\tif (itemElements.length === 0) return;\n\n\t\t\tconst pointerY = moveEvent.clientY;\n\t\t\tlet newHoverIndex = dragIndexRef.current ?? 0;\n\n\t\t\t// 精确检测鼠标当前所处的列表项插槽\n\t\t\tfor (let i = 0; i < itemElements.length; i++) {\n\t\t\t\tconst elRect = itemElements[i].getBoundingClientRect();\n\t\t\t\tif (pointerY >= elRect.top && pointerY <= elRect.bottom) {\n\t\t\t\t\tnewHoverIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (pointerY < itemElements[0].getBoundingClientRect().top) {\n\t\t\t\t\tnewHoverIndex = 0;\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (pointerY > itemElements[itemElements.length - 1].getBoundingClientRect().bottom) {\n\t\t\t\t\tnewHoverIndex = itemElements.length - 1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHoverIndex !== hoverIndexRef.current) {\n\t\t\t\tsetHoverIndex(newHoverIndex);\n\t\t\t}\n\t\t};\n\n\t\tconst handlePointerUp = () => {\n\t\t\twindow.removeEventListener('pointermove', handlePointerMove);\n\t\t\twindow.removeEventListener('pointerup', handlePointerUp);\n\n\t\t\tconst from = dragIndexRef.current;\n\t\t\tconst to = hoverIndexRef.current;\n\t\t\tconst currentList = itemsRef.current;\n\n\t\t\tif (from !== null && to !== null && from !== to && from >= 0 && to >= 0 && from < currentList.length && to < currentList.length) {\n\t\t\t\tconst reorderedList = arrayMove(currentList, from, to);\n\t\t\t\tonReorder(reorderedList, from, to);\n\t\t\t}\n\n\t\t\tsetDragIndex(null);\n\t\t\tsetHoverIndex(null);\n\t\t\tsetPointerCoord(null);\n\t\t\tsetDragItemRect(null);\n\t\t};\n\n\t\twindow.addEventListener('pointermove', handlePointerMove);\n\t\twindow.addEventListener('pointerup', handlePointerUp);\n\t};\n\n\t// 动态计算实时预览重排后的列表\n\tconst displayItems =\n\t\tdragIndex !== null && hoverIndex !== null && dragIndex !== hoverIndex\n\t\t\t? arrayMove(items, dragIndex, hoverIndex)\n\t\t\t: items;\n\n\tconst draggedItemData = dragIndex !== null ? items[dragIndex] : null;\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={containerRef}\n\t\t\t\tclassName={`rpc_drag_sort_list ${disabled ? 'rpc_drag_sort_list_disabled' : ''} ${className}`}\n\t\t\t\tstyle={style}\n\t\t\t>\n\t\t\t\t{displayItems.map((item, idx) => {\n\t\t\t\t\tconst key = keyExtractor(item, idx);\n\t\t\t\t\tconst isCurrentPlaceholder = dragIndex !== null && hoverIndex === idx;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\tonPointerDown={(e) => handlePointerDown(e, idx, false)}\n\t\t\t\t\t\t\tclassName={`rpc_drag_sort_list_item ${\n\t\t\t\t\t\t\t\tisCurrentPlaceholder ? 'rpc_drag_sort_list_item_placeholder' : ''\n\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\theight: isCurrentPlaceholder && dragItemRect ? dragItemRect.height : undefined,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* 当作为占位槽展示时,显示虚线卡槽 */}\n\t\t\t\t\t\t\t{isCurrentPlaceholder ? (\n\t\t\t\t\t\t\t\t<div className=\"rpc_drag_sort_list_placeholder_inner\">\n\t\t\t\t\t\t\t\t\t<div className=\"rpc_drag_sort_list_placeholder_line\" />\n\t\t\t\t\t\t\t\t</div>\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\t\t{showHandle && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"rpc_drag_sort_list_handle\"\n\t\t\t\t\t\t\t\t\t\t\tonPointerDown={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (handleOnly) {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\thandlePointerDown(e, idx, true);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\ttitle={disabled ? undefined : '按住拖动以重排序'}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<HolderOutlined />\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t<div className=\"rpc_drag_sort_list_content\">\n\t\t\t\t\t\t\t\t\t\t{renderItem(item, idx, false)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\n\t\t\t{/* 浮动随动幽灵卡片(全局悬浮脱离文档流,100% 顺畅跟手,绝对 0 跳动) */}\n\t\t\t{dragIndex !== null && pointerCoord && dragItemRect && draggedItemData && typeof document !== 'undefined' && (\n\t\t\t\tReactDOM.createPortal(\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"rpc_drag_sort_list_floating_ghost\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tleft: pointerCoord.x - grabOffset.x,\n\t\t\t\t\t\t\ttop: pointerCoord.y - grabOffset.y,\n\t\t\t\t\t\t\twidth: dragItemRect.width,\n\t\t\t\t\t\t\theight: dragItemRect.height,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{showHandle && (\n\t\t\t\t\t\t\t<span className=\"rpc_drag_sort_list_handle\" style={{ cursor: 'grabbing', color: '#1677ff' }}>\n\t\t\t\t\t\t\t\t<HolderOutlined />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<div className=\"rpc_drag_sort_list_content\" style={{ flex: 1 }}>\n\t\t\t\t\t\t\t{renderItem(draggedItemData, dragIndex, true)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>,\n\t\t\t\t\tdocument.body,\n\t\t\t\t)\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nexport default DragSortList;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../AnnouncementBar/index.tsx"],"names":["useState","jsxs","jsx","CloseOutlined"],"mappings":"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","file":"chunk-ZXMFWVE4.cjs","sourcesContent":["import React, { useState, useEffect, ReactNode, CSSProperties } from 'react';\nimport { CloseOutlined } from '../src/icons';\nimport './index.less';\n\nexport type AnnouncementType = 'primary' | 'warning' | 'success' | 'danger' | 'purple';\n\nexport interface AnnouncementBarProps {\n\t/** 横幅广播内容 */\n\tchildren: ReactNode;\n\t/** 预设主题色系:'primary' | 'warning' | 'success' | 'danger' | 'purple' */\n\ttype?: AnnouncementType;\n\t/** 自定义渐变或背景样式(传值时覆盖 type 预设) */\n\tbackground?: string;\n\t/** 自定义文字颜色 */\n\tcolor?: string;\n\t/** 是否开启智能吸顶 (position: sticky),默认为 false */\n\tsticky?: boolean;\n\t/** 是否开启固定吸顶 (position: fixed),默认为 false */\n\tfixed?: boolean;\n\t/** 吸顶时距离顶部的距离偏移(像素或 CSS 字符串),默认为 0 */\n\ttop?: number | string;\n\t/** 图层层级 z-index,默认为 1000 */\n\tzIndex?: number;\n\t/** 是否支持点击关闭,默认为 true */\n\tclosable?: boolean;\n\t/** 自定义关闭图标 */\n\tcloseIcon?: ReactNode;\n\t/** LocalStorage 记忆 Key(若传入则关闭后自动持久化记忆,不再重复弹出) */\n\tstorageKey?: string;\n\t/** 内容过长时是否开启跑马灯无缝水平滚动,默认为 false */\n\tmarquee?: boolean;\n\t/** 关闭时的回调函数 */\n\tonClose?: () => void;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst AnnouncementBar: React.FC<AnnouncementBarProps> = ({\n\tchildren,\n\ttype = 'primary',\n\tbackground,\n\tcolor,\n\tsticky = false,\n\tfixed = false,\n\ttop = 0,\n\tzIndex = 1000,\n\tclosable = true,\n\tcloseIcon,\n\tstorageKey,\n\tmarquee = false,\n\tonClose,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [visible, setVisible] = useState<boolean>(() => {\n\t\tif (typeof window !== 'undefined' && storageKey) {\n\t\t\ttry {\n\t\t\t\treturn localStorage.getItem(`rpc_announcement_${storageKey}`) !== 'closed';\n\t\t\t} catch {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t});\n\n\tconst [isClosing, setIsClosing] = useState<boolean>(false);\n\n\tif (!visible) return null;\n\n\tconst handleClose = () => {\n\t\tsetIsClosing(true);\n\n\t\tif (storageKey && typeof window !== 'undefined') {\n\t\t\ttry {\n\t\t\t\tlocalStorage.setItem(`rpc_announcement_${storageKey}`, 'closed');\n\t\t\t} catch {\n\t\t\t\t// ignore\n\t\t\t}\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tsetVisible(false);\n\t\t\tonClose?.();\n\t\t}, 250);\n\t};\n\n\tconst positionStyle: CSSProperties = {};\n\tif (fixed) {\n\t\tpositionStyle.position = 'fixed';\n\t\tpositionStyle.top = top;\n\t\tpositionStyle.left = 0;\n\t\tpositionStyle.right = 0;\n\t\tpositionStyle.zIndex = zIndex;\n\t} else if (sticky) {\n\t\tpositionStyle.position = 'sticky';\n\t\tpositionStyle.top = top;\n\t\tpositionStyle.zIndex = zIndex;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`rpc_announcement_bar rpc_announcement_bar_${type} ${\n\t\t\t\tsticky ? 'rpc_announcement_bar_sticky' : ''\n\t\t\t} ${fixed ? 'rpc_announcement_bar_fixed' : ''} ${\n\t\t\t\tisClosing ? 'rpc_announcement_bar_closing' : ''\n\t\t\t} ${className}`}\n\t\t\tstyle={{\n\t\t\t\tbackground: background || undefined,\n\t\t\t\tcolor: color || undefined,\n\t\t\t\t...positionStyle,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t>\n\t\t\t<div className=\"rpc_announcement_bar_body\">\n\t\t\t\t<div className={`rpc_announcement_bar_content ${marquee ? 'rpc_announcement_bar_marquee' : ''}`}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{closable && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclassName=\"rpc_announcement_bar_close\"\n\t\t\t\t\tonClick={handleClose}\n\t\t\t\t\ttitle=\"关闭通知\"\n\t\t\t\t>\n\t\t\t\t\t{closeIcon || <CloseOutlined style={{ fontSize: 13 }} />}\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default AnnouncementBar;\n"]}
|