@xh/hoist 79.0.0-SNAPSHOT.1764871662450 → 79.0.0-SNAPSHOT.1764947672059

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/CHANGELOG.md CHANGED
@@ -5,25 +5,23 @@
5
5
  ## 78.1.3 - 2025-12-04
6
6
 
7
7
  ### 🐞 Bug Fixes
8
- * Fix to Highchart timezone handling regression from version 77. Applications should note that
9
- Highcharts has deprecated the `time.useUTC` option and its functioning seem suspect. Apps
10
- should set `time.timezone` instead. See https://api.highcharts.com/highcharts/time.useUTC.
8
+
9
+ * Fixed timezone-related Highcharts regression from v77. Note that Highcharts has deprecated
10
+ `time.useUTC` in favor of `time.timezone` (https://api.highcharts.com/highcharts/time.useUTC).
11
11
 
12
12
  ### ⚙️ Technical
13
13
 
14
- * Allow cross-tab persistence of client log levels
14
+ * Enabled cross-tab persistence of customized client logging level.
15
15
 
16
16
  ## 78.1.0 - 2025-12-02
17
17
 
18
18
  ### ⚙️ Technical
19
- * New property `MsalClientConfig.enableSsoSilent` to govern use of MSAL SSO api.
20
-
21
- * Existing property `MsalClientConfig.enableTelemetry` now defaults to `true`.
22
19
 
23
- * Improved use of MSAL client API, to maximize effectiveness of SSO. Improved documentation
24
- and logging. Iframe attempts will now time out by default after 3 seconds vs. 10 seconds.
25
- This can be further modified by apps via the option
26
- `MsalClientConfig.msalClientOptions.system.iFrameHashTimeout`
20
+ * Improved `MsalClient` to maximize effectiveness of SSO and improved documentation and logging.
21
+ Updated the default timeout for iFrame interactions to 3 seconds (from 10 seconds) - customizable
22
+ if needed via `MsalClientConfig.msalClientOptions.system.iFrameHashTimeout`
23
+ * Added new `MsalClientConfig.enableSsoSilent` option to govern use of the MSAL SSO API.
24
+ * Defaulted `MsalClientConfig.enableTelemetry` to `true`.
27
25
 
28
26
  ### 📚 Libraries
29
27
 
@@ -34,10 +32,10 @@
34
32
 
35
33
  ### 💥 Breaking Changes
36
34
 
37
- * `GridModel.setColumnState` no longer patches existing column state, but instead replaces it
38
- wholesale. Applications that were relying on the prior patching behavior will need to
39
- call `GridModel.applyColumnStateChanges` instead.
40
- * `GridModel.cleanColumnState` is now private (not expected to impact applications).
35
+ * Modified `GridModel.setColumnState` to no longer patch existing column state but instead replace
36
+ it wholesale. Applications that were relying on the prior patching behavior will need to call
37
+ `GridModel.applyColumnStateChanges` instead.
38
+ * Set `GridModel.cleanColumnState` to `private` (not expected to impact applications).
41
39
 
42
40
  ### 🎁 New Features
43
41
 
@@ -65,7 +63,8 @@
65
63
 
66
64
  ### 💥 Breaking Changes (upgrade difficulty: 🟢 LOW)
67
65
 
68
- * Apps that use and provide the `highcharts` library should be sure to update the version to v12.4.0.
66
+ * Apps that use and provide the `highcharts` library should be sure to update the version to
67
+ v12.4.0.
69
68
  Refer to `Bootstrap.js` in Toolbox for required import changes.
70
69
  * Visit https://www.highcharts.com/blog/changelog/ for specific changes.
71
70
 
@@ -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
@@ -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.1764871662450",
3
+ "version": "79.0.0-SNAPSHOT.1764947672059",
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",