@genesislcap/pbc-reporting-ui 15.20.1 → 15.20.2-FUI-0.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.
@@ -4395,6 +4395,48 @@
4395
4395
  }
4396
4396
  ]
4397
4397
  },
4398
+ {
4399
+ "kind": "javascript-module",
4400
+ "path": "src/old/utils/row-selection.ts",
4401
+ "declarations": [
4402
+ {
4403
+ "kind": "variable",
4404
+ "name": "USER_TOGGLE_MARKER",
4405
+ "type": {
4406
+ "text": "string"
4407
+ },
4408
+ "default": "'__reportingUserCheckboxToggle'",
4409
+ "description": "Set on the row node while a user checkbox click is applied. @internal"
4410
+ },
4411
+ {
4412
+ "kind": "variable",
4413
+ "name": "USER_CHECKBOX_SOURCE",
4414
+ "type": {
4415
+ "text": "string"
4416
+ },
4417
+ "default": "'checkboxSelected'",
4418
+ "description": "Selection source reported for a click on the custom row checkbox. @internal"
4419
+ }
4420
+ ],
4421
+ "exports": [
4422
+ {
4423
+ "kind": "js",
4424
+ "name": "USER_TOGGLE_MARKER",
4425
+ "declaration": {
4426
+ "name": "USER_TOGGLE_MARKER",
4427
+ "module": "src/old/utils/row-selection.ts"
4428
+ }
4429
+ },
4430
+ {
4431
+ "kind": "js",
4432
+ "name": "USER_CHECKBOX_SOURCE",
4433
+ "declaration": {
4434
+ "name": "USER_CHECKBOX_SOURCE",
4435
+ "module": "src/old/utils/row-selection.ts"
4436
+ }
4437
+ }
4438
+ ]
4439
+ },
4398
4440
  {
4399
4441
  "kind": "javascript-module",
4400
4442
  "path": "src/new/components/clone-report-config-modal/clone-report-config-modal.styles.ts",
@@ -6924,6 +6966,15 @@
6924
6966
  "text": "boolean"
6925
6967
  }
6926
6968
  },
