@genesislcap/blank-app-seed 5.7.0-prerelease.3 → 5.7.0-prerelease.30

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.
Files changed (81) hide show
  1. package/.genx/configure.js +114 -0
  2. package/.genx/package.json +5 -2
  3. package/.genx/prompts/api.js +25 -0
  4. package/.genx/prompts/ui.js +12 -0
  5. package/.genx/prompts.js +8 -2
  6. package/.genx/static.js +1 -0
  7. package/.genx/templates/angular/component/component.hbs +31 -3
  8. package/.genx/templates/angular/entityManager.hbs +17 -6
  9. package/.genx/templates/angular/grid.hbs +5 -2
  10. package/.genx/templates/angular/slices/eventing.slice.hbs +41 -0
  11. package/.genx/templates/angular/store.hbs +16 -0
  12. package/.genx/templates/angular/tabsLayout.hbs +1 -1
  13. package/.genx/templates/react/component/component.hbs +84 -15
  14. package/.genx/templates/react/entityManager.hbs +11 -17
  15. package/.genx/templates/react/grid.hbs +5 -9
  16. package/.genx/templates/react/gridLayout.hbs +4 -4
  17. package/.genx/templates/react/horizontalLayout.hbs +1 -1
  18. package/.genx/templates/react/route.hbs +12 -1
  19. package/.genx/templates/react/slices/eventing.slice.hbs +39 -0
  20. package/.genx/templates/react/store.hbs +24 -0
  21. package/.genx/templates/react/tabsLayout.hbs +2 -2
  22. package/.genx/templates/web-components/component/component.hbs +26 -0
  23. package/.genx/templates/web-components/entityManager.hbs +17 -9
  24. package/.genx/templates/web-components/grid.hbs +13 -5
  25. package/.genx/templates/web-components/slices/eventing.slice.hbs +44 -0
  26. package/.genx/templates/web-components/store.hbs +18 -0
  27. package/.genx/utils/fontUtils.js +75 -0
  28. package/.genx/utils/formatRouteData.js +5 -0
  29. package/.genx/utils/generateRoute.js +1 -1
  30. package/.genx/utils/generateStore.js +98 -0
  31. package/.genx/utils/index.js +4 -0
  32. package/.genx/versions.json +3 -3
  33. package/.github/CODEOWNERS +1 -1
  34. package/.github/pull_request_template.md +6 -0
  35. package/.github/workflows/upgrade.yml +0 -1
  36. package/CHANGELOG.md +229 -0
  37. package/client-tmp/angular/package.json +5 -0
  38. package/client-tmp/angular/src/app/app.component.ts +2 -31
  39. package/client-tmp/angular/src/app/app.module.ts +3 -0
  40. package/client-tmp/angular/src/app/layouts/default/default.layout.css +8 -0
  41. package/client-tmp/angular/src/app/layouts/default/default.layout.html +3 -0
  42. package/client-tmp/angular/src/app/share/genesis-components.ts +12 -1
  43. package/client-tmp/angular/src/styles/design-tokens.json +1 -1
  44. package/client-tmp/angular/src/styles/styles.css +15 -1
  45. package/client-tmp/react/index.html +0 -1
  46. package/client-tmp/react/package.json +16 -28
  47. package/client-tmp/react/public/index.html +3 -1
  48. package/client-tmp/react/src/App.tsx +12 -29
  49. package/client-tmp/react/src/components/routes/AppRoutes.tsx +4 -4
  50. package/client-tmp/react/src/config.ts +1 -1
  51. package/client-tmp/react/src/layouts/blank/BlankLayout.tsx +1 -1
  52. package/client-tmp/react/src/layouts/default/DefaultLayout.module.css +8 -0
  53. package/client-tmp/react/src/layouts/default/DefaultLayout.tsx +7 -4
  54. package/client-tmp/react/src/main.tsx +1 -1
  55. package/client-tmp/react/src/pages/AuthPage/AuthPage.tsx +1 -1
  56. package/client-tmp/react/src/pages/NotFoundPage/NotFoundPage.tsx +1 -1
  57. package/client-tmp/react/src/pages/NotPermittedPage/NotPermittedPage.test.tsx +1 -1
  58. package/client-tmp/react/src/pages/NotPermittedPage/NotPermittedPage.tsx +1 -1
  59. package/client-tmp/react/src/pbc/container.tsx +1 -1
  60. package/client-tmp/react/src/share/foundation-login.ts +2 -2
  61. package/client-tmp/react/src/share/genesis-components.ts +12 -1
  62. package/client-tmp/react/src/store/RoutesContext.tsx +6 -6
  63. package/client-tmp/react/src/styles/design-tokens.json +1 -1
  64. package/client-tmp/react/src/styles/styles.css +15 -1
  65. package/client-tmp/react/src/utils/getLayoutNameByRoute.ts +1 -1
  66. package/client-tmp/react/src/utils/goldenLayout.helper.ts +59 -0
  67. package/client-tmp/react/test/e2e/fixture.ts +1 -1
  68. package/client-tmp/web-components/package.json +4 -0
  69. package/client-tmp/web-components/src/components/components.ts +18 -9
  70. package/client-tmp/web-components/src/layouts/default.ts +12 -2
  71. package/client-tmp/web-components/src/main/main.css +12 -0
  72. package/client-tmp/web-components/src/main/main.template.ts +0 -1
  73. package/client-tmp/web-components/src/main/main.ts +1 -34
  74. package/client-tmp/web-components/src/styles/design-tokens.json +1 -1
  75. package/client-tmp/web-components/src/styles/typography.ts +6 -4
  76. package/package.json +1 -1
  77. package/client-tmp/angular/src/app/store/store.ts +0 -34
  78. package/client-tmp/react/lint-css.ts +0 -19
  79. package/client-tmp/react/src/services/store.service.ts +0 -48
  80. package/client-tmp/react/vite.config.ts +0 -70
  81. package/client-tmp/web-components/src/store/store.ts +0 -29
