@genesislcap/pbc-reporting-ui 15.19.0 → 15.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/dist/custom-elements.json +4247 -5382
  2. package/dist/dts/react.d.ts +44 -44
  3. package/dist/react.cjs +65 -65
  4. package/dist/react.mjs +57 -57
  5. package/package.json +22 -23
  6. package/.env +0 -3
  7. package/api-extractor.json +0 -4
  8. package/dist/dts/new/main/edit-config/col-filters/col-filters-grid.helpers.test.d.ts +0 -2
  9. package/dist/dts/new/main/edit-config/col-filters/col-filters-grid.helpers.test.d.ts.map +0 -1
  10. package/dist/dts/new/main/edit-config/col-rename-alias/col-rename-alias-grid.helpers.test.d.ts +0 -2
  11. package/dist/dts/new/main/edit-config/col-rename-alias/col-rename-alias-grid.helpers.test.d.ts.map +0 -1
  12. package/dist/dts/new/main/edit-config/data-transforms-derived-fields/data-transforms.helpers.test.d.ts +0 -2
  13. package/dist/dts/new/main/edit-config/data-transforms-derived-fields/data-transforms.helpers.test.d.ts.map +0 -1
  14. package/dist/dts/new/main/edit-config/datasource-config/datasources-config-container.helpers.test.d.ts +0 -2
  15. package/dist/dts/new/main/edit-config/datasource-config/datasources-config-container.helpers.test.d.ts.map +0 -1
  16. package/dist/dts/new/main/edit-config/row-filters/row-filters.helpers.test.d.ts +0 -2
  17. package/dist/dts/new/main/edit-config/row-filters/row-filters.helpers.test.d.ts.map +0 -1
  18. package/dist/dts/new/main/edit-config/shared/datasource-data-base-component.test.d.ts +0 -5
  19. package/dist/dts/new/main/edit-config/shared/datasource-data-base-component.test.d.ts.map +0 -1
  20. package/dist/dts/new/utils/alias-generator.test.d.ts +0 -2
  21. package/dist/dts/new/utils/alias-generator.test.d.ts.map +0 -1
  22. package/dist/dts/new/utils/endpoint.test.d.ts +0 -2
  23. package/dist/dts/new/utils/endpoint.test.d.ts.map +0 -1
  24. package/dist/dts/new/utils/transformers.test.d.ts +0 -2
  25. package/dist/dts/new/utils/transformers.test.d.ts.map +0 -1
  26. package/dist/dts/new/utils/validators.test.d.ts +0 -2
  27. package/dist/dts/new/utils/validators.test.d.ts.map +0 -1
  28. package/dist/dts/old/main/main.test.d.ts +0 -2
  29. package/dist/dts/old/main/main.test.d.ts.map +0 -1
  30. package/dist/dts/old/utils/filterObjectArray.test.d.ts +0 -2
  31. package/dist/dts/old/utils/filterObjectArray.test.d.ts.map +0 -1
  32. package/dist/esm/new/main/edit-config/col-filters/col-filters-grid.helpers.test.js +0 -200
  33. package/dist/esm/new/main/edit-config/col-rename-alias/col-rename-alias-grid.helpers.test.js +0 -152
  34. package/dist/esm/new/main/edit-config/data-transforms-derived-fields/data-transforms.helpers.test.js +0 -629
  35. package/dist/esm/new/main/edit-config/datasource-config/datasources-config-container.helpers.test.js +0 -268
  36. package/dist/esm/new/main/edit-config/row-filters/row-filters.helpers.test.js +0 -1
  37. package/dist/esm/new/main/edit-config/shared/datasource-data-base-component.test.js +0 -426
  38. package/dist/esm/new/utils/alias-generator.test.js +0 -36
  39. package/dist/esm/new/utils/endpoint.test.js +0 -162
  40. package/dist/esm/new/utils/transformers.test.js +0 -469
  41. package/dist/esm/new/utils/validators.test.js +0 -139
  42. package/dist/esm/old/main/main.test.js +0 -5
  43. package/dist/esm/old/utils/filterObjectArray.test.js +0 -46
  44. package/dist/tsconfig.tsbuildinfo +0 -1
  45. package/src/globals.d.ts +0 -7
  46. package/src/index.federated.ts +0 -1
  47. package/src/index.ts +0 -8
  48. package/src/new/components/clone-report-config-modal/clone-report-config-modal.styles.ts +0 -47
  49. package/src/new/components/clone-report-config-modal/clone-report-config-modal.template.ts +0 -55
  50. package/src/new/components/clone-report-config-modal/clone-report-config-modal.ts +0 -173
  51. package/src/new/components/components.ts +0 -118
  52. package/src/new/components/renderers/data-transform-renderer.ts +0 -111
  53. package/src/new/components/reporting-configurations/reporting-configurations.styles.ts +0 -42
  54. package/src/new/components/reporting-configurations/reporting-configurations.template.ts +0 -59
  55. package/src/new/components/reporting-configurations/reporting-configurations.ts +0 -366
  56. package/src/new/components/shared/file-template-picker.template.ts +0 -45
  57. package/src/new/lib/redux-store/README.md +0 -55
  58. package/src/new/lib/redux-store/index.ts +0 -2
  59. package/src/new/lib/redux-store/state-utils.ts +0 -1
  60. package/src/new/lib/redux-store/store.ts +0 -135
  61. package/src/new/main/edit-config/base-config/base-config.styles.ts +0 -26
  62. package/src/new/main/edit-config/base-config/base-config.template.ts +0 -71
  63. package/src/new/main/edit-config/base-config/base-config.ts +0 -116
  64. package/src/new/main/edit-config/col-filters/col-filters-grid.helpers.test.ts +0 -232
  65. package/src/new/main/edit-config/col-filters/col-filters-grid.helpers.ts +0 -35
  66. package/src/new/main/edit-config/col-filters/col-filters-grid.styles.ts +0 -22
  67. package/src/new/main/edit-config/col-filters/col-filters-grid.ts +0 -150
  68. package/src/new/main/edit-config/col-filters/col-filters-grid.types.ts +0 -7
  69. package/src/new/main/edit-config/col-filters/col-filters-tutorial.ts +0 -25
  70. package/src/new/main/edit-config/col-filters/col-fitlers-grid.template.ts +0 -15
  71. package/src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.helpers.test.ts +0 -187
  72. package/src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.helpers.ts +0 -89
  73. package/src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.styles.ts +0 -22
  74. package/src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.template.ts +0 -14
  75. package/src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.ts +0 -119
  76. package/src/new/main/edit-config/col-rename-alias/col-rename-alias-grid.types.ts +0 -10
  77. package/src/new/main/edit-config/col-rename-alias/col-rename-alias-tutorial.ts +0 -33
  78. package/src/new/main/edit-config/config-journey-orchestrator.styles.ts +0 -120
  79. package/src/new/main/edit-config/config-journey-orchestrator.template.ts +0 -149
  80. package/src/new/main/edit-config/config-journey-orchestrator.ts +0 -92
  81. package/src/new/main/edit-config/data-transforms-derived-fields/data-transforms-tutorial.ts +0 -127
  82. package/src/new/main/edit-config/data-transforms-derived-fields/data-transforms.helpers.test.ts +0 -799
  83. package/src/new/main/edit-config/data-transforms-derived-fields/data-transforms.helpers.ts +0 -371
  84. package/src/new/main/edit-config/data-transforms-derived-fields/data-transforms.styles.ts +0 -22
  85. package/src/new/main/edit-config/data-transforms-derived-fields/data-transforms.template.ts +0 -21
  86. package/src/new/main/edit-config/data-transforms-derived-fields/data-transforms.ts +0 -162
  87. package/src/new/main/edit-config/data-transforms-derived-fields/data-transforms.types.ts +0 -211
  88. package/src/new/main/edit-config/data-transforms-derived-fields/date-format-modal/date-format-modal.styles.ts +0 -79
  89. package/src/new/main/edit-config/data-transforms-derived-fields/date-format-modal/date-format-modal.template.ts +0 -217
  90. package/src/new/main/edit-config/data-transforms-derived-fields/date-format-modal/date-format-modal.ts +0 -280
  91. package/src/new/main/edit-config/data-transforms-derived-fields/date-format-modal/index.ts +0 -1
  92. package/src/new/main/edit-config/data-transforms-derived-fields/format-warning.ts +0 -43
  93. package/src/new/main/edit-config/data-transforms-derived-fields/number-format-modal/index.ts +0 -1
  94. package/src/new/main/edit-config/data-transforms-derived-fields/number-format-modal/number-format-modal.styles.ts +0 -68
  95. package/src/new/main/edit-config/data-transforms-derived-fields/number-format-modal/number-format-modal.template.ts +0 -93
  96. package/src/new/main/edit-config/data-transforms-derived-fields/number-format-modal/number-format-modal.ts +0 -152
  97. package/src/new/main/edit-config/datasource-config/datasource-config-container.styles.ts +0 -22
  98. package/src/new/main/edit-config/datasource-config/datasource-config-item.styles.ts +0 -76
  99. package/src/new/main/edit-config/datasource-config/datasource-config-item.template.ts +0 -141
  100. package/src/new/main/edit-config/datasource-config/datasource-config-item.ts +0 -212
  101. package/src/new/main/edit-config/datasource-config/datasources-config-container.helpers.test.ts +0 -341
  102. package/src/new/main/edit-config/datasource-config/datasources-config-container.helpers.ts +0 -99
  103. package/src/new/main/edit-config/datasource-config/datasources-config-container.template.ts +0 -68
  104. package/src/new/main/edit-config/datasource-config/datasources-config-container.ts +0 -55
  105. package/src/new/main/edit-config/datasource-config/types.ts +0 -6
  106. package/src/new/main/edit-config/outputs-config/outputs-config.style.ts +0 -11
  107. package/src/new/main/edit-config/outputs-config/outputs-config.template.ts +0 -66
  108. package/src/new/main/edit-config/outputs-config/outputs-config.ts +0 -66
  109. package/src/new/main/edit-config/row-filters/row-filters-tutorial.styles.ts +0 -16
  110. package/src/new/main/edit-config/row-filters/row-filters-tutorial.template.ts +0 -229
  111. package/src/new/main/edit-config/row-filters/row-filters-tutorial.ts +0 -15
  112. package/src/new/main/edit-config/row-filters/row-filters.helpers.test.ts +0 -2
  113. package/src/new/main/edit-config/row-filters/row-filters.helpers.ts +0 -53
  114. package/src/new/main/edit-config/row-filters/row-filters.styles.ts +0 -23
  115. package/src/new/main/edit-config/row-filters/row-filters.template.ts +0 -15
  116. package/src/new/main/edit-config/row-filters/row-filters.ts +0 -58
  117. package/src/new/main/edit-config/row-filters/row-filters.types.ts +0 -14
  118. package/src/new/main/edit-config/scheduling/scheduling.styles.ts +0 -59
  119. package/src/new/main/edit-config/scheduling/scheduling.template.ts +0 -80
  120. package/src/new/main/edit-config/scheduling/scheduling.ts +0 -101
  121. package/src/new/main/edit-config/shared/datasource-data-base-component.helpers.ts.ts +0 -250
  122. package/src/new/main/edit-config/shared/datasource-data-base-component.test.ts +0 -568
  123. package/src/new/main/edit-config/shared/datasource-data-base-component.ts +0 -65
  124. package/src/new/main/edit-config/shared/datasource-data-base-component.types.ts +0 -55
  125. package/src/new/main/edit-config/shared/index.ts +0 -3
  126. package/src/new/main/edit-config/tabbed-datasource-container/index.ts +0 -2
  127. package/src/new/main/edit-config/tabbed-datasource-container/tabbed-datasource-container.styles.ts +0 -12
  128. package/src/new/main/edit-config/tabbed-datasource-container/tabbed-datasource-container.template.ts +0 -29
  129. package/src/new/main/edit-config/tabbed-datasource-container/tabbed-datasource-container.ts +0 -69
  130. package/src/new/main/edit-config/tabbed-datasource-container/tabbed-datasource-container.types.ts +0 -7
  131. package/src/new/main/generated-reports/generated-reports.styles.ts +0 -15
  132. package/src/new/main/generated-reports/generated-reports.template.ts +0 -29
  133. package/src/new/main/generated-reports/generated-reports.ts +0 -270
  134. package/src/new/main/index.ts +0 -3
  135. package/src/new/main/main.styles.ts +0 -31
  136. package/src/new/main/main.template.ts +0 -92
  137. package/src/new/main/main.ts +0 -117
  138. package/src/new/main/report-destinations/report-destinations.template.ts +0 -39
  139. package/src/new/main/report-destinations/report-destinations.ts +0 -63
  140. package/src/new/store/index.ts +0 -3
  141. package/src/new/store/slices/base-config.ts +0 -50
  142. package/src/new/store/slices/datasources-config.ts +0 -297
  143. package/src/new/store/slices/index.ts +0 -3
  144. package/src/new/store/slices/types.ts +0 -90
  145. package/src/new/store/store.ts +0 -36
  146. package/src/new/store/types.ts +0 -10
  147. package/src/new/styles/constraints.styles.ts +0 -32
  148. package/src/new/styles/forms.styles.ts +0 -38
  149. package/src/new/styles/index.ts +0 -3
  150. package/src/new/styles/misc.styles.ts +0 -25
  151. package/src/new/types/display.ts +0 -4
  152. package/src/new/types/index.ts +0 -4
  153. package/src/new/types/misc.ts +0 -73
  154. package/src/new/types/redux.ts +0 -73
  155. package/src/new/types/rights.ts +0 -28
  156. package/src/new/utils/alias-generator.test.ts +0 -44
  157. package/src/new/utils/alias-generator.ts +0 -18
  158. package/src/new/utils/date-filter-params.ts +0 -28
  159. package/src/new/utils/endpoint.test.ts +0 -193
  160. package/src/new/utils/endpoint.ts +0 -62
  161. package/src/new/utils/event-map.ts +0 -11
  162. package/src/new/utils/format-utils.ts +0 -22
  163. package/src/new/utils/formatters.ts +0 -36
  164. package/src/new/utils/index.ts +0 -10
  165. package/src/new/utils/notifications.ts +0 -9
  166. package/src/new/utils/renderer.ts +0 -38
  167. package/src/new/utils/rights.ts +0 -66
  168. package/src/new/utils/sorter.ts +0 -19
  169. package/src/new/utils/tooltip.ts +0 -94
  170. package/src/new/utils/transformers.test.ts +0 -549
  171. package/src/new/utils/transformers.ts +0 -174
  172. package/src/new/utils/validators.test.ts +0 -165
  173. package/src/new/utils/validators.ts +0 -81
  174. package/src/old/assets/images/index.ts +0 -69
  175. package/src/old/components/create-edit/create-edit.styles.ts +0 -16
  176. package/src/old/components/create-edit/create-edit.template.ts +0 -15
  177. package/src/old/components/create-edit/create-edit.ts +0 -70
  178. package/src/old/components/create-edit/index.ts +0 -3
  179. package/src/old/components/list/columns.ts +0 -175
  180. package/src/old/components/list/index.ts +0 -3
  181. package/src/old/components/list/list.styles.ts +0 -9
  182. package/src/old/components/list/list.template.ts +0 -40
  183. package/src/old/components/list/list.ts +0 -109
  184. package/src/old/components/preview/columns.ts +0 -58
  185. package/src/old/components/preview/index.ts +0 -3
  186. package/src/old/components/preview/preview.styles.ts +0 -22
  187. package/src/old/components/preview/preview.template.ts +0 -33
  188. package/src/old/components/preview/preview.ts +0 -143
  189. package/src/old/components/rapid-components.ts +0 -64
  190. package/src/old/components/renderers/custom-header-component.ts +0 -92
  191. package/src/old/components/renderers/filter-value-renderer.ts +0 -237
  192. package/src/old/components/renderers/row-select.renderer.ts +0 -148
  193. package/src/old/components/select-fields/columns.ts +0 -83
  194. package/src/old/components/select-fields/data.ts +0 -218
  195. package/src/old/components/select-fields/index.ts +0 -3
  196. package/src/old/components/select-fields/select-fields.styles.ts +0 -22
  197. package/src/old/components/select-fields/select-fields.template.ts +0 -58
  198. package/src/old/components/select-fields/select-fields.ts +0 -218
  199. package/src/old/components/select-filters/columns.ts +0 -78
  200. package/src/old/components/select-filters/index.ts +0 -3
  201. package/src/old/components/select-filters/select-filters.styles.ts +0 -21
  202. package/src/old/components/select-filters/select-filters.template.ts +0 -58
  203. package/src/old/components/select-filters/select-filters.ts +0 -255
  204. package/src/old/components/wizard/debug.ts +0 -35
  205. package/src/old/components/wizard/index.ts +0 -2
  206. package/src/old/components/wizard/steps/filters.ts +0 -13
  207. package/src/old/components/wizard/steps/index.ts +0 -4
  208. package/src/old/components/wizard/steps/name.ts +0 -72
  209. package/src/old/components/wizard/steps/run.ts +0 -14
  210. package/src/old/components/wizard/steps/select.ts +0 -14
  211. package/src/old/components/wizard/wizard.styles.ts +0 -198
  212. package/src/old/components/wizard/wizard.template.ts +0 -147
  213. package/src/old/components/wizard/wizard.ts +0 -398
  214. package/src/old/components/wizard/wizard.types.ts +0 -43
  215. package/src/old/components/zero-components.ts +0 -61
  216. package/src/old/config/config.ts +0 -59
  217. package/src/old/config/configure.ts +0 -66
  218. package/src/old/config/index.ts +0 -2
  219. package/src/old/config/templates.ts +0 -59
  220. package/src/old/constants/grid-config.ts +0 -19
  221. package/src/old/layouts/default.ts +0 -30
  222. package/src/old/layouts/index.ts +0 -2
  223. package/src/old/layouts/two-pane-horizontal.ts +0 -81
  224. package/src/old/main/index.ts +0 -3
  225. package/src/old/main/main.styles.ts +0 -69
  226. package/src/old/main/main.template.ts +0 -127
  227. package/src/old/main/main.test.ts +0 -7
  228. package/src/old/main/main.ts +0 -250
  229. package/src/old/main/types.ts +0 -29
  230. package/src/old/styles/colors.ts +0 -16
  231. package/src/old/styles/helpers.ts +0 -181
  232. package/src/old/styles/index.ts +0 -4
  233. package/src/old/styles/normalize.ts +0 -14
  234. package/src/old/styles/styles.ts +0 -24
  235. package/src/old/tags/index.ts +0 -1
  236. package/src/old/tags/tags.ts +0 -79
  237. package/src/old/tsconfig.json +0 -10
  238. package/src/old/utils/filterObjectArray.test.ts +0 -110
  239. package/src/old/utils/filterObjectArray.ts +0 -23
  240. package/src/old/utils/getFiltersByType.ts +0 -92
  241. package/src/old/utils/getSelectedFields.ts +0 -16
  242. package/src/old/utils/index.ts +0 -4
  243. package/src/old/utils/logger.ts +0 -3
  244. package/src/sandbox.ts +0 -51
  245. package/src/tsconfig.base.json +0 -24
  246. package/src/typings.d.ts +0 -1
  247. package/tsconfig.json +0 -9
