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 +1 -1
- package/CHANGELOG.md +13 -0
- package/build/GridItem.js +29 -15
- package/build/ReactGridLayout.js +5 -6
- package/build/ReactGridLayoutPropTypes.js +1 -1
- package/build/ResponsiveReactGridLayout.js +6 -7
- package/build/components/WidthProvider.js +11 -12
- package/build/utils.js +1 -1
- package/dist/react-grid-layout.min.js +1 -1
- package/dist/react-grid-layout.min.js.map +1 -1
- package/lib/GridItem.jsx +30 -13
- package/package.json +20 -14
package/.babelrc.js
CHANGED
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(
|
|
16
|
-
function _defineProperty(
|
|
17
|
-
function _toPropertyKey(
|
|
18
|
-
function _toPrimitive(
|
|
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
|
|
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
|
|
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
|
-
|
|
217
|
-
|
|
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
|
-
|
|
485
|
-
|
|
496
|
+
(0, _reactDom.flushSync)(() => {
|
|
497
|
+
this.setState({
|
|
498
|
+
resizing: handlerName === "onResizeStop" ? null : updatedSize
|
|
499
|
+
});
|
|
486
500
|
});
|
|
487
501
|
}
|
|
488
502
|
|
package/build/ReactGridLayout.js
CHANGED
|
@@ -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(
|
|
15
|
-
function
|
|
16
|
-
function
|
|
17
|
-
function
|
|
18
|
-
function
|
|
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(
|
|
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(
|
|
14
|
-
function
|
|
15
|
-
function
|
|
16
|
-
function
|
|
17
|
-
function
|
|
18
|
-
function
|
|
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(
|
|
12
|
-
function
|
|
13
|
-
function
|
|
14
|
-
function
|
|
15
|
-
function
|
|
16
|
-
function
|
|
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
|
|
48
|
-
return
|
|
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(
|
|
104
|
+
}, _defineProperty(_WidthProvider, "defaultProps", {
|
|
106
105
|
measureBeforeMount: false
|
|
107
|
-
}), _defineProperty(
|
|
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
|
-
}),
|
|
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(
|
|
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
|