react-grid-layout 1.5.3 → 2.1.0
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/README.md +1156 -442
- package/css/styles.css +5 -4
- package/dist/ResponsiveGridLayout-BkHF9YHa.d.mts +133 -0
- package/dist/ResponsiveGridLayout-CLn16-X3.d.ts +133 -0
- package/dist/calculate-DsVTldEE.d.ts +196 -0
- package/dist/calculate-DwbL1D06.d.mts +196 -0
- package/dist/chunk-2O3ZME4Q.mjs +703 -0
- package/dist/chunk-2O3ZME4Q.mjs.map +1 -0
- package/dist/chunk-526JND3R.mjs +3 -0
- package/dist/chunk-526JND3R.mjs.map +1 -0
- package/dist/chunk-7ELO5FRW.js +4 -0
- package/dist/chunk-7ELO5FRW.js.map +1 -0
- package/dist/chunk-AWM66AWF.mjs +422 -0
- package/dist/chunk-AWM66AWF.mjs.map +1 -0
- package/dist/chunk-BJFPTW5Q.js +449 -0
- package/dist/chunk-BJFPTW5Q.js.map +1 -0
- package/dist/chunk-FN6MIZ24.js +744 -0
- package/dist/chunk-FN6MIZ24.js.map +1 -0
- package/dist/chunk-GPZBANOK.js +435 -0
- package/dist/chunk-GPZBANOK.js.map +1 -0
- package/dist/chunk-LWF5EYMO.mjs +429 -0
- package/dist/chunk-LWF5EYMO.mjs.map +1 -0
- package/dist/chunk-MXXN7GUE.mjs +1408 -0
- package/dist/chunk-MXXN7GUE.mjs.map +1 -0
- package/dist/chunk-QRW3ND4U.js +1417 -0
- package/dist/chunk-QRW3ND4U.js.map +1 -0
- package/dist/core.d.mts +186 -0
- package/dist/core.d.ts +186 -0
- package/dist/core.js +274 -0
- package/dist/core.js.map +1 -0
- package/dist/core.mjs +5 -0
- package/dist/core.mjs.map +1 -0
- package/dist/extras.d.mts +208 -0
- package/dist/extras.d.ts +208 -0
- package/dist/extras.js +462 -0
- package/dist/extras.js.map +1 -0
- package/dist/extras.mjs +454 -0
- package/dist/extras.mjs.map +1 -0
- package/dist/index.d.mts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +154 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +7 -0
- package/dist/index.mjs.map +1 -0
- package/dist/legacy.d.mts +163 -0
- package/dist/legacy.d.ts +163 -0
- package/dist/legacy.js +320 -0
- package/dist/legacy.js.map +1 -0
- package/dist/legacy.mjs +308 -0
- package/dist/legacy.mjs.map +1 -0
- package/dist/position-C8a5g6bb.d.mts +324 -0
- package/dist/position-H8tBL91b.d.ts +324 -0
- package/dist/react.d.mts +357 -0
- package/dist/react.d.ts +357 -0
- package/dist/react.js +96 -0
- package/dist/react.js.map +1 -0
- package/dist/react.mjs +7 -0
- package/dist/react.mjs.map +1 -0
- package/dist/responsive-BB5d98xz.d.mts +145 -0
- package/dist/responsive-BXI-GCXG.d.ts +145 -0
- package/dist/types-CokovIMH.d.mts +469 -0
- package/dist/types-CokovIMH.d.ts +469 -0
- package/index-dev.js +24 -0
- package/package.json +133 -40
- package/.babelrc.js +0 -22
- package/.browserslistrc +0 -3
- package/.eslintignore +0 -4
- package/.flowconfig +0 -20
- package/.prettierignore +0 -4
- package/.prettierrc +0 -17
- package/CHANGELOG.md +0 -985
- package/build/GridItem.js +0 -638
- package/build/ReactGridLayout.js +0 -741
- package/build/ReactGridLayoutPropTypes.js +0 -210
- package/build/ResponsiveReactGridLayout.js +0 -297
- package/build/calculateUtils.js +0 -165
- package/build/components/WidthProvider.js +0 -115
- package/build/fastRGLPropsEqual.js +0 -5
- package/build/responsiveUtils.js +0 -101
- package/build/utils.js +0 -842
- package/dist/react-grid-layout.min.js +0 -2
- package/dist/react-grid-layout.min.js.map +0 -1
- package/index.js.flow +0 -8
- package/ip_fetcher +0 -0
- package/ip_fetcher.c +0 -47
- package/lib/GridItem.jsx +0 -689
- package/lib/ReactGridLayout.jsx +0 -855
- package/lib/ReactGridLayoutPropTypes.js +0 -241
- package/lib/ResponsiveReactGridLayout.jsx +0 -349
- package/lib/calculateUtils.js +0 -169
- package/lib/components/WidthProvider.jsx +0 -110
- package/lib/fastRGLPropsEqual.js +0 -46
- package/lib/responsiveUtils.js +0 -118
- package/lib/utils.js +0 -995
- package/yarn-error.log +0 -7780
package/dist/legacy.js
ADDED
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var chunkQRW3ND4U_js = require('./chunk-QRW3ND4U.js');
|
|
6
|
+
var chunkFN6MIZ24_js = require('./chunk-FN6MIZ24.js');
|
|
7
|
+
require('./chunk-BJFPTW5Q.js');
|
|
8
|
+
var react = require('react');
|
|
9
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
10
|
+
var clsx = require('clsx');
|
|
11
|
+
|
|
12
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
|
|
14
|
+
var clsx__default = /*#__PURE__*/_interopDefault(clsx);
|
|
15
|
+
|
|
16
|
+
function ReactGridLayout(props) {
|
|
17
|
+
const {
|
|
18
|
+
// Required
|
|
19
|
+
children,
|
|
20
|
+
width,
|
|
21
|
+
// Grid measurement
|
|
22
|
+
cols = 12,
|
|
23
|
+
rowHeight = 150,
|
|
24
|
+
maxRows = Infinity,
|
|
25
|
+
margin = [10, 10],
|
|
26
|
+
containerPadding = null,
|
|
27
|
+
// Layout data
|
|
28
|
+
layout,
|
|
29
|
+
droppingItem,
|
|
30
|
+
// Compaction
|
|
31
|
+
compactType: compactTypeProp,
|
|
32
|
+
preventCollision = false,
|
|
33
|
+
allowOverlap = false,
|
|
34
|
+
verticalCompact,
|
|
35
|
+
// Drag behavior
|
|
36
|
+
isDraggable = true,
|
|
37
|
+
isBounded = false,
|
|
38
|
+
draggableHandle,
|
|
39
|
+
draggableCancel,
|
|
40
|
+
// Resize behavior
|
|
41
|
+
isResizable = true,
|
|
42
|
+
resizeHandles = ["se"],
|
|
43
|
+
resizeHandle,
|
|
44
|
+
// Drop behavior
|
|
45
|
+
isDroppable = false,
|
|
46
|
+
// Position
|
|
47
|
+
useCSSTransforms = true,
|
|
48
|
+
transformScale = 1,
|
|
49
|
+
// Container props
|
|
50
|
+
autoSize,
|
|
51
|
+
className,
|
|
52
|
+
style,
|
|
53
|
+
innerRef,
|
|
54
|
+
// Callbacks
|
|
55
|
+
onLayoutChange,
|
|
56
|
+
onDragStart,
|
|
57
|
+
onDrag,
|
|
58
|
+
onDragStop,
|
|
59
|
+
onResizeStart,
|
|
60
|
+
onResize,
|
|
61
|
+
onResizeStop,
|
|
62
|
+
onDrop,
|
|
63
|
+
onDropDragOver
|
|
64
|
+
} = props;
|
|
65
|
+
let compactType = compactTypeProp === void 0 ? "vertical" : compactTypeProp;
|
|
66
|
+
if (verticalCompact === false) {
|
|
67
|
+
if (process.env["NODE_ENV"] !== "production") {
|
|
68
|
+
console.warn(
|
|
69
|
+
'`verticalCompact` on <ReactGridLayout> is deprecated and will be removed soon. Use `compactType`: "horizontal" | "vertical" | null.'
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
compactType = null;
|
|
73
|
+
}
|
|
74
|
+
const gridConfig = {
|
|
75
|
+
cols,
|
|
76
|
+
rowHeight,
|
|
77
|
+
maxRows,
|
|
78
|
+
margin,
|
|
79
|
+
containerPadding
|
|
80
|
+
};
|
|
81
|
+
const dragConfig = {
|
|
82
|
+
enabled: isDraggable,
|
|
83
|
+
bounded: isBounded,
|
|
84
|
+
handle: draggableHandle,
|
|
85
|
+
cancel: draggableCancel
|
|
86
|
+
};
|
|
87
|
+
const resizeConfig = {
|
|
88
|
+
enabled: isResizable,
|
|
89
|
+
handles: resizeHandles,
|
|
90
|
+
handleComponent: resizeHandle
|
|
91
|
+
};
|
|
92
|
+
const dropConfig = {
|
|
93
|
+
enabled: isDroppable
|
|
94
|
+
};
|
|
95
|
+
let positionStrategy;
|
|
96
|
+
if (!useCSSTransforms) {
|
|
97
|
+
positionStrategy = chunkFN6MIZ24_js.absoluteStrategy;
|
|
98
|
+
} else if (transformScale !== 1) {
|
|
99
|
+
positionStrategy = chunkFN6MIZ24_js.createScaledStrategy(transformScale);
|
|
100
|
+
} else {
|
|
101
|
+
positionStrategy = chunkFN6MIZ24_js.transformStrategy;
|
|
102
|
+
}
|
|
103
|
+
const compactor = chunkFN6MIZ24_js.getCompactor(compactType, allowOverlap, preventCollision);
|
|
104
|
+
const constraints = isBounded ? [...chunkFN6MIZ24_js.defaultConstraints, chunkFN6MIZ24_js.containerBounds] : chunkFN6MIZ24_js.defaultConstraints;
|
|
105
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
106
|
+
chunkQRW3ND4U_js.GridLayout,
|
|
107
|
+
{
|
|
108
|
+
width,
|
|
109
|
+
gridConfig,
|
|
110
|
+
dragConfig,
|
|
111
|
+
resizeConfig,
|
|
112
|
+
dropConfig,
|
|
113
|
+
positionStrategy,
|
|
114
|
+
compactor,
|
|
115
|
+
constraints,
|
|
116
|
+
layout,
|
|
117
|
+
droppingItem,
|
|
118
|
+
autoSize,
|
|
119
|
+
className,
|
|
120
|
+
style,
|
|
121
|
+
innerRef,
|
|
122
|
+
onLayoutChange,
|
|
123
|
+
onDragStart,
|
|
124
|
+
onDrag,
|
|
125
|
+
onDragStop,
|
|
126
|
+
onResizeStart,
|
|
127
|
+
onResize,
|
|
128
|
+
onResizeStop,
|
|
129
|
+
onDrop,
|
|
130
|
+
onDropDragOver,
|
|
131
|
+
children
|
|
132
|
+
}
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
ReactGridLayout.displayName = "ReactGridLayout";
|
|
136
|
+
var ReactGridLayout_default = ReactGridLayout;
|
|
137
|
+
function ResponsiveReactGridLayout(props) {
|
|
138
|
+
const {
|
|
139
|
+
// Required
|
|
140
|
+
children,
|
|
141
|
+
width,
|
|
142
|
+
// Responsive-specific
|
|
143
|
+
breakpoint,
|
|
144
|
+
breakpoints,
|
|
145
|
+
cols,
|
|
146
|
+
layouts,
|
|
147
|
+
onBreakpointChange,
|
|
148
|
+
onLayoutChange,
|
|
149
|
+
onWidthChange,
|
|
150
|
+
// Grid measurement
|
|
151
|
+
rowHeight,
|
|
152
|
+
maxRows,
|
|
153
|
+
margin,
|
|
154
|
+
containerPadding,
|
|
155
|
+
// Layout data
|
|
156
|
+
droppingItem,
|
|
157
|
+
// Compaction
|
|
158
|
+
compactType: compactTypeProp,
|
|
159
|
+
preventCollision = false,
|
|
160
|
+
allowOverlap = false,
|
|
161
|
+
verticalCompact,
|
|
162
|
+
// Drag behavior
|
|
163
|
+
isDraggable = true,
|
|
164
|
+
isBounded = false,
|
|
165
|
+
draggableHandle,
|
|
166
|
+
draggableCancel,
|
|
167
|
+
// Resize behavior
|
|
168
|
+
isResizable = true,
|
|
169
|
+
resizeHandles = ["se"],
|
|
170
|
+
resizeHandle,
|
|
171
|
+
// Drop behavior
|
|
172
|
+
isDroppable = false,
|
|
173
|
+
// Position
|
|
174
|
+
useCSSTransforms = true,
|
|
175
|
+
transformScale = 1,
|
|
176
|
+
// Container props
|
|
177
|
+
autoSize,
|
|
178
|
+
className,
|
|
179
|
+
style,
|
|
180
|
+
innerRef,
|
|
181
|
+
// Callbacks
|
|
182
|
+
onDragStart,
|
|
183
|
+
onDrag,
|
|
184
|
+
onDragStop,
|
|
185
|
+
onResizeStart,
|
|
186
|
+
onResize,
|
|
187
|
+
onResizeStop,
|
|
188
|
+
onDrop,
|
|
189
|
+
onDropDragOver
|
|
190
|
+
} = props;
|
|
191
|
+
let compactType = compactTypeProp === void 0 ? "vertical" : compactTypeProp;
|
|
192
|
+
if (verticalCompact === false) {
|
|
193
|
+
if (process.env["NODE_ENV"] !== "production") {
|
|
194
|
+
console.warn(
|
|
195
|
+
'`verticalCompact` on <ResponsiveReactGridLayout> is deprecated and will be removed soon. Use `compactType`: "horizontal" | "vertical" | null.'
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
compactType = null;
|
|
199
|
+
}
|
|
200
|
+
const dragConfig = {
|
|
201
|
+
enabled: isDraggable,
|
|
202
|
+
bounded: isBounded,
|
|
203
|
+
handle: draggableHandle,
|
|
204
|
+
cancel: draggableCancel
|
|
205
|
+
};
|
|
206
|
+
const resizeConfig = {
|
|
207
|
+
enabled: isResizable,
|
|
208
|
+
handles: resizeHandles,
|
|
209
|
+
handleComponent: resizeHandle
|
|
210
|
+
};
|
|
211
|
+
const dropConfig = {
|
|
212
|
+
enabled: isDroppable
|
|
213
|
+
};
|
|
214
|
+
let positionStrategy;
|
|
215
|
+
if (!useCSSTransforms) {
|
|
216
|
+
positionStrategy = chunkFN6MIZ24_js.absoluteStrategy;
|
|
217
|
+
} else if (transformScale !== 1) {
|
|
218
|
+
positionStrategy = chunkFN6MIZ24_js.createScaledStrategy(transformScale);
|
|
219
|
+
} else {
|
|
220
|
+
positionStrategy = chunkFN6MIZ24_js.transformStrategy;
|
|
221
|
+
}
|
|
222
|
+
const compactor = chunkFN6MIZ24_js.getCompactor(compactType, allowOverlap, preventCollision);
|
|
223
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
224
|
+
chunkQRW3ND4U_js.ResponsiveGridLayout,
|
|
225
|
+
{
|
|
226
|
+
width,
|
|
227
|
+
breakpoint,
|
|
228
|
+
breakpoints,
|
|
229
|
+
cols,
|
|
230
|
+
layouts,
|
|
231
|
+
rowHeight,
|
|
232
|
+
maxRows,
|
|
233
|
+
margin,
|
|
234
|
+
containerPadding,
|
|
235
|
+
compactor,
|
|
236
|
+
dragConfig,
|
|
237
|
+
resizeConfig,
|
|
238
|
+
dropConfig,
|
|
239
|
+
positionStrategy,
|
|
240
|
+
droppingItem,
|
|
241
|
+
autoSize,
|
|
242
|
+
className,
|
|
243
|
+
style,
|
|
244
|
+
innerRef,
|
|
245
|
+
onBreakpointChange,
|
|
246
|
+
onLayoutChange,
|
|
247
|
+
onWidthChange,
|
|
248
|
+
onDragStart,
|
|
249
|
+
onDrag,
|
|
250
|
+
onDragStop,
|
|
251
|
+
onResizeStart,
|
|
252
|
+
onResize,
|
|
253
|
+
onResizeStop,
|
|
254
|
+
onDrop,
|
|
255
|
+
onDropDragOver,
|
|
256
|
+
children
|
|
257
|
+
}
|
|
258
|
+
);
|
|
259
|
+
}
|
|
260
|
+
ResponsiveReactGridLayout.displayName = "ResponsiveReactGridLayout";
|
|
261
|
+
var ResponsiveReactGridLayout_default = ResponsiveReactGridLayout;
|
|
262
|
+
var layoutClassName = "react-grid-layout";
|
|
263
|
+
function WidthProvider(ComposedComponent) {
|
|
264
|
+
function WidthProviderWrapper(props) {
|
|
265
|
+
const { measureBeforeMount = false, className, style, ...rest } = props;
|
|
266
|
+
const [width, setWidth] = react.useState(1280);
|
|
267
|
+
const [mounted, setMounted] = react.useState(false);
|
|
268
|
+
const elementRef = react.useRef(null);
|
|
269
|
+
const resizeObserverRef = react.useRef(null);
|
|
270
|
+
react.useEffect(() => {
|
|
271
|
+
setMounted(true);
|
|
272
|
+
}, []);
|
|
273
|
+
react.useEffect(() => {
|
|
274
|
+
const node = elementRef.current;
|
|
275
|
+
if (!(node instanceof HTMLElement)) return;
|
|
276
|
+
const observer = new ResizeObserver((entries) => {
|
|
277
|
+
if (entries[0]) {
|
|
278
|
+
const newWidth = entries[0].contentRect.width;
|
|
279
|
+
setWidth(newWidth);
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
observer.observe(node);
|
|
283
|
+
resizeObserverRef.current = observer;
|
|
284
|
+
return () => {
|
|
285
|
+
observer.unobserve(node);
|
|
286
|
+
observer.disconnect();
|
|
287
|
+
};
|
|
288
|
+
}, [mounted]);
|
|
289
|
+
if (measureBeforeMount && !mounted) {
|
|
290
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
291
|
+
"div",
|
|
292
|
+
{
|
|
293
|
+
className: clsx__default.default(className, layoutClassName),
|
|
294
|
+
style,
|
|
295
|
+
ref: elementRef
|
|
296
|
+
}
|
|
297
|
+
);
|
|
298
|
+
}
|
|
299
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
300
|
+
ComposedComponent,
|
|
301
|
+
{
|
|
302
|
+
innerRef: elementRef,
|
|
303
|
+
className,
|
|
304
|
+
style,
|
|
305
|
+
...rest,
|
|
306
|
+
width
|
|
307
|
+
}
|
|
308
|
+
);
|
|
309
|
+
}
|
|
310
|
+
WidthProviderWrapper.displayName = `WidthProvider(${ComposedComponent.displayName || ComposedComponent.name || "Component"})`;
|
|
311
|
+
return WidthProviderWrapper;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
exports.ReactGridLayout = ReactGridLayout;
|
|
315
|
+
exports.Responsive = ResponsiveReactGridLayout_default;
|
|
316
|
+
exports.ResponsiveReactGridLayout = ResponsiveReactGridLayout;
|
|
317
|
+
exports.WidthProvider = WidthProvider;
|
|
318
|
+
exports.default = ReactGridLayout_default;
|
|
319
|
+
//# sourceMappingURL=legacy.js.map
|
|
320
|
+
//# sourceMappingURL=legacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/legacy/ReactGridLayout.tsx","../src/legacy/ResponsiveReactGridLayout.tsx","../src/react/components/WidthProvider.tsx"],"names":["absoluteStrategy","createScaledStrategy","transformStrategy","getCompactor","defaultConstraints","containerBounds","jsx","GridLayout","ResponsiveGridLayout","useState","useRef","useEffect","clsx"],"mappings":"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","file":"legacy.js","sourcesContent":["/**\n * Legacy ReactGridLayout wrapper\n *\n * This component wraps the new TypeScript GridLayout to provide\n * backwards compatibility with the v1 API by converting flat props\n * to the new composable interface format.\n */\n\nimport React from \"react\";\nimport {\n GridLayout,\n type GridLayoutProps\n} from \"../react/components/GridLayout.js\";\nimport type {\n Layout,\n LayoutItem,\n CompactType,\n ResizeHandleAxis,\n GridConfig,\n DragConfig,\n ResizeConfig,\n DropConfig,\n PositionStrategy,\n LayoutConstraint\n} from \"../core/types.js\";\nimport { getCompactor } from \"../core/compactors.js\";\nimport {\n transformStrategy,\n absoluteStrategy,\n createScaledStrategy\n} from \"../core/position.js\";\nimport { defaultConstraints, containerBounds } from \"../core/constraints.js\";\n\n// ============================================================================\n// Legacy Props Interface\n// ============================================================================\n\n/**\n * Legacy props interface for backwards compatibility with v1 API.\n * These flat props are converted to composable interfaces internally.\n */\nexport interface LegacyReactGridLayoutProps {\n // Required\n children: React.ReactNode;\n width: number;\n\n // Grid measurement (→ gridConfig)\n cols?: number;\n rowHeight?: number;\n maxRows?: number;\n margin?: readonly [number, number];\n containerPadding?: readonly [number, number] | null;\n\n // Layout data\n layout?: Layout;\n droppingItem?: LayoutItem;\n\n // Compaction (→ compactor)\n compactType?: CompactType;\n preventCollision?: boolean;\n allowOverlap?: boolean;\n /** @deprecated Use compactType instead */\n verticalCompact?: boolean;\n\n // Drag behavior (→ dragConfig)\n isDraggable?: boolean;\n isBounded?: boolean;\n draggableHandle?: string;\n draggableCancel?: string;\n\n // Resize behavior (→ resizeConfig)\n isResizable?: boolean;\n resizeHandles?: ResizeHandleAxis[];\n resizeHandle?:\n | React.ReactElement\n | ((\n axis: ResizeHandleAxis,\n ref: React.Ref<HTMLElement>\n ) => React.ReactElement);\n\n // Drop behavior (→ dropConfig)\n isDroppable?: boolean;\n\n // Position (→ positionStrategy)\n useCSSTransforms?: boolean;\n transformScale?: number;\n\n // Container props (passed through)\n autoSize?: boolean;\n className?: string;\n style?: React.CSSProperties;\n innerRef?: React.Ref<HTMLDivElement>;\n\n // Callbacks (passed through)\n onLayoutChange?: (layout: Layout) => void;\n onDragStart?: GridLayoutProps[\"onDragStart\"];\n onDrag?: GridLayoutProps[\"onDrag\"];\n onDragStop?: GridLayoutProps[\"onDragStop\"];\n onResizeStart?: GridLayoutProps[\"onResizeStart\"];\n onResize?: GridLayoutProps[\"onResize\"];\n onResizeStop?: GridLayoutProps[\"onResizeStop\"];\n onDrop?: (layout: Layout, item: LayoutItem | undefined, e: Event) => void;\n onDropDragOver?: (\n e: React.DragEvent\n ) => { w?: number; h?: number } | false | void;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * ReactGridLayout - Legacy wrapper component\n *\n * Converts v1 flat props to v2 composable interfaces for backwards compatibility.\n */\nfunction ReactGridLayout(props: LegacyReactGridLayoutProps) {\n const {\n // Required\n children,\n width,\n\n // Grid measurement\n cols = 12,\n rowHeight = 150,\n maxRows = Infinity,\n margin = [10, 10],\n containerPadding = null,\n\n // Layout data\n layout,\n droppingItem,\n\n // Compaction\n compactType: compactTypeProp,\n preventCollision = false,\n allowOverlap = false,\n verticalCompact,\n\n // Drag behavior\n isDraggable = true,\n isBounded = false,\n draggableHandle,\n draggableCancel,\n\n // Resize behavior\n isResizable = true,\n resizeHandles = [\"se\"],\n resizeHandle,\n\n // Drop behavior\n isDroppable = false,\n\n // Position\n useCSSTransforms = true,\n transformScale = 1,\n\n // Container props\n autoSize,\n className,\n style,\n innerRef,\n\n // Callbacks\n onLayoutChange,\n onDragStart,\n onDrag,\n onDragStop,\n onResizeStart,\n onResize,\n onResizeStop,\n onDrop,\n onDropDragOver\n } = props;\n\n // Handle deprecated verticalCompact prop\n let compactType: CompactType =\n compactTypeProp === undefined ? \"vertical\" : compactTypeProp;\n if (verticalCompact === false) {\n if (process.env[\"NODE_ENV\"] !== \"production\") {\n console.warn(\n \"`verticalCompact` on <ReactGridLayout> is deprecated and will be removed soon. \" +\n 'Use `compactType`: \"horizontal\" | \"vertical\" | null.'\n );\n }\n compactType = null;\n }\n\n // Convert flat props to composable interfaces\n\n const gridConfig: Partial<GridConfig> = {\n cols,\n rowHeight,\n maxRows,\n margin,\n containerPadding\n };\n\n const dragConfig: Partial<DragConfig> = {\n enabled: isDraggable,\n bounded: isBounded,\n handle: draggableHandle,\n cancel: draggableCancel\n };\n\n const resizeConfig: Partial<ResizeConfig> = {\n enabled: isResizable,\n handles: resizeHandles,\n handleComponent: resizeHandle\n };\n\n const dropConfig: Partial<DropConfig> = {\n enabled: isDroppable\n };\n\n // Build position strategy\n let positionStrategy: PositionStrategy;\n if (!useCSSTransforms) {\n positionStrategy = absoluteStrategy;\n } else if (transformScale !== 1) {\n positionStrategy = createScaledStrategy(transformScale);\n } else {\n positionStrategy = transformStrategy;\n }\n\n // Get compactor from type and options\n const compactor = getCompactor(compactType, allowOverlap, preventCollision);\n\n // Build constraints array based on legacy props\n // When isBounded is true, add containerBounds constraint\n const constraints: LayoutConstraint[] = isBounded\n ? [...defaultConstraints, containerBounds]\n : defaultConstraints;\n\n return (\n <GridLayout\n width={width}\n gridConfig={gridConfig}\n dragConfig={dragConfig}\n resizeConfig={resizeConfig}\n dropConfig={dropConfig}\n positionStrategy={positionStrategy}\n compactor={compactor}\n constraints={constraints}\n layout={layout}\n droppingItem={droppingItem}\n autoSize={autoSize}\n className={className}\n style={style}\n innerRef={innerRef}\n onLayoutChange={onLayoutChange}\n onDragStart={onDragStart}\n onDrag={onDrag}\n onDragStop={onDragStop}\n onResizeStart={onResizeStart}\n onResize={onResize}\n onResizeStop={onResizeStop}\n onDrop={onDrop}\n onDropDragOver={onDropDragOver}\n >\n {children}\n </GridLayout>\n );\n}\n\n// Static properties for backwards compatibility\nReactGridLayout.displayName = \"ReactGridLayout\";\n\nexport default ReactGridLayout;\nexport { ReactGridLayout };\n","/**\n * Legacy ResponsiveReactGridLayout wrapper\n *\n * This component wraps the new TypeScript ResponsiveGridLayout to provide\n * backwards compatibility with the v1 API by converting flat props\n * to the new composable interface format.\n */\n\nimport React from \"react\";\nimport {\n ResponsiveGridLayout,\n type ResponsiveGridLayoutProps\n} from \"../react/components/ResponsiveGridLayout.js\";\nimport type {\n Layout,\n LayoutItem,\n CompactType,\n Breakpoint,\n Breakpoints,\n ResponsiveLayouts,\n ResizeHandleAxis,\n DragConfig,\n ResizeConfig,\n DropConfig,\n PositionStrategy\n} from \"../core/types.js\";\nimport { getCompactor } from \"../core/compactors.js\";\nimport {\n transformStrategy,\n absoluteStrategy,\n createScaledStrategy\n} from \"../core/position.js\";\n\n// ============================================================================\n// Legacy Props Interface\n// ============================================================================\n\n/**\n * Legacy props interface for backwards compatibility with v1 API.\n * These flat props are converted to composable interfaces internally.\n */\nexport interface LegacyResponsiveReactGridLayoutProps<\n B extends Breakpoint = string\n> {\n // Required\n children: React.ReactNode;\n width: number;\n\n // Responsive-specific\n breakpoint?: B;\n breakpoints?: Breakpoints<B>;\n cols?: Breakpoints<B>;\n layouts?: ResponsiveLayouts<B>;\n onBreakpointChange?: (newBreakpoint: B, cols: number) => void;\n onLayoutChange?: (layout: Layout, layouts: ResponsiveLayouts<B>) => void;\n onWidthChange?: (\n containerWidth: number,\n margin: readonly [number, number],\n cols: number,\n containerPadding: readonly [number, number] | null\n ) => void;\n\n // Grid measurement\n rowHeight?: number;\n maxRows?: number;\n margin?:\n | readonly [number, number]\n | Partial<Record<B, readonly [number, number]>>;\n containerPadding?:\n | readonly [number, number]\n | Partial<Record<B, readonly [number, number] | null>>\n | null;\n\n // Layout data\n droppingItem?: LayoutItem;\n\n // Compaction (→ compactor)\n compactType?: CompactType;\n preventCollision?: boolean;\n allowOverlap?: boolean;\n /** @deprecated Use compactType instead */\n verticalCompact?: boolean;\n\n // Drag behavior (→ dragConfig)\n isDraggable?: boolean;\n isBounded?: boolean;\n draggableHandle?: string;\n draggableCancel?: string;\n\n // Resize behavior (→ resizeConfig)\n isResizable?: boolean;\n resizeHandles?: ResizeHandleAxis[];\n resizeHandle?:\n | React.ReactElement\n | ((\n axis: ResizeHandleAxis,\n ref: React.Ref<HTMLElement>\n ) => React.ReactElement);\n\n // Drop behavior (→ dropConfig)\n isDroppable?: boolean;\n\n // Position (→ positionStrategy)\n useCSSTransforms?: boolean;\n transformScale?: number;\n\n // Container props (passed through)\n autoSize?: boolean;\n className?: string;\n style?: React.CSSProperties;\n innerRef?: React.Ref<HTMLDivElement>;\n\n // Callbacks (passed through)\n onDragStart?: ResponsiveGridLayoutProps<B>[\"onDragStart\"];\n onDrag?: ResponsiveGridLayoutProps<B>[\"onDrag\"];\n onDragStop?: ResponsiveGridLayoutProps<B>[\"onDragStop\"];\n onResizeStart?: ResponsiveGridLayoutProps<B>[\"onResizeStart\"];\n onResize?: ResponsiveGridLayoutProps<B>[\"onResize\"];\n onResizeStop?: ResponsiveGridLayoutProps<B>[\"onResizeStop\"];\n onDrop?: (layout: Layout, item: LayoutItem | undefined, e: Event) => void;\n onDropDragOver?: (\n e: React.DragEvent\n ) => { w?: number; h?: number } | false | void;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * ResponsiveReactGridLayout - Legacy wrapper component\n *\n * Converts v1 flat props to v2 composable interfaces for backwards compatibility.\n */\nfunction ResponsiveReactGridLayout<B extends Breakpoint = string>(\n props: LegacyResponsiveReactGridLayoutProps<B>\n) {\n const {\n // Required\n children,\n width,\n\n // Responsive-specific\n breakpoint,\n breakpoints,\n cols,\n layouts,\n onBreakpointChange,\n onLayoutChange,\n onWidthChange,\n\n // Grid measurement\n rowHeight,\n maxRows,\n margin,\n containerPadding,\n\n // Layout data\n droppingItem,\n\n // Compaction\n compactType: compactTypeProp,\n preventCollision = false,\n allowOverlap = false,\n verticalCompact,\n\n // Drag behavior\n isDraggable = true,\n isBounded = false,\n draggableHandle,\n draggableCancel,\n\n // Resize behavior\n isResizable = true,\n resizeHandles = [\"se\"],\n resizeHandle,\n\n // Drop behavior\n isDroppable = false,\n\n // Position\n useCSSTransforms = true,\n transformScale = 1,\n\n // Container props\n autoSize,\n className,\n style,\n innerRef,\n\n // Callbacks\n onDragStart,\n onDrag,\n onDragStop,\n onResizeStart,\n onResize,\n onResizeStop,\n onDrop,\n onDropDragOver\n } = props;\n\n // Handle deprecated verticalCompact prop\n let compactType: CompactType =\n compactTypeProp === undefined ? \"vertical\" : compactTypeProp;\n if (verticalCompact === false) {\n if (process.env[\"NODE_ENV\"] !== \"production\") {\n console.warn(\n \"`verticalCompact` on <ResponsiveReactGridLayout> is deprecated and will be removed soon. \" +\n 'Use `compactType`: \"horizontal\" | \"vertical\" | null.'\n );\n }\n compactType = null;\n }\n\n // Convert flat props to composable interfaces\n\n const dragConfig: Partial<DragConfig> = {\n enabled: isDraggable,\n bounded: isBounded,\n handle: draggableHandle,\n cancel: draggableCancel\n };\n\n const resizeConfig: Partial<ResizeConfig> = {\n enabled: isResizable,\n handles: resizeHandles,\n handleComponent: resizeHandle\n };\n\n const dropConfig: Partial<DropConfig> = {\n enabled: isDroppable\n };\n\n // Build position strategy\n let positionStrategy: PositionStrategy;\n if (!useCSSTransforms) {\n positionStrategy = absoluteStrategy;\n } else if (transformScale !== 1) {\n positionStrategy = createScaledStrategy(transformScale);\n } else {\n positionStrategy = transformStrategy;\n }\n\n // Get compactor from type and options\n const compactor = getCompactor(compactType, allowOverlap, preventCollision);\n\n return (\n <ResponsiveGridLayout<B>\n width={width}\n breakpoint={breakpoint}\n breakpoints={breakpoints}\n cols={cols}\n layouts={layouts}\n rowHeight={rowHeight}\n maxRows={maxRows}\n margin={margin}\n containerPadding={containerPadding}\n compactor={compactor}\n dragConfig={dragConfig}\n resizeConfig={resizeConfig}\n dropConfig={dropConfig}\n positionStrategy={positionStrategy}\n droppingItem={droppingItem}\n autoSize={autoSize}\n className={className}\n style={style}\n innerRef={innerRef}\n onBreakpointChange={onBreakpointChange}\n onLayoutChange={onLayoutChange}\n onWidthChange={onWidthChange}\n onDragStart={onDragStart}\n onDrag={onDrag}\n onDragStop={onDragStop}\n onResizeStart={onResizeStart}\n onResize={onResize}\n onResizeStop={onResizeStop}\n onDrop={onDrop}\n onDropDragOver={onDropDragOver}\n >\n {children}\n </ResponsiveGridLayout>\n );\n}\n\n// Static properties for backwards compatibility\nResponsiveReactGridLayout.displayName = \"ResponsiveReactGridLayout\";\n\nexport default ResponsiveReactGridLayout;\nexport { ResponsiveReactGridLayout, ResponsiveReactGridLayout as Responsive };\n","/**\n * WidthProvider HOC\n *\n * A Higher-Order Component that provides width measurement to grid layouts.\n * This wraps any component and provides the container width as a prop.\n */\n\nimport React, { useState, useRef, useEffect, type ComponentType } from \"react\";\nimport clsx from \"clsx\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface WidthProviderProps {\n /** If true, will not render children until mounted */\n measureBeforeMount?: boolean;\n /** Additional class name */\n className?: string;\n /** Additional styles */\n style?: React.CSSProperties;\n}\n\ntype WithWidthProps<P> = Omit<P, \"width\"> & WidthProviderProps;\n\n// ============================================================================\n// Constants\n// ============================================================================\n\nconst layoutClassName = \"react-grid-layout\";\n\n// ============================================================================\n// WidthProvider HOC\n// ============================================================================\n\n/**\n * WidthProvider - HOC that provides container width\n *\n * A simple HOC that provides facility for listening to container resizes.\n * Wraps the provided component and passes down a `width` prop.\n *\n * @example\n * ```tsx\n * import { GridLayout, WidthProvider } from 'react-grid-layout';\n *\n * const GridLayoutWithWidth = WidthProvider(GridLayout);\n *\n * function MyGrid() {\n * return (\n * <GridLayoutWithWidth cols={12} rowHeight={30}>\n * <div key=\"a\">a</div>\n * </GridLayoutWithWidth>\n * );\n * }\n * ```\n */\nexport function WidthProvider<P extends { width: number }>(\n ComposedComponent: ComponentType<P>\n): ComponentType<WithWidthProps<P>> {\n function WidthProviderWrapper(props: WithWidthProps<P>) {\n const { measureBeforeMount = false, className, style, ...rest } = props;\n\n const [width, setWidth] = useState(1280);\n const [mounted, setMounted] = useState(false);\n const elementRef = useRef<HTMLDivElement>(null);\n const resizeObserverRef = useRef<ResizeObserver | null>(null);\n\n // Set mounted state on first render\n useEffect(() => {\n setMounted(true);\n }, []);\n\n // Set up ResizeObserver - re-runs when mounted changes to observe the new element\n // This fixes measureBeforeMount where the ref changes from placeholder to composed component\n useEffect(() => {\n const node = elementRef.current;\n if (!(node instanceof HTMLElement)) return;\n\n const observer = new ResizeObserver(entries => {\n if (entries[0]) {\n const newWidth = entries[0].contentRect.width;\n setWidth(newWidth);\n }\n });\n\n observer.observe(node);\n resizeObserverRef.current = observer;\n\n return () => {\n observer.unobserve(node);\n observer.disconnect();\n };\n }, [mounted]);\n\n // If measureBeforeMount is true and not yet mounted, render placeholder\n if (measureBeforeMount && !mounted) {\n return (\n <div\n className={clsx(className, layoutClassName)}\n style={style}\n ref={elementRef}\n />\n );\n }\n\n return (\n <ComposedComponent\n innerRef={elementRef}\n className={className}\n style={style}\n {...(rest as unknown as P)}\n width={width}\n />\n );\n }\n\n WidthProviderWrapper.displayName = `WidthProvider(${ComposedComponent.displayName || ComposedComponent.name || \"Component\"})`;\n\n return WidthProviderWrapper;\n}\n\nexport default WidthProvider;\n"]}
|
package/dist/legacy.mjs
ADDED
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
import { GridLayout, ResponsiveGridLayout } from './chunk-MXXN7GUE.mjs';
|
|
2
|
+
import { createScaledStrategy, getCompactor, defaultConstraints, containerBounds, absoluteStrategy, transformStrategy } from './chunk-2O3ZME4Q.mjs';
|
|
3
|
+
import './chunk-AWM66AWF.mjs';
|
|
4
|
+
import { useState, useRef, useEffect } from 'react';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
import clsx from 'clsx';
|
|
7
|
+
|
|
8
|
+
function ReactGridLayout(props) {
|
|
9
|
+
const {
|
|
10
|
+
// Required
|
|
11
|
+
children,
|
|
12
|
+
width,
|
|
13
|
+
// Grid measurement
|
|
14
|
+
cols = 12,
|
|
15
|
+
rowHeight = 150,
|
|
16
|
+
maxRows = Infinity,
|
|
17
|
+
margin = [10, 10],
|
|
18
|
+
containerPadding = null,
|
|
19
|
+
// Layout data
|
|
20
|
+
layout,
|
|
21
|
+
droppingItem,
|
|
22
|
+
// Compaction
|
|
23
|
+
compactType: compactTypeProp,
|
|
24
|
+
preventCollision = false,
|
|
25
|
+
allowOverlap = false,
|
|
26
|
+
verticalCompact,
|
|
27
|
+
// Drag behavior
|
|
28
|
+
isDraggable = true,
|
|
29
|
+
isBounded = false,
|
|
30
|
+
draggableHandle,
|
|
31
|
+
draggableCancel,
|
|
32
|
+
// Resize behavior
|
|
33
|
+
isResizable = true,
|
|
34
|
+
resizeHandles = ["se"],
|
|
35
|
+
resizeHandle,
|
|
36
|
+
// Drop behavior
|
|
37
|
+
isDroppable = false,
|
|
38
|
+
// Position
|
|
39
|
+
useCSSTransforms = true,
|
|
40
|
+
transformScale = 1,
|
|
41
|
+
// Container props
|
|
42
|
+
autoSize,
|
|
43
|
+
className,
|
|
44
|
+
style,
|
|
45
|
+
innerRef,
|
|
46
|
+
// Callbacks
|
|
47
|
+
onLayoutChange,
|
|
48
|
+
onDragStart,
|
|
49
|
+
onDrag,
|
|
50
|
+
onDragStop,
|
|
51
|
+
onResizeStart,
|
|
52
|
+
onResize,
|
|
53
|
+
onResizeStop,
|
|
54
|
+
onDrop,
|
|
55
|
+
onDropDragOver
|
|
56
|
+
} = props;
|
|
57
|
+
let compactType = compactTypeProp === void 0 ? "vertical" : compactTypeProp;
|
|
58
|
+
if (verticalCompact === false) {
|
|
59
|
+
if (process.env["NODE_ENV"] !== "production") {
|
|
60
|
+
console.warn(
|
|
61
|
+
'`verticalCompact` on <ReactGridLayout> is deprecated and will be removed soon. Use `compactType`: "horizontal" | "vertical" | null.'
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
compactType = null;
|
|
65
|
+
}
|
|
66
|
+
const gridConfig = {
|
|
67
|
+
cols,
|
|
68
|
+
rowHeight,
|
|
69
|
+
maxRows,
|
|
70
|
+
margin,
|
|
71
|
+
containerPadding
|
|
72
|
+
};
|
|
73
|
+
const dragConfig = {
|
|
74
|
+
enabled: isDraggable,
|
|
75
|
+
bounded: isBounded,
|
|
76
|
+
handle: draggableHandle,
|
|
77
|
+
cancel: draggableCancel
|
|
78
|
+
};
|
|
79
|
+
const resizeConfig = {
|
|
80
|
+
enabled: isResizable,
|
|
81
|
+
handles: resizeHandles,
|
|
82
|
+
handleComponent: resizeHandle
|
|
83
|
+
};
|
|
84
|
+
const dropConfig = {
|
|
85
|
+
enabled: isDroppable
|
|
86
|
+
};
|
|
87
|
+
let positionStrategy;
|
|
88
|
+
if (!useCSSTransforms) {
|
|
89
|
+
positionStrategy = absoluteStrategy;
|
|
90
|
+
} else if (transformScale !== 1) {
|
|
91
|
+
positionStrategy = createScaledStrategy(transformScale);
|
|
92
|
+
} else {
|
|
93
|
+
positionStrategy = transformStrategy;
|
|
94
|
+
}
|
|
95
|
+
const compactor = getCompactor(compactType, allowOverlap, preventCollision);
|
|
96
|
+
const constraints = isBounded ? [...defaultConstraints, containerBounds] : defaultConstraints;
|
|
97
|
+
return /* @__PURE__ */ jsx(
|
|
98
|
+
GridLayout,
|
|
99
|
+
{
|
|
100
|
+
width,
|
|
101
|
+
gridConfig,
|
|
102
|
+
dragConfig,
|
|
103
|
+
resizeConfig,
|
|
104
|
+
dropConfig,
|
|
105
|
+
positionStrategy,
|
|
106
|
+
compactor,
|
|
107
|
+
constraints,
|
|
108
|
+
layout,
|
|
109
|
+
droppingItem,
|
|
110
|
+
autoSize,
|
|
111
|
+
className,
|
|
112
|
+
style,
|
|
113
|
+
innerRef,
|
|
114
|
+
onLayoutChange,
|
|
115
|
+
onDragStart,
|
|
116
|
+
onDrag,
|
|
117
|
+
onDragStop,
|
|
118
|
+
onResizeStart,
|
|
119
|
+
onResize,
|
|
120
|
+
onResizeStop,
|
|
121
|
+
onDrop,
|
|
122
|
+
onDropDragOver,
|
|
123
|
+
children
|
|
124
|
+
}
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
ReactGridLayout.displayName = "ReactGridLayout";
|
|
128
|
+
var ReactGridLayout_default = ReactGridLayout;
|
|
129
|
+
function ResponsiveReactGridLayout(props) {
|
|
130
|
+
const {
|
|
131
|
+
// Required
|
|
132
|
+
children,
|
|
133
|
+
width,
|
|
134
|
+
// Responsive-specific
|
|
135
|
+
breakpoint,
|
|
136
|
+
breakpoints,
|
|
137
|
+
cols,
|
|
138
|
+
layouts,
|
|
139
|
+
onBreakpointChange,
|
|
140
|
+
onLayoutChange,
|
|
141
|
+
onWidthChange,
|
|
142
|
+
// Grid measurement
|
|
143
|
+
rowHeight,
|
|
144
|
+
maxRows,
|
|
145
|
+
margin,
|
|
146
|
+
containerPadding,
|
|
147
|
+
// Layout data
|
|
148
|
+
droppingItem,
|
|
149
|
+
// Compaction
|
|
150
|
+
compactType: compactTypeProp,
|
|
151
|
+
preventCollision = false,
|
|
152
|
+
allowOverlap = false,
|
|
153
|
+
verticalCompact,
|
|
154
|
+
// Drag behavior
|
|
155
|
+
isDraggable = true,
|
|
156
|
+
isBounded = false,
|
|
157
|
+
draggableHandle,
|
|
158
|
+
draggableCancel,
|
|
159
|
+
// Resize behavior
|
|
160
|
+
isResizable = true,
|
|
161
|
+
resizeHandles = ["se"],
|
|
162
|
+
resizeHandle,
|
|
163
|
+
// Drop behavior
|
|
164
|
+
isDroppable = false,
|
|
165
|
+
// Position
|
|
166
|
+
useCSSTransforms = true,
|
|
167
|
+
transformScale = 1,
|
|
168
|
+
// Container props
|
|
169
|
+
autoSize,
|
|
170
|
+
className,
|
|
171
|
+
style,
|
|
172
|
+
innerRef,
|
|
173
|
+
// Callbacks
|
|
174
|
+
onDragStart,
|
|
175
|
+
onDrag,
|
|
176
|
+
onDragStop,
|
|
177
|
+
onResizeStart,
|
|
178
|
+
onResize,
|
|
179
|
+
onResizeStop,
|
|
180
|
+
onDrop,
|
|
181
|
+
onDropDragOver
|
|
182
|
+
} = props;
|
|
183
|
+
let compactType = compactTypeProp === void 0 ? "vertical" : compactTypeProp;
|
|
184
|
+
if (verticalCompact === false) {
|
|
185
|
+
if (process.env["NODE_ENV"] !== "production") {
|
|
186
|
+
console.warn(
|
|
187
|
+
'`verticalCompact` on <ResponsiveReactGridLayout> is deprecated and will be removed soon. Use `compactType`: "horizontal" | "vertical" | null.'
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
compactType = null;
|
|
191
|
+
}
|
|
192
|
+
const dragConfig = {
|
|
193
|
+
enabled: isDraggable,
|
|
194
|
+
bounded: isBounded,
|
|
195
|
+
handle: draggableHandle,
|
|
196
|
+
cancel: draggableCancel
|
|
197
|
+
};
|
|
198
|
+
const resizeConfig = {
|
|
199
|
+
enabled: isResizable,
|
|
200
|
+
handles: resizeHandles,
|
|
201
|
+
handleComponent: resizeHandle
|
|
202
|
+
};
|
|
203
|
+
const dropConfig = {
|
|
204
|
+
enabled: isDroppable
|
|
205
|
+
};
|
|
206
|
+
let positionStrategy;
|
|
207
|
+
if (!useCSSTransforms) {
|
|
208
|
+
positionStrategy = absoluteStrategy;
|
|
209
|
+
} else if (transformScale !== 1) {
|
|
210
|
+
positionStrategy = createScaledStrategy(transformScale);
|
|
211
|
+
} else {
|
|
212
|
+
positionStrategy = transformStrategy;
|
|
213
|
+
}
|
|
214
|
+
const compactor = getCompactor(compactType, allowOverlap, preventCollision);
|
|
215
|
+
return /* @__PURE__ */ jsx(
|
|
216
|
+
ResponsiveGridLayout,
|
|
217
|
+
{
|
|
218
|
+
width,
|
|
219
|
+
breakpoint,
|
|
220
|
+
breakpoints,
|
|
221
|
+
cols,
|
|
222
|
+
layouts,
|
|
223
|
+
rowHeight,
|
|
224
|
+
maxRows,
|
|
225
|
+
margin,
|
|
226
|
+
containerPadding,
|
|
227
|
+
compactor,
|
|
228
|
+
dragConfig,
|
|
229
|
+
resizeConfig,
|
|
230
|
+
dropConfig,
|
|
231
|
+
positionStrategy,
|
|
232
|
+
droppingItem,
|
|
233
|
+
autoSize,
|
|
234
|
+
className,
|
|
235
|
+
style,
|
|
236
|
+
innerRef,
|
|
237
|
+
onBreakpointChange,
|
|
238
|
+
onLayoutChange,
|
|
239
|
+
onWidthChange,
|
|
240
|
+
onDragStart,
|
|
241
|
+
onDrag,
|
|
242
|
+
onDragStop,
|
|
243
|
+
onResizeStart,
|
|
244
|
+
onResize,
|
|
245
|
+
onResizeStop,
|
|
246
|
+
onDrop,
|
|
247
|
+
onDropDragOver,
|
|
248
|
+
children
|
|
249
|
+
}
|
|
250
|
+
);
|
|
251
|
+
}
|
|
252
|
+
ResponsiveReactGridLayout.displayName = "ResponsiveReactGridLayout";
|
|
253
|
+
var ResponsiveReactGridLayout_default = ResponsiveReactGridLayout;
|
|
254
|
+
var layoutClassName = "react-grid-layout";
|
|
255
|
+
function WidthProvider(ComposedComponent) {
|
|
256
|
+
function WidthProviderWrapper(props) {
|
|
257
|
+
const { measureBeforeMount = false, className, style, ...rest } = props;
|
|
258
|
+
const [width, setWidth] = useState(1280);
|
|
259
|
+
const [mounted, setMounted] = useState(false);
|
|
260
|
+
const elementRef = useRef(null);
|
|
261
|
+
const resizeObserverRef = useRef(null);
|
|
262
|
+
useEffect(() => {
|
|
263
|
+
setMounted(true);
|
|
264
|
+
}, []);
|
|
265
|
+
useEffect(() => {
|
|
266
|
+
const node = elementRef.current;
|
|
267
|
+
if (!(node instanceof HTMLElement)) return;
|
|
268
|
+
const observer = new ResizeObserver((entries) => {
|
|
269
|
+
if (entries[0]) {
|
|
270
|
+
const newWidth = entries[0].contentRect.width;
|
|
271
|
+
setWidth(newWidth);
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
observer.observe(node);
|
|
275
|
+
resizeObserverRef.current = observer;
|
|
276
|
+
return () => {
|
|
277
|
+
observer.unobserve(node);
|
|
278
|
+
observer.disconnect();
|
|
279
|
+
};
|
|
280
|
+
}, [mounted]);
|
|
281
|
+
if (measureBeforeMount && !mounted) {
|
|
282
|
+
return /* @__PURE__ */ jsx(
|
|
283
|
+
"div",
|
|
284
|
+
{
|
|
285
|
+
className: clsx(className, layoutClassName),
|
|
286
|
+
style,
|
|
287
|
+
ref: elementRef
|
|
288
|
+
}
|
|
289
|
+
);
|
|
290
|
+
}
|
|
291
|
+
return /* @__PURE__ */ jsx(
|
|
292
|
+
ComposedComponent,
|
|
293
|
+
{
|
|
294
|
+
innerRef: elementRef,
|
|
295
|
+
className,
|
|
296
|
+
style,
|
|
297
|
+
...rest,
|
|
298
|
+
width
|
|
299
|
+
}
|
|
300
|
+
);
|
|
301
|
+
}
|
|
302
|
+
WidthProviderWrapper.displayName = `WidthProvider(${ComposedComponent.displayName || ComposedComponent.name || "Component"})`;
|
|
303
|
+
return WidthProviderWrapper;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
export { ReactGridLayout, ResponsiveReactGridLayout_default as Responsive, ResponsiveReactGridLayout, WidthProvider, ReactGridLayout_default as default };
|
|
307
|
+
//# sourceMappingURL=legacy.mjs.map
|
|
308
|
+
//# sourceMappingURL=legacy.mjs.map
|