@@ -1,147 +0,0 @@
1
- import type { ExecutionContext } from '@genesislcap/web-core';
2
- import { html, ref, repeat, when } from '@genesislcap/web-core';
3
- import { tickIcon } from '../../assets/images';
4
- import { buttonTag, cardTag, iconTag } from '../../tags';
5
- import { Debug } from './debug';
6
- import type { Wizard } from './wizard';
7
- import { WizardStep } from './wizard.types';
8
-
9
- const buttonLabel = (activeTab, content, isEdit) => {
10
- if (activeTab === content.length - 1) {
11
- return isEdit ? 'Update' : 'Save';
12
- } else {
13
- return 'Next';
14
- }
15
- };
16
-
17
- const TitleTemplate = html<Wizard>`
18
- <h5 class="step-title" data-test-id="step-title">
19
- <span
20
- class="step-number${(x, c: ExecutionContext) =>
21
- c.parent.activeTab > c.index || c.parent.activeTab === WizardStep.Three
22
- ? ' completed'
23
- : ''}"
24
- data-test-id="step-number"
25
- >
26
- ${(x, c: ExecutionContext) =>
27
- c.parent.activeTab > c.index
28
- ? html`
29
- ${tickIcon()}
30
- `
31
- : c.index + 1}
32
- </span>
33
- &nbsp;&nbsp;&nbsp;${(x) => x.title}
34
- </h5>
35
- `;
36
-
37
- const TabOneContextTemplate = html<Wizard>`
38
- <div
39
- class="nav-line${(x, c: ExecutionContext) =>
40
- c.parent.activeTab > c.index ? ' completed' : ''}"
41
- data-test-id="nav-line"
42
- >
43
- <div class="flex flex-column context-container">
44
- ${when(
45
- (x, c: ExecutionContext) => c.parent.activeTab >= 1 && c.index === 0,
46
- html`
47
- <p class="context" data-test-id="report-name">
48
- Report Name:
49
- <br />
50
- <b>${(x, c) => c.parent.reportName}</b>
51
- </p>
52
- <p class="context" data-test-id="data-source">
53
- Data Source:
54
- <br />
55
- <b>${(x, c) => c.parent.selectedDatasource}</b>
56
- </p>
57
- `,
58
- )}
59
- ${when(
60
- (x, c: ExecutionContext) => c.parent.activeTab >= 2 && c.index === 1,
61
- html`
62
- <p class="context" data-test-id="selected-fields">
63
- Selected fields:
64
- <br />
65
- <b>${(x, c) => c.parent.getNormalizedSelectedFields().join(`, `)}</b>
66
- </p>
67
- `,
68
- )}
69
- ${when(
70
- (x, c: ExecutionContext) => c.parent.activeTab >= WizardStep.Three && c.index === 2,
71
- html`
72
- <p class="context" data-test-id="applied-filters">
73
- Applied filters:
74
- <br />
75
- <b>${(x, c) => c.parent.getNormalizedSelectedFilters().join(`, `)}</b>
76
- </p>
77
- `,
78
- )}
79
- </div>
80
- </div>
81
- `;
82
-
83
- const WizardNavigation = html<Wizard>`
84
- <div class="nav-actions text-right" data-test-id="wizard-navigation">
85
- ${when(
86
- (x) => x.activeTab > 0,
87
- html`
88
- <${buttonTag} @click=${(x) => x.setActiveTab(x.activeTab - 1)} data-test-id="back-button">
89
- <${iconTag} class="mr-5px" name="arrow-left"></${iconTag}>
90
- Back
91
- </${buttonTag}>
92
- `,
93
- )}
94
- <${buttonTag}
95
- ${ref('nextButton')}
96
- tabindex="99"
97
- appearance="${(x) => x.config.buttonAppearance}"
98
- ?disabled=${(x) => !x.isFormValid}
99
- @click=${(x) =>
100
- x.activeTab === x.content.length - 1
101
- ? x.saveReport(x.isEdit, x.getData())
102
- : x.setActiveTab(x.activeTab + 1)}
103
- data-test-id="next-button"
104
- >
105
- ${(x) => buttonLabel(x.activeTab, x.content, x.isEdit)}
106
- <${iconTag} class="ml-5px" name="arrow-right"></${iconTag}>
107
- </${buttonTag}>
108
- </div>
109
- `;
110
-
111
- const WizardContent = html<Wizard>`
112
- <${cardTag} class="card body" design-unit="5" data-test-id="wizard-content">
113
- ${(x) => x.viewTemplate}
114
- </${cardTag}>
115
- `;
116
-
117
- export const WizardTemplate = html<Wizard>`
118
- <div class="wizard grid-container">
119
- <${cardTag} class="card nav flex flex-column" data-test-id="wizard-navigation-card">
120
- <h3 class="section-title light-grey">${(x) => (x.isEdit ? 'Edit' : 'Create')} Report</h3>
121
- ${repeat(
122
- (x) => x.content,
123
- html`
124
- <div
125
- class="nav-item${(x, c: ExecutionContext) =>
126
- c.index === c.parent.activeTab ? ' active' : ''}"
127
- data-test-id="wizard-navigation-item"
128
- >
129
- ${TitleTemplate}
130
- ${when(
131
- (x, c: ExecutionContext) => x.description && c.index === c.parent.activeTab,
132
- html`
133
- <p class="description" data-test-id="wizard-navigation-item-description">
134
- ${(x) => x.description}
135
- </p>
136
- `,
137
- )}
138
- ${TabOneContextTemplate}
139
- </div>
140
- `,
141
- { positioning: true, recycle: false },
142
- )}
143
- ${WizardNavigation} ${(x) => (x.debug ? Debug : null)}
144
- </${cardTag}>
145
- ${WizardContent}
146
- </div>
147
- `;
@@ -1,398 +0,0 @@
1
- import { Connect } from '@genesislcap/foundation-comms';
2
- import { Button, customElement, GenesisElement, observable, volatile } from '@genesislcap/web-core';
3
- import { ReportingConfig } from '../../config/config';
4
- import { ReportingEventListeners } from '../../main/types';
5
- import { FiltersStep, NameStep, RunStep, SelectStep } from './steps';
6
- import { WizardStyles as styles } from './wizard.styles';
7
- import { WizardTemplate as template } from './wizard.template';
8
- import {
9
- DatasourceFieldOptions,
10
- DatasourceOptions,
11
- ReportField,
12
- WizardContent,
13
- WizardStep,
14
- } from './wizard.types';
15
-
16
- const name = 'reporting-wizard';
17
-
18
- /**
19
- * Multi-step saved-report builder (legacy).
20
- * @public
21
- *
22
- * @fires notify - Fired when a user notification should be shown. detail: `ReportNotification`
23
- */
24
- @customElement({
25
- name,
26
- template,
27
- styles,
28
- })
29
- export class Wizard extends GenesisElement {
30
- @Connect connect: Connect;
31
- @ReportingConfig config!: ReportingConfig;
32
- @observable debug: boolean = false;
33
- @observable activeTab: number = 0;
34
- @observable datasourceOptions: DatasourceOptions = [];
35
- @observable datasourceFieldOptions: DatasourceFieldOptions = [];
36
- @observable isEdit: boolean = false;
37
- @observable fieldData: ReportField[] = [];
38
- @observable report;
39
- @observable saveReport;
40
- @observable content: WizardContent = [
41
- {
42
- title: 'Set up & Datasource',
43
- description:
44
- "Please give your new report a name, brief description and select it's datasource to get started.",
45
- },
46
- {
47
- title: 'Set fields',
48
- description: '',
49
- },
50
- {
51
- title: 'Apply filters',
52
- description: '(Optional)',
53
- },
54
- {
55
- title: 'Run report',
56
- description: '',
57
- },
58
- ];
59
- @observable datasourceSettings;
60
-
61
- // Set name and datasource step
62
- @observable reportName: string = '';
63
- @observable reportDescription: string = '';
64
- @observable selectedDatasource: string = null;
65
-
66
- // Set fields step
67
- @observable selectedFields: ReportField[] = [];
68
-
69
- // Set filters step
70
- @observable selectedFilters = [];
71
-
72
- // Run / preview report step
73
- @observable previewData: any[] = [];
74
- @observable previewGridColumns = [];
75
-
76
- @volatile
77
- get isFormValid() {
78
- // Note: This is a very basic form validation. Would be nice to know if there are any existing form validation tools that we've used in the past and implement it here.
79
- switch (this.activeTab) {
80
- // Set up & Datasource Step
81
- case WizardStep.Zero:
82
- return !!this.reportName && !!this.selectedDatasource;
83
- // Set columns Step
84
- case WizardStep.One:
85
- return this.selectedFields && this.selectedFields.length > 0;
86
- // Set filters Step
87
- case WizardStep.Two:
88
- return true;
89
- // Run report Step
90
- case WizardStep.Three:
91
- return true;
92
- default:
93
- return true;
94
- }
95
- }
96
-
97
- @volatile
98
- get viewTemplate() {
99
- switch (this.activeTab) {
100
- case WizardStep.Zero:
101
- return NameStep;
102
- case WizardStep.One:
103
- return SelectStep;
104
- case WizardStep.Two:
105
- return FiltersStep;
106
- case WizardStep.Three:
107
- return RunStep;
108
- default:
109
- throw new Error(`Cannot get template for state ${this.activeTab}`);
110
- }
111
- }
112
-
113
- nextButton: Button;
114
-
115
- /**
116
- * When report variable changes handle
117
- */
118
- async reportChanged(old, newValue) {
119
- this.fieldData = this.fieldData?.map(({ filter, ...fields }) => fields);
120
- if (Object.keys(newValue).length) {
121
- const {
122
- REPORT_NAME,
123
- REPORT_DESCRIPTION,
124
- REPORT_DATASOURCE,
125
- REPORT_DATA_SOURCE,
126
- REPORT_COLUMNS,
127
- } = newValue;
128
- this.isEdit = true;
129
- this.selectedFields = REPORT_COLUMNS;
130
- this.reportName = REPORT_NAME;
131
- this.reportDescription = REPORT_DESCRIPTION;
132
- this.selectedDatasource = REPORT_DATASOURCE || REPORT_DATA_SOURCE;
133
- } else {
134
- this.isEdit = false;
135
- this.reportName = '';
136
- this.reportDescription = '';
137
- this.selectedDatasource = null;
138
- this.selectedFields = [];
139
- this.selectedFilters = [];
140
- }
141
- this.setActiveTab(0);
142
- }
143
-
144
- /**
145
- * Set selected fields
146
- * @param fields array
147
- */
148
- public setFields(fields) {
149
- this.selectedFields = fields;
150
- }
151
-
152
- /**
153
- * When report variable changes handle
154
- */
155
- async selectedDatasourceChanged(old, newValue) {
156
- // Reset
157
- this.selectedFields = [];
158
- this.selectedFilters = [];
159
- this.fieldData = [];
160
-
161
- // Prepare field data structure from field metadata response
162
- const fieldMetadata = await this.fetchFieldsFromDatasource();
163
- if (this.isEdit && Object.keys(this.report).length) {
164
- this.selectedFields = this.report['REPORT_COLUMNS'];
165
- const reportDatasource =
166
- this.report['REPORT_DATASOURCE'] || this.report['REPORT_DATA_SOURCE'];
167
- if (reportDatasource === newValue) {
168
- this.fieldData = fieldMetadata.map(
169
- ({ FIELD_NAME, TYPE }) =>
170
- this.selectedFields.find((field) => field.name === FIELD_NAME) || {
171
- name: FIELD_NAME,
172
- type: TYPE,
173
- displayName: FIELD_NAME,
174
- selected: false,
175
- },
176
- );
177
- }
178
- } else {
179
- fieldMetadata?.forEach(({ FIELD_NAME, TYPE }) => {
180
- this.fieldData = [
181
- ...this.fieldData,
182
- {
183
- name: FIELD_NAME,
184
- type: TYPE,
185
- displayName: FIELD_NAME,
186
- selected: false,
187
- },
188
- ];
189
- });
190
- }
191
- }
192
-
193
- /**
194
- * Make sure to update selected fields when field data changes
195
- */
196
- fieldDataChanged() {
197
- this.selectedFields =
198
- this.selectedFields?.map((f) => {
199
- const matchingField = this.fieldData?.find((field) => field?.name === f?.name);
200
- return {
201
- ...matchingField,
202
- displayName: matchingField?.displayName || f?.name,
203
- selected: matchingField ? true : false,
204
- };
205
- }) || [];
206
- this.selectedFilters = this.fieldData?.filter((field) => field.filter && field.selected) || [];
207
- }
208
-
209
- public connectedCallback() {
210
- super.connectedCallback();
211
- this.getDatasources();
212
- this.addEventListener('setSelectedFields', (e: CustomEvent) => {
213
- this.selectedFields = e?.detail?.fields;
214
- this.fieldData = this.fieldData?.map((field) => {
215
- const matchingField = this.selectedFields.find((f) => f?.name === field?.name);
216
- return {
217
- ...field,
218
- ...matchingField,
219
- displayName: matchingField?.displayName || field?.name,
220
- selected: matchingField ? true : false,
221
- };
222
- });
223
- });
224
- this.addEventListener('setSelectedFilters', (e: CustomEvent) => {
225
- this.fieldData = this.fieldData?.map((field) => {
226
- const matchingField = e?.detail?.filters?.find((f) => f?.name === field?.name);
227
-
228
- if (matchingField) {
229
- matchingField.filter = {
230
- ...matchingField.filter,
231
- };
232
- } else {
233
- delete field?.filter;
234
- }
235
-
236
- return {
237
- ...field,
238
- ...matchingField,
239
- };
240
- });
241
- });
242
- }
243
-
244
- /**
245
- * Get a simplified / normalized version of the fields
246
- * e.g. ['REPORT_ID', 'REPORT_NAME']
247
- * @returns Array of string
248
- */
249
- public getNormalizedSelectedFields = () =>
250
- this.selectedFields?.map((field) => field.displayName) || [];
251
-
252
- /**
253
- * Get normalized selected filters context
254
- * @returns Array of strings
255
- */
256
- public getNormalizedSelectedFilters = () =>
257
- this.selectedFilters?.map(({ displayName }) => displayName) || [];
258
-
259
- /**
260
- * Fetch a list of datasources
261
- */
262
- private async getDatasources() {
263
- await this.connect
264
- .request('ALL_REPORT_DATASOURCES', {
265
- REQUEST: {},
266
- })
267
- .then((response) => {
268
- response?.REPLY?.forEach(({ DATASOURCE_NAME, RECORD_ID }) => {
269
- this.datasourceOptions = [
270
- ...this.datasourceOptions,
271
- {
272
- id: RECORD_ID,
273
- name: DATASOURCE_NAME,
274
- },
275
- ];
276
- });
277
- })
278
- .catch((err) => {
279
- this.$emit(ReportingEventListeners.notify, {
280
- type: 'warning',
281
- title: 'Error:',
282
- message: `There was an error fetching data sources:
283
- ${err?.ERROR ? err.ERROR : JSON.stringify(err)}
284
- `,
285
- });
286
- });
287
- }
288
-
289
- /**
290
- * Fetch data from the provided datasource
291
- */
292
- private fetchFieldsFromDatasource(): Promise<any> {
293
- return (
294
- this.selectedDatasource &&
295
- this.connect
296
- .getMetadata(this.selectedDatasource)
297
- .then((response) => {
298
- if (response.ERROR) {
299
- this.$emit(ReportingEventListeners.notify, {
300
- type: 'warning',
301
- title: 'Error:',
302
- message: `The application encountered an error while trying to fetch fields
303
- ${this.selectedDatasource && `for data source "${this.selectedDatasource}"`}:
304
- ${response.ERROR}
305
- `,
306
- });
307
- }
308
- const fields = response?.FIELD || response?.REPLY_FIELD;
309
- return fields?.map(({ NAME, TYPE }) => ({ FIELD_NAME: NAME, TYPE }));
310
- })
311
- .catch((err) => {
312
- this.$emit(ReportingEventListeners.notify, {
313
- type: 'warning',
314
- title: 'Error:',
315
- message: err?.ERROR ? err.ERROR : JSON.stringify(err),
316
- });
317
- })
318
- );
319
- }
320
-
321
- /**
322
- * On datasource radio group change event handler
323
- * @param selection Number
324
- */
325
- public onDatasourceChange = (selection) => {
326
- this.selectedDatasource = selection;
327
- };
328
-
329
- /**
330
- * Get report context data
331
- * @returns Object
332
- */
333
- public getData = () => {
334
- return {
335
- REPORT_NAME: this.reportName,
336
- REPORT_DESCRIPTION: this.reportDescription,
337
- REPORT_COLUMNS: this.selectedFields,
338
- REPORT_DATA_SOURCE: this.selectedDatasource,
339
- };
340
- };
341
-
342
- /**
343
- * Set the current active tab
344
- * @param tab Number
345
- */
346
- public setActiveTab = (tabIndex) => {
347
- if (this.content[tabIndex]) {
348
- this.activeTab = tabIndex;
349
- }
350
- };
351
-
352
- private selectedGridId;
353
-
354
- wizardStepKeydownHandler(event: KeyboardEvent) {
355
- if (event.key !== 'Tab') {
356
- return true;
357
- }
358
-
359
- const activeElement = this.shadowRoot.activeElement;
360
- const isFieldsOrFiltersStep =
361
- this.activeTab === WizardStep.One || this.activeTab === WizardStep.Two;
362
-
363
- if (!isFieldsOrFiltersStep) {
364
- if (this.isFormValid) {
365
- this.nextButton.focus();
366
- return false;
367
- }
368
- return true;
369
- }
370
-
371
- const isReportingSelectElement =
372
- activeElement &&
373
- (activeElement.localName === 'reporting-select-filters' ||
374
- activeElement.localName === 'reporting-select-fields');
375
-
376
- if (isReportingSelectElement) {
377
- const selectedElement = activeElement.shadowRoot.activeElement;
378
- const selectedId = selectedElement.id;
379
-
380
- if (!activeElement.localName || selectedId === 'select-available-fields-grid') {
381
- return true;
382
- }
383
-
384
- if (selectedId === 'selected-fields-grid' || selectedId === 'selected-filters-grid') {
385
- this.selectedGridId = selectedId;
386
- return true;
387
- }
388
- }
389
-
390
- if ((activeElement || this.selectedGridId) && this.isFormValid) {
391
- this.selectedGridId = undefined;
392
- this.nextButton.focus();
393
- return false;
394
- }
395
-
396
- return true;
397
- }
398
- }
@@ -1,43 +0,0 @@
1
- export interface FieldItem {
2
- FIELD_NAME: string;
3
- TYPE: string;
4
- }
5
-
6
- interface WizardStepContent {
7
- title: string;
8
- description?: string;
9
- }
10
-
11
- export interface WizardContent extends Array<WizardStepContent> {}
12
-
13
- interface DatasourceReply {
14
- id: number;
15
- name: string;
16
- }
17
-
18
- export interface DatasourceOptions extends Array<DatasourceReply> {}
19
-
20
- interface DatasourceField {
21
- FIELD_NAME: string;
22
- DISPLAY_NAME?: string;
23
- }
24
- export interface DatasourceFieldOptions extends Array<DatasourceField> {}
25
-
26
- export type ReportFieldFilter = {
27
- conditional: string;
28
- value: string;
29
- };
30
- export interface ReportField {
31
- name: string;
32
- selected: boolean;
33
- type: string;
34
- displayName?: string;
35
- filter?: ReportFieldFilter;
36
- }
37
-
38
- export enum WizardStep {
39
- Zero = 0,
40
- One,
41
- Two,
42
- Three,
43
- }
@@ -1,61 +0,0 @@
1
- import {
2
- provideDesignSystem,
3
- zeroActionsMenu,
4
- zeroButton,
5
- zeroCard,
6
- zeroCheckbox,
7
- zeroDesignSystemProvider,
8
- zeroDialog,
9
- zeroIcon,
10
- zeroListboxOption,
11
- zeroMenu,
12
- zeroMenuItem,
13
- zeroRadio,
14
- zeroRadioGroup,
15
- zeroSelect,
16
- zeroTab,
17
- zeroTabPanel,
18
- zeroTabs,
19
- zeroTextField,
20
- zeroTextArea,
21
- zeroToast,
22
- } from '@genesislcap/foundation-zero';
23
- import { zeroGridComponents } from '@genesislcap/foundation-zero-grid-pro';
24
- import { foundationAgFilterValueRenderer } from './renderers/filter-value-renderer';
25
- import { foundationAgRowSelectRenderer } from './renderers/row-select.renderer';
26
-
27
- /**
28
- * @public
29
- */
30
- export const registerCommonZeroComponents = async () => {
31
- /**
32
- * Register the components the app is using with the system.
33
- */
34
- provideDesignSystem().register(
35
- /**
36
- * Common across most routes, so batch register these lightweight components upfront.
37
- */
38
- zeroActionsMenu(),
39
- zeroButton(),
40
- zeroCard(),
41
- zeroCheckbox(),
42
- zeroDesignSystemProvider(),
43
- zeroDialog(),
44
- zeroIcon(),
45
- zeroListboxOption(),
46
- zeroMenu(),
47
- zeroMenuItem(),
48
- zeroRadio(),
49
- zeroRadioGroup(),
50
- zeroSelect(),
51
- zeroTab(),
52
- zeroTabPanel(),
53
- zeroTabs(),
54
- zeroTextField(),
55
- zeroTextArea(),
56
- zeroToast(),
57
- zeroGridComponents,
58
- foundationAgRowSelectRenderer(),
59
- foundationAgFilterValueRenderer(),
60
- );
61
- };
@@ -1,59 +0,0 @@
1
- import { DI, PartialGenesisElementDefinition } from '@genesislcap/web-core';
2
- import { defaultTemplateOptions, TemplateOptions } from './templates';
3
-
4
- /**
5
- * Do not reference any ../main files here. We must avoid ../tags being referenced and therefore setup pre-configuration.
6
- */
7
-
8
- /**
9
- * ReportingConfig DI interface.
10
- *
11
- * @public
12
- */
13
- export interface ReportingConfig extends PartialGenesisElementDefinition {
14
- /**
15
- * Template options.
16
- *
17
- * @remarks
18
- * Used by host applications to assign MF template options and subcomponent tags to align with the host design system.
19
- */
20
- templateOptions: TemplateOptions;
21
-
22
- /**
23
- * Button appearance.
24
- *
25
- * @remarks
26
- * Used by foundation-button to specify the appearance of the button
27
- */
28
- buttonAppearance: string;
29
-
30
- /**
31
- * Design System prefix for foundation-form
32
- *
33
- * @remarks
34
- * Used by foundation-form to specify the design system used by the form elements
35
- */
36
- designSystemPrefix: string;
37
- }
38
-
39
- /**
40
- * Default ReportingConfig DI implementation.
41
- * @public
42
- */
43
- export const defaultReportingConfig: ReportingConfig = {
44
- name: 'foundation-reporting',
45
- templateOptions: defaultTemplateOptions,
46
- designSystemPrefix: 'rapid',
47
- buttonAppearance: 'primary',
48
- };
49
-
50
- /**
51
- * ReportingConfig DI key.
52
- *
53
- * @internal
54
- * @privateRemarks
55
- * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.
56
- */
57
- export const ReportingConfig = DI.createInterface<ReportingConfig>((x) =>
58
- x.instance(defaultReportingConfig),
59
- );