@genesislcap/pbc-reporting-ui 1.0.398 → 1.0.400

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 (47) hide show
  1. package/dist/dts/new/components/reporting-configurations/reporting-configurations.styles.d.ts.map +1 -1
  2. package/dist/dts/new/main/edit-config/base-config/base-config.d.ts +1 -0
  3. package/dist/dts/new/main/edit-config/base-config/base-config.d.ts.map +1 -1
  4. package/dist/dts/new/main/edit-config/base-config/base-config.styles.d.ts.map +1 -1
  5. package/dist/dts/new/main/edit-config/base-config/base-config.template.d.ts +2 -0
  6. package/dist/dts/new/main/edit-config/base-config/base-config.template.d.ts.map +1 -1
  7. package/dist/dts/new/main/edit-config/col-filters/col-filters-tutorial.d.ts +4 -0
  8. package/dist/dts/new/main/edit-config/col-filters/col-filters-tutorial.d.ts.map +1 -0
  9. package/dist/dts/new/main/edit-config/col-rename-alias/col-rename-alias-tutorial.d.ts +4 -0
  10. package/dist/dts/new/main/edit-config/col-rename-alias/col-rename-alias-tutorial.d.ts.map +1 -0
  11. package/dist/dts/new/main/edit-config/config-journey-orchestrator.template.d.ts.map +1 -1
  12. package/dist/dts/new/main/edit-config/datasource-config/datasources-config-container.template.d.ts.map +1 -1
  13. package/dist/dts/new/main/edit-config/outputs-config/outputs-config.template.d.ts.map +1 -1
  14. package/dist/dts/new/main/edit-config/scheduling/scheduling.template.d.ts.map +1 -1
  15. package/dist/dts/new/main/generated-reports/generated-reports.d.ts +9 -0
  16. package/dist/dts/new/main/generated-reports/generated-reports.d.ts.map +1 -1
  17. package/dist/dts/new/main/generated-reports/generated-reports.styles.d.ts.map +1 -1
  18. package/dist/dts/new/main/generated-reports/generated-reports.template.d.ts.map +1 -1
  19. package/dist/dts/new/styles/forms.styles.d.ts.map +1 -1
  20. package/dist/dts/new/utils/index.d.ts +1 -0
  21. package/dist/dts/new/utils/index.d.ts.map +1 -1
  22. package/dist/dts/new/utils/tooltip.d.ts +15 -0
  23. package/dist/dts/new/utils/tooltip.d.ts.map +1 -0
  24. package/dist/dts/new/utils/validators.d.ts.map +1 -1
  25. package/dist/esm/new/components/reporting-configurations/reporting-configurations.styles.js +4 -0
  26. package/dist/esm/new/main/edit-config/base-config/base-config.js +19 -3
  27. package/dist/esm/new/main/edit-config/base-config/base-config.styles.js +2 -1
  28. package/dist/esm/new/main/edit-config/base-config/base-config.template.js +23 -11
  29. package/dist/esm/new/main/edit-config/col-filters/col-filters-grid.styles.js +1 -1
  30. package/dist/esm/new/main/edit-config/col-filters/col-filters-tutorial.js +25 -0
  31. package/dist/esm/new/main/edit-config/col-rename-alias/col-rename-alias-grid.styles.js +1 -1
  32. package/dist/esm/new/main/edit-config/col-rename-alias/col-rename-alias-tutorial.js +35 -0
  33. package/dist/esm/new/main/edit-config/config-journey-orchestrator.template.js +15 -3
  34. package/dist/esm/new/main/edit-config/datasource-config/datasource-config-item.template.js +3 -3
  35. package/dist/esm/new/main/edit-config/datasource-config/datasources-config-container.helpers.js +1 -1
  36. package/dist/esm/new/main/edit-config/datasource-config/datasources-config-container.template.js +6 -1
  37. package/dist/esm/new/main/edit-config/outputs-config/outputs-config.template.js +2 -3
  38. package/dist/esm/new/main/edit-config/row-filters/row-filters.styles.js +1 -1
  39. package/dist/esm/new/main/edit-config/scheduling/scheduling.template.js +4 -13
  40. package/dist/esm/new/main/generated-reports/generated-reports.js +62 -1
  41. package/dist/esm/new/main/generated-reports/generated-reports.styles.js +5 -0
  42. package/dist/esm/new/main/generated-reports/generated-reports.template.js +8 -0
  43. package/dist/esm/new/styles/forms.styles.js +2 -0
  44. package/dist/esm/new/utils/index.js +1 -0
  45. package/dist/esm/new/utils/tooltip.js +62 -0
  46. package/dist/esm/new/utils/validators.js +8 -11
  47. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"reporting-configurations.styles.d.ts","sourceRoot":"","sources":["../../../../../src/new/components/reporting-configurations/reporting-configurations.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,4BAA4B,iDA8BxC,CAAC"}
