@elliemae/ds-resizeable-container 2.2.0-alpha.4 → 3.0.0-next.2
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/cjs/Resizable.js +213 -204
- package/cjs/defaultProps.js +6 -34
- package/cjs/index.js +11 -36
- package/cjs/props.js +22 -40
- package/esm/Resizable.js +190 -166
- package/esm/defaultProps.js +2 -5
- package/esm/index.js +1 -7
- package/esm/props.js +18 -11
- package/package.json +3 -3
- package/cjs/Resizable.js.map +0 -7
- package/cjs/defaultProps.js.map +0 -7
- package/cjs/index.js.map +0 -7
- package/cjs/props.js.map +0 -7
- package/esm/Resizable.js.map +0 -7
- package/esm/defaultProps.js.map +0 -7
- package/esm/index.js.map +0 -7
- package/esm/props.js.map +0 -7
package/cjs/props.js
CHANGED
|
@@ -1,42 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
-
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(module2))
|
|
15
|
-
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
-
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return target;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (module2, isNodeMode) => {
|
|
21
|
-
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
-
};
|
|
23
|
-
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
-
return (module2, temp) => {
|
|
25
|
-
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
-
};
|
|
27
|
-
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
-
var props_exports = {};
|
|
29
|
-
__export(props_exports, {
|
|
30
|
-
props: () => props
|
|
31
|
-
});
|
|
32
|
-
var React = __toESM(require("react"));
|
|
33
|
-
var import_react_desc = require("react-desc");
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var reactDesc = require('react-desc');
|
|
6
|
+
|
|
34
7
|
const props = {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
8
|
+
/** grid item content */
|
|
9
|
+
children: reactDesc.PropTypes.node.description('Grid item content'),
|
|
10
|
+
|
|
11
|
+
/** vertical resizing */
|
|
12
|
+
vertical: reactDesc.PropTypes.bool.description('vertical resizing'),
|
|
13
|
+
|
|
14
|
+
/** horizontal resizing */
|
|
15
|
+
horizontal: reactDesc.PropTypes.bool.description('horizontal resizing'),
|
|
16
|
+
|
|
17
|
+
/** Row layout cells */
|
|
18
|
+
rows: reactDesc.PropTypes.arrayOf(reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.number, reactDesc.PropTypes.string])).description('Row layout cells'),
|
|
19
|
+
|
|
20
|
+
/** Column layout cells */
|
|
21
|
+
cols: reactDesc.PropTypes.arrayOf(reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.number, reactDesc.PropTypes.string])).description('Column layout cells')
|
|
40
22
|
};
|
|
41
|
-
|
|
42
|
-
|
|
23
|
+
|
|
24
|
+
exports.props = props;
|
package/esm/Resizable.js
CHANGED
|
@@ -1,138 +1,137 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
1
|
+
import 'core-js/modules/esnext.async-iterator.filter.js';
|
|
2
|
+
import 'core-js/modules/esnext.iterator.filter.js';
|
|
3
|
+
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
4
|
+
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
5
|
+
import _jsx2 from '@babel/runtime/helpers/esm/jsx';
|
|
6
|
+
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
7
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
|
|
8
|
+
import 'core-js/modules/esnext.async-iterator.map.js';
|
|
9
|
+
import 'core-js/modules/esnext.iterator.map.js';
|
|
10
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
11
|
+
import 'core-js/modules/esnext.async-iterator.every.js';
|
|
12
|
+
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
13
|
+
import 'core-js/modules/esnext.iterator.every.js';
|
|
14
|
+
import React, { useRef, useState, useEffect } from 'react';
|
|
15
|
+
import { describe } from 'react-desc';
|
|
16
|
+
import styled from 'styled-components';
|
|
17
|
+
import { mapGap } from '@elliemae/ds-system';
|
|
18
|
+
import { Grid } from '@elliemae/ds-grid';
|
|
19
|
+
import { props } from './props.js';
|
|
20
|
+
import { defaultProps } from './defaultProps.js';
|
|
21
|
+
import { jsx } from 'react/jsx-runtime';
|
|
22
|
+
|
|
23
|
+
const _excluded = ["innerRef"],
|
|
24
|
+
_excluded2 = ["children", "cols", "rows", "vertical", "horizontal"];
|
|
25
|
+
|
|
26
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
27
|
+
|
|
28
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
9
29
|
const safeDifference = 15;
|
|
10
30
|
const minDifference = 8;
|
|
11
|
-
const EVENT_TYPE = {
|
|
31
|
+
const EVENT_TYPE = {
|
|
32
|
+
MOUSE: 'mouse',
|
|
33
|
+
KEY: 'arrows'
|
|
34
|
+
};
|
|
12
35
|
const DIRECTION = {
|
|
13
|
-
L:
|
|
14
|
-
R:
|
|
15
|
-
U:
|
|
16
|
-
D:
|
|
36
|
+
L: 'left',
|
|
37
|
+
R: 'right',
|
|
38
|
+
U: 'up',
|
|
39
|
+
D: 'down'
|
|
17
40
|
};
|
|
41
|
+
|
|
18
42
|
function calcPosition(arrow, position) {
|
|
19
43
|
let offset;
|
|
44
|
+
|
|
20
45
|
switch (arrow) {
|
|
21
46
|
case DIRECTION.U:
|
|
22
47
|
offset = position - 3;
|
|
23
48
|
break;
|
|
49
|
+
|
|
24
50
|
case DIRECTION.D:
|
|
25
51
|
offset = position + 3;
|
|
26
52
|
break;
|
|
53
|
+
|
|
27
54
|
case DIRECTION.L:
|
|
28
55
|
offset = position - 3;
|
|
29
56
|
break;
|
|
57
|
+
|
|
30
58
|
case DIRECTION.R:
|
|
31
59
|
offset = position + 3;
|
|
32
60
|
break;
|
|
61
|
+
|
|
33
62
|
default:
|
|
34
63
|
offset = position;
|
|
35
64
|
}
|
|
65
|
+
|
|
36
66
|
return offset;
|
|
37
67
|
}
|
|
68
|
+
|
|
38
69
|
function cursorResolver(nextPx, px, isVertical) {
|
|
39
70
|
const orientation = {
|
|
40
|
-
vertical:
|
|
41
|
-
horizontal:
|
|
42
|
-
left:
|
|
43
|
-
right:
|
|
44
|
-
up:
|
|
45
|
-
down:
|
|
71
|
+
vertical: 'row-resize',
|
|
72
|
+
horizontal: 'col-resize',
|
|
73
|
+
left: 'w-resize',
|
|
74
|
+
right: 'e-resize',
|
|
75
|
+
up: 'n-resize',
|
|
76
|
+
down: 's-resize'
|
|
46
77
|
};
|
|
47
|
-
if (isVertical && nextPx && nextPx <= safeDifference + 1)
|
|
48
|
-
|
|
49
|
-
if (isVertical && px
|
|
50
|
-
|
|
51
|
-
if (isVertical && px <= safeDifference + 1)
|
|
52
|
-
|
|
53
|
-
if (!isVertical && nextPx && nextPx <= safeDifference + 1)
|
|
54
|
-
return orientation.left;
|
|
55
|
-
if (!isVertical && px <= safeDifference + 1)
|
|
56
|
-
return orientation.right;
|
|
57
|
-
if (!isVertical && px > safeDifference + 1)
|
|
58
|
-
return orientation.horizontal;
|
|
78
|
+
if (isVertical && nextPx && nextPx <= safeDifference + 1) return orientation.up;
|
|
79
|
+
if (isVertical && px > safeDifference + 1) return orientation.vertical;
|
|
80
|
+
if (isVertical && px <= safeDifference + 1) return orientation.down;
|
|
81
|
+
if (!isVertical && nextPx && nextPx <= safeDifference + 1) return orientation.left;
|
|
82
|
+
if (!isVertical && px <= safeDifference + 1) return orientation.right;
|
|
83
|
+
if (!isVertical && px > safeDifference + 1) return orientation.horizontal;
|
|
59
84
|
return isVertical ? orientation.vertical : orientation.horizontal;
|
|
60
85
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
86
|
+
|
|
87
|
+
function ResizableItemComponent(_ref) {
|
|
88
|
+
let {
|
|
89
|
+
innerRef
|
|
90
|
+
} = _ref,
|
|
91
|
+
p = _objectWithoutProperties(_ref, _excluded);
|
|
92
|
+
|
|
93
|
+
return /*#__PURE__*/jsx(Grid, _objectSpread({
|
|
94
|
+
ref: innerRef
|
|
95
|
+
}, p));
|
|
66
96
|
}
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
97
|
+
|
|
98
|
+
const ResizableGrid = /*#__PURE__*/styled(Grid).withConfig({
|
|
99
|
+
componentId: "sc-forwbw-0"
|
|
100
|
+
})([""]);
|
|
101
|
+
const ResizableItem = /*#__PURE__*/styled(ResizableItemComponent).withConfig({
|
|
102
|
+
componentId: "sc-forwbw-1"
|
|
103
|
+
})(["position:relative;"]);
|
|
104
|
+
const ResizableBar = /*#__PURE__*/styled.div.withConfig({
|
|
105
|
+
componentId: "sc-forwbw-2"
|
|
106
|
+
})(["position:absolute;cursor:", ";", ""], _ref2 => {
|
|
107
|
+
let {
|
|
108
|
+
container,
|
|
109
|
+
nextContainer,
|
|
110
|
+
v
|
|
111
|
+
} = _ref2;
|
|
112
|
+
return cursorResolver(nextContainer, container, v);
|
|
113
|
+
}, props => {
|
|
76
114
|
if (props.v) {
|
|
77
|
-
return
|
|
78
|
-
bottom: calc(${mapGap(props.gutter)} * -0.5);
|
|
79
|
-
left: 0;
|
|
80
|
-
width: 100%;
|
|
81
|
-
height: 10px;
|
|
82
|
-
margin-bottom: -5px;
|
|
83
|
-
display: flex;
|
|
84
|
-
flex-direction: column;
|
|
85
|
-
justify-content:space-around;
|
|
86
|
-
align-items: center;
|
|
87
|
-
&:after{
|
|
88
|
-
width: 100%;
|
|
89
|
-
height: 1px;
|
|
90
|
-
display: block;
|
|
91
|
-
background: ${props.theme.colors.neutral["300"]};
|
|
92
|
-
content: '';
|
|
93
|
-
}
|
|
94
|
-
&:hover{
|
|
95
|
-
&:after{
|
|
96
|
-
background: ${props.theme.colors.brand["600"]};
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
`;
|
|
115
|
+
return "\n bottom: calc(".concat(mapGap(props.gutter), " * -0.5);\n left: 0;\n width: 100%;\n height: 10px;\n margin-bottom: -5px;\n display: flex;\n flex-direction: column;\n justify-content:space-around;\n align-items: center;\n &:after{\n width: 100%;\n height: 1px;\n display: block;\n background: ").concat(props.theme.colors.neutral['300'], ";\n content: '';\n }\n &:hover{\n &:after{\n background: ").concat(props.theme.colors.brand['600'], ";\n } \n }\n ");
|
|
100
116
|
}
|
|
101
|
-
|
|
102
|
-
top: 0;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
&:after{
|
|
120
|
-
background: ${props.theme.colors.brand["600"]};
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
`;
|
|
124
|
-
}}
|
|
125
|
-
`;
|
|
126
|
-
const getWidths = (list) => list.map((l) => l.clientWidth);
|
|
127
|
-
const getHeights = (list) => list.map((l) => l.clientHeight);
|
|
128
|
-
function ResizableContainer({
|
|
129
|
-
children,
|
|
130
|
-
cols,
|
|
131
|
-
rows,
|
|
132
|
-
vertical,
|
|
133
|
-
horizontal,
|
|
134
|
-
...rest
|
|
135
|
-
}) {
|
|
117
|
+
|
|
118
|
+
return "\n top: 0;\n right: calc(".concat(mapGap(props.gutter), " * -0.5);\n height: 100%;\n width: 10px;\n margin-right: -5px;\n display: flex;\n flex-direction: row;\n justify-content:space-around;\n align-items: center;\n &:after{\n height: 100%;\n width: 1px;\n display: block;\n background: ").concat(props.theme.colors.neutral['300'], ";\n content: '';\n }\n &:hover{\n &:after{\n background: ").concat(props.theme.colors.brand['600'], ";\n } \n }\n ");
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
const getWidths = list => list.map(l => l.clientWidth);
|
|
122
|
+
|
|
123
|
+
const getHeights = list => list.map(l => l.clientHeight);
|
|
124
|
+
|
|
125
|
+
function ResizableContainer(_ref3) {
|
|
126
|
+
let {
|
|
127
|
+
children,
|
|
128
|
+
cols,
|
|
129
|
+
rows,
|
|
130
|
+
vertical,
|
|
131
|
+
horizontal
|
|
132
|
+
} = _ref3,
|
|
133
|
+
rest = _objectWithoutProperties(_ref3, _excluded2);
|
|
134
|
+
|
|
136
135
|
const refs = useRef([]);
|
|
137
136
|
const [containers, setContainers] = useState(cols);
|
|
138
137
|
const [blocks, setBlocks] = useState(rows);
|
|
@@ -140,18 +139,22 @@ function ResizableContainer({
|
|
|
140
139
|
const [start, setStartPoint] = useState(0);
|
|
141
140
|
const [resetPoint, setResetPoint] = useState();
|
|
142
141
|
useEffect(() => {
|
|
143
|
-
if (horizontal)
|
|
144
|
-
|
|
145
|
-
if (vertical)
|
|
146
|
-
setBlocks(getHeights(refs.current));
|
|
142
|
+
if (horizontal) setContainers(getWidths(refs.current));
|
|
143
|
+
if (vertical) setBlocks(getHeights(refs.current));
|
|
147
144
|
}, [refs.current, horizontal, vertical]);
|
|
148
|
-
|
|
145
|
+
|
|
146
|
+
const addRef = node => {
|
|
149
147
|
refs.current.push(node);
|
|
150
148
|
};
|
|
151
|
-
|
|
149
|
+
|
|
150
|
+
const resizePanels = function () {
|
|
151
|
+
let diff = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
|
|
152
|
+
let v = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
152
153
|
const index = parseInt(start.index, 10);
|
|
154
|
+
|
|
153
155
|
if (!v) {
|
|
154
156
|
const newContainers = [...containers];
|
|
157
|
+
|
|
155
158
|
if (newContainers[index + 1] && newContainers[index + 1] > minDifference) {
|
|
156
159
|
newContainers[index + 1] = newContainers[index + 1] - diff;
|
|
157
160
|
newContainers[index] = diff + newContainers[index];
|
|
@@ -159,10 +162,11 @@ function ResizableContainer({
|
|
|
159
162
|
newContainers[index - 1] = newContainers[index - 1] - diff;
|
|
160
163
|
newContainers[index] = diff + newContainers[index];
|
|
161
164
|
}
|
|
162
|
-
|
|
163
|
-
|
|
165
|
+
|
|
166
|
+
if (newContainers.every(c => c > safeDifference)) setContainers(newContainers);
|
|
164
167
|
} else {
|
|
165
168
|
const newBlocks = [...blocks];
|
|
169
|
+
|
|
166
170
|
if (newBlocks[index + 1] && newBlocks[index + 1] > minDifference) {
|
|
167
171
|
newBlocks[index + 1] = newBlocks[index + 1] - diff;
|
|
168
172
|
newBlocks[index] = diff + newBlocks[index];
|
|
@@ -170,11 +174,14 @@ function ResizableContainer({
|
|
|
170
174
|
newBlocks[index - 1] = newBlocks[index - 1] - diff;
|
|
171
175
|
newBlocks[index] = diff + newBlocks[index];
|
|
172
176
|
}
|
|
173
|
-
|
|
174
|
-
|
|
177
|
+
|
|
178
|
+
if (newBlocks.every(c => c > safeDifference)) setBlocks(newBlocks);
|
|
175
179
|
}
|
|
176
180
|
};
|
|
177
|
-
|
|
181
|
+
|
|
182
|
+
const startResize = function (event, index) {
|
|
183
|
+
let v = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
184
|
+
let type = arguments.length > 3 ? arguments[3] : undefined;
|
|
178
185
|
setDragging(type);
|
|
179
186
|
setStartPoint({
|
|
180
187
|
x: event.clientX,
|
|
@@ -182,30 +189,41 @@ function ResizableContainer({
|
|
|
182
189
|
index,
|
|
183
190
|
v
|
|
184
191
|
});
|
|
185
|
-
setResetPoint({
|
|
192
|
+
setResetPoint({
|
|
193
|
+
containers,
|
|
194
|
+
blocks
|
|
195
|
+
});
|
|
186
196
|
};
|
|
197
|
+
|
|
187
198
|
const moveResize = (event, type) => {
|
|
188
199
|
if (isDragging && isDragging === type && !start.v) {
|
|
189
200
|
const diff = event.clientX - start.x;
|
|
190
|
-
if (diff === 0)
|
|
191
|
-
|
|
192
|
-
|
|
201
|
+
if (diff === 0) return;
|
|
202
|
+
setStartPoint({
|
|
203
|
+
x: event.clientX,
|
|
204
|
+
index: start.index
|
|
205
|
+
});
|
|
193
206
|
resizePanels(diff);
|
|
194
207
|
} else if (isDragging && isDragging === type && start.v) {
|
|
195
208
|
const diff = event.clientY - start.y;
|
|
196
|
-
if (diff === 0)
|
|
197
|
-
|
|
198
|
-
|
|
209
|
+
if (diff === 0) return;
|
|
210
|
+
setStartPoint(_objectSpread(_objectSpread({}, start), {}, {
|
|
211
|
+
y: event.clientY,
|
|
212
|
+
index: start.index
|
|
213
|
+
}));
|
|
199
214
|
resizePanels(diff, true);
|
|
200
215
|
}
|
|
201
216
|
};
|
|
202
|
-
|
|
217
|
+
|
|
218
|
+
const endResize = type => {
|
|
203
219
|
if (isDragging === type) {
|
|
204
220
|
setDragging(false);
|
|
205
221
|
setStartPoint();
|
|
206
222
|
}
|
|
207
223
|
};
|
|
208
|
-
|
|
224
|
+
|
|
225
|
+
const handleKeyDown = function (e, index) {
|
|
226
|
+
let v = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
209
227
|
const keyCodes = {
|
|
210
228
|
37: DIRECTION.L,
|
|
211
229
|
Left: DIRECTION.L,
|
|
@@ -220,66 +238,72 @@ function ResizableContainer({
|
|
|
220
238
|
Down: DIRECTION.D,
|
|
221
239
|
ArrowDown: DIRECTION.D
|
|
222
240
|
};
|
|
241
|
+
|
|
223
242
|
if (keyCodes[e.key || e.keyCode]) {
|
|
224
243
|
e.preventDefault();
|
|
225
|
-
const {
|
|
244
|
+
const {
|
|
245
|
+
top: y,
|
|
246
|
+
left: x
|
|
247
|
+
} = e.target.getBoundingClientRect();
|
|
248
|
+
|
|
226
249
|
if (!start) {
|
|
227
|
-
startResize({
|
|
250
|
+
startResize({
|
|
251
|
+
clientX: x,
|
|
252
|
+
clientY: y
|
|
253
|
+
}, index, v, EVENT_TYPE.KEY);
|
|
228
254
|
} else {
|
|
229
255
|
const clientX = keyCodes[e.keyCode] === DIRECTION.L || keyCodes[e.keyCode] === DIRECTION.R ? calcPosition(keyCodes[e.keyCode], x) : x;
|
|
230
256
|
const clientY = keyCodes[e.keyCode] === DIRECTION.U || keyCodes[e.keyCode] === DIRECTION.D ? calcPosition(keyCodes[e.keyCode], y) : y;
|
|
231
|
-
moveResize({
|
|
257
|
+
moveResize({
|
|
258
|
+
clientX,
|
|
259
|
+
clientY
|
|
260
|
+
}, EVENT_TYPE.KEY);
|
|
232
261
|
}
|
|
233
262
|
}
|
|
234
263
|
};
|
|
235
|
-
|
|
264
|
+
|
|
265
|
+
const onLeave = type => {
|
|
236
266
|
if (isDragging === type) {
|
|
237
267
|
setDragging(false);
|
|
238
|
-
if (resetPoint && resetPoint.blocks)
|
|
239
|
-
|
|
240
|
-
if (resetPoint && resetPoint.containers)
|
|
241
|
-
setContainers(resetPoint.containers);
|
|
268
|
+
if (resetPoint && resetPoint.blocks) setBlocks(resetPoint.blocks);
|
|
269
|
+
if (resetPoint && resetPoint.containers) setContainers(resetPoint.containers);
|
|
242
270
|
}
|
|
243
271
|
};
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
272
|
+
|
|
273
|
+
const count = React.Children.count(children);
|
|
274
|
+
return /*#__PURE__*/jsx(ResizableGrid, _objectSpread(_objectSpread({}, rest), {}, {
|
|
247
275
|
cols: containers,
|
|
248
276
|
onKeyUp: () => endResize(EVENT_TYPE.KEY),
|
|
249
277
|
onMouseLeave: () => onLeave(EVENT_TYPE.MOUSE),
|
|
250
|
-
onMouseMove:
|
|
278
|
+
onMouseMove: e => moveResize(e, EVENT_TYPE.MOUSE),
|
|
251
279
|
onMouseUp: () => endResize(EVENT_TYPE.MOUSE),
|
|
252
|
-
rows: blocks
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
280
|
+
rows: blocks,
|
|
281
|
+
children: React.Children.map(children, (child, index) => /*#__PURE__*/_jsx2(ResizableItem, {
|
|
282
|
+
"data-index": index,
|
|
283
|
+
innerRef: addRef
|
|
284
|
+
}, void 0, child, count - 1 !== index && horizontal && /*#__PURE__*/_jsx2(ResizableBar, {
|
|
285
|
+
container: containers[index],
|
|
286
|
+
"data-index": index,
|
|
287
|
+
gutter: rest.gutter,
|
|
288
|
+
nextContainer: containers[index + 1],
|
|
289
|
+
onKeyDown: e => handleKeyDown(e, index, false),
|
|
290
|
+
onMouseDown: e => startResize(e, index, false, EVENT_TYPE.MOUSE),
|
|
291
|
+
tabIndex: 0
|
|
292
|
+
}), count - 1 !== index && vertical && /*#__PURE__*/_jsx2(ResizableBar, {
|
|
293
|
+
container: blocks[index],
|
|
294
|
+
"data-index": index,
|
|
295
|
+
gutter: rest.gutter,
|
|
296
|
+
nextContainer: blocks[index + 1],
|
|
297
|
+
onKeyDown: e => handleKeyDown(e, index, true),
|
|
298
|
+
onMouseDown: e => startResize(e, index, true, EVENT_TYPE.MOUSE),
|
|
299
|
+
tabIndex: 0,
|
|
300
|
+
v: true
|
|
301
|
+
})))
|
|
302
|
+
}));
|
|
274
303
|
}
|
|
275
|
-
|
|
304
|
+
|
|
276
305
|
ResizableContainer.defaultProps = defaultProps;
|
|
277
306
|
const DSResizableContainerWithSchema = describe(ResizableContainer);
|
|
278
|
-
DSResizableContainerWithSchema.propTypes =
|
|
279
|
-
|
|
280
|
-
export {
|
|
281
|
-
DSResizableContainerWithSchema,
|
|
282
|
-
ResizableContainer,
|
|
283
|
-
Resizable_default as default
|
|
284
|
-
};
|
|
285
|
-
//# sourceMappingURL=Resizable.js.map
|
|
307
|
+
DSResizableContainerWithSchema.propTypes = props;
|
|
308
|
+
|
|
309
|
+
export { DSResizableContainerWithSchema, ResizableContainer, ResizableContainer as default };
|
package/esm/defaultProps.js
CHANGED
package/esm/index.js
CHANGED
|
@@ -1,7 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export * from "./Resizable";
|
|
3
|
-
import { default as default2 } from "./Resizable";
|
|
4
|
-
export {
|
|
5
|
-
default2 as default
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export { DSResizableContainerWithSchema, ResizableContainer, ResizableContainer as default } from './Resizable.js';
|
package/esm/props.js
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { PropTypes } from 'react-desc';
|
|
2
|
+
|
|
3
3
|
const props = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
/** grid item content */
|
|
5
|
+
children: PropTypes.node.description('Grid item content'),
|
|
6
|
+
|
|
7
|
+
/** vertical resizing */
|
|
8
|
+
vertical: PropTypes.bool.description('vertical resizing'),
|
|
9
|
+
|
|
10
|
+
/** horizontal resizing */
|
|
11
|
+
horizontal: PropTypes.bool.description('horizontal resizing'),
|
|
12
|
+
|
|
13
|
+
/** Row layout cells */
|
|
14
|
+
rows: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])).description('Row layout cells'),
|
|
15
|
+
|
|
16
|
+
/** Column layout cells */
|
|
17
|
+
cols: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])).description('Column layout cells')
|
|
9
18
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=props.js.map
|
|
19
|
+
|
|
20
|
+
export { props };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-resizeable-container",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-next.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Resizeable Container",
|
|
6
6
|
"module": "./esm/index.js",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"build": "node ../../scripts/build/build.js"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@elliemae/ds-grid": "
|
|
48
|
-
"@elliemae/ds-system": "
|
|
47
|
+
"@elliemae/ds-grid": "3.0.0-next.2",
|
|
48
|
+
"@elliemae/ds-system": "3.0.0-next.2",
|
|
49
49
|
"react-desc": "~4.1.3"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
package/cjs/Resizable.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/Resizable.tsx", "../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable complexity */\n/* eslint-disable max-lines */\n/* eslint-disable max-statements */\nimport React, { useRef, useState, useEffect } from 'react';\nimport { describe } from 'react-desc';\nimport styled from 'styled-components';\nimport { mapGap } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { props as rprops } from './props';\nimport { defaultProps } from './defaultProps';\n\nconst safeDifference = 15;\nconst minDifference = 8;\nconst EVENT_TYPE = { MOUSE: 'mouse', KEY: 'arrows' };\nconst DIRECTION = {\n L: 'left',\n R: 'right',\n U: 'up',\n D: 'down',\n};\n\nfunction calcPosition(arrow, position) {\n let offset;\n switch (arrow) {\n case DIRECTION.U:\n offset = position - 3;\n break;\n case DIRECTION.D:\n offset = position + 3;\n break;\n case DIRECTION.L:\n offset = position - 3;\n break;\n case DIRECTION.R:\n offset = position + 3;\n break;\n default:\n offset = position;\n }\n return offset;\n}\n\nfunction cursorResolver(nextPx, px, isVertical) {\n const orientation = {\n vertical: 'row-resize',\n horizontal: 'col-resize',\n left: 'w-resize',\n right: 'e-resize',\n up: 'n-resize',\n down: 's-resize',\n };\n\n if (isVertical && nextPx && nextPx <= safeDifference + 1)\n return orientation.up;\n if (isVertical && px > safeDifference + 1) return orientation.vertical;\n if (isVertical && px <= safeDifference + 1) return orientation.down;\n\n if (!isVertical && nextPx && nextPx <= safeDifference + 1)\n return orientation.left;\n if (!isVertical && px <= safeDifference + 1) return orientation.right;\n if (!isVertical && px > safeDifference + 1) return orientation.horizontal;\n\n return isVertical ? orientation.vertical : orientation.horizontal;\n}\n\nfunction ResizableItemComponent({ innerRef, ...p }) {\n return <Grid ref={innerRef} {...p} />;\n}\n\nconst ResizableGrid = styled(Grid)``;\nconst ResizableItem = styled(ResizableItemComponent)`\n position: relative;\n`;\nconst ResizableBar = styled.div`\n position: absolute;\n cursor: ${({ container, nextContainer, v }) =>\n cursorResolver(nextContainer, container, v)};\n\n ${(props) => {\n if (props.v) {\n return `\n bottom: calc(${mapGap(props.gutter)} * -0.5);\n left: 0;\n width: 100%;\n height: 10px;\n margin-bottom: -5px;\n display: flex;\n flex-direction: column;\n justify-content:space-around;\n align-items: center;\n &:after{\n width: 100%;\n height: 1px;\n display: block;\n background: ${props.theme.colors.neutral['300']};\n content: '';\n }\n &:hover{\n &:after{\n background: ${props.theme.colors.brand['600']};\n } \n }\n `;\n }\n return `\n top: 0;\n right: calc(${mapGap(props.gutter)} * -0.5);\n height: 100%;\n width: 10px;\n margin-right: -5px;\n display: flex;\n flex-direction: row;\n justify-content:space-around;\n align-items: center;\n &:after{\n height: 100%;\n width: 1px;\n display: block;\n background: ${props.theme.colors.neutral['300']};\n content: '';\n }\n &:hover{\n &:after{\n background: ${props.theme.colors.brand['600']};\n } \n }\n `;\n }}\n`;\nconst getWidths = (list) => list.map((l) => l.clientWidth);\nconst getHeights = (list) => list.map((l) => l.clientHeight);\n\nfunction ResizableContainer({\n children,\n cols,\n rows,\n vertical,\n horizontal,\n ...rest\n}) {\n const refs = useRef([]);\n const [containers, setContainers] = useState(cols);\n const [blocks, setBlocks] = useState(rows);\n const [isDragging, setDragging] = useState(false);\n const [start, setStartPoint] = useState(0);\n const [resetPoint, setResetPoint] = useState();\n\n useEffect(() => {\n if (horizontal) setContainers(getWidths(refs.current));\n if (vertical) setBlocks(getHeights(refs.current));\n }, [refs.current, horizontal, vertical]);\n const addRef = (node) => {\n refs.current.push(node);\n };\n const resizePanels = (diff = 1, v = false) => {\n const index = parseInt(start.index, 10);\n if (!v) {\n const newContainers = [...containers];\n if (\n newContainers[index + 1] &&\n newContainers[index + 1] > minDifference\n ) {\n newContainers[index + 1] = newContainers[index + 1] - diff;\n newContainers[index] = diff + newContainers[index];\n } else if (\n newContainers[index - 1] &&\n newContainers[index - 1] > minDifference\n ) {\n newContainers[index - 1] = newContainers[index - 1] - diff;\n newContainers[index] = diff + newContainers[index];\n }\n if (newContainers.every((c) => c > safeDifference))\n setContainers(newContainers);\n } else {\n const newBlocks = [...blocks];\n if (newBlocks[index + 1] && newBlocks[index + 1] > minDifference) {\n newBlocks[index + 1] = newBlocks[index + 1] - diff;\n newBlocks[index] = diff + newBlocks[index];\n } else if (newBlocks[index - 1] && newBlocks[index - 1] > minDifference) {\n newBlocks[index - 1] = newBlocks[index - 1] - diff;\n newBlocks[index] = diff + newBlocks[index];\n }\n if (newBlocks.every((c) => c > safeDifference)) setBlocks(newBlocks);\n }\n };\n const startResize = (event, index, v = false, type) => {\n setDragging(type);\n setStartPoint({\n x: event.clientX,\n y: event.clientY,\n index,\n v,\n });\n setResetPoint({ containers, blocks });\n };\n const moveResize = (event, type) => {\n if (isDragging && isDragging === type && !start.v) {\n const diff = event.clientX - start.x;\n if (diff === 0) return;\n setStartPoint({ x: event.clientX, index: start.index });\n resizePanels(diff);\n } else if (isDragging && isDragging === type && start.v) {\n const diff = event.clientY - start.y;\n if (diff === 0) return;\n setStartPoint({ ...start, y: event.clientY, index: start.index });\n resizePanels(diff, true);\n }\n };\n const endResize = (type) => {\n if (isDragging === type) {\n setDragging(false);\n setStartPoint();\n }\n };\n const handleKeyDown = (e, index, v = false) => {\n const keyCodes = {\n 37: DIRECTION.L,\n Left: DIRECTION.L,\n ArrowLeft: DIRECTION.L,\n 38: DIRECTION.U,\n Up: DIRECTION.U,\n ArrowUp: DIRECTION.U,\n 39: DIRECTION.R,\n Right: DIRECTION.R,\n ArrowRight: DIRECTION.R,\n 40: DIRECTION.D,\n Down: DIRECTION.D,\n ArrowDown: DIRECTION.D,\n };\n\n if (keyCodes[e.key || e.keyCode]) {\n e.preventDefault();\n const { top: y, left: x } = e.target.getBoundingClientRect();\n if (!start) {\n startResize({ clientX: x, clientY: y }, index, v, EVENT_TYPE.KEY);\n } else {\n const clientX =\n keyCodes[e.keyCode] === DIRECTION.L ||\n keyCodes[e.keyCode] === DIRECTION.R\n ? calcPosition(keyCodes[e.keyCode], x)\n : x;\n const clientY =\n keyCodes[e.keyCode] === DIRECTION.U ||\n keyCodes[e.keyCode] === DIRECTION.D\n ? calcPosition(keyCodes[e.keyCode], y)\n : y;\n\n moveResize({ clientX, clientY }, EVENT_TYPE.KEY);\n }\n }\n };\n\n const onLeave = (type) => {\n if (isDragging === type) {\n setDragging(false);\n\n if (resetPoint && resetPoint.blocks) setBlocks(resetPoint.blocks);\n if (resetPoint && resetPoint.containers)\n setContainers(resetPoint.containers);\n }\n };\n const count = React.Children.count(children);\n\n return (\n <ResizableGrid\n {...rest}\n cols={containers}\n onKeyUp={() => endResize(EVENT_TYPE.KEY)}\n onMouseLeave={() => onLeave(EVENT_TYPE.MOUSE)}\n onMouseMove={(e) => moveResize(e, EVENT_TYPE.MOUSE)}\n onMouseUp={() => endResize(EVENT_TYPE.MOUSE)}\n rows={blocks}\n >\n {React.Children.map(children, (child, index) => (\n <ResizableItem data-index={index} innerRef={addRef}>\n {child}\n {count - 1 !== index && horizontal && (\n <ResizableBar\n container={containers[index]}\n data-index={index}\n gutter={rest.gutter}\n nextContainer={containers[index + 1]}\n onKeyDown={(e) => handleKeyDown(e, index, false)}\n onMouseDown={(e) =>\n startResize(e, index, false, EVENT_TYPE.MOUSE)\n }\n tabIndex={0}\n />\n )}\n {count - 1 !== index && vertical && (\n <ResizableBar\n container={blocks[index]}\n data-index={index}\n gutter={rest.gutter}\n nextContainer={blocks[index + 1]}\n onKeyDown={(e) => handleKeyDown(e, index, true)}\n onMouseDown={(e) => startResize(e, index, true, EVENT_TYPE.MOUSE)}\n tabIndex={0}\n v\n />\n )}\n </ResizableItem>\n ))}\n </ResizableGrid>\n );\n}\n\nResizableContainer.propTypes = rprops;\nResizableContainer.defaultProps = defaultProps;\n\nconst DSResizableContainerWithSchema = describe(ResizableContainer);\nDSResizableContainerWithSchema.propTypes = rprops;\n\nexport { ResizableContainer, DSResizableContainerWithSchema };\nexport default ResizableContainer;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|