@xh/hoist 79.0.0-SNAPSHOT.1764016608455 → 79.0.0-SNAPSHOT.1764115912360
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/build/types/cmp/grid/GridModel.d.ts +17 -17
- package/build/types/desktop/cmp/dash/canvas/DashCanvasModel.d.ts +1 -18
- package/cmp/grid/GridModel.ts +29 -21
- package/desktop/cmp/dash/canvas/DashCanvas.ts +1 -1
- package/desktop/cmp/dash/canvas/DashCanvasModel.ts +16 -53
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -326,39 +326,39 @@ export declare class GridModel extends HoistModel {
|
|
|
326
326
|
localExport(filename: string, type: 'excel' | 'csv', params?: PlainObject): void;
|
|
327
327
|
/**
|
|
328
328
|
* Select records in the grid.
|
|
329
|
-
*
|
|
330
329
|
* @param records - one or more record(s) / ID(s) to select.
|
|
331
|
-
* @param
|
|
332
|
-
* ensureVisible - true to make selection visible if it is within a
|
|
333
|
-
* collapsed node or outside of the visible scroll window. Default true.
|
|
334
|
-
* clearSelection - true to clear previous selection (rather than
|
|
335
|
-
* add to it). Default true.
|
|
330
|
+
* @param opts - additional post-selection options
|
|
336
331
|
*/
|
|
337
332
|
selectAsync(records: Some<StoreRecordOrId>, opts?: {
|
|
333
|
+
/**
|
|
334
|
+
* True (default) to scroll the grid or expand nodes as needed to make selection
|
|
335
|
+
* visible if it is within a collapsed node or outside of the visible scroll window.
|
|
336
|
+
*/
|
|
338
337
|
ensureVisible?: boolean;
|
|
338
|
+
/** True (default) to clear previous selection (rather than add to it). */
|
|
339
339
|
clearSelection?: boolean;
|
|
340
340
|
}): Promise<void>;
|
|
341
341
|
/**
|
|
342
342
|
* Select the first row in the grid.
|
|
343
343
|
*
|
|
344
|
-
* See {@link preSelectFirstAsync} for a useful variant of this method
|
|
345
|
-
*
|
|
346
|
-
*
|
|
347
|
-
*
|
|
348
|
-
* @param opts -
|
|
349
|
-
* expandParentGroups - set to true to expand nodes to allow selection when the
|
|
350
|
-
* first selectable node is in a collapsed group. Default true.
|
|
351
|
-
* ensureVisible - set to to true to scroll to the selected row if it is outside of the
|
|
352
|
-
* visible scroll window. Default true.
|
|
353
|
-
*
|
|
344
|
+
* See {@link preSelectFirstAsync} for a useful variant of this method that will leave the
|
|
345
|
+
* any pre-existing selection unchanged, which is what apps typically want when reloading an
|
|
346
|
+
* already-populated grid.
|
|
354
347
|
*/
|
|
355
348
|
selectFirstAsync(opts?: {
|
|
349
|
+
/**
|
|
350
|
+
* True (default) to expand nodes as needed to allow selection when the first selectable
|
|
351
|
+
* node is in a collapsed group.
|
|
352
|
+
*/
|
|
356
353
|
expandParentGroups?: boolean;
|
|
354
|
+
/**
|
|
355
|
+
* True (default) to scroll the grid or expand nodes as needed to make selection
|
|
356
|
+
* visible if it is outside of the visible scroll window.
|
|
357
|
+
*/
|
|
357
358
|
ensureVisible?: boolean;
|
|
358
359
|
}): Promise<void>;
|
|
359
360
|
/**
|
|
360
361
|
* Select the first row in the grid, if no other selection present.
|
|
361
|
-
*
|
|
362
362
|
* This method delegates to {@link selectFirstAsync}.
|
|
363
363
|
*/
|
|
364
364
|
preSelectFirstAsync(): Promise<void>;
|
|
@@ -20,11 +20,6 @@ export interface DashCanvasConfig extends DashConfig<DashCanvasViewSpec, DashCan
|
|
|
20
20
|
maxRows?: number;
|
|
21
21
|
/** Padding inside the container [x, y] in pixels. Defaults to same as `margin`. */
|
|
22
22
|
containerPadding?: [number, number];
|
|
23
|
-
/**
|
|
24
|
-
* Whether an overlay with an Add View button should be rendered
|
|
25
|
-
* when the canvas is empty. Default true.
|
|
26
|
-
*/
|
|
27
|
-
showAddViewButtonWhenEmpty?: boolean;
|
|
28
23
|
}
|
|
29
24
|
export interface DashCanvasItemState {
|
|
30
25
|
layout: DashCanvasItemLayout;
|
|
@@ -50,9 +45,7 @@ export declare class DashCanvasModel extends DashModel<DashCanvasViewSpec, DashC
|
|
|
50
45
|
compact: boolean;
|
|
51
46
|
margin: [number, number];
|
|
52
47
|
containerPadding: [number, number];
|
|
53
|
-
DROPPING_ELEM_ID: string;
|
|
54
48
|
maxRows: number;
|
|
55
|
-
showAddViewButtonWhenEmpty: boolean;
|
|
56
49
|
/** Current number of rows in canvas */
|
|
57
50
|
get rows(): number;
|
|
58
51
|
get isEmpty(): boolean;
|
|
@@ -61,7 +54,7 @@ export declare class DashCanvasModel extends DashModel<DashCanvasViewSpec, DashC
|
|
|
61
54
|
isResizing: boolean;
|
|
62
55
|
private isLoadingState;
|
|
63
56
|
get rglLayout(): any[];
|
|
64
|
-
constructor({ viewSpecs, viewSpecDefaults, initialState, layoutLocked, contentLocked, renameLocked, persistWith, emptyText, addViewButtonText, columns, rowHeight, compact, margin, maxRows, containerPadding, extraMenuItems
|
|
57
|
+
constructor({ viewSpecs, viewSpecDefaults, initialState, layoutLocked, contentLocked, renameLocked, persistWith, emptyText, addViewButtonText, columns, rowHeight, compact, margin, maxRows, containerPadding, extraMenuItems }: DashCanvasConfig);
|
|
65
58
|
/** Removes all views from the canvas */
|
|
66
59
|
clear(): void;
|
|
67
60
|
/**
|
|
@@ -84,16 +77,6 @@ export declare class DashCanvasModel extends DashModel<DashCanvasViewSpec, DashC
|
|
|
84
77
|
width?: number;
|
|
85
78
|
height?: number;
|
|
86
79
|
}): DashCanvasViewModel;
|
|
87
|
-
dropViewIntoCanvas(specId: string, opts: {
|
|
88
|
-
title: string;
|
|
89
|
-
state: any;
|
|
90
|
-
layout: {
|
|
91
|
-
x: number;
|
|
92
|
-
y: number;
|
|
93
|
-
w: number;
|
|
94
|
-
h: number;
|
|
95
|
-
};
|
|
96
|
-
}, rglLayout: any[]): DashCanvasViewModel;
|
|
97
80
|
/**
|
|
98
81
|
* Remove a view from the DashCanvas
|
|
99
82
|
* @param id - DashCanvasViewModel id to remove from the container
|
package/cmp/grid/GridModel.ts
CHANGED
|
@@ -751,19 +751,22 @@ export class GridModel extends HoistModel {
|
|
|
751
751
|
|
|
752
752
|
/**
|
|
753
753
|
* Select records in the grid.
|
|
754
|
-
*
|
|
755
754
|
* @param records - one or more record(s) / ID(s) to select.
|
|
756
|
-
* @param
|
|
757
|
-
* ensureVisible - true to make selection visible if it is within a
|
|
758
|
-
* collapsed node or outside of the visible scroll window. Default true.
|
|
759
|
-
* clearSelection - true to clear previous selection (rather than
|
|
760
|
-
* add to it). Default true.
|
|
755
|
+
* @param opts - additional post-selection options
|
|
761
756
|
*/
|
|
762
757
|
async selectAsync(
|
|
763
758
|
records: Some<StoreRecordOrId>,
|
|
764
|
-
opts
|
|
759
|
+
opts: {
|
|
760
|
+
/**
|
|
761
|
+
* True (default) to scroll the grid or expand nodes as needed to make selection
|
|
762
|
+
* visible if it is within a collapsed node or outside of the visible scroll window.
|
|
763
|
+
*/
|
|
764
|
+
ensureVisible?: boolean;
|
|
765
|
+
/** True (default) to clear previous selection (rather than add to it). */
|
|
766
|
+
clearSelection?: boolean;
|
|
767
|
+
} = {}
|
|
765
768
|
) {
|
|
766
|
-
const {ensureVisible = true, clearSelection = true} = opts
|
|
769
|
+
const {ensureVisible = true, clearSelection = true} = opts;
|
|
767
770
|
this.selModel.select(records, clearSelection);
|
|
768
771
|
if (ensureVisible) await this.ensureSelectionVisibleAsync();
|
|
769
772
|
}
|
|
@@ -771,19 +774,25 @@ export class GridModel extends HoistModel {
|
|
|
771
774
|
/**
|
|
772
775
|
* Select the first row in the grid.
|
|
773
776
|
*
|
|
774
|
-
* See {@link preSelectFirstAsync} for a useful variant of this method
|
|
775
|
-
*
|
|
776
|
-
*
|
|
777
|
-
*
|
|
778
|
-
* @param opts -
|
|
779
|
-
* expandParentGroups - set to true to expand nodes to allow selection when the
|
|
780
|
-
* first selectable node is in a collapsed group. Default true.
|
|
781
|
-
* ensureVisible - set to to true to scroll to the selected row if it is outside of the
|
|
782
|
-
* visible scroll window. Default true.
|
|
783
|
-
*
|
|
777
|
+
* See {@link preSelectFirstAsync} for a useful variant of this method that will leave the
|
|
778
|
+
* any pre-existing selection unchanged, which is what apps typically want when reloading an
|
|
779
|
+
* already-populated grid.
|
|
784
780
|
*/
|
|
785
|
-
async selectFirstAsync(
|
|
786
|
-
|
|
781
|
+
async selectFirstAsync(
|
|
782
|
+
opts: {
|
|
783
|
+
/**
|
|
784
|
+
* True (default) to expand nodes as needed to allow selection when the first selectable
|
|
785
|
+
* node is in a collapsed group.
|
|
786
|
+
*/
|
|
787
|
+
expandParentGroups?: boolean;
|
|
788
|
+
/**
|
|
789
|
+
* True (default) to scroll the grid or expand nodes as needed to make selection
|
|
790
|
+
* visible if it is outside of the visible scroll window.
|
|
791
|
+
*/
|
|
792
|
+
ensureVisible?: boolean;
|
|
793
|
+
} = {}
|
|
794
|
+
) {
|
|
795
|
+
const {expandParentGroups = true, ensureVisible = true} = opts;
|
|
787
796
|
await this.whenReadyAsync();
|
|
788
797
|
if (!this.isReady) return;
|
|
789
798
|
|
|
@@ -803,7 +812,6 @@ export class GridModel extends HoistModel {
|
|
|
803
812
|
|
|
804
813
|
/**
|
|
805
814
|
* Select the first row in the grid, if no other selection present.
|
|
806
|
-
*
|
|
807
815
|
* This method delegates to {@link selectFirstAsync}.
|
|
808
816
|
*/
|
|
809
817
|
async preSelectFirstAsync() {
|
|
@@ -50,12 +50,6 @@ export interface DashCanvasConfig extends DashConfig<DashCanvasViewSpec, DashCan
|
|
|
50
50
|
|
|
51
51
|
/** Padding inside the container [x, y] in pixels. Defaults to same as `margin`. */
|
|
52
52
|
containerPadding?: [number, number];
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Whether an overlay with an Add View button should be rendered
|
|
56
|
-
* when the canvas is empty. Default true.
|
|
57
|
-
*/
|
|
58
|
-
showAddViewButtonWhenEmpty?: boolean;
|
|
59
53
|
}
|
|
60
54
|
|
|
61
55
|
export interface DashCanvasItemState {
|
|
@@ -92,9 +86,7 @@ export class DashCanvasModel
|
|
|
92
86
|
//-----------------------------
|
|
93
87
|
// Public properties
|
|
94
88
|
//-----------------------------
|
|
95
|
-
DROPPING_ELEM_ID = '__dropping-elem__';
|
|
96
89
|
maxRows: number;
|
|
97
|
-
showAddViewButtonWhenEmpty: boolean;
|
|
98
90
|
|
|
99
91
|
/** Current number of rows in canvas */
|
|
100
92
|
get rows(): number {
|
|
@@ -114,25 +106,21 @@ export class DashCanvasModel
|
|
|
114
106
|
private isLoadingState: boolean;
|
|
115
107
|
|
|
116
108
|
get rglLayout() {
|
|
117
|
-
return this.layout
|
|
118
|
-
.
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
minW: viewSpec.minWidth
|
|
133
|
-
};
|
|
134
|
-
})
|
|
135
|
-
.filter(Boolean);
|
|
109
|
+
return this.layout.map(it => {
|
|
110
|
+
const dashCanvasView = this.getView(it.i),
|
|
111
|
+
{autoHeight, viewSpec} = dashCanvasView;
|
|
112
|
+
|
|
113
|
+
return {
|
|
114
|
+
...it,
|
|
115
|
+
resizeHandles: autoHeight
|
|
116
|
+
? ['w', 'e']
|
|
117
|
+
: ['s', 'w', 'e', 'n', 'sw', 'nw', 'se', 'ne'],
|
|
118
|
+
maxH: viewSpec.maxHeight,
|
|
119
|
+
minH: viewSpec.minHeight,
|
|
120
|
+
maxW: viewSpec.maxWidth,
|
|
121
|
+
minW: viewSpec.minWidth
|
|
122
|
+
};
|
|
123
|
+
});
|
|
136
124
|
}
|
|
137
125
|
|
|
138
126
|
constructor({
|
|
@@ -151,8 +139,7 @@ export class DashCanvasModel
|
|
|
151
139
|
margin = [10, 10],
|
|
152
140
|
maxRows = Infinity,
|
|
153
141
|
containerPadding = margin,
|
|
154
|
-
extraMenuItems
|
|
155
|
-
showAddViewButtonWhenEmpty = true
|
|
142
|
+
extraMenuItems
|
|
156
143
|
}: DashCanvasConfig) {
|
|
157
144
|
super();
|
|
158
145
|
makeObservable(this);
|
|
@@ -200,7 +187,6 @@ export class DashCanvasModel
|
|
|
200
187
|
this.emptyText = emptyText;
|
|
201
188
|
this.addViewButtonText = addViewButtonText;
|
|
202
189
|
this.extraMenuItems = extraMenuItems;
|
|
203
|
-
this.showAddViewButtonWhenEmpty = showAddViewButtonWhenEmpty;
|
|
204
190
|
|
|
205
191
|
this.loadState(initialState);
|
|
206
192
|
this.state = this.buildState();
|
|
@@ -275,27 +261,6 @@ export class DashCanvasModel
|
|
|
275
261
|
return this.addViewInternal(specId, {title, layout, state});
|
|
276
262
|
}
|
|
277
263
|
|
|
278
|
-
@action dropViewIntoCanvas(
|
|
279
|
-
specId: string,
|
|
280
|
-
opts: {
|
|
281
|
-
title: string;
|
|
282
|
-
state: any;
|
|
283
|
-
layout: {
|
|
284
|
-
x: number;
|
|
285
|
-
y: number;
|
|
286
|
-
w: number;
|
|
287
|
-
h: number;
|
|
288
|
-
};
|
|
289
|
-
},
|
|
290
|
-
rglLayout: any[]
|
|
291
|
-
): DashCanvasViewModel {
|
|
292
|
-
const newViewModel: DashCanvasViewModel = this.addViewInternal(specId, opts),
|
|
293
|
-
droppingItem: any = rglLayout.find(it => it.i === this.DROPPING_ELEM_ID);
|
|
294
|
-
droppingItem.i = newViewModel.id;
|
|
295
|
-
this.onRglLayoutChange(rglLayout);
|
|
296
|
-
return newViewModel;
|
|
297
|
-
}
|
|
298
|
-
|
|
299
264
|
/**
|
|
300
265
|
* Remove a view from the DashCanvas
|
|
301
266
|
* @param id - DashCanvasViewModel id to remove from the container
|
|
@@ -421,8 +386,6 @@ export class DashCanvasModel
|
|
|
421
386
|
|
|
422
387
|
onRglLayoutChange(rglLayout) {
|
|
423
388
|
rglLayout = rglLayout.map(it => pick(it, ['i', 'x', 'y', 'w', 'h']));
|
|
424
|
-
if (rglLayout.some(it => it.i === this.DROPPING_ELEM_ID)) return;
|
|
425
|
-
|
|
426
389
|
this.setLayout(rglLayout);
|
|
427
390
|
}
|
|
428
391
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xh/hoist",
|
|
3
|
-
"version": "79.0.0-SNAPSHOT.
|
|
3
|
+
"version": "79.0.0-SNAPSHOT.1764115912360",
|
|
4
4
|
"description": "Hoist add-on for building and deploying React Applications.",
|
|
5
5
|
"repository": "github:xh/hoist-react",
|
|
6
6
|
"homepage": "https://xh.io",
|