package/CHANGELOG.md CHANGED
@@ -1,5 +1,234 @@
1
1
  # Changelog
2
2
 
3
+ ## [5.7.0-prerelease.30](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.29...v5.7.0-prerelease.30) (2026-01-27)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 6b27022
9
+
10
+ ## [5.7.0-prerelease.29](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.28...v5.7.0-prerelease.29) (2026-01-27)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 8d05c98
16
+
17
+ ## [5.7.0-prerelease.28](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.27...v5.7.0-prerelease.28) (2025-11-26)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * Revert GSF version changes in versions.json [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) (#540) f174314
23
+
24
+ ## [5.7.0-prerelease.27](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.26...v5.7.0-prerelease.27) (2025-11-25)
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 7e4d994
30
+
31
+ ## [5.7.0-prerelease.26](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.25...v5.7.0-prerelease.26) (2025-11-14)
32
+
33
+
34
+ ### Bug Fixes
35
+
36
+ * use component in tabsLayout GENC-0 41a53ac
37
+ * use component in tabsLayout GENC-0 (#539) e4f164e
38
+
39
+ ## [5.7.0-prerelease.25](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.24...v5.7.0-prerelease.25) (2025-11-11)
40
+
41
+
42
+ ### Bug Fixes
43
+
44
+ * change selected row background GENC-1211 72eb6ae
45
+ * change selected row background GENC-1211 (#537) e00b3d1
46
+
47
+ ## [5.7.0-prerelease.24](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.23...v5.7.0-prerelease.24) (2025-11-07)
48
+
49
+
50
+ ### Bug Fixes
51
+
52
+ * revert add checkbox selection for publishers GENC-1211 2bfba25
53
+ * revert add checkbox selection for publishers GENC-1211 (#536) c2a362a
54
+
55
+ ## [5.7.0-prerelease.23](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.22...v5.7.0-prerelease.23) (2025-11-05)
56
+
57
+
58
+ ### Bug Fixes
59
+
60
+ * add checkbox selection for publishers GENC-1211 187915f
61
+ * add checkbox selection for publishers GENC-1211 (#535) afde343
62
+
63
+ ## [5.7.0-prerelease.22](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.21...v5.7.0-prerelease.22) (2025-11-04)
64
+
65
+
66
+ ### Features
67
+
68
+ * update GSF and Auth versions to 8.14.0 [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 1e45d1e
69
+ * update GSF and Auth versions to 8.14.0 [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) (#534) f7cf87a
70
+
71
+ ## [5.7.0-prerelease.21](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.20...v5.7.0-prerelease.21) (2025-10-31)
72
+
73
+
74
+ ### Bug Fixes
75
+
76
+ * use relative logo source instead of absolute GENC-1232 1002762
77
+ * use relative logo source instead of absolute GENC-1232 (#533) 71a9b23
78
+
79
+ ## [5.7.0-prerelease.20](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.19...v5.7.0-prerelease.20) (2025-10-29)
80
+
81
+
82
+ ### Bug Fixes
83
+
84
+ * bump fui version to fix modal regression 4594a2d
85
+ * bump fui version to fix modal regression (#532) ad41045
86
+
87
+ ## [5.7.0-prerelease.19](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.18...v5.7.0-prerelease.19) (2025-10-28)
88
+
89
+
90
+ ### Features
91
+
92
+ * bump fui versions to receive light mode fixes 6f244c5
93
+ * bump fui versions to receive light mode fixes (#530) 3df2a30
94
+
95
+ ## [5.7.0-prerelease.18](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.17...v5.7.0-prerelease.18) (2025-10-28)
96
+
97
+
98
+ ### Features
99
+
100
+ * fix setting fonts and set css used for handlers GENC-1232 de493e3
101
+ * optionally set fonts in generated app via genx GENC-1232 (#531) 596f933
102
+
103
+ ## [5.7.0-prerelease.17](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.16...v5.7.0-prerelease.17) (2025-10-24)
104
+
105
+
106
+ ### Bug Fixes
107
+
108
+ * handling of optional headerlogo GENC-1232 ece95a3
109
+ * handling of optional headerlogo GENC-1232 (#529) 88ed8d6
110
+
111
+ ## [5.7.0-prerelease.16](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.15...v5.7.0-prerelease.16) (2025-10-23)
112
+
113
+
114
+ ### Features
115
+
116
+ * configure foundation header logo during init GENC-1232 fa452b4
117
+ * optionally set header logo during genx init GENC-1232 (#528) 86c8950
118
+ * set logo styles GENC-1232 950a6b6
119
+
120
+
121
+ ### Bug Fixes
122
+
123
+ * apply logo styles by default GENC-1232 00814d8
124
+ * erronous ifAny check in react for datasourceConfig GENC-1232 c109583
125
+ * linting error in generated app GENC-1232 4c176cc
126
+ * linting error in generated app react and angular GENC-1232 a95c6a5
127
+ * logo configuration in angular GENC-1232 14445fc
128
+
129
+ ## [5.7.0-prerelease.15](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.14...v5.7.0-prerelease.15) (2025-10-22)
130
+
131
+
132
+ ### Bug Fixes
133
+
134
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 9b0d2cf
135
+
136
+ ## [5.7.0-prerelease.14](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.13...v5.7.0-prerelease.14) (2025-10-22)
137
+
138
+
139
+ ### Bug Fixes
140
+
141
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 80b9ac5
142
+
143
+ ## [5.7.0-prerelease.13](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.12...v5.7.0-prerelease.13) (2025-10-22)
144
+
145
+
146
+ ### Features
147
+
148
+ * add ability to set design tokens for generated application GENC-1232 bfcf676
149
+ * add ability to set design tokens for generated application GENC-1232 (#526) c01a7f3
150
+
151
+
152
+ ### Bug Fixes
153
+
154
+ * logic applying design token option GENC-1232 a42f6b6
155
+ * logic applying design token option GENC-1232 760e6c1
156
+ * logic applying design token option GENC-1232 7e25e01
157
+ * logic applying design token option GENC-1232 f11fd09
158
+ * logic applying design token option GENC-1232 54b2e75
159
+ * logic applying design token option GENC-1232 63faf22
160
+ * logic applying design token option GENC-1232 6de63aa
161
+ * logic applying design token option GENC-1232 d721477
162
+ * logic applying design token option GENC-1232 a66eada
163
+ * logic applying design token option GENC-1232 3c72211
164
+ * template example shoudl be using light mode value GENC-1232 b87024f
165
+
166
+ ## [5.7.0-prerelease.12](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.11...v5.7.0-prerelease.12) (2025-10-22)
167
+
168
+
169
+ ### Features
170
+
171
+ * grid interactions web-components/react/angular GENC-1211 ddcf44c
172
+ * grid interactions web-components/react/angular GENC-1211 (#527) a9a112b
173
+
174
+ ## [5.7.0-prerelease.11](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.10...v5.7.0-prerelease.11) (2025-10-21)
175
+
176
+
177
+ ### Bug Fixes
178
+
179
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) a597461
180
+
181
+ ## [5.7.0-prerelease.10](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.9...v5.7.0-prerelease.10) (2025-10-21)
182
+
183
+
184
+ ### Bug Fixes
185
+
186
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) f1c7a32
187
+
188
+ ## [5.7.0-prerelease.9](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.8...v5.7.0-prerelease.9) (2025-10-21)
189
+
190
+
191
+ ### Bug Fixes
192
+
193
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) b666a8b
194
+
195
+ ## [5.7.0-prerelease.8](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.7...v5.7.0-prerelease.8) (2025-10-21)
196
+
197
+
198
+ ### Bug Fixes
199
+
200
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) bc1fc15
201
+
202
+ ## [5.7.0-prerelease.7](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.6...v5.7.0-prerelease.7) (2025-10-20)
203
+
204
+
205
+ ### Bug Fixes
206
+
207
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) db1cff2
208
+
209
+ ## [5.7.0-prerelease.6](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.5...v5.7.0-prerelease.6) (2025-10-20)
210
+
211
+
212
+ ### Bug Fixes
213
+
214
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 24510a4
215
+
216
+ ## [5.7.0-prerelease.5](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.4...v5.7.0-prerelease.5) (2025-10-17)
217
+
218
+
219
+ ### Bug Fixes
220
+
221
+ * add proxy for vite with react ff07e8f
222
+ * add proxy for vite with react adb23b4
223
+ * add proxy for vite with react (#518) 65bab7f
224
+
225
+ ## [5.7.0-prerelease.4](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.3...v5.7.0-prerelease.4) (2025-10-17)
226
+
227
+
228
+ ### Bug Fixes
229
+
230
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) de06d08
231
+
3
232
  ## [5.7.0-prerelease.3](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.7.0-prerelease.2...v5.7.0-prerelease.3) (2025-10-17)
4
233
 
5
234
 
@@ -78,6 +78,7 @@
78
78
  "@angular/platform-browser-dynamic": "^18.0.4",
79
79
  "@angular/router": "^18.0.4",
80
80
  "@genesislcap/foundation-comms": "{{versions.UI}}",
81
+ "@genesislcap/foundation-criteria": "{{versions.UI}}",
81
82
  "@genesislcap/foundation-entity-management": "{{versions.UI}}",
82
83
  "@genesislcap/foundation-events": "{{versions.UI}}",
83
84
  {{#if FDC3.includeDependencies}}
@@ -102,6 +103,8 @@
102
103
  "@genesislcap/rapid-design-system": "{{versions.UI}}",
103
104
  "@genesislcap/rapid-grid-pro": "{{versions.UI}}",
104
105
  "@genesislcap/web-core": "{{versions.UI}}",
106
+ "@genesislcap/foundation-redux": "{{versions.UI}}",
107
+ "@reduxjs/angular-redux": "^1.0.1",
105
108
  "numeral": "2.0.6",
106
109
  "tslib": "^2.3.0",
107
110
  "zone.js": "~0.14.3"
@@ -117,6 +120,7 @@
117
120
  "@angular/platform-browser-dynamic": "^18.0.4",
118
121
  "@angular/router": "^18.0.4",
119
122
  "@genesislcap/foundation-comms": "{{versions.UI}}",
123
+ "@genesislcap/foundation-criteria": "{{versions.UI}}",
120
124
  "@genesislcap/foundation-entity-management": "{{versions.UI}}",
121
125
  "@genesislcap/foundation-events": "{{versions.UI}}",
122
126
  {{#if FDC3.includeDependencies}}
@@ -139,6 +143,7 @@
139
143
  "@genesislcap/grid-tabulator": "{{versions.UI}}",
140
144
  "@genesislcap/rapid-design-system": "{{versions.UI}}",
141
145
  "@genesislcap/rapid-grid-pro": "{{versions.UI}}",
146
+ "@genesislcap/foundation-redux": "{{versions.UI}}",
142
147
  "@genesislcap/web-core": "{{versions.UI}}",
143
148
  "numeral": "2.0.6",
144
149
  "tslib": "^2.3.0",
@@ -5,8 +5,7 @@ import getLayoutNameByRoute from './utils/getLayoutNameByRoute';
5
5
  import type { LayoutComponentName } from './types/layout';
6
6
  import { configureFoundationAuth } from './share/foundation-auth';
7
7
  import { registerComponents } from './share/genesis-components';
8
- import { getStore } from './store';
9
- import { customEventFactory, registerStylesTarget } from '../pbc/utils';
8
+ import { registerStylesTarget } from '../pbc/utils';
10
9
  {{#if FDC3.channels.length}}
11
10
  import { listenToChannel, onFDC3Ready } from './utils';
12
11
  {{/if}}
@@ -16,10 +15,9 @@ import { listenToChannel, onFDC3Ready } from './utils';
16
15
  templateUrl: './app.component.html',
17
16
  styleUrl: './app.component.css',
18
17
  })
19
- export class AppComponent implements OnInit, OnDestroy, AfterViewInit {
18
+ export class AppComponent implements OnInit, AfterViewInit {
20
19
  layoutName?: LayoutComponentName;
21
20
  title = '{{capitalCase appName}}';
22
- store = getStore();
23
21
 
24
22
  // @ts-ignore
25
23
  @Connect connect: Connect;
@@ -40,42 +38,15 @@ export class AppComponent implements OnInit, OnDestroy, AfterViewInit {
40
38
  }
41
39
 
42
40
  ngOnInit() {
43
- this.addEventListeners();
44
- this.readyStore();
45
41
  registerStylesTarget(this.el.nativeElement, 'main');
46
42
  this.loadRemotes();
47
43
  }
48
44
 
49
- ngOnDestroy() {
50
- this.removeEventListeners();
51
- this.disconnectStore();
52
- }
53
45
 
54
46
  async loadRemotes() {
55
47
  await registerComponents();
56
48
  }
57
49
 
58
- addEventListeners() {
59
- this.el.nativeElement.addEventListener('store-connected', this.store.onConnected);
60
- }
61
-
62
- removeEventListeners() {
63
- this.el.nativeElement.removeEventListener('store-connected', this.store.onConnected);
64
- }
65
-
66
- readyStore() {
67
- this.dispatchCustomEvent('store-connected', this.el.nativeElement);
68
- this.dispatchCustomEvent('store-ready', true);
69
- }
70
-
71
- disconnectStore() {
72
- this.dispatchCustomEvent('store-disconnected');
73
- }
74
-
75
- dispatchCustomEvent(type: string, detail?: any) {
76
- this.el.nativeElement.dispatchEvent(customEventFactory(type, detail));
77
- }
78
-
79
50
  ngAfterViewInit() {
80
51
  {{#if FDC3.channels.length}}
81
52
  onFDC3Ready(this.FDC3ReadyHandler);
@@ -9,6 +9,8 @@ import { DefaultLayoutComponent } from './layouts/default/default.layout';
9
9
  import { BlankLayoutComponent } from './layouts/blank/blank.layout';
10
10
  import { LayoutLazyLoadDirective } from './directive/app-lazy-load.directive';
11
11
  import { RouteService } from './services/route.service';
12
+ import { provideRedux } from '@reduxjs/angular-redux';
13
+ import { reduxStore } from './store/store';
12
14
 
13
15
  @NgModule({
14
16
  declarations: [
@@ -26,6 +28,7 @@ import { RouteService } from './services/route.service';
26
28
  ],
27
29
  providers: [
28
30
  RouteService,
31
+ provideRedux({ store: reduxStore as any }),
29
32
  {
30
33
  provide: APP_INITIALIZER,
31
34
  useFactory: (service: RouteService, router: Router) => () => router.resetConfig(service.allRoutes()),
@@ -33,6 +33,14 @@ foundation-header::part(background) {
33
33
  box-sizing: border-box;
34
34
  }
35
35
 
36
+ foundation-header::part(logo) {
37
+ max-width: 50px;
38
+ max-height: 24px;
39
+ width: auto;
40
+ height: auto;
41
+ object-fit: contain;
42
+ }
43
+
36
44
  .routes-wrapper {
37
45
  display: flex;
38
46
  gap: calc(var(--design-unit) * 2px);
@@ -1,6 +1,9 @@
1
1
  <rapid-design-system-provider #designSystemProvider>
2
2
  <pbc-elements-renderer [target]="['layout-start']"></pbc-elements-renderer>
3
3
  <foundation-header
4
+ {{#if headerLogoSrc}}
5
+ logo-src="assets/{{headerLogoSrc}}"
6
+ {{/if}}
4
7
  #foundationHeader
5
8
  show-luminance-toggle-button
6
9
  show-misc-toggle-button
@@ -5,7 +5,8 @@ import { getApp } from '@genesislcap/foundation-shell/app';
5
5
  import * as zeroDesignSystem from '@genesislcap/foundation-zero';
6
6
  import { g2plotChartsComponents } from '@genesislcap/g2plot-chart';
7
7
  import * as rapidDesignSystem from '@genesislcap/rapid-design-system';
8
- import { rapidGridComponents } from '@genesislcap/rapid-grid-pro';
8
+ import { rapidGridComponents, rapidGridPro, rapidGridProStyles } from '@genesislcap/rapid-grid-pro';
9
+ import { css } from "@genesislcap/web-core";
9
10
 
10
11
  /**
11
12
  * Ensure tree shaking doesn't remove these.
@@ -30,6 +31,16 @@ export async function registerComponents() {
30
31
  .provideDesignSystem()
31
32
  .register(
32
33
  rapidDesignSystem.baseComponents,
34
+ rapidGridPro({
35
+ styles: css`
36
+ ${rapidGridProStyles}
37
+ .ag-theme-genesis-rapid,
38
+ .ag-theme-genesis-rapid-dark,
39
+ .ag-theme-genesis-rapid-light {
40
+ --ag-selected-row-background-color: var(--accent-fill-rest);
41
+ }
42
+ `,
43
+ }),
33
44
  rapidGridComponents,
34
45
  g2plotChartsComponents,
35
46
  foundationLayoutComponents,
@@ -12,7 +12,7 @@
12
12
  },
13
13
  "fontFamily": {
14
14
  "bodyFont": {
15
- "$value": "Roboto, \"Segoe UI\", Arial, Helvetica, sans-serif",
15
+ "$value": "{{#if fontFamily}}{{fontFamily}}, {{/if}}Roboto, \"Segoe UI\", Arial, Helvetica, sans-serif",
16
16
  "$type": "fontFamily"
17
17
  }
18
18
  },
@@ -1,11 +1,25 @@
1
+ {{#if fontData}}
2
+ {{#each fontData}}
3
+ @font-face {
4
+ font-family: "{{../fontFamily}}";
5
+ src: url("../assets/fonts/{{filename}}") format("{{format}}");
6
+ font-weight: {{weight}};
7
+ font-style: normal;
8
+ font-display: swap;
9
+ }
10
+ {{/each}}
11
+ {{/if}}
12
+
13
+ {{#unless fontFamily}}
1
14
  @font-face {
2
15
  font-family: Segoe UI;
3
16
  font-weight: 300;
4
17
  src: local("Segoe UI Semilight"), local("Segoe UI");
5
18
  }
19
+ {{/unless}}
6
20
 
7
21
  * {
8
- font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
22
+ font-family: {{#if fontFamily}}"{{fontFamily}}", {{/if}}"Segoe UI", "Helvetica Neue", Arial, sans-serif;
9
23
  font-style: normal;
10
24
  font-weight: normal;
11
25
  }
@@ -2,7 +2,6 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
- <link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
6
  <title>{{capitalCase appName}}</title>
8
7
  </head>
@@ -3,27 +3,28 @@
3
3
  "version": "{{applicationVersionWeb}}",
4
4
  "private": true,
5
5
  "config": {
6
+ "API_HOST": "{{apiHost}}",
7
+ "PORT": 6060,
8
+ "ENABLE_SSO": {{enableSSO}},
6
9
  "PERSIST_LAYOUT_IN_DEV": false
7
10
  },
8
11
  "scripts": {
9
12
  "baseline": "npm run clean && npm run bootstrap",
10
- "bootstrap": "npm i --legacy-peer-deps",
13
+ "bootstrap": "npm i --no-fund --no-audit",
11
14
  "bootstrap:ci": "npm ci --no-fund --no-audit",
12
- "build": "webpack --mode production",
13
- "build:vite": "vite build",
15
+ "build": "genx build -b vite",
14
16
  "build:stats": "npm run build --stats-json",
15
17
  "clean": "genx clean dist node_modules",
16
- "dev": "webpack serve --mode development",
17
- "dev:vite": "vite build && vite preview",
18
+ "dev": "genx dev -b vite -e API_HOST,PORT,ENABLE_SSO,PERSIST_LAYOUT_IN_DEV",
18
19
  "dev:docker": "npm run dev -- --host 0.0.0.0",
19
20
  "dev:no-open": "NO_OPEN=true npm run dev",
20
21
  "dev:intellij": "npm run dev",
21
22
  "dev:https": "HTTPS=true npm run dev",
22
23
  "dsconfig": "dsconfig --path src/styles/design-tokens.json",
23
- "lint": "eslint src/**/*.ts src/**/*.tsx",
24
- "lint:fix": "eslint src/**/*.ts src/**/*.tsx --fix",
25
- "lint:eslint": "npm lint",
26
- "lint:stylelint": "npx ts-node lint-css.ts",
24
+ "lint": "genx lint --profile",
25
+ "lint:fix": "genx lint --fix",
26
+ "lint:eslint": "genx lint -l eslint --profile",
27
+ "lint:stylelint": "genx lint -l stylelint",
27
28
  "stats": "webpack --mode production --json > stats.json",
28
29
  "test": "jest",
29
30
  "test:coverage": "jest --coverage",
@@ -40,6 +41,7 @@
40
41
  "@ag-grid-enterprise/row-grouping": "29.2.0",
41
42
  "@ag-grid-enterprise/server-side-row-model": "29.2.0",
42
43
  "@genesislcap/foundation-comms": "{{versions.UI}}",
44
+ "@genesislcap/foundation-criteria": "{{versions.UI}}",
43
45
  "@genesislcap/foundation-entity-management": "{{versions.UI}}",
44
46
  {{#if FDC3.includeDependencies}}
45
47
  "@genesislcap/foundation-fdc3": "{{versions.UI}}",
@@ -56,6 +58,7 @@
56
58
  "@genesislcap/foundation-user": "{{versions.UI}}",
57
59
  "@genesislcap/foundation-utils": "{{versions.UI}}",
58
60
  "@genesislcap/foundation-zero-grid-tabulator": "{{versions.UI}}",
61
+ "@genesislcap/foundation-redux": "{{versions.UI}}",
59
62
  "@genesislcap/rapid-design-system": "{{versions.UI}}",
60
63
  "@genesislcap/rapid-grid-pro": "{{versions.UI}}",
61
64
  "@genesislcap/rapid-grid-tabulator": "{{versions.UI}}",
@@ -66,6 +69,7 @@
66
69
  "history": "^5.3.0",
67
70
  "react": "^19.0.0",
68
71
  "react-dom": "^19.0.0",
72
+ "react-redux": "^9.1.2",
69
73
  "react-router-dom": "^7.1.3",
70
74
  "web-vitals": "^2.1.4"
71
75
  },
@@ -73,9 +77,6 @@
73
77
  "@analytics/core": "0.12.17"
74
78
  },
75
79
  "devDependencies": {
76
- "@babel/core": "^7.25.2",
77
- "@babel/preset-env": "^7.25.4",
78
- "@babel/preset-react": "^7.26.3",
79
80
  "@genesislcap/design-system-configurator": "{{versions.UI}}",
80
81
  "@genesislcap/eslint-config": "{{versions.UI}}",
81
82
  "@genesislcap/prettier-config": "{{versions.UI}}",
@@ -88,26 +89,13 @@
88
89
  "@types/css-modules": "^1.0.5",
89
90
  "@types/jest": "^29.5.12",
90
91
  "@types/node": "^20.14.10",
91
- "@types/react": "^19.0.1",
92
- "@types/react-dom": "^19.0.2",
93
- "@typescript-eslint/parser": "^7.13.1",
94
- "@vitejs/plugin-react": "^4.3.1",
95
- "babel-loader": "^9.2.1",
96
- "babel-plugin-react-require": "^4.0.3",
97
- "dotenv-webpack": "^8.1.0",
98
- "eslint": "^8.57.0",
92
+ "@types/react": "^19.2.0",
93
+ "@types/react-dom": "^19.2.0",
99
94
  "eslint-plugin-react-hooks": "^5.1.0",
100
95
  "eslint-plugin-react-refresh": "^0.4.16",
101
- "file-loader": "^6.2.0",
102
96
  "jest": "^29.7.0",
103
97
  "jest-environment-jsdom": "^29.7.0",
104
98
  "ts-jest": "^29.2.5",
105
- "ts-node": "^10.9.2",
106
- "typescript": "^5.2.2",
107
- "vite": "^5.3.1",
108
- "vite-plugin-tsconfig-paths": "^1.4.1",
109
- "webpack": "^5.94.0",
110
- "webpack-cli": "^5.1.4",
111
- "webpack-dev-server": "^5.1.0"
99
+ "ts-node": "^10.9.2"
112
100
  }
113
101
  }
@@ -5,9 +5,11 @@
5
5
  <link rel="icon" type="image/x-icon" href="favicon.ico">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>{{capitalCase appName}}</title>
8
+ <link rel="stylesheet" href="/{{appName}}.css" />
8
9
  </head>
9
10
  <body>
10
11
  <div id="root"></div>
11
- <script src="/bundle.js"></script>
12
+ <script>window.process = window.process || { env: {} };</script>
13
+ <script type="module" src="/{{appName}}.mjs"></script>
12
14
  </body>
13
15
  </html>
@@ -7,26 +7,19 @@ import {
7
7
  onFDC3Ready,
8
8
  {{/if}}
9
9
  } from './utils';
10
- import { customEventFactory, registerStylesTarget } from '@/pbc/utils';
10
+ import { customEventFactory, registerStylesTarget } from './pbc/utils';
11
11
  import { RoutesProvider } from './store/RoutesContext';
12
12
  import { registerComponents as genesisRegisterComponents } from './share/genesis-components';
13
- import { storeService } from '@/services/store.service';
14
13
  import AppRoutes from './components/routes/AppRoutes';
15
14
  import NotFoundPage from "@/pages/NotFoundPage/NotFoundPage.tsx";
16
-
15
+ import { reduxStore } from './store/store';
16
+ import { Provider } from 'react-redux';
17
17
 
18
18
  interface AppProps {
19
19
  rootElement: HTMLElement;
20
20
  }
21
21
 
22
- const App: React.FC<AppProps> = ({ rootElement }) => {
23
- const [isStoreConnected, setIsStoreConnected] = useState(false);
24
- const dispatchCustomEvent = (type: string, detail?: any) => {
25
- rootElement.dispatchEvent(customEventFactory(type, detail));
26
- };
27
- const handleStoreConnected = (event: CustomEvent) => {
28
- storeService.onConnected(event);
29
- };
22
+ const App: React.FC<AppProps> = ({}) => {
30
23
  {{#if FDC3.channels.length~}}
31
24
  const FDC3ReadyHandler = () => {
32
25
  {{#each FDC3.channels}}
@@ -47,30 +40,20 @@ const App: React.FC<AppProps> = ({ rootElement }) => {
47
40
  {{#if FDC3.channels.length~}}
48
41
  onFDC3Ready(FDC3ReadyHandler);
49
42
  {{/if}}
50
- if (!isStoreConnected) {
51
- rootElement.addEventListener('store-connected', handleStoreConnected);
52
- dispatchCustomEvent('store-connected', rootElement);
53
- dispatchCustomEvent('store-ready', true);
54
- setIsStoreConnected(true);
55
- }
56
43
 
57
- return () => {
58
- if (isStoreConnected) {
59
- rootElement.removeEventListener('store-connected', handleStoreConnected);
60
- dispatchCustomEvent('store-disconnected');
61
- }
62
- };
63
- }, [isStoreConnected]);
44
+ }, []);
64
45
 
65
46
  const baseElement = document.querySelector('base');
66
47
  const basePath = baseElement?.getAttribute('href') || '';
67
48
 
68
49
  return (
69
- <RoutesProvider>
70
- <Router basename={basePath}>
71
- <AppRoutes />
72
- </Router>
73
- </RoutesProvider>
50
+ <Provider store={reduxStore}>
51
+ <RoutesProvider>
52
+ <Router basename={basePath}>
53
+ <AppRoutes />
54
+ </Router>
55
+ </RoutesProvider>
56
+ </Provider>
74
57
  );
75
58
  };
76
59
 
@@ -1,11 +1,11 @@
1
1
  import { Routes, Route, Navigate } from 'react-router-dom';
2
2
  import AuthPage from '../../pages/AuthPage/AuthPage';
3
- import {{pascalCase routes.[0].name}} from '@/pages/{{pascalCase routes.[0].name}}/{{pascalCase routes.[0].name}}';
3
+ import {{pascalCase routes.[0].name}} from '../../pages/{{pascalCase routes.[0].name}}/{{pascalCase routes.[0].name}}';
4
4
  import DefaultLayout from '../../layouts/default/DefaultLayout';
5
5
  import ProtectedRoute from './ProtectedRoute';
6
- import { useRoutesContext } from '@/store/RoutesContext';
7
- import PBCContainer from '@/pbc/container';
8
- import NotFoundPage from '@/pages/NotFoundPage/NotFoundPage.tsx';
6
+ import { useRoutesContext } from '../../store/RoutesContext';
7
+ import PBCContainer from '../../pbc/container';
8
+ import NotFoundPage from '../../pages/NotFoundPage/NotFoundPage.tsx';
9
9
 
10
10
  const AppRoutes = () => {
11
11
  const routes = useRoutesContext();
@@ -1,5 +1,5 @@
1
1
  import { RouteLayouts } from './types/RouteLayouts';
2
- import { environment } from '@environment';
2
+ import { environment } from './environments/environment';
3
3
 
4
4
  export const routeLayouts: RouteLayouts = {
5
5
  '/login': 'blank',