@xh/hoist 79.0.0-SNAPSHOT.1767046009354 → 79.0.0-SNAPSHOT.1767390094508
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 +61 -64
- package/admin/columns/Tracking.ts +10 -0
- package/admin/tabs/activity/tracking/ActivityTrackingModel.ts +3 -0
- package/admin/tabs/activity/tracking/detail/ActivityDetailModel.ts +1 -0
- package/admin/tabs/activity/tracking/detail/ActivityDetailView.ts +1 -0
- package/admin/tabs/clients/ClientsModel.ts +1 -1
- package/build/types/admin/columns/Tracking.d.ts +1 -0
- package/package.json +1 -1
- package/svc/TrackService.ts +1 -0
- package/svc/WebSocketService.ts +7 -1
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,53 +2,56 @@
|
|
|
2
2
|
|
|
3
3
|
## 79.0.0-SNAPSHOT - unreleased
|
|
4
4
|
|
|
5
|
-
### 🎁 New Features
|
|
6
|
-
|
|
7
|
-
* Enhance `LocalDate` with `addWeekdays` and `subtractWeekdays` methods.
|
|
8
|
-
* Added new `DynamicTabSwitcher` component, a more user-customizable version of `TabSwitcher` that
|
|
9
|
-
allows for dynamic addition, removal, and drag-and-drop reordering of tabs with the ability to
|
|
10
|
-
persist "favorited" tab state across sessions. Additionally, existing static `TabSwitcher` now
|
|
11
|
-
supports context-menu items. See `TabContainerConfig.switcher`.
|
|
12
|
-
* Changed the icon used for the Grid autosize buttons and menu option (to 🪄).
|
|
13
|
-
* DashCanvas new features:
|
|
14
|
-
* supports showing a grid background.
|
|
15
|
-
* supports 2 compacting strategies: 'vertical' or 'horizontal'
|
|
16
|
-
|
|
17
|
-
|
|
18
5
|
### 💥 Breaking Changes
|
|
19
6
|
|
|
20
|
-
|
|
21
|
-
but
|
|
22
|
-
|
|
7
|
+
Note that a server-side upgrade to `hoist-core >= 35` is recommended to support several changes in
|
|
8
|
+
this release, but is not strictly required.
|
|
9
|
+
|
|
10
|
+
* Upgraded Blueprint from version 5 to version 6. Most apps will not need to change, but
|
|
11
|
+
see https://github.com/palantir/blueprint/wiki/Blueprint-6.0 for more details.
|
|
12
|
+
* ⚠️ Note that any custom CSS overrides to BP classes will need to replace the `bp5` prefix with
|
|
13
|
+
`bp6` and should be reviewed for accuracy/neccessity.
|
|
23
14
|
* Renamed `LoadSupport.loadModel` to `LoadSupport.loadObserver` for clarity. This property is a
|
|
24
|
-
`TaskObserver` instance, not a `HoistModel`.
|
|
25
|
-
|
|
26
|
-
|
|
15
|
+
`TaskObserver` instance, not a `HoistModel`.
|
|
16
|
+
* The getter methods `HoistModel.loadModel` and `HoistService.loadModel` remain as aliases but
|
|
17
|
+
are deprecated and scheduled for removal in v82.
|
|
18
|
+
* Apps should update their code to use `loadObserver` instead of `loadModel`.
|
|
27
19
|
* Renamed `GridModel.applyColumnStateChanges()` to `updateColumnState()` for clarity and better
|
|
28
|
-
symmetry with `setColumnState()`.
|
|
29
|
-
|
|
20
|
+
symmetry with `setColumnState()`.
|
|
21
|
+
* The prior method remains as an alias but is deprecated and scheduled for removal in v82.
|
|
30
22
|
* Moved `TabSwitcherProps` to `cmp/tab/Types.ts` but maintained export from `cmp/tab/index.ts`.
|
|
31
23
|
Some apps may need to update their imports.
|
|
32
|
-
* `TabContainerConfig.switcher`
|
|
24
|
+
* Repurposed `TabContainerConfig.switcher` to accept a `TabSwitcherConfig`. To pass
|
|
33
25
|
`TabSwitcherProps` via a parent `TabContainer`, use `TabContainerProps.switcher`.
|
|
34
26
|
* Tightened the typing of `LocalDate` adjustment methods with new `LocalDateUnit` type. Some less
|
|
35
27
|
common or ambiguous units (e.g. `date` or `d`) are no longer supported. Also typed the adjustment
|
|
36
28
|
`value` args to `number` where applicable.
|
|
37
29
|
* Your app must update `compilerOptions.moduleResolution` to "bundler" in `tsconfig.json`
|
|
38
|
-
* If using the `DashCanvas
|
|
30
|
+
* If using the `DashCanvas.rglOptions` prop, you might have to update it to reflect changes in
|
|
39
31
|
`react-grid-layout` v2+ (not common).
|
|
40
|
-
* `DashCanvasModel.containerPadding`
|
|
41
|
-
|
|
32
|
+
* Modified `DashCanvasModel.containerPadding` to apply to the `react-grid-layout` div created by the
|
|
33
|
+
library, instead of the Hoist-created containing div. This may affect printing layouts.
|
|
34
|
+
|
|
35
|
+
### 🎁 New Features
|
|
42
36
|
|
|
37
|
+
* Added new `DynamicTabSwitcher` component, a more user-customizable version of `TabSwitcher` that
|
|
38
|
+
allows for dynamic addition, removal, and drag-and-drop reordering of tabs with the ability to
|
|
39
|
+
persist "favorited" tab state across sessions. Additionally, existing static `TabSwitcher` now
|
|
40
|
+
supports context-menu items. See `TabContainerConfig.switcher`.
|
|
41
|
+
* Enhanced `LocalDate` with `addWeekdays` and `subtractWeekdays` methods.
|
|
42
|
+
* Upgraded `DashCanvas` with support for a gridded background to match widget sizing/snapping
|
|
43
|
+
settings, plus two compacting strategies: 'vertical' and 'horizontal'.
|
|
44
|
+
* Changed the icon used for the Grid autosize buttons and menu option (to 🪄).
|
|
45
|
+
* Added `clientAppCode` to Activity Tracking logs. Requires `hoist-core >= 35`.
|
|
43
46
|
|
|
44
47
|
### 🐞 Bug Fixes
|
|
45
48
|
|
|
46
|
-
* Fixed column chooser to display columns in the same order as they appear in the grid.
|
|
49
|
+
* Fixed the column chooser to display columns in the same order as they appear in the grid.
|
|
47
50
|
* Defaulted Highcharts font to Hoist default `--xh-font-family`.
|
|
48
|
-
*
|
|
51
|
+
* Restored previous behavior of Highcharts treemap labels with regard to visibility and positioning.
|
|
49
52
|
* Tweaked `GridFindField` to forward a provided `ref` to its underlying `TextInput`.
|
|
50
53
|
* Fixed bug where `SelectEditor` with `queryFn` would not commit on enter keydown.
|
|
51
|
-
*
|
|
54
|
+
* Enabled deletion of larger numbers of log files via Admin Console. Requires `hoist-core >= 35`.
|
|
52
55
|
|
|
53
56
|
### ⚙️ Technical
|
|
54
57
|
|
|
@@ -56,50 +59,46 @@
|
|
|
56
59
|
* `AppSpec.websocketsEnabled` - enabled by default, disable via `disableWebSockets`
|
|
57
60
|
* `GroupingChooserProps.popoverTitle` - use `editorTitle`
|
|
58
61
|
* `RelativeTimestampProps.options` - provide directly as top-level props
|
|
59
|
-
|
|
60
|
-
* Improved
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
`GridExperimentalFlags.deltaSort` and `GridExperimentalFlags.disableScrollOptimization`
|
|
65
|
-
|
|
62
|
+
* Improved the efficiency and logging of `MsalClient`.
|
|
63
|
+
* Improved protections against server/app version mismatches (i.e. a stale client app version cached
|
|
64
|
+
and restored by the browser).
|
|
65
|
+
* Introduced opt-in `Grid` performance optimizations on an experimental basis with
|
|
66
|
+
`GridExperimentalFlags.deltaSort` and `GridExperimentalFlags.disableScrollOptimization`
|
|
66
67
|
|
|
67
68
|
### 📚 Libraries
|
|
68
|
-
|
|
69
|
-
*
|
|
70
|
-
* @blueprintjs/
|
|
71
|
-
*
|
|
69
|
+
|
|
70
|
+
* @blueprintjs/core: `5.10 -> 6.3`
|
|
71
|
+
* @blueprintjs/datetime: `5.3 -> 6.0`
|
|
72
|
+
* react-grid-layout `1.5 → 2.1`
|
|
72
73
|
|
|
73
74
|
## 78.1.4 - 2025-12-05
|
|
74
75
|
|
|
75
76
|
### 🐞 Bug Fixes
|
|
76
77
|
|
|
77
|
-
*
|
|
78
|
+
* Fixed logging during `MsalClient` creation.
|
|
78
79
|
|
|
79
80
|
## 78.1.3 - 2025-12-04
|
|
80
81
|
|
|
81
82
|
### 🐞 Bug Fixes
|
|
82
83
|
|
|
83
|
-
*
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
* Fixed Highcharts timezone handling regression from version 77.
|
|
85
|
+
* Note that Highcharts has deprecated the `time.useUTC` option and its functioning seem
|
|
86
|
+
suspect - set `time.timezone` instead. See https://api.highcharts.com/highcharts/time.useUTC.
|
|
86
87
|
|
|
87
88
|
### ⚙️ Technical
|
|
88
89
|
|
|
89
|
-
*
|
|
90
|
+
* Enabled cross-tab persistence of client logging-level customizations.
|
|
90
91
|
|
|
91
92
|
## 78.1.0 - 2025-12-02
|
|
92
93
|
|
|
93
94
|
### ⚙️ Technical
|
|
94
95
|
|
|
95
|
-
*
|
|
96
|
-
|
|
97
|
-
*
|
|
98
|
-
|
|
99
|
-
*
|
|
100
|
-
|
|
101
|
-
This can be further modified by apps via the option
|
|
102
|
-
`MsalClientConfig.msalClientOptions.system.iFrameHashTimeout`
|
|
96
|
+
* Added new property `MsalClientConfig.enableSsoSilent` to govern use of MSAL SSO API.
|
|
97
|
+
* Changed default for `MsalClientConfig.enableTelemetry` to `true`.
|
|
98
|
+
* Improved use of MSAL client API to maximize effectiveness of SSO, along with updates to docs and
|
|
99
|
+
logging.
|
|
100
|
+
* Note that Iframe attempts will now time out by default after 3s (vs. 10s). Customize if needed
|
|
101
|
+
via `MsalClientConfig.msalClientOptions.system.iFrameHashTimeout`.
|
|
103
102
|
|
|
104
103
|
### 📚 Libraries
|
|
105
104
|
|
|
@@ -124,8 +123,7 @@
|
|
|
124
123
|
|
|
125
124
|
### 🐞 Bug Fixes
|
|
126
125
|
|
|
127
|
-
* Fixed `GridModel` not appending children to the parents correctly when
|
|
128
|
-
numerical ID.
|
|
126
|
+
* Fixed `GridModel` not appending children to the parents correctly when recs have numeric IDs.
|
|
129
127
|
* Fixed issue where newly added columns appearing in the Displayed Columns section of the column
|
|
130
128
|
chooser after loading grid state that was persisted before the columns were added to the grid.
|
|
131
129
|
* Removed a minor Cube `Query` annoyance - `dimensions` are now automatically added to the `fields`
|
|
@@ -141,22 +139,21 @@
|
|
|
141
139
|
|
|
142
140
|
### 💥 Breaking Changes (upgrade difficulty: 🟢 LOW)
|
|
143
141
|
|
|
144
|
-
*
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
* Visit https://www.highcharts.com/blog/changelog/ for specific changes.
|
|
142
|
+
* Upgraded Highcharts to v12.
|
|
143
|
+
* Refer to Toolbox's `Bootstrap.js` for required changes to imports and chart initialization.
|
|
144
|
+
* Visit https://www.highcharts.com/blog/changelog/ for additional details on the upgrade.
|
|
148
145
|
|
|
149
146
|
### 🎁 New Features
|
|
150
147
|
|
|
151
|
-
*
|
|
148
|
+
* Added `StoreRecord.getModifiedValues()` to return an object with edited field values only.
|
|
152
149
|
|
|
153
150
|
### 🐞 Bug Fixes
|
|
154
151
|
|
|
155
|
-
* StoreRecord
|
|
156
|
-
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
empty space.
|
|
152
|
+
* Improved `StoreRecord.isModified` to no return `true` after a field has been edited but then
|
|
153
|
+
returned to its original value in a subsequent edit.
|
|
154
|
+
* Restored support for `TabModel.content` set to `null`, to support dynamic tab content.
|
|
155
|
+
* Fixed and issue where stray context menus could appear when clicking on column group headers and
|
|
156
|
+
other grid empty space.
|
|
160
157
|
|
|
161
158
|
## 77.0.1 - 2025-10-29
|
|
162
159
|
|
|
@@ -277,6 +277,16 @@ export const msg: ColumnSpec = {
|
|
|
277
277
|
autosizeMaxWidth
|
|
278
278
|
};
|
|
279
279
|
|
|
280
|
+
export const clientAppCode: ColumnSpec = {
|
|
281
|
+
field: {
|
|
282
|
+
name: 'clientAppCode',
|
|
283
|
+
type: 'string',
|
|
284
|
+
displayName: 'Client App'
|
|
285
|
+
},
|
|
286
|
+
chooserGroup: 'Core Data',
|
|
287
|
+
width: 100
|
|
288
|
+
};
|
|
289
|
+
|
|
280
290
|
export const severity: ColumnSpec = {
|
|
281
291
|
field: {
|
|
282
292
|
name: 'severity',
|
|
@@ -293,6 +293,7 @@ export class ActivityTrackingModel extends HoistModel implements ActivityDetailP
|
|
|
293
293
|
Col.appVersion.field,
|
|
294
294
|
Col.browser.field,
|
|
295
295
|
Col.category.field,
|
|
296
|
+
Col.clientAppCode.field,
|
|
296
297
|
Col.correlationId.field,
|
|
297
298
|
{name: 'count', type: 'int', aggregator: 'CHILD_COUNT'},
|
|
298
299
|
Col.data.field,
|
|
@@ -344,6 +345,7 @@ export class ActivityTrackingModel extends HoistModel implements ActivityDetailP
|
|
|
344
345
|
{field: 'msg', displayName: 'Message'},
|
|
345
346
|
{field: 'severity', values: ['DEBUG', 'INFO', 'WARN', 'ERROR']},
|
|
346
347
|
{field: 'tabId'},
|
|
348
|
+
{field: 'clientAppCode'},
|
|
347
349
|
{field: 'userAgent'},
|
|
348
350
|
{field: 'username', displayName: 'User'},
|
|
349
351
|
{field: 'url', displayName: 'URL'}
|
|
@@ -424,6 +426,7 @@ export class ActivityTrackingModel extends HoistModel implements ActivityDetailP
|
|
|
424
426
|
{field: 'count', chooserGroup: 'Core Data', hidden},
|
|
425
427
|
{...Col.appEnvironment, hidden},
|
|
426
428
|
{...Col.appVersion, hidden},
|
|
429
|
+
{...Col.clientAppCode, hidden},
|
|
427
430
|
{...Col.loadId, hidden},
|
|
428
431
|
{...Col.tabId, hidden},
|
|
429
432
|
{...Col.url, hidden},
|
|
@@ -182,6 +182,7 @@ export class ActivityDetailModel extends HoistModel {
|
|
|
182
182
|
{...Col.browser, hidden},
|
|
183
183
|
{...Col.userAgent, hidden},
|
|
184
184
|
{...Col.appVersion, hidden},
|
|
185
|
+
{...Col.clientAppCode, hidden},
|
|
185
186
|
{...Col.loadId, hidden},
|
|
186
187
|
{...Col.tabId},
|
|
187
188
|
{...Col.correlationId, hidden},
|
|
@@ -197,7 +197,7 @@ export class ClientsModel extends BaseAdminTabModel {
|
|
|
197
197
|
{
|
|
198
198
|
headerName: 'Client App',
|
|
199
199
|
headerAlign: 'center',
|
|
200
|
-
children: [Col.appVersion, Col.appBuild]
|
|
200
|
+
children: [Col.clientAppCode, Col.appVersion, {...Col.appBuild, hidden}]
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
203
|
headerName: 'Send/Receive',
|
|
@@ -21,6 +21,7 @@ export declare const errorName: ColumnSpec;
|
|
|
21
21
|
export declare const instance: ColumnSpec;
|
|
22
22
|
export declare const loadId: ColumnSpec;
|
|
23
23
|
export declare const msg: ColumnSpec;
|
|
24
|
+
export declare const clientAppCode: ColumnSpec;
|
|
24
25
|
export declare const severity: ColumnSpec;
|
|
25
26
|
export declare const severityIcon: ColumnSpec;
|
|
26
27
|
export declare const tabId: ColumnSpec;
|
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.1767390094508",
|
|
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",
|
package/svc/TrackService.ts
CHANGED
|
@@ -119,6 +119,7 @@ export class TrackService extends HoistService {
|
|
|
119
119
|
msg: stripTags(options.message),
|
|
120
120
|
clientUsername: XH.getUsername(),
|
|
121
121
|
appVersion: XH.getEnv('clientVersion'),
|
|
122
|
+
clientAppCode: XH.clientAppCode,
|
|
122
123
|
loadId: XH.loadId,
|
|
123
124
|
tabId: XH.tabId,
|
|
124
125
|
url: window.location.href,
|
package/svc/WebSocketService.ts
CHANGED
|
@@ -45,7 +45,13 @@ export class WebSocketService extends HoistService {
|
|
|
45
45
|
readonly REG_SUCCESS_TOPIC = 'xhRegistrationSuccess';
|
|
46
46
|
readonly FORCE_APP_SUSPEND_TOPIC = 'xhForceAppSuspend';
|
|
47
47
|
readonly REQ_CLIENT_HEALTH_RPT_TOPIC = 'xhRequestClientHealthReport';
|
|
48
|
-
readonly METADATA_FOR_HANDSHAKE = [
|
|
48
|
+
readonly METADATA_FOR_HANDSHAKE = [
|
|
49
|
+
'appVersion',
|
|
50
|
+
'appBuild',
|
|
51
|
+
'loadId',
|
|
52
|
+
'tabId',
|
|
53
|
+
'clientAppCode'
|
|
54
|
+
];
|
|
49
55
|
|
|
50
56
|
/** True if WebSockets not explicitly disabled via {@link AppSpec.disableWebSockets}. */
|
|
51
57
|
enabled: boolean = !XH.appSpec.disableWebSockets;
|