@genesislcap/blank-app-seed 3.30.0-prerelease.5 → 3.30.0-prerelease.51

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 (118) hide show
  1. package/.genx/configure.js +5 -0
  2. package/.genx/package.json +1 -1
  3. package/.genx/prompts/api.js +2 -9
  4. package/.genx/prompts/server.js +9 -0
  5. package/.genx/prompts.js +9 -2
  6. package/.genx/static.js +1 -1
  7. package/.genx/templates/angular/component/component.hbs +9 -0
  8. package/.genx/templates/angular/gridLayout.hbs +8 -8
  9. package/.genx/templates/react/chart.hbs +7 -3
  10. package/.genx/templates/react/component/component.column.defs.hbs +4 -2
  11. package/.genx/templates/react/component/component.create.form.hbs +2 -2
  12. package/.genx/templates/react/component/component.gridOptions.hbs +4 -2
  13. package/.genx/templates/react/component/component.hbs +67 -21
  14. package/.genx/templates/react/component/component.index.hbs +1 -1
  15. package/.genx/templates/react/component/component.update.form.hbs +1 -1
  16. package/.genx/templates/react/entityManager.hbs +62 -49
  17. package/.genx/templates/react/form.hbs +7 -3
  18. package/.genx/templates/react/grid.hbs +16 -10
  19. package/.genx/templates/react/gridLayout.hbs +8 -8
  20. package/.genx/templates/react/route.hbs +2 -2
  21. package/.genx/templates/react/tabsLayout.hbs +5 -5
  22. package/.genx/templates/web-components/component/component.hbs +9 -0
  23. package/.genx/templates/web-components/gridLayout.hbs +8 -8
  24. package/.genx/templates/web-components/route.template.hbs +2 -2
  25. package/.genx/utils/deleteGradleWrappers.js +12 -0
  26. package/.genx/utils/formatRouteData.js +10 -0
  27. package/.genx/utils/generateRoute.js +2 -1
  28. package/.genx/utils/generateTile.js +2 -2
  29. package/.genx/utils/getTodosAndComments.js +28 -0
  30. package/.genx/utils/index.js +2 -0
  31. package/.genx/versions.json +3 -3
  32. package/.gitignore +3 -0
  33. package/.idea/modules.xml +6 -6
  34. package/CHANGELOG.md +323 -0
  35. package/README.md +6 -10
  36. package/client-tmp/angular/__mocks__/fileMock.js +1 -0
  37. package/client-tmp/angular/angular.json +0 -29
  38. package/client-tmp/angular/jest.config.js +20 -0
  39. package/client-tmp/angular/package.json +6 -6
  40. package/client-tmp/angular/src/app/layouts/default/default.layout.spec.ts +2 -2
  41. package/client-tmp/angular/src/jest.setup.ts +46 -0
  42. package/client-tmp/angular/tsconfig.app.json +1 -2
  43. package/client-tmp/angular/tsconfig.json +1 -2
  44. package/client-tmp/angular/tsconfig.spec.json +13 -7
  45. package/client-tmp/react/.babelrc +2 -1
  46. package/client-tmp/react/.eslintrc.cjs +1 -0
  47. package/client-tmp/react/README.md +36 -24
  48. package/client-tmp/react/jest.config.ts +15 -0
  49. package/client-tmp/react/lint-css.ts +19 -0
  50. package/client-tmp/react/package.json +35 -13
  51. package/client-tmp/react/public/favicon.ico +0 -0
  52. package/client-tmp/react/public/index.html +13 -0
  53. package/client-tmp/react/src/App.tsx +95 -68
  54. package/client-tmp/react/src/components/ErrorMessage/{ErrorMessage.test.js → ErrorMessage.test.tsx} +18 -20
  55. package/client-tmp/react/src/components/ErrorMessage/{ErrorMessage.jsx → ErrorMessage.tsx} +9 -4
  56. package/client-tmp/react/src/config.ts +2 -16
  57. package/client-tmp/react/src/custom-elements.d.ts +21 -9
  58. package/client-tmp/react/src/environments/environment.prod.ts +8 -0
  59. package/client-tmp/react/src/environments/environment.ts +9 -0
  60. package/client-tmp/react/src/guards/ProtectedGuard.tsx +66 -0
  61. package/client-tmp/react/src/helpers/hasPermissionHelper.tsx +11 -0
  62. package/client-tmp/react/src/helpers/isAuthenticatedHelper.tsx +14 -0
  63. package/client-tmp/react/src/helpers/isConnectedHelper.tsx +16 -0
  64. package/client-tmp/react/src/layouts/blank/BlankLayout.tsx +1 -1
  65. package/client-tmp/react/src/layouts/default/DefaultLayout.tsx +26 -15
  66. package/client-tmp/react/src/main.tsx +21 -5
  67. package/client-tmp/react/src/pages/AuthPage/{AuthPage.test.js → AuthPage.test.tsx} +2 -2
  68. package/client-tmp/react/src/pages/AuthPage/{AuthPage.jsx → AuthPage.tsx} +3 -2
  69. package/client-tmp/react/src/pages/NotFoundPage/NotFoundPage.css +0 -0
  70. package/client-tmp/react/src/pages/NotFoundPage/NotFoundPage.tsx +14 -0
  71. package/client-tmp/react/src/pages/NotPermittedPage/{NotPermittedPage.test.js → NotPermittedPage.test.tsx} +3 -4
  72. package/client-tmp/react/src/pages/NotPermittedPage/NotPermittedPage.tsx +14 -0
  73. package/client-tmp/react/src/pbc/README.md +7 -0
  74. package/client-tmp/react/src/pbc/container.tsx +44 -0
  75. package/client-tmp/react/src/pbc/elementsRenderer.tsx +40 -0
  76. package/client-tmp/react/src/pbc/utils.ts +121 -0
  77. package/client-tmp/react/src/services/store.service.ts +48 -0
  78. package/client-tmp/react/src/share/foundation-login.ts +13 -6
  79. package/client-tmp/react/src/share/genesis-components.ts +49 -23
  80. package/client-tmp/react/src/store/AuthContext.tsx +0 -2
  81. package/client-tmp/react/src/store/RoutesContext.tsx +74 -0
  82. package/client-tmp/react/src/types/LayoutName.ts +3 -0
  83. package/client-tmp/react/src/types/RouteLayouts.ts +3 -1
  84. package/client-tmp/react/src/utils/getLayoutNameByRoute.ts +5 -0
  85. package/client-tmp/react/src/utils/history.ts +4 -2
  86. package/client-tmp/react/src/utils/index.ts +3 -1
  87. package/client-tmp/react/src/utils/layout.ts +11 -0
  88. package/client-tmp/react/test/e2e/fixture.ts +1 -1
  89. package/client-tmp/react/tsconfig.app.json +2 -26
  90. package/client-tmp/react/tsconfig.json +31 -8
  91. package/client-tmp/react/tsconfig.node.json +1 -1
  92. package/client-tmp/react/vite.config.ts +70 -0
  93. package/client-tmp/react/webpack.config.js +103 -0
  94. package/client-tmp/web-components/package.json +10 -8
  95. package/client-tmp/web-components/src/main/main.styles.ts +1 -1
  96. package/client-tmp/web-components/src/utils/index.ts +1 -0
  97. package/client-tmp/web-components/src/utils/layout.ts +11 -0
  98. package/client-tmp/web-components/tsconfig.json +1 -1
  99. package/package.json +1 -1
  100. package/server/build.gradle.kts +1 -0
  101. package/server/gradle.properties +1 -0
  102. package/server/settings.gradle.kts +8 -7
  103. package/settings.gradle.kts +7 -4
  104. package/testData/excel/.gitkeep +0 -0
  105. package/client-tmp/angular/karma.conf.js +0 -9
  106. package/client-tmp/angular/src/app/app.component.spec.ts +0 -23
  107. package/client-tmp/react/env.development.json +0 -3
  108. package/client-tmp/react/jest.config.js +0 -10
  109. package/client-tmp/react/lint-css.js +0 -18
  110. package/client-tmp/react/src/guards/AuthGuard.tsx +0 -32
  111. package/client-tmp/react/src/guards/PermissionsGuard.tsx +0 -37
  112. package/client-tmp/react/src/index.js +0 -17
  113. package/client-tmp/react/src/pages/NotPermittedPage/NotPermittedPage.jsx +0 -13
  114. package/client-tmp/react/src/reportWebVitals.js +0 -13
  115. package/client-tmp/react/vite.config.js +0 -59
  116. /package/client-tmp/react/{jest.setup.js → jest.setup.ts} +0 -0
  117. /package/client-tmp/react/src/{setupTests.js → setupTests.ts} +0 -0
  118. /package/server/{{appName}}-app/src/main/genesis/scripts/{{{appName}}-data-pipelines.kts → {{appName}}-pipelines.kts} +0 -0
