gridstack 12.3.2 → 12.3.3
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/dist/angular/esm2020/lib/base-widget.mjs +2 -2
- package/dist/angular/esm2020/lib/gridstack-item.component.mjs +2 -2
- package/dist/angular/esm2020/lib/gridstack.component.mjs +2 -2
- package/dist/angular/esm2020/lib/gridstack.module.mjs +2 -2
- package/dist/angular/esm2020/lib/types.mjs +2 -2
- package/dist/angular/fesm2015/gridstack-angular.mjs +4 -4
- package/dist/angular/fesm2015/gridstack-angular.mjs.map +1 -1
- package/dist/angular/fesm2020/gridstack-angular.mjs +5 -5
- package/dist/angular/fesm2020/gridstack-angular.mjs.map +1 -1
- package/dist/angular/lib/gridstack-item.component.d.ts +1 -1
- package/dist/angular/lib/gridstack.component.d.ts +1 -1
- package/dist/angular/lib/types.d.ts +1 -1
- package/dist/angular/package.json +1 -1
- package/dist/angular/src/base-widget.ts +1 -1
- package/dist/angular/src/gridstack-item.component.ts +1 -1
- package/dist/angular/src/gridstack.component.ts +1 -1
- package/dist/angular/src/gridstack.module.ts +1 -1
- package/dist/angular/src/types.ts +1 -1
- package/dist/gridstack-all.js +1 -1
- package/dist/gridstack-all.js.LICENSE.txt +1 -1
- package/dist/gridstack-all.js.map +1 -1
- package/dist/gridstack.css +1 -1
- package/dist/spec/gridstack-engine-spec.d.ts +1 -0
- package/dist/spec/gridstack-engine-spec.js +358 -0
- package/dist/spec/gridstack-engine-spec.js.map +1 -0
- package/dist/spec/gridstack-spec.d.ts +1 -0
- package/dist/spec/gridstack-spec.js +1780 -0
- package/dist/spec/gridstack-spec.js.map +1 -0
- package/dist/spec/integration/gridstack-integration.spec.d.ts +1 -0
- package/dist/spec/integration/gridstack-integration.spec.js +171 -0
- package/dist/spec/integration/gridstack-integration.spec.js.map +1 -0
- package/dist/spec/regression-spec.d.ts +1 -0
- package/dist/spec/regression-spec.js +100 -0
- package/dist/spec/regression-spec.js.map +1 -0
- package/dist/spec/utils-spec.d.ts +1 -0
- package/dist/spec/utils-spec.js +243 -0
- package/dist/spec/utils-spec.js.map +1 -0
- package/dist/src/dd-base-impl.d.ts +69 -0
- package/dist/src/dd-base-impl.js +70 -0
- package/dist/src/dd-base-impl.js.map +1 -0
- package/dist/src/dd-draggable.d.ts +20 -0
- package/dist/src/dd-draggable.js +364 -0
- package/dist/src/dd-draggable.js.map +1 -0
- package/dist/src/dd-droppable.d.ts +26 -0
- package/dist/src/dd-droppable.js +149 -0
- package/dist/src/dd-droppable.js.map +1 -0
- package/dist/src/dd-element.d.ts +27 -0
- package/dist/src/dd-element.js +91 -0
- package/dist/src/dd-element.js.map +1 -0
- package/dist/src/dd-gridstack.d.ts +82 -0
- package/dist/src/dd-gridstack.js +165 -0
- package/dist/src/dd-gridstack.js.map +1 -0
- package/dist/src/dd-manager.d.ts +43 -0
- package/dist/src/dd-manager.js +14 -0
- package/dist/src/dd-manager.js.map +1 -0
- package/dist/src/dd-resizable-handle.d.ts +18 -0
- package/dist/src/dd-resizable-handle.js +113 -0
- package/dist/src/dd-resizable-handle.js.map +1 -0
- package/dist/src/dd-resizable.d.ts +30 -0
- package/dist/src/dd-resizable.js +304 -0
- package/dist/src/dd-resizable.js.map +1 -0
- package/dist/src/dd-touch.d.ts +33 -0
- package/dist/src/dd-touch.js +145 -0
- package/dist/src/dd-touch.js.map +1 -0
- package/dist/src/gridstack-engine.d.ts +321 -0
- package/dist/src/gridstack-engine.js +1272 -0
- package/dist/src/gridstack-engine.js.map +1 -0
- package/dist/src/gridstack.d.ts +802 -0
- package/dist/src/gridstack.js +2872 -0
- package/dist/src/gridstack.js.map +1 -0
- package/dist/src/gridstack.scss +1 -1
- package/dist/src/types.d.ts +427 -0
- package/dist/src/types.js +38 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils.d.ts +283 -0
- package/dist/src/utils.js +790 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/vitest.config.d.ts +2 -0
- package/dist/vitest.config.js +74 -0
- package/dist/vitest.config.js.map +1 -0
- package/dist/vitest.setup.d.ts +1 -0
- package/dist/vitest.setup.js +90 -0
- package/dist/vitest.setup.js.map +1 -0
- package/doc/API.md +22 -22
- package/package.json +21 -9
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* gridstack-engine.ts 12.3.3
|
|
3
|
+
* Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license
|
|
4
|
+
*/
|
|
5
|
+
import { GridStackNode, GridStackPosition, GridStackMoveOpts, SaveFcn, CompactOptions } from './types';
|
|
6
|
+
/** callback to update the DOM attributes since this class is generic (no HTML or other info) for items that changed - see _notify() */
|
|
7
|
+
type OnChangeCB = (nodes: GridStackNode[]) => void;
|
|
8
|
+
/** options used during creation - similar to GridStackOptions */
|
|
9
|
+
export interface GridStackEngineOptions {
|
|
10
|
+
column?: number;
|
|
11
|
+
maxRow?: number;
|
|
12
|
+
float?: boolean;
|
|
13
|
+
nodes?: GridStackNode[];
|
|
14
|
+
onChange?: OnChangeCB;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Defines the GridStack engine that handles all grid layout calculations and node positioning.
|
|
18
|
+
* This is the core engine that performs grid manipulation without any DOM operations.
|
|
19
|
+
*
|
|
20
|
+
* The engine manages:
|
|
21
|
+
* - Node positioning and collision detection
|
|
22
|
+
* - Layout algorithms (compact, float, etc.)
|
|
23
|
+
* - Grid resizing and column changes
|
|
24
|
+
* - Widget movement and resizing logic
|
|
25
|
+
*
|
|
26
|
+
* NOTE: Values should not be modified directly - use the main GridStack API instead
|
|
27
|
+
* to ensure proper DOM updates and event triggers.
|
|
28
|
+
*/
|
|
29
|
+
export declare class GridStackEngine {
|
|
30
|
+
column: number;
|
|
31
|
+
maxRow: number;
|
|
32
|
+
nodes: GridStackNode[];
|
|
33
|
+
addedNodes: GridStackNode[];
|
|
34
|
+
removedNodes: GridStackNode[];
|
|
35
|
+
batchMode: boolean;
|
|
36
|
+
defaultColumn: number;
|
|
37
|
+
/** true when grid.load() already cached the layout and can skip out of bound caching info */
|
|
38
|
+
skipCacheUpdate?: boolean;
|
|
39
|
+
constructor(opts?: GridStackEngineOptions);
|
|
40
|
+
/**
|
|
41
|
+
* Enable/disable batch mode for multiple operations to optimize performance.
|
|
42
|
+
* When enabled, layout updates are deferred until batch mode is disabled.
|
|
43
|
+
*
|
|
44
|
+
* @param flag true to enable batch mode, false to disable and apply changes
|
|
45
|
+
* @param doPack if true (default), pack/compact nodes when disabling batch mode
|
|
46
|
+
* @returns the engine instance for chaining
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* // Start batch mode for multiple operations
|
|
50
|
+
* engine.batchUpdate(true);
|
|
51
|
+
* engine.addNode(node1);
|
|
52
|
+
* engine.addNode(node2);
|
|
53
|
+
* engine.batchUpdate(false); // Apply all changes at once
|
|
54
|
+
*/
|
|
55
|
+
batchUpdate(flag?: boolean, doPack?: boolean): GridStackEngine;
|
|
56
|
+
protected _useEntireRowArea(node: GridStackNode, nn: GridStackPosition): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Return the first node that intercepts/collides with the given node or area.
|
|
59
|
+
* Used for collision detection during drag and drop operations.
|
|
60
|
+
*
|
|
61
|
+
* @param skip the node to skip in collision detection (usually the node being moved)
|
|
62
|
+
* @param area the area to check for collisions (defaults to skip node's area)
|
|
63
|
+
* @param skip2 optional second node to skip in collision detection
|
|
64
|
+
* @returns the first colliding node, or undefined if no collision
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* const colliding = engine.collide(draggedNode, {x: 2, y: 1, w: 2, h: 1});
|
|
68
|
+
* if (colliding) {
|
|
69
|
+
* console.log('Would collide with:', colliding.id);
|
|
70
|
+
* }
|
|
71
|
+
*/
|
|
72
|
+
collide(skip: GridStackNode, area?: GridStackNode, skip2?: GridStackNode): GridStackNode | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Return all nodes that intercept/collide with the given node or area.
|
|
75
|
+
* Similar to collide() but returns all colliding nodes instead of just the first.
|
|
76
|
+
*
|
|
77
|
+
* @param skip the node to skip in collision detection
|
|
78
|
+
* @param area the area to check for collisions (defaults to skip node's area)
|
|
79
|
+
* @param skip2 optional second node to skip in collision detection
|
|
80
|
+
* @returns array of all colliding nodes
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* const allCollisions = engine.collideAll(draggedNode);
|
|
84
|
+
* console.log('Colliding with', allCollisions.length, 'nodes');
|
|
85
|
+
*/
|
|
86
|
+
collideAll(skip: GridStackNode, area?: GridStackNode, skip2?: GridStackNode): GridStackNode[];
|
|
87
|
+
/** does a pixel coverage collision based on where we started, returning the node that has the most coverage that is >50% mid line */
|
|
88
|
+
protected directionCollideCoverage(node: GridStackNode, o: GridStackMoveOpts, collides: GridStackNode[]): GridStackNode | undefined;
|
|
89
|
+
/**
|
|
90
|
+
* Attempt to swap the positions of two nodes if they meet swapping criteria.
|
|
91
|
+
* Nodes can swap if they are the same size or in the same column/row, not locked, and touching.
|
|
92
|
+
*
|
|
93
|
+
* @param a first node to swap
|
|
94
|
+
* @param b second node to swap
|
|
95
|
+
* @returns true if swap was successful, false if not possible, undefined if not applicable
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* const swapped = engine.swap(nodeA, nodeB);
|
|
99
|
+
* if (swapped) {
|
|
100
|
+
* console.log('Nodes swapped successfully');
|
|
101
|
+
* }
|
|
102
|
+
*/
|
|
103
|
+
swap(a: GridStackNode, b: GridStackNode): boolean | undefined;
|
|
104
|
+
/**
|
|
105
|
+
* Check if the specified rectangular area is empty (no nodes occupy any part of it).
|
|
106
|
+
*
|
|
107
|
+
* @param x the x coordinate (column) of the area to check
|
|
108
|
+
* @param y the y coordinate (row) of the area to check
|
|
109
|
+
* @param w the width in columns of the area to check
|
|
110
|
+
* @param h the height in rows of the area to check
|
|
111
|
+
* @returns true if the area is completely empty, false if any node overlaps
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* if (engine.isAreaEmpty(2, 1, 3, 2)) {
|
|
115
|
+
* console.log('Area is available for placement');
|
|
116
|
+
* }
|
|
117
|
+
*/
|
|
118
|
+
isAreaEmpty(x: number, y: number, w: number, h: number): boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Re-layout grid items to reclaim any empty space.
|
|
121
|
+
* This optimizes the grid layout by moving items to fill gaps.
|
|
122
|
+
*
|
|
123
|
+
* @param layout layout algorithm to use:
|
|
124
|
+
* - 'compact' (default): find truly empty spaces, may reorder items
|
|
125
|
+
* - 'list': keep the sort order exactly the same, move items up sequentially
|
|
126
|
+
* @param doSort if true (default), sort nodes by position before compacting
|
|
127
|
+
* @returns the engine instance for chaining
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* // Compact to fill empty spaces
|
|
131
|
+
* engine.compact();
|
|
132
|
+
*
|
|
133
|
+
* // Compact preserving item order
|
|
134
|
+
* engine.compact('list');
|
|
135
|
+
*/
|
|
136
|
+
compact(layout?: CompactOptions, doSort?: boolean): GridStackEngine;
|
|
137
|
+
/**
|
|
138
|
+
* Enable/disable floating widgets (default: `false`).
|
|
139
|
+
* When floating is enabled, widgets can move up to fill empty spaces.
|
|
140
|
+
* See [example](http://gridstackjs.com/demo/float.html)
|
|
141
|
+
*
|
|
142
|
+
* @param val true to enable floating, false to disable
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* engine.float = true; // Enable floating
|
|
146
|
+
* engine.float = false; // Disable floating (default)
|
|
147
|
+
*/
|
|
148
|
+
set float(val: boolean);
|
|
149
|
+
/**
|
|
150
|
+
* Get the current floating mode setting.
|
|
151
|
+
*
|
|
152
|
+
* @returns true if floating is enabled, false otherwise
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* const isFloating = engine.float;
|
|
156
|
+
* console.log('Floating enabled:', isFloating);
|
|
157
|
+
*/
|
|
158
|
+
get float(): boolean;
|
|
159
|
+
/**
|
|
160
|
+
* Sort the nodes array from first to last, or reverse.
|
|
161
|
+
* This is called during collision/placement operations to enforce a specific order.
|
|
162
|
+
*
|
|
163
|
+
* @param dir sort direction: 1 for ascending (first to last), -1 for descending (last to first)
|
|
164
|
+
* @returns the engine instance for chaining
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* engine.sortNodes(); // Sort ascending (default)
|
|
168
|
+
* engine.sortNodes(-1); // Sort descending
|
|
169
|
+
*/
|
|
170
|
+
sortNodes(dir?: 1 | -1): GridStackEngine;
|
|
171
|
+
/**
|
|
172
|
+
* Prepare and validate a node's coordinates and values for the current grid.
|
|
173
|
+
* This ensures the node has valid position, size, and properties before being added to the grid.
|
|
174
|
+
*
|
|
175
|
+
* @param node the node to prepare and validate
|
|
176
|
+
* @param resizing if true, resize the node down if it's out of bounds; if false, move it to fit
|
|
177
|
+
* @returns the prepared node with valid coordinates
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* const node = { w: 3, h: 2, content: 'Hello' };
|
|
181
|
+
* const prepared = engine.prepareNode(node);
|
|
182
|
+
* console.log('Node prepared at:', prepared.x, prepared.y);
|
|
183
|
+
*/
|
|
184
|
+
prepareNode(node: GridStackNode, resizing?: boolean): GridStackNode;
|
|
185
|
+
/**
|
|
186
|
+
* Part 2 of preparing a node to fit inside the grid - validates and fixes coordinates and dimensions.
|
|
187
|
+
* This ensures the node fits within grid boundaries and respects min/max constraints.
|
|
188
|
+
*
|
|
189
|
+
* @param node the node to validate and fix
|
|
190
|
+
* @param resizing if true, resize the node to fit; if false, move the node to fit
|
|
191
|
+
* @returns the engine instance for chaining
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* // Fix a node that might be out of bounds
|
|
195
|
+
* engine.nodeBoundFix(node, true); // Resize to fit
|
|
196
|
+
* engine.nodeBoundFix(node, false); // Move to fit
|
|
197
|
+
*/
|
|
198
|
+
nodeBoundFix(node: GridStackNode, resizing?: boolean): GridStackEngine;
|
|
199
|
+
/**
|
|
200
|
+
* Returns a list of nodes that have been modified from their original values.
|
|
201
|
+
* This is used to track which nodes need DOM updates.
|
|
202
|
+
*
|
|
203
|
+
* @param verify if true, performs additional verification by comparing current vs original positions
|
|
204
|
+
* @returns array of nodes that have been modified
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* const changed = engine.getDirtyNodes();
|
|
208
|
+
* console.log('Modified nodes:', changed.length);
|
|
209
|
+
*
|
|
210
|
+
* // Get verified dirty nodes
|
|
211
|
+
* const verified = engine.getDirtyNodes(true);
|
|
212
|
+
*/
|
|
213
|
+
getDirtyNodes(verify?: boolean): GridStackNode[];
|
|
214
|
+
/**
|
|
215
|
+
* Find the first available empty spot for the given node dimensions.
|
|
216
|
+
* Updates the node's x,y attributes with the found position.
|
|
217
|
+
*
|
|
218
|
+
* @param node the node to find a position for (w,h must be set)
|
|
219
|
+
* @param nodeList optional list of nodes to check against (defaults to engine nodes)
|
|
220
|
+
* @param column optional column count (defaults to engine column count)
|
|
221
|
+
* @param after optional node to start search after (maintains order)
|
|
222
|
+
* @returns true if an empty position was found and node was updated
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
* const node = { w: 2, h: 1 };
|
|
226
|
+
* if (engine.findEmptyPosition(node)) {
|
|
227
|
+
* console.log('Found position at:', node.x, node.y);
|
|
228
|
+
* }
|
|
229
|
+
*/
|
|
230
|
+
findEmptyPosition(node: GridStackNode, nodeList?: GridStackNode[], column?: number, after?: GridStackNode): boolean;
|
|
231
|
+
/**
|
|
232
|
+
* Add the given node to the grid, handling collision detection and re-packing.
|
|
233
|
+
* This is the main method for adding new widgets to the engine.
|
|
234
|
+
*
|
|
235
|
+
* @param node the node to add to the grid
|
|
236
|
+
* @param triggerAddEvent if true, adds node to addedNodes list for event triggering
|
|
237
|
+
* @param after optional node to place this node after (for ordering)
|
|
238
|
+
* @returns the added node (or existing node if duplicate)
|
|
239
|
+
*
|
|
240
|
+
* @example
|
|
241
|
+
* const node = { x: 0, y: 0, w: 2, h: 1, content: 'Hello' };
|
|
242
|
+
* const added = engine.addNode(node, true);
|
|
243
|
+
*/
|
|
244
|
+
addNode(node: GridStackNode, triggerAddEvent?: boolean, after?: GridStackNode): GridStackNode;
|
|
245
|
+
/**
|
|
246
|
+
* Remove the given node from the grid.
|
|
247
|
+
*
|
|
248
|
+
* @param node the node to remove
|
|
249
|
+
* @param removeDOM if true (default), marks node for DOM removal
|
|
250
|
+
* @param triggerEvent if true, adds node to removedNodes list for event triggering
|
|
251
|
+
* @returns the engine instance for chaining
|
|
252
|
+
*
|
|
253
|
+
* @example
|
|
254
|
+
* engine.removeNode(node, true, true);
|
|
255
|
+
*/
|
|
256
|
+
removeNode(node: GridStackNode, removeDOM?: boolean, triggerEvent?: boolean): GridStackEngine;
|
|
257
|
+
/**
|
|
258
|
+
* Remove all nodes from the grid.
|
|
259
|
+
*
|
|
260
|
+
* @param removeDOM if true (default), marks all nodes for DOM removal
|
|
261
|
+
* @param triggerEvent if true (default), triggers removal events
|
|
262
|
+
* @returns the engine instance for chaining
|
|
263
|
+
*
|
|
264
|
+
* @example
|
|
265
|
+
* engine.removeAll(); // Remove all nodes
|
|
266
|
+
*/
|
|
267
|
+
removeAll(removeDOM?: boolean, triggerEvent?: boolean): GridStackEngine;
|
|
268
|
+
/**
|
|
269
|
+
* Check if a node can be moved to a new position, considering layout constraints.
|
|
270
|
+
* This is a safer version of moveNode() that validates the move first.
|
|
271
|
+
*
|
|
272
|
+
* For complex cases (like maxRow constraints), it simulates the move in a clone first,
|
|
273
|
+
* then applies the changes only if they meet all specifications.
|
|
274
|
+
*
|
|
275
|
+
* @param node the node to move
|
|
276
|
+
* @param o move options including target position
|
|
277
|
+
* @returns true if the node was successfully moved
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
* const canMove = engine.moveNodeCheck(node, { x: 2, y: 1 });
|
|
281
|
+
* if (canMove) {
|
|
282
|
+
* console.log('Node moved successfully');
|
|
283
|
+
* }
|
|
284
|
+
*/
|
|
285
|
+
moveNodeCheck(node: GridStackNode, o: GridStackMoveOpts): boolean;
|
|
286
|
+
/** return true if can fit in grid height constrain only (always true if no maxRow) */
|
|
287
|
+
willItFit(node: GridStackNode): boolean;
|
|
288
|
+
/** true if x,y or w,h are different after clamping to min/max */
|
|
289
|
+
changedPosConstrain(node: GridStackNode, p: GridStackPosition): boolean;
|
|
290
|
+
/** return true if the passed in node was actually moved (checks for no-op and locked) */
|
|
291
|
+
moveNode(node: GridStackNode, o: GridStackMoveOpts): boolean;
|
|
292
|
+
getRow(): number;
|
|
293
|
+
beginUpdate(node: GridStackNode): GridStackEngine;
|
|
294
|
+
endUpdate(): GridStackEngine;
|
|
295
|
+
/** saves a copy of the largest column layout (eg 12 even when rendering 1 column) so we don't loose orig layout, unless explicity column
|
|
296
|
+
* count to use is given. returning a list of widgets for serialization
|
|
297
|
+
* @param saveElement if true (default), the element will be saved to GridStackWidget.el field, else it will be removed.
|
|
298
|
+
* @param saveCB callback for each node -> widget, so application can insert additional data to be saved into the widget data structure.
|
|
299
|
+
* @param column if provided, the grid will be saved for the given column count (IFF we have matching internal saved layout, or current layout).
|
|
300
|
+
* Note: nested grids will ALWAYS save the container w to match overall layouts (parent + child) to be consistent.
|
|
301
|
+
*/
|
|
302
|
+
save(saveElement?: boolean, saveCB?: SaveFcn, column?: number): GridStackNode[];
|
|
303
|
+
/**
|
|
304
|
+
* call to cache the given layout internally to the given location so we can restore back when column changes size
|
|
305
|
+
* @param nodes list of nodes
|
|
306
|
+
* @param column corresponding column index to save it under
|
|
307
|
+
* @param clear if true, will force other caches to be removed (default false)
|
|
308
|
+
*/
|
|
309
|
+
cacheLayout(nodes: GridStackNode[], column: number, clear?: boolean): GridStackEngine;
|
|
310
|
+
/**
|
|
311
|
+
* call to cache the given node layout internally to the given location so we can restore back when column changes size
|
|
312
|
+
* @param node single node to cache
|
|
313
|
+
* @param column corresponding column index to save it under
|
|
314
|
+
*/
|
|
315
|
+
cacheOneLayout(n: GridStackNode, column: number): GridStackEngine;
|
|
316
|
+
protected findCacheLayout(n: GridStackNode, column: number): number | undefined;
|
|
317
|
+
removeNodeFromLayoutCache(n: GridStackNode): void;
|
|
318
|
+
/** called to remove all internal values but the _id */
|
|
319
|
+
cleanupNode(node: GridStackNode): GridStackEngine;
|
|
320
|
+
}
|
|
321
|
+
export {};
|