@vtx/components 3.0.0-4 → 3.0.0
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/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
# [3.0.0](https://git.cloudhw.cn:3443/front-end/react-components/compare/3.0.0-4...3.0.0) (2022-01-17)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### 🎫 Chores
|
|
5
|
+
|
|
6
|
+
* ahooks版本升级为3.x ([f91a6b7](https://git.cloudhw.cn:3443/front-end/react-components/commit/f91a6b7)) by: **gongjinhua**
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### 🐛 Bug Fixes
|
|
10
|
+
|
|
11
|
+
* 修复分割面板页面初始加载时宽度计算错误的问题 ([5059ca6](https://git.cloudhw.cn:3443/front-end/react-components/commit/5059ca6)) by: **gongjinhua**
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### 📝 Documentation
|
|
15
|
+
|
|
16
|
+
* 结合useAntdTable使用VtxDatagrid示例修改 ([d55b4e9](https://git.cloudhw.cn:3443/front-end/react-components/commit/d55b4e9)) by: **gongjinhua**
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
1
20
|
# [3.0.0-4](https://git.cloudhw.cn:3443/front-end/react-components/compare/3.0.0-3...3.0.0-4) (2022-01-16)
|
|
2
21
|
|
|
3
22
|
|
|
@@ -6,6 +25,11 @@
|
|
|
6
25
|
* @ant-design/icons按需加载 ([ed54592](https://git.cloudhw.cn:3443/front-end/react-components/commit/ed54592)) by: **gongjinhua**
|
|
7
26
|
|
|
8
27
|
|
|
28
|
+
### 🎫 Chores
|
|
29
|
+
|
|
30
|
+
* release v3.0.0-4 ([e67ec3a](https://git.cloudhw.cn:3443/front-end/react-components/commit/e67ec3a)) by: **gongjinhua**
|
|
31
|
+
|
|
32
|
+
|
|
9
33
|
|
|
10
34
|
# [3.0.0-3](https://git.cloudhw.cn:3443/front-end/react-components/compare/3.0.0-2...3.0.0-3) (2022-01-15)
|
|
11
35
|
|
|
@@ -112,6 +112,16 @@ function VtxSplitPane(props) {
|
|
|
112
112
|
document.addEventListener('mouseup', onMouseUp);
|
|
113
113
|
document.addEventListener('mousemove', onMouseMove);
|
|
114
114
|
document.addEventListener('touchmove', onTouchMove);
|
|
115
|
+
setTimeout(function () {
|
|
116
|
+
var initialSize = size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize, null);
|
|
117
|
+
var splitPaneWidth = splitPane.current.clientWidth;
|
|
118
|
+
var resizerWidth = resizerRef.current.offsetWidth + 1; // +1避免因为小数问题
|
|
119
|
+
|
|
120
|
+
setPaneSize({
|
|
121
|
+
pane1: primary === 'first' ? initialSize : splitPaneWidth - initialSize - resizerWidth,
|
|
122
|
+
pane2: primary === 'second' ? initialSize : splitPaneWidth - initialSize - resizerWidth
|
|
123
|
+
});
|
|
124
|
+
}, 0);
|
|
115
125
|
return function () {
|
|
116
126
|
document.removeEventListener('mouseup', onMouseUp);
|
|
117
127
|
document.removeEventListener('mousemove', onMouseMove);
|
|
@@ -119,16 +129,6 @@ function VtxSplitPane(props) {
|
|
|
119
129
|
window.onresize = '';
|
|
120
130
|
};
|
|
121
131
|
}, [primary]);
|
|
122
|
-
(0, _react.useLayoutEffect)(function () {
|
|
123
|
-
var initialSize = size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize, null);
|
|
124
|
-
var splitPaneWidth = splitPane.current.clientWidth;
|
|
125
|
-
var resizerWidth = resizerRef.current.offsetWidth + 1; // +1避免因为小数问题
|
|
126
|
-
|
|
127
|
-
setPaneSize({
|
|
128
|
-
pane1: primary === 'first' ? initialSize : splitPaneWidth - initialSize - resizerWidth,
|
|
129
|
-
pane2: primary === 'second' ? initialSize : splitPaneWidth - initialSize - resizerWidth
|
|
130
|
-
});
|
|
131
|
-
}, [primary]);
|
|
132
132
|
/**
|
|
133
133
|
* 监听窗口变化,自适应大小
|
|
134
134
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vtx-split-pane/SplitPane.jsx"],"names":["unFocus","document","window","selection","empty","getSelection","removeAllRanges","e","getDefaultSize","defaultSize","minSize","maxSize","draggedSize","min","max","Infinity","Math","undefined","removeNullChildren","children","React","Children","toArray","filter","c","VtxSplitPane","props","size","initPrimary","primary","active","position","resized","splitPane","pane1","pane2","resizerRef","paneSize","setPaneSize","primaryShow","setPrimaryShow","setPrimary","addEventListener","onMouseUp","onMouseMove","onTouchMove","removeEventListener","onresize","initialSize","splitPaneWidth","current","clientWidth","resizerWidth","offsetWidth","onMouseDown","event","eventWithTouches","Object","assign","touches","clientX","clientY","onTouchStart","allowResize","onDragStarted","initPosition","onChange","step","isPrimaryFirst","ref","ref2","node","node2","getBoundingClientRect","width","positionDelta","abs","sizeDelta","pane1Order","parseInt","getComputedStyle","order","pane2Order","newMaxSize","newSize","newPosition","onDragFinished","className","onResizerClick","onResizerDoubleClick","resizerClassName","resizerStyle","style","showSwitch","showToggle","notNullChildren","pane1Size","pane2Size","dragging","disabled","left","right","prev","propTypes","PropTypes","bool","arrayOf","isRequired","string","oneOf","oneOfType","number","func","object","defaultProps"],"mappings":"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","sourcesContent":["import React, { useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Button from 'antd/lib/button';\nimport Tooltip from 'antd/lib/tooltip';\nimport LeftOutlined from '@ant-design/icons/LeftOutlined';\nimport RightOutlined from '@ant-design/icons/RightOutlined';\nimport SwapOutlined from '@ant-design/icons/SwapOutlined';\n\nimport Pane from './Pane';\nimport Resizer from './Resizer';\n\nfunction unFocus(document, window) {\n if (document.selection) {\n document.selection.empty();\n } else {\n try {\n window.getSelection().removeAllRanges();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction getDefaultSize(defaultSize, minSize, maxSize, draggedSize) {\n if (typeof draggedSize === 'number') {\n const min = typeof minSize === 'number' ? minSize : 0;\n const max = typeof maxSize === 'number' && maxSize >= 0 ? maxSize : Infinity;\n return Math.max(min, Math.min(max, draggedSize));\n }\n if (defaultSize !== undefined) {\n return defaultSize;\n }\n return minSize;\n}\n\nfunction removeNullChildren(children) {\n return React.Children.toArray(children).filter(c => c);\n}\n\nfunction VtxSplitPane(props) {\n const { size, primary: initPrimary, defaultSize, minSize, maxSize } = props;\n\n const active = useRef(false);\n const position = useRef();\n const draggedSize = useRef();\n const resized = useRef(false);\n\n const splitPane = useRef();\n const pane1 = useRef();\n const pane2 = useRef();\n const resizerRef = useRef();\n\n const [paneSize, setPaneSize] = useState({\n pane1: 0,\n pane2: 0,\n });\n\n const [primaryShow, setPrimaryShow] = useState(true);\n const [primary, setPrimary] = useState(initPrimary);\n\n useEffect(() => {\n document.addEventListener('mouseup', onMouseUp);\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('touchmove', onTouchMove);\n return () => {\n document.removeEventListener('mouseup', onMouseUp);\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('touchmove', onTouchMove);\n window.onresize = '';\n };\n }, [primary]);\n\n useLayoutEffect(() => {\n const initialSize =\n size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize, null);\n const splitPaneWidth = splitPane.current.clientWidth;\n const resizerWidth = resizerRef.current.offsetWidth + 1; // +1避免因为小数问题\n setPaneSize({\n pane1: primary === 'first' ? initialSize : splitPaneWidth - initialSize - resizerWidth,\n pane2: primary === 'second' ? initialSize : splitPaneWidth - initialSize - resizerWidth,\n });\n }, [primary]);\n\n /**\n * 监听窗口变化,自适应大小\n */\n window.onresize = () => {\n const splitPaneWidth = splitPane.current.clientWidth;\n const resizerWidth = resizerRef.current.offsetWidth + 1;\n setPaneSize({\n pane1:\n primary === 'first'\n ? paneSize.pane1\n : splitPaneWidth - resizerWidth - paneSize.pane2,\n pane2:\n primary === 'first'\n ? splitPaneWidth - resizerWidth - paneSize.pane1\n : paneSize.pane2,\n });\n };\n\n function onMouseDown(event) {\n const eventWithTouches = Object.assign({}, event, {\n touches: [{ clientX: event.clientX, clientY: event.clientY }],\n });\n onTouchStart(eventWithTouches);\n }\n\n function onTouchStart(event) {\n const { allowResize, onDragStarted } = props;\n if (allowResize) {\n unFocus(document, window);\n const initPosition = event.touches[0].clientX;\n if (typeof onDragStarted === 'function') {\n onDragStarted();\n }\n active.current = true;\n position.current = initPosition;\n }\n }\n\n function onMouseMove(event) {\n const eventWithTouches = Object.assign({}, event, {\n touches: [{ clientX: event.clientX, clientY: event.clientY }],\n });\n onTouchMove(eventWithTouches);\n }\n function onTouchMove(event) {\n const { allowResize, maxSize, minSize, onChange, step } = props;\n if (allowResize && active.current) {\n unFocus(document, window);\n const isPrimaryFirst = primary === 'first';\n const ref = isPrimaryFirst ? pane1.current : pane2.current;\n const ref2 = isPrimaryFirst ? pane2.current : pane1.current;\n if (ref) {\n const node = ref;\n const node2 = ref2;\n if (node.getBoundingClientRect) {\n const width = node.getBoundingClientRect().width;\n const current = event.touches[0].clientX;\n const size = width;\n let positionDelta = position.current - current;\n\n if (step) {\n if (Math.abs(positionDelta) < step) {\n return;\n }\n // Integer division\n // eslint-disable-next-line no-bitwise\n positionDelta = ~~(positionDelta / step) * step;\n }\n\n let sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;\n\n const pane1Order = parseInt(window.getComputedStyle(node).order);\n const pane2Order = parseInt(window.getComputedStyle(node2).order);\n if (pane1Order > pane2Order) {\n sizeDelta = -sizeDelta;\n }\n\n let newMaxSize = maxSize;\n if (maxSize !== undefined && maxSize <= 0) {\n newMaxSize = splitPane.getBoundingClientRect().width + maxSize;\n }\n\n let newSize = size - sizeDelta;\n const newPosition = position.current - positionDelta;\n\n if (newSize < minSize) {\n newSize = minSize;\n } else if (maxSize !== undefined && newSize > newMaxSize) {\n newSize = newMaxSize;\n } else {\n position.current = newPosition;\n resized.current = true;\n }\n\n if (onChange) onChange(newSize);\n\n draggedSize.current = newSize;\n\n const splitPaneWidth = splitPane.current.clientWidth;\n const resizerWidth = resizerRef.current.offsetWidth + 1;\n\n setPaneSize({\n pane1: isPrimaryFirst ? newSize : splitPaneWidth - newSize - resizerWidth,\n pane2: isPrimaryFirst ? splitPaneWidth - newSize - resizerWidth : newSize,\n });\n }\n }\n }\n }\n\n function onMouseUp() {\n const { allowResize, onDragFinished } = props;\n if (allowResize && active.current) {\n if (typeof onDragFinished === 'function') {\n onDragFinished(draggedSize.current);\n }\n active.current = false;\n }\n }\n\n const {\n allowResize,\n children,\n className,\n onResizerClick,\n onResizerDoubleClick,\n resizerClassName,\n resizerStyle,\n style,\n showSwitch,\n showToggle,\n } = props;\n\n const notNullChildren = removeNullChildren(children);\n\n /**\n * 收缩面板宽度变化,并能还原到原先的位置\n */\n const pane1Size =\n primary === 'first'\n ? primaryShow\n ? paneSize.pane1\n : 0\n : primaryShow\n ? paneSize.pane1\n : paneSize.pane1 + paneSize.pane2;\n const pane2Size =\n primary === 'first'\n ? primaryShow\n ? paneSize.pane2\n : paneSize.pane1 + paneSize.pane2\n : primaryShow\n ? paneSize.pane2\n : 0;\n\n // 是否在拖动\n const dragging = active.current;\n return (\n <div className={classnames('vtx-split-pane', className)} ref={splitPane} style={style}>\n <Pane ref={pane1} key=\"pane1\" size={pane1Size} dragging={dragging}>\n {primary === 'first' ? notNullChildren[0] : notNullChildren[1]}\n </Pane>\n <Resizer\n ref={resizerRef}\n onClick={e => {\n if (!primaryShow) {\n setPrimaryShow(true);\n }\n onResizerClick && onResizerClick(e);\n }}\n className={classnames({ disabled: !allowResize }, resizerClassName)}\n onDoubleClick={onResizerDoubleClick}\n onMouseDown={onMouseDown}\n onTouchStart={onTouchStart}\n onTouchEnd={onMouseUp}\n key=\"resizer\"\n primary={primary}\n primaryShow={primaryShow}\n style={resizerStyle || {}}\n >\n <Tooltip placement=\"right\" title={primaryShow ? '收起' : '展开'}>\n {showToggle && (\n <Button\n className=\"vtx-split-pane-resizer-toggle\"\n style={primary === 'first' ? { left: 0 } : { right: 0 }}\n shape=\"circle\"\n size=\"small\"\n icon={\n primary === 'first' ? (\n primaryShow ? (\n <LeftOutlined />\n ) : (\n <RightOutlined />\n )\n ) : primaryShow ? (\n <RightOutlined />\n ) : (\n <LeftOutlined />\n )\n }\n onClick={() => {\n setPrimaryShow(!primaryShow);\n }}\n ></Button>\n )}\n </Tooltip>\n {showSwitch && (\n <Button\n className=\"vtx-split-pane-resizer-switch\"\n shape=\"circle\"\n icon={<SwapOutlined />}\n style={primary === 'first' ? { left: 0 } : { right: 0 }}\n size=\"small\"\n onClick={() => {\n setPrimary(prev => {\n if (prev === 'first') {\n return 'second';\n }\n if (prev === 'second') {\n return 'first';\n }\n });\n }}\n />\n )}\n </Resizer>\n <Pane ref={pane2} key=\"pane2\" size={pane2Size} dragging={dragging}>\n {primary === 'first' ? notNullChildren[1] : notNullChildren[0]}\n </Pane>\n </div>\n );\n}\n\nVtxSplitPane.propTypes = {\n allowResize: PropTypes.bool,\n children: PropTypes.arrayOf(PropTypes.node).isRequired,\n className: PropTypes.string,\n primary: PropTypes.oneOf(['first', 'second']),\n minSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // eslint-disable-next-line react/no-unused-prop-types\n defaultSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onDragStarted: PropTypes.func,\n onDragFinished: PropTypes.func,\n onChange: PropTypes.func,\n onResizerClick: PropTypes.func,\n onResizerDoubleClick: PropTypes.func,\n style: PropTypes.object,\n resizerStyle: PropTypes.object,\n resizerClassName: PropTypes.string,\n step: PropTypes.number,\n showToggle: PropTypes.bool,\n showSwitch: PropTypes.bool,\n};\nVtxSplitPane.defaultProps = {\n allowResize: true,\n minSize: 50,\n primary: 'first',\n showToggle: true,\n showSwitch: false,\n};\nexport default VtxSplitPane;\n"],"file":"SplitPane.js"}
|
|
1
|
+
{"version":3,"sources":["vtx-split-pane/SplitPane.jsx"],"names":["unFocus","document","window","selection","empty","getSelection","removeAllRanges","e","getDefaultSize","defaultSize","minSize","maxSize","draggedSize","min","max","Infinity","Math","undefined","removeNullChildren","children","React","Children","toArray","filter","c","VtxSplitPane","props","size","initPrimary","primary","active","position","resized","splitPane","pane1","pane2","resizerRef","paneSize","setPaneSize","primaryShow","setPrimaryShow","setPrimary","addEventListener","onMouseUp","onMouseMove","onTouchMove","setTimeout","initialSize","splitPaneWidth","current","clientWidth","resizerWidth","offsetWidth","removeEventListener","onresize","onMouseDown","event","eventWithTouches","Object","assign","touches","clientX","clientY","onTouchStart","allowResize","onDragStarted","initPosition","onChange","step","isPrimaryFirst","ref","ref2","node","node2","getBoundingClientRect","width","positionDelta","abs","sizeDelta","pane1Order","parseInt","getComputedStyle","order","pane2Order","newMaxSize","newSize","newPosition","onDragFinished","className","onResizerClick","onResizerDoubleClick","resizerClassName","resizerStyle","style","showSwitch","showToggle","notNullChildren","pane1Size","pane2Size","dragging","disabled","left","right","prev","propTypes","PropTypes","bool","arrayOf","isRequired","string","oneOf","oneOfType","number","func","object","defaultProps"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Button from 'antd/lib/button';\nimport Tooltip from 'antd/lib/tooltip';\nimport LeftOutlined from '@ant-design/icons/LeftOutlined';\nimport RightOutlined from '@ant-design/icons/RightOutlined';\nimport SwapOutlined from '@ant-design/icons/SwapOutlined';\n\nimport Pane from './Pane';\nimport Resizer from './Resizer';\n\nfunction unFocus(document, window) {\n if (document.selection) {\n document.selection.empty();\n } else {\n try {\n window.getSelection().removeAllRanges();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction getDefaultSize(defaultSize, minSize, maxSize, draggedSize) {\n if (typeof draggedSize === 'number') {\n const min = typeof minSize === 'number' ? minSize : 0;\n const max = typeof maxSize === 'number' && maxSize >= 0 ? maxSize : Infinity;\n return Math.max(min, Math.min(max, draggedSize));\n }\n if (defaultSize !== undefined) {\n return defaultSize;\n }\n return minSize;\n}\n\nfunction removeNullChildren(children) {\n return React.Children.toArray(children).filter(c => c);\n}\n\nfunction VtxSplitPane(props) {\n const { size, primary: initPrimary, defaultSize, minSize, maxSize } = props;\n\n const active = useRef(false);\n const position = useRef();\n const draggedSize = useRef();\n const resized = useRef(false);\n\n const splitPane = useRef();\n const pane1 = useRef();\n const pane2 = useRef();\n const resizerRef = useRef();\n\n const [paneSize, setPaneSize] = useState({\n pane1: 0,\n pane2: 0,\n });\n\n const [primaryShow, setPrimaryShow] = useState(true);\n const [primary, setPrimary] = useState(initPrimary);\n\n useEffect(() => {\n document.addEventListener('mouseup', onMouseUp);\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('touchmove', onTouchMove);\n setTimeout(() => {\n const initialSize =\n size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize, null);\n const splitPaneWidth = splitPane.current.clientWidth;\n const resizerWidth = resizerRef.current.offsetWidth + 1; // +1避免因为小数问题\n setPaneSize({\n pane1:\n primary === 'first' ? initialSize : splitPaneWidth - initialSize - resizerWidth,\n pane2:\n primary === 'second'\n ? initialSize\n : splitPaneWidth - initialSize - resizerWidth,\n });\n }, 0);\n return () => {\n document.removeEventListener('mouseup', onMouseUp);\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('touchmove', onTouchMove);\n window.onresize = '';\n };\n }, [primary]);\n\n /**\n * 监听窗口变化,自适应大小\n */\n window.onresize = () => {\n const splitPaneWidth = splitPane.current.clientWidth;\n const resizerWidth = resizerRef.current.offsetWidth + 1;\n\n setPaneSize({\n pane1:\n primary === 'first'\n ? paneSize.pane1\n : splitPaneWidth - resizerWidth - paneSize.pane2,\n pane2:\n primary === 'first'\n ? splitPaneWidth - resizerWidth - paneSize.pane1\n : paneSize.pane2,\n });\n };\n\n function onMouseDown(event) {\n const eventWithTouches = Object.assign({}, event, {\n touches: [{ clientX: event.clientX, clientY: event.clientY }],\n });\n onTouchStart(eventWithTouches);\n }\n\n function onTouchStart(event) {\n const { allowResize, onDragStarted } = props;\n if (allowResize) {\n unFocus(document, window);\n const initPosition = event.touches[0].clientX;\n if (typeof onDragStarted === 'function') {\n onDragStarted();\n }\n active.current = true;\n position.current = initPosition;\n }\n }\n\n function onMouseMove(event) {\n const eventWithTouches = Object.assign({}, event, {\n touches: [{ clientX: event.clientX, clientY: event.clientY }],\n });\n onTouchMove(eventWithTouches);\n }\n function onTouchMove(event) {\n const { allowResize, maxSize, minSize, onChange, step } = props;\n if (allowResize && active.current) {\n unFocus(document, window);\n const isPrimaryFirst = primary === 'first';\n const ref = isPrimaryFirst ? pane1.current : pane2.current;\n const ref2 = isPrimaryFirst ? pane2.current : pane1.current;\n if (ref) {\n const node = ref;\n const node2 = ref2;\n if (node.getBoundingClientRect) {\n const width = node.getBoundingClientRect().width;\n const current = event.touches[0].clientX;\n const size = width;\n let positionDelta = position.current - current;\n\n if (step) {\n if (Math.abs(positionDelta) < step) {\n return;\n }\n // Integer division\n // eslint-disable-next-line no-bitwise\n positionDelta = ~~(positionDelta / step) * step;\n }\n\n let sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;\n\n const pane1Order = parseInt(window.getComputedStyle(node).order);\n const pane2Order = parseInt(window.getComputedStyle(node2).order);\n if (pane1Order > pane2Order) {\n sizeDelta = -sizeDelta;\n }\n\n let newMaxSize = maxSize;\n if (maxSize !== undefined && maxSize <= 0) {\n newMaxSize = splitPane.getBoundingClientRect().width + maxSize;\n }\n\n let newSize = size - sizeDelta;\n const newPosition = position.current - positionDelta;\n\n if (newSize < minSize) {\n newSize = minSize;\n } else if (maxSize !== undefined && newSize > newMaxSize) {\n newSize = newMaxSize;\n } else {\n position.current = newPosition;\n resized.current = true;\n }\n\n if (onChange) onChange(newSize);\n\n draggedSize.current = newSize;\n\n const splitPaneWidth = splitPane.current.clientWidth;\n const resizerWidth = resizerRef.current.offsetWidth + 1;\n\n setPaneSize({\n pane1: isPrimaryFirst ? newSize : splitPaneWidth - newSize - resizerWidth,\n pane2: isPrimaryFirst ? splitPaneWidth - newSize - resizerWidth : newSize,\n });\n }\n }\n }\n }\n\n function onMouseUp() {\n const { allowResize, onDragFinished } = props;\n if (allowResize && active.current) {\n if (typeof onDragFinished === 'function') {\n onDragFinished(draggedSize.current);\n }\n active.current = false;\n }\n }\n\n const {\n allowResize,\n children,\n className,\n onResizerClick,\n onResizerDoubleClick,\n resizerClassName,\n resizerStyle,\n style,\n showSwitch,\n showToggle,\n } = props;\n\n const notNullChildren = removeNullChildren(children);\n\n /**\n * 收缩面板宽度变化,并能还原到原先的位置\n */\n const pane1Size =\n primary === 'first'\n ? primaryShow\n ? paneSize.pane1\n : 0\n : primaryShow\n ? paneSize.pane1\n : paneSize.pane1 + paneSize.pane2;\n const pane2Size =\n primary === 'first'\n ? primaryShow\n ? paneSize.pane2\n : paneSize.pane1 + paneSize.pane2\n : primaryShow\n ? paneSize.pane2\n : 0;\n\n // 是否在拖动\n const dragging = active.current;\n return (\n <div className={classnames('vtx-split-pane', className)} ref={splitPane} style={style}>\n <Pane ref={pane1} key=\"pane1\" size={pane1Size} dragging={dragging}>\n {primary === 'first' ? notNullChildren[0] : notNullChildren[1]}\n </Pane>\n <Resizer\n ref={resizerRef}\n onClick={e => {\n if (!primaryShow) {\n setPrimaryShow(true);\n }\n onResizerClick && onResizerClick(e);\n }}\n className={classnames({ disabled: !allowResize }, resizerClassName)}\n onDoubleClick={onResizerDoubleClick}\n onMouseDown={onMouseDown}\n onTouchStart={onTouchStart}\n onTouchEnd={onMouseUp}\n key=\"resizer\"\n primary={primary}\n primaryShow={primaryShow}\n style={resizerStyle || {}}\n >\n <Tooltip placement=\"right\" title={primaryShow ? '收起' : '展开'}>\n {showToggle && (\n <Button\n className=\"vtx-split-pane-resizer-toggle\"\n style={primary === 'first' ? { left: 0 } : { right: 0 }}\n shape=\"circle\"\n size=\"small\"\n icon={\n primary === 'first' ? (\n primaryShow ? (\n <LeftOutlined />\n ) : (\n <RightOutlined />\n )\n ) : primaryShow ? (\n <RightOutlined />\n ) : (\n <LeftOutlined />\n )\n }\n onClick={() => {\n setPrimaryShow(!primaryShow);\n }}\n ></Button>\n )}\n </Tooltip>\n {showSwitch && (\n <Button\n className=\"vtx-split-pane-resizer-switch\"\n shape=\"circle\"\n icon={<SwapOutlined />}\n style={primary === 'first' ? { left: 0 } : { right: 0 }}\n size=\"small\"\n onClick={() => {\n setPrimary(prev => {\n if (prev === 'first') {\n return 'second';\n }\n if (prev === 'second') {\n return 'first';\n }\n });\n }}\n />\n )}\n </Resizer>\n <Pane ref={pane2} key=\"pane2\" size={pane2Size} dragging={dragging}>\n {primary === 'first' ? notNullChildren[1] : notNullChildren[0]}\n </Pane>\n </div>\n );\n}\n\nVtxSplitPane.propTypes = {\n allowResize: PropTypes.bool,\n children: PropTypes.arrayOf(PropTypes.node).isRequired,\n className: PropTypes.string,\n primary: PropTypes.oneOf(['first', 'second']),\n minSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // eslint-disable-next-line react/no-unused-prop-types\n defaultSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onDragStarted: PropTypes.func,\n onDragFinished: PropTypes.func,\n onChange: PropTypes.func,\n onResizerClick: PropTypes.func,\n onResizerDoubleClick: PropTypes.func,\n style: PropTypes.object,\n resizerStyle: PropTypes.object,\n resizerClassName: PropTypes.string,\n step: PropTypes.number,\n showToggle: PropTypes.bool,\n showSwitch: PropTypes.bool,\n};\nVtxSplitPane.defaultProps = {\n allowResize: true,\n minSize: 50,\n primary: 'first',\n showToggle: true,\n showSwitch: false,\n};\nexport default VtxSplitPane;\n"],"file":"SplitPane.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vtx/components",
|
|
3
|
-
"version": "3.0.0
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "React components for Vortex",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"@vtx/map": "latest",
|
|
56
56
|
"@vtx/utils": "latest",
|
|
57
|
-
"ahooks": "^
|
|
57
|
+
"ahooks": "^3.1.5",
|
|
58
58
|
"antd": "4.17.4",
|
|
59
59
|
"axios": "^0.21.1",
|
|
60
60
|
"braft-editor": "^2.3.9",
|