@@ -7,6 +7,7 @@ const {
7
7
  getCombinedCsvData,
8
8
  registerPartials,
9
9
  validateRoute,
10
+ deleteGradleWrappers,
10
11
  } = require('./utils');
11
12
 
12
13
  /**
@@ -48,4 +49,8 @@ module.exports = async (data, utils) => {
48
49
  .forEach((entity) => {
49
50
  generateCsv(entity, utils);
50
51
  });
52
+
53
+ if (data.excludeGradleWrapper) {
54
+ deleteGradleWrappers();
55
+ }
51
56
  };
@@ -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.0-prerelease.5",
4
+ "version": "3.30.0-prerelease.51",
5
5
  "license": "Apache-2.0",
6
6
  "scripts": {
7
7
  "lint": "eslint .",
@@ -7,19 +7,12 @@ const ssoIntro = () => console.log(TEXTS.INTRO_API_SSO);
7
7
  module.exports = async (inquirer, prevAns = {}) => {
8
8
  apiHostIntro();
9
9
  const { apiHost = prevAns.apiHost } = await inquirer.prompt([
10
- {
11
- name: 'setApiHost',
12
- type: 'confirm',
13
- message: TEXTS.MESSAGE_API_SET_HOST,
14
- when: !prevAns.apiHost,
15
- default: true,
16
- },
17
10
  {
18
11
  name: 'apiHost',
19
12
  type: 'input',
20
13
  message: TEXTS.MESSAGE_API_HOST,
21
- when: ({ setApiHost }) => setApiHost,
22
- default: prevAns.apiHost || 'ws://localhost/gwf/',
14
+ when: !prevAns.apiHost,
15
+ default: 'ws://localhost:9064',
23
16
  validate: websocketValidator,
24
17
  },
25
18
  ]);
@@ -11,6 +11,7 @@ module.exports = async (inquirer, prevAns = {}) => {
11
11
  applicationVersion = prevAns.applicationVersion,
12
12
  enableDeployPlugin = prevAns.enableDeployPlugin,
13
13
  csv = prevAns.csv,
14
+ excludeGradleWrapper = prevAns.excludeGradleWrapper,
14
15
  } = await inquirer.prompt([
15
16
  {
16
17
  name: 'description',
@@ -41,6 +42,13 @@ module.exports = async (inquirer, prevAns = {}) => {
41
42
  when: prevAns.enableDeployPlugin === undefined,
42
43
  default: prevAns.enableDeployPlugin || false,
43
44
  },
45
+ {
46
+ name: 'excludeGradleWrapper',
47
+ type: 'confirm',
48
+ message: TEXTS.MESSAGE_EXCLUDE_GRADLE_WRAPPER,
49
+ when: prevAns.excludeGradleWrapper === undefined,
50
+ default: prevAns.excludeGradleWrapper || false,
51
+ },
44
52
  {
45
53
  name: 'csv',
46
54
  type: 'input',
@@ -56,5 +64,6 @@ module.exports = async (inquirer, prevAns = {}) => {
56
64
  applicationVersion,
57
65
  enableDeployPlugin,
58
66
  csv: parsecsv(csv),
67
+ excludeGradleWrapper,
59
68
  };
60
69
  };
package/.genx/prompts.js CHANGED
@@ -17,8 +17,14 @@ module.exports = async (inquirer, prevAns = {}) => {
17
17
  License: ${license}`);
18
18
 
19
19
  const { apiHost, enableSSO } = await apiPrompts(inquirer, prevAns);
20
- const { description, groupId, applicationVersion, enableDeployPlugin, csv } =
21
- await genesisServerPrompts(inquirer, prevAns);
20
+ const {
21
+ description,
22
+ groupId,
23
+ applicationVersion,
24
+ enableDeployPlugin,
25
+ csv,
26
+ excludeGradleWrapper,
27
+ } = await genesisServerPrompts(inquirer, prevAns);
22
28
  const { routes, ui, framework } = await uiPrompts(inquirer, prevAns);
23
29
 
24
30
  return {
@@ -32,5 +38,6 @@ module.exports = async (inquirer, prevAns = {}) => {
32
38
  csv,
33
39
  ui,
34
40
  framework,
41
+ excludeGradleWrapper,
35
42
  };
36
43
  };
package/.genx/static.js CHANGED
@@ -67,13 +67,13 @@ const TEXTS = {
67
67
  'You can override the default Genesis server URL used during local developent.',
68
68
  INTRO_API_SSO:
69
69
  'Optionally, you can enable the SSO function, which will redirect to identity provider before starting the application (given we only have one identity provider).',
70
- MESSAGE_API_SET_HOST: 'Set API Host',
71
70
  MESSAGE_API_HOST: 'API Host (with WebSocket prefix and suffix if any)',
72
71
  MESSAGE_API_SSO: 'Init SSO connection before loading application',
73
72
  MESSAGE_SERVER_DESCRIPTION: 'Project Description',
74
73
  MESSAGE_SERVER_GROUP_ID: 'Group Id',
75
74
  MESSAGE_SERVER_APPLICATION_VERSION: 'Application Version',
76
75
  MESSAGE_SERVER_DEPLOY_PLUGIN: 'Enable deploy plugin?',
76
+ MESSAGE_EXCLUDE_GRADLE_WRAPPER: 'Exclude Gradle wrapper?',
77
77
  MESSAGE_SERVER_CSV:
78
78
  'Generate empty CSV for entities? (config in JSON format)',
79
79
  MESSAGE_UI_ROTUES: 'Pages config in JSON format',
@@ -22,6 +22,15 @@ import { columnDefs } from './{{kebabCase tile.title}}.column.defs';
22
22
  import { gridOptions } from './{{kebabCase tile.title}}.gridOptions';
23
23
  {{/if}}
24
24
 
25
+ {{#ifAny tile.metadata.comment tile.metadata.todo}}
26
+ /**
27
+ {{~#if tile.metadata.comment}}{{{ tile.metadata.comment }}}{{/if}}
28
+ {{~#if tile.metadata.todo}}{{#if tile.metadata.comment}}
29
+ *{{/if}}
30
+ * TODO: {{{ tile.metadata.todo }}}{{/if}}
31
+ */
32
+ {{/ifAny}}
33
+
25
34
  @Component({
26
35
  selector: 'app-{{kebabCase tile.componentName}}',
27
36
  templateUrl: './{{kebabCase tile.title}}.component.html',
@@ -2,13 +2,13 @@
2
2
  <rapid-layout-region type="vertical">
3
3
  {{#each route.tiles}}
4
4
  {{#ifEquals @index 0}}
5
- <rapid-layout-item title="{{../title}}">
6
- <app-{{kebabCase ../componentName}}></app-{{kebabCase ../componentName}}>
5
+ <rapid-layout-item title="{{this.title}}">
6
+ <app-{{kebabCase this.componentName}}></app-{{kebabCase this.componentName}}>
7
7
  </rapid-layout-item>
8
8
  {{/ifEquals}}
9
9
  {{#ifEquals @index 1}}
10
- <rapid-layout-item title="{{../title}}">
11
- <app-{{kebabCase ../componentName}}></app-{{kebabCase ../componentName}}>
10
+ <rapid-layout-item title="{{this.title}}">
11
+ <app-{{kebabCase this.componentName}}></app-{{kebabCase this.componentName}}>
12
12
  </rapid-layout-item>
13
13
  {{/ifEquals}}
14
14
  {{/each}}
@@ -16,13 +16,13 @@
16
16
  <rapid-layout-region type="vertical">
17
17
  {{#each route.tiles}}
18
18
  {{#ifEquals @index 2}}
19
- <rapid-layout-item title="{{../title}}">
20
- <app-{{kebabCase ../componentName}}></app-{{kebabCase ../componentName}}>
19
+ <rapid-layout-item title="{{this.title}}">
20
+ <app-{{kebabCase this.componentName}}></app-{{kebabCase this.componentName}}>
21
21
  </rapid-layout-item>
22
22
  {{/ifEquals}}
23
23
  {{#ifEquals @index 3}}
24
- <rapid-layout-item title="{{../title}}">
25
- <app-{{kebabCase ../componentName}}></app-{{kebabCase ../componentName}}>
24
+ <rapid-layout-item title="{{this.title}}">
25
+ <app-{{kebabCase this.componentName}}></app-{{kebabCase this.componentName}}>
26
26
  </rapid-layout-item>
27
27
  {{/ifEquals}}
28
28
  {{/each}}
@@ -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,86 @@
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
+ {{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~}}
5
11
  import { createFormSchema as createFormSchemaTile } from './{{pascalCase tile.title}}CreateFormSchema';
6
12
  {{/if}}
7
- {{#if tile.config.uischema}}
13
+ {{#if tile.config.uischema~}}
8
14
  import { createFormSchema as createFormSchemaTile } from './{{pascalCase tile.title}}CreateFormSchema';
9
15
  {{/if}}
10
- {{#if tile.config.updateFormUiSchema}}
16
+ {{#if tile.config.updateFormUiSchema~}}
11
17
  import { updateFormSchema as updateFormSchemaTile } from './{{pascalCase tile.title}}UpdateFormSchema';
12
18
  {{/if}}
13
- {{#if tile.config.columns}}
19
+ {{#if tile.config.columns~}}
14
20
  import { columnDefs as columnDefsTile } from './{{pascalCase tile.title}}ColumnDefs';
15
21
  {{/if}}
16
- {{#if tile.config.gridOptions}}
22
+ {{#if tile.config.gridOptions~}}
23
+ import { GridOptionsConfig } from '@genesislcap/rapid-grid-pro';
17
24
  import { gridOptions as gridOptionsTile } from './{{pascalCase tile.title}}GridOptions';
18
25
  {{/if}}
19
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
+ {{#ifAny tile.metadata.comment tile.metadata.todo}}
29
+ /**
30
+ {{~#if tile.metadata.comment}}{{{ tile.metadata.comment }}}{{/if}}
31
+ {{~#if tile.metadata.todo}}{{#if tile.metadata.comment}}
32
+ *{{/if}}
33
+ * TODO: {{{ tile.metadata.todo }}}{{/if}}
34
+ */
35
+ {{/ifAny}}
36
+
37
+ export const {{pascalCase tile.componentName}}: React.FC = () => {
38
+ {{#if tile.config.permissions.viewRight~}}
39
+ const hasUserPermission = (permissionCode: string): boolean => getViewUpdateRightComponent(getUser(), permissionCode);
40
+ {{else if tile.config.permissions.updateRight~}}
41
+ const hasUserPermission = (permissionCode: string): boolean => getViewUpdateRightComponent(getUser(), permissionCode);
42
+ {{/if}}
43
+ {{#if tile.config.createFormUiSchema~}}
44
+ const createFormSchema: typeof createFormSchemaTile = createFormSchemaTile;
45
+ {{/if}}
46
+ {{#if tile.config.uischema~}}
47
+ const uischema: typeof createFormSchemaTile = createFormSchemaTile;
48
+ {{/if}}
49
+ {{#if tile.config.updateFormUiSchema~}}
50
+ const updateFormSchema: typeof updateFormSchemaTile = updateFormSchemaTile;
51
+ {{/if}}
52
+ {{#if tile.config.columns~}}
53
+ const columnDefs: typeof columnDefsTile = columnDefsTile;
54
+ {{/if}}
55
+ {{#if tile.config.gridOptions~}}
56
+ const deferredGridOptions: { onRowClicked: GridOptionsConfig.onRowClicked } = { onRowClicked: gridOptionsTile?.onRowClicked }
57
+ {{/if}}
58
+ {{#if tile.config.reqrep~}}
59
+ const reqrep: { pollingInterval: number } = { pollingInterval: 5000 };
60
+ {{/if}}
61
+ {{#if tile.config.type~}}
62
+ const chartConfig: {
63
+ {{#ifEquals tile.config.type 'pie'~}}
64
+ radius: number;
65
+ angleField: string;
66
+ colorField: string;
67
+ {{else~}}
68
+ xField: string;
69
+ yField: string;
70
+ {{/ifEquals}}
71
+ } = {
72
+ {{#ifEquals tile.config.type 'pie'~}}
73
+ radius: 0.75,
74
+ angleField: 'value',
75
+ colorField: 'groupBy',
76
+ {{else~}}
77
+ xField: 'groupBy',
78
+ yField: 'value',
79
+ {{/ifEquals}}
80
+ };
81
+ {{/if}}
36
82
 
37
83
  return (
38
84
  {{> (lookup tile 'type') tile}}
39
85
  );
40
- };
86
+ };
@@ -1 +1 @@
1
- export * from './{{pascalCase 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}}
@@ -2,13 +2,13 @@
2
2
  <rapid-layout-region type="vertical">
3
3
  {{#each route.tiles}}
4
4
  {{#ifEquals @index 0}}
5
- <rapid-layout-item title="{{../title}}">
6
- <{{pascalCase ../componentName}}></{{pascalCase ../componentName}}>
5
+ <rapid-layout-item title="{{this.title}}">
6
+ <{{pascalCase this.componentName}}></{{pascalCase this.componentName}}>
7
7
  </rapid-layout-item>
8
8
  {{/ifEquals}}
9
9
  {{#ifEquals @index 1}}
10
- <rapid-layout-item title="{{../title}}">
11
- <{{pascalCase ../componentName}}></{{pascalCase ../componentName}}>
10
+ <rapid-layout-item title="{{this.title}}">
11
+ <{{pascalCase this.componentName}}></{{pascalCase this.componentName}}>
12
12
  </rapid-layout-item>
13
13
  {{/ifEquals}}
14
14
  {{/each}}
@@ -16,13 +16,13 @@
16
16
  <rapid-layout-region type="vertical">
17
17
  {{#each route.tiles}}
18
18
  {{#ifEquals @index 2}}
19
- <rapid-layout-item title="{{../title}}">
20
- <{{pascalCase ../componentName}}></{{pascalCase ../componentName}}>
19
+ <rapid-layout-item title="{{this.title}}">
20
+ <{{pascalCase this.componentName}}></{{pascalCase this.componentName}}>
21
21
  </rapid-layout-item>
22
22
  {{/ifEquals}}
23
23
  {{#ifEquals @index 3}}
24
- <rapid-layout-item title="{{../title}}">
25
- <{{pascalCase ../componentName}}></{{pascalCase ../componentName}}>
24
+ <rapid-layout-item title="{{this.title}}">
25
+ <{{pascalCase this.componentName}}></{{pascalCase this.componentName}}>
26
26
  </rapid-layout-item>
27
27
  {{/ifEquals}}
28
28
  {{/each}}
@@ -1,14 +1,14 @@
1
1
  import './{{pascalCase route.name}}.css';
2
+ import { persistLayout } from '../../utils';
2
3
  {{#each route.tiles}}
3
4
  import { {{pascalCase this.componentName}} } from './{{pascalCase this.title}}{{pascalCase this.componentType}}';
4
5
  {{/each}}
5
6
 
6
7
  const {{pascalCase route.name}} = () => {
7
-
8
8
  return (
9
9
  <section className="{{kebabCase route.name}}-page">
10
10
  {{#if route.tiles}}
11
- <rapid-layout auto-save-key={process.env.NODE_ENV === 'production' ? "{{route.layoutKey}}" : null}>
11
+ <rapid-layout auto-save-key={persistLayout('{{route.layoutKey}}')}>
12
12
  {{> (lookup ./route 'layoutType') }}
13
13
  </rapid-layout>
14
14
  {{else}}
@@ -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>
@@ -3,6 +3,15 @@ import { customElement, GenesisElement } from '@genesislcap/web-core';
3
3
  import { {{pascalCase tile.title}}Styles as styles } from './{{kebabCase tile.title}}.styles';
4
4
  import { {{pascalCase tile.title}}Template as template } from './{{kebabCase tile.title}}.template';
5
5
 
6
+ {{#ifAny tile.metadata.comment tile.metadata.todo}}
7
+ /**
8
+ {{~#if tile.metadata.comment}}{{{ tile.metadata.comment }}}{{/if}}
9
+ {{~#if tile.metadata.todo}}{{#if tile.metadata.comment}}
10
+ *{{/if}}
11
+ * TODO: {{{ tile.metadata.todo }}}{{/if}}
12
+ */
13
+ {{/ifAny}}
14
+
6
15
  @customElement({
7
16
  name: '{{kebabCase tile.componentName}}',
8
17
  template,