@genesislcap/blank-app-seed 3.30.2 → 3.31.1

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 (58) hide show
  1. package/.genx/package.json +1 -1
  2. package/.genx/templates/react/chart.hbs +7 -3
  3. package/.genx/templates/react/component/component.column.defs.hbs +4 -2
  4. package/.genx/templates/react/component/component.create.form.hbs +2 -2
  5. package/.genx/templates/react/component/component.gridOptions.hbs +4 -2
  6. package/.genx/templates/react/component/component.hbs +64 -27
  7. package/.genx/templates/react/component/component.index.hbs +1 -1
  8. package/.genx/templates/react/component/component.update.form.hbs +1 -1
  9. package/.genx/templates/react/entityManager.hbs +62 -49
  10. package/.genx/templates/react/form.hbs +7 -3
  11. package/.genx/templates/react/grid.hbs +16 -10
  12. package/.genx/templates/react/route.hbs +1 -2
  13. package/.genx/templates/react/tabsLayout.hbs +5 -5
  14. package/.genx/utils/generateRoute.js +8 -7
  15. package/.genx/utils/generateTile.js +31 -16
  16. package/.genx/versions.json +3 -3
  17. package/.idea/modules.xml +6 -6
  18. package/CHANGELOG.md +29 -0
  19. package/client-tmp/angular/__mocks__/fileMock.js +1 -0
  20. package/client-tmp/angular/angular.json +0 -29
  21. package/client-tmp/angular/jest.config.js +20 -0
  22. package/client-tmp/angular/package.json +6 -6
  23. package/client-tmp/angular/src/app/layouts/default/default.layout.spec.ts +2 -2
  24. package/client-tmp/angular/src/jest.setup.ts +46 -0
  25. package/client-tmp/angular/tsconfig.app.json +1 -2
  26. package/client-tmp/angular/tsconfig.json +1 -2
  27. package/client-tmp/angular/tsconfig.spec.json +13 -7
  28. package/client-tmp/react/.babelrc +10 -0
  29. package/client-tmp/react/.eslintrc.cjs +1 -0
  30. package/client-tmp/react/jest.config.ts +15 -0
  31. package/client-tmp/react/jest.setup.ts +1 -0
  32. package/client-tmp/react/lint-css.ts +19 -0
  33. package/client-tmp/react/package.json +18 -8
  34. package/client-tmp/react/src/App.tsx +1 -1
  35. package/client-tmp/react/src/components/{ErrorMessage.test.js → ErrorMessage/ErrorMessage.test.tsx} +31 -16
  36. package/client-tmp/react/src/components/ErrorMessage/{ErrorMessage.jsx → ErrorMessage.tsx} +9 -4
  37. package/client-tmp/react/src/custom-elements.d.ts +19 -9
  38. package/client-tmp/react/src/guards/AuthGuard.tsx +1 -1
  39. package/client-tmp/react/src/index.ts +21 -0
  40. package/client-tmp/react/src/pages/AuthPage/AuthPage.test.tsx +10 -0
  41. package/client-tmp/react/src/pages/AuthPage/{AuthPage.jsx → AuthPage.tsx} +3 -2
  42. package/client-tmp/react/src/pages/NotPermittedPage/NotPermittedPage.test.tsx +17 -0
  43. package/client-tmp/react/src/pages/NotPermittedPage/NotPermittedPage.tsx +14 -0
  44. package/client-tmp/react/src/{reportWebVitals.js → reportWebVitals.ts} +1 -1
  45. package/client-tmp/react/tsconfig.app.json +2 -5
  46. package/client-tmp/react/tsconfig.json +4 -1
  47. package/client-tmp/react/tsconfig.node.json +1 -1
  48. package/client-tmp/react/{vite.config.js → vite.config.ts} +9 -9
  49. package/client-tmp/web-components/src/main/main.styles.ts +1 -1
  50. package/package.json +1 -1
  51. package/server/settings.gradle.kts +2 -2
  52. package/client-tmp/angular/karma.conf.js +0 -9
  53. package/client-tmp/angular/src/app/app.component.spec.ts +0 -23
  54. package/client-tmp/react/lint-css.js +0 -18
  55. package/client-tmp/react/src/index.js +0 -17
  56. package/client-tmp/react/src/pages/NotPermittedPage/NotPermittedPage.jsx +0 -13
  57. /package/client-tmp/react/src/{setupTests.js → setupTests.ts} +0 -0
  58. /package/server/{{appName}}-app/src/main/genesis/scripts/{{{appName}}-data-pipelines.kts → {{appName}}-pipelines.kts} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/blank-app-seed-config",