6969
+ {
6970
+ "kind": "field",
6971
+ "name": "boundOnSelectionChanged",
6972
+ "type": {
6973
+ "text": "() => void"
6974
+ },
6975
+ "privacy": "private",
6976
+ "description": "Kept so the listener registered in `init` can actually be removed in `destroy`."
6977
+ },
6927
6978
  {
6928
6979
  "kind": "method",
6929
6980
  "name": "isDisabled",
@@ -1 +1 @@
1
- {"version":3,"file":"col-filters-grid.helpers.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/col-filters/col-filters-grid.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAQ3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,gBAAgB,CAAC,aAAa,CAAC,GAAG,IAAI,CAqBvF"}
1
+ {"version":3,"file":"col-filters-grid.helpers.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/col-filters/col-filters-grid.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAS3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,gBAAgB,CAAC,aAAa,CAAC,GAAG,IAAI,CAwBvF"}
@@ -1 +1 @@
1
- {"version":3,"file":"col-rename-alias-grid.helpers.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,eAAe,EACf,WAAW,EAIZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,wBAAwB,GAAG,wBAAwB,CAU3F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,EACpF,kBAAkB,EAAE,SAAS,EAAE,gBAAgB,GAAE,SAAc,IACvD,QAAQ,eAAe,CAAC,CAAC,CAAC,KAAG,SAAS,CAM/C;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B,GAAI,UAAU,MAAM,GAAG,MACpD,OAAO,MAAM,EAAE,QAAQ,mBAAmB,CAAC,wBAAwB,CAAC,SAc7E,CAAC;AAEF;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,gBAAgB,CAAC,wBAAwB,CAAC,GAChD,IAAI,CAiBN"}
1
+ {"version":3,"file":"col-rename-alias-grid.helpers.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EACL,eAAe,EACf,WAAW,EAIZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,wBAAwB,GAAG,wBAAwB,CAU3F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,EACpF,kBAAkB,EAAE,SAAS,EAAE,gBAAgB,GAAE,SAAc,IACvD,QAAQ,eAAe,CAAC,CAAC,CAAC,KAAG,SAAS,CAM/C;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B,GAAI,UAAU,MAAM,GAAG,MACpD,OAAO,MAAM,EAAE,QAAQ,mBAAmB,CAAC,wBAAwB,CAAC,SAc7E,CAAC;AAEF;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,gBAAgB,CAAC,wBAAwB,CAAC,GAChD,IAAI,CAsBN"}
@@ -9,6 +9,8 @@ import { FoundationElement } from '@genesislcap/web-core';
9
9
  export declare class RowSelectRenderer extends FoundationElement implements ICellRendererComp {
10
10
  params: ICellRendererParams & BooleanRendererParams;
11
11
  checked: boolean;
12
+ /** Kept so the listener registered in `init` can actually be removed in `destroy`. */
13
+ private boundOnSelectionChanged;
12
14
  isDisabled(data: any): boolean;
13
15
  init(params: ICellRendererParams): void;
14
16
  onSelectionChanged(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"row-select.renderer.d.ts","sourceRoot":"","sources":["../../../../../src/old/components/renderers/row-select.renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAuB,MAAM,uCAAuC,CAAC;AACnG,OAAO,EAAyB,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEjF;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,iBAAkB,YAAW,iBAAiB;IAE5E,MAAM,EAAE,mBAAmB,GAAG,qBAAqB,CAAC;IAG3D,OAAO,EAAE,OAAO,CAAC;IAEV,UAAU,CAAC,IAAI,KAAA,GAAG,OAAO;IAWzB,IAAI,CAAC,MAAM,EAAE,mBAAmB;IAShC,kBAAkB;IAMlB,aAAa,CAAC,CAAC,KAAA;IAKf,MAAM,IAAI,WAAW;IAIrB,OAAO;IAOP,OAAO,CAAC,MAAM,EAAE,mBAAmB;IAK1C,QAAQ;IAIR,mBAAmB;CAGpB;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,iDAsCrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,GAAI,qBAAsB,2EAYpE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;4BAIxC,CAAC"}
1
+ {"version":3,"file":"row-select.renderer.d.ts","sourceRoot":"","sources":["../../../../../src/old/components/renderers/row-select.renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAuB,MAAM,uCAAuC,CAAC;AACnG,OAAO,EAAyB,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAGjF;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,iBAAkB,YAAW,iBAAiB;IAE5E,MAAM,EAAE,mBAAmB,GAAG,qBAAqB,CAAC;IAG3D,OAAO,EAAE,OAAO,CAAC;IAEjB,sFAAsF;IACtF,OAAO,CAAC,uBAAuB,CAAa;IAErC,UAAU,CAAC,IAAI,KAAA,GAAG,OAAO;IAWzB,IAAI,CAAC,MAAM,EAAE,mBAAmB;IAUhC,kBAAkB;IAMlB,aAAa,CAAC,CAAC,KAAA;IAUf,MAAM,IAAI,WAAW;IAIrB,OAAO;IAMP,OAAO,CAAC,MAAM,EAAE,mBAAmB;IAK1C,QAAQ;IAIR,mBAAmB;CAGpB;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,iDAsCrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,GAAI,qBAAsB,2EAYpE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;4BAIxC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { IRowNode, RowSelectedEvent } from '@ag-grid-community/core';
2
+ /** Set on the row node while a user checkbox click is applied. @internal */
3
+ export declare const USER_TOGGLE_MARKER = "__reportingUserCheckboxToggle";
4
+ /** Selection source reported for a click on the custom row checkbox. @internal */
5
+ export declare const USER_CHECKBOX_SOURCE = "checkboxSelected";
6
+ /**
7
+ * True while a user checkbox click is being applied through the node marker fallback.
8
+ * @internal
9
+ */
10
+ export declare function isUserCheckboxToggle(node: unknown): boolean;
11
+ /**
12
+ * True when a selection change came from the user rather than from a programmatic
13
+ * `setSelected()`, which defaults to source `'api'`.
14
+ * @internal
15
+ */
16
+ export declare function isUserSelectionEvent(event: RowSelectedEvent): boolean;
17
+ /**
18
+ * Apply a user checkbox toggle so the resulting `rowSelected` event stays distinguishable from a
19
+ * programmatic re-sync.
20
+ *
21
+ * @remarks
22
+ * Grid-option handlers such as `onRowSelected` are invoked asynchronously: the event is queued
23
+ * through a `setTimeout`, because `rowSelected` is not one of the grid's always-synchronous
24
+ * events. A marker set on the node and cleared in a `finally` block is therefore already gone
25
+ * before the handler reads it. The selection source travels on the event itself, so pass it
26
+ * explicitly. `setNodesSelected` takes a single object argument, so the source keeps its position
27
+ * across grid versions, unlike the positional `source` on `RowNode.setSelected`.
28
+ * @internal
29
+ */
30
+ export declare function selectNodeAsUser(node: IRowNode, newValue: boolean, api?: unknown): void;
31
+ //# sourceMappingURL=row-selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-selection.d.ts","sourceRoot":"","sources":["../../../../src/old/utils/row-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAErE,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAElE,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAkBvD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAM3D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAErE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAevF"}
@@ -1,3 +1,4 @@
1
+ import { isUserSelectionEvent } from '../../../../old/utils/row-selection';
1
2
  import { actions, selectors } from '../../../store';
2
3
  import { GridColumnNames, datasourceNameFromDisplay, lookupColumnIsIncluded, shouldDisableColumn, } from '../shared';
3
4
  /**
@@ -7,6 +8,9 @@ export function rowSelectionChangedHandler(event) {
7
8
  var _a, _b;
8
9
  if (!event.data)
9
10
  return;
11
+ // Ignore programmatic re-selection (`setSelected()` defaults to source `'api'`).
12
+ if (!isUserSelectionEvent(event))
13
+ return;
10
14
  // gate event listener to only trigger if the data is actually changed by the user
11
15
  // (return if setting the same value as in the store, e.g. when first loading
12
16
  // the grid data)
@@ -1,4 +1,5 @@
1
1
  import { capitalCase } from 'change-case';
2
+ import { isUserSelectionEvent } from '../../../../old/utils/row-selection';
2
3
  import { actions, selectors } from '../../../store';
3
4
  import { GridColumnNames, datasourceNameFromDisplay, lookupColumnIsRenamed, shouldDisableColumn, } from '../shared';
4
5
  /**
@@ -48,6 +49,11 @@ export function renameRowSelectionChangedHandler(event) {
48
49
  var _a, _b;
49
50
  if (!event.data)
50
51
  return;
52
+ // Ignore programmatic re-selection: `onRowDataUpdated` re-syncs through a bare `setSelected()`
53
+ // (source `'api'`), and AG Grid re-applies its own selection when the stepper step is revisited.
54
+ // Neither is a user edit, so neither may write back to `COLUMN_RENAMES`.
55
+ if (!isUserSelectionEvent(event))
56
+ return;
51
57
  // gate event listener to only trigger if the data is actually changed by the user
52
58
  // (return if setting the same value as in the store, e.g. when first loading
53
59
  // the grid data)
@@ -1,6 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { EDITED_COLUMN_FIELD } from '@genesislcap/foundation-zero-grid-pro';
3
3
  import { css, html, observable, FoundationElement } from '@genesislcap/web-core';
4
+ import { selectNodeAsUser } from '../../utils/row-selection';
4
5
  /**
5
6
  * The AG Row Select Renderer element.
6
7
  * @public
@@ -26,7 +27,8 @@ export class RowSelectRenderer extends FoundationElement {
26
27
  this.checked = !!params.value;
27
28
  const { ariaLabelField } = params.context;
28
29
  this.ariaLabel = `Select row for ${params.data[ariaLabelField]}. Press Space to toggle selection.`;
29
- this.params.api.addEventListener('selectionChanged', this.onSelectionChanged.bind(this));
30
+ this.boundOnSelectionChanged = this.onSelectionChanged.bind(this);
31
+ this.params.api.addEventListener('selectionChanged', this.boundOnSelectionChanged);
30
32
  }
31
33
  onSelectionChanged() {
32
34
  var _a;
@@ -35,16 +37,23 @@ export class RowSelectRenderer extends FoundationElement {
35
37
  }
36
38
  }
37
39
  changeHandler(e) {
40
+ var _a, _b, _c;
38
41
  this.checked = e.target.checked;
39
- this.params.node.setSelected(this.checked);
42
+ const node = (_a = this.params) === null || _a === void 0 ? void 0 : _a.node;
43
+ if (!node)
44
+ return;
45
+ // FAST re-emits `change` for programmatic `checked` writes, so only treat this as a user
46
+ // toggle when the checkbox and the node actually disagree.
47
+ if (this.checked === ((_b = node.isSelected()) !== null && _b !== void 0 ? _b : false))
48
+ return;
49
+ selectNodeAsUser(node, this.checked, (_c = this.params) === null || _c === void 0 ? void 0 : _c.api);
40
50
  }
41
51
  getGui() {
42
52
  return this;
43
53
  }
44
54
  destroy() {
45
55
  if (this.params && this.params.api) {
46
- // oxlint-disable-next-line unicorn/no-invalid-remove-event-listener -- symmetric to addEventListener(.bind)
47
- this.params.api.removeEventListener('selectionChanged', this.onSelectionChanged.bind(this));
56
+ this.params.api.removeEventListener('selectionChanged', this.boundOnSelectionChanged);
48
57
  }
49
58
  }
50
59
  refresh(params) {
@@ -0,0 +1,64 @@
1
+ /** Set on the row node while a user checkbox click is applied. @internal */
2
+ export const USER_TOGGLE_MARKER = '__reportingUserCheckboxToggle';
3
+ /** Selection source reported for a click on the custom row checkbox. @internal */
4
+ export const USER_CHECKBOX_SOURCE = 'checkboxSelected';
5
+ /**
6
+ * AG Grid's own UI selection sources, plus the source this module reports for the custom row
7
+ * checkbox. Programmatic sources (`api`, `apiSelectAll`) are deliberately absent.
8
+ * @internal
9
+ */
10
+ const USER_SELECTION_SOURCES = new Set([
11
+ 'uiSelectAll',
12
+ 'uiSelectAllFiltered',
13
+ 'uiSelectAllCurrentPage',
14
+ 'checkboxSelected',
15
+ 'rowClicked',
16
+ 'spaceKey',
17
+ 'spacePressed', // v29 name for 'spaceKey'
18
+ 'keyboardSelectAll', // v36 Ctrl+A; absent from v29's source union
19
+ ]);
20
+ /**
21
+ * True while a user checkbox click is being applied through the node marker fallback.
22
+ * @internal
23
+ */
24
+ export function isUserCheckboxToggle(node) {
25
+ return (typeof node === 'object' &&
26
+ node !== null &&
27
+ node[USER_TOGGLE_MARKER] === true);
28
+ }
29
+ /**
30
+ * True when a selection change came from the user rather than from a programmatic
31
+ * `setSelected()`, which defaults to source `'api'`.
32
+ * @internal
33
+ */
34
+ export function isUserSelectionEvent(event) {
35
+ return USER_SELECTION_SOURCES.has(event.source) || isUserCheckboxToggle(event.node);
36
+ }
37
+ /**
38
+ * Apply a user checkbox toggle so the resulting `rowSelected` event stays distinguishable from a
39
+ * programmatic re-sync.
40
+ *
41
+ * @remarks
42
+ * Grid-option handlers such as `onRowSelected` are invoked asynchronously: the event is queued
43
+ * through a `setTimeout`, because `rowSelected` is not one of the grid's always-synchronous
44
+ * events. A marker set on the node and cleared in a `finally` block is therefore already gone
45
+ * before the handler reads it. The selection source travels on the event itself, so pass it
46
+ * explicitly. `setNodesSelected` takes a single object argument, so the source keeps its position
47
+ * across grid versions, unlike the positional `source` on `RowNode.setSelected`.
48
+ * @internal
49
+ */
50
+ export function selectNodeAsUser(node, newValue, api) {
51
+ const setNodesSelected = api === null || api === void 0 ? void 0 : api.setNodesSelected;
52
+ if (typeof setNodesSelected === 'function') {
53
+ setNodesSelected.call(api, { nodes: [node], newValue, source: USER_CHECKBOX_SOURCE });
54
+ return;
55
+ }
56
+ // Grids without `setNodesSelected`: mark the node and clear the mark on a later task, so the
57
+ // marker outlives an asynchronous dispatch of the selection event.
58
+ const marked = node;
59
+ marked[USER_TOGGLE_MARKER] = true;
60
+ node.setSelected(newValue);
61
+ setTimeout(() => {
62
+ delete marked[USER_TOGGLE_MARKER];
63
+ }, 0);
64
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/pbc-reporting-ui",
3
3
  "description": "Genesis PBC Reporting UI",
4
- "version": "15.20.1",
4
+ "version": "15.20.2-FUI-0.3",
5
5
  "license": "SEE LICENSE IN license.txt",
6
6
  "main": "dist/esm/index.js",
7
7
  "types": "dist/dts/index.d.ts",
@@ -86,32 +86,32 @@
86
86
  "@ag-grid-community/core": "29.2.0"
87
87
  },
88
88
  "dependencies": {
89
- "@genesislcap/foundation-comms": "15.20.1",
90
- "@genesislcap/foundation-entity-management": "15.20.1",
91
- "@genesislcap/foundation-events": "15.20.1",
92
- "@genesislcap/foundation-forms": "15.20.1",
93
- "@genesislcap/foundation-logger": "15.20.1",
94
- "@genesislcap/foundation-notifications": "15.20.1",
95
- "@genesislcap/foundation-ui": "15.20.1",
96
- "@genesislcap/foundation-user": "15.20.1",
97
- "@genesislcap/foundation-utils": "15.20.1",
98
- "@genesislcap/foundation-zero": "15.20.1",
99
- "@genesislcap/foundation-zero-grid-pro": "15.20.1",
100
- "@genesislcap/grid-pro": "15.20.1",
101
- "@genesislcap/rapid-design-system": "15.20.1",
102
- "@genesislcap/rapid-grid-pro": "15.20.1",
103
- "@genesislcap/web-core": "15.20.1",
89
+ "@genesislcap/foundation-comms": "15.20.2-FUI-0.3",
90
+ "@genesislcap/foundation-entity-management": "15.20.2-FUI-0.3",
91
+ "@genesislcap/foundation-events": "15.20.2-FUI-0.3",
92
+ "@genesislcap/foundation-forms": "15.20.2-FUI-0.3",
93
+ "@genesislcap/foundation-logger": "15.20.2-FUI-0.3",
94
+ "@genesislcap/foundation-notifications": "15.20.2-FUI-0.3",
95
+ "@genesislcap/foundation-ui": "15.20.2-FUI-0.3",
96
+ "@genesislcap/foundation-user": "15.20.2-FUI-0.3",
97
+ "@genesislcap/foundation-utils": "15.20.2-FUI-0.3",
98
+ "@genesislcap/foundation-zero": "15.20.2-FUI-0.3",
99
+ "@genesislcap/foundation-zero-grid-pro": "15.20.2-FUI-0.3",
100
+ "@genesislcap/grid-pro": "15.20.2-FUI-0.3",
101
+ "@genesislcap/rapid-design-system": "15.20.2-FUI-0.3",
102
+ "@genesislcap/rapid-grid-pro": "15.20.2-FUI-0.3",
103
+ "@genesislcap/web-core": "15.20.2-FUI-0.3",
104
104
  "@reduxjs/toolkit": "^2.2.5",
105
105
  "@types/node": "^22.10.2",
106
106
  "change-case": "^5.4.3",
107
107
  "lodash": "^4.17.21"
108
108
  },
109
109
  "devDependencies": {
110
- "@genesislcap/eslint-config": "15.20.1",
111
- "@genesislcap/foundation-testing": "15.20.1",
112
- "@genesislcap/genx": "15.20.1",
113
- "@genesislcap/prettier-config": "15.20.1",
114
- "@genesislcap/stylelint-config": "15.20.1",
110
+ "@genesislcap/eslint-config": "15.20.2-FUI-0.3",
111
+ "@genesislcap/foundation-testing": "15.20.2-FUI-0.3",
112
+ "@genesislcap/genx": "15.20.2-FUI-0.3",
113
+ "@genesislcap/prettier-config": "15.20.2-FUI-0.3",
114
+ "@genesislcap/stylelint-config": "15.20.2-FUI-0.3",
115
115
  "@types/json-schema": "^7.0.11",
116
116
  "playwright-lighthouse": "^4.0.0",
117
117
  "rimraf": "^5.0.0"