@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.
@@ -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 options - additional options containing the following keys:
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. preSelectFirstAsync()
345
- * will not change the selection if there is already a selection, which is what applications
346
- * typically want to do when loading/reloading a grid.
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, showAddViewButtonWhenEmpty }: DashCanvasConfig);
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
@@ -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 options - additional options containing the following keys:
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?: {ensureVisible?: boolean; clearSelection?: boolean}
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. preSelectFirstAsync()
775
- * will not change the selection if there is already a selection, which is what applications
776
- * typically want to do when loading/reloading a grid.
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(opts?: {expandParentGroups?: boolean; ensureVisible?: boolean}) {
786
- const {expandParentGroups = true, ensureVisible = true} = opts ?? {};
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() {
@@ -98,7 +98,7 @@ export const [DashCanvas, dashCanvas] = hoistCmp.withFactory<DashCanvasProps>({
98
98
  ),
99
99
  ...rglOptions
100
100
  }),
101
- emptyContainerOverlay({omit: !model.showAddViewButtonWhenEmpty})
101
+ emptyContainerOverlay()
102
102
  ],
103
103
  [TEST_ID]: testId
104
104
  })
@@ -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
- .map(it => {
119
- const dashCanvasView = this.getView(it.i);
120
- if (!dashCanvasView) return null;
121
-
122
- const {autoHeight, viewSpec} = dashCanvasView;
123
-
124
- return {
125
- ...it,
126
- resizeHandles: autoHeight
127
- ? ['w', 'e']
128
- : ['s', 'w', 'e', 'n', 'sw', 'nw', 'se', 'ne'],
129
- maxH: viewSpec.maxHeight,
130
- minH: viewSpec.minHeight,
131
- maxW: viewSpec.maxWidth,
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.1764016608455",
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",