3
3
  "description": "Genesis Blank App Seed Configuration",
4
- "version": "3.30.2",
4
+ "version": "3.31.1",
5
5
  "license": "Apache-2.0",
6
6
  "scripts": {
7
7
  "lint": "eslint .",
@@ -1,4 +1,6 @@
1
- {{#if config.permissions.viewRight}}hasUserPermission('{{config.permissions.viewRight}}') ? ({{/if}}
1
+ {{#if config.permissions.viewRight~}}
2
+ hasUserPermission('{{config.permissions.viewRight}}') ? (
3
+ {{/if}}
2
4
  <rapid-g2plot-chart
3
5
  type="{{ config.type }}"
4
6
  config={chartConfig}
@@ -7,7 +9,9 @@
7
9
  resourceName="{{ config.resourceName }}"
8
10
  server-fields="{{ config.xField }} {{ config.yField }}"
9
11
  ></chart-datasource>
10
- </rapid-g2plot-chart>{{#if config.permissions.viewRight}}
12
+ </rapid-g2plot-chart>
13
+ {{#if config.permissions.viewRight~}}
11
14
  ) : (
12
15
  <ErrorMessage elementType="h3" message="You do not have access to view this component." />
13
- ){{/if}}
16
+ )
17
+ {{/if}}
@@ -1,9 +1,11 @@
1
+ {{#if tile.config.columns~}}
1
2
  import { ColDef } from '@ag-grid-community/core';
3
+ {{/if}}
2
4
  import { getNumberFormatter, getDateFormatter } from '@genesislcap/foundation-utils';
3
- {{#if route.FDC3EventHandlersEnabled}}
5
+ {{#if route.FDC3EventHandlersEnabled~}}
4
6
  import { sendEventOnChannel } from '../../../utils';
5
7
  {{/if}}
6
8
 
7
- {{#if tile.config.columns}}
9
+ {{#if tile.config.columns~}}
8
10
  export const columnDefs: ColDef[] = {{{ tile.config.columns }}}
9
11
  {{/if}}
@@ -1,8 +1,8 @@
1
1
  import { UiSchema } from '@genesislcap/foundation-forms';
2
2
 
3
- {{#if tile.config.createFormUiSchema}}
3
+ {{#if tile.config.createFormUiSchema~}}
4
4
  export const createFormSchema: UiSchema = {{{ tile.config.createFormUiSchema }}}
5
5
  {{/if}}
6
- {{#if tile.config.uischema}}
6
+ {{#if tile.config.uischema~}}
7
7
  export const createFormSchema: UiSchema = {{{ tile.config.uischema }}}
8
8
  {{/if}}
@@ -1,9 +1,11 @@
1
+ {{#if tile.config.gridOptions~}}
1
2
  import { GridOptionsConfig } from '@genesislcap/rapid-grid-pro';
3
+ {{/if}}
2
4
  import { getNumberFormatter, getDateFormatter } from '@genesislcap/foundation-utils';
3
- {{#if route.FDC3EventHandlersEnabled}}
5
+ {{#if route.FDC3EventHandlersEnabled~}}
4
6
  import { sendEventOnChannel } from '../../../utils';
5
7
  {{/if}}
6
8
 
7
- {{#if tile.config.gridOptions}}
9
+ {{#if tile.config.gridOptions~}}
8
10
  export const gridOptions: GridOptionsConfig = {{{ tile.config.gridOptions }}}
9
11
  {{/if}}
@@ -1,40 +1,77 @@
1
+ {{#if tile.config.permissions.viewRight~}}
1
2
  import { getUser } from '@genesislcap/foundation-user';
2
3
  import { getViewUpdateRightComponent } from '../../../utils';
3
4
  import ErrorMessage from '../../../components/ErrorMessage/ErrorMessage';
4
- {{#if tile.config.createFormUiSchema}}
5
- import { createFormSchema as createFormSchemaTile } from './{{kebabCase tile.title}}.create.form.schema';
5
+ {{else if tile.config.permissions.updateRight~}}
6
+ import { getUser } from '@genesislcap/foundation-user';
7
+ import { getViewUpdateRightComponent } from '../../../utils';
8
+ import ErrorMessage from '../../../components/ErrorMessage/ErrorMessage';
9
+ {{/if}}
10
+ {{#if tile.config.createFormUiSchema~}}
11
+ import { createFormSchema as createFormSchemaTile } from './{{pascalCase tile.title}}CreateFormSchema';
6
12
  {{/if}}
7
- {{#if tile.config.uischema}}
8
- import { createFormSchema as createFormSchemaTile } from './{{kebabCase tile.title}}.create.form.schema';
13
+ {{#if tile.config.uischema~}}
14
+ import { createFormSchema as createFormSchemaTile } from './{{pascalCase tile.title}}CreateFormSchema';
9
15
  {{/if}}
10
- {{#if tile.config.updateFormUiSchema}}
11
- import { updateFormSchema as updateFormSchemaTile } from './{{kebabCase tile.title}}.update.form.schema';
16
+ {{#if tile.config.updateFormUiSchema~}}
17
+ import { updateFormSchema as updateFormSchemaTile } from './{{pascalCase tile.title}}UpdateFormSchema';
12
18
  {{/if}}
13
- {{#if tile.config.columns}}
14
- import { columnDefs as columnDefsTile } from './{{kebabCase tile.title}}.column.defs';
19
+ {{#if tile.config.columns~}}
20
+ import { columnDefs as columnDefsTile } from './{{pascalCase tile.title}}ColumnDefs';
15
21
  {{/if}}
16
- {{#if tile.config.gridOptions}}
17
- import { gridOptions as gridOptionsTile } from './{{kebabCase tile.title}}.gridOptions';
22
+ {{#if tile.config.gridOptions~}}
23
+ import { GridOptionsConfig } from '@genesislcap/rapid-grid-pro';
24
+ import { gridOptions as gridOptionsTile } from './{{pascalCase tile.title}}GridOptions';
18
25
  {{/if}}
19
- import './{{kebabCase tile.title}}.component.css';
26
+ import './{{pascalCase tile.title}}Component.css';
20
27
 
21
- export const {{pascalCase tile.componentName}} = () => {
22
- const hasUserPermission = (permissionCode) => getViewUpdateRightComponent(getUser(), permissionCode);{{#if tile.config.createFormUiSchema}}
23
- const createFormSchema = createFormSchemaTile;{{/if}}{{#if tile.config.uischema}}
24
- const uischema = createFormSchemaTile;{{/if}}{{#if tile.config.updateFormUiSchema}}
25
- const updateFormSchema = updateFormSchemaTile;{{/if}}{{#if tile.config.columns}}
26
- const columnDefs = columnDefsTile;{{/if}}{{#if tile.config.gridOptions}}
27
- const gridOptions = gridOptionsTile;{{/if}}{{#if tile.config.reqrep}}
28
- const reqrep = { pollingInterval: 5000 };{{/if}}{{#if tile.config.type}}
29
- const chartConfig = { {{#ifEquals tile.config.type 'pie'}}
30
- "radius": 0.75,
31
- "angleField": "value",
32
- "colorField": "groupBy",{{else}}
33
- "xField": "groupBy",
34
- "yField": "value",{{/ifEquals}}
35
- };{{/if}}
28
+ export const {{pascalCase tile.componentName}}: React.FC = () => {
29
+ {{#if tile.config.permissions.viewRight~}}
30
+ const hasUserPermission = (permissionCode: string): boolean => getViewUpdateRightComponent(getUser(), permissionCode);
31
+ {{else if tile.config.permissions.updateRight~}}
32
+ const hasUserPermission = (permissionCode: string): boolean => getViewUpdateRightComponent(getUser(), permissionCode);
33
+ {{/if}}
34
+ {{#if tile.config.createFormUiSchema~}}
35
+ const createFormSchema: typeof createFormSchemaTile = createFormSchemaTile;
36
+ {{/if}}
37
+ {{#if tile.config.uischema~}}
38
+ const uischema: typeof createFormSchemaTile = createFormSchemaTile;
39
+ {{/if}}
40
+ {{#if tile.config.updateFormUiSchema~}}
41
+ const updateFormSchema: typeof updateFormSchemaTile = updateFormSchemaTile;
42
+ {{/if}}
43
+ {{#if tile.config.columns~}}
44
+ const columnDefs: typeof columnDefsTile = columnDefsTile;
45
+ {{/if}}
46
+ {{#if tile.config.gridOptions~}}
47
+ const deferredGridOptions: { onRowClicked: GridOptionsConfig.onRowClicked } = { onRowClicked: gridOptionsTile?.onRowClicked }
48
+ {{/if}}
49
+ {{#if tile.config.reqrep~}}
50
+ const reqrep: { pollingInterval: number } = { pollingInterval: 5000 };
51
+ {{/if}}
52
+ {{#if tile.config.type~}}
53
+ const chartConfig: {
54
+ {{#ifEquals tile.config.type 'pie'~}}
55
+ radius: number;
56
+ angleField: string;
57
+ colorField: string;
58
+ {{else~}}
59
+ xField: string;
60
+ yField: string;
61
+ {{/ifEquals}}
62
+ } = {
63
+ {{#ifEquals tile.config.type 'pie'~}}
64
+ radius: 0.75,
65
+ angleField: 'value',
66
+ colorField: 'groupBy',
67
+ {{else~}}
68
+ xField: 'groupBy',
69
+ yField: 'value',
70
+ {{/ifEquals}}
71
+ };
72
+ {{/if}}
36
73
 
37
74
  return (
38
75
  {{> (lookup tile 'type') tile}}
39
76
  );
40
- };
77
+ };
@@ -1 +1 @@
1
- export * from './{{kebabCase tile.title}}.component.jsx';
1
+ export * from './{{pascalCase tile.title}}Component.tsx';
@@ -1,5 +1,5 @@
1
1
  import { UiSchema } from '@genesislcap/foundation-forms';
2
2
 
3
- {{#if tile.config.updateFormUiSchema}}
3
+ {{#if tile.config.updateFormUiSchema~}}
4
4
  export const updateFormSchema: UiSchema = {{{ tile.config.updateFormUiSchema }}}
5
5
  {{/if}}
@@ -1,52 +1,65 @@
1
- {{#if config.permissions.viewRight}}hasUserPermission('{{config.permissions.viewRight}}') ? ({{/if}}
1
+ {{#if config.permissions.viewRight~}}
2
+ hasUserPermission('{{config.permissions.viewRight}}') ? (
3
+ {{/if}}
2
4
  <entity-management
3
- design-system-prefix="rapid"
4
- enable-row-flashing
5
- enable-cell-flashing
6
- {{#if config.title}}
7
- title="{{ config.title }}"
8
- {{/if}}
9
- resourceName="{{ config.resourceName }}"
10
- {{#if config.createEvent}}
11
- createEvent={hasUserPermission('{{config.permissions.updateRight}}') ? '{{ config.createEvent }}' : undefined}
12
- {{#if config.createFormUiSchema}}
13
- createFormUiSchema={createFormSchema}
14
- {{/if}}
15
- {{/if}}
16
- {{#if config.updateEvent}}
17
- updateEvent={hasUserPermission('{{config.permissions.updateRight}}') ? '{{ config.updateEvent }}' : undefined}
18
- {{#if config.updateFormUiSchema}}
19
- updateFormUiSchema={updateFormSchema}
20
- {{/if}}
21
- {{/if}}
22
- {{#if config.deleteEvent}}
23
- deleteEvent={hasUserPermission('{{config.permissions.updateRight}}') ? '{{ config.deleteEvent }}' : undefined}
24
- {{/if}}
25
- {{#if config.gridOptions}}
26
- gridOptions={gridOptions}
27
- {{/if}}
28
- {{#if config.snapshot}}
29
- datasourceConfig={ isSnapshot: {{ config.snapshot }} }
30
- {{/if}}
31
- {{#if config.reqrep}}
32
- datasourceConfig={reqrep}
33
- {{/if}}
34
- {{#if config.entityName}}
35
- entityLabel="{{ config.entityName }}"
36
- {{/if}}
37
- {{#if config.columns}}
38
- columns={columnDefs}
39
- {{/if}}
40
- {{#if config.modalPosition}}
41
- modal-position="{{ config.modalPosition }}"
42
- {{/if}}
43
- {{#if config.sizeColumnsToFit}}
44
- size-columns-to-fit
45
- {{/if}}
46
- {{#if config.enableSearchBar}}
47
- enable-search-bar
48
- {{/if}}
49
- ></entity-management>{{#if config.permissions.viewRight}}
5
+ design-system-prefix="rapid"
6
+ enable-row-flashing
7
+ enable-cell-flashing
8
+ {{#if config.title~}}
9
+ title="{{ config.title }}"
10
+ {{/if}}
11
+ resourceName="{{ config.resourceName }}"
12
+ {{#if config.createEvent~}}
13
+ {{#if config.permissions.updateRight~}}
14
+ createEvent={hasUserPermission('{{config.permissions.updateRight}}') ? '{{ config.createEvent }}' : undefined}
15
+ {{else~}}
16
+ createEvent="{{ config.updateEvent }}"
17
+ {{/if}}
18
+ {{#if config.createFormUiSchema~}}
19
+ createFormUiSchema={createFormSchema}
20
+ {{/if}}
21
+ {{/if}}
22
+ {{#if config.updateEvent~}}
23
+ {{#if config.permissions.updateRight~}}
24
+ updateEvent={hasUserPermission('{{config.permissions.updateRight}}') ? '{{ config.updateEvent }}' : undefined}
25
+ {{else~}}
26
+ updateEvent="{{ config.updateEvent }}"
27
+ {{/if}}
28
+ {{#if config.updateFormUiSchema~}}
29
+ updateFormUiSchema={updateFormSchema}
30
+ {{/if}}
31
+ {{/if}}
32
+ {{#if config.deleteEvent~}}
33
+ {{#if config.permissions.updateRight~}}
34
+ deleteEvent={hasUserPermission('{{config.permissions.updateRight}}') ? '{{ config.deleteEvent }}' : undefined}
35
+ {{else~}}
36
+ deleteEvent="{{ config.deleteEvent }}"
37
+ {{/if}}
38
+ {{/if}}
39
+ {{#if config.gridOptions~}}
40
+ gridOptions={gridOptions}
41
+ {{/if}}
42
+ {{#if config.snapshot~}}
43
+ datasourceConfig={ isSnapshot: {{ config.snapshot }} }
44
+ {{/if}}
45
+ {{#if config.reqrep~}}
46
+ datasourceConfig={reqrep}
47
+ {{/if}}
48
+ {{#if config.columns~}}
49
+ columns={columnDefs}
50
+ {{/if}}
51
+ {{#if config.modalPosition~}}
52
+ modal-position="{{ config.modalPosition }}"
53
+ {{/if}}
54
+ {{#if config.sizeColumnsToFit~}}
55
+ size-columns-to-fit
56
+ {{/if}}
57
+ {{#if config.enableSearchBar~}}
58
+ enable-search-bar
59
+ {{/if}}
60
+ ></entity-management>
61
+ {{#if config.permissions.viewRight~}}
50
62
  ) : (
51
63
  <ErrorMessage elementType="h3" message="You do not have access to view this component." />
52
- ){{/if}}
64
+ )
65
+ {{/if}}
@@ -1,4 +1,6 @@
1
- {{#if config.permissions.updateRight}}hasUserPermission('{{config.permissions.updateRight}}') ? ({{/if}}
1
+ {{#if config.permissions.updateRight~}}
2
+ hasUserPermission('{{config.permissions.updateRight}}') ? (
3
+ {{/if}}
2
4
  <foundation-form
3
5
  design-system-prefix="rapid"
4
6
  resourceName="{{config.resourceName}}"
@@ -6,7 +8,9 @@
6
8
  uischema={uischema}
7
9
  {{/if}}
8
10
  >
9
- </foundation-form>{{#if config.permissions.updateRight}}
11
+ </foundation-form>
12
+ {{#if config.permissions.updateRight~}}
10
13
  ) : (
11
14
  <ErrorMessage elementType="h3" message="You do not have access to view this component." />
12
- ){{/if}}
15
+ )
16
+ {{/if}}
@@ -1,28 +1,34 @@
1
- {{#if config.permissions.viewRight}}hasUserPermission('{{config.permissions.viewRight}}') ? ({{/if}}
1
+ {{#if config.permissions.viewRight~}}
2
+ hasUserPermission('{{config.permissions.viewRight}}') ? (
3
+ {{/if}}
2
4
  <rapid-grid-pro
3
- header-case-type="capitalCase"{{#if config.useOnlyTemplateCols}}
4
- only-template-col-defs{{/if}}
5
+ header-case-type="capitalCase"
6
+ {{#if config.useOnlyTemplateCols~}}
7
+ only-template-col-defs
8
+ {{/if}}
5
9
  enable-row-flashing
6
10
  enable-cell-flashing
7
11
  >
8
12
  <grid-pro-genesis-datasource
9
13
  resource-name="{{config.resourceName}}"
10
- {{#if config.snapshot}}
14
+ {{#if config.snapshot~}}
11
15
  isSnapshot="{{config.snapshot}}"
12
16
  {{/if}}
13
- {{#if config.reqrep}}
17
+ {{#if config.reqrep~}}
14
18
  datasourceConfig="reqrep"
15
19
  {{/if}}
16
- {{#if config.gridOptions}}
17
- deferredGridOptions=\{{ onRowClicked: gridOptions?.onRowClicked }}
20
+ {{#if config.gridOptions~}}
21
+ deferredGridOptions={deferredGridOptions}
18
22
  {{/if}}
19
23
  ></grid-pro-genesis-datasource>
20
24
  {{#if config.gridOptions}}
21
- {gridOptions?.columnDefs?.map((columnDef, index) => (
25
+ {gridOptionsTile?.columnDefs?.map((columnDef, index) => (
22
26
  <grid-pro-column key={index} definition={columnDef}></grid-pro-column>
23
27
  ))}
24
28
  {{/if}}
25
- </rapid-grid-pro>{{#if config.permissions.viewRight}}
29
+ </rapid-grid-pro>
30
+ {{#if config.permissions.viewRight~}}
26
31
  ) : (
27
32
  <ErrorMessage elementType="h3" message="You do not have access to view this component." />
28
- ){{/if}}
33
+ )
34
+ {{/if}}
@@ -1,10 +1,9 @@
1
1
  import './{{pascalCase route.name}}.css';
2
2
  {{#each route.tiles}}
3
- import { {{pascalCase this.componentName}} } from './{{kebabCase this.title}}-{{this.componentType}}';
3
+ import { {{pascalCase this.componentName}} } from './{{pascalCase this.title}}{{pascalCase this.componentType}}';
4
4
  {{/each}}
5
5
 
6
6
  const {{pascalCase route.name}} = () => {
7
-
8
7
  return (
9
8
  <section className="{{kebabCase route.name}}-page">
10
9
  {{#if route.tiles}}
@@ -1,7 +1,7 @@
1
1
  <rapid-layout-region type="tabs">
2
- {{#each route.tiles}}
3
- <rapid-layout-item title="{{this.title}}">
4
- {{> (lookup . 'type') }}
5
- </rapid-layout-item>
6
- {{/each}}
2
+ {{#each route.tiles}}
3
+ <rapid-layout-item title="{{this.title}}">
4
+ {{> (lookup . 'type') }}
5
+ </rapid-layout-item>
6
+ {{/each}}
7
7
  </rapid-layout-region>
@@ -14,7 +14,7 @@ const getPathByFramework = {
14
14
  route: (clientSrcPath, routeName) => `${clientSrcPath}/${routeName}`,
15
15
  component: (routeDir, routeName) => `${routeDir}/${routeName}.ts`,
16
16
  template: (routeDir, routeName) => `${routeDir}/${routeName}.template.ts`,
17
- style: (routePath, routeName) => `${routePath}/${routeName}.styles.ts`,
17
+ style: (routeDir, routeName) => `${routeDir}/${routeName}.styles.ts`,
18
18
  },
19
19
  [FRAMEWORK_ANGULAR_ALIAS]: {
20
20
  clientSrcPath: `../../client/src/app/pages`,
@@ -22,15 +22,16 @@ const getPathByFramework = {
22
22
  component: (routeDir, routeName) => `${routeDir}/${routeName}.component.ts`,
23
23
  template: (routeDir, routeName) =>
24
24
  `${routeDir}/${routeName}.component.html`,
25
- style: (routePath, routeName) => `${routePath}/${routeName}.component.css`,
25
+ style: (routeDir, routeName) => `${routeDir}/${routeName}.component.css`,
26
26
  },
27
27
  [FRAMEWORK_REACT_ALIAS]: {
28
28
  clientSrcPath: `../../client/src/pages`,
29
- route: (clientSrcPath, routeName) => `${clientSrcPath}/${routeName}`,
29
+ route: (clientSrcPath, routeName, changeCase) =>
30
+ `${clientSrcPath}/${changeCase.pascalCase(routeName)}`,
30
31
  component: (routeDir, routeName, changeCase) =>
31
- `${routeDir}/${changeCase.pascalCase(routeName)}.jsx`,
32
- style: (routePath, routeName, changeCase) =>
33
- `${routePath}/${changeCase.pascalCase(routeName)}.css`,
32
+ `${routeDir}/${changeCase.pascalCase(routeName)}.tsx`,
33
+ style: (routeDir, routeName, changeCase) =>
34
+ `${routeDir}/${changeCase.pascalCase(routeName)}.css`,
34
35
  },
35
36
  };
36
37
 
@@ -44,7 +45,7 @@ const generateRoute = (route, { changeCase, writeFileWithData }, framework) => {
44
45
  } = getPathByFramework[framework];
45
46
  const routeName = changeCase.paramCase(route.name);
46
47
  const sourceTemplateDir = `../${DIR_TEMPLATE_BY_FRAMEWORK[framework]}`;
47
- const routeDir = getRouteDir(clientSrcPath, routeName);
48
+ const routeDir = getRouteDir(clientSrcPath, routeName, changeCase);
48
49
 
49
50
  const filesToWrite = [
50
51
  {
@@ -44,18 +44,32 @@ const getPathByFramework = {
44
44
  },
45
45
  [FRAMEWORK_REACT_ALIAS]: {
46
46
  ...defaultPathGetters,
47
- index: (componentPath) => `${componentPath}/index.jsx`,
47
+ index: (componentPath) => `${componentPath}/index.tsx`,
48
48
  clientSrcPath: `../../client/src/pages`,
49
- route: (clientSrcPath, tile, routeName) =>
50
- `${clientSrcPath}/${routeName}/${tile.name}-${tile.componentType}`,
51
- component: (componentPath, tile) =>
52
- `${componentPath}/${tile.name}.component.jsx`,
53
- style: (componentPath, tile) =>
54
- `${componentPath}/${tile.name}.component.css`,
49
+ route: (clientSrcPath, tile, routeName, changeCase) =>
50
+ `${clientSrcPath}/${changeCase.pascalCase(routeName)}/${changeCase.pascalCase(tile.name)}${changeCase.pascalCase(tile.componentType)}`,
51
+ component: (componentPath, tile, changeCase) =>
52
+ `${componentPath}/${changeCase.pascalCase(tile.name)}Component.tsx`,
53
+ style: (componentPath, tile, changeCase) =>
54
+ `${componentPath}/${changeCase.pascalCase(tile.name)}Component.css`,
55
+ addForm: (componentPath, tile, changeCase) =>
56
+ `${componentPath}/${changeCase.pascalCase(tile.name)}CreateFormSchema.ts`,
57
+ updateForm: (componentPath, tile, changeCase) =>
58
+ `${componentPath}/${changeCase.pascalCase(tile.name)}UpdateFormSchema.ts`,
59
+ columnDefs: (componentPath, tile, changeCase) =>
60
+ `${componentPath}/${changeCase.pascalCase(tile.name)}ColumnDefs.ts`,
61
+ gridOptions: (componentPath, tile, changeCase) =>
62
+ `${componentPath}/${changeCase.pascalCase(tile.name)}GridOptions.ts`,
55
63
  },
56
64
  };
57
65
 
58
- const getFilesToWrite = (tileData, routeName, path, sourceTemplateDir) => {
66
+ const getFilesToWrite = (
67
+ tileData,
68
+ routeName,
69
+ path,
70
+ sourceTemplateDir,
71
+ changeCase,
72
+ ) => {
59
73
  const {
60
74
  clientSrcPath,
61
75
  route: getRouteDir,
@@ -69,7 +83,7 @@ const getFilesToWrite = (tileData, routeName, path, sourceTemplateDir) => {
69
83
  gridOptions: getGridOptionsTarget,
70
84
  } = path;
71
85
 
72
- const routeDir = getRouteDir(clientSrcPath, tileData, routeName);
86
+ const routeDir = getRouteDir(clientSrcPath, tileData, routeName, changeCase);
73
87
 
74
88
  const componentIndexFile = {
75
89
  source: `${sourceTemplateDir}/component/component.index.hbs`,
@@ -78,32 +92,32 @@ const getFilesToWrite = (tileData, routeName, path, sourceTemplateDir) => {
78
92
 
79
93
  const componentFile = {
80
94
  source: `${sourceTemplateDir}/component/component.hbs`,
81
- target: getComponentTarget(routeDir, tileData),
95
+ target: getComponentTarget(routeDir, tileData, changeCase),
82
96
  };
83
97
 
84
98
  const componentStylesFile = {
85
99
  source: `${sourceTemplateDir}/component/component.styles.hbs`,
86
- target: getStyleTarget(routeDir, tileData),
100
+ target: getStyleTarget(routeDir, tileData, changeCase),
87
101
  };
88
102
 
89
103
  const componentAddFormFile = {
90
104
  source: `${sourceTemplateDir}/component/component.create.form.hbs`,
91
- target: getAddFormTarget(routeDir, tileData),
105
+ target: getAddFormTarget(routeDir, tileData, changeCase),
92
106
  };
93
107
 
94
108
  const componentUpdateFormFile = {
95
109
  source: `${sourceTemplateDir}/component/component.update.form.hbs`,
96
- target: getUpdateFormTarget(routeDir, tileData),
110
+ target: getUpdateFormTarget(routeDir, tileData, changeCase),
97
111
  };
98
112
 
99
113
  const componentColumnsFile = {
100
114
  source: `${sourceTemplateDir}/component/component.column.defs.hbs`,
101
- target: getColumnDefsTarget(routeDir, tileData),
115
+ target: getColumnDefsTarget(routeDir, tileData, changeCase),
102
116
  };
103
117
 
104
118
  const componentGridOptionsFile = {
105
119
  source: `${sourceTemplateDir}/component/component.gridOptions.hbs`,
106
- target: getGridOptionsTarget(routeDir, tileData),
120
+ target: getGridOptionsTarget(routeDir, tileData, changeCase),
107
121
  };
108
122
 
109
123
  const filesToWrite = [componentIndexFile, componentFile, componentStylesFile];
@@ -160,13 +174,14 @@ const generateTile = (
160
174
  const routeName = changeCase.paramCase(route.name);
161
175
  const sourceTemplateDir = `../${DIR_TEMPLATE_BY_FRAMEWORK[framework]}`;
162
176
  const { clientSrcPath, route: getRouteDir } = getPathByFramework[framework];
163
- const routeDir = getRouteDir(clientSrcPath, tileData, routeName);
177
+ const routeDir = getRouteDir(clientSrcPath, tileData, routeName, changeCase);
164
178
 
165
179
  const filesToWrite = getFilesToWrite(
166
180
  tileData,
167
181
  routeName,
168
182
  getPathByFramework[framework],
169
183
  sourceTemplateDir,
184
+ changeCase,
170
185
  );
171
186
 
172
187
  makeDirectory(resolve(__dirname, routeDir));
@@ -1,5 +1,5 @@
1
1
  {
2
- "UI": "14.206.4",
3
- "GSF": "8.3.1",
4
- "Auth": "8.3.0"
2
+ "UI": "14.208.3",
3
+ "GSF": "8.4.0",
4
+ "Auth": "8.4.0"
5
5
  }
package/.idea/modules.xml CHANGED
@@ -2,12 +2,12 @@
2
2
  <project version="4">
3
3
  <component name="ProjectModuleManager">
4
4
  <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.main.iml" />
6
- <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-fields/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-fields.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-fields/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-fields.main.iml" />
7
- <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-dao/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-dao.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-dao/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-dao.main.iml" />
8
- <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-view/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-view.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-view/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-view.main.iml" />
9
- <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-hft/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-hft.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-hft/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-hft.main.iml" />
10
- <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-sysdef/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-sysdef.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-sysdef/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-sysdef.main.iml" />
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}.{{appName}}-dictionary-cache.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}.{{appName}}-dictionary-cache.main.iml" />
6
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-fields/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-fields.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-fields/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-fields.main.iml" />
7
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-dao/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-dao.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-dao/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-dao.main.iml" />
8
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-view/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-view.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-view/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-view.main.iml" />
9
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-hft/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-hft.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-hft/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-hft.main.iml" />
10
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-sysdef/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-sysdef.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-sysdef/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-sysdef.main.iml" />
11
11
  </modules>
12
12
  </component>
13
13
  </project>
package/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.31.1](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.31.0...v3.31.1) (2024-10-01)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * automated dependency version update [skip-ci] [PSD-9](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/9) (#353) f3e5550
9
+
10
+ ## [3.31.0](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.2...v3.31.0) (2024-10-01)
11
+
12
+
13
+ ### Features
14
+
15
+ * add unit tests - [FUI-2173](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2173) (#332) a4168f3
16
+ * integrate TypeScript support into react - [FUI-2157](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2157) (#338) ac55e1f
17
+ * product name specified with settings plugin property (#331) 082cea0
18
+ * release 8.4.0 [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) (#352) 8f3144e
19
+ * replaced karma with jest in angular (#348) 805d7ec
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * automated dependency version update [skip-ci] [PSD-9](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/9) (#341) 1d38563
25
+ * automated dependency version update [skip-ci] [PSD-9](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/9) (#342) d255814
26
+ * update --nav-height value - [FUI-2207](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2207) (#345) 83894b1
27
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) d7eab5a
28
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 09ba9a2
29
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) eabf8c7
30
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 5d4f8da
31
+
3
32
  ## [3.30.2](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.1...v3.30.2) (2024-09-13)
4
33
 
5
34
 
@@ -0,0 +1 @@
1
+ module.exports = 'test-file-stub';