1
+ {"version":3,"file":"reporting-configurations.styles.d.ts","sourceRoot":"","sources":["../../../../../src/new/components/reporting-configurations/reporting-configurations.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,4BAA4B,iDAkCxC,CAAC"}
@@ -4,6 +4,7 @@ import { Genesis } from '../../../types';
4
4
  export declare class BaseConfig extends GenesisElement {
5
5
  connect: Connect;
6
6
  fileTemplates: Array<Genesis.FileStorageDataRow>;
7
+ get allowedTemplates(): Array<Genesis.FileStorageDataRow>;
7
8
  connectedCallback(): void;
8
9
  handleTemplateSelectChange(selectInput: HTMLSelectElement): void;
9
10
  getFileTemplates(): Promise<void>;
@@ -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,cAAc,EAAc,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAIzC,qBAKa,UAAW,SAAQ,cAAc;IACnC,OAAO,EAAG,OAAO,CAAC;IAEf,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE7D,iBAAiB;IAKjB,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,EAAwB,MAAM,uBAAuB,CAAC;AAE5F,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAIzC,qBAKa,UAAW,SAAQ,cAAc;IACnC,OAAO,EAAG,OAAO,CAAC;IAEf,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE7D,IACI,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAWxD;IAED,iBAAiB;IAKjB,0BAA0B,CAAC,WAAW,EAAE,iBAAiB;IAYnD,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAkBxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-config.styles.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/base-config/base-config.styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,iDAgBlB,CAAC"}
1
+ {"version":3,"file":"base-config.styles.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/base-config/base-config.styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,iDAiBlB,CAAC"}
@@ -1,4 +1,6 @@
1
+ import { ReportOutputTypes } from '../../../store';
1
2
  import { BaseConfig } from './base-config';
2
3
  export declare const NULL_TEMPLATE = "Select a template";
4
+ export declare const allowedTemplateFiletypes: Record<ReportOutputTypes, string[]>;
3
5
  export declare const template: import("@microsoft/fast-element").ViewTemplate<BaseConfig, any>;
4
6
  //# sourceMappingURL=base-config.template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-config.template.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/base-config/base-config.template.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,eAAO,MAAM,aAAa,sBAAsB,CAAC;AA6CjD,eAAO,MAAM,QAAQ,iEAqEpB,CAAC"}
1
+ {"version":3,"file":"base-config.template.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/base-config/base-config.template.ts"],"names":[],"mappings":"AACA,OAAO,EAAgC,iBAAiB,EAAa,MAAM,gBAAgB,CAAC;AAG5F,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,eAAO,MAAM,aAAa,sBAAsB,CAAC;AAEjD,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAIxE,CAAC;AA+CF,eAAO,MAAM,QAAQ,iEA0EpB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { GenesisElement } from '@genesislcap/web-core';
2
+ export declare class ColFiltersTutorial extends GenesisElement {
3
+ }
4
+ //# sourceMappingURL=col-filters-tutorial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"col-filters-tutorial.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/col-filters/col-filters-tutorial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAAQ,MAAM,uBAAuB,CAAC;AAE5E,qBAkBa,kBAAmB,SAAQ,cAAc;CAAG"}
@@ -0,0 +1,4 @@
1
+ import { GenesisElement } from '@genesislcap/web-core';
2
+ export declare class ColRenamesAliasesTutorial extends GenesisElement {
3
+ }
4
+ //# sourceMappingURL=col-rename-alias-tutorial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"col-rename-alias-tutorial.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/col-rename-alias/col-rename-alias-tutorial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAAkB,MAAM,uBAAuB,CAAC;AAGtF,qBA+Ba,yBAA0B,SAAQ,cAAc;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-journey-orchestrator.template.d.ts","sourceRoot":"","sources":["../../../../../src/new/main/edit-config/config-journey-orchestrator.template.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAiB1E,eAAO,MAAM,QAAQ,gFAuFpB,CAAC"}
1
+ {"version":3,"file":"config-journey-orchestrator.template.d.ts","sourceRoot":"","sources":["../../../../../src/new/main/edit-config/config-journey-orchestrator.template.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAmB1E,eAAO,MAAM,QAAQ,gFAgGpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"datasources-config-container.template.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/datasource-config/datasources-config-container.template.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAwCjF,eAAO,MAAM,QAAQ,iFAUpB,CAAC"}
1
+ {"version":3,"file":"datasources-config-container.template.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/datasource-config/datasources-config-container.template.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AA6CjF,eAAO,MAAM,QAAQ,iFAUpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"outputs-config.template.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/outputs-config/outputs-config.template.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;CACzB,CAAC;AA0BF,eAAO,MAAM,QAAQ,oEAUpB,CAAC"}
1
+ {"version":3,"file":"outputs-config.template.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/outputs-config/outputs-config.template.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;CACzB,CAAC;AAwBF,eAAO,MAAM,QAAQ,oEAUpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"scheduling.template.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/scheduling/scheduling.template.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,eAAO,MAAM,QAAQ,iEA2FpB,CAAC"}
1
+ {"version":3,"file":"scheduling.template.d.ts","sourceRoot":"","sources":["../../../../../../src/new/main/edit-config/scheduling/scheduling.template.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,eAAO,MAAM,QAAQ,iEAiFpB,CAAC"}
@@ -1,16 +1,25 @@
1
1
  import { ColDef } from '@ag-grid-community/core';
2
2
  import { Connect } from '@genesislcap/foundation-comms';
3
+ import { SelectedOption } from '@genesislcap/foundation-ui';
3
4
  import { GridOptionsConfig, GridProGenesisDatasource } from '@genesislcap/rapid-grid-pro';
4
5
  import { GenesisElement } from '@genesislcap/web-core';
5
6
  export declare class GeneratedReports extends GenesisElement {
6
7
  connect: Connect;
7
8
  generatedReportsDatasource: GridProGenesisDatasource;
8
9
  generatedReportId: string | null;
10
+ gridCriteria: string;
11
+ searchBarConfig: {
12
+ field: string;
13
+ label: (searchTerm: any) => string;
14
+ createCriteria: <T extends string = string>(type: T, term: string) => string;
15
+ isEnabled: (searchTerm: any, selectedOption: any) => boolean;
16
+ }[];
9
17
  getColor: (result: string) => "var(--error-color)" | "var(--success-color)" | "var(--warning-color)" | "yellow";
10
18
  getStatusRenderer: (value: any) => string;
11
19
  getColumnDefs(): ColDef<any>[];
12
20
  getGridOptions(): GridOptionsConfig;
13
21
  private downloadReport;
14
22
  private deleteReport;
23
+ searchChanged(event: CustomEvent<Array<SelectedOption>>): void;
15
24
  }
16
25
  //# sourceMappingURL=generated-reports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generated-reports.d.ts","sourceRoot":"","sources":["../../../../../src/new/main/generated-reports/generated-reports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAuB,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAU,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAiB,cAAc,EAAQ,MAAM,uBAAuB,CAAC;AAS5E,qBAKa,gBAAiB,SAAQ,cAAc;IACzC,OAAO,EAAE,OAAO,CAAC;IAC1B,0BAA0B,EAAE,wBAAwB,CAAC;IACrD,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC,QAAQ,WAAY,MAAM,uFAYxB;IAEF,iBAAiB,yBAEf;IAEF,aAAa;IAmEb,cAAc;YA6BA,cAAc;YAkCd,YAAY;CA6B3B"}
1
+ {"version":3,"file":"generated-reports.d.ts","sourceRoot":"","sources":["../../../../../src/new/main/generated-reports/generated-reports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAuB,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAU,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAwC,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAiB,cAAc,EAAoB,MAAM,uBAAuB,CAAC;AASxF,qBAKa,gBAAiB,SAAQ,cAAc;IACzC,OAAO,EAAE,OAAO,CAAC;IAC1B,0BAA0B,EAAE,wBAAwB,CAAC;IACrD,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,CAAM;IAE/B,eAAe;;;;;QAgCpB;IAEF,QAAQ,WAAY,MAAM,uFAYxB;IAEF,iBAAiB,yBAEf;IAEF,aAAa;IA+Eb,cAAc;YA6BA,cAAc;YAkCd,YAAY;IA8B1B,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;CAgBxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"generated-reports.styles.d.ts","sourceRoot":"","sources":["../../../../../src/new/main/generated-reports/generated-reports.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,iDAOlC,CAAC"}
1
+ {"version":3,"file":"generated-reports.styles.d.ts","sourceRoot":"","sources":["../../../../../src/new/main/generated-reports/generated-reports.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,iDAYlC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generated-reports.template.d.ts","sourceRoot":"","sources":["../../../../../src/new/main/generated-reports/generated-reports.template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,eAAO,MAAM,wBAAwB,uEASpC,CAAC"}
1
+ {"version":3,"file":"generated-reports.template.d.ts","sourceRoot":"","sources":["../../../../../src/new/main/generated-reports/generated-reports.template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,eAAO,MAAM,wBAAwB,uEAgBpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"forms.styles.d.ts","sourceRoot":"","sources":["../../../../src/new/styles/forms.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,cAAc,MAAM,oDAuBnD,CAAC;AAEF,eAAO,MAAM,SAAS,iDAQrB,CAAC"}
1
+ {"version":3,"file":"forms.styles.d.ts","sourceRoot":"","sources":["../../../../src/new/styles/forms.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,cAAc,MAAM,oDAuBnD,CAAC;AAEF,eAAO,MAAM,SAAS,iDAUrB,CAAC"}
@@ -2,6 +2,7 @@ export * from './endpoint';
2
2
  export * from './formatters';
3
3
  export * from './notifications';
4
4
  export * from './renderer';
5
+ export * from './tooltip';
5
6
  export * from './transformers';
6
7
  export * from './validators';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/new/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/new/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,15 @@
1
+ export declare const tooltip: (text: string, icon?: string) => import("@microsoft/fast-element").ViewTemplate<any, any>;
2
+ export declare const requiredTooltip: import("@microsoft/fast-element").ViewTemplate<any, any>;
3
+ export declare namespace TOOLTIP {
4
+ const SETUP_NAME = "\n <h3>Report name</h3>\n <p>Configure the name of your report which is used to identify your report.</p>\n <p>This must be unique.</p>\n";
5
+ const SETUP_FILENAME = "\n <h3>File name</h3>\n <p>This is the filename for the generated report every time this report configuration is ran, manually or via schedule.</p>\n <p>The file extension is added automatically and shouldn't be added here.</p>\n";
6
+ const SETUP_DIRECTORY = "\n <h3>Output directory</h3>\n <p>This is the filepath that the generated file will be stored at.</p>\n <p>This applies to looking at the generated reports inside of the Document Management PBC.</p>\n";
7
+ const SETUP_DESCRIPTION = "\n <h3>Description</h3>\n <p>Here you can set a description for this reporting config.</p>\n <p>You could use this to write a summary of the generated report for future reference.</p>\n";
8
+ const SETUP_FILE_TYPE = "\n <h3>File type</h3>\n <p>Here you can choose the filetype generated for your report, automatically setting the file extension. You can choose between CSV, XLSX, and PDF; they each differ in functionality.</p>\n <ul>\n <li><strong>CSV</strong>: Allows you to generate a simple report consisting of a single datasource to a simple csv file where every column corresponds to a field from the datasource.</li>\n <li><strong>XLSX</strong>: Allows you to generate a simple xlxs workbook, consisting of one or many datasources where each datasource creates a sheet similar to the CSV option. When using XLXS you may optionally select a <code>xls</code> or <code>xlxs</code> template that you've uploaded to the document manager PBC to have more control over the generated report.</li>\n <li><strong>PDF</strong>: Allows you to generate a PDF file, consisting of one or many datasources. When using PDF you must select a <code>html</code> or <code>xhtml</code> template that you've uploaded to the document manager PBC to define how the output report is generated.</li>\n </ul>\n <p>If you currently have more than one datasource selected in the \"Add Datasources\" step then you cannot select CSV output here, please delete all but one datasource to do that.</p>\n";
9
+ const DATASOURCES_NAME = "\n <h3>Datasource name</h3>\n <p>Allows you to set a name for the datasource which you'll use to refer to the datasource in the template file.</p>\n";
10
+ const DATASOURCES_TYPE = "\n <h3>Datasource type</h3>\n <p>Configures the method by which the server constructs the report configuration. Currently only TABLE is supported, which means the entire datasource is loaded into memory when generating the report using this report configuration.</p>\n";
11
+ const DELVIERY_TIMEZONE = "\n <h3>Timezone</h3>\n <p>Select the timezone in which the report schedule should be executed.</p>\n";
12
+ const DELVIERY_AUTO_DISPATCH = "\n <h3>Auto dispatch</h3>\n <p>Enable this to automatically send the report to the selected destination once it's generated.</p>\n";
13
+ const DELVIERY_OUTPUTS = "\n <h3>Outputs</h3>\n <p>Select where the generated report should be delivered, such as email or FTP.</p>\n";
14
+ }
15
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../../src/new/utils/tooltip.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,SAAU,MAAM,SAAS,MAAM,6DAElD,CAAC;AAMF,eAAO,MAAM,eAAe,0DAA0C,CAAC;AAEvE,yBAAiB,OAAO,CAAC;IAChB,MAAM,UAAU,iJAIxB,CAAC;IAEO,MAAM,cAAc,6OAI5B,CAAC;IAEO,MAAM,eAAe,gNAI7B,CAAC;IAEO,MAAM,iBAAiB,iMAI/B,CAAC;IAEO,MAAM,eAAe,8vCAS7B,CAAC;IAEO,MAAM,gBAAgB,2JAG9B,CAAC;IAEO,MAAM,gBAAgB,mRAG9B,CAAC;IAEO,MAAM,iBAAiB,2GAG/B,CAAC;IAEO,MAAM,sBAAsB,yIAGpC,CAAC;IAEO,MAAM,gBAAgB,kHAG9B,CAAC;CACD"}
@@ -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,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAUlC,eAAO,MAAM,uBAAuB,YACxB,OAAO,cACF,eAAe,KAAG,QAAQ,OAAO,SAAS,EAAE,MAAM,EAAE,CAAC,CAuBnE,CAAC;AAEJ,eAAO,MAAM,iBAAiB,WAAY,eAAe,KAAG,OAAO,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,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAUlC,eAAO,MAAM,uBAAuB,YACxB,OAAO,cACF,eAAe,KAAG,QAAQ,OAAO,SAAS,EAAE,MAAM,EAAE,CAAC,CAqBnE,CAAC;AAEJ,eAAO,MAAM,iBAAiB,WAAY,eAAe,KAAG,OAAO,SAAS,EAAE,MAAM,EAAE,CAmBrF,CAAC"}
@@ -29,4 +29,8 @@ export const ReportingConfigurationStyles = css `
29
29
  background: var(--neutral-fill-stealth-rest);
30
30
  color: var(--neutral-foreground-rest);
31
31
  }
32
+
33
+ rapid-search-bar {
34
+ width: 30%;
35
+ }
32
36
  `;
@@ -1,11 +1,24 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { Connect, logger } from '@genesislcap/foundation-comms';
3
3
  import { showNotificationToast } from '@genesislcap/foundation-notifications';
4
- import { customElement, GenesisElement, observable } from '@genesislcap/web-core';
5
- import { actions } from '../../../store';
4
+ import { customElement, GenesisElement, observable, volatile } from '@genesislcap/web-core';
5
+ import { actions, selectors } from '../../../store';
6
+ import { Genesis } from '../../../types';
6
7
  import { styles } from './base-config.styles';
7
- import { NULL_TEMPLATE, template } from './base-config.template';
8
+ import { allowedTemplateFiletypes, NULL_TEMPLATE, template } from './base-config.template';
8
9
  let BaseConfig = class BaseConfig extends GenesisElement {
10
+ get allowedTemplates() {
11
+ var _a, _b;
12
+ const allowedFiletypes = allowedTemplateFiletypes[(_a = selectors.baseConfig.getConfig().OUTPUT_FORMAT) !== null && _a !== void 0 ? _a : 'CSV'];
13
+ return ((_b = this.fileTemplates) !== null && _b !== void 0 ? _b : [])
14
+ .map((file) => {
15
+ const splitName = file[Genesis.FileStorageFields.FILE_NAME].split('.');
16
+ const fileExtension = splitName[splitName.length - 1];
17
+ return { file, fileExtension };
18
+ })
19
+ .filter(({ fileExtension }) => allowedFiletypes.includes(fileExtension))
20
+ .map(({ file }) => file);
21
+ }
9
22
  connectedCallback() {
10
23
  super.connectedCallback();
11
24
  this.getFileTemplates();
@@ -45,6 +58,9 @@ __decorate([
45
58
  __decorate([
46
59
  observable
47
60
  ], BaseConfig.prototype, "fileTemplates", void 0);
61
+ __decorate([
62
+ volatile
63
+ ], BaseConfig.prototype, "allowedTemplates", null);
48
64
  BaseConfig = __decorate([
49
65
  customElement({
50
66
  name: 'base-config',
@@ -14,6 +14,7 @@ export const styles = css `
14
14
  }
15
15
 
16
16
  rapid-text-area {
17
- min-height: 150px;
17
+ height: 115px;
18
+ padding-bottom: calc(var(--design-unit) * 2px);
18
19
  }
19
20
  `;
@@ -1,11 +1,17 @@
1
1
  import { html, repeat, when, whenElse } from '@genesislcap/web-core';
2
2
  import { actions, reportOutputFormats, selectors } from '../../../store';
3
3
  import { Genesis } from '../../../types';
4
+ import { requiredTooltip, TOOLTIP, tooltip } from '../../../utils';
4
5
  export const NULL_TEMPLATE = 'Select a template';
6
+ export const allowedTemplateFiletypes = {
7
+ CSV: [],
8
+ PDF: ['html', 'xhtml'],
9
+ XLSX: ['xls', 'xlsx'],
10
+ };
5
11
  const fileTemplatePicker = html `
6
12
  ${when((_) => selectors.baseConfig.getConfig().OUTPUT_FORMAT !== 'CSV', html `
7
13
  <label class="label">Output template</label>
8
- ${whenElse((x) => { var _a; return ((_a = x.fileTemplates) === null || _a === void 0 ? void 0 : _a.length) > 0; }, html `
14
+ ${whenElse((x) => { var _a; return ((_a = x.allowedTemplates) === null || _a === void 0 ? void 0 : _a.length) > 0; }, html `
9
15
  <rapid-select
10
16
  data-test-id="config-document-template"
11
17
  value=${() => selectors.baseConfig.getConfig().DOCUMENT_TEMPLATE_ID || NULL_TEMPLATE}
@@ -16,7 +22,7 @@ const fileTemplatePicker = html `
16
22
  >
17
23
  ${NULL_TEMPLATE}
18
24
  </rapid-option>
19
- ${repeat((x) => x.fileTemplates, html `
25
+ ${repeat((x) => x.allowedTemplates, html `
20
26
  <rapid-option
21
27
  value="${(x) => x[Genesis.FileStorageFields.FILE_STORAGE_ID]}"
22
28
  ?selected=${(x) => x[Genesis.FileStorageFields.FILE_STORAGE_ID] ===
@@ -27,43 +33,49 @@ const fileTemplatePicker = html `
27
33
  `, { recycle: false })}
28
34
  </rapid-select>
29
35
  `, html `
30
- No templates defined on file server.
36
+ No valid templates defined on file server for selected output format
37
+ (${(_) => allowedTemplateFiletypes[selectors.baseConfig.getConfig().OUTPUT_FORMAT].join(', ')}).
31
38
  `)}
32
39
  `)}
33
40
  `;
34
41
  export const template = html `
35
42
  <h1>Reporting Setup</h1>
36
- <label class="label">Report name</label>
43
+ <p>
44
+ Here you configure the basics of your generated report such as the filename and the output type.
45
+ Different filetypes have different functionalities, see the file type tooltip for more
46
+ information.
47
+ </p>
48
+ <label class="label">Report name${requiredTooltip}${tooltip(TOOLTIP.SETUP_NAME)}</label>
37
49
  <rapid-text-field
38
50
  data-test-id="config-report-name"
39
- placeholder="Enter report name..."
51
+ placeholder="(REQUIRED) Enter report name..."
40
52
  value="${() => selectors.baseConfig.getConfig().NAME}"
41
53
  @change="${(_, ctx) => actions.baseConfig.updateState({
42
54
  key: 'NAME',
43
55
  value: ctx.event.target.value,
44
56
  })}"
45
57
  ></rapid-text-field>
46
- <label class="label">File name</label>
58
+ <label class="label">File name${requiredTooltip}${tooltip(TOOLTIP.SETUP_DIRECTORY)}</label>
47
59
  <rapid-text-field
48
60
  data-test-id="config-report-filename"
49
- placeholder="Enter file name..."
61
+ placeholder="(REQUIRED) Enter file name..."
50
62
  value="${() => selectors.baseConfig.getConfig().FILE_NAME}"
51
63
  @change="${(_, ctx) => actions.baseConfig.updateState({
52
64
  key: 'FILE_NAME',
53
65
  value: ctx.event.target.value,
54
66
  })}"
55
67
  ></rapid-text-field>
56
- <label class="label">Output directory</label>
68
+ <label class="label">Output directory${requiredTooltip}${tooltip(TOOLTIP.SETUP_DIRECTORY)}</label>
57
69
  <rapid-text-field
58
70
  data-test-id="config-report-output-directory"
59
- placeholder="/reports"
71
+ placeholder="(REQUIRED) /reports"
60
72
  value="${() => selectors.baseConfig.getConfig().OUTPUT_DIRECTORY}"
61
73
  @change="${(_, ctx) => actions.baseConfig.updateState({
62
74
  key: 'OUTPUT_DIRECTORY',
63
75
  value: ctx.event.target.value,
64
76
  })}"
65
77
  ></rapid-text-field>
66
- <label class="label">Report description</label>
78
+ <label class="label">Report description${tooltip(TOOLTIP.SETUP_DESCRIPTION)}</label>
67
79
  <rapid-text-area
68
80
  data-test-id="config-report-description"
69
81
  value="${() => selectors.baseConfig.getConfig().DESCRIPTION}"
@@ -73,7 +85,7 @@ export const template = html `
73
85
  value: ctx.event.target.value,
74
86
  })}"
75
87
  ></rapid-text-area>
76
- <label class="label">File type</label>
88
+ <label class="label">File type${tooltip(TOOLTIP.SETUP_FILE_TYPE)}</label>
77
89
  <rapid-select
78
90
  data-test-id="config-report-file-type"
79
91
  value=${() => selectors.baseConfig.getConfig().OUTPUT_FORMAT}
@@ -1,8 +1,8 @@
1
1
  import { css } from '@genesislcap/web-core';
2
2
  export const styles = css `
3
3
  div.grid-container {
4
+ height: calc(var(--constrained-height) - 160px);
4
5
  width: 100%;
5
- height: 100%;
6
6
  }
7
7
 
8
8
  div.grid-container.error {
@@ -0,0 +1,25 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement, GenesisElement, html } from '@genesislcap/web-core';
3
+ let ColFiltersTutorial = class ColFiltersTutorial extends GenesisElement {
4
+ };
5
+ ColFiltersTutorial = __decorate([
6
+ customElement({
7
+ name: 'col-filters-tutorial',
8
+ template: html `
9
+ <template>
10
+ <h1>Column Visibility</h1>
11
+ <p>
12
+ In this grid you can select which columns from each datasource you want to be visible in
13
+ your report. You can toggle each individual field using the checkbox in each row, or quickly
14
+ select or deselect all for the datasource using the checkbox in the header.
15
+ </p>
16
+ <p>
17
+ If you configure a column not to be visible then you won't be able to configure it in any
18
+ subsequent steps, but any row filters you made on the previous step will still apply to the
19
+ field regardless of whether it's configured as visible or not.
20
+ </p>
21
+ </template>
22
+ `,
23
+ })
24
+ ], ColFiltersTutorial);
25
+ export { ColFiltersTutorial };
@@ -2,7 +2,7 @@ import { css } from '@genesislcap/web-core';
2
2
  export const styles = css `
3
3
  div.grid-container {
4
4
  width: 100%;
5
- height: 100%;
5
+ height: calc(var(--constrained-height) - 160px);
6
6
  }
7
7
 
8
8
  div.grid-container.error {
@@ -0,0 +1,35 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement, GenesisElement, html, whenElse } from '@genesislcap/web-core';
3
+ import { selectors } from '../../../store';
4
+ let ColRenamesAliasesTutorial = class ColRenamesAliasesTutorial extends GenesisElement {
5
+ };
6
+ ColRenamesAliasesTutorial = __decorate([
7
+ customElement({
8
+ name: 'col-renames-aliases-tutorial',
9
+ template: html `
10
+ <template>
11
+ ${whenElse((_) => Boolean(selectors.baseConfig.getConfig().DOCUMENT_TEMPLATE_ID), html `
12
+ <h1>Column Aliases</h1>
13
+ <p>
14
+ Here you can configure any aliases for fields that you would like. If you enable an
15
+ alias on the field's row you can then set the alias, which is defaulted to sentence
16
+ case. The alias, if set, is how you refer to the field to extract its value on the
17
+ template.
18
+ </p>
19
+ `, html `
20
+ <h1>Column Renames</h1>
21
+ <p>
22
+ Here you can configure any renames for fields that you would like. If you enable a
23
+ rename on the field's row you can then set the name, which is defaulted to sentence
24
+ case. The rename, if set, is used for the column headings on your generated report.
25
+ </p>
26
+ `)}
27
+ <p>
28
+ Any columns you've previously set as not-visible will not be configured here. Any columns
29
+ you don't select will be left as their default SNAKE_UPPERCASE_FORMAT.
30
+ </p>
31
+ </template>
32
+ `,
33
+ })
34
+ ], ColRenamesAliasesTutorial);
35
+ export { ColRenamesAliasesTutorial };
@@ -2,7 +2,9 @@ import { html } from '@genesislcap/web-core';
2
2
  import { selectors } from '../../store';
3
3
  import { BaseConfig } from './base-config/base-config';
4
4
  import { ColFiltersGrid } from './col-filters/col-filters-grid';
5
+ import { ColFiltersTutorial } from './col-filters/col-filters-tutorial';
5
6
  import { ColRenamesAliases } from './col-rename-alias/col-rename-alias-grid';
7
+ import { ColRenamesAliasesTutorial } from './col-rename-alias/col-rename-alias-tutorial';
6
8
  import { DatasourcesConfigContainer } from './datasource-config/datasources-config-container';
7
9
  import { RowFilters } from './row-filters/row-filters';
8
10
  import { RowFiltersTutorial } from './row-filters/row-filters-tutorial';
@@ -15,6 +17,8 @@ DatasourcesConfigContainer;
15
17
  RowFiltersTutorial;
16
18
  RowFilters;
17
19
  ColFiltersGrid;
20
+ ColFiltersTutorial;
21
+ ColRenamesAliasesTutorial;
18
22
  ColRenamesAliases;
19
23
  Scheduling;
20
24
  export const template = html `
@@ -23,7 +27,7 @@ export const template = html `
23
27
  <rapid-button appearance="primary" @click=${(x) => x.saveConfigHandler()}>
24
28
  Save and Close
25
29
  </rapid-button>
26
- <rapid-button @click=${(x) => x.showListViewHandler()}>Exit without Saving</rapid-button>
30
+ <rapid-button @click=${(x) => x.showListViewHandler()}>Discard Changes</rapid-button>
27
31
  </div>
28
32
 
29
33
  <rapid-stepper
@@ -44,7 +48,7 @@ export const template = html `
44
48
  <!--<rapid-stepper-tab>Sorting</rapid-stepper-tab>-->
45
49
  <rapid-stepper-tab>
46
50
  Column
47
- ${(_) => (selectors.baseConfig.getConfig().OUTPUT_FORMAT === 'PDF' ? 'Aliases' : 'Renames')}
51
+ ${(_) => Boolean(selectors.baseConfig.getConfig().DOCUMENT_TEMPLATE_ID) ? 'Aliases' : 'Renames'}
48
52
  </rapid-stepper-tab>
49
53
  <rapid-stepper-tab>Delivery</rapid-stepper-tab>
50
54
  <!-- TODO: this should be column aliases for PDF -->
@@ -74,7 +78,12 @@ export const template = html `
74
78
  </rapid-stepper-tab-panel>
75
79
 
76
80
  <rapid-stepper-tab-panel>
77
- <tabbed-datasource-container><col-filters></col-filters></tabbed-datasource-container>
81
+ <tabbed-datasource-container>
82
+ <col-filters-tutorial
83
+ slot="${(_) => TABBED_DATASOURCE_HEADER_SLOT}"
84
+ ></col-filters-tutorial>
85
+ <col-filters></col-filters>
86
+ </tabbed-datasource-container>
78
87
  </rapid-stepper-tab-panel>
79
88
 
80
89
  <!--
@@ -85,6 +94,9 @@ export const template = html `
85
94
 
86
95
  <rapid-stepper-tab-panel>
87
96
  <tabbed-datasource-container>
97
+ <col-renames-aliases-tutorial
98
+ slot="${(_) => TABBED_DATASOURCE_HEADER_SLOT}"
99
+ ></col-renames-aliases-tutorial>
88
100
  <col-rename-alias></col-rename-alias>
89
101
  </tabbed-datasource-container>
90
102
  </rapid-stepper-tab-panel>
@@ -1,9 +1,9 @@
1
1
  import { html, repeat, when, whenElse } from '@genesislcap/web-core';
2
2
  import { datasourceOutputs, selectors } from '../../../store';
3
- import { datasourceInputForDisplay } from '../../../utils';
3
+ import { datasourceInputForDisplay, TOOLTIP, tooltip } from '../../../utils';
4
4
  const datasourceAlias = html `
5
5
  <div>
6
- <p class="label">Name</p>
6
+ <p class="label">Name${tooltip(TOOLTIP.DATASOURCES_NAME)}</p>
7
7
  <rapid-text-field
8
8
  value=${(x) => selectors.datasourceConfig.getDatasource(x.datasourceName).KEY}
9
9
  @change=${(x, ctx) => x.updateKeyHandler(ctx.event.target.value)}
@@ -12,7 +12,7 @@ const datasourceAlias = html `
12
12
  `;
13
13
  const processType = html `
14
14
  <div>
15
- <p class="label">Type</p>
15
+ <p class="label">Type${tooltip(TOOLTIP.DATASOURCES_TYPE)}</p>
16
16
  <rapid-select
17
17
  :value=${(x) => selectors.datasourceConfig.getDatasource(x.datasourceName).OUTPUT_TYPE}
18
18
  @change=${(x, ctx) => x.updateOutputTypeHandler(ctx.event.target.value)}
@@ -53,7 +53,7 @@ export const getDatasources = async (connect) => {
53
53
  return reqRepResponse.REPLY.map(({ DATASOURCE_NAME }) => ({
54
54
  name: DATASOURCE_NAME,
55
55
  inputType: 'REQ_REP',
56
- })); // .concat(
56
+ })).sort((a, b) => a.name.localeCompare(b.name)); // .concat(
57
57
  // dataPipelineResponse.REPLY.map(
58
58
  // ({ NAME }) => <DatasourceChoice>{ name: NAME, inputType: 'DATA_PIPELINE' },
59
59
  // ),
@@ -15,7 +15,12 @@ const container = html `
15
15
  </div>
16
16
  <p>
17
17
  Here you can select the datasource(s) you want to generate the reports from. CSV reports use a
18
- single datasource, XLXS or PDF reports all for many datasources to be used.
18
+ single datasource, XLSX or PDF reports all for many datasources to be used.
19
+ </p>
20
+ <p>
21
+ If you change a datasource here then all of the configuration that you've previously applied to
22
+ that datasource in subsequent steps, if any, would be lost. Any configuration for other
23
+ datasources will not be affected.
19
24
  </p>
20
25
  <div>
21
26
  ${repeat((_) => Object.keys(selectors.datasourceConfig.getAllConfigSet()), html `
@@ -1,9 +1,8 @@
1
1
  import { html, ref, whenElse } from '@genesislcap/web-core';
2
2
  import { selectors } from '../../../store';
3
+ import { TOOLTIP, tooltip } from '../../../utils';
3
4
  const container = html `
4
- <label class="label">Outputs
5
- <rapid-icon tooltip="Select where the generated report should be delivered, such as email or FTP."></rapid-icon>
6
- </label>
5
+ <label class="label">Outputs ${tooltip(TOOLTIP.DELVIERY_OUTPUTS)}</label>
7
6
  <rapid-multiselect
8
7
  data-test-id="output-multiselect"
9
8
  ${ref('multiselect')}
@@ -1,7 +1,7 @@
1
1
  import { css } from '@genesislcap/web-core';
2
2
  export const styles = css `
3
3
  div.grid-container {
4
- max-height: calc(var(--constrained-height) - 160px);
4
+ height: calc(var(--constrained-height) - 100px);
5
5
  width: 100%;
6
6
  overflow-y: auto;
7
7
  display: inline-block;
@@ -1,5 +1,6 @@
1
1
  import { html, repeat, sync } from '@genesislcap/web-core';
2
2
  import { actions, selectors } from '../../../store';
3
+ import { TOOLTIP, tooltip } from '../../../utils';
3
4
  import { OutputsConfig } from '../outputs-config/outputs-config';
4
5
  OutputsConfig;
5
6
  export const template = html `
@@ -21,12 +22,7 @@ export const template = html `
21
22
  <div class="parent-container ${(x) => x.disabledClassNames}">
22
23
  <div class="container ${(x) => x.disabledClassNames}">
23
24
  <div class="timezone-container">
24
- <label class="label">
25
- Time Zone
26
- <rapid-icon
27
- tooltip="Select the timezone in which the report schedule should be executed."
28
- ></rapid-icon>
29
- </label>
25
+ <label class="label">Time Zone ${tooltip(TOOLTIP.DELVIERY_TIMEZONE)}</label>
30
26
  <rapid-combobox
31
27
  data-test-id="config-report-timezone"
32
28
  autocomplete="both"
@@ -50,7 +46,7 @@ export const template = html `
50
46
  </rapid-combobox>
51
47
  </div>
52
48
  <rapid-scheduler-cron-builder
53
- :cron=${sync((x) => { var _a; return ((_a = selectors.baseConfig.getConfig().SCHEDULE) === null || _a === void 0 ? void 0 : _a.CRON_EXPRESSION) || '0 0 0 * * ?'; })}
49
+ :cron=${sync(() => { var _a; return ((_a = selectors.baseConfig.getConfig().SCHEDULE) === null || _a === void 0 ? void 0 : _a.CRON_EXPRESSION) || '0 0 0 * * ?'; })}
54
50
  @change="${(_, ctx) => {
55
51
  var _a;
56
52
  return actions.baseConfig.updateState({
@@ -73,12 +69,7 @@ export const template = html `
73
69
  <div class="heading-padding container">
74
70
  <outputs-config></outputs-config>
75
71
  <div class="auto-dispatch">
76
- <label class="label">
77
- Auto dispatch?
78
- <rapid-icon
79
- tooltip="Enable this to automatically send the report to the selected destination once it's generated."
80
- ></rapid-icon>
81
- </label>
72
+ <label class="label">Auto dispatch? ${tooltip(TOOLTIP.DELVIERY_AUTO_DISPATCH)}</label>
82
73
  <rapid-checkbox
83
74
  data-test-id="config-report-auto-dispatch"
84
75
  checked=${() => { var _a; return (_a = selectors.baseConfig.getConfig().AUTO_DISPATCH) !== null && _a !== void 0 ? _a : false; }}
@@ -1,6 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { Connect, logger } from '@genesislcap/foundation-comms';
3
- import { customElement, GenesisElement, html } from '@genesislcap/web-core';
3
+ import { getCriteriaBuilder, INPUT_MIN_LENGTH } from '@genesislcap/foundation-ui';
4
+ import { customElement, GenesisElement, html, observable } from '@genesislcap/web-core';
4
5
  import { showNotificationToast } from '../../utils';
5
6
  import { getFilterParams } from '../../utils/date-filter-params';
6
7
  import { getEndpointUrl } from '../../utils/endpoint';
@@ -11,6 +12,34 @@ import { GeneratedReportsTemplate as template } from './generated-reports.templa
11
12
  let GeneratedReports = class GeneratedReports extends GenesisElement {
12
13
  constructor() {
13
14
  super(...arguments);
15
+ this.gridCriteria = '';
16
+ this.searchBarConfig = [
17
+ {
18
+ field: 'NAME',
19
+ label: (searchTerm) => `${searchTerm} as NAME`,
20
+ createCriteria: getCriteriaBuilder,
21
+ isEnabled: (searchTerm, selectedOption) => {
22
+ return (searchTerm.length >= INPUT_MIN_LENGTH && !selectedOption.some((e) => e.field === 'NAME'));
23
+ },
24
+ },
25
+ {
26
+ field: 'FILE_NAME',
27
+ label: (searchTerm) => `${searchTerm} as FILE_NAME`,
28
+ createCriteria: getCriteriaBuilder,
29
+ isEnabled: (searchTerm, selectedOption) => {
30
+ return (searchTerm.length >= INPUT_MIN_LENGTH &&
31
+ !selectedOption.some((e) => e.field === 'FILE_NAME'));
32
+ },
33
+ },
34
+ {
35
+ field: 'STATUS',
36
+ label: (searchTerm) => `${searchTerm} as STATUS`,
37
+ createCriteria: getCriteriaBuilder,
38
+ isEnabled: (searchTerm, selectedOption) => {
39
+ return (searchTerm.length >= INPUT_MIN_LENGTH && !selectedOption.some((e) => e.field === 'STATUS'));
40
+ },
41
+ },
42
+ ];
14
43
  this.getColor = (result) => {
15
44
  switch (result) {
16
45
  case 'Generated':
@@ -71,6 +100,18 @@ let GeneratedReports = class GeneratedReports extends GenesisElement {
71
100
  filterParams: getFilterParams(),
72
101
  valueFormatter: (rowData) => getFormattedDateTime(rowData.data.LAST_UPDATED_AT),
73
102
  },
103
+ {
104
+ field: 'MESSAGE',
105
+ headerName: 'Failure Reason',
106
+ minWidth: 300,
107
+ flex: 1,
108
+ tooltipField: 'MESSAGE',
109
+ cellStyle: {
110
+ whiteSpace: 'nowrap',
111
+ overflow: 'hidden',
112
+ textOverflow: 'ellipsis',
113
+ },
114
+ },
74
115
  buttonCellRenderer('Delete', (e) => this.deleteReport(e.GENERATED_REPORT_ID), html `
75
116
  <rapid-icon
76
117
  style="opacity: 0.5"
@@ -174,10 +215,30 @@ let GeneratedReports = class GeneratedReports extends GenesisElement {
174
215
  logger.error(err);
175
216
  }
176
217
  }
218
+ searchChanged(event) {
219
+ const options = event.detail;
220
+ const criteriaBuilder = options
221
+ .map((option) => {
222
+ const { field, term, createCriteria } = option;
223
+ if (createCriteria) {
224
+ return createCriteria(field, term);
225
+ }
226
+ else {
227
+ logger.debug('Cannot convert search option into criteria', option);
228
+ return;
229
+ }
230
+ })
231
+ .filter((x) => x)
232
+ .join(' && ');
233
+ this.gridCriteria = criteriaBuilder;
234
+ }
177
235
  };
178
236
  __decorate([
179
237
  Connect
180
238
  ], GeneratedReports.prototype, "connect", void 0);
239
+ __decorate([
240
+ observable
241
+ ], GeneratedReports.prototype, "gridCriteria", void 0);
181
242
  GeneratedReports = __decorate([
182
243
  customElement({
183
244
  name: 'generated-reports',
@@ -6,4 +6,9 @@ export const GeneratedReportsStyles = css `
6
6
  width: 100%;
7
7
  height: 100%;
8
8
  }
9
+
10
+ .container {
11
+ padding: calc(var(--design-unit) * 4px);
12
+ width: 40%;
13
+ }
9
14
  `;
@@ -1,10 +1,18 @@
1
+ import { customEvent } from '@genesislcap/foundation-events';
1
2
  import { html, ref } from '@genesislcap/web-core';
2
3
  export const GeneratedReportsTemplate = html `
4
+ <!-- <div class="container">
5
+ <rapid-search-bar
6
+ :options="${(x) => x.searchBarConfig}"
7
+ @selectionChange=${(x, ctx) => x.searchChanged(customEvent(ctx))}
8
+ ></rapid-search-bar>
9
+ </div> -->
3
10
  <rapid-grid-pro data-test-id="generated-reports-grid" only-template-col-defs grid-autosizing>
4
11
  <grid-pro-genesis-datasource
5
12
  ${ref('generatedReportsDatasource')}
6
13
  resource-name="GENERATED_REPORTS"
7
14
  reverse="true"
15
+ criteria="${(x) => x.gridCriteria}"
8
16
  :deferredGridOptions=${(x) => x.getGridOptions()}
9
17
  ></grid-pro-genesis-datasource>
10
18
  </rapid-grid-pro>
@@ -25,6 +25,8 @@ export const optionMessageBubble = (dataAttr = 'data-bubble-content') => css `
25
25
  `;
26
26
  export const formLabel = css `
27
27
  .label {
28
+ display: block;
29
+ padding-bottom: calc(var(--design-unit) * 2px);
28
30
  color: var(--neutral-foreground-hint);
29
31
  margin: 0;
30
32
  cursor: pointer;
@@ -2,5 +2,6 @@ export * from './endpoint';
2
2
  export * from './formatters';
3
3
  export * from './notifications';
4
4
  export * from './renderer';
5
+ export * from './tooltip';
5
6
  export * from './transformers';
6
7
  export * from './validators';
@@ -0,0 +1,62 @@
1
+ import { html } from '@genesislcap/web-core';
2
+ export const tooltip = (text, icon) => html `
3
+ <rapid-icon tooltip="${() => text}" name="${() => icon}"></rapid-icon>
4
+ `;
5
+ const REQUIRED = `
6
+ <h3>Required</h3>
7
+ <p>This field is required.</p>
8
+ `;
9
+ export const requiredTooltip = tooltip(REQUIRED, 'circle-exclamation');
10
+ export var TOOLTIP;
11
+ (function (TOOLTIP) {
12
+ TOOLTIP.SETUP_NAME = `
13
+ <h3>Report name</h3>
14
+ <p>Configure the name of your report which is used to identify your report.</p>
15
+ <p>This must be unique.</p>
16
+ `;
17
+ TOOLTIP.SETUP_FILENAME = `
18
+ <h3>File name</h3>
19
+ <p>This is the filename for the generated report every time this report configuration is ran, manually or via schedule.</p>
20
+ <p>The file extension is added automatically and shouldn't be added here.</p>
21
+ `;
22
+ TOOLTIP.SETUP_DIRECTORY = `
23
+ <h3>Output directory</h3>
24
+ <p>This is the filepath that the generated file will be stored at.</p>
25
+ <p>This applies to looking at the generated reports inside of the Document Management PBC.</p>
26
+ `;
27
+ TOOLTIP.SETUP_DESCRIPTION = `
28
+ <h3>Description</h3>
29
+ <p>Here you can set a description for this reporting config.</p>
30
+ <p>You could use this to write a summary of the generated report for future reference.</p>
31
+ `;
32
+ TOOLTIP.SETUP_FILE_TYPE = `
33
+ <h3>File type</h3>
34
+ <p>Here you can choose the filetype generated for your report, automatically setting the file extension. You can choose between CSV, XLSX, and PDF; they each differ in functionality.</p>
35
+ <ul>
36
+ <li><strong>CSV</strong>: Allows you to generate a simple report consisting of a single datasource to a simple csv file where every column corresponds to a field from the datasource.</li>
37
+ <li><strong>XLSX</strong>: Allows you to generate a simple xlxs workbook, consisting of one or many datasources where each datasource creates a sheet similar to the CSV option. When using XLXS you may optionally select a <code>xls</code> or <code>xlxs</code> template that you've uploaded to the document manager PBC to have more control over the generated report.</li>
38
+ <li><strong>PDF</strong>: Allows you to generate a PDF file, consisting of one or many datasources. When using PDF you must select a <code>html</code> or <code>xhtml</code> template that you've uploaded to the document manager PBC to define how the output report is generated.</li>
39
+ </ul>
40
+ <p>If you currently have more than one datasource selected in the "Add Datasources" step then you cannot select CSV output here, please delete all but one datasource to do that.</p>
41
+ `;
42
+ TOOLTIP.DATASOURCES_NAME = `
43
+ <h3>Datasource name</h3>
44
+ <p>Allows you to set a name for the datasource which you'll use to refer to the datasource in the template file.</p>
45
+ `;
46
+ TOOLTIP.DATASOURCES_TYPE = `
47
+ <h3>Datasource type</h3>
48
+ <p>Configures the method by which the server constructs the report configuration. Currently only TABLE is supported, which means the entire datasource is loaded into memory when generating the report using this report configuration.</p>
49
+ `;
50
+ TOOLTIP.DELVIERY_TIMEZONE = `
51
+ <h3>Timezone</h3>
52
+ <p>Select the timezone in which the report schedule should be executed.</p>
53
+ `;
54
+ TOOLTIP.DELVIERY_AUTO_DISPATCH = `
55
+ <h3>Auto dispatch</h3>
56
+ <p>Enable this to automatically send the report to the selected destination once it's generated.</p>
57
+ `;
58
+ TOOLTIP.DELVIERY_OUTPUTS = `
59
+ <h3>Outputs</h3>
60
+ <p>Select where the generated report should be delivered, such as email or FTP.</p>
61
+ `;
62
+ })(TOOLTIP || (TOOLTIP = {}));
@@ -6,20 +6,17 @@ const toResult = (errors) => errors.length
6
6
  : { k: 'ok' };
7
7
  export const validateReportingConfig = (connect) => async (config) => {
8
8
  var _a, _b, _c;
9
- const errors = [];
10
9
  const result = await connect.snapshot('ALL_REPORT_CONFIGS');
11
10
  const reportingConfigNames = new Set((_b = (_a = result.ROW) === null || _a === void 0 ? void 0 : _a.filter((d) => !config.baseConfig.ID || d.ID !== config.baseConfig.ID)) === null || _b === void 0 ? void 0 : _b.map((d) => d.NAME));
12
- if (reportingConfigNames.has(config.baseConfig.NAME)) {
13
- errors.push(`Reporting config name "${config.baseConfig.NAME}" already in use.`);
14
- }
11
+ const nameErr = reportingConfigNames.has(config.baseConfig.NAME)
12
+ ? [`Reporting config name "${config.baseConfig.NAME}" already in use.`]
13
+ : [];
15
14
  const baseSetupErrors = validateBaseSetup(config);
16
- if (baseSetupErrors.k === 'err') {
17
- errors.concat(baseSetupErrors.info);
18
- }
19
- if (config.baseConfig.SCHEDULE && !((_c = config.baseConfig.SCHEDULE) === null || _c === void 0 ? void 0 : _c.TIME_ZONE)) {
20
- errors.push(`Reporting config timezone unset or invalid.`);
21
- }
22
- return toResult(errors);
15
+ const baseErr = baseSetupErrors.k === 'err' ? baseSetupErrors.info : [];
16
+ const timezoneErr = config.baseConfig.SCHEDULE && !((_c = config.baseConfig.SCHEDULE) === null || _c === void 0 ? void 0 : _c.TIME_ZONE)
17
+ ? [`Reporting config timezone unset or invalid.`]
18
+ : [];
19
+ return toResult([].concat(nameErr, baseErr, timezoneErr));
23
20
  };
24
21
  export const validateBaseSetup = (config) => {
25
22
  const errors = [];
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": "1.0.398",
4
+ "version": "1.0.400",
5
5
  "license": "SEE LICENSE IN license.txt",
6
6
  "main": "dist/esm/index.js",
7
7
  "types": "dist/dts/index.d.ts",