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.
Files changed (42) hide show
  1. package/.babelrc +1 -1
  2. package/.eslintrc +1 -1
  3. package/.flowconfig +3 -6
  4. package/CHANGELOG.md +16 -0
  5. package/README.md +68 -15
  6. package/build/Resizable.js +36 -29
  7. package/build/Resizable.js.flow +29 -22
  8. package/build/ResizableBox.js +13 -15
  9. package/build/ResizableBox.js.flow +2 -2
  10. package/build/propTypes.js.flow +27 -17
  11. package/build/utils.js +1 -1
  12. package/package.json +7 -8
  13. package/__tests__/Resizable.test.js +0 -245
  14. package/__tests__/ResizableBox.test.js +0 -99
  15. package/__tests__/__snapshots__/Resizable.test.js.snap +0 -29
  16. package/__tests__/__snapshots__/ResizableBox.test.js.snap +0 -23
  17. package/coverage/clover.xml +0 -107
  18. package/coverage/coverage-final.json +0 -5
  19. package/coverage/lcov-report/Resizable.js.html +0 -665
  20. package/coverage/lcov-report/ResizableBox.js.html +0 -374
  21. package/coverage/lcov-report/base.css +0 -224
  22. package/coverage/lcov-report/block-navigation.js +0 -79
  23. package/coverage/lcov-report/favicon.png +0 -0
  24. package/coverage/lcov-report/flow-typed/npm/index.html +0 -111
  25. package/coverage/lcov-report/flow-typed/npm/jest_v26.x.x.js.html +0 -3734
  26. package/coverage/lcov-report/index.html +0 -156
  27. package/coverage/lcov-report/prettify.css +0 -1
  28. package/coverage/lcov-report/prettify.js +0 -2
  29. package/coverage/lcov-report/propTypes.js.html +0 -485
  30. package/coverage/lcov-report/react-resizable/dist/bundle.js.html +0 -95
  31. package/coverage/lcov-report/react-resizable/dist/index.html +0 -111
  32. package/coverage/lcov-report/react-resizable/flow-typed/npm/index.html +0 -111
  33. package/coverage/lcov-report/react-resizable/flow-typed/npm/jest_v26.x.x.js.html +0 -3734
  34. package/coverage/lcov-report/react-resizable/index.html +0 -111
  35. package/coverage/lcov-report/react-resizable/index.js.html +0 -101
  36. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  37. package/coverage/lcov-report/sorter.js +0 -170
  38. package/coverage/lcov-report/utils.js.html +0 -122
  39. package/coverage/lcov.info +0 -233
  40. package/dist/bundle.js +0 -6
  41. package/flow-typed/npm/jest_v26.x.x.js +0 -1218
  42. package/setupTests/enzyme.js +0 -4
package/.babelrc CHANGED
@@ -10,7 +10,7 @@
10
10
  "@babel/preset-flow"
11
11
  ],
12
12
  "plugins": [
13
- "@babel/plugin-proposal-class-properties",
13
+ ["@babel/plugin-proposal-class-properties", {"loose": true}],
14
14
  "@babel/plugin-proposal-object-rest-spread"
15
15
  ]
16
16
  }
package/.eslintrc CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "root": true,
3
- "parser": "babel-eslint",
3
+ "parser": "@babel/eslint-parser",
4
4
  "plugins": [
5
5
  "react"
6
6
  ],
package/.flowconfig CHANGED
@@ -1,5 +1,5 @@
1
1
  [version]
2
- ^0.133.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://strml.github.io/react-resizable/examples/1.html)
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').Resizable; // or,
28
- const ResizableBox = require('react-resizable').ResizableBox;
39
+ const {Resizable} = require('react-resizable');
29
40
 
30
41
  // ES6
31
- import { Resizable, ResizableBox } from 'react-resizable';
42
+ import { Resizable } from 'react-resizable';
32
43
 
33
44
  // ...
34
- render() {
35
- return (
36
- <ResizableBox width={200} height={200} draggableOpts={{...}}
37
- minConstraints={[100, 100]} maxConstraints={[300, 300]}>
38
- <span>Contents</span>
39
- </ResizableBox>
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: 's' | 'w' | 'e' | 'n' | 'sw' | 'nw' | 'se' | 'ne') => ReactElement<any>,
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
 
@@ -3,7 +3,7 @@
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
5
 
6
- var _react = _interopRequireDefault(require("react"));
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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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 _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; }
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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
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.__proto__ = superClass; }
28
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
27
29
 
28
- 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; }
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
- _defineProperty(_assertThisInitialized(_this), "state", undefined);
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(resizeHandleAxis) {
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(resizeHandleAxis);
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__*/_react.default.createElement("span", {
211
- className: "react-resizable-handle react-resizable-handle-" + resizeHandleAxis
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
- return /*#__PURE__*/_react.default.createElement(_reactDraggable.DraggableCore, _extends({}, draggableOpts, {
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
- }(_react.default.Component);
266
+ }(React.Component);
258
267
 
259
268
  exports.default = Resizable;
260
-
261
- _defineProperty(Resizable, "propTypes", _propTypes.resizableProps);
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
+ };
@@ -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, ResizableState, DragCallbackData} from './propTypes';
7
+ import type {ResizeHandleAxis, DefaultProps, Props, ReactRef, DragCallbackData} from './propTypes';
8
8
 
9
- export default class Resizable extends React.Component<Props, ResizableState> {
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
- state: ResizableState = undefined;
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
- renderResizeHandle(resizeHandleAxis: ResizeHandleAxis): ReactNode {
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(resizeHandleAxis);
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-${resizeHandleAxis}`} />;
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
- <DraggableCore
183
- {...draggableOpts}
184
- key={`resizableHandle-${handleAxis}`}
185
- onStop={this.resizeHandler('onResizeStop', handleAxis)}
186
- onStart={this.resizeHandler('onResizeStart', handleAxis)}
187
- onDrag={this.resizeHandler('onResize', handleAxis)}
188
- >
189
- {this.renderResizeHandle(handleAxis)}
190
- </DraggableCore>
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
  }
@@ -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 cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
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 _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; }
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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
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.__proto__ = superClass; }
30
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
31
31
 
32
- 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; }
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
- _defineProperty(_assertThisInitialized(_this), "onResize", function (e, data) {
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 = (e: SyntheticEvent<>, data: ResizeCallbackData) => {
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();
@@ -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: {|width: number, height: number|},
25
+ size: {width: number, height: number},
22
26
  handle: ResizeHandleAxis
23
- |};
27
+ };
24
28
 
25
29
  // <Resizable>
26
- export type Props = {|
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": "1.11.0",
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:STRML/react-resizable.git"
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/STRML/react-resizable/issues"
33
+ "url": "https://github.com/react-grid-layout/react-resizable/issues"
34
34
  },
35
- "homepage": "https://github.com/STRML/react-resizable",
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.133.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": "0.14.x || 15.x || 16.x",
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"