react-grid-layout 1.5.0 → 1.5.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/.babelrc.js CHANGED
@@ -16,7 +16,7 @@ module.exports = {
16
16
  ],
17
17
  plugins: [
18
18
  "@babel/plugin-transform-flow-comments",
19
- "@babel/plugin-proposal-class-properties",
19
+ "@babel/plugin-transform-class-properties",
20
20
  "babel-plugin-preval"
21
21
  ]
22
22
  };
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.5.2 (Jun 25, 2025)
4
+
5
+ - Fix `calcXY` when `isBounded=true` moving items incorrectly. Likely related to #2059. Thanks @wanpan11. [#2102](https://github.com/react-grid-layout/react-grid-layout/pull/2102)
6
+
7
+ ## 1.5.1 (Mar 11, 2025)
8
+
9
+ - Fix for React 18: wrap state calls in `flushSync`. Thanks @ashharrison90. [#2043](https://github.com/react-grid-layout/react-grid-layout/pull/2043)
10
+
11
+ ## 1.5.0 (Oct 9, 2024)
12
+
13
+ - Fix `calcXY` moving grid items slightly above and to the left of where they should be. Thanks @MaxMusing. [#2059](https://github.com/react-grid-layout/react-grid-layout/pull/2059)
14
+ - Change `onBreakpointChange`/`onLayoutChange` event order. `onBreakpointChange` now fires first. This should make managing responsive layouts easier, as you can set the current breakpoint in storage, then save the new layout to it.
15
+
3
16
  ## 1.4.4 (Nov 28, 2023)
4
17
 
5
18
  ### Bugfixes
package/build/GridItem.js CHANGED
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
+ var _reactDom = require("react-dom");
8
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
10
  var _reactDraggable = require("react-draggable");
10
11
  var _reactResizable = require("react-resizable");
@@ -12,10 +13,10 @@ var _utils = require("./utils");
12
13
  var _calculateUtils = require("./calculateUtils");
13
14
  var _ReactGridLayoutPropTypes = require("./ReactGridLayoutPropTypes");
14
15
  var _clsx = _interopRequireDefault(require("clsx"));
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
18
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
19
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
19
20
  /*:: import type { Element as ReactElement, Node as ReactNode } from "react";*/
20
21
  /*:: import type {
21
22
  ReactDraggableCallbackData,
@@ -166,8 +167,9 @@ class GridItem extends _react.default.Component /*:: <Props, State>*/{
166
167
  * onDrag event handler
167
168
  * @param {Event} e event data
168
169
  * @param {Object} callbackData an object with node, delta and position information
170
+ * @param {boolean} dontFlush if true, will not call flushSync
169
171
  */
170
- _defineProperty(this, "onDrag", (e, _ref2) => {
172
+ _defineProperty(this, "onDrag", (e, _ref2, dontFlush) => {
171
173
  let {
172
174
  node,
173
175
  deltaX,
@@ -199,23 +201,32 @@ class GridItem extends _react.default.Component /*:: <Props, State>*/{
199
201
  if (offsetParent) {
200
202
  const {
201
203
  margin,
202
- rowHeight,
203
- containerPadding
204
+ rowHeight
204
205
  } = this.props;
205
206
  const bottomBoundary = offsetParent.clientHeight - (0, _calculateUtils.calcGridItemWHPx)(h, rowHeight, margin[1]);
206
- top = (0, _calculateUtils.clamp)(top - containerPadding[1], 0, bottomBoundary);
207
+ top = (0, _calculateUtils.clamp)(top, 0, bottomBoundary);
207
208
  const colWidth = (0, _calculateUtils.calcGridColWidth)(positionParams);
208
209
  const rightBoundary = containerWidth - (0, _calculateUtils.calcGridItemWHPx)(w, colWidth, margin[0]);
209
- left = (0, _calculateUtils.clamp)(left - containerPadding[0], 0, rightBoundary);
210
+ left = (0, _calculateUtils.clamp)(left, 0, rightBoundary);
210
211
  }
211
212
  }
212
213
  const newPosition /*: PartialPosition*/ = {
213
214
  top,
214
215
  left
215
216
  };
216
- this.setState({
217
- dragging: newPosition
218
- });
217
+
218
+ // dontFlush is set if we're calling from inside
219
+ if (dontFlush) {
220
+ this.setState({
221
+ dragging: newPosition
222
+ });
223
+ } else {
224
+ (0, _reactDom.flushSync)(() => {
225
+ this.setState({
226
+ dragging: newPosition
227
+ });
228
+ });
229
+ }
219
230
 
220
231
  // Call callback with this data
221
232
  const {
@@ -329,7 +340,8 @@ class GridItem extends _react.default.Component /*:: <Props, State>*/{
329
340
  node,
330
341
  deltaX,
331
342
  deltaY
332
- });
343
+ }, true // dontFLush: avoid flushSync to temper warnings
344
+ );
333
345
  }
334
346
  }
335
347
  getPositionParams() /*: PositionParams*/{
@@ -481,8 +493,10 @@ class GridItem extends _react.default.Component /*:: <Props, State>*/{
481
493
  let updatedSize = size;
482
494
  if (node) {
483
495
  updatedSize = (0, _utils.resizeItemInDirection)(handle, position, size, containerWidth);
484
- this.setState({
485
- resizing: handlerName === "onResizeStop" ? null : updatedSize
496
+ (0, _reactDom.flushSync)(() => {
497
+ this.setState({
498
+ resizing: handlerName === "onResizeStop" ? null : updatedSize
499
+ });
486
500
  });
487
501
  }
488
502
 
@@ -11,12 +11,11 @@ var _utils = require("./utils");
11
11
  var _calculateUtils = require("./calculateUtils");
12
12
  var _GridItem = _interopRequireDefault(require("./GridItem"));
13
13
  var _ReactGridLayoutPropTypes = _interopRequireDefault(require("./ReactGridLayoutPropTypes"));
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
18
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
19
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
16
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
17
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
18
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
20
19
  /*:: import type {
21
20
  ChildrenArray as ReactChildrenArray,
22
21
  Element as ReactElement
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.resizeHandleType = exports.resizeHandleAxesType = exports.default = void 0;
7
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
8
8
  var _react = _interopRequireDefault(require("react"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  /*:: import type {
11
11
  Ref,
12
12
  ChildrenArray as ReactChildrenArray,
@@ -10,13 +10,12 @@ var _fastEquals = require("fast-equals");
10
10
  var _utils = require("./utils");
11
11
  var _responsiveUtils = require("./responsiveUtils");
12
12
  var _ReactGridLayout = _interopRequireDefault(require("./ReactGridLayout"));
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
- function _extends() { _extends = Object.assign ? Object.assign.bind() : 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
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
18
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
19
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /*:: import { type Layout, type Pick } from "./utils";*/ /*:: import { type ResponsiveLayout, type OnLayoutChangeCallback, type Breakpoints } from "./responsiveUtils";*/
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
16
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
17
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
18
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /*:: import { type Layout, type Pick } from "./utils";*/ /*:: import { type ResponsiveLayout, type OnLayoutChangeCallback, type Breakpoints } from "./responsiveUtils";*/
20
19
  // $FlowFixMe[method-unbinding]
21
20
  const type = obj => Object.prototype.toString.call(obj);
22
21
 
@@ -8,13 +8,12 @@ var React = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _resizeObserverPolyfill = _interopRequireDefault(require("resize-observer-polyfill"));
10
10
  var _clsx = _interopRequireDefault(require("clsx"));
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
- function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
15
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
17
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
14
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
16
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
18
17
  /*:: import type { ReactRef } from "../ReactGridLayoutPropTypes";*/
19
18
  /*:: type WPDefaultProps = {|
20
19
  measureBeforeMount: boolean
@@ -44,8 +43,8 @@ const layoutClassName = "react-grid-layout";
44
43
  * a flow bug of some sort that causes it to stop typechecking.
45
44
  */
46
45
  function WidthProvideRGL /*:: <Config>*/(ComposedComponent /*: React.AbstractComponent<Config>*/) /*: React.AbstractComponent<ComposedProps<Config>>*/{
47
- var _class;
48
- return _class = class WidthProvider extends React.Component
46
+ var _WidthProvider;
47
+ return _WidthProvider = class WidthProvider extends React.Component
49
48
  /*:: <
50
49
  ComposedProps<Config>,
51
50
  WPState
@@ -102,11 +101,11 @@ function WidthProvideRGL /*:: <Config>*/(ComposedComponent /*: React.AbstractCom
102
101
  innerRef: this.elementRef
103
102
  }, rest, this.state));
104
103
  }
105
- }, _defineProperty(_class, "defaultProps", {
104
+ }, _defineProperty(_WidthProvider, "defaultProps", {
106
105
  measureBeforeMount: false
107
- }), _defineProperty(_class, "propTypes", {
106
+ }), _defineProperty(_WidthProvider, "propTypes", {
108
107
  // If true, will not render children until mounted. Useful for getting the exact width before
109
108
  // rendering, to prevent any unsightly resizing.
110
109
  measureBeforeMount: _propTypes.default.bool
111
- }), _class;
110
+ }), _WidthProvider;
112
111
  }
package/build/utils.js CHANGED
@@ -34,7 +34,7 @@ exports.validateLayout = validateLayout;
34
34
  exports.withLayoutItem = withLayoutItem;
35
35
  var _fastEquals = require("fast-equals");
36
36
  var _react = _interopRequireDefault(require("react"));
37
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
38
38
  /*:: import type {
39
39
  ChildrenArray as ReactChildrenArray,
40
40
  Element as ReactElement