@genesislcap/pbc-reporting-ui 14.396.0 → 14.396.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.
@@ -1,5 +1,5 @@
1
1
  import { Connect } from '@genesislcap/foundation-comms';
2
- import { ExecutionContext, GenesisElement } from '@genesislcap/web-core';
2
+ import { GenesisElement } from '@genesislcap/web-core';
3
3
  import { Genesis } from '../../../types';
4
4
  export declare class BaseConfig extends GenesisElement {
5
5
  connect: Connect;
@@ -9,9 +9,8 @@ export declare class BaseConfig extends GenesisElement {
9
9
  allowedTemplates: Array<Genesis.FileStorageDataRow>;
10
10
  connectedCallback(): Promise<void>;
11
11
  getAllowedTemplates(): Array<Genesis.FileStorageDataRow>;
12
- handleOutputFormatChanged(ctx: ExecutionContext<any, any>): void;
13
12
  handleOutputFormatChange(event: Event): Promise<void>;
14
- handleTemplateSelectChange(selectInput: HTMLSelectElement): void;
13
+ handleTemplateSelectChange(selectInput: HTMLSelectElement): Promise<void>;
15
14
  getFileTemplates(): Promise<void>;
16
15
  }
17
16
  //# sourceMappingURL=base-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-config.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/base-config/base-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAiB,gBAAgB,EAAE,cAAc,EAAc,MAAM,uBAAuB,CAAC;AAEpG,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAMzC,qBAKa,UAAW,SAAQ,cAAc;IACnC,OAAO,EAAG,OAAO,CAAC;IAE3B,qDAAqD;IACzC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7D,4EAA4E;IAChE,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE1D,iBAAiB;IAMvB,mBAAmB,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAaxD,yBAAyB,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC;IAQnD,wBAAwB,CAAC,KAAK,EAAE,KAAK;IAiC3C,0BAA0B,CAAC,WAAW,EAAE,iBAAiB;IAYnD,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAkBxC"}
1
+ {"version":3,"file":"base-config.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/base-config/base-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAiB,cAAc,EAAc,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAMzC,qBAKa,UAAW,SAAQ,cAAc;IACnC,OAAO,EAAG,OAAO,CAAC;IAE3B,qDAAqD;IACzC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7D,4EAA4E;IAChE,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE1D,iBAAiB;IAMvB,mBAAmB,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAalD,wBAAwB,CAAC,KAAK,EAAE,KAAK;IAmCrC,0BAA0B,CAAC,WAAW,EAAE,iBAAiB;IAYzD,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAkBxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-journey-orchestrator.d.ts","sourceRoot":"","sources":["../../../../../src/new/main/edit-config/config-journey-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAExD,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AASpD,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIjF,qBAKa,yBAA0B,SAAQ,8BAE9C;IACU,OAAO,EAAG,OAAO,CAAC;IACrB,IAAI,EAAG,IAAI,CAAC;IAElB,OAAO,CAAC,cAAc,CAAyC;IAE/D,mBAAmB;IAInB,oBAAoB;IASpB,kBAAkB;IAyBZ,iBAAiB;IAyBvB,OAAO,CAAC,YAAY;CASrB"}
1
+ {"version":3,"file":"config-journey-orchestrator.d.ts","sourceRoot":"","sources":["../../../../../src/new/main/edit-config/config-journey-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAExD,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAUpD,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIjF,qBAKa,yBAA0B,SAAQ,8BAE9C;IACU,OAAO,EAAG,OAAO,CAAC;IACrB,IAAI,EAAG,IAAI,CAAC;IAElB,OAAO,CAAC,cAAc,CAAyC;IAE/D,mBAAmB;IAInB,oBAAoB;IASpB,kBAAkB;IASZ,iBAAiB;IAyBvB,OAAO,CAAC,YAAY;CASrB"}
@@ -3,4 +3,5 @@ import type { ReportingConfig } from '../store';
3
3
  import { Result } from '../types';
4
4
  export declare const validateReportingConfig: (connect: Connect) => (config: ReportingConfig) => Promise<Result<undefined, string[]>>;
5
5
  export declare const validateBaseSetup: (config: ReportingConfig) => Result<undefined, string[]>;
6
+ export declare const validateDatasourceConfig: (config: ReportingConfig) => Result<undefined, string[]>;
6
7
  //# sourceMappingURL=validators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../../../src/new/utils/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAUlC,eAAO,MAAM,uBAAuB,GACjC,SAAS,OAAO,MACV,QAAQ,eAAe,KAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAqBnE,CAAC;AAEJ,eAAO,MAAM,iBAAiB,GAAI,QAAQ,eAAe,KAAG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAmBrF,CAAC"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../../../src/new/utils/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAUlC,eAAO,MAAM,uBAAuB,GACjC,SAAS,OAAO,MACV,QAAQ,eAAe,KAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAwBnE,CAAC;AAEJ,eAAO,MAAM,iBAAiB,GAAI,QAAQ,eAAe,KAAG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAmBrF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,QAAQ,eAAe,KAAG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAmB5F,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validators.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.test.d.ts","sourceRoot":"","sources":["../../../../src/new/utils/validators.test.ts"],"names":[],"mappings":""}
@@ -31,17 +31,12 @@ let BaseConfig = class BaseConfig extends GenesisElement {
31
31
  .filter(({ fileExtension }) => allowedFiletypes.includes(fileExtension))
32
32
  .map(({ file }) => file);
33
33
  }
34
- handleOutputFormatChanged(ctx) {
35
- actions.baseConfig.deleteTemplate();
36
- actions.baseConfig.setOutputFormat({
37
- format: ctx.event.target.value,
38
- });
39
- this.allowedTemplates = this.getAllowedTemplates();
40
- }
41
34
  handleOutputFormatChange(event) {
42
35
  return __awaiter(this, void 0, void 0, function* () {
43
36
  const format = event.target.value;
37
+ actions.baseConfig.deleteTemplate();
44
38
  actions.baseConfig.setOutputFormat({ format });
39
+ this.allowedTemplates = this.getAllowedTemplates();
45
40
  const allDatasources = selectors.datasourceConfig.getAllConfigSet();
46
41
  if (format === 'XLSX') {
47
42
  Object.entries(allDatasources).forEach(([dsName, dsConfig]) => {
@@ -70,16 +65,18 @@ let BaseConfig = class BaseConfig extends GenesisElement {
70
65
  });
71
66
  }
72
67
  handleTemplateSelectChange(selectInput) {
73
- const value = selectInput.value;
74
- if (value === NULL_TEMPLATE) {
75
- actions.baseConfig.deleteTemplate();
76
- }
77
- else {
78
- actions.baseConfig.updateState({
79
- key: 'DOCUMENT_TEMPLATE_ID',
80
- value: value,
81
- });
82
- }
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ const value = selectInput.value;
70
+ if (value === NULL_TEMPLATE) {
71
+ actions.baseConfig.deleteTemplate();
72
+ }
73
+ else {
74
+ actions.baseConfig.updateState({
75
+ key: 'DOCUMENT_TEMPLATE_ID',
76
+ value: value,
77
+ });
78
+ }
79
+ });
83
80
  }
84
81
  getFileTemplates() {
85
82
  return __awaiter(this, void 0, void 0, function* () {
@@ -3,8 +3,8 @@ import { Connect } from '@genesislcap/foundation-comms';
3
3
  import { EventEmitter, logger } from '@genesislcap/foundation-events';
4
4
  import { User } from '@genesislcap/foundation-user';
5
5
  import { customElement, GenesisElement } from '@genesislcap/web-core';
6
- import { readReduxState, selectors } from '../../store';
7
- import { showNotificationToast, transformToServerPayload, validateBaseSetup, validateReportingConfig, } from '../../utils';
6
+ import { readReduxState } from '../../store';
7
+ import { showNotificationToast, transformToServerPayload, validateBaseSetup, validateDatasourceConfig, validateReportingConfig, } from '../../utils';
8
8
  import { ReportingEvents } from '../../utils/event-map';
9
9
  import { styles } from './config-journey-orchestrator.styles';
10
10
  import { template } from './config-journey-orchestrator.template';
@@ -25,18 +25,9 @@ let ConfigJourneyOrchestrator = class ConfigJourneyOrchestrator extends EventEmi
25
25
  return true;
26
26
  }
27
27
  validateDatasource() {
28
- // Basic check against a serious issue and no datasources are being returned
29
- // to the front end
30
- if (!(Object.keys(selectors.datasourceConfig.getAllConfigSet()).length > 0)) {
31
- this.displayError(new Error('At least one datasource needs to be configured'), true);
32
- return false;
33
- }
34
- // Check the user hasn't selected multiple datasources with csv but no template
35
- if (selectors.baseConfig.getConfig().OUTPUT_FORMAT === 'CSV' &&
36
- !selectors.baseConfig.getConfig().DOCUMENT_TEMPLATE_ID &&
37
- Object.keys(selectors.datasourceConfig.getAllConfigSet()).length > 1) {
38
- this.displayError(new Error('You cannot select more than one datasource if you are using csv output format, unless you select a template.' +
39
- '\nSelect a template or change output type on the previous step, or remove all but one datasource.'), true);
28
+ const valid = validateDatasourceConfig(readReduxState());
29
+ if (valid.k === 'err') {
30
+ this.displayError(new Error(valid.info.join('\n')), true);
40
31
  return false;
41
32
  }
42
33
  return true;
@@ -14,10 +14,12 @@ export const validateReportingConfig = (connect) => (config) => __awaiter(void 0
14
14
  : [];
15
15
  const baseSetupErrors = validateBaseSetup(config);
16
16
  const baseErr = baseSetupErrors.k === 'err' ? baseSetupErrors.info : [];
17
+ const datasourceErrors = validateDatasourceConfig(config);
18
+ const datasourceErr = datasourceErrors.k === 'err' ? datasourceErrors.info : [];
17
19
  const timezoneErr = config.baseConfig.SCHEDULE && !((_c = config.baseConfig.SCHEDULE) === null || _c === void 0 ? void 0 : _c.TIME_ZONE)
18
20
  ? [`Reporting config timezone unset or invalid.`]
19
21
  : [];
20
- return toResult([].concat(nameErr, baseErr, timezoneErr));
22
+ return toResult([].concat(nameErr, baseErr, datasourceErr, timezoneErr));
21
23
  });
22
24
  export const validateBaseSetup = (config) => {
23
25
  const errors = [];
@@ -35,3 +37,16 @@ export const validateBaseSetup = (config) => {
35
37
  }
36
38
  return toResult(errors);
37
39
  };
40
+ export const validateDatasourceConfig = (config) => {
41
+ const errors = [];
42
+ const datasourceKeys = Object.keys(config.datasourceConfig);
43
+ if (datasourceKeys.length === 0) {
44
+ errors.push('At least one datasource needs to be configured');
45
+ }
46
+ if (config.baseConfig.OUTPUT_FORMAT === 'CSV' &&
47
+ !config.baseConfig.DOCUMENT_TEMPLATE_ID &&
48
+ datasourceKeys.length > 1) {
49
+ errors.push('You cannot select more than one datasource if you are using csv output format, unless you select a template.\nSelect a template or change output type on the previous step, or remove all but one datasource.');
50
+ }
51
+ return toResult(errors);
52
+ };
@@ -0,0 +1,125 @@
1
+ import { assert, suite } from '@genesislcap/foundation-testing';
2
+ import { validateDatasourceConfig } from './validators';
3
+ const ValidateDatasourceConfig = suite('validateDatasourceConfig');
4
+ ValidateDatasourceConfig('returns error when no datasources configured', () => {
5
+ const config = {
6
+ baseConfig: {
7
+ DESTINATION_IDS: [],
8
+ OUTPUT_DIRECTORY: 'test',
9
+ },
10
+ datasourceConfig: {},
11
+ };
12
+ const result = validateDatasourceConfig(config);
13
+ assert.equal(result.k, 'err');
14
+ if (result.k === 'err') {
15
+ assert.ok(result.info.includes('At least one datasource needs to be configured'));
16
+ }
17
+ });
18
+ ValidateDatasourceConfig('returns ok when single datasource configured', () => {
19
+ const config = {
20
+ baseConfig: {
21
+ DESTINATION_IDS: [],
22
+ OUTPUT_DIRECTORY: 'test',
23
+ OUTPUT_FORMAT: 'CSV',
24
+ },
25
+ datasourceConfig: {
26
+ REQ_REP_test: {
27
+ KEY: 'test',
28
+ NAME: 'test',
29
+ INPUT_TYPE: 'REQ_REP',
30
+ OUTPUT_TYPE: 'TABLE',
31
+ TRANSFORMER_CONFIGURATION: {},
32
+ },
33
+ },
34
+ };
35
+ const result = validateDatasourceConfig(config);
36
+ assert.equal(result.k, 'ok');
37
+ });
38
+ ValidateDatasourceConfig('returns ok when multiple datasources and PDF format', () => {
39
+ const config = {
40
+ baseConfig: {
41
+ DESTINATION_IDS: [],
42
+ OUTPUT_DIRECTORY: 'test',
43
+ OUTPUT_FORMAT: 'PDF',
44
+ DOCUMENT_TEMPLATE_ID: 'template1',
45
+ },
46
+ datasourceConfig: {
47
+ REQ_REP_test1: {
48
+ KEY: 'test1',
49
+ NAME: 'test1',
50
+ INPUT_TYPE: 'REQ_REP',
51
+ OUTPUT_TYPE: 'TABLE',
52
+ TRANSFORMER_CONFIGURATION: {},
53
+ },
54
+ REQ_REP_test2: {
55
+ KEY: 'test2',
56
+ NAME: 'test2',
57
+ INPUT_TYPE: 'REQ_REP',
58
+ OUTPUT_TYPE: 'TABLE',
59
+ TRANSFORMER_CONFIGURATION: {},
60
+ },
61
+ },
62
+ };
63
+ const result = validateDatasourceConfig(config);
64
+ assert.equal(result.k, 'ok');
65
+ });
66
+ ValidateDatasourceConfig('returns ok when multiple datasources and CSV format with template', () => {
67
+ const config = {
68
+ baseConfig: {
69
+ DESTINATION_IDS: [],
70
+ OUTPUT_DIRECTORY: 'test',
71
+ OUTPUT_FORMAT: 'CSV',
72
+ DOCUMENT_TEMPLATE_ID: 'template1',
73
+ },
74
+ datasourceConfig: {
75
+ REQ_REP_test1: {
76
+ KEY: 'test1',
77
+ NAME: 'test1',
78
+ INPUT_TYPE: 'REQ_REP',
79
+ OUTPUT_TYPE: 'TABLE',
80
+ TRANSFORMER_CONFIGURATION: {},
81
+ },
82
+ REQ_REP_test2: {
83
+ KEY: 'test2',
84
+ NAME: 'test2',
85
+ INPUT_TYPE: 'REQ_REP',
86
+ OUTPUT_TYPE: 'TABLE',
87
+ TRANSFORMER_CONFIGURATION: {},
88
+ },
89
+ },
90
+ };
91
+ const result = validateDatasourceConfig(config);
92
+ assert.equal(result.k, 'ok');
93
+ });
94
+ ValidateDatasourceConfig('returns error when multiple datasources and CSV format without template', () => {
95
+ const config = {
96
+ baseConfig: {
97
+ DESTINATION_IDS: [],
98
+ OUTPUT_DIRECTORY: 'test',
99
+ OUTPUT_FORMAT: 'CSV',
100
+ DOCUMENT_TEMPLATE_ID: undefined,
101
+ },
102
+ datasourceConfig: {
103
+ REQ_REP_test1: {
104
+ KEY: 'test1',
105
+ NAME: 'test1',
106
+ INPUT_TYPE: 'REQ_REP',
107
+ OUTPUT_TYPE: 'TABLE',
108
+ TRANSFORMER_CONFIGURATION: {},
109
+ },
110
+ REQ_REP_test2: {
111
+ KEY: 'test2',
112
+ NAME: 'test2',
113
+ INPUT_TYPE: 'REQ_REP',
114
+ OUTPUT_TYPE: 'TABLE',
115
+ TRANSFORMER_CONFIGURATION: {},
116
+ },
117
+ },
118
+ };
119
+ const result = validateDatasourceConfig(config);
120
+ assert.equal(result.k, 'err');
121
+ if (result.k === 'err') {
122
+ assert.ok(result.info.some((err) => err.includes('You cannot select more than one datasource')));
123
+ }
124
+ });
125
+ ValidateDatasourceConfig.run();
@@ -1 +1 @@
1
- {"root":["../src/globals.d.ts","../src/index.federated.ts","../src/index.ts","../src/sandbox.ts","../src/typings.d.ts","../src/new/components/components.ts","../src/new/components/clone-report-config-modal/clone-report-config-modal.styles.ts","../src/new/components/clone-report-config-modal/clone-report-config-modal.template.ts","../src/new/components/clone-report-config-modal/clone-report-config-modal.ts","../src/new/components/renderers/data-transform-renderer.ts","../src/new/components/reporting-configurations/reporting-configurations.styles.ts","../src/new/components/reporting-configurations/reporting-configurations.template.ts","../src/new/components/reporting-configurations/reporting-configurations.ts","../src/new/lib/redux-store/index.ts","../src/new/lib/redux-store/state-utils.ts","../src/new/lib/redux-store/store.ts","../src/new/main/index.ts","../src/new/main/main.styles.ts","../src/new/main/main.template.ts","../src/new/main/main.ts","../src/new/main/edit-config/config-journey-orchestrator.styles.ts","../src/new/main/edit-config/config-journey-orchestrator.template.ts","../src/new/main/edit-config/config-journey-orchestrator.ts","../src/new/main/edit-config/base-config/base-config.styles.ts","../src/new/main/edit-config/base-config/base-config.template.ts","../src/new/main/edit-config/base-config/base-config.ts","../src/new/main/edit-config/col-filters/col-filters-grid.helpers.test.ts","../src/new/main/edit-config/col-filters/col-filters-grid.helpers.ts","../src/new/main/edit-config/col-filters/col-filters-grid.styles.ts","../src/new/main/edit-config/col-filters/col-filters-grid.ts","../src/new/main/edit-config/col-filters/col-filters-grid.types.ts","../src/new/main/edit-config/col-filters/col-filters-tutorial.ts","../src/new/main/edit-config/col-filters/col-fitlers-grid.template.ts","../src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.helpers.test.ts","../src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.helpers.ts","../src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.styles.ts","../src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.template.ts","../src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.ts","../src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.types.ts","../src/new/main/edit-config/col-rename-alias/col-rename-alias-tutorial.ts","../src/new/main/edit-config/data-transforms-derived-fields/data-transforms-tutorial.ts","../src/new/main/edit-config/data-transforms-derived-fields/data-transforms.helpers.test.ts","../src/new/main/edit-config/data-transforms-derived-fields/data-transforms.helpers.ts","../src/new/main/edit-config/data-transforms-derived-fields/data-transforms.styles.ts","../src/new/main/edit-config/data-transforms-derived-fields/data-transforms.template.ts","../src/new/main/edit-config/data-transforms-derived-fields/data-transforms.ts","../src/new/main/edit-config/data-transforms-derived-fields/data-transforms.types.ts","../src/new/main/edit-config/data-transforms-derived-fields/format-warning.ts","../src/new/main/edit-config/data-transforms-derived-fields/date-format-modal/date-format-modal.styles.ts","../src/new/main/edit-config/data-transforms-derived-fields/date-format-modal/date-format-modal.template.ts","../src/new/main/edit-config/data-transforms-derived-fields/date-format-modal/date-format-modal.ts","../src/new/main/edit-config/data-transforms-derived-fields/date-format-modal/index.ts","../src/new/main/edit-config/data-transforms-derived-fields/number-format-modal/index.ts","../src/new/main/edit-config/data-transforms-derived-fields/number-format-modal/number-format-modal.styles.ts","../src/new/main/edit-config/data-transforms-derived-fields/number-format-modal/number-format-modal.template.ts","../src/new/main/edit-config/data-transforms-derived-fields/number-format-modal/number-format-modal.ts","../src/new/main/edit-config/datasource-config/datasource-config-container.styles.ts","../src/new/main/edit-config/datasource-config/datasource-config-item.styles.ts","../src/new/main/edit-config/datasource-config/datasource-config-item.template.ts","../src/new/main/edit-config/datasource-config/datasource-config-item.ts","../src/new/main/edit-config/datasource-config/datasources-config-container.helpers.test.ts","../src/new/main/edit-config/datasource-config/datasources-config-container.helpers.ts","../src/new/main/edit-config/datasource-config/datasources-config-container.template.ts","../src/new/main/edit-config/datasource-config/datasources-config-container.ts","../src/new/main/edit-config/datasource-config/types.ts","../src/new/main/edit-config/outputs-config/outputs-config.style.ts","../src/new/main/edit-config/outputs-config/outputs-config.template.ts","../src/new/main/edit-config/outputs-config/outputs-config.ts","../src/new/main/edit-config/row-filters/row-filters-tutorial.styles.ts","../src/new/main/edit-config/row-filters/row-filters-tutorial.template.ts","../src/new/main/edit-config/row-filters/row-filters-tutorial.ts","../src/new/main/edit-config/row-filters/row-filters.helpers.test.ts","../src/new/main/edit-config/row-filters/row-filters.helpers.ts","../src/new/main/edit-config/row-filters/row-filters.styles.ts","../src/new/main/edit-config/row-filters/row-filters.template.ts","../src/new/main/edit-config/row-filters/row-filters.ts","../src/new/main/edit-config/row-filters/row-filters.types.ts","../src/new/main/edit-config/scheduling/scheduling.styles.ts","../src/new/main/edit-config/scheduling/scheduling.template.ts","../src/new/main/edit-config/scheduling/scheduling.ts","../src/new/main/edit-config/shared/datasource-data-base-component.helpers.ts.ts","../src/new/main/edit-config/shared/datasource-data-base-component.test.ts","../src/new/main/edit-config/shared/datasource-data-base-component.ts","../src/new/main/edit-config/shared/datasource-data-base-component.types.ts","../src/new/main/edit-config/shared/index.ts","../src/new/main/edit-config/tabbed-datasource-container/index.ts","../src/new/main/edit-config/tabbed-datasource-container/tabbed-datasource-container.styles.ts","../src/new/main/edit-config/tabbed-datasource-container/tabbed-datasource-container.template.ts","../src/new/main/edit-config/tabbed-datasource-container/tabbed-datasource-container.ts","../src/new/main/edit-config/tabbed-datasource-container/tabbed-datasource-container.types.ts","../src/new/main/generated-reports/generated-reports.styles.ts","../src/new/main/generated-reports/generated-reports.template.ts","../src/new/main/generated-reports/generated-reports.ts","../src/new/main/report-destinations/report-destinations.template.ts","../src/new/main/report-destinations/report-destinations.ts","../src/new/store/index.ts","../src/new/store/store.ts","../src/new/store/types.ts","../src/new/store/slices/base-config.ts","../src/new/store/slices/datasources-config.ts","../src/new/store/slices/index.ts","../src/new/store/slices/types.ts","../src/new/styles/constraints.styles.ts","../src/new/styles/forms.styles.ts","../src/new/styles/index.ts","../src/new/styles/misc.styles.ts","../src/new/types/display.ts","../src/new/types/index.ts","../src/new/types/misc.ts","../src/new/types/redux.ts","../src/new/types/rights.ts","../src/new/utils/date-filter-params.ts","../src/new/utils/endpoint.test.ts","../src/new/utils/endpoint.ts","../src/new/utils/event-map.ts","../src/new/utils/format-utils.ts","../src/new/utils/formatters.ts","../src/new/utils/index.ts","../src/new/utils/notifications.ts","../src/new/utils/renderer.ts","../src/new/utils/rights.ts","../src/new/utils/sorter.ts","../src/new/utils/tooltip.ts","../src/new/utils/transformers.test.ts","../src/new/utils/transformers.ts","../src/new/utils/validators.ts","../src/old/assets/images/index.ts","../src/old/components/rapid-components.ts","../src/old/components/zero-components.ts","../src/old/components/create-edit/create-edit.styles.ts","../src/old/components/create-edit/create-edit.template.ts","../src/old/components/create-edit/create-edit.ts","../src/old/components/create-edit/index.ts","../src/old/components/list/columns.ts","../src/old/components/list/index.ts","../src/old/components/list/list.styles.ts","../src/old/components/list/list.template.ts","../src/old/components/list/list.ts","../src/old/components/preview/columns.ts","../src/old/components/preview/index.ts","../src/old/components/preview/preview.styles.ts","../src/old/components/preview/preview.template.ts","../src/old/components/preview/preview.ts","../src/old/components/renderers/custom-header-component.ts","../src/old/components/renderers/filter-value-renderer.ts","../src/old/components/renderers/row-select.renderer.ts","../src/old/components/select-fields/columns.ts","../src/old/components/select-fields/data.ts","../src/old/components/select-fields/index.ts","../src/old/components/select-fields/select-fields.styles.ts","../src/old/components/select-fields/select-fields.template.ts","../src/old/components/select-fields/select-fields.ts","../src/old/components/select-filters/columns.ts","../src/old/components/select-filters/index.ts","../src/old/components/select-filters/select-filters.styles.ts","../src/old/components/select-filters/select-filters.template.ts","../src/old/components/select-filters/select-filters.ts","../src/old/components/wizard/debug.ts","../src/old/components/wizard/index.ts","../src/old/components/wizard/wizard.styles.ts","../src/old/components/wizard/wizard.template.ts","../src/old/components/wizard/wizard.ts","../src/old/components/wizard/wizard.types.ts","../src/old/components/wizard/steps/filters.ts","../src/old/components/wizard/steps/index.ts","../src/old/components/wizard/steps/name.ts","../src/old/components/wizard/steps/run.ts","../src/old/components/wizard/steps/select.ts","../src/old/config/config.ts","../src/old/config/configure.ts","../src/old/config/index.ts","../src/old/config/templates.ts","../src/old/constants/grid-config.ts","../src/old/layouts/default.ts","../src/old/layouts/index.ts","../src/old/layouts/two-pane-horizontal.ts","../src/old/main/index.ts","../src/old/main/main.styles.ts","../src/old/main/main.template.ts","../src/old/main/main.test.ts","../src/old/main/main.ts","../src/old/main/types.ts","../src/old/styles/colors.ts","../src/old/styles/helpers.ts","../src/old/styles/index.ts","../src/old/styles/normalize.ts","../src/old/styles/styles.ts","../src/old/tags/index.ts","../src/old/tags/tags.ts","../src/old/utils/filterObjectArray.test.ts","../src/old/utils/filterObjectArray.ts","../src/old/utils/getFiltersByType.ts","../src/old/utils/getSelectedFields.ts","../src/old/utils/index.ts","../src/old/utils/logger.ts"],"version":"5.9.2"}
1
+ {"root":["../src/globals.d.ts","../src/index.federated.ts","../src/index.ts","../src/sandbox.ts","../src/typings.d.ts","../src/new/components/components.ts","../src/new/components/clone-report-config-modal/clone-report-config-modal.styles.ts","../src/new/components/clone-report-config-modal/clone-report-config-modal.template.ts","../src/new/components/clone-report-config-modal/clone-report-config-modal.ts","../src/new/components/renderers/data-transform-renderer.ts","../src/new/components/reporting-configurations/reporting-configurations.styles.ts","../src/new/components/reporting-configurations/reporting-configurations.template.ts","../src/new/components/reporting-configurations/reporting-configurations.ts","../src/new/lib/redux-store/index.ts","../src/new/lib/redux-store/state-utils.ts","../src/new/lib/redux-store/store.ts","../src/new/main/index.ts","../src/new/main/main.styles.ts","../src/new/main/main.template.ts","../src/new/main/main.ts","../src/new/main/edit-config/config-journey-orchestrator.styles.ts","../src/new/main/edit-config/config-journey-orchestrator.template.ts","../src/new/main/edit-config/config-journey-orchestrator.ts","../src/new/main/edit-config/base-config/base-config.styles.ts","../src/new/main/edit-config/base-config/base-config.template.ts","../src/new/main/edit-config/base-config/base-config.ts","../src/new/main/edit-config/col-filters/col-filters-grid.helpers.test.ts","../src/new/main/edit-config/col-filters/col-filters-grid.helpers.ts","../src/new/main/edit-config/col-filters/col-filters-grid.styles.ts","../src/new/main/edit-config/col-filters/col-filters-grid.ts","../src/new/main/edit-config/col-filters/col-filters-grid.types.ts","../src/new/main/edit-config/col-filters/col-filters-tutorial.ts","../src/new/main/edit-config/col-filters/col-fitlers-grid.template.ts","../src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.helpers.test.ts","../src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.helpers.ts","../src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.styles.ts","../src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.template.ts","../src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.ts","../src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.types.ts","../src/new/main/edit-config/col-rename-alias/col-rename-alias-tutorial.ts","../src/new/main/edit-config/data-transforms-derived-fields/data-transforms-tutorial.ts","../src/new/main/edit-config/data-transforms-derived-fields/data-transforms.helpers.test.ts","../src/new/main/edit-config/data-transforms-derived-fields/data-transforms.helpers.ts","../src/new/main/edit-config/data-transforms-derived-fields/data-transforms.styles.ts","../src/new/main/edit-config/data-transforms-derived-fields/data-transforms.template.ts","../src/new/main/edit-config/data-transforms-derived-fields/data-transforms.ts","../src/new/main/edit-config/data-transforms-derived-fields/data-transforms.types.ts","../src/new/main/edit-config/data-transforms-derived-fields/format-warning.ts","../src/new/main/edit-config/data-transforms-derived-fields/date-format-modal/date-format-modal.styles.ts","../src/new/main/edit-config/data-transforms-derived-fields/date-format-modal/date-format-modal.template.ts","../src/new/main/edit-config/data-transforms-derived-fields/date-format-modal/date-format-modal.ts","../src/new/main/edit-config/data-transforms-derived-fields/date-format-modal/index.ts","../src/new/main/edit-config/data-transforms-derived-fields/number-format-modal/index.ts","../src/new/main/edit-config/data-transforms-derived-fields/number-format-modal/number-format-modal.styles.ts","../src/new/main/edit-config/data-transforms-derived-fields/number-format-modal/number-format-modal.template.ts","../src/new/main/edit-config/data-transforms-derived-fields/number-format-modal/number-format-modal.ts","../src/new/main/edit-config/datasource-config/datasource-config-container.styles.ts","../src/new/main/edit-config/datasource-config/datasource-config-item.styles.ts","../src/new/main/edit-config/datasource-config/datasource-config-item.template.ts","../src/new/main/edit-config/datasource-config/datasource-config-item.ts","../src/new/main/edit-config/datasource-config/datasources-config-container.helpers.test.ts","../src/new/main/edit-config/datasource-config/datasources-config-container.helpers.ts","../src/new/main/edit-config/datasource-config/datasources-config-container.template.ts","../src/new/main/edit-config/datasource-config/datasources-config-container.ts","../src/new/main/edit-config/datasource-config/types.ts","../src/new/main/edit-config/outputs-config/outputs-config.style.ts","../src/new/main/edit-config/outputs-config/outputs-config.template.ts","../src/new/main/edit-config/outputs-config/outputs-config.ts","../src/new/main/edit-config/row-filters/row-filters-tutorial.styles.ts","../src/new/main/edit-config/row-filters/row-filters-tutorial.template.ts","../src/new/main/edit-config/row-filters/row-filters-tutorial.ts","../src/new/main/edit-config/row-filters/row-filters.helpers.test.ts","../src/new/main/edit-config/row-filters/row-filters.helpers.ts","../src/new/main/edit-config/row-filters/row-filters.styles.ts","../src/new/main/edit-config/row-filters/row-filters.template.ts","../src/new/main/edit-config/row-filters/row-filters.ts","../src/new/main/edit-config/row-filters/row-filters.types.ts","../src/new/main/edit-config/scheduling/scheduling.styles.ts","../src/new/main/edit-config/scheduling/scheduling.template.ts","../src/new/main/edit-config/scheduling/scheduling.ts","../src/new/main/edit-config/shared/datasource-data-base-component.helpers.ts.ts","../src/new/main/edit-config/shared/datasource-data-base-component.test.ts","../src/new/main/edit-config/shared/datasource-data-base-component.ts","../src/new/main/edit-config/shared/datasource-data-base-component.types.ts","../src/new/main/edit-config/shared/index.ts","../src/new/main/edit-config/tabbed-datasource-container/index.ts","../src/new/main/edit-config/tabbed-datasource-container/tabbed-datasource-container.styles.ts","../src/new/main/edit-config/tabbed-datasource-container/tabbed-datasource-container.template.ts","../src/new/main/edit-config/tabbed-datasource-container/tabbed-datasource-container.ts","../src/new/main/edit-config/tabbed-datasource-container/tabbed-datasource-container.types.ts","../src/new/main/generated-reports/generated-reports.styles.ts","../src/new/main/generated-reports/generated-reports.template.ts","../src/new/main/generated-reports/generated-reports.ts","../src/new/main/report-destinations/report-destinations.template.ts","../src/new/main/report-destinations/report-destinations.ts","../src/new/store/index.ts","../src/new/store/store.ts","../src/new/store/types.ts","../src/new/store/slices/base-config.ts","../src/new/store/slices/datasources-config.ts","../src/new/store/slices/index.ts","../src/new/store/slices/types.ts","../src/new/styles/constraints.styles.ts","../src/new/styles/forms.styles.ts","../src/new/styles/index.ts","../src/new/styles/misc.styles.ts","../src/new/types/display.ts","../src/new/types/index.ts","../src/new/types/misc.ts","../src/new/types/redux.ts","../src/new/types/rights.ts","../src/new/utils/date-filter-params.ts","../src/new/utils/endpoint.test.ts","../src/new/utils/endpoint.ts","../src/new/utils/event-map.ts","../src/new/utils/format-utils.ts","../src/new/utils/formatters.ts","../src/new/utils/index.ts","../src/new/utils/notifications.ts","../src/new/utils/renderer.ts","../src/new/utils/rights.ts","../src/new/utils/sorter.ts","../src/new/utils/tooltip.ts","../src/new/utils/transformers.test.ts","../src/new/utils/transformers.ts","../src/new/utils/validators.test.ts","../src/new/utils/validators.ts","../src/old/assets/images/index.ts","../src/old/components/rapid-components.ts","../src/old/components/zero-components.ts","../src/old/components/create-edit/create-edit.styles.ts","../src/old/components/create-edit/create-edit.template.ts","../src/old/components/create-edit/create-edit.ts","../src/old/components/create-edit/index.ts","../src/old/components/list/columns.ts","../src/old/components/list/index.ts","../src/old/components/list/list.styles.ts","../src/old/components/list/list.template.ts","../src/old/components/list/list.ts","../src/old/components/preview/columns.ts","../src/old/components/preview/index.ts","../src/old/components/preview/preview.styles.ts","../src/old/components/preview/preview.template.ts","../src/old/components/preview/preview.ts","../src/old/components/renderers/custom-header-component.ts","../src/old/components/renderers/filter-value-renderer.ts","../src/old/components/renderers/row-select.renderer.ts","../src/old/components/select-fields/columns.ts","../src/old/components/select-fields/data.ts","../src/old/components/select-fields/index.ts","../src/old/components/select-fields/select-fields.styles.ts","../src/old/components/select-fields/select-fields.template.ts","../src/old/components/select-fields/select-fields.ts","../src/old/components/select-filters/columns.ts","../src/old/components/select-filters/index.ts","../src/old/components/select-filters/select-filters.styles.ts","../src/old/components/select-filters/select-filters.template.ts","../src/old/components/select-filters/select-filters.ts","../src/old/components/wizard/debug.ts","../src/old/components/wizard/index.ts","../src/old/components/wizard/wizard.styles.ts","../src/old/components/wizard/wizard.template.ts","../src/old/components/wizard/wizard.ts","../src/old/components/wizard/wizard.types.ts","../src/old/components/wizard/steps/filters.ts","../src/old/components/wizard/steps/index.ts","../src/old/components/wizard/steps/name.ts","../src/old/components/wizard/steps/run.ts","../src/old/components/wizard/steps/select.ts","../src/old/config/config.ts","../src/old/config/configure.ts","../src/old/config/index.ts","../src/old/config/templates.ts","../src/old/constants/grid-config.ts","../src/old/layouts/default.ts","../src/old/layouts/index.ts","../src/old/layouts/two-pane-horizontal.ts","../src/old/main/index.ts","../src/old/main/main.styles.ts","../src/old/main/main.template.ts","../src/old/main/main.test.ts","../src/old/main/main.ts","../src/old/main/types.ts","../src/old/styles/colors.ts","../src/old/styles/helpers.ts","../src/old/styles/index.ts","../src/old/styles/normalize.ts","../src/old/styles/styles.ts","../src/old/tags/index.ts","../src/old/tags/tags.ts","../src/old/utils/filterObjectArray.test.ts","../src/old/utils/filterObjectArray.ts","../src/old/utils/getFiltersByType.ts","../src/old/utils/getSelectedFields.ts","../src/old/utils/index.ts","../src/old/utils/logger.ts"],"version":"5.9.2"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/pbc-reporting-ui",
3
3
  "description": "Genesis PBC Reporting UI",
4
- "version": "14.396.0",
4
+ "version": "14.396.1",
5
5
  "license": "SEE LICENSE IN license.txt",
6
6
  "main": "dist/esm/index.js",
7
7
  "types": "dist/dts/index.d.ts",
@@ -104,21 +104,21 @@
104
104
  "@ag-grid-community/core": "29.2.0"
105
105
  },
106
106
  "dependencies": {
107
- "@genesislcap/foundation-comms": "14.396.0",
108
- "@genesislcap/foundation-entity-management": "14.396.0",
109
- "@genesislcap/foundation-events": "14.396.0",
110
- "@genesislcap/foundation-forms": "14.396.0",
111
- "@genesislcap/foundation-logger": "14.396.0",
112
- "@genesislcap/foundation-notifications": "14.396.0",
113
- "@genesislcap/foundation-ui": "14.396.0",
114
- "@genesislcap/foundation-user": "14.396.0",
115
- "@genesislcap/foundation-utils": "14.396.0",
116
- "@genesislcap/foundation-zero": "14.396.0",
117
- "@genesislcap/foundation-zero-grid-pro": "14.396.0",
118
- "@genesislcap/grid-pro": "14.396.0",
119
- "@genesislcap/rapid-design-system": "14.396.0",
120
- "@genesislcap/rapid-grid-pro": "14.396.0",
121
- "@genesislcap/web-core": "14.396.0",
107
+ "@genesislcap/foundation-comms": "14.396.1",
108
+ "@genesislcap/foundation-entity-management": "14.396.1",
109
+ "@genesislcap/foundation-events": "14.396.1",
110
+ "@genesislcap/foundation-forms": "14.396.1",
111
+ "@genesislcap/foundation-logger": "14.396.1",
112
+ "@genesislcap/foundation-notifications": "14.396.1",
113
+ "@genesislcap/foundation-ui": "14.396.1",
114
+ "@genesislcap/foundation-user": "14.396.1",
115
+ "@genesislcap/foundation-utils": "14.396.1",
116
+ "@genesislcap/foundation-zero": "14.396.1",
117
+ "@genesislcap/foundation-zero-grid-pro": "14.396.1",
118
+ "@genesislcap/grid-pro": "14.396.1",
119
+ "@genesislcap/rapid-design-system": "14.396.1",
120
+ "@genesislcap/rapid-grid-pro": "14.396.1",
121
+ "@genesislcap/web-core": "14.396.1",
122
122
  "@reduxjs/toolkit": "^2.2.5",
123
123
  "@types/node": "^22.10.2",
124
124
  "change-case": "^5.4.3",
@@ -127,11 +127,11 @@
127
127
  "devDependencies": {
128
128
  "@genesiscommunitysuccess/cep-fast-plugin": "^5.0.3",
129
129
  "@genesiscommunitysuccess/custom-elements-lsp": "^5.0.3",
130
- "@genesislcap/eslint-config": "14.396.0",
131
- "@genesislcap/foundation-testing": "14.396.0",
132
- "@genesislcap/genx": "14.396.0",
133
- "@genesislcap/prettier-config": "14.396.0",
134
- "@genesislcap/stylelint-config": "14.396.0",
130
+ "@genesislcap/eslint-config": "14.396.1",
131
+ "@genesislcap/foundation-testing": "14.396.1",
132
+ "@genesislcap/genx": "14.396.1",
133
+ "@genesislcap/prettier-config": "14.396.1",
134
+ "@genesislcap/stylelint-config": "14.396.1",
135
135
  "@types/json-schema": "^7.0.11",
136
136
  "playwright-lighthouse": "^4.0.0",
137
137
  "rimraf": "^5.0.0"
@@ -140,5 +140,5 @@
140
140
  "access": "public"
141
141
  },
142
142
  "customElements": "dist/custom-elements.json",
143
- "gitHead": "43e0fd00aa30590bdcad05ddb3d8aca0d493d020"
143
+ "gitHead": "4a6225102f4b6566bff9ec8a91848d661b528588"
144
144
  }
@@ -1,6 +1,6 @@
1
1
  import { Connect, logger } from '@genesislcap/foundation-comms';
2
2
  import { showNotificationToast } from '@genesislcap/foundation-notifications';
3
- import { customElement, ExecutionContext, GenesisElement, observable } from '@genesislcap/web-core';
3
+ import { customElement, GenesisElement, observable } from '@genesislcap/web-core';
4
4
  import { actions, DatasourceName, ReportOutputTypes, selectors } from '../../../store';
5
5
  import { Genesis } from '../../../types';
6
6
  import { getDatasourceSchema } from '../../../utils';
@@ -40,17 +40,11 @@ export class BaseConfig extends GenesisElement {
40
40
  .map(({ file }) => file);
41
41
  }
42
42
 
43
- handleOutputFormatChanged(ctx: ExecutionContext<any, any>) {
44
- actions.baseConfig.deleteTemplate();
45
- actions.baseConfig.setOutputFormat({
46
- format: (<HTMLSelectElement>ctx.event.target).value as ReportOutputTypes,
47
- });
48
- this.allowedTemplates = this.getAllowedTemplates();
49
- }
50
-
51
43
  async handleOutputFormatChange(event: Event) {
52
44
  const format = (event.target as HTMLSelectElement).value as ReportOutputTypes;
45
+ actions.baseConfig.deleteTemplate();
53
46
  actions.baseConfig.setOutputFormat({ format });
47
+ this.allowedTemplates = this.getAllowedTemplates();
54
48
 
55
49
  const allDatasources = selectors.datasourceConfig.getAllConfigSet();
56
50
 
@@ -81,7 +75,7 @@ export class BaseConfig extends GenesisElement {
81
75
  }
82
76
  }
83
77
 
84
- handleTemplateSelectChange(selectInput: HTMLSelectElement) {
78
+ async handleTemplateSelectChange(selectInput: HTMLSelectElement) {
85
79
  const value = selectInput.value as ReportOutputTypes | typeof NULL_TEMPLATE;
86
80
  if (value === NULL_TEMPLATE) {
87
81
  actions.baseConfig.deleteTemplate();
@@ -2,11 +2,12 @@ import { Connect } from '@genesislcap/foundation-comms';
2
2
  import { EventEmitter, logger } from '@genesislcap/foundation-events';
3
3
  import { User } from '@genesislcap/foundation-user';
4
4
  import { customElement, GenesisElement } from '@genesislcap/web-core';
5
- import { readReduxState, selectors } from '../../store';
5
+ import { readReduxState } from '../../store';
6
6
  import {
7
7
  showNotificationToast,
8
8
  transformToServerPayload,
9
9
  validateBaseSetup,
10
+ validateDatasourceConfig,
10
11
  validateReportingConfig,
11
12
  } from '../../utils';
12
13
  import { ReportingEventDetailMap, ReportingEvents } from '../../utils/event-map';
@@ -40,25 +41,9 @@ export class ConfigJourneyOrchestrator extends EventEmitter<ReportingEventDetail
40
41
  }
41
42
 
42
43
  validateDatasource() {
43
- // Basic check against a serious issue and no datasources are being returned
44
- // to the front end
45
- if (!(Object.keys(selectors.datasourceConfig.getAllConfigSet()).length > 0)) {
46
- this.displayError(new Error('At least one datasource needs to be configured'), true);
47
- return false;
48
- }
49
- // Check the user hasn't selected multiple datasources with csv but no template
50
- if (
51
- selectors.baseConfig.getConfig().OUTPUT_FORMAT === 'CSV' &&
52
- !selectors.baseConfig.getConfig().DOCUMENT_TEMPLATE_ID &&
53
- Object.keys(selectors.datasourceConfig.getAllConfigSet()).length > 1
54
- ) {
55
- this.displayError(
56
- new Error(
57
- 'You cannot select more than one datasource if you are using csv output format, unless you select a template.' +
58
- '\nSelect a template or change output type on the previous step, or remove all but one datasource.',
59
- ),
60
- true,
61
- );
44
+ const valid = validateDatasourceConfig(readReduxState());
45
+ if (valid.k === 'err') {
46
+ this.displayError(new Error(valid.info.join('\n')), true);
62
47
  return false;
63
48
  }
64
49
  return true;
@@ -0,0 +1,151 @@
1
+ import { assert, suite } from '@genesislcap/foundation-testing';
2
+ import { ReportingConfig } from '../store';
3
+ import { validateDatasourceConfig } from './validators';
4
+
5
+ const ValidateDatasourceConfig = suite('validateDatasourceConfig');
6
+
7
+ ValidateDatasourceConfig('returns error when no datasources configured', () => {
8
+ const config: ReportingConfig = {
9
+ baseConfig: {
10
+ DESTINATION_IDS: [],
11
+ OUTPUT_DIRECTORY: 'test',
12
+ },
13
+ datasourceConfig: {},
14
+ };
15
+
16
+ const result = validateDatasourceConfig(config);
17
+
18
+ assert.equal(result.k, 'err');
19
+ if (result.k === 'err') {
20
+ assert.ok(result.info.includes('At least one datasource needs to be configured'));
21
+ }
22
+ });
23
+
24
+ ValidateDatasourceConfig('returns ok when single datasource configured', () => {
25
+ const config: ReportingConfig = {
26
+ baseConfig: {
27
+ DESTINATION_IDS: [],
28
+ OUTPUT_DIRECTORY: 'test',
29
+ OUTPUT_FORMAT: 'CSV',
30
+ },
31
+ datasourceConfig: {
32
+ REQ_REP_test: {
33
+ KEY: 'test',
34
+ NAME: 'test',
35
+ INPUT_TYPE: 'REQ_REP',
36
+ OUTPUT_TYPE: 'TABLE',
37
+ TRANSFORMER_CONFIGURATION: {},
38
+ },
39
+ },
40
+ };
41
+
42
+ const result = validateDatasourceConfig(config);
43
+
44
+ assert.equal(result.k, 'ok');
45
+ });
46
+
47
+ ValidateDatasourceConfig('returns ok when multiple datasources and PDF format', () => {
48
+ const config: ReportingConfig = {
49
+ baseConfig: {
50
+ DESTINATION_IDS: [],
51
+ OUTPUT_DIRECTORY: 'test',
52
+ OUTPUT_FORMAT: 'PDF',
53
+ DOCUMENT_TEMPLATE_ID: 'template1',
54
+ },
55
+ datasourceConfig: {
56
+ REQ_REP_test1: {
57
+ KEY: 'test1',
58
+ NAME: 'test1',
59
+ INPUT_TYPE: 'REQ_REP',
60
+ OUTPUT_TYPE: 'TABLE',
61
+ TRANSFORMER_CONFIGURATION: {},
62
+ },
63
+ REQ_REP_test2: {
64
+ KEY: 'test2',
65
+ NAME: 'test2',
66
+ INPUT_TYPE: 'REQ_REP',
67
+ OUTPUT_TYPE: 'TABLE',
68
+ TRANSFORMER_CONFIGURATION: {},
69
+ },
70
+ },
71
+ };
72
+
73
+ const result = validateDatasourceConfig(config);
74
+
75
+ assert.equal(result.k, 'ok');
76
+ });
77
+
78
+ ValidateDatasourceConfig(
79
+ 'returns ok when multiple datasources and CSV format with template',
80
+ () => {
81
+ const config: ReportingConfig = {
82
+ baseConfig: {
83
+ DESTINATION_IDS: [],
84
+ OUTPUT_DIRECTORY: 'test',
85
+ OUTPUT_FORMAT: 'CSV',
86
+ DOCUMENT_TEMPLATE_ID: 'template1',
87
+ },
88
+ datasourceConfig: {
89
+ REQ_REP_test1: {
90
+ KEY: 'test1',
91
+ NAME: 'test1',
92
+ INPUT_TYPE: 'REQ_REP',
93
+ OUTPUT_TYPE: 'TABLE',
94
+ TRANSFORMER_CONFIGURATION: {},
95
+ },
96
+ REQ_REP_test2: {
97
+ KEY: 'test2',
98
+ NAME: 'test2',
99
+ INPUT_TYPE: 'REQ_REP',
100
+ OUTPUT_TYPE: 'TABLE',
101
+ TRANSFORMER_CONFIGURATION: {},
102
+ },
103
+ },
104
+ };
105
+
106
+ const result = validateDatasourceConfig(config);
107
+
108
+ assert.equal(result.k, 'ok');
109
+ },
110
+ );
111
+
112
+ ValidateDatasourceConfig(
113
+ 'returns error when multiple datasources and CSV format without template',
114
+ () => {
115
+ const config: ReportingConfig = {
116
+ baseConfig: {
117
+ DESTINATION_IDS: [],
118
+ OUTPUT_DIRECTORY: 'test',
119
+ OUTPUT_FORMAT: 'CSV',
120
+ DOCUMENT_TEMPLATE_ID: undefined,
121
+ },
122
+ datasourceConfig: {
123
+ REQ_REP_test1: {
124
+ KEY: 'test1',
125
+ NAME: 'test1',
126
+ INPUT_TYPE: 'REQ_REP',
127
+ OUTPUT_TYPE: 'TABLE',
128
+ TRANSFORMER_CONFIGURATION: {},
129
+ },
130
+ REQ_REP_test2: {
131
+ KEY: 'test2',
132
+ NAME: 'test2',
133
+ INPUT_TYPE: 'REQ_REP',
134
+ OUTPUT_TYPE: 'TABLE',
135
+ TRANSFORMER_CONFIGURATION: {},
136
+ },
137
+ },
138
+ };
139
+
140
+ const result = validateDatasourceConfig(config);
141
+
142
+ assert.equal(result.k, 'err');
143
+ if (result.k === 'err') {
144
+ assert.ok(
145
+ result.info.some((err) => err.includes('You cannot select more than one datasource')),
146
+ );
147
+ }
148
+ },
149
+ );
150
+
151
+ ValidateDatasourceConfig.run();
@@ -27,12 +27,15 @@ export const validateReportingConfig =
27
27
  const baseSetupErrors = validateBaseSetup(config);
28
28
  const baseErr = baseSetupErrors.k === 'err' ? baseSetupErrors.info : [];
29
29
 
30
+ const datasourceErrors = validateDatasourceConfig(config);
31
+ const datasourceErr = datasourceErrors.k === 'err' ? datasourceErrors.info : [];
32
+
30
33
  const timezoneErr =
31
34
  config.baseConfig.SCHEDULE && !config.baseConfig.SCHEDULE?.TIME_ZONE
32
35
  ? [`Reporting config timezone unset or invalid.`]
33
36
  : [];
34
37
 
35
- return toResult([].concat(nameErr, baseErr, timezoneErr));
38
+ return toResult([].concat(nameErr, baseErr, datasourceErr, timezoneErr));
36
39
  };
37
40
 
38
41
  export const validateBaseSetup = (config: ReportingConfig): Result<undefined, string[]> => {
@@ -55,3 +58,24 @@ export const validateBaseSetup = (config: ReportingConfig): Result<undefined, st
55
58
 
56
59
  return toResult(errors);
57
60
  };
61
+
62
+ export const validateDatasourceConfig = (config: ReportingConfig): Result<undefined, string[]> => {
63
+ const errors: string[] = [];
64
+ const datasourceKeys = Object.keys(config.datasourceConfig);
65
+
66
+ if (datasourceKeys.length === 0) {
67
+ errors.push('At least one datasource needs to be configured');
68
+ }
69
+
70
+ if (
71
+ config.baseConfig.OUTPUT_FORMAT === 'CSV' &&
72
+ !config.baseConfig.DOCUMENT_TEMPLATE_ID &&
73
+ datasourceKeys.length > 1
74
+ ) {
75
+ errors.push(
76
+ 'You cannot select more than one datasource if you are using csv output format, unless you select a template.\nSelect a template or change output type on the previous step, or remove all but one datasource.',
77
+ );
78
+ }
79
+
80
+ return toResult(errors);
81
+ };