react-resizable 1.11.0 → 3.0.1
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/.babelrc +1 -1
- package/.eslintrc +1 -1
- package/.flowconfig +3 -6
- package/CHANGELOG.md +16 -0
- package/README.md +68 -15
- package/build/Resizable.js +36 -29
- package/build/Resizable.js.flow +29 -22
- package/build/ResizableBox.js +13 -15
- package/build/ResizableBox.js.flow +2 -2
- package/build/propTypes.js.flow +27 -17
- package/build/utils.js +1 -1
- package/package.json +7 -8
- package/__tests__/Resizable.test.js +0 -245
- package/__tests__/ResizableBox.test.js +0 -99
- package/__tests__/__snapshots__/Resizable.test.js.snap +0 -29
- package/__tests__/__snapshots__/ResizableBox.test.js.snap +0 -23
- package/coverage/clover.xml +0 -107
- package/coverage/coverage-final.json +0 -5
- package/coverage/lcov-report/Resizable.js.html +0 -665
- package/coverage/lcov-report/ResizableBox.js.html +0 -374
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -79
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/flow-typed/npm/index.html +0 -111
- package/coverage/lcov-report/flow-typed/npm/jest_v26.x.x.js.html +0 -3734
- package/coverage/lcov-report/index.html +0 -156
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/propTypes.js.html +0 -485
- package/coverage/lcov-report/react-resizable/dist/bundle.js.html +0 -95
- package/coverage/lcov-report/react-resizable/dist/index.html +0 -111
- package/coverage/lcov-report/react-resizable/flow-typed/npm/index.html +0 -111
- package/coverage/lcov-report/react-resizable/flow-typed/npm/jest_v26.x.x.js.html +0 -3734
- package/coverage/lcov-report/react-resizable/index.html +0 -111
- package/coverage/lcov-report/react-resizable/index.js.html +0 -101
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -170
- package/coverage/lcov-report/utils.js.html +0 -122
- package/coverage/lcov.info +0 -233
- package/dist/bundle.js +0 -6
- package/flow-typed/npm/jest_v26.x.x.js +0 -1218
- package/setupTests/enzyme.js +0 -4
package/.babelrc
CHANGED
package/.eslintrc
CHANGED
package/.flowconfig
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
[version]
|
|
2
|
-
^0.
|
|
2
|
+
^0.150.1
|
|
3
3
|
|
|
4
4
|
[ignore]
|
|
5
5
|
.*/node_modules/@babel.*
|
|
@@ -18,12 +18,9 @@ implicit-inexact-object=error
|
|
|
18
18
|
|
|
19
19
|
[options]
|
|
20
20
|
suppress_type=$FlowFixMe
|
|
21
|
-
esproposal.class_static_fields=enable
|
|
22
|
-
esproposal.class_instance_fields=enable
|
|
23
|
-
esproposal.decorators=ignore
|
|
24
|
-
esproposal.export_star_as=enable
|
|
25
21
|
experimental.strict_call_arity=true
|
|
26
22
|
module.system.node.allow_root_relative=true
|
|
27
23
|
module.use_strict=true
|
|
28
24
|
server.max_workers=6
|
|
29
|
-
exact_by_default=true
|
|
25
|
+
exact_by_default=true
|
|
26
|
+
sharedmemory.heap_size=3221225472
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
### 3.0.1 (May 10, 2021)
|
|
4
|
+
|
|
5
|
+
- Reduce package size through `.npmignore`.
|
|
6
|
+
|
|
7
|
+
### 3.0.0 (May 10, 2021)
|
|
8
|
+
|
|
9
|
+
#### Breaking
|
|
10
|
+
- Fixed handling of the `nodeRef` that needs to be passed to `<DraggableCore>` to avoid use of ReactDOM. This means that vanilla usage of `react-resizable` no longer requires ReactDOM. No code changes are needed in the usual case, except:
|
|
11
|
+
* React `>= 16.3` is required due to use of `React.createRef()`, and
|
|
12
|
+
* The `handle` prop now sends a `ReactRef<HTMLElement>` as its second argument and expects it to be used on your returned component.
|
|
13
|
+
* If you do not attach the `ref`, you will receive the following error: `"<DraggableCore> not mounted on DragStart!"` This is due to the ref being present but not attached to any node.
|
|
14
|
+
|
|
15
|
+
### 1.11.1 (Mar 5, 2021)
|
|
16
|
+
|
|
17
|
+
- Added React 17 to peerDependencies.
|
|
18
|
+
|
|
3
19
|
### 1.11.0 (Sep 3, 2020)
|
|
4
20
|
|
|
5
21
|
- ⚠ Important Notice!
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
### React-Resizable
|
|
2
2
|
|
|
3
|
-
[View the Demo](https://
|
|
3
|
+
[View the Demo](https://react-grid-layout.github.io/react-resizable/examples/1.html)
|
|
4
4
|
|
|
5
5
|
A simple widget that can be resized via one or more handles.
|
|
6
6
|
|
|
@@ -17,27 +17,72 @@ See the [demo](/examples/TestLayout.js) for more on this.
|
|
|
17
17
|
|
|
18
18
|
### Installation
|
|
19
19
|
|
|
20
|
-
Using [npm](https://www.npmjs.com/):
|
|
21
|
-
|
|
22
20
|
$ npm install --save react-resizable
|
|
23
21
|
|
|
22
|
+
### Compatibility
|
|
23
|
+
|
|
24
|
+
[React-Resizable 3.x](/CHANGELOG.md#3.0.0) is compatible with React `>= 16.3`.
|
|
25
|
+
React-Resizable 2.x has been skipped.
|
|
26
|
+
[React-Resizable 1.x](/CHANGELOG.md#1.11.1) is compatible with React `14-17`.
|
|
27
|
+
|
|
24
28
|
### Usage
|
|
25
29
|
|
|
30
|
+
This package has two major exports:
|
|
31
|
+
|
|
32
|
+
* [`<Resizable>`](/lib/Resizable.js): A raw component that does not have state. Use as a building block for larger components, by listening to its
|
|
33
|
+
callbacks and setting its props.
|
|
34
|
+
* [`<ResizableBox>`](/lib/ResizableBox.js): A simple `<div {...props} />` element that manages basic state. Convenient for simple use-cases.
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
#### `<Resizable>`
|
|
26
38
|
```js
|
|
27
|
-
const Resizable = require('react-resizable')
|
|
28
|
-
const ResizableBox = require('react-resizable').ResizableBox;
|
|
39
|
+
const {Resizable} = require('react-resizable');
|
|
29
40
|
|
|
30
41
|
// ES6
|
|
31
|
-
import { Resizable
|
|
42
|
+
import { Resizable } from 'react-resizable';
|
|
32
43
|
|
|
33
44
|
// ...
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
45
|
+
class Example extends React.Component {
|
|
46
|
+
state = {
|
|
47
|
+
width: 200,
|
|
48
|
+
height: 200,
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// On top layout
|
|
52
|
+
onResize = (event, {element, size, handle}) => {
|
|
53
|
+
this.setState({width: size.width, height: size.height});
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
render() {
|
|
57
|
+
return (
|
|
58
|
+
<Resizable height={this.state.height} width={this.state.width} onResize={this.onResize}>
|
|
59
|
+
<div className="box" style={{width: this.state.width + 'px', height: this.state.height + 'px'}}>
|
|
60
|
+
<span>Contents</span>
|
|
61
|
+
</div>
|
|
62
|
+
</Resizable>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
#### `<ResizableBox>`
|
|
71
|
+
```js
|
|
72
|
+
const {ResizableBox} = require('react-resizable');
|
|
73
|
+
|
|
74
|
+
// ES6
|
|
75
|
+
import { ResizableBox } from 'react-resizable';
|
|
76
|
+
|
|
77
|
+
class Example extends React.Component {
|
|
78
|
+
render() {
|
|
79
|
+
return (
|
|
80
|
+
<ResizableBox width={200} height={200} draggableOpts={{...}}
|
|
81
|
+
minConstraints={[100, 100]} maxConstraints={[300, 300]}>
|
|
82
|
+
<span>Contents</span>
|
|
83
|
+
</ResizableBox>
|
|
84
|
+
);
|
|
85
|
+
}
|
|
41
86
|
}
|
|
42
87
|
```
|
|
43
88
|
|
|
@@ -46,12 +91,20 @@ render() {
|
|
|
46
91
|
These props apply to both `<Resizable>` and `<ResizableBox>`. Unknown props that are not in the list below will be passed to the child component.
|
|
47
92
|
|
|
48
93
|
```js
|
|
94
|
+
type ResizeCallbackData = {
|
|
95
|
+
node: HTMLElement,
|
|
96
|
+
size: {width: number, height: number},
|
|
97
|
+
handle: ResizeHandleAxis
|
|
98
|
+
};
|
|
99
|
+
type ResizeHandleAxis = 's' | 'w' | 'e' | 'n' | 'sw' | 'nw' | 'se' | 'ne';
|
|
100
|
+
|
|
101
|
+
type ResizableProps =
|
|
49
102
|
{
|
|
50
103
|
children: React.Element<any>,
|
|
51
104
|
width: number,
|
|
52
105
|
height: number,
|
|
53
106
|
// Either a ReactElement to be used as handle, or a function returning an element that is fed the handle's location as its first argument.
|
|
54
|
-
handle: ReactElement<any> | (resizeHandle:
|
|
107
|
+
handle: ReactElement<any> | (resizeHandle: ResizeHandleAxis, ref: ReactRef<HTMLElement>) => ReactElement<any>,
|
|
55
108
|
// If you change this, be sure to update your css
|
|
56
109
|
handleSize: [number, number] = [10, 10],
|
|
57
110
|
lockAspectRatio: boolean = false,
|
|
@@ -70,7 +123,7 @@ The following props can also be used on `<ResizableBox>`:
|
|
|
70
123
|
|
|
71
124
|
```js
|
|
72
125
|
{
|
|
73
|
-
style?: Object
|
|
126
|
+
style?: Object // styles the returned <div />
|
|
74
127
|
}
|
|
75
128
|
```
|
|
76
129
|
|
package/build/Resizable.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.default = void 0;
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var React = _interopRequireWildcard(require("react"));
|
|
7
7
|
|
|
8
8
|
var _reactDraggable = require("react-draggable");
|
|
9
9
|
|
|
@@ -11,22 +11,26 @@ var _utils = require("./utils");
|
|
|
11
11
|
|
|
12
12
|
var _propTypes = require("./propTypes");
|
|
13
13
|
|
|
14
|
-
function
|
|
14
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
+
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
17
|
|
|
16
18
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
17
19
|
|
|
18
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
20
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
19
21
|
|
|
20
22
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
21
23
|
|
|
22
|
-
function
|
|
24
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
23
25
|
|
|
24
|
-
function
|
|
26
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
25
27
|
|
|
26
|
-
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass
|
|
28
|
+
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
|
|
27
29
|
|
|
28
|
-
function
|
|
30
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
29
31
|
|
|
32
|
+
// The base <Resizable> component.
|
|
33
|
+
// This component does not have state and relies on the parent to set its props based on callback data.
|
|
30
34
|
var Resizable = /*#__PURE__*/function (_React$Component) {
|
|
31
35
|
_inheritsLoose(Resizable, _React$Component);
|
|
32
36
|
|
|
@@ -38,13 +42,9 @@ var Resizable = /*#__PURE__*/function (_React$Component) {
|
|
|
38
42
|
}
|
|
39
43
|
|
|
40
44
|
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
_defineProperty(_assertThisInitialized(_this), "lastHandleRect", null);
|
|
45
|
-
|
|
46
|
-
_defineProperty(_assertThisInitialized(_this), "slack", null);
|
|
47
|
-
|
|
45
|
+
_this.handleRefs = {};
|
|
46
|
+
_this.lastHandleRect = null;
|
|
47
|
+
_this.slack = null;
|
|
48
48
|
return _this;
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -194,21 +194,25 @@ var Resizable = /*#__PURE__*/function (_React$Component) {
|
|
|
194
194
|
|
|
195
195
|
if (handlerName === 'onResizeStop') _this2.resetData();
|
|
196
196
|
};
|
|
197
|
-
}
|
|
197
|
+
} // Render a resize handle given an axis & DOM ref.
|
|
198
|
+
;
|
|
198
199
|
|
|
199
|
-
_proto.renderResizeHandle = function renderResizeHandle(
|
|
200
|
+
_proto.renderResizeHandle = function renderResizeHandle(handleAxis, ref) {
|
|
200
201
|
var handle = this.props.handle;
|
|
201
202
|
|
|
202
203
|
if (handle) {
|
|
203
204
|
if (typeof handle === 'function') {
|
|
204
|
-
return handle(
|
|
205
|
+
return handle(handleAxis, ref);
|
|
205
206
|
}
|
|
206
207
|
|
|
207
|
-
return handle
|
|
208
|
+
return /*#__PURE__*/React.cloneElement(handle, {
|
|
209
|
+
ref: ref
|
|
210
|
+
});
|
|
208
211
|
}
|
|
209
212
|
|
|
210
|
-
return /*#__PURE__*/
|
|
211
|
-
className: "react-resizable-handle react-resizable-handle-" +
|
|
213
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
214
|
+
className: "react-resizable-handle react-resizable-handle-" + handleAxis,
|
|
215
|
+
ref: ref
|
|
212
216
|
});
|
|
213
217
|
};
|
|
214
218
|
|
|
@@ -243,29 +247,32 @@ var Resizable = /*#__PURE__*/function (_React$Component) {
|
|
|
243
247
|
return (0, _utils.cloneElement)(children, _objectSpread(_objectSpread({}, p), {}, {
|
|
244
248
|
className: (className ? className + " " : '') + "react-resizable",
|
|
245
249
|
children: [].concat(children.props.children, resizeHandles.map(function (handleAxis) {
|
|
246
|
-
|
|
250
|
+
var _this3$handleRefs$han;
|
|
251
|
+
|
|
252
|
+
// Create a ref to the handle so that `<DraggableCore>` doesn't have to use ReactDOM.findDOMNode().
|
|
253
|
+
var ref = (_this3$handleRefs$han = _this3.handleRefs[handleAxis]) != null ? _this3$handleRefs$han : _this3.handleRefs[handleAxis] = /*#__PURE__*/React.createRef();
|
|
254
|
+
return /*#__PURE__*/React.createElement(_reactDraggable.DraggableCore, _extends({}, draggableOpts, {
|
|
255
|
+
nodeRef: ref,
|
|
247
256
|
key: "resizableHandle-" + handleAxis,
|
|
248
257
|
onStop: _this3.resizeHandler('onResizeStop', handleAxis),
|
|
249
258
|
onStart: _this3.resizeHandler('onResizeStart', handleAxis),
|
|
250
259
|
onDrag: _this3.resizeHandler('onResize', handleAxis)
|
|
251
|
-
}), _this3.renderResizeHandle(handleAxis));
|
|
260
|
+
}), _this3.renderResizeHandle(handleAxis, ref));
|
|
252
261
|
}))
|
|
253
262
|
}));
|
|
254
263
|
};
|
|
255
264
|
|
|
256
265
|
return Resizable;
|
|
257
|
-
}(
|
|
266
|
+
}(React.Component);
|
|
258
267
|
|
|
259
268
|
exports.default = Resizable;
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
_defineProperty(Resizable, "defaultProps", {
|
|
269
|
+
Resizable.propTypes = _propTypes.resizableProps;
|
|
270
|
+
Resizable.defaultProps = {
|
|
271
|
+
axis: 'both',
|
|
264
272
|
handleSize: [20, 20],
|
|
265
273
|
lockAspectRatio: false,
|
|
266
|
-
axis: 'both',
|
|
267
274
|
minConstraints: [20, 20],
|
|
268
275
|
maxConstraints: [Infinity, Infinity],
|
|
269
276
|
resizeHandles: ['se'],
|
|
270
277
|
transformScale: 1
|
|
271
|
-
}
|
|
278
|
+
};
|
package/build/Resizable.js.flow
CHANGED
|
@@ -1,26 +1,27 @@
|
|
|
1
1
|
// @flow
|
|
2
|
-
import React from 'react';
|
|
2
|
+
import * as React from 'react';
|
|
3
3
|
import type {Node as ReactNode} from 'react';
|
|
4
4
|
import {DraggableCore} from 'react-draggable';
|
|
5
5
|
import {cloneElement} from './utils';
|
|
6
6
|
import {resizableProps} from "./propTypes";
|
|
7
|
-
import type {ResizeHandleAxis, Props,
|
|
7
|
+
import type {ResizeHandleAxis, DefaultProps, Props, ReactRef, DragCallbackData} from './propTypes';
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
// The base <Resizable> component.
|
|
10
|
+
// This component does not have state and relies on the parent to set its props based on callback data.
|
|
11
|
+
export default class Resizable extends React.Component<Props, void> {
|
|
10
12
|
static propTypes = resizableProps;
|
|
11
13
|
|
|
12
|
-
static defaultProps = {
|
|
14
|
+
static defaultProps: DefaultProps = {
|
|
15
|
+
axis: 'both',
|
|
13
16
|
handleSize: [20, 20],
|
|
14
17
|
lockAspectRatio: false,
|
|
15
|
-
axis: 'both',
|
|
16
18
|
minConstraints: [20, 20],
|
|
17
19
|
maxConstraints: [Infinity, Infinity],
|
|
18
20
|
resizeHandles: ['se'],
|
|
19
21
|
transformScale: 1
|
|
20
22
|
};
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
handleRefs: {[key: ResizeHandleAxis]: ReactRef<HTMLElement>} = {};
|
|
24
25
|
lastHandleRect: ?ClientRect = null;
|
|
25
26
|
slack: ?[number, number] = null;
|
|
26
27
|
|
|
@@ -151,15 +152,16 @@ export default class Resizable extends React.Component<Props, ResizableState> {
|
|
|
151
152
|
};
|
|
152
153
|
}
|
|
153
154
|
|
|
154
|
-
|
|
155
|
+
// Render a resize handle given an axis & DOM ref.
|
|
156
|
+
renderResizeHandle(handleAxis: ResizeHandleAxis, ref: ReactRef<HTMLElement>): ReactNode {
|
|
155
157
|
const {handle} = this.props;
|
|
156
158
|
if (handle) {
|
|
157
159
|
if (typeof handle === 'function') {
|
|
158
|
-
return handle(
|
|
160
|
+
return handle(handleAxis, ref);
|
|
159
161
|
}
|
|
160
|
-
return handle;
|
|
162
|
+
return React.cloneElement(handle, {ref});
|
|
161
163
|
}
|
|
162
|
-
return <span className={`react-resizable-handle react-resizable-handle-${
|
|
164
|
+
return <span className={`react-resizable-handle react-resizable-handle-${handleAxis}`} ref={ref} />;
|
|
163
165
|
}
|
|
164
166
|
|
|
165
167
|
render(): ReactNode {
|
|
@@ -178,17 +180,22 @@ export default class Resizable extends React.Component<Props, ResizableState> {
|
|
|
178
180
|
className: `${className ? `${className} ` : ''}react-resizable`,
|
|
179
181
|
children: [
|
|
180
182
|
...children.props.children,
|
|
181
|
-
...resizeHandles.map((handleAxis) =>
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
183
|
+
...resizeHandles.map((handleAxis) => {
|
|
184
|
+
// Create a ref to the handle so that `<DraggableCore>` doesn't have to use ReactDOM.findDOMNode().
|
|
185
|
+
const ref = (this.handleRefs[handleAxis]) ?? (this.handleRefs[handleAxis] = React.createRef());
|
|
186
|
+
return (
|
|
187
|
+
<DraggableCore
|
|
188
|
+
{...draggableOpts}
|
|
189
|
+
nodeRef={ref}
|
|
190
|
+
key={`resizableHandle-${handleAxis}`}
|
|
191
|
+
onStop={this.resizeHandler('onResizeStop', handleAxis)}
|
|
192
|
+
onStart={this.resizeHandler('onResizeStart', handleAxis)}
|
|
193
|
+
onDrag={this.resizeHandler('onResize', handleAxis)}
|
|
194
|
+
>
|
|
195
|
+
{this.renderResizeHandle(handleAxis, ref)}
|
|
196
|
+
</DraggableCore>
|
|
197
|
+
);
|
|
198
|
+
})
|
|
192
199
|
]
|
|
193
200
|
});
|
|
194
201
|
}
|
package/build/ResizableBox.js
CHANGED
|
@@ -13,23 +13,23 @@ var _propTypes2 = require("./propTypes");
|
|
|
13
13
|
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
15
|
|
|
16
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
17
|
|
|
18
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
19
|
|
|
20
20
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
21
21
|
|
|
22
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
22
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
23
23
|
|
|
24
24
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
25
25
|
|
|
26
|
-
function
|
|
26
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
27
27
|
|
|
28
|
-
function
|
|
28
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
29
29
|
|
|
30
|
-
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass
|
|
30
|
+
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
|
|
31
31
|
|
|
32
|
-
function
|
|
32
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
33
33
|
|
|
34
34
|
var ResizableBox = /*#__PURE__*/function (_React$Component) {
|
|
35
35
|
_inheritsLoose(ResizableBox, _React$Component);
|
|
@@ -42,15 +42,14 @@ var ResizableBox = /*#__PURE__*/function (_React$Component) {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
|
|
45
|
-
|
|
46
|
-
_defineProperty(_assertThisInitialized(_this), "state", {
|
|
45
|
+
_this.state = {
|
|
47
46
|
width: _this.props.width,
|
|
48
47
|
height: _this.props.height,
|
|
49
48
|
propsWidth: _this.props.width,
|
|
50
49
|
propsHeight: _this.props.height
|
|
51
|
-
}
|
|
50
|
+
};
|
|
52
51
|
|
|
53
|
-
|
|
52
|
+
_this.onResize = function (e, data) {
|
|
54
53
|
var size = data.size;
|
|
55
54
|
|
|
56
55
|
if (_this.props.onResize) {
|
|
@@ -62,7 +61,7 @@ var ResizableBox = /*#__PURE__*/function (_React$Component) {
|
|
|
62
61
|
} else {
|
|
63
62
|
_this.setState(size);
|
|
64
63
|
}
|
|
65
|
-
}
|
|
64
|
+
};
|
|
66
65
|
|
|
67
66
|
return _this;
|
|
68
67
|
}
|
|
@@ -132,7 +131,6 @@ var ResizableBox = /*#__PURE__*/function (_React$Component) {
|
|
|
132
131
|
}(React.Component);
|
|
133
132
|
|
|
134
133
|
exports.default = ResizableBox;
|
|
135
|
-
|
|
136
|
-
_defineProperty(ResizableBox, "propTypes", _objectSpread(_objectSpread({}, _propTypes2.resizableProps), {}, {
|
|
134
|
+
ResizableBox.propTypes = _objectSpread(_objectSpread({}, _propTypes2.resizableProps), {}, {
|
|
137
135
|
children: _propTypes.default.element
|
|
138
|
-
})
|
|
136
|
+
});
|
|
@@ -28,7 +28,7 @@ export default class ResizableBox extends React.Component<ResizableBoxProps, Res
|
|
|
28
28
|
propsHeight: this.props.height,
|
|
29
29
|
};
|
|
30
30
|
|
|
31
|
-
static getDerivedStateFromProps(props: ResizableBoxProps, state: ResizableBoxState) {
|
|
31
|
+
static getDerivedStateFromProps(props: ResizableBoxProps, state: ResizableBoxState): ?ResizableBoxState {
|
|
32
32
|
// If parent changes height/width, set that in our state.
|
|
33
33
|
if (state.propsWidth !== props.width || state.propsHeight !== props.height) {
|
|
34
34
|
return {
|
|
@@ -41,7 +41,7 @@ export default class ResizableBox extends React.Component<ResizableBoxProps, Res
|
|
|
41
41
|
return null;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
onResize
|
|
44
|
+
onResize: (e: SyntheticEvent<>, data: ResizeCallbackData) => void = (e, data) => {
|
|
45
45
|
const {size} = data;
|
|
46
46
|
if (this.props.onResize) {
|
|
47
47
|
e.persist && e.persist();
|
package/build/propTypes.js.flow
CHANGED
|
@@ -3,46 +3,56 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import {DraggableCore} from "react-draggable";
|
|
4
4
|
import type {Element as ReactElement, ElementConfig} from 'react';
|
|
5
5
|
|
|
6
|
+
export type ReactRef<T: HTMLElement> = {
|
|
7
|
+
current: T | null
|
|
8
|
+
};
|
|
9
|
+
|
|
6
10
|
export type Axis = 'both' | 'x' | 'y' | 'none';
|
|
7
11
|
export type ResizeHandleAxis = 's' | 'w' | 'e' | 'n' | 'sw' | 'nw' | 'se' | 'ne';
|
|
8
12
|
export type ResizableState = void;
|
|
9
|
-
export type ResizableBoxState = {
|
|
13
|
+
export type ResizableBoxState = {
|
|
10
14
|
width: number, height: number,
|
|
11
15
|
propsWidth: number, propsHeight: number
|
|
12
|
-
|
|
13
|
-
export type DragCallbackData = {
|
|
16
|
+
};
|
|
17
|
+
export type DragCallbackData = {
|
|
14
18
|
node: HTMLElement,
|
|
15
19
|
x: number, y: number,
|
|
16
20
|
deltaX: number, deltaY: number,
|
|
17
21
|
lastX: number, lastY: number
|
|
18
|
-
|
|
19
|
-
export type ResizeCallbackData = {
|
|
22
|
+
};
|
|
23
|
+
export type ResizeCallbackData = {
|
|
20
24
|
node: HTMLElement,
|
|
21
|
-
size: {
|
|
25
|
+
size: {width: number, height: number},
|
|
22
26
|
handle: ResizeHandleAxis
|
|
23
|
-
|
|
27
|
+
};
|
|
24
28
|
|
|
25
29
|
// <Resizable>
|
|
26
|
-
export type
|
|
30
|
+
export type DefaultProps = {
|
|
27
31
|
axis: Axis,
|
|
28
|
-
children: ReactElement<any>,
|
|
29
|
-
className?: ?string,
|
|
30
|
-
draggableOpts?: ?ElementConfig<typeof DraggableCore>,
|
|
31
|
-
height: number,
|
|
32
|
-
handle?: ReactElement<any> | (resizeHandleAxis: ResizeHandleAxis) => ReactElement<any>,
|
|
33
32
|
handleSize: [number, number],
|
|
34
33
|
lockAspectRatio: boolean,
|
|
35
34
|
minConstraints: [number, number],
|
|
36
35
|
maxConstraints: [number, number],
|
|
36
|
+
resizeHandles: ResizeHandleAxis[],
|
|
37
|
+
transformScale: number,
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export type Props = {
|
|
41
|
+
...DefaultProps,
|
|
42
|
+
children: ReactElement<any>,
|
|
43
|
+
className?: ?string,
|
|
44
|
+
draggableOpts?: ?ElementConfig<typeof DraggableCore>,
|
|
45
|
+
height: number,
|
|
46
|
+
handle?: ReactElement<any> | (resizeHandleAxis: ResizeHandleAxis, ref: ReactRef<HTMLElement>) => ReactElement<any>,
|
|
37
47
|
onResizeStop?: ?(e: SyntheticEvent<>, data: ResizeCallbackData) => any,
|
|
38
48
|
onResizeStart?: ?(e: SyntheticEvent<>, data: ResizeCallbackData) => any,
|
|
39
49
|
onResize?: ?(e: SyntheticEvent<>, data: ResizeCallbackData) => any,
|
|
40
|
-
resizeHandles: ResizeHandleAxis[],
|
|
41
|
-
transformScale: number,
|
|
42
50
|
width: number,
|
|
43
|
-
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
|
|
44
54
|
|
|
45
|
-
export const resizableProps = {
|
|
55
|
+
export const resizableProps: Object = {
|
|
46
56
|
/*
|
|
47
57
|
* Restricts resizing to a particular axis (default: 'both')
|
|
48
58
|
* 'both' - allows resizing by width or height
|
package/build/utils.js
CHANGED
|
@@ -7,7 +7,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
7
7
|
|
|
8
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
9
|
|
|
10
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
10
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
11
11
|
|
|
12
12
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
13
13
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-resizable",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "A component that is resizable with handles.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
},
|
|
21
21
|
"repository": {
|
|
22
22
|
"type": "git",
|
|
23
|
-
"url": "git@github.com:
|
|
23
|
+
"url": "git@github.com:react-grid-layout/react-resizable.git"
|
|
24
24
|
},
|
|
25
25
|
"keywords": [
|
|
26
26
|
"react",
|
|
@@ -30,18 +30,18 @@
|
|
|
30
30
|
"author": "Samuel Reed <samuel.trace.reed@gmail.com> (http://strml.net/)",
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"bugs": {
|
|
33
|
-
"url": "https://github.com/
|
|
33
|
+
"url": "https://github.com/react-grid-layout/react-resizable/issues"
|
|
34
34
|
},
|
|
35
|
-
"homepage": "https://github.com/
|
|
35
|
+
"homepage": "https://github.com/react-grid-layout/react-resizable",
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@babel/cli": "^7.11.6",
|
|
38
38
|
"@babel/core": "^7.11.6",
|
|
39
|
+
"@babel/eslint-parser": "^7.13.14",
|
|
39
40
|
"@babel/plugin-proposal-class-properties": "^7.10.4",
|
|
40
41
|
"@babel/plugin-proposal-object-rest-spread": "^7.11.0",
|
|
41
42
|
"@babel/preset-env": "^7.11.5",
|
|
42
43
|
"@babel/preset-flow": "^7.10.4",
|
|
43
44
|
"@babel/preset-react": "^7.10.4",
|
|
44
|
-
"babel-eslint": "^10.0.3",
|
|
45
45
|
"babel-loader": "^8.0.6",
|
|
46
46
|
"cross-env": "^7.0.2",
|
|
47
47
|
"css-loader": "^4.2.2",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"enzyme-adapter-react-16": "^1.15.4",
|
|
50
50
|
"eslint": "^7.8.1",
|
|
51
51
|
"eslint-plugin-react": "^7.20.6",
|
|
52
|
-
"flow-bin": "^0.
|
|
52
|
+
"flow-bin": "^0.150.1",
|
|
53
53
|
"jest": "^26.4.2",
|
|
54
54
|
"lodash": "^4.17.20",
|
|
55
55
|
"pre-commit": "^1.1.2",
|
|
@@ -66,8 +66,7 @@
|
|
|
66
66
|
"react-draggable": "^4.0.3"
|
|
67
67
|
},
|
|
68
68
|
"peerDependencies": {
|
|
69
|
-
"react": "
|
|
70
|
-
"react-dom": "0.14.x || 15.x || 16.x"
|
|
69
|
+
"react": ">= 16.3"
|
|
71
70
|
},
|
|
72
71
|
"publishConfig": {
|
|
73
72
|
"registry": "https://registry.npmjs.org"
|