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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../Splitter/index.tsx"],"names":["useRef","useState","useMemo","React","useCallback","useEffect","LeftOutlined","RightOutlined","UpOutlined","DownOutlined","jsx","jsxs"],"mappings":"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","file":"chunk-HKALWFWZ.cjs","sourcesContent":["import { DownOutlined, LeftOutlined, RightOutlined, UpOutlined } from '../src/icons';\nimport type {\n\tCSSProperties,\n\tReactElement,\n\tReactNode,\n\tPointerEvent as ReactPointerEvent,\n} from 'react';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nexport type SplitterSize = number | `${number}%`;\nexport type SplitterOrientation = 'horizontal' | 'vertical';\n\nexport type SplitterCollapsible =\n\t| boolean\n\t| {\n\t\t\tstart?: boolean;\n\t\t\tend?: boolean;\n\t\t\tshowCollapsibleIcon?: boolean | 'auto';\n\t };\n\n/**\n * Splitter.Panel 子面板组件属性\n */\nexport type SplitterPanelProps = {\n\t/** 面板内容节点 */\n\tchildren?: ReactNode;\n\t/** 面板自定义类名 */\n\tclassName?: string;\n\t/**\n\t * 折叠配置:\n\t * - `boolean`: 是否允许两端折叠\n\t * - `Object`: `{ start?: boolean; end?: boolean; showCollapsibleIcon?: boolean | 'auto' }`\n\t */\n\tcollapsible?: SplitterCollapsible;\n\t/** 面板初始默认尺寸(支持数字 px 或百分比字符串如 '40%') */\n\tdefaultSize?: SplitterSize;\n\t/** 折叠/隐藏时是否销毁面板内容节点(可覆盖 Splitter 根容器上的 destroyOnHidden 属性) */\n\tdestroyOnHidden?: boolean;\n\t/** 面板最大允许尺寸限制 */\n\tmax?: SplitterSize;\n\t/** 面板最小允许尺寸限制 */\n\tmin?: SplitterSize;\n\t/** 是否允许通过分隔条拖拽调整大小(默认 true) */\n\tresizable?: boolean;\n\t/** 面板受控尺寸 */\n\tsize?: SplitterSize;\n\t/** 面板自定义 CSS 样式 */\n\tstyle?: CSSProperties;\n};\n\nexport type SplitterSemanticDOM = 'root' | 'panel' | 'dragger';\n/** 语义化 DOM 结构标识 */\nexport type SemanticDOM = SplitterSemanticDOM;\n\nexport type SplitterStyles =\n\t| Partial<Record<SplitterSemanticDOM, CSSProperties>>\n\t| ((info: { props: SplitterProps }) => Partial<Record<SplitterSemanticDOM, CSSProperties>>);\n\nexport type SplitterClassNames =\n\t| Partial<Record<SplitterSemanticDOM, string>>\n\t| ((info: { props: SplitterProps }) => Partial<Record<SplitterSemanticDOM, string>>);\n\n/**\n * Splitter 根容器组件属性\n */\nexport type SplitterProps = {\n\t/** 面板集合(建议传入 Splitter.Panel) */\n\tchildren?: ReactNode;\n\t/** 容器根节点自定义类名 */\n\tclassName?: string;\n\t/** 用于自定义组件内部各语义化结构(root、panel、dragger)的 class,支持对象或函数 */\n\tclassNames?: SplitterClassNames;\n\t/** 折叠/隐藏时是否销毁面板内容节点(默认 false,保留组件状态) */\n\tdestroyOnHidden?: boolean;\n\t/** 拖拽分隔条的宽度/高度(单位 px,默认 4) */\n\tdraggerSize?: number;\n\t/** 是否在拖拽结束时才更新视图(默认 false) */\n\tlazy?: boolean;\n\t/** 面板展开或折叠状态改变时的回调 */\n\tonCollapse?: (collapsed: boolean[], sizes: number[]) => void;\n\t/** 拖拽过程中的实时尺寸变化回调 */\n\tonResize?: (sizes: number[]) => void;\n\t/** 拖拽结束、重置尺寸或折叠完成时的回调 */\n\tonResizeEnd?: (sizes: number[]) => void;\n\t/** 开始拖拽分隔条时的回调 */\n\tonResizeStart?: (sizes: number[]) => void;\n\t/** 双击拖拽条回调 */\n\tonDraggerDoubleClick?: (index: number) => void;\n\t/** 分屏方向:'horizontal'(水平分屏)| 'vertical'(垂直分屏),默认 'horizontal' */\n\torientation?: SplitterOrientation;\n\t/** 容器根节点自定义 CSS 样式 */\n\tstyle?: CSSProperties;\n\t/** 容器根节点及各语义化结构(root、panel、dragger)自定义 CSS 样式,支持对象或函数 */\n\tstyles?: SplitterStyles;\n\t/** 是否垂直分屏(orientation=\"vertical\" 的简写形式) 排列方向,与 orientation 同时存在,以 orientation 优先 */\n\tvertical?: boolean;\n\t/** 自定义拖拽手柄图标/节点 */\n\tdraggerIcon?: ReactNode;\n};\n\nexport interface ResolvedCollapsible {\n\tstart: boolean;\n\tend: boolean;\n\tshowCollapsibleIcon: boolean | 'auto';\n}\n\nconst getCollapsibleConfig = (collapsible?: SplitterCollapsible): ResolvedCollapsible => {\n\tif (!collapsible) {\n\t\treturn { start: false, end: false, showCollapsibleIcon: 'auto' };\n\t}\n\tif (typeof collapsible === 'boolean') {\n\t\treturn {\n\t\t\tstart: collapsible,\n\t\t\tend: collapsible,\n\t\t\tshowCollapsibleIcon: collapsible ? true : 'auto',\n\t\t};\n\t}\n\treturn {\n\t\tstart: collapsible.start ?? false,\n\t\tend: collapsible.end ?? false,\n\t\tshowCollapsibleIcon: collapsible.showCollapsibleIcon ?? true,\n\t};\n};\n\ntype SplitterComponent = React.FC<SplitterProps> & {\n\tPanel: React.FC<SplitterPanelProps>;\n};\n\nconst DEFAULT_DRAGGER_SIZE = 4;\nconst MIN_DRAG_SIZE = 40; // 手动拖拽调整大小时的默认最小限制 (px)\n\nconst SplitterPanel: React.FC<SplitterPanelProps> = ({ children }) => <>{children}</>;\n\nconst isPercentSize = (value: SplitterSize): value is `${number}%` =>\n\ttypeof value === 'string' && value.endsWith('%');\n\nconst parseSize = (value: SplitterSize | undefined, total: number, fallback: number) => {\n\tif (value === undefined) {\n\t\treturn fallback;\n\t}\n\n\tif (isPercentSize(value)) {\n\t\treturn (Number.parseFloat(value) / 100) * total;\n\t}\n\n\treturn Number(value);\n};\n\nconst roundSizes = (sizes: number[]) => sizes.map((size) => Math.round(size));\n\nconst getPointerPosition = (\n\tevent: PointerEvent | ReactPointerEvent,\n\torientation: SplitterOrientation,\n) => (orientation === 'horizontal' ? event.clientX : event.clientY);\n\nconst clamp = (value: number, min: number, max: number) => Math.min(Math.max(value, min), max);\n\nconst resolveSemanticStyles = (\n\tstyles: SplitterStyles | undefined,\n\tinfoProps: SplitterProps,\n): Partial<Record<SplitterSemanticDOM, CSSProperties>> => {\n\tif (!styles) {\n\t\treturn {};\n\t}\n\n\tconst resolved = typeof styles === 'function' ? styles({ props: infoProps }) : styles;\n\treturn resolved || {};\n};\n\nconst resolveSemanticClassNames = (\n\tclassNames: SplitterClassNames | undefined,\n\tinfoProps: SplitterProps,\n): Partial<Record<SplitterSemanticDOM, string>> => {\n\tif (!classNames) {\n\t\treturn {};\n\t}\n\n\tconst resolved = typeof classNames === 'function' ? classNames({ props: infoProps }) : classNames;\n\treturn resolved || {};\n};\n\nconst CustomSplitter: SplitterComponent = (props) => {\n\tconst {\n\t\tchildren,\n\t\tclassName,\n\t\tclassNames,\n\t\tdestroyOnHidden = false,\n\t\tdraggerIcon,\n\t\tdraggerSize = DEFAULT_DRAGGER_SIZE,\n\t\tlazy = false,\n\t\tonResize,\n\t\tonResizeEnd,\n\t\tonResizeStart,\n\t\tonCollapse,\n\t\tonDraggerDoubleClick,\n\t\torientation,\n\t\tstyle,\n\t\tstyles,\n\t\tvertical = false,\n\t} = props;\n\tconst resolvedOrientation = orientation ?? (vertical ? 'vertical' : 'horizontal');\n\tconst rootRef = useRef<HTMLDivElement>(null);\n\tconst sizesRef = useRef<number[]>([]);\n\tconst [containerSize, setContainerSize] = useState(0);\n\tconst [draggingIndex, setDraggingIndex] = useState<number | null>(null);\n\tconst [hoveredIndex, setHoveredIndex] = useState<number | null>(null);\n\tconst [hoveredCollapsePanelIndex, setHoveredCollapsePanelIndex] = useState<number | null>(null);\n\tconst [sizes, setSizes] = useState<number[]>([]);\n\n\tconst semanticStyles = useMemo(() => resolveSemanticStyles(styles, props), [styles, props]);\n\tconst semanticClassNames = useMemo(\n\t\t() => resolveSemanticClassNames(classNames, props),\n\t\t[classNames, props],\n\t);\n\n\tconst panels = useMemo(\n\t\t() =>\n\t\t\tReact.Children.toArray(children).filter(\n\t\t\t\tReact.isValidElement,\n\t\t\t) as ReactElement<SplitterPanelProps>[],\n\t\t[children],\n\t);\n\n\tconst trackSize = Math.max(0, containerSize - Math.max(0, panels.length - 1) * draggerSize);\n\n\tconst getPanelMin = useCallback(\n\t\t(index: number) => parseSize(panels[index]?.props.min, trackSize, 0),\n\t\t[panels, trackSize],\n\t);\n\n\tconst getPanelMax = useCallback(\n\t\t(index: number) => parseSize(panels[index]?.props.max, trackSize, trackSize),\n\t\t[panels, trackSize],\n\t);\n\n\tconst normalizeToTrack = useCallback(\n\t\t(nextSizes: number[]) => {\n\t\t\tif (!trackSize || !nextSizes.length) {\n\t\t\t\treturn nextSizes;\n\t\t\t}\n\n\t\t\tconst normalized = [...nextSizes];\n\t\t\tconst diff = trackSize - normalized.reduce((sum, size) => sum + size, 0);\n\t\t\tconst flexibleIndex = normalized.findIndex((size) => size > 0);\n\t\t\tif (flexibleIndex !== -1) {\n\t\t\t\tnormalized[flexibleIndex] += diff;\n\t\t\t}\n\n\t\t\treturn normalized.map((size, index) => {\n\t\t\t\t// 折叠状态(size <= 1)保持为 0,不受 min 限制干扰\n\t\t\t\tif (size <= 1) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\t// 拖拽过程从 0 拖出时,允许在 0 到 min 之间平滑过渡,不被强行跳变到 min\n\t\t\t\tif (size < getPanelMin(index)) {\n\t\t\t\t\treturn size;\n\t\t\t\t}\n\t\t\t\treturn clamp(size, getPanelMin(index), getPanelMax(index));\n\t\t\t});\n\t\t},\n\t\t[getPanelMax, getPanelMin, trackSize],\n\t);\n\n\tconst buildInitialSizes = useCallback(\n\t\t(previous?: number[]) => {\n\t\t\tif (!trackSize || !panels.length) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tif (previous?.length === panels.length) {\n\t\t\t\tconst previousTotal = previous.reduce((sum, size) => sum + size, 0);\n\t\t\t\tif (previousTotal > 0) {\n\t\t\t\t\treturn normalizeToTrack(previous.map((size) => (size / previousTotal) * trackSize));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst explicitSizes = panels.map((panel) =>\n\t\t\t\tparseSize(panel.props.size ?? panel.props.defaultSize, trackSize, -1),\n\t\t\t);\n\t\t\tconst usedSize = explicitSizes\n\t\t\t\t.filter((size) => size >= 0)\n\t\t\t\t.reduce((sum, size) => sum + size, 0);\n\t\t\tconst unsetCount = explicitSizes.filter((size) => size < 0).length;\n\t\t\tconst fallbackSize = unsetCount ? Math.max(0, (trackSize - usedSize) / unsetCount) : 0;\n\n\t\t\treturn normalizeToTrack(\n\t\t\t\texplicitSizes.map((size, index) =>\n\t\t\t\t\tclamp(size >= 0 ? size : fallbackSize, getPanelMin(index), getPanelMax(index)),\n\t\t\t\t),\n\t\t\t);\n\t\t},\n\t\t[getPanelMax, getPanelMin, normalizeToTrack, panels, trackSize],\n\t);\n\n\tconst updateSizes = useCallback(\n\t\t(nextSizes: number[], notify = true) => {\n\t\t\tconst normalized = normalizeToTrack(nextSizes);\n\t\t\tsetSizes(normalized);\n\t\t\tsizesRef.current = normalized;\n\t\t\tif (notify) {\n\t\t\t\tonResize?.(roundSizes(normalized));\n\t\t\t}\n\t\t},\n\t\t[normalizeToTrack, onResize],\n\t);\n\n\tuseEffect(() => {\n\t\tconst node = rootRef.current;\n\t\tif (!node) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst syncSize = () => {\n\t\t\tsetContainerSize(resolvedOrientation === 'horizontal' ? node.clientWidth : node.clientHeight);\n\t\t};\n\t\tsyncSize();\n\n\t\tconst observer = new ResizeObserver(syncSize);\n\t\tobserver.observe(node);\n\t\treturn () => observer.disconnect();\n\t}, [resolvedOrientation]);\n\n\tuseEffect(() => {\n\t\tsetSizes((previous) => {\n\t\t\tconst nextSizes = buildInitialSizes(previous);\n\t\t\tsizesRef.current = nextSizes;\n\t\t\treturn nextSizes;\n\t\t});\n\t}, [buildInitialSizes]);\n\n\tconst getResizedPair = useCallback(\n\t\t(sourceSizes: number[], index: number, delta: number) => {\n\t\t\tconst nextSizes = [...sourceSizes];\n\t\t\tconst isLeftCollapsed = sourceSizes[index] <= 1;\n\t\t\tconst isRightCollapsed = sourceSizes[index + 1] <= 1;\n\n\t\t\tconst leftMin = isLeftCollapsed ? 0 : getPanelMin(index);\n\t\t\tconst rightMin = isRightCollapsed ? 0 : getPanelMin(index + 1);\n\t\t\tconst leftMax = getPanelMax(index);\n\t\t\tconst rightMax = getPanelMax(index + 1);\n\n\t\t\tconst minDelta = Math.max(leftMin - sourceSizes[index], sourceSizes[index + 1] - rightMax);\n\t\t\tconst maxDelta = Math.min(leftMax - sourceSizes[index], sourceSizes[index + 1] - rightMin);\n\t\t\tconst safeDelta = clamp(delta, minDelta, maxDelta);\n\n\t\t\tnextSizes[index] = sourceSizes[index] + safeDelta;\n\t\t\tnextSizes[index + 1] = sourceSizes[index + 1] - safeDelta;\n\t\t\treturn normalizeToTrack(nextSizes);\n\t\t},\n\t\t[getPanelMax, getPanelMin, normalizeToTrack],\n\t);\n\n\tconst getInitialLockedIndex = useCallback(\n\t\t(sourceSizes: number[], startIndex: number, delta: number) => {\n\t\t\tif (sourceSizes[startIndex] <= 1 && delta < 0 && startIndex > 0) {\n\t\t\t\treturn startIndex - 1;\n\t\t\t}\n\t\t\tif (sourceSizes[startIndex + 1] <= 1 && delta > 0 && startIndex < sourceSizes.length - 2) {\n\t\t\t\treturn startIndex + 1;\n\t\t\t}\n\t\t\treturn startIndex;\n\t\t},\n\t\t[],\n\t);\n\n\tconst resizePair = useCallback(\n\t\t(index: number, delta: number, notify = true) => {\n\t\t\tconst targetIndex = getInitialLockedIndex(sizesRef.current, index, delta);\n\t\t\tupdateSizes(getResizedPair(sizesRef.current, targetIndex, delta), notify);\n\t\t},\n\t\t[getInitialLockedIndex, getResizedPair, updateSizes],\n\t);\n\n\tconst startResize = (index: number, event: ReactPointerEvent<HTMLDivElement>) => {\n\t\tif (panels[index].props.resizable === false || panels[index + 1].props.resizable === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tconst startPosition = getPointerPosition(event, resolvedOrientation);\n\t\tconst startSizes = [...sizesRef.current];\n\t\tlet latestSizes = startSizes;\n\t\tlet lockedIndex: number | null = null;\n\n\t\tsetDraggingIndex(index);\n\t\tonResizeStart?.(roundSizes(startSizes));\n\n\t\tconst handlePointerMove = (moveEvent: PointerEvent) => {\n\t\t\tconst delta = getPointerPosition(moveEvent, resolvedOrientation) - startPosition;\n\t\t\tif (delta === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (lockedIndex === null) {\n\t\t\t\tlockedIndex = getInitialLockedIndex(startSizes, index, delta);\n\t\t\t}\n\n\t\t\tlatestSizes = getResizedPair(startSizes, lockedIndex, delta);\n\t\t\tif (!lazy) {\n\t\t\t\tupdateSizes(latestSizes, true);\n\t\t\t}\n\t\t};\n\n\t\tconst handlePointerUp = () => {\n\t\t\tdocument.removeEventListener('pointermove', handlePointerMove);\n\t\t\tdocument.removeEventListener('pointerup', handlePointerUp);\n\t\t\tsetDraggingIndex(null);\n\t\t\tif (lazy) {\n\t\t\t\tupdateSizes(latestSizes, true);\n\t\t\t}\n\t\t\tconst currentSizes = roundSizes(sizesRef.current);\n\t\t\tconst currentCollapsed = sizesRef.current.map((size) => size <= 1);\n\t\t\tconst startCollapsed = startSizes.map((size) => size <= 1);\n\t\t\tif (currentCollapsed.some((c, i) => c !== startCollapsed[i])) {\n\t\t\t\tonCollapse?.(currentCollapsed, currentSizes);\n\t\t\t}\n\t\t\tonResizeEnd?.(currentSizes);\n\t\t};\n\n\t\tdocument.addEventListener('pointermove', handlePointerMove);\n\t\tdocument.addEventListener('pointerup', handlePointerUp);\n\t};\n\n\tconst toggleCollapse = (index: number, neighborIndex: number) => {\n\t\tconst nextSizes = [...sizesRef.current];\n\n\t\tif (nextSizes[index] > 1) {\n\t\t\tnextSizes[neighborIndex] += nextSizes[index];\n\t\t\tnextSizes[index] = 0;\n\t\t} else {\n\t\t\tconst initialSizes = buildInitialSizes();\n\t\t\tconst initialSize =\n\t\t\t\tinitialSizes[index] ??\n\t\t\t\tparseSize(panels[index].props.defaultSize, trackSize, trackSize / panels.length);\n\t\t\tconst restoredSize = clamp(initialSize, getPanelMin(index), getPanelMax(index));\n\t\t\tnextSizes[index] = restoredSize;\n\t\t\tnextSizes[neighborIndex] = Math.max(0, nextSizes[neighborIndex] - nextSizes[index]);\n\t\t}\n\n\t\tupdateSizes(nextSizes);\n\t\tconst currentSizes = roundSizes(sizesRef.current);\n\t\tconst currentCollapsed = sizesRef.current.map((size) => size <= 1);\n\t\tonCollapse?.(currentCollapsed, currentSizes);\n\t\tonResizeEnd?.(currentSizes);\n\t};\n\n\tconst resetSizes = () => {\n\t\tconst previousCollapsed = sizesRef.current.map((size) => size <= 1);\n\t\tconst nextSizes = buildInitialSizes();\n\t\tupdateSizes(nextSizes);\n\t\tconst currentSizes = roundSizes(sizesRef.current);\n\t\tconst currentCollapsed = sizesRef.current.map((size) => size <= 1);\n\t\tif (currentCollapsed.some((c, i) => c !== previousCollapsed[i])) {\n\t\t\tonCollapse?.(currentCollapsed, currentSizes);\n\t\t}\n\t\tonResizeEnd?.(currentSizes);\n\t};\n\n\tconst rootStyle: CSSProperties = {\n\t\tborder: '1px solid #f0f0f0',\n\t\tborderRadius: 8,\n\t\tboxSizing: 'border-box',\n\t\tdisplay: 'flex',\n\t\tflexDirection: resolvedOrientation === 'horizontal' ? 'row' : 'column',\n\t\theight: '100%',\n\t\tminHeight: 0,\n\t\toverflow: 'hidden',\n\t\tposition: 'relative',\n\t\twidth: '100%',\n\t\t...semanticStyles.root,\n\t\t...style,\n\t};\n\n\tconst renderCollapseButton = (\n\t\tdraggerIndex: number,\n\t\tpanelIndex: number,\n\t\tdirection: 'start' | 'end',\n\t) => {\n\t\tconst panel = panels[panelIndex];\n\t\tconst config = getCollapsibleConfig(panel?.props.collapsible);\n\t\tconst isAllowed = direction === 'start' ? config.start : config.end;\n\n\t\tif (!isAllowed || config.showCollapsibleIcon === false) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst neighborIndex = direction === 'start' ? panelIndex + 1 : panelIndex - 1;\n\t\tconst isCollapsed = (sizes[panelIndex] ?? 0) <= 1;\n\t\tconst isNeighborCollapsed = (sizes[neighborIndex] ?? 0) <= 1;\n\n\t\t// 自己折叠后隐藏;对侧面板折叠后也隐藏(避免与展开按钮重复/语义冲突)\n\t\tif (isCollapsed || isNeighborCollapsed) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// 展开时箭头指向面板将被折叠到的方向\n\t\tconst Icon =\n\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t? direction === 'start'\n\t\t\t\t\t? LeftOutlined\n\t\t\t\t\t: RightOutlined\n\t\t\t\t: direction === 'start'\n\t\t\t\t\t? UpOutlined\n\t\t\t\t\t: DownOutlined;\n\n\t\tconst isHorizontal = resolvedOrientation === 'horizontal';\n\t\tconst isAlwaysShow = config.showCollapsibleIcon === true;\n\t\tconst isHoveredOrDragging = hoveredIndex === draggerIndex || draggingIndex === draggerIndex;\n\t\tconst opacity = isAlwaysShow || isHoveredOrDragging ? 1 : 0;\n\t\tconst pointerEvents = isAlwaysShow || isHoveredOrDragging ? 'auto' : 'none';\n\n\t\tconst buttonTitle =\n\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t? direction === 'start'\n\t\t\t\t\t? '折叠左侧面板'\n\t\t\t\t\t: '折叠右侧面板'\n\t\t\t\t: direction === 'start'\n\t\t\t\t\t? '折叠上方面板'\n\t\t\t\t\t: '折叠下方面板';\n\n\t\treturn (\n\t\t\t<button\n\t\t\t\taria-label={buttonTitle}\n\t\t\t\ttitle={buttonTitle}\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\ttoggleCollapse(panelIndex, neighborIndex);\n\t\t\t\t}}\n\t\t\t\tonDoubleClick={(event) => {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}}\n\t\t\t\tstyle={{\n\t\t\t\t\talignItems: 'center',\n\t\t\t\t\tbackground: '#fff',\n\t\t\t\t\tborder: '1px solid #d9d9d9',\n\t\t\t\t\tborderRadius: 3,\n\t\t\t\t\tcolor: '#595959',\n\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\theight: isHorizontal ? 40 : 14,\n\t\t\t\t\twidth: isHorizontal ? 14 : 40,\n\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\tfontSize: 10,\n\t\t\t\t\tboxShadow: '0 1px 2px rgba(0, 0, 0, 0.05)',\n\t\t\t\t\ttransition: 'all 0.2s ease',\n\t\t\t\t\topacity,\n\t\t\t\t\tpointerEvents,\n\t\t\t\t}}\n\t\t\t\ttype=\"button\"\n\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\te.currentTarget.style.background = '#e5e7eb';\n\t\t\t\t\te.currentTarget.style.color = '#1f2937';\n\t\t\t\t\tsetHoveredCollapsePanelIndex(panelIndex);\n\t\t\t\t}}\n\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\te.currentTarget.style.background = '#fff';\n\t\t\t\t\te.currentTarget.style.color = '#595959';\n\t\t\t\t\tsetHoveredCollapsePanelIndex(null);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<Icon />\n\t\t\t</button>\n\t\t);\n\t};\n\n\tconst rootClassName = [className, semanticClassNames.root].filter(Boolean).join(' ') || undefined;\n\n\treturn (\n\t\t<div className={rootClassName} ref={rootRef} style={rootStyle}>\n\t\t\t{panels.map((panel, index) => {\n\t\t\t\tconst isHidden = sizes[index] <= 1;\n\t\t\t\tconst isLeftOrTopCollapsed = (sizes[index] ?? 0) <= 1;\n\t\t\t\tconst isRightOrBottomCollapsed = (sizes[index + 1] ?? 0) <= 1;\n\t\t\t\tconst isAnyCollapsed = isLeftOrTopCollapsed || isRightOrBottomCollapsed;\n\t\t\t\tconst panelDestroyOnHidden = panel.props.destroyOnHidden ?? destroyOnHidden;\n\t\t\t\tconst shouldRenderContent = !isHidden || !panelDestroyOnHidden;\n\n\t\t\t\treturn (\n\t\t\t\t\t<React.Fragment key={index}>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t[semanticClassNames.panel, panel.props.className].filter(Boolean).join(' ') ||\n\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackground: index % 2 ? '#fff' : '#fafafa',\n\t\t\t\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\t\t\t\tflex: `0 0 ${sizes[index] ?? 0}px`,\n\t\t\t\t\t\t\t\tminHeight: 0,\n\t\t\t\t\t\t\t\tminWidth: 0,\n\t\t\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\t\t\tboxShadow:\n\t\t\t\t\t\t\t\t\thoveredCollapsePanelIndex === index ? 'inset 0 0 0 2px #1677ff' : undefined,\n\t\t\t\t\t\t\t\ttransition:\n\t\t\t\t\t\t\t\t\tdraggingIndex === null ? 'box-shadow 0.2s ease, flex-basis 0.2s ease' : undefined,\n\t\t\t\t\t\t\t\t...semanticStyles.panel,\n\t\t\t\t\t\t\t\t...panel.props.style,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{shouldRenderContent && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\t\t\t\t\t\tdisplay: isHidden ? 'none' : 'block',\n\t\t\t\t\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\t\t\t\t\toverflowX: 'hidden',\n\t\t\t\t\t\t\t\t\t\toverflowY: 'auto',\n\t\t\t\t\t\t\t\t\t\tpadding: (sizes[index] ?? 0) < 32 ? 0 : 16,\n\t\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\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{panel.props.children}\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</div>\n\n\t\t\t\t\t\t{index < panels.length - 1 && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\taria-orientation={resolvedOrientation}\n\t\t\t\t\t\t\t\tclassName={semanticClassNames.dragger}\n\t\t\t\t\t\t\t\tonDoubleClick={() => {\n\t\t\t\t\t\t\t\t\tonDraggerDoubleClick?.(index);\n\t\t\t\t\t\t\t\t\tresetSizes();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonKeyDown={(event) => {\n\t\t\t\t\t\t\t\t\tconst step = event.shiftKey ? 40 : 10;\n\t\t\t\t\t\t\t\t\tconst directionMap =\n\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t? { ArrowLeft: -step, ArrowRight: step }\n\t\t\t\t\t\t\t\t\t\t\t: { ArrowUp: -step, ArrowDown: step };\n\t\t\t\t\t\t\t\t\tconst delta = directionMap[event.key as keyof typeof directionMap];\n\t\t\t\t\t\t\t\t\tif (delta !== undefined) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tresizePair(index, delta);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonPointerDown={(event) => startResize(index, event)}\n\t\t\t\t\t\t\t\tonPointerEnter={() => setHoveredIndex(index)}\n\t\t\t\t\t\t\t\tonPointerLeave={() => setHoveredIndex(null)}\n\t\t\t\t\t\t\t\trole=\"separator\"\n\t\t\t\t\t\t\t\ttitle=\"拖动调整大小,双击重置\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\thoveredIndex === index || draggingIndex === index ? '#e6f4ff' : '#f5f5f5',\n\t\t\t\t\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\t\t\t\t\tcursor: resolvedOrientation === 'horizontal' ? 'col-resize' : 'row-resize',\n\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\tflex: `0 0 ${draggerSize}px`,\n\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\tmarginLeft:\n\t\t\t\t\t\t\t\t\t\tindex > 0 && (sizes[index] ?? 0) <= 1 && resolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t? -draggerSize\n\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\tmarginTop:\n\t\t\t\t\t\t\t\t\t\tindex > 0 && (sizes[index] ?? 0) <= 1 && resolvedOrientation === 'vertical'\n\t\t\t\t\t\t\t\t\t\t\t? -draggerSize\n\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\toutline: 'none',\n\t\t\t\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\t\t\t\tuserSelect: 'none',\n\t\t\t\t\t\t\t\t\tzIndex: isAnyCollapsed ? 2 : 1,\n\t\t\t\t\t\t\t\t\t...semanticStyles.dragger,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ttabIndex={0}\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{draggerIcon ? (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\t\t\t\t\thoveredIndex === index || draggingIndex === index ? '#1677ff' : '#8c8c8c',\n\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t\t\t\t\t\t\t\ttransition: 'color 0.2s ease',\n\t\t\t\t\t\t\t\t\t\t\tuserSelect: 'none',\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{draggerIcon}\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\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\t\thoveredIndex === index || draggingIndex === index ? '#1677ff' : '#d9d9d9',\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: 2,\n\t\t\t\t\t\t\t\t\t\t\theight: resolvedOrientation === 'horizontal' ? 40 : 2,\n\t\t\t\t\t\t\t\t\t\t\ttransition: 'background 0.2s ease',\n\t\t\t\t\t\t\t\t\t\t\twidth: resolvedOrientation === 'horizontal' ? 2 : 40,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{/* 未折叠状态下呈现折叠按钮 */}\n\t\t\t\t\t\t\t\t{!isAnyCollapsed && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\t\t\t\t\t\ttop: '50%',\n\t\t\t\t\t\t\t\t\t\t\tleft: '50%',\n\t\t\t\t\t\t\t\t\t\t\ttransform: 'translate(-50%, -50%)',\n\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\tflexDirection: resolvedOrientation === 'horizontal' ? 'row' : 'column',\n\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\t\t\tgap: 2,\n\t\t\t\t\t\t\t\t\t\t\tzIndex: 5,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'flex-end',\n\t\t\t\t\t\t\t\t\t\t\t\tminHeight: resolvedOrientation === 'horizontal' ? undefined : 14,\n\t\t\t\t\t\t\t\t\t\t\t\tminWidth: resolvedOrientation === 'horizontal' ? 14 : undefined,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{renderCollapseButton(index, index, 'start')}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'flex-start',\n\t\t\t\t\t\t\t\t\t\t\t\tminHeight: resolvedOrientation === 'horizontal' ? undefined : 14,\n\t\t\t\t\t\t\t\t\t\t\t\tminWidth: resolvedOrientation === 'horizontal' ? 14 : undefined,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{renderCollapseButton(index, index + 1, 'end')}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{/* 折叠状态下呈现展开按钮(必须包含 collapsible 允许方可渲染) */}\n\t\t\t\t\t\t\t\t{isAnyCollapsed && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? '50%'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tbottom:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isRightOrBottomCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tleft:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: '50%',\n\t\t\t\t\t\t\t\t\t\t\tright:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isRightOrBottomCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\t\t\t\t\tpointerEvents: 'auto',\n\t\t\t\t\t\t\t\t\t\t\tzIndex: 5,\n\t\t\t\t\t\t\t\t\t\t\ttransform:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? `translate(${isLeftOrTopCollapsed ? '4px' : '-4px'}, -50%)`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: `translate(-50%, ${isLeftOrTopCollapsed ? '4px' : '-4px'})`,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{(() => {\n\t\t\t\t\t\t\t\t\t\t\tconst isStart = isLeftOrTopCollapsed;\n\t\t\t\t\t\t\t\t\t\t\tconst targetIndex = isStart ? index : index + 1;\n\t\t\t\t\t\t\t\t\t\t\tconst targetPanel = panels[targetIndex];\n\t\t\t\t\t\t\t\t\t\t\tconst config = getCollapsibleConfig(targetPanel?.props.collapsible);\n\t\t\t\t\t\t\t\t\t\t\tconst isAllowed = isStart ? config.start : config.end;\n\n\t\t\t\t\t\t\t\t\t\t\tif (!isAllowed || config.showCollapsibleIcon === false) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tconst ExpandIcon =\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? RightOutlined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: LeftOutlined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? DownOutlined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: UpOutlined;\n\n\t\t\t\t\t\t\t\t\t\t\tconst neighborIndex = isLeftOrTopCollapsed ? index + 1 : index;\n\t\t\t\t\t\t\t\t\t\t\tconst isHorizontal = resolvedOrientation === 'horizontal';\n\n\t\t\t\t\t\t\t\t\t\t\tconst expandTitle =\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? '展开左侧面板'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: '展开右侧面板'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? '展开上方面板'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: '展开下方面板';\n\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-label={expandTitle}\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitle={expandTitle}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleCollapse(targetIndex, neighborIndex);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonDoubleClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackground: '#f3f4f6',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: '1px solid #e5e7eb',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: 3,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: '#595959',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: isHorizontal ? 40 : 14,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: isHorizontal ? 14 : 40,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: 10,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: '0 1px 3px rgba(0, 0, 0, 0.08)',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: 'all 0.2s ease',\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.background = '#e5e7eb';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.color = '#1f2937';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHoveredCollapsePanelIndex(targetIndex);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.background = '#f3f4f6';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.color = '#595959';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHoveredCollapsePanelIndex(null);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\t\t<ExpandIcon />\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})()}\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</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nCustomSplitter.Panel = SplitterPanel;\n\nexport default CustomSplitter;\n"]}
|
|
1
|
+
{"version":3,"sources":["../Splitter/index.tsx"],"names":["useRef","useState","useMemo","React","useCallback","useEffect","LeftOutlined","RightOutlined","UpOutlined","DownOutlined","jsx","jsxs"],"mappings":"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","file":"chunk-TWL3QEFV.cjs","sourcesContent":["import { DownOutlined, LeftOutlined, RightOutlined, UpOutlined } from '../src/icons';\nimport type {\n\tCSSProperties,\n\tReactElement,\n\tReactNode,\n\tPointerEvent as ReactPointerEvent,\n} from 'react';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nexport type SplitterSize = number | `${number}%`;\nexport type SplitterOrientation = 'horizontal' | 'vertical';\n\nexport type SplitterCollapsible =\n\t| boolean\n\t| {\n\t\t\tstart?: boolean;\n\t\t\tend?: boolean;\n\t\t\tshowCollapsibleIcon?: boolean | 'auto';\n\t };\n\n/**\n * Splitter.Panel 子面板组件属性\n */\nexport type SplitterPanelProps = {\n\t/** 面板内容节点 */\n\tchildren?: ReactNode;\n\t/** 面板自定义类名 */\n\tclassName?: string;\n\t/**\n\t * 折叠配置:\n\t * - `boolean`: 是否允许两端折叠\n\t * - `Object`: `{ start?: boolean; end?: boolean; showCollapsibleIcon?: boolean | 'auto' }`\n\t */\n\tcollapsible?: SplitterCollapsible;\n\t/** 面板初始默认尺寸(支持数字 px 或百分比字符串如 '40%') */\n\tdefaultSize?: SplitterSize;\n\t/** 折叠/隐藏时是否销毁面板内容节点(可覆盖 Splitter 根容器上的 destroyOnHidden 属性) */\n\tdestroyOnHidden?: boolean;\n\t/** 面板最大允许尺寸限制 */\n\tmax?: SplitterSize;\n\t/** 面板最小允许尺寸限制 */\n\tmin?: SplitterSize;\n\t/** 是否允许通过分隔条拖拽调整大小(默认 true) */\n\tresizable?: boolean;\n\t/** 面板受控尺寸 */\n\tsize?: SplitterSize;\n\t/** 面板自定义 CSS 样式 */\n\tstyle?: CSSProperties;\n};\n\nexport type SplitterSemanticDOM = 'root' | 'panel' | 'dragger';\n/** 语义化 DOM 结构标识 */\nexport type SemanticDOM = SplitterSemanticDOM;\n\nexport type SplitterStyles =\n\t| Partial<Record<SplitterSemanticDOM, CSSProperties>>\n\t| ((info: { props: SplitterProps }) => Partial<Record<SplitterSemanticDOM, CSSProperties>>);\n\nexport type SplitterClassNames =\n\t| Partial<Record<SplitterSemanticDOM, string>>\n\t| ((info: { props: SplitterProps }) => Partial<Record<SplitterSemanticDOM, string>>);\n\n/**\n * Splitter 根容器组件属性\n */\nexport type SplitterProps = {\n\t/** 面板集合(建议传入 Splitter.Panel) */\n\tchildren?: ReactNode;\n\t/** 容器根节点自定义类名 */\n\tclassName?: string;\n\t/** 用于自定义组件内部各语义化结构(root、panel、dragger)的 class,支持对象或函数 */\n\tclassNames?: SplitterClassNames;\n\t/** 折叠/隐藏时是否销毁面板内容节点(默认 false,保留组件状态) */\n\tdestroyOnHidden?: boolean;\n\t/** 拖拽分隔条的宽度/高度(单位 px,默认 4) */\n\tdraggerSize?: number;\n\t/** 是否在拖拽结束时才更新视图(默认 false) */\n\tlazy?: boolean;\n\t/** 面板展开或折叠状态改变时的回调 */\n\tonCollapse?: (collapsed: boolean[], sizes: number[]) => void;\n\t/** 拖拽过程中的实时尺寸变化回调 */\n\tonResize?: (sizes: number[]) => void;\n\t/** 拖拽结束、重置尺寸或折叠完成时的回调 */\n\tonResizeEnd?: (sizes: number[]) => void;\n\t/** 开始拖拽分隔条时的回调 */\n\tonResizeStart?: (sizes: number[]) => void;\n\t/** 双击拖拽条回调 */\n\tonDraggerDoubleClick?: (index: number) => void;\n\t/** 分屏方向:'horizontal'(水平分屏)| 'vertical'(垂直分屏),默认 'horizontal' */\n\torientation?: SplitterOrientation;\n\t/** 容器根节点自定义 CSS 样式 */\n\tstyle?: CSSProperties;\n\t/** 容器根节点及各语义化结构(root、panel、dragger)自定义 CSS 样式,支持对象或函数 */\n\tstyles?: SplitterStyles;\n\t/** 是否垂直分屏(orientation=\"vertical\" 的简写形式) 排列方向,与 orientation 同时存在,以 orientation 优先 */\n\tvertical?: boolean;\n\t/** 自定义拖拽手柄图标/节点 */\n\tdraggerIcon?: ReactNode;\n};\n\nexport interface ResolvedCollapsible {\n\tstart: boolean;\n\tend: boolean;\n\tshowCollapsibleIcon: boolean | 'auto';\n}\n\nconst getCollapsibleConfig = (collapsible?: SplitterCollapsible): ResolvedCollapsible => {\n\tif (!collapsible) {\n\t\treturn { start: false, end: false, showCollapsibleIcon: 'auto' };\n\t}\n\tif (typeof collapsible === 'boolean') {\n\t\treturn {\n\t\t\tstart: collapsible,\n\t\t\tend: collapsible,\n\t\t\tshowCollapsibleIcon: collapsible ? true : 'auto',\n\t\t};\n\t}\n\treturn {\n\t\tstart: collapsible.start ?? false,\n\t\tend: collapsible.end ?? false,\n\t\tshowCollapsibleIcon: collapsible.showCollapsibleIcon ?? true,\n\t};\n};\n\ntype SplitterComponent = React.FC<SplitterProps> & {\n\tPanel: React.FC<SplitterPanelProps>;\n};\n\nconst DEFAULT_DRAGGER_SIZE = 4;\nconst MIN_DRAG_SIZE = 40; // 手动拖拽调整大小时的默认最小限制 (px)\n\nconst SplitterPanel: React.FC<SplitterPanelProps> = ({ children }) => <>{children}</>;\n\nconst isPercentSize = (value: SplitterSize): value is `${number}%` =>\n\ttypeof value === 'string' && value.endsWith('%');\n\nconst parseSize = (value: SplitterSize | undefined, total: number, fallback: number) => {\n\tif (value === undefined) {\n\t\treturn fallback;\n\t}\n\n\tif (isPercentSize(value)) {\n\t\treturn (Number.parseFloat(value) / 100) * total;\n\t}\n\n\treturn Number(value);\n};\n\nconst roundSizes = (sizes: number[]) => sizes.map((size) => Math.round(size));\n\nconst getPointerPosition = (\n\tevent: PointerEvent | ReactPointerEvent,\n\torientation: SplitterOrientation,\n) => (orientation === 'horizontal' ? event.clientX : event.clientY);\n\nconst clamp = (value: number, min: number, max: number) => Math.min(Math.max(value, min), max);\n\nconst resolveSemanticStyles = (\n\tstyles: SplitterStyles | undefined,\n\tinfoProps: SplitterProps,\n): Partial<Record<SplitterSemanticDOM, CSSProperties>> => {\n\tif (!styles) {\n\t\treturn {};\n\t}\n\n\tconst resolved = typeof styles === 'function' ? styles({ props: infoProps }) : styles;\n\treturn resolved || {};\n};\n\nconst resolveSemanticClassNames = (\n\tclassNames: SplitterClassNames | undefined,\n\tinfoProps: SplitterProps,\n): Partial<Record<SplitterSemanticDOM, string>> => {\n\tif (!classNames) {\n\t\treturn {};\n\t}\n\n\tconst resolved = typeof classNames === 'function' ? classNames({ props: infoProps }) : classNames;\n\treturn resolved || {};\n};\n\nconst CustomSplitter: SplitterComponent = (props) => {\n\tconst {\n\t\tchildren,\n\t\tclassName,\n\t\tclassNames,\n\t\tdestroyOnHidden = false,\n\t\tdraggerIcon,\n\t\tdraggerSize = DEFAULT_DRAGGER_SIZE,\n\t\tlazy = false,\n\t\tonResize,\n\t\tonResizeEnd,\n\t\tonResizeStart,\n\t\tonCollapse,\n\t\tonDraggerDoubleClick,\n\t\torientation,\n\t\tstyle,\n\t\tstyles,\n\t\tvertical = false,\n\t} = props;\n\tconst resolvedOrientation = orientation ?? (vertical ? 'vertical' : 'horizontal');\n\tconst rootRef = useRef<HTMLDivElement>(null);\n\tconst sizesRef = useRef<number[]>([]);\n\tconst [containerSize, setContainerSize] = useState(0);\n\tconst [draggingIndex, setDraggingIndex] = useState<number | null>(null);\n\tconst [hoveredIndex, setHoveredIndex] = useState<number | null>(null);\n\tconst [hoveredCollapsePanelIndex, setHoveredCollapsePanelIndex] = useState<number | null>(null);\n\tconst [sizes, setSizes] = useState<number[]>([]);\n\n\tconst semanticStyles = useMemo(() => resolveSemanticStyles(styles, props), [styles, props]);\n\tconst semanticClassNames = useMemo(\n\t\t() => resolveSemanticClassNames(classNames, props),\n\t\t[classNames, props],\n\t);\n\n\tconst panels = useMemo(\n\t\t() =>\n\t\t\tReact.Children.toArray(children).filter(\n\t\t\t\tReact.isValidElement,\n\t\t\t) as ReactElement<SplitterPanelProps>[],\n\t\t[children],\n\t);\n\n\tconst trackSize = Math.max(0, containerSize - Math.max(0, panels.length - 1) * draggerSize);\n\n\tconst getPanelMin = useCallback(\n\t\t(index: number) => parseSize(panels[index]?.props.min, trackSize, 0),\n\t\t[panels, trackSize],\n\t);\n\n\tconst getPanelMax = useCallback(\n\t\t(index: number) => parseSize(panels[index]?.props.max, trackSize, trackSize),\n\t\t[panels, trackSize],\n\t);\n\n\tconst normalizeToTrack = useCallback(\n\t\t(nextSizes: number[]) => {\n\t\t\tif (!trackSize || !nextSizes.length) {\n\t\t\t\treturn nextSizes;\n\t\t\t}\n\n\t\t\tconst normalized = [...nextSizes];\n\t\t\tconst diff = trackSize - normalized.reduce((sum, size) => sum + size, 0);\n\t\t\tconst flexibleIndex = normalized.findIndex((size) => size > 0);\n\t\t\tif (flexibleIndex !== -1) {\n\t\t\t\tnormalized[flexibleIndex] += diff;\n\t\t\t}\n\n\t\t\treturn normalized.map((size, index) => {\n\t\t\t\t// 折叠状态(size <= 1)保持为 0,不受 min 限制干扰\n\t\t\t\tif (size <= 1) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\t// 拖拽过程从 0 拖出时,允许在 0 到 min 之间平滑过渡,不被强行跳变到 min\n\t\t\t\tif (size < getPanelMin(index)) {\n\t\t\t\t\treturn size;\n\t\t\t\t}\n\t\t\t\treturn clamp(size, getPanelMin(index), getPanelMax(index));\n\t\t\t});\n\t\t},\n\t\t[getPanelMax, getPanelMin, trackSize],\n\t);\n\n\tconst buildInitialSizes = useCallback(\n\t\t(previous?: number[]) => {\n\t\t\tif (!trackSize || !panels.length) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tif (previous?.length === panels.length) {\n\t\t\t\tconst previousTotal = previous.reduce((sum, size) => sum + size, 0);\n\t\t\t\tif (previousTotal > 0) {\n\t\t\t\t\treturn normalizeToTrack(previous.map((size) => (size / previousTotal) * trackSize));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst explicitSizes = panels.map((panel) =>\n\t\t\t\tparseSize(panel.props.size ?? panel.props.defaultSize, trackSize, -1),\n\t\t\t);\n\t\t\tconst usedSize = explicitSizes\n\t\t\t\t.filter((size) => size >= 0)\n\t\t\t\t.reduce((sum, size) => sum + size, 0);\n\t\t\tconst unsetCount = explicitSizes.filter((size) => size < 0).length;\n\t\t\tconst fallbackSize = unsetCount ? Math.max(0, (trackSize - usedSize) / unsetCount) : 0;\n\n\t\t\treturn normalizeToTrack(\n\t\t\t\texplicitSizes.map((size, index) =>\n\t\t\t\t\tclamp(size >= 0 ? size : fallbackSize, getPanelMin(index), getPanelMax(index)),\n\t\t\t\t),\n\t\t\t);\n\t\t},\n\t\t[getPanelMax, getPanelMin, normalizeToTrack, panels, trackSize],\n\t);\n\n\tconst updateSizes = useCallback(\n\t\t(nextSizes: number[], notify = true) => {\n\t\t\tconst normalized = normalizeToTrack(nextSizes);\n\t\t\tsetSizes(normalized);\n\t\t\tsizesRef.current = normalized;\n\t\t\tif (notify) {\n\t\t\t\tonResize?.(roundSizes(normalized));\n\t\t\t}\n\t\t},\n\t\t[normalizeToTrack, onResize],\n\t);\n\n\tuseEffect(() => {\n\t\tconst node = rootRef.current;\n\t\tif (!node) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst syncSize = () => {\n\t\t\tsetContainerSize(resolvedOrientation === 'horizontal' ? node.clientWidth : node.clientHeight);\n\t\t};\n\t\tsyncSize();\n\n\t\tconst observer = new ResizeObserver(syncSize);\n\t\tobserver.observe(node);\n\t\treturn () => observer.disconnect();\n\t}, [resolvedOrientation]);\n\n\tuseEffect(() => {\n\t\tsetSizes((previous) => {\n\t\t\tconst nextSizes = buildInitialSizes(previous);\n\t\t\tsizesRef.current = nextSizes;\n\t\t\treturn nextSizes;\n\t\t});\n\t}, [buildInitialSizes]);\n\n\tconst getResizedPair = useCallback(\n\t\t(sourceSizes: number[], index: number, delta: number) => {\n\t\t\tconst nextSizes = [...sourceSizes];\n\t\t\tconst isLeftCollapsed = sourceSizes[index] <= 1;\n\t\t\tconst isRightCollapsed = sourceSizes[index + 1] <= 1;\n\n\t\t\tconst leftMin = isLeftCollapsed ? 0 : getPanelMin(index);\n\t\t\tconst rightMin = isRightCollapsed ? 0 : getPanelMin(index + 1);\n\t\t\tconst leftMax = getPanelMax(index);\n\t\t\tconst rightMax = getPanelMax(index + 1);\n\n\t\t\tconst minDelta = Math.max(leftMin - sourceSizes[index], sourceSizes[index + 1] - rightMax);\n\t\t\tconst maxDelta = Math.min(leftMax - sourceSizes[index], sourceSizes[index + 1] - rightMin);\n\t\t\tconst safeDelta = clamp(delta, minDelta, maxDelta);\n\n\t\t\tnextSizes[index] = sourceSizes[index] + safeDelta;\n\t\t\tnextSizes[index + 1] = sourceSizes[index + 1] - safeDelta;\n\t\t\treturn normalizeToTrack(nextSizes);\n\t\t},\n\t\t[getPanelMax, getPanelMin, normalizeToTrack],\n\t);\n\n\tconst getInitialLockedIndex = useCallback(\n\t\t(sourceSizes: number[], startIndex: number, delta: number) => {\n\t\t\tif (sourceSizes[startIndex] <= 1 && delta < 0 && startIndex > 0) {\n\t\t\t\treturn startIndex - 1;\n\t\t\t}\n\t\t\tif (sourceSizes[startIndex + 1] <= 1 && delta > 0 && startIndex < sourceSizes.length - 2) {\n\t\t\t\treturn startIndex + 1;\n\t\t\t}\n\t\t\treturn startIndex;\n\t\t},\n\t\t[],\n\t);\n\n\tconst resizePair = useCallback(\n\t\t(index: number, delta: number, notify = true) => {\n\t\t\tconst targetIndex = getInitialLockedIndex(sizesRef.current, index, delta);\n\t\t\tupdateSizes(getResizedPair(sizesRef.current, targetIndex, delta), notify);\n\t\t},\n\t\t[getInitialLockedIndex, getResizedPair, updateSizes],\n\t);\n\n\tconst startResize = (index: number, event: ReactPointerEvent<HTMLDivElement>) => {\n\t\tif (panels[index].props.resizable === false || panels[index + 1].props.resizable === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tconst startPosition = getPointerPosition(event, resolvedOrientation);\n\t\tconst startSizes = [...sizesRef.current];\n\t\tlet latestSizes = startSizes;\n\t\tlet lockedIndex: number | null = null;\n\n\t\tsetDraggingIndex(index);\n\t\tonResizeStart?.(roundSizes(startSizes));\n\n\t\tconst handlePointerMove = (moveEvent: PointerEvent) => {\n\t\t\tconst delta = getPointerPosition(moveEvent, resolvedOrientation) - startPosition;\n\t\t\tif (delta === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (lockedIndex === null) {\n\t\t\t\tlockedIndex = getInitialLockedIndex(startSizes, index, delta);\n\t\t\t}\n\n\t\t\tlatestSizes = getResizedPair(startSizes, lockedIndex, delta);\n\t\t\tif (!lazy) {\n\t\t\t\tupdateSizes(latestSizes, true);\n\t\t\t}\n\t\t};\n\n\t\tconst handlePointerUp = () => {\n\t\t\tdocument.removeEventListener('pointermove', handlePointerMove);\n\t\t\tdocument.removeEventListener('pointerup', handlePointerUp);\n\t\t\tsetDraggingIndex(null);\n\t\t\tif (lazy) {\n\t\t\t\tupdateSizes(latestSizes, true);\n\t\t\t}\n\t\t\tconst currentSizes = roundSizes(sizesRef.current);\n\t\t\tconst currentCollapsed = sizesRef.current.map((size) => size <= 1);\n\t\t\tconst startCollapsed = startSizes.map((size) => size <= 1);\n\t\t\tif (currentCollapsed.some((c, i) => c !== startCollapsed[i])) {\n\t\t\t\tonCollapse?.(currentCollapsed, currentSizes);\n\t\t\t}\n\t\t\tonResizeEnd?.(currentSizes);\n\t\t};\n\n\t\tdocument.addEventListener('pointermove', handlePointerMove);\n\t\tdocument.addEventListener('pointerup', handlePointerUp);\n\t};\n\n\tconst toggleCollapse = (index: number, neighborIndex: number) => {\n\t\tconst nextSizes = [...sizesRef.current];\n\n\t\tif (nextSizes[index] > 1) {\n\t\t\tnextSizes[neighborIndex] += nextSizes[index];\n\t\t\tnextSizes[index] = 0;\n\t\t} else {\n\t\t\tconst initialSizes = buildInitialSizes();\n\t\t\tconst initialSize =\n\t\t\t\tinitialSizes[index] ??\n\t\t\t\tparseSize(panels[index].props.defaultSize, trackSize, trackSize / panels.length);\n\t\t\tconst restoredSize = clamp(initialSize, getPanelMin(index), getPanelMax(index));\n\t\t\tnextSizes[index] = restoredSize;\n\t\t\tnextSizes[neighborIndex] = Math.max(0, nextSizes[neighborIndex] - nextSizes[index]);\n\t\t}\n\n\t\tupdateSizes(nextSizes);\n\t\tconst currentSizes = roundSizes(sizesRef.current);\n\t\tconst currentCollapsed = sizesRef.current.map((size) => size <= 1);\n\t\tonCollapse?.(currentCollapsed, currentSizes);\n\t\tonResizeEnd?.(currentSizes);\n\t};\n\n\tconst resetSizes = () => {\n\t\tconst previousCollapsed = sizesRef.current.map((size) => size <= 1);\n\t\tconst nextSizes = buildInitialSizes();\n\t\tupdateSizes(nextSizes);\n\t\tconst currentSizes = roundSizes(sizesRef.current);\n\t\tconst currentCollapsed = sizesRef.current.map((size) => size <= 1);\n\t\tif (currentCollapsed.some((c, i) => c !== previousCollapsed[i])) {\n\t\t\tonCollapse?.(currentCollapsed, currentSizes);\n\t\t}\n\t\tonResizeEnd?.(currentSizes);\n\t};\n\n\tconst rootStyle: CSSProperties = {\n\t\tborder: '1px solid #f0f0f0',\n\t\tborderRadius: 8,\n\t\tboxSizing: 'border-box',\n\t\tdisplay: 'flex',\n\t\tflexDirection: resolvedOrientation === 'horizontal' ? 'row' : 'column',\n\t\theight: '100%',\n\t\tminHeight: 0,\n\t\toverflow: 'hidden',\n\t\tposition: 'relative',\n\t\twidth: '100%',\n\t\t...semanticStyles.root,\n\t\t...style,\n\t};\n\n\tconst renderCollapseButton = (\n\t\tdraggerIndex: number,\n\t\tpanelIndex: number,\n\t\tdirection: 'start' | 'end',\n\t) => {\n\t\tconst panel = panels[panelIndex];\n\t\tconst config = getCollapsibleConfig(panel?.props.collapsible);\n\t\tconst isAllowed = direction === 'start' ? config.start : config.end;\n\n\t\tif (!isAllowed || config.showCollapsibleIcon === false) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst neighborIndex = direction === 'start' ? panelIndex + 1 : panelIndex - 1;\n\t\tconst isCollapsed = (sizes[panelIndex] ?? 0) <= 1;\n\t\tconst isNeighborCollapsed = (sizes[neighborIndex] ?? 0) <= 1;\n\n\t\t// 自己折叠后隐藏;对侧面板折叠后也隐藏(避免与展开按钮重复/语义冲突)\n\t\tif (isCollapsed || isNeighborCollapsed) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// 展开时箭头指向面板将被折叠到的方向\n\t\tconst Icon =\n\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t? direction === 'start'\n\t\t\t\t\t? LeftOutlined\n\t\t\t\t\t: RightOutlined\n\t\t\t\t: direction === 'start'\n\t\t\t\t\t? UpOutlined\n\t\t\t\t\t: DownOutlined;\n\n\t\tconst isHorizontal = resolvedOrientation === 'horizontal';\n\t\tconst isAlwaysShow = config.showCollapsibleIcon === true;\n\t\tconst isHoveredOrDragging = hoveredIndex === draggerIndex || draggingIndex === draggerIndex;\n\t\tconst opacity = isAlwaysShow || isHoveredOrDragging ? 1 : 0;\n\t\tconst pointerEvents = isAlwaysShow || isHoveredOrDragging ? 'auto' : 'none';\n\n\t\tconst buttonTitle =\n\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t? direction === 'start'\n\t\t\t\t\t? '折叠左侧面板'\n\t\t\t\t\t: '折叠右侧面板'\n\t\t\t\t: direction === 'start'\n\t\t\t\t\t? '折叠上方面板'\n\t\t\t\t\t: '折叠下方面板';\n\n\t\treturn (\n\t\t\t<button\n\t\t\t\taria-label={buttonTitle}\n\t\t\t\ttitle={buttonTitle}\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\ttoggleCollapse(panelIndex, neighborIndex);\n\t\t\t\t}}\n\t\t\t\tonDoubleClick={(event) => {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}}\n\t\t\t\tstyle={{\n\t\t\t\t\talignItems: 'center',\n\t\t\t\t\tbackground: '#fff',\n\t\t\t\t\tborder: '1px solid #d9d9d9',\n\t\t\t\t\tborderRadius: 3,\n\t\t\t\t\tcolor: '#595959',\n\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\theight: isHorizontal ? 40 : 14,\n\t\t\t\t\twidth: isHorizontal ? 14 : 40,\n\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\tfontSize: 10,\n\t\t\t\t\tboxShadow: '0 1px 2px rgba(0, 0, 0, 0.05)',\n\t\t\t\t\ttransition: 'all 0.2s ease',\n\t\t\t\t\topacity,\n\t\t\t\t\tpointerEvents,\n\t\t\t\t}}\n\t\t\t\ttype=\"button\"\n\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\te.currentTarget.style.background = '#e5e7eb';\n\t\t\t\t\te.currentTarget.style.color = '#1f2937';\n\t\t\t\t\tsetHoveredCollapsePanelIndex(panelIndex);\n\t\t\t\t}}\n\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\te.currentTarget.style.background = '#fff';\n\t\t\t\t\te.currentTarget.style.color = '#595959';\n\t\t\t\t\tsetHoveredCollapsePanelIndex(null);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<Icon />\n\t\t\t</button>\n\t\t);\n\t};\n\n\tconst rootClassName = [className, semanticClassNames.root].filter(Boolean).join(' ') || undefined;\n\n\treturn (\n\t\t<div className={rootClassName} ref={rootRef} style={rootStyle}>\n\t\t\t{panels.map((panel, index) => {\n\t\t\t\tconst isHidden = sizes[index] <= 1;\n\t\t\t\tconst isLeftOrTopCollapsed = (sizes[index] ?? 0) <= 1;\n\t\t\t\tconst isRightOrBottomCollapsed = (sizes[index + 1] ?? 0) <= 1;\n\t\t\t\tconst isAnyCollapsed = isLeftOrTopCollapsed || isRightOrBottomCollapsed;\n\t\t\t\tconst panelDestroyOnHidden = panel.props.destroyOnHidden ?? destroyOnHidden;\n\t\t\t\tconst shouldRenderContent = !isHidden || !panelDestroyOnHidden;\n\n\t\t\t\treturn (\n\t\t\t\t\t<React.Fragment key={index}>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t[semanticClassNames.panel, panel.props.className].filter(Boolean).join(' ') ||\n\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackground: index % 2 ? '#fff' : '#fafafa',\n\t\t\t\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\t\t\t\tflex: `0 0 ${sizes[index] ?? 0}px`,\n\t\t\t\t\t\t\t\tminHeight: 0,\n\t\t\t\t\t\t\t\tminWidth: 0,\n\t\t\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\t\t\tboxShadow:\n\t\t\t\t\t\t\t\t\thoveredCollapsePanelIndex === index ? 'inset 0 0 0 2px #1677ff' : undefined,\n\t\t\t\t\t\t\t\ttransition:\n\t\t\t\t\t\t\t\t\tdraggingIndex === null ? 'box-shadow 0.2s ease, flex-basis 0.2s ease' : undefined,\n\t\t\t\t\t\t\t\t...semanticStyles.panel,\n\t\t\t\t\t\t\t\t...panel.props.style,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{shouldRenderContent && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\t\t\t\t\t\tdisplay: isHidden ? 'none' : 'block',\n\t\t\t\t\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\t\t\t\t\toverflowX: 'hidden',\n\t\t\t\t\t\t\t\t\t\toverflowY: 'auto',\n\t\t\t\t\t\t\t\t\t\tpadding: (sizes[index] ?? 0) < 32 ? 0 : 16,\n\t\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\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{panel.props.children}\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</div>\n\n\t\t\t\t\t\t{index < panels.length - 1 && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\taria-orientation={resolvedOrientation}\n\t\t\t\t\t\t\t\tclassName={semanticClassNames.dragger}\n\t\t\t\t\t\t\t\tonDoubleClick={() => {\n\t\t\t\t\t\t\t\t\tonDraggerDoubleClick?.(index);\n\t\t\t\t\t\t\t\t\tresetSizes();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonKeyDown={(event) => {\n\t\t\t\t\t\t\t\t\tconst step = event.shiftKey ? 40 : 10;\n\t\t\t\t\t\t\t\t\tconst directionMap =\n\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t? { ArrowLeft: -step, ArrowRight: step }\n\t\t\t\t\t\t\t\t\t\t\t: { ArrowUp: -step, ArrowDown: step };\n\t\t\t\t\t\t\t\t\tconst delta = directionMap[event.key as keyof typeof directionMap];\n\t\t\t\t\t\t\t\t\tif (delta !== undefined) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tresizePair(index, delta);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonPointerDown={(event) => startResize(index, event)}\n\t\t\t\t\t\t\t\tonPointerEnter={() => setHoveredIndex(index)}\n\t\t\t\t\t\t\t\tonPointerLeave={() => setHoveredIndex(null)}\n\t\t\t\t\t\t\t\trole=\"separator\"\n\t\t\t\t\t\t\t\ttitle=\"拖动调整大小,双击重置\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\thoveredIndex === index || draggingIndex === index ? '#e6f4ff' : '#f5f5f5',\n\t\t\t\t\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\t\t\t\t\tcursor: resolvedOrientation === 'horizontal' ? 'col-resize' : 'row-resize',\n\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\tflex: `0 0 ${draggerSize}px`,\n\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\tmarginLeft:\n\t\t\t\t\t\t\t\t\t\tindex > 0 && (sizes[index] ?? 0) <= 1 && resolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t? -draggerSize\n\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\tmarginTop:\n\t\t\t\t\t\t\t\t\t\tindex > 0 && (sizes[index] ?? 0) <= 1 && resolvedOrientation === 'vertical'\n\t\t\t\t\t\t\t\t\t\t\t? -draggerSize\n\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\toutline: 'none',\n\t\t\t\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\t\t\t\tuserSelect: 'none',\n\t\t\t\t\t\t\t\t\tzIndex: isAnyCollapsed ? 2 : 1,\n\t\t\t\t\t\t\t\t\t...semanticStyles.dragger,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ttabIndex={0}\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{draggerIcon ? (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\t\t\t\t\thoveredIndex === index || draggingIndex === index ? '#1677ff' : '#8c8c8c',\n\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t\t\t\t\t\t\t\ttransition: 'color 0.2s ease',\n\t\t\t\t\t\t\t\t\t\t\tuserSelect: 'none',\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{draggerIcon}\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\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\t\thoveredIndex === index || draggingIndex === index ? '#1677ff' : '#d9d9d9',\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: 2,\n\t\t\t\t\t\t\t\t\t\t\theight: resolvedOrientation === 'horizontal' ? 40 : 2,\n\t\t\t\t\t\t\t\t\t\t\ttransition: 'background 0.2s ease',\n\t\t\t\t\t\t\t\t\t\t\twidth: resolvedOrientation === 'horizontal' ? 2 : 40,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{/* 未折叠状态下呈现折叠按钮 */}\n\t\t\t\t\t\t\t\t{!isAnyCollapsed && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\t\t\t\t\t\ttop: '50%',\n\t\t\t\t\t\t\t\t\t\t\tleft: '50%',\n\t\t\t\t\t\t\t\t\t\t\ttransform: 'translate(-50%, -50%)',\n\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\tflexDirection: resolvedOrientation === 'horizontal' ? 'row' : 'column',\n\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\t\t\tgap: 2,\n\t\t\t\t\t\t\t\t\t\t\tzIndex: 5,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'flex-end',\n\t\t\t\t\t\t\t\t\t\t\t\tminHeight: resolvedOrientation === 'horizontal' ? undefined : 14,\n\t\t\t\t\t\t\t\t\t\t\t\tminWidth: resolvedOrientation === 'horizontal' ? 14 : undefined,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{renderCollapseButton(index, index, 'start')}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'flex-start',\n\t\t\t\t\t\t\t\t\t\t\t\tminHeight: resolvedOrientation === 'horizontal' ? undefined : 14,\n\t\t\t\t\t\t\t\t\t\t\t\tminWidth: resolvedOrientation === 'horizontal' ? 14 : undefined,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{renderCollapseButton(index, index + 1, 'end')}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{/* 折叠状态下呈现展开按钮(必须包含 collapsible 允许方可渲染) */}\n\t\t\t\t\t\t\t\t{isAnyCollapsed && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? '50%'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tbottom:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isRightOrBottomCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tleft:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: '50%',\n\t\t\t\t\t\t\t\t\t\t\tright:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isRightOrBottomCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\t\t\t\t\tpointerEvents: 'auto',\n\t\t\t\t\t\t\t\t\t\t\tzIndex: 5,\n\t\t\t\t\t\t\t\t\t\t\ttransform:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? `translate(${isLeftOrTopCollapsed ? '4px' : '-4px'}, -50%)`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: `translate(-50%, ${isLeftOrTopCollapsed ? '4px' : '-4px'})`,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{(() => {\n\t\t\t\t\t\t\t\t\t\t\tconst isStart = isLeftOrTopCollapsed;\n\t\t\t\t\t\t\t\t\t\t\tconst targetIndex = isStart ? index : index + 1;\n\t\t\t\t\t\t\t\t\t\t\tconst targetPanel = panels[targetIndex];\n\t\t\t\t\t\t\t\t\t\t\tconst config = getCollapsibleConfig(targetPanel?.props.collapsible);\n\t\t\t\t\t\t\t\t\t\t\tconst isAllowed = isStart ? config.start : config.end;\n\n\t\t\t\t\t\t\t\t\t\t\tif (!isAllowed || config.showCollapsibleIcon === false) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tconst ExpandIcon =\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? RightOutlined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: LeftOutlined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? DownOutlined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: UpOutlined;\n\n\t\t\t\t\t\t\t\t\t\t\tconst neighborIndex = isLeftOrTopCollapsed ? index + 1 : index;\n\t\t\t\t\t\t\t\t\t\t\tconst isHorizontal = resolvedOrientation === 'horizontal';\n\n\t\t\t\t\t\t\t\t\t\t\tconst expandTitle =\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? '展开左侧面板'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: '展开右侧面板'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? '展开上方面板'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: '展开下方面板';\n\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-label={expandTitle}\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitle={expandTitle}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleCollapse(targetIndex, neighborIndex);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonDoubleClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackground: '#f3f4f6',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: '1px solid #e5e7eb',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: 3,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: '#595959',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: isHorizontal ? 40 : 14,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: isHorizontal ? 14 : 40,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: 10,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: '0 1px 3px rgba(0, 0, 0, 0.08)',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: 'all 0.2s ease',\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.background = '#e5e7eb';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.color = '#1f2937';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHoveredCollapsePanelIndex(targetIndex);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.background = '#f3f4f6';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.color = '#595959';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHoveredCollapsePanelIndex(null);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\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\t\t<ExpandIcon />\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})()}\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</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nCustomSplitter.Panel = SplitterPanel;\n\nexport default CustomSplitter;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RightOutlined, LeftOutlined, DownOutlined, UpOutlined } from './chunk-
|
|
1
|
+
import { RightOutlined, LeftOutlined, DownOutlined, UpOutlined } from './chunk-537T6BR3.js';
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
4
|
|
|
@@ -100,5 +100,5 @@ var CollapsibleBox = ({
|
|
|
100
100
|
var CollapseBox_default = CollapsibleBox;
|
|
101
101
|
|
|
102
102
|
export { CollapseBox_default };
|
|
103
|
-
//# sourceMappingURL=chunk-
|
|
104
|
-
//# sourceMappingURL=chunk-
|
|
103
|
+
//# sourceMappingURL=chunk-U4VZGKQV.js.map
|
|
104
|
+
//# sourceMappingURL=chunk-U4VZGKQV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../CollapseBox/index.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../CollapseBox/index.tsx"],"names":[],"mappings":"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","file":"chunk-U4VZGKQV.js","sourcesContent":["import { useState, type CSSProperties, type ReactNode } from 'react';\nimport { DownOutlined, LeftOutlined, RightOutlined, UpOutlined } from '../src/icons';\nimport './index.less';\n\nexport type CollapseBoxDirection = 'horizontal' | 'vertical';\nexport type CollapseBoxButtonPosition = 'left' | 'right' | 'top' | 'bottom';\n\nexport interface CollapseBoxProps {\n\tchildren?: ReactNode;\n\ttitle?: string;\n\tdirection?: CollapseBoxDirection;\n\tbuttonPosition?: CollapseBoxButtonPosition;\n\tdefaultWidth?: number | string;\n\tdefaultHeight?: number | string;\n\tcontentPadding?: string;\n\theaderHeight?: number;\n\tclassName?: string;\n}\n\nconst formatDimension = (value?: number | string): string | undefined => {\n\tif (value === undefined || value === null) return undefined;\n\treturn typeof value === 'number' ? `${value}px` : value;\n};\n\nconst ChevronLeft = () => <LeftOutlined />;\n\nconst ChevronRight = () => <RightOutlined />;\n\nconst ChevronUp = () => <UpOutlined />;\n\nconst ChevronDown = () => <DownOutlined />;\n\nconst CollapsibleBox = ({\n\tchildren,\n\ttitle = '内容区域',\n\tdirection = 'horizontal',\n\tbuttonPosition = 'right',\n\tdefaultWidth = 600,\n\tdefaultHeight = 300,\n\tcontentPadding = '16px',\n\theaderHeight = 16,\n\tclassName,\n}: CollapseBoxProps) => {\n\tconst [isExpanded, setIsExpanded] = useState(true);\n\n\tconst getContentMaxHeight = () => {\n\t\tif (typeof defaultHeight === 'number') {\n\t\t\treturn `${defaultHeight - headerHeight}px`;\n\t\t}\n\t\tif (typeof defaultHeight === 'string') {\n\t\t\treturn headerHeight ? `calc(${defaultHeight} - ${headerHeight}px)` : defaultHeight;\n\t\t}\n\t\treturn '100%';\n\t};\n\n\tconst getIcon = () => {\n\t\tif (direction === 'horizontal') {\n\t\t\tif (buttonPosition === 'right') {\n\t\t\t\treturn isExpanded ? <ChevronRight /> : <ChevronLeft />;\n\t\t\t}\n\t\t\treturn isExpanded ? <ChevronLeft /> : <ChevronRight />;\n\t\t}\n\t\tif (buttonPosition === 'bottom') {\n\t\t\treturn isExpanded ? <ChevronDown /> : <ChevronUp />;\n\t\t}\n\t\treturn isExpanded ? <ChevronUp /> : <ChevronDown />;\n\t};\n\n\tconst getButtonClass = () => {\n\t\tif (direction === 'horizontal') {\n\t\t\treturn buttonPosition === 'right' ? 'button-right' : 'button-left';\n\t\t}\n\t\treturn buttonPosition === 'bottom' ? 'button-bottom' : 'button-top';\n\t};\n\n\tconst getContainerStyle = (): CSSProperties => {\n\t\tif (direction === 'horizontal') {\n\t\t\treturn {\n\t\t\t\twidth: isExpanded ? '100%' : '0px',\n\t\t\t\theight: '100%',\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\theight: isExpanded ? '100%' : '0px',\n\t\t\twidth: '100%',\n\t\t};\n\t};\n\n\tconst baseWrapperClass =\n\t\tdirection === 'horizontal' ? 'collapsible-wrapper horizontal' : 'collapsible-wrapper vertical';\n\tconst wrapperClass = className ? `${baseWrapperClass} ${className}` : baseWrapperClass;\n\n\tconst containerClass = [\n\t\t'collapsible-container',\n\t\tdirection === 'horizontal' && buttonPosition === 'right' ? 'align-right' : '',\n\t\tdirection === 'vertical' && buttonPosition === 'bottom' ? 'align-bottom' : '',\n\t]\n\t\t.filter(Boolean)\n\t\t.join(' ');\n\n\tconst height = getContentMaxHeight();\n\tconst contentStyle: CSSProperties = {\n\t\tmaxHeight: direction === 'vertical' ? (isExpanded ? height : '0px') : height,\n\t\toverflowY: 'auto',\n\t\tpadding: contentPadding,\n\t\tboxSizing: 'border-box',\n\t};\n\n\tconst formattedWidth = formatDimension(defaultWidth);\n\tconst formattedHeight = formatDimension(defaultHeight);\n\tconst wrapperStyle: CSSProperties = {\n\t\twidth: formattedWidth,\n\t\theight: formattedHeight,\n\t};\n\n\treturn (\n\t\t<div className={wrapperClass} style={wrapperStyle}>\n\t\t\t<div style={getContainerStyle()} className={containerClass}>\n\t\t\t\t{title && (\n\t\t\t\t\t<div className=\"collapsible-header\" style={{ display: 'none' }}>\n\t\t\t\t\t\t<h3>{title}</h3>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t<div className=\"collapsible-content\" style={contentStyle}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tonClick={() => setIsExpanded(!isExpanded)}\n\t\t\t\tclassName={`toggle-button ${getButtonClass()}`}\n\t\t\t\ttitle={isExpanded ? '隐藏' : '展开'}\n\t\t\t>\n\t\t\t\t{getIcon()}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default CollapsibleBox;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LockOutlined } from './chunk-
|
|
1
|
+
import { LockOutlined } from './chunk-537T6BR3.js';
|
|
2
2
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
3
3
|
|
|
4
4
|
var DisabledBox = ({
|
|
@@ -39,5 +39,5 @@ var DisabledBox = ({
|
|
|
39
39
|
var DisabledBox_default = DisabledBox;
|
|
40
40
|
|
|
41
41
|
export { DisabledBox_default };
|
|
42
|
-
//# sourceMappingURL=chunk-
|
|
43
|
-
//# sourceMappingURL=chunk-
|
|
42
|
+
//# sourceMappingURL=chunk-VAU4USHW.js.map
|
|
43
|
+
//# sourceMappingURL=chunk-VAU4USHW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../DisabledBox/index.tsx"],"names":[],"mappings":";;;AAmBA,IAAM,cAA0C,CAAC;AAAA,EAChD,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,SAAA,GAAY,MAAA;AAAA,EACZ,SAAA,GAAY,EAAA;AAAA,EACZ;AACD,CAAA,KAAM;AACL,EAAA,MAAM,UAAU,QAAA,IAAA,IAAA,GAAA,QAAA,GAAY,KAAA;AAG5B,EAAA,IAAI,CAAC,QAAA,EAAU;AACd,IAAA,IAAI,aAAa,KAAA,EAAO;AACvB,MAAA,uBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAsB,KAAA,EACzB,QAAA,EAAA,OAAA,EACF,CAAA;AAAA,IAEF;AACA,IAAA,uCAAU,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,EACnB;AAGA,EAAA,MAAM,kBAAA,GAAqB,CAAC,CAAA,KAAwB;AACnD,IAAA,IAAI,QAAA,EAAU;AACb,MAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,MAAA,CAAA,CAAE,cAAA,EAAe;AAAA,IAClB;AAAA,EACD,CAAA;AAEA,EAAA,uBACC,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,SAAA,EAAW,gDAAgD,SAAS,CAAA,CAAA;AAAA,MACpE,KAAA;AAAA,MACA,cAAA,EAAgB,kBAAA;AAAA,MAEf,QAAA,EAAA;AAAA,QAAA,SAAA,KAAc,MAAA,oBAAU,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,mBAAA,EAAoB,CAAA;AAAA,wBACrE,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,QAC7C,SAAA,KAAc,OAAA,oBAAW,GAAA,CAAC,YAAA,EAAA,EAAa,WAAU,mBAAA,EAAoB;AAAA;AAAA;AAAA,GACvE;AAEF,CAAA;AAEA,IAAO,mBAAA,GAAQ","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../DisabledBox/index.tsx"],"names":[],"mappings":";;;AAmBA,IAAM,cAA0C,CAAC;AAAA,EAChD,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,SAAA,GAAY,MAAA;AAAA,EACZ,SAAA,GAAY,EAAA;AAAA,EACZ;AACD,CAAA,KAAM;AACL,EAAA,MAAM,UAAU,QAAA,IAAA,IAAA,GAAA,QAAA,GAAY,KAAA;AAG5B,EAAA,IAAI,CAAC,QAAA,EAAU;AACd,IAAA,IAAI,aAAa,KAAA,EAAO;AACvB,MAAA,uBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAsB,KAAA,EACzB,QAAA,EAAA,OAAA,EACF,CAAA;AAAA,IAEF;AACA,IAAA,uCAAU,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,EACnB;AAGA,EAAA,MAAM,kBAAA,GAAqB,CAAC,CAAA,KAAwB;AACnD,IAAA,IAAI,QAAA,EAAU;AACb,MAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,MAAA,CAAA,CAAE,cAAA,EAAe;AAAA,IAClB;AAAA,EACD,CAAA;AAEA,EAAA,uBACC,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,SAAA,EAAW,gDAAgD,SAAS,CAAA,CAAA;AAAA,MACpE,KAAA;AAAA,MACA,cAAA,EAAgB,kBAAA;AAAA,MAEf,QAAA,EAAA;AAAA,QAAA,SAAA,KAAc,MAAA,oBAAU,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,mBAAA,EAAoB,CAAA;AAAA,wBACrE,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,QAC7C,SAAA,KAAc,OAAA,oBAAW,GAAA,CAAC,YAAA,EAAA,EAAa,WAAU,mBAAA,EAAoB;AAAA;AAAA;AAAA,GACvE;AAEF,CAAA;AAEA,IAAO,mBAAA,GAAQ","file":"chunk-VAU4USHW.js","sourcesContent":["import React, { ReactNode, CSSProperties } from 'react';\nimport { LockOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface DisabledBoxProps {\n\t/** 内容节点(优先于 title) */\n\tchildren?: ReactNode;\n\t/** 标题文案(当无 children 时作为内容) */\n\ttitle?: ReactNode;\n\t/** 是否禁用,禁用时显示锁图标 + 文字置灰 + 拦截点击事件 */\n\tdisabled?: boolean;\n\t/** 锁图标对齐方向:'left' 左侧,'right' 右侧,默认为 'left' */\n\ticonAlign?: 'left' | 'right';\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst DisabledBox: React.FC<DisabledBoxProps> = ({\n\ttitle,\n\tchildren,\n\tdisabled = false,\n\ticonAlign = 'left',\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst content = children ?? title;\n\n\t// 未禁用时原样渲染\n\tif (!disabled) {\n\t\tif (className || style) {\n\t\t\treturn (\n\t\t\t\t<div className={className} style={style}>\n\t\t\t\t\t{content}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\t\treturn <>{content}</>;\n\t}\n\n\t// disabled 时在捕获阶段阻止 click 事件传播\n\tconst handleClickCapture = (e: React.MouseEvent) => {\n\t\tif (disabled) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t}\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`disabled_box_container disabled_box_disabled ${className}`}\n\t\t\tstyle={style}\n\t\t\tonClickCapture={handleClickCapture}\n\t\t>\n\t\t\t{iconAlign === 'left' && <LockOutlined className=\"disabled_box_icon\" />}\n\t\t\t<span className=\"disabled_box_title\">{content}</span>\n\t\t\t{iconAlign === 'right' && <LockOutlined className=\"disabled_box_icon\" />}\n\t\t</div>\n\t);\n};\n\nexport default DisabledBox;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LoadingOutlined } from './chunk-
|
|
1
|
+
import { LoadingOutlined } from './chunk-537T6BR3.js';
|
|
2
2
|
import { useRef, useCallback, useEffect } from 'react';
|
|
3
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
4
|
|
|
@@ -67,5 +67,5 @@ var InfiniteScrollList = ({
|
|
|
67
67
|
var InfiniteScrollList_default = InfiniteScrollList;
|
|
68
68
|
|
|
69
69
|
export { InfiniteScrollList_default };
|
|
70
|
-
//# sourceMappingURL=chunk-
|
|
71
|
-
//# sourceMappingURL=chunk-
|
|
70
|
+
//# sourceMappingURL=chunk-VY4XERM4.js.map
|
|
71
|
+
//# sourceMappingURL=chunk-VY4XERM4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../InfiniteScrollList/index.tsx"],"names":[],"mappings":";;;;AA6BA,IAAM,qBAAwD,CAAC;AAAA,EAC9D,QAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,UAAA,GAAa,kCAAA;AAAA,EACb,gBAAA;AAAA,EACA,MAAA;AAAA,EACA,gBAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ;AACD,CAAA,KAAM;AACL,EAAA,MAAM,YAAA,GAAe,OAAuB,IAAI,CAAA;AAChD,EAAA,MAAM,WAAA,GAAc,OAAuB,IAAI,CAAA;AAE/C,EAAA,MAAM,cAAA,GAAiB,YAAY,MAAM;AACxC,IAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACxB,MAAA,UAAA,EAAW;AAAA,IACZ;AAAA,EACD,CAAA,EAAG,CAAC,OAAA,EAAS,OAAA,EAAS,UAAU,CAAC,CAAA;AAGjC,EAAA,SAAA,CAAU,MAAM;AACf,IAAA,MAAM,WAAW,WAAA,CAAY,OAAA;AAC7B,IAAA,IAAI,CAAC,QAAA,EAAU;AAEf,IAAA,MAAM,QAAA,GACL,OAAO,gBAAA,KAAqB,UAAA,GACzB,kBAAiB,GACjB,gBAAA,KAAqB,MAAA,GAAS,YAAA,CAAa,OAAA,GAAU,IAAA,CAAA;AAEzD,IAAA,MAAM,WAAW,IAAI,oBAAA;AAAA,MACpB,CAAC,CAAC,KAAK,CAAA,KAAM;AACZ,QAAA,IAAI,MAAM,cAAA,EAAgB;AACzB,UAAA,cAAA,EAAe;AAAA,QAChB;AAAA,MACD,CAAA;AAAA,MACA;AAAA,QACC,MAAM,QAAA,IAAY,IAAA;AAAA,QAClB,UAAA,EAAY,WAAW,SAAS,CAAA,MAAA,CAAA;AAAA,QAChC,SAAA,EAAW;AAAA;AACZ,KACD;AAEA,IAAA,QAAA,CAAS,QAAQ,QAAQ,CAAA;AACzB,IAAA,OAAO,MAAM,SAAS,UAAA,EAAW;AAAA,EAClC,GAAG,CAAC,MAAA,EAAQ,gBAAA,EAAkB,SAAA,EAAW,cAAc,CAAC,CAAA;AAExD,EAAA,MAAM,uBAAA,mBACL,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EACd,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,mBAAgB,KAAA,EAAO,EAAE,UAAU,EAAA,EAAI,KAAA,EAAO,WAAU,EAAG,CAAA;AAAA,oBAC5D,GAAA,CAAC,UAAK,QAAA,EAAA,qDAAA,EAAW;AAAA,GAAA,EAClB,CAAA;AAGD,EAAA,MAAM,aAAA,GAAgB,QAAQ,MAAM,CAAA;AAEpC,EAAA,uBACC,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,GAAA,EAAK,YAAA;AAAA,MACL,WAAW,CAAA,yBAAA,EACV,aAAA,GAAgB,oCAAA,GAAuC,EACxD,IAAI,SAAS,CAAA,CAAA;AAAA,MACb,KAAA,EAAO;AAAA,QACN,MAAA;AAAA,QACA,GAAG;AAAA,OACJ;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBAGD,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,WAAA,EAAa,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,MAAA,EAAQ,CAAA,EAAG,OAAA,EAAS,CAAA,EAAE,EAAG,CAAA;AAAA,QAGnE,YAAY,gBAAA,IAAoB,uBAAA,CAAA;AAAA,QAChC,CAAC,OAAA,IAAW,UAAA,wBACX,KAAA,EAAA,EAAI,SAAA,EAAU,gEACb,QAAA,EAAA,UAAA,EACF;AAAA;AAAA;AAAA,GAEF;AAEF,CAAA;AAEA,IAAO,0BAAA,GAAQ","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../InfiniteScrollList/index.tsx"],"names":[],"mappings":";;;;AA6BA,IAAM,qBAAwD,CAAC;AAAA,EAC9D,QAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,UAAA,GAAa,kCAAA;AAAA,EACb,gBAAA;AAAA,EACA,MAAA;AAAA,EACA,gBAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ;AACD,CAAA,KAAM;AACL,EAAA,MAAM,YAAA,GAAe,OAAuB,IAAI,CAAA;AAChD,EAAA,MAAM,WAAA,GAAc,OAAuB,IAAI,CAAA;AAE/C,EAAA,MAAM,cAAA,GAAiB,YAAY,MAAM;AACxC,IAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACxB,MAAA,UAAA,EAAW;AAAA,IACZ;AAAA,EACD,CAAA,EAAG,CAAC,OAAA,EAAS,OAAA,EAAS,UAAU,CAAC,CAAA;AAGjC,EAAA,SAAA,CAAU,MAAM;AACf,IAAA,MAAM,WAAW,WAAA,CAAY,OAAA;AAC7B,IAAA,IAAI,CAAC,QAAA,EAAU;AAEf,IAAA,MAAM,QAAA,GACL,OAAO,gBAAA,KAAqB,UAAA,GACzB,kBAAiB,GACjB,gBAAA,KAAqB,MAAA,GAAS,YAAA,CAAa,OAAA,GAAU,IAAA,CAAA;AAEzD,IAAA,MAAM,WAAW,IAAI,oBAAA;AAAA,MACpB,CAAC,CAAC,KAAK,CAAA,KAAM;AACZ,QAAA,IAAI,MAAM,cAAA,EAAgB;AACzB,UAAA,cAAA,EAAe;AAAA,QAChB;AAAA,MACD,CAAA;AAAA,MACA;AAAA,QACC,MAAM,QAAA,IAAY,IAAA;AAAA,QAClB,UAAA,EAAY,WAAW,SAAS,CAAA,MAAA,CAAA;AAAA,QAChC,SAAA,EAAW;AAAA;AACZ,KACD;AAEA,IAAA,QAAA,CAAS,QAAQ,QAAQ,CAAA;AACzB,IAAA,OAAO,MAAM,SAAS,UAAA,EAAW;AAAA,EAClC,GAAG,CAAC,MAAA,EAAQ,gBAAA,EAAkB,SAAA,EAAW,cAAc,CAAC,CAAA;AAExD,EAAA,MAAM,uBAAA,mBACL,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EACd,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,mBAAgB,KAAA,EAAO,EAAE,UAAU,EAAA,EAAI,KAAA,EAAO,WAAU,EAAG,CAAA;AAAA,oBAC5D,GAAA,CAAC,UAAK,QAAA,EAAA,qDAAA,EAAW;AAAA,GAAA,EAClB,CAAA;AAGD,EAAA,MAAM,aAAA,GAAgB,QAAQ,MAAM,CAAA;AAEpC,EAAA,uBACC,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,GAAA,EAAK,YAAA;AAAA,MACL,WAAW,CAAA,yBAAA,EACV,aAAA,GAAgB,oCAAA,GAAuC,EACxD,IAAI,SAAS,CAAA,CAAA;AAAA,MACb,KAAA,EAAO;AAAA,QACN,MAAA;AAAA,QACA,GAAG;AAAA,OACJ;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBAGD,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,WAAA,EAAa,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,MAAA,EAAQ,CAAA,EAAG,OAAA,EAAS,CAAA,EAAE,EAAG,CAAA;AAAA,QAGnE,YAAY,gBAAA,IAAoB,uBAAA,CAAA;AAAA,QAChC,CAAC,OAAA,IAAW,UAAA,wBACX,KAAA,EAAA,EAAI,SAAA,EAAU,gEACb,QAAA,EAAA,UAAA,EACF;AAAA;AAAA;AAAA,GAEF;AAEF,CAAA;AAEA,IAAO,0BAAA,GAAQ","file":"chunk-VY4XERM4.js","sourcesContent":["import React, { useRef, useEffect, useCallback, ReactNode, CSSProperties } from 'react';\nimport { LoadingOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface InfiniteScrollListProps {\n\t/** 列表项子内容 */\n\tchildren: ReactNode;\n\t/** 是否还有更多数据可供加载 */\n\thasMore: boolean;\n\t/** 当前是否正在加载下一页 */\n\tloading: boolean;\n\t/** 触底加载下一页回调 */\n\tonLoadMore: () => void | Promise<void>;\n\t/** 触发加载的触底距离阈值(像素),默认为 40 */\n\tthreshold?: number;\n\t/** 没有更多数据时的底部提示内容,默认为 '已经到底啦 ~' */\n\tendMessage?: ReactNode;\n\t/** 加载中指示器组件,默认为 Spin 图标与 '正在加载更多...' */\n\tloadingIndicator?: ReactNode;\n\t/** 容器固定高度(传值时为局部滚动容器,不传时监听 window 全局滚动) */\n\theight?: number | string;\n\t/** 滚动容器 ref 或自定义对象 */\n\tscrollableTarget?: HTMLElement | (() => HTMLElement | null) | null;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst InfiniteScrollList: React.FC<InfiniteScrollListProps> = ({\n\tchildren,\n\thasMore,\n\tloading,\n\tonLoadMore,\n\tthreshold = 40,\n\tendMessage = '已经到底啦 ~',\n\tloadingIndicator,\n\theight,\n\tscrollableTarget,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\tconst sentinelRef = useRef<HTMLDivElement>(null);\n\n\tconst handleLoadMore = useCallback(() => {\n\t\tif (!loading && hasMore) {\n\t\t\tonLoadMore();\n\t\t}\n\t}, [loading, hasMore, onLoadMore]);\n\n\t// 使用 IntersectionObserver 监听底部哨兵元素\n\tuseEffect(() => {\n\t\tconst sentinel = sentinelRef.current;\n\t\tif (!sentinel) return;\n\n\t\tconst targetEl =\n\t\t\ttypeof scrollableTarget === 'function'\n\t\t\t\t? scrollableTarget()\n\t\t\t\t: scrollableTarget || (height ? containerRef.current : null);\n\n\t\tconst observer = new IntersectionObserver(\n\t\t\t([entry]) => {\n\t\t\t\tif (entry.isIntersecting) {\n\t\t\t\t\thandleLoadMore();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\troot: targetEl || null,\n\t\t\t\trootMargin: `0px 0px ${threshold}px 0px`,\n\t\t\t\tthreshold: 0,\n\t\t\t},\n\t\t);\n\n\t\tobserver.observe(sentinel);\n\t\treturn () => observer.disconnect();\n\t}, [height, scrollableTarget, threshold, handleLoadMore]);\n\n\tconst defaultLoadingIndicator = (\n\t\t<div className=\"rpc_infinite_scroll_list_footer\">\n\t\t\t<LoadingOutlined style={{ fontSize: 16, color: '#1677ff' }} />\n\t\t\t<span>正在加载更多数据...</span>\n\t\t</div>\n\t);\n\n\tconst isLocalScroll = Boolean(height);\n\n\treturn (\n\t\t<div\n\t\t\tref={containerRef}\n\t\t\tclassName={`rpc_infinite_scroll_list ${\n\t\t\t\tisLocalScroll ? 'rpc_infinite_scroll_list_container' : ''\n\t\t\t} ${className}`}\n\t\t\tstyle={{\n\t\t\t\theight: height,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\n\t\t\t{/* 底部哨兵元素 */}\n\t\t\t<div ref={sentinelRef} style={{ height: 1, margin: 0, padding: 0 }} />\n\n\t\t\t{/* 底部状态提示 */}\n\t\t\t{loading && (loadingIndicator || defaultLoadingIndicator)}\n\t\t\t{!hasMore && endMessage && (\n\t\t\t\t<div className=\"rpc_infinite_scroll_list_footer rpc_infinite_scroll_list_end\">\n\t\t\t\t\t{endMessage}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default InfiniteScrollList;\n"]}
|
|
@@ -192,5 +192,5 @@ var LazyLoadBox_default = LazyLoadBox;
|
|
|
192
192
|
|
|
193
193
|
exports.LazyLoadBox = LazyLoadBox;
|
|
194
194
|
exports.LazyLoadBox_default = LazyLoadBox_default;
|
|
195
|
-
//# sourceMappingURL=chunk-
|
|
196
|
-
//# sourceMappingURL=chunk-
|
|
195
|
+
//# sourceMappingURL=chunk-W52O3Y2I.cjs.map
|
|
196
|
+
//# sourceMappingURL=chunk-W52O3Y2I.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../LazyLoadBox/index.tsx"],"names":["forwardRef","useRef","useState","useImperativeHandle","useEffect","jsx"],"mappings":"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","file":"chunk-W52O3Y2I.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 =\n\t| number\n\t| string\n\t| [number | string, number | string]\n\t| [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\tHTMLElement | null | string | RefObject<HTMLElement | null> | (() => 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\t? typeof children === 'function'\n\t\t\t\t\t\t? (children as (props: LazyRenderProps) => ReactNode)({\n\t\t\t\t\t\t\t\tisInView,\n\t\t\t\t\t\t\t\thasLoaded,\n\t\t\t\t\t\t\t\tload: triggerLoad,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: children\n\t\t\t\t\t: placeholder !== undefined\n\t\t\t\t\t\t? placeholder\n\t\t\t\t\t\t: defaultPlaceholder}\n\t\t\t</div>\n\t\t);\n\t},\n);\n\nLazyLoadBox.displayName = 'LazyLoadBox';\n\nexport default LazyLoadBox;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkQMLDK2DL_cjs = require('./chunk-QMLDK2DL.cjs');
|
|
4
4
|
var react = require('react');
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
|
|
@@ -89,7 +89,7 @@ var PasswordStrength = ({
|
|
|
89
89
|
{
|
|
90
90
|
className: `rpc_password_strength_rule_item ${isPassed ? "rpc_password_strength_rule_item_passed" : ""}`,
|
|
91
91
|
children: [
|
|
92
|
-
isPassed ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
92
|
+
isPassed ? /* @__PURE__ */ jsxRuntime.jsx(chunkQMLDK2DL_cjs.CheckOutlined, { style: { fontSize: 11 } }) : /* @__PURE__ */ jsxRuntime.jsx(chunkQMLDK2DL_cjs.CloseOutlined, { style: { fontSize: 10, opacity: 0.5 } }),
|
|
93
93
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: r.label })
|
|
94
94
|
]
|
|
95
95
|
},
|
|
@@ -102,5 +102,5 @@ var PasswordStrength_default = PasswordStrength;
|
|
|
102
102
|
|
|
103
103
|
exports.PasswordStrength_default = PasswordStrength_default;
|
|
104
104
|
exports.evaluatePasswordStrength = evaluatePasswordStrength;
|
|
105
|
-
//# sourceMappingURL=chunk-
|
|
106
|
-
//# sourceMappingURL=chunk-
|
|
105
|
+
//# sourceMappingURL=chunk-W7LZVHTA.cjs.map
|
|
106
|
+
//# sourceMappingURL=chunk-W7LZVHTA.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../PasswordStrength/index.tsx"],"names":["useMemo","jsx","jsxs","CheckOutlined","CloseOutlined"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../PasswordStrength/index.tsx"],"names":["useMemo","jsx","jsxs","CheckOutlined","CloseOutlined"],"mappings":";;;;;;AA6BA,IAAM,YAAA,GAA+B;AAAA,EACpC;AAAA,IACC,GAAA,EAAK,QAAA;AAAA,IACL,KAAA,EAAO,mCAAA;AAAA,IACP,SAAA,EAAW,CAAC,GAAA,KAAQ,GAAA,CAAI,MAAA,IAAU;AAAA,GACnC;AAAA,EACA;AAAA,IACC,GAAA,EAAK,WAAA;AAAA,IACL,KAAA,EAAO,4CAAA;AAAA,IACP,SAAA,EAAW,CAAC,GAAA,KAAQ,OAAA,CAAQ,KAAK,GAAG;AAAA,GACrC;AAAA,EACA;AAAA,IACC,GAAA,EAAK,WAAA;AAAA,IACL,KAAA,EAAO,4CAAA;AAAA,IACP,SAAA,EAAW,CAAC,GAAA,KAAQ,OAAA,CAAQ,KAAK,GAAG;AAAA,GACrC;AAAA,EACA;AAAA,IACC,GAAA,EAAK,QAAA;AAAA,IACL,KAAA,EAAO,gCAAA;AAAA,IACP,SAAA,EAAW,CAAC,GAAA,KAAQ,OAAA,CAAQ,KAAK,GAAG;AAAA,GACrC;AAAA,EACA;AAAA,IACC,GAAA,EAAK,SAAA;AAAA,IACL,KAAA,EAAO,gDAAA;AAAA,IACP,SAAA,EAAW,CAAC,GAAA,KAAQ,cAAA,CAAe,KAAK,GAAG;AAAA;AAE7C,CAAA;AAGO,SAAS,wBAAA,CACf,GAAA,GAAc,EAAA,EACd,KAAA,GAAwB,YAAA,EACgD;AACxE,EAAA,IAAI,CAAC,GAAA,EAAK;AACT,IAAA,OAAO,EAAE,KAAA,EAAO,CAAA,EAAG,OAAO,CAAA,EAAG,UAAA,EAAY,EAAC,EAAE;AAAA,EAC7C;AAEA,EAAA,MAAM,UAAA,GAAa,KAAA,CAAM,MAAA,CAAO,CAAC,MAAM,CAAA,CAAE,SAAA,CAAU,GAAG,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,GAAG,CAAA;AACzE,EAAA,IAAI,QAAQ,UAAA,CAAW,MAAA;AAGvB,EAAA,IAAI,GAAA,CAAI,SAAS,CAAA,EAAG;AACnB,IAAA,OAAO,EAAE,KAAA,EAAO,CAAA,EAAG,KAAA,EAAO,GAAG,UAAA,EAAW;AAAA,EACzC;AAEA,EAAA,IAAI,KAAA,GAA+B,CAAA;AACnC,EAAA,IAAI,KAAA,IAAS,GAAG,KAAA,GAAQ,CAAA;AAAA,OAAA,IACf,KAAA,IAAS,GAAG,KAAA,GAAQ,CAAA;AAAA,OAAA,IACpB,KAAA,KAAU,GAAG,KAAA,GAAQ,CAAA;AAAA,OACzB,KAAA,GAAQ,CAAA;AAEb,EAAA,OAAO,EAAE,KAAA,EAAO,KAAA,EAAO,UAAA,EAAW;AACnC;AAEA,IAAM,WAAA,GAGF;AAAA,EACH,GAAG,EAAE,IAAA,EAAM,IAAI,KAAA,EAAO,SAAA,EAAW,aAAa,EAAA,EAAG;AAAA,EACjD,GAAG,EAAE,IAAA,EAAM,4BAAQ,KAAA,EAAO,SAAA,EAAW,aAAa,MAAA,EAAO;AAAA,EACzD,GAAG,EAAE,IAAA,EAAM,4BAAQ,KAAA,EAAO,SAAA,EAAW,aAAa,QAAA,EAAS;AAAA,EAC3D,GAAG,EAAE,IAAA,EAAM,4BAAQ,KAAA,EAAO,SAAA,EAAW,aAAa,MAAA,EAAO;AAAA,EACzD,GAAG,EAAE,IAAA,EAAM,4BAAQ,KAAA,EAAO,SAAA,EAAW,aAAa,QAAA;AACnD,CAAA;AAEA,IAAM,mBAAoD,CAAC;AAAA,EAC1D,QAAA,GAAW,EAAA;AAAA,EACX,QAAA,GAAW,IAAA;AAAA,EACX,SAAA,GAAY,KAAA;AAAA,EACZ,KAAA,GAAQ,YAAA;AAAA,EACR,aAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ;AACD,CAAA,KAAM;AACL,EAAA,MAAM,EAAE,KAAA,EAAO,UAAA,EAAW,GAAIA,cAAQ,MAAM;AAC3C,IAAA,MAAM,GAAA,GAAM,wBAAA,CAAyB,QAAA,EAAU,KAAK,CAAA;AACpD,IAAA,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAgB,GAAA,CAAI,KAAA,CAAA;AACpB,IAAA,OAAO,GAAA;AAAA,EACR,CAAA,EAAG,CAAC,QAAA,EAAU,KAAA,EAAO,aAAa,CAAC,CAAA;AAEnC,EAAA,MAAM,WAAA,GAAc,YAAY,KAAK,CAAA;AAErC,EAAA,uCACE,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA,sBAAA,EAAyB,SAAS,IAAI,KAAA,EAErD,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAAA,EACb,QAAA,EAAA,CAAC,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,QAAA,KAAa;AAC/B,MAAA,MAAM,WAAW,KAAA,IAAS,QAAA;AAC1B,MAAA,MAAM,YAAA,GAAe;AAAA,QACpB,mCAAA;AAAA,QACA,YAAY,WAAA,CAAY,WAAA,GACrB,CAAA,yCAAA,EAA4C,WAAA,CAAY,WAAW,CAAA,CAAA,GACnE;AAAA,OACJ,CACE,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAEV,MAAA,uBAAOA,cAAA,CAAC,KAAA,EAAA,EAAmB,SAAA,EAAW,YAAA,EAAA,EAArB,QAAmC,CAAA;AAAA,IACrD,CAAC,CAAA,EACF,CAAA;AAAA,IAGC,QAAA,oBACAC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACd,QAAA,EAAA;AAAA,sBAAAD,cAAA,CAAC,UAAK,QAAA,EAAA,gCAAA,EAAK,CAAA;AAAA,sBACXA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAmC,KAAA,EAAO,EAAE,KAAA,EAAO,WAAA,CAAY,KAAA,EAAM,EACnF,QAAA,EAAA,QAAA,GAAW,WAAA,CAAY,OAAO,gCAAA,EAChC;AAAA,KAAA,EACD,CAAA;AAAA,IAIA,SAAA,mCACC,KAAA,EAAA,EAAI,SAAA,EAAU,+BACb,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,KAAM;AACjB,MAAA,MAAM,QAAA,GAAW,UAAA,CAAW,QAAA,CAAS,CAAA,CAAE,GAAG,CAAA;AAC1C,MAAA,uBACCC,eAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UAEA,SAAA,EAAW,CAAA,gCAAA,EACV,QAAA,GAAW,wCAAA,GAA2C,EACvD,CAAA,CAAA;AAAA,UAEC,QAAA,EAAA;AAAA,YAAA,QAAA,kCACCC,+BAAA,EAAA,EAAc,KAAA,EAAO,EAAE,QAAA,EAAU,IAAG,EAAG,CAAA,mBAExCF,cAAA,CAACG,+BAAA,EAAA,EAAc,OAAO,EAAE,QAAA,EAAU,EAAA,EAAI,OAAA,EAAS,KAAI,EAAG,CAAA;AAAA,4BAEvDH,cAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,CAAA,CAAE,KAAA,EAAM;AAAA;AAAA,SAAA;AAAA,QAVV,CAAA,CAAE;AAAA,OAWR;AAAA,IAEF,CAAC,CAAA,EACF;AAAA,GAAA,EAEF,CAAA;AAEF,CAAA;AAEA,IAAO,wBAAA,GAAQ","file":"chunk-W7LZVHTA.cjs","sourcesContent":["import React, { useMemo, ReactNode, CSSProperties } from 'react';\nimport { CheckOutlined, CloseOutlined } from '../src/icons';\nimport './index.less';\n\nexport type PasswordStrengthLevel = 0 | 1 | 2 | 3 | 4;\n\nexport interface PasswordRule {\n\tkey: string;\n\tlabel: ReactNode;\n\tvalidator: (password: string) => boolean;\n}\n\nexport interface PasswordStrengthProps {\n\t/** 当前输入的密码文本 */\n\tpassword?: string;\n\t/** 是否显示密码强度文字(弱/中/强/极强),默认为 true */\n\tshowText?: boolean;\n\t/** 是否显示密码规则校验清单,默认为 false */\n\tshowRules?: boolean;\n\t/** 自定义规则列表 */\n\trules?: PasswordRule[];\n\t/** 强度等级改变回调 */\n\tonLevelChange?: (level: PasswordStrengthLevel) => void;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst defaultRules: PasswordRule[] = [\n\t{\n\t\tkey: 'length',\n\t\tlabel: '长度至少 8 位',\n\t\tvalidator: (pwd) => pwd.length >= 8,\n\t},\n\t{\n\t\tkey: 'lowercase',\n\t\tlabel: '包含小写字母 (a-z)',\n\t\tvalidator: (pwd) => /[a-z]/.test(pwd),\n\t},\n\t{\n\t\tkey: 'uppercase',\n\t\tlabel: '包含大写字母 (A-Z)',\n\t\tvalidator: (pwd) => /[A-Z]/.test(pwd),\n\t},\n\t{\n\t\tkey: 'number',\n\t\tlabel: '包含数字 (0-9)',\n\t\tvalidator: (pwd) => /[0-9]/.test(pwd),\n\t},\n\t{\n\t\tkey: 'special',\n\t\tlabel: '包含特殊符号 (!@#$...)',\n\t\tvalidator: (pwd) => /[^A-Za-z0-9]/.test(pwd),\n\t},\n];\n\n// 计算密码强度得分 (0~4)\nexport function evaluatePasswordStrength(\n\tpwd: string = '',\n\trules: PasswordRule[] = defaultRules,\n): { level: PasswordStrengthLevel; score: number; passedKeys: string[] } {\n\tif (!pwd) {\n\t\treturn { level: 0, score: 0, passedKeys: [] };\n\t}\n\n\tconst passedKeys = rules.filter((r) => r.validator(pwd)).map((r) => r.key);\n\tlet score = passedKeys.length;\n\n\t// 如果长度过短(<6),强制判定为弱\n\tif (pwd.length < 6) {\n\t\treturn { level: 1, score: 1, passedKeys };\n\t}\n\n\tlet level: PasswordStrengthLevel = 1;\n\tif (score <= 1) level = 1;\n\telse if (score <= 3) level = 2;\n\telse if (score === 4) level = 3;\n\telse level = 4;\n\n\treturn { level, score, passedKeys };\n}\n\nconst levelConfig: Record<\n\tPasswordStrengthLevel,\n\t{ text: string; color: string; classSuffix: string }\n> = {\n\t0: { text: '', color: '#d9d9d9', classSuffix: '' },\n\t1: { text: '强度较弱', color: '#ff4d4f', classSuffix: 'weak' },\n\t2: { text: '强度中等', color: '#fa8c16', classSuffix: 'medium' },\n\t3: { text: '强度良好', color: '#1677ff', classSuffix: 'good' },\n\t4: { text: '强度极高', color: '#52c41a', classSuffix: 'strong' },\n};\n\nconst PasswordStrength: React.FC<PasswordStrengthProps> = ({\n\tpassword = '',\n\tshowText = true,\n\tshowRules = false,\n\trules = defaultRules,\n\tonLevelChange,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst { level, passedKeys } = useMemo(() => {\n\t\tconst res = evaluatePasswordStrength(password, rules);\n\t\tonLevelChange?.(res.level);\n\t\treturn res;\n\t}, [password, rules, onLevelChange]);\n\n\tconst currentInfo = levelConfig[level];\n\n\treturn (\n\t\t<div className={`rpc_password_strength ${className}`} style={style}>\n\t\t\t{/* 4 段彩色进度条 */}\n\t\t\t<div className=\"rpc_password_strength_bars\">\n\t\t\t\t{[1, 2, 3, 4].map((segIndex) => {\n\t\t\t\t\tconst isActive = level >= segIndex;\n\t\t\t\t\tconst segmentClass = [\n\t\t\t\t\t\t'rpc_password_strength_bar_segment',\n\t\t\t\t\t\tisActive && currentInfo.classSuffix\n\t\t\t\t\t\t\t? `rpc_password_strength_bar_segment_active_${currentInfo.classSuffix}`\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t]\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.join(' ');\n\n\t\t\t\t\treturn <div key={segIndex} className={segmentClass} />;\n\t\t\t\t})}\n\t\t\t</div>\n\n\t\t\t{/* 文本说明 */}\n\t\t\t{showText && (\n\t\t\t\t<div className=\"rpc_password_strength_label\">\n\t\t\t\t\t<span>密码安全性</span>\n\t\t\t\t\t<span className=\"rpc_password_strength_level_text\" style={{ color: currentInfo.color }}>\n\t\t\t\t\t\t{password ? currentInfo.text : '未输入密码'}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* 规则校验列表 */}\n\t\t\t{showRules && (\n\t\t\t\t<div className=\"rpc_password_strength_rules\">\n\t\t\t\t\t{rules.map((r) => {\n\t\t\t\t\t\tconst isPassed = passedKeys.includes(r.key);\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={r.key}\n\t\t\t\t\t\t\t\tclassName={`rpc_password_strength_rule_item ${\n\t\t\t\t\t\t\t\t\tisPassed ? 'rpc_password_strength_rule_item_passed' : ''\n\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{isPassed ? (\n\t\t\t\t\t\t\t\t\t<CheckOutlined style={{ fontSize: 11 }} />\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<CloseOutlined style={{ fontSize: 10, opacity: 0.5 }} />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<span>{r.label}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default PasswordStrength;\n"]}
|
|
@@ -16,7 +16,10 @@ var CeilingBox = ({
|
|
|
16
16
|
affixedStyle
|
|
17
17
|
}) => {
|
|
18
18
|
const [isAffixed, setIsAffixed] = useState(false);
|
|
19
|
-
const [boxRect, setBoxRect] = useState({
|
|
19
|
+
const [boxRect, setBoxRect] = useState({
|
|
20
|
+
width: 0,
|
|
21
|
+
height: 0
|
|
22
|
+
});
|
|
20
23
|
const placeholderRef = useRef(null);
|
|
21
24
|
const contentRef = useRef(null);
|
|
22
25
|
const isAffixedRef = useRef(false);
|
|
@@ -111,5 +114,5 @@ var CeilingBox = ({
|
|
|
111
114
|
var CeilingBox_default = CeilingBox;
|
|
112
115
|
|
|
113
116
|
export { CeilingBox_default };
|
|
114
|
-
//# sourceMappingURL=chunk-
|
|
115
|
-
//# sourceMappingURL=chunk-
|
|
117
|
+
//# sourceMappingURL=chunk-WLAHW5RF.js.map
|
|
118
|
+
//# sourceMappingURL=chunk-WLAHW5RF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../CeilingBox/index.tsx"],"names":[],"mappings":"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","file":"chunk-WLAHW5RF.js","sourcesContent":["import React, { useState, useEffect, useRef, ReactNode, CSSProperties } from 'react';\nimport './index.less';\n\nexport interface CeilingBoxProps {\n\t/** 子元素内容,支持普通 ReactNode 或 Render Props 函数接收 isAffixed 状态 */\n\tchildren: ReactNode | ((isAffixed: boolean) => ReactNode);\n\t/** 距离视口/容器顶部的吸顶偏移距离(像素),默认为 0 */\n\toffsetTop?: number;\n\t/** 距离视口/容器底部的吸底偏移距离(像素,传值时开启吸底模式) */\n\toffsetBottom?: number;\n\t/** 监听滚动的目标 DOM 容器,不传时默认监听 window 全局滚动 */\n\ttarget?: () => HTMLElement | Window | null;\n\t/** 吸顶/吸底状态改变时的回调函数 */\n\tonChange?: (isAffixed: boolean) => void;\n\t/** 吸顶时是否自动启用毛玻璃磨砂与精致阴影滤镜,默认为 true */\n\tblur?: boolean;\n\t/** 吸顶/吸底状态下的图层层级 z-index,默认为 1000 */\n\tzIndex?: number;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义行内样式 */\n\tstyle?: CSSProperties;\n\t/** 吸顶激活状态下追加的自定义类名 */\n\taffixedClassName?: string;\n\t/** 吸顶激活状态下追加的自定义行内样式 */\n\taffixedStyle?: CSSProperties;\n}\n\nconst CeilingBox: React.FC<CeilingBoxProps> = ({\n\tchildren,\n\toffsetTop = 0,\n\toffsetBottom,\n\ttarget,\n\tonChange,\n\tblur = true,\n\tzIndex = 1000,\n\tclassName = '',\n\tstyle,\n\taffixedClassName = '',\n\taffixedStyle,\n}) => {\n\tconst [isAffixed, setIsAffixed] = useState<boolean>(false);\n\tconst [boxRect, setBoxRect] = useState<{ width: number; height: number }>({\n\t\twidth: 0,\n\t\theight: 0,\n\t});\n\n\tconst placeholderRef = useRef<HTMLDivElement>(null);\n\tconst contentRef = useRef<HTMLDivElement>(null);\n\tconst isAffixedRef = useRef<boolean>(false);\n\n\tisAffixedRef.current = isAffixed;\n\n\tuseEffect(() => {\n\t\tconst getTargetElement = (): HTMLElement | Window => {\n\t\t\tif (target) {\n\t\t\t\tconst el = target();\n\t\t\t\tif (el) return el;\n\t\t\t}\n\t\t\treturn window;\n\t\t};\n\n\t\tconst handleScroll = () => {\n\t\t\tif (!placeholderRef.current) return;\n\n\t\t\tconst targetEl = getTargetElement();\n\t\t\tconst placeholderRect = placeholderRef.current.getBoundingClientRect();\n\n\t\t\tlet targetTop = 0;\n\t\t\tlet targetBottom = window.innerHeight;\n\n\t\t\tif (targetEl !== window && targetEl instanceof HTMLElement) {\n\t\t\t\tconst containerRect = targetEl.getBoundingClientRect();\n\t\t\t\ttargetTop = containerRect.top;\n\t\t\t\ttargetBottom = containerRect.bottom;\n\t\t\t}\n\n\t\t\tlet shouldAffix = false;\n\n\t\t\tif (offsetBottom !== undefined) {\n\t\t\t\t// 吸底模式\n\t\t\t\tshouldAffix = placeholderRect.bottom >= targetBottom - offsetBottom;\n\t\t\t} else {\n\t\t\t\t// 吸顶模式 (默认)\n\t\t\t\tshouldAffix = placeholderRect.top <= targetTop + offsetTop;\n\t\t\t}\n\n\t\t\tif (shouldAffix !== isAffixedRef.current) {\n\t\t\t\t// 触发吸顶切换前记录原本的宽高\n\t\t\t\tif (shouldAffix && contentRef.current) {\n\t\t\t\t\tconst rect = contentRef.current.getBoundingClientRect();\n\t\t\t\t\tsetBoxRect({ width: rect.width, height: rect.height });\n\t\t\t\t}\n\n\t\t\t\tsetIsAffixed(shouldAffix);\n\t\t\t\tonChange?.(shouldAffix);\n\t\t\t}\n\t\t};\n\n\t\tconst targetNode = getTargetElement();\n\t\ttargetNode.addEventListener('scroll', handleScroll, { passive: true });\n\t\twindow.addEventListener('resize', handleScroll, { passive: true });\n\n\t\t// 初始检查一次\n\t\thandleScroll();\n\n\t\treturn () => {\n\t\t\ttargetNode.removeEventListener('scroll', handleScroll);\n\t\t\twindow.removeEventListener('resize', handleScroll);\n\t\t};\n\t}, [offsetTop, offsetBottom, target, onChange]);\n\n\t// 计算吸顶定位样式\n\tconst computeFixedStyle = (): CSSProperties => {\n\t\tif (!isAffixed) return {};\n\n\t\tconst fixedStyle: CSSProperties = {\n\t\t\tposition: 'fixed',\n\t\t\tzIndex,\n\t\t\twidth: boxRect.width ? `${boxRect.width}px` : '100%',\n\t\t\tboxSizing: 'border-box',\n\t\t};\n\n\t\tif (offsetBottom !== undefined) {\n\t\t\tfixedStyle.bottom = `${offsetBottom}px`;\n\t\t} else {\n\t\t\tfixedStyle.top = `${offsetTop}px`;\n\t\t}\n\n\t\tif (placeholderRef.current) {\n\t\t\tconst rect = placeholderRef.current.getBoundingClientRect();\n\t\t\tfixedStyle.left = `${rect.left}px`;\n\t\t}\n\n\t\treturn fixedStyle;\n\t};\n\n\tconst renderedContent = typeof children === 'function' ? children(isAffixed) : children;\n\n\treturn (\n\t\t<div\n\t\t\tref={placeholderRef}\n\t\t\tclassName={`rpc_ceiling_box_wrapper ${className}`}\n\t\t\tstyle={{\n\t\t\t\t...style,\n\t\t\t\theight: isAffixed && boxRect.height ? `${boxRect.height}px` : undefined,\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tref={contentRef}\n\t\t\t\tclassName={`rpc_ceiling_box ${\n\t\t\t\t\tisAffixed ? 'rpc_ceiling_box_affixed' : ''\n\t\t\t\t} ${isAffixed && blur ? 'rpc_ceiling_box_blur' : ''} ${isAffixed ? affixedClassName : ''}`}\n\t\t\t\tstyle={{\n\t\t\t\t\t...computeFixedStyle(),\n\t\t\t\t\t...(isAffixed ? affixedStyle : {}),\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{renderedContent}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default CeilingBox;\n"]}
|