@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,66 +0,0 @@
1
- import { Connect, Message } from '@genesislcap/foundation-comms';
2
- import { User } from '@genesislcap/foundation-user';
3
- import { logger } from '@genesislcap/foundation-utils';
4
- import { Multiselect } from '@genesislcap/rapid-design-system';
5
- import { customElement, GenesisElement, observable } from '@genesislcap/web-core';
6
- import { actions } from '../../../store';
7
- import { showNotificationToast } from '../../../utils';
8
- import { styles } from './outputs-config.style';
9
- import { OutputChoice, template } from './outputs-config.template';
10
-
11
- @customElement({
12
- name: 'outputs-config',
13
- template,
14
- styles,
15
- })
16
- export class OutputsConfig extends GenesisElement {
17
- @Connect connect: Connect;
18
- @User user!: User;
19
-
20
- @observable outputChoices: OutputChoice[] | null = null;
21
-
22
- multiselect: Multiselect;
23
-
24
- async connectedCallback(): Promise<void> {
25
- super.connectedCallback();
26
- await this.fetchOutputs();
27
- }
28
-
29
- updateOutputDestinationHandler(): void {
30
- const options = this.multiselect.selectedOptions;
31
- actions.baseConfig.setOutputs({
32
- ids: options.map((option) => (typeof option === 'string' ? option : option.value)),
33
- });
34
- }
35
-
36
- private async fetchOutputs(): Promise<void> {
37
- try {
38
- const notifyResponse = await this.connect.request('NOTIFY_DESTINATIONS', {
39
- REQUEST: {},
40
- });
41
- if (!notifyResponse?.REPLY) throw new Error('NOTIFY_DESTINATIONS request');
42
-
43
- this.outputChoices = notifyResponse.REPLY.map(
44
- ({ ID, NAME, TOPIC }) =>
45
- <OutputChoice>{
46
- type: 'NOTIFY',
47
- id: ID,
48
- name: NAME,
49
- topic: TOPIC,
50
- },
51
- );
52
- } catch (err) {
53
- if ((<Message>err.receivedMessage).ERROR?.some((c) => c.CODE === 'NOT_AUTHORISED')) {
54
- // In the specific error case the user isn't authorized then we're gating this component
55
- // via the template anyway
56
- return;
57
- }
58
- logger.error(err);
59
- showNotificationToast({
60
- title: 'Reporting Config',
61
- body: 'There were errors when loading the available output destinations',
62
- toast: { type: 'critical' as any },
63
- });
64
- }
65
- }
66
- }
@@ -1,16 +0,0 @@
1
- import { css } from '@genesislcap/web-core';
2
-
3
- export const styles = css`
4
- div.centering {
5
- display: flex;
6
- align-items: center;
7
- }
8
-
9
- div.centering rapid-button {
10
- margin-left: calc(var(--design-unit) * 2.5px);
11
- }
12
-
13
- div.centering p {
14
- width: 90%;
15
- }
16
- `;
@@ -1,229 +0,0 @@
1
- import { ExpressionBuilderTypes, RuleExpression } from '@genesislcap/foundation-zero';
2
- import { html, ref } from '@genesislcap/web-core';
3
- import type { RowFiltersTutorial } from './row-filters-tutorial';
4
-
5
- const rowFiltersExampleFields: ExpressionBuilderTypes.Field[] = [
6
- {
7
- fieldId: 'SIDE',
8
- label: 'SIDE',
9
- input: 'select',
10
- type: 'enum',
11
- values: {
12
- BUY: 'BUY',
13
- SELL: 'SELL',
14
- },
15
- },
16
- {
17
- fieldId: 'CURRENCY',
18
- label: 'CURRENCY',
19
- input: 'text',
20
- type: 'string',
21
- },
22
- {
23
- fieldId: 'PRICE',
24
- label: 'PRICE',
25
- input: 'number',
26
- type: 'long',
27
- },
28
- ];
29
-
30
- const rowFiltersDateExampleFields: ExpressionBuilderTypes.Field[] = [
31
- {
32
- fieldId: 'TRADE_DATE',
33
- label: 'TRADE_DATE',
34
- input: 'date',
35
- type: 'date',
36
- },
37
- ];
38
-
39
- const rowFiltersExampleModel: RuleExpression.Expression['PredicateExpression'] = {
40
- OPERATION: 'OR',
41
- TYPE: 'PREDICATE_EXPRESSION',
42
- EXPRESSIONS: [
43
- {
44
- TYPE: 'BINARY_EXPRESSION',
45
- OPERATION: 'EQUALS',
46
- LEFT: {
47
- TYPE: 'FIELD',
48
- NAME: 'SIDE',
49
- },
50
- RIGHT: {
51
- TYPE: 'STRING',
52
- VALUE: 'BUY',
53
- },
54
- },
55
- {
56
- TYPE: 'PREDICATE_EXPRESSION',
57
- OPERATION: 'AND',
58
- EXPRESSIONS: [
59
- {
60
- TYPE: 'BINARY_EXPRESSION',
61
- OPERATION: 'EQUALS',
62
- LEFT: {
63
- TYPE: 'FIELD',
64
- NAME: 'CURRENCY',
65
- },
66
- RIGHT: {
67
- TYPE: 'STRING',
68
- VALUE: 'USD',
69
- },
70
- },
71
- {
72
- TYPE: 'BINARY_EXPRESSION',
73
- OPERATION: 'GREATER_THAN',
74
- LEFT: {
75
- TYPE: 'FIELD',
76
- NAME: 'PRICE',
77
- },
78
- RIGHT: {
79
- TYPE: 'NUMBER',
80
- VALUE: '2000',
81
- },
82
- },
83
- ],
84
- },
85
- ],
86
- };
87
-
88
- const rowFiltersDateExampleModel: RuleExpression.Expression['PredicateExpression'] = {
89
- OPERATION: 'OR',
90
- TYPE: 'PREDICATE_EXPRESSION',
91
- EXPRESSIONS: [
92
- {
93
- TYPE: 'METHOD_EXPRESSION',
94
- METHOD: 'DATE_TIME_IS_IN_RANGE',
95
- PARAMETERS: [
96
- {
97
- TYPE: 'FIELD',
98
- NAME: 'TRADE_DATE',
99
- },
100
- {
101
- TYPE: 'STRING',
102
- VALUE: 'WEEK_DAY',
103
- },
104
- {
105
- TYPE: 'STRING',
106
- VALUE: 'CURRENT',
107
- },
108
- ],
109
- },
110
- {
111
- TYPE: 'METHOD_EXPRESSION',
112
- METHOD: 'DATE_TIME_IS_IN_RANGE',
113
- PARAMETERS: [
114
- {
115
- TYPE: 'FIELD',
116
- NAME: 'TRADE_DATE',
117
- },
118
- {
119
- TYPE: 'STRING',
120
- VALUE: 'WEEK_DAY',
121
- },
122
- {
123
- TYPE: 'STRING',
124
- VALUE: 'PREVIOUS',
125
- },
126
- ],
127
- },
128
- ],
129
- };
130
-
131
- const exampleConfig: ExpressionBuilderTypes.RuleConfig = {
132
- fields: rowFiltersExampleFields,
133
- model: rowFiltersExampleModel,
134
- };
135
-
136
- const exampleConfigDate: ExpressionBuilderTypes.RuleConfig = {
137
- fields: rowFiltersDateExampleFields,
138
- model: rowFiltersDateExampleModel,
139
- };
140
-
141
- const rowFiltersExampleModal = html<RowFiltersTutorial>`
142
- <rapid-modal ${ref('exampleModal')}>
143
- <h3 slot="top">Row filters help</h3>
144
- <rapid-tabs>
145
- <rapid-tab>Basic filters</rapid-tab>
146
- <rapid-tab>Date filters</rapid-tab>
147
- <rapid-tab-panel>
148
- <p>
149
- The row filters step provides you a rule builder which can create boolean logic
150
- expressions to filter rows. Consider the following
151
- <strong>readonly</strong>
152
- example:
153
- </p>
154
- <rapid-rule-expression-builder
155
- ${ref('exampleRuleBuilder')}
156
- :ruleConfig=${(_) => exampleConfig}
157
- @change=${(x) => (x.exampleRuleBuilder.ruleConfig = { ...exampleConfig })}
158
- ></rapid-rule-expression-builder>
159
- <p>
160
- This rule expression configures that a row
161
- <strong>will</strong>
162
- show in the output report if the SIDE is equal to BUY, OR if the currency is USD AND the
163
- PRICE is greater than 2000.
164
- </p>
165
- <p>
166
- If you don't want any filtering for a datasource then don't add any rules to the rule
167
- builder.
168
- </p>
169
- <p>
170
- TIP: You can filter on rows in this step that you subsequently don't show in the output
171
- report. E.g. you can filter on SIDE is BUY, but deselect the SIDE column in the column
172
- visibility step.
173
- </p>
174
- </rapid-tab-panel>
175
- <rapid-tab-panel>
176
- <p>
177
- You can also filter by date relative to the runtime of the report. Consider the following
178
- <strong>readonly</strong>
179
- example:
180
- </p>
181
- <rapid-rule-expression-builder
182
- ${ref('exampleRuleBuilderDate')}
183
- :ruleConfig=${(_) => exampleConfigDate}
184
- @change=${(x) => (x.exampleRuleBuilderDate.ruleConfig = { ...exampleConfigDate })}
185
- ></rapid-rule-expression-builder>
186
- <p>
187
- This rule expression configures that a row
188
- <strong>will</strong>
189
- show in the output report if the TRADE_DATE is today (Is current Week day), OR if the
190
- TRADE_DATE was yesterday (Is previous Week day).
191
- </p>
192
- <p>
193
- When using relative date filters, you can select from Hour, Day, Week day, Week, Month or
194
- Year.
195
- </p>
196
- <p>
197
- You can hover your mouse over the filter values (e.g.
198
- <code>Hour</code>
199
- ) when the select input is open to see a tooltip, or check the
200
- <a
201
- href="https://docs.genesis.global/docs/develop/client-capabilities/expression-builder/client-expression-rule-builder/#date-filtering"
202
- target="_blank"
203
- >
204
- docs
205
- </a>
206
- to see more information.
207
- </p>
208
- <p>When using relative date filters, you can select from HOUR, DAY, WEEK, MONTH or YEAR.</p>
209
- </rapid-tab-panel>
210
- </rapid-tabs>
211
- </rapid-modal>
212
- `;
213
-
214
- export const template = html<RowFiltersTutorial>`
215
- <template>
216
- ${rowFiltersExampleModal}
217
- <h1>Row filters</h1>
218
- <div class="centering">
219
- <p>
220
- In this step, configure a logical expression to filter the data source rows to include in
221
- your report. Where multiple data sources are configured for this report, use the tabs to
222
- select and configure each data source. Hover over the operators to see tooltips.
223
- </p>
224
- <rapid-button @click=${(x) => x.exampleModal.show()} appearance="primary">
225
- More info
226
- </rapid-button>
227
- </div>
228
- </template>
229
- `;
@@ -1,15 +0,0 @@
1
- import { Modal, RapidRuleExpressionBuilder } from '@genesislcap/rapid-design-system';
2
- import { customElement, GenesisElement, observable } from '@genesislcap/web-core';
3
- import { styles } from './row-filters-tutorial.styles';
4
- import { template } from './row-filters-tutorial.template';
5
-
6
- @customElement({
7
- name: 'row-filters-tutorial',
8
- template,
9
- styles,
10
- })
11
- export class RowFiltersTutorial extends GenesisElement {
12
- @observable exampleModal: Modal;
13
- @observable exampleRuleBuilder: RapidRuleExpressionBuilder;
14
- @observable exampleRuleBuilderDate: RapidRuleExpressionBuilder;
15
- }
@@ -1,2 +0,0 @@
1
- // TODO: add tests in next PR
2
- export {};
@@ -1,53 +0,0 @@
1
- import { ExpressionBuilderTypes } from '@genesislcap/foundation-ui';
2
- import { GridColumnNames } from '../shared';
3
- import { RowFilterDatasourceData } from './row-filters.types';
4
-
5
- export function mapGenesisFieldTypeToFieldInputAndType(
6
- partialData: Pick<ExpressionBuilderTypes.Field, 'fieldId' | 'label'>,
7
- dsData: RowFilterDatasourceData,
8
- ): ExpressionBuilderTypes.Field {
9
- switch (dsData[GridColumnNames.Type]) {
10
- case 'STRING':
11
- return { ...partialData, type: 'string', input: 'text' };
12
- case 'ENUM':
13
- if (!dsData[GridColumnNames.EnumValues]) throw new Error('Enum type but without enum values');
14
- return {
15
- ...partialData,
16
- type: 'enum',
17
- input: 'select',
18
- values: dsData[GridColumnNames.EnumValues]?.reduce((acum, v) => ({ ...acum, [v]: v }), {}),
19
- };
20
- case 'INT':
21
- return { ...partialData, type: 'int', input: 'number' };
22
- case 'SHORT':
23
- return { ...partialData, type: 'short', input: 'number' };
24
- case 'DOUBLE':
25
- return { ...partialData, type: 'double', input: 'number' };
26
- case 'LONG':
27
- return { ...partialData, type: 'long', input: 'number' };
28
- case 'BOOLEAN':
29
- return { ...partialData, type: 'boolean', input: 'checkbox' };
30
- case 'BIGDECIMAL':
31
- return { ...partialData, type: 'bigdecimal', input: 'number' }; // TODO; I think this neeeds to be a string
32
- case 'DATE':
33
- return { ...partialData, type: 'date', input: 'date' };
34
- case 'DATETIME':
35
- return { ...partialData, type: 'date-time', input: 'datetime-local' };
36
- default:
37
- throw new Error(`mapGenesisFieldTypeToFieldType type not supported "${dsData}"`);
38
- }
39
- }
40
-
41
- export function mapTableRowToRuleField(
42
- data: RowFilterDatasourceData,
43
- ): ExpressionBuilderTypes.Field | null {
44
- if (data[GridColumnNames.Type] === 'RAW' || data[GridColumnNames.Type] === 'NANO_TIMESTAMP')
45
- return null;
46
- return mapGenesisFieldTypeToFieldInputAndType(
47
- {
48
- fieldId: data[GridColumnNames.ColumnName],
49
- label: data[GridColumnNames.ColumnName],
50
- },
51
- data,
52
- );
53
- }
@@ -1,23 +0,0 @@
1
- import { css } from '@genesislcap/web-core';
2
-
3
- export const styles = css`
4
- div.grid-container {
5
- height: calc(var(--constrained-height) - 100px);
6
- width: 100%;
7
- overflow-y: auto;
8
- display: inline-block;
9
- }
10
-
11
- div.grid-container.error {
12
- cursor: not-allowed;
13
- }
14
-
15
- div.error rapid-grid-pro {
16
- pointer-events: none;
17
- opacity: 80%;
18
- }
19
-
20
- rapid-grid-pro::part(grid) {
21
- --base-height-multiplier: 9;
22
- }
23
- `;
@@ -1,15 +0,0 @@
1
- import { RuleExpression } from '@genesislcap/foundation-ui';
2
- import { classNames, html } from '@genesislcap/web-core';
3
- import type { RowFilters } from './row-filters';
4
-
5
- export const template = html<RowFilters>`
6
- <div class="grid-container ${(x) => classNames(['error', x.dataError])}">
7
- <rapid-rule-expression-builder
8
- :ruleConfig=${(x) => x.ruleExpressionConfig}
9
- @change=${(x, c) =>
10
- x.handleChangedRuleExpression(
11
- c.event as CustomEvent<RuleExpression.Expression['PredicateExpression']>,
12
- )}
13
- ></rapid-rule-expression-builder>
14
- </div>
15
- `;
@@ -1,58 +0,0 @@
1
- import { RuleExpression } from '@genesislcap/foundation-ui';
2
- import { ExpressionBuilderTypes } from '@genesislcap/rapid-design-system';
3
- import { customElement, observable } from '@genesislcap/web-core';
4
- import { actions, selectors } from '../../../store';
5
- import { DatasourceDataBaseComponent, GridRowData, pathParameters } from '../shared';
6
- import { mapTableRowToRuleField } from './row-filters.helpers';
7
- import { styles } from './row-filters.styles';
8
- import { template } from './row-filters.template';
9
-
10
- const blankExpression: RuleExpression.Expression['PredicateExpression'] = {
11
- TYPE: 'PREDICATE_EXPRESSION',
12
- OPERATION: 'AND',
13
- EXPRESSIONS: [],
14
- };
15
-
16
- @customElement({
17
- name: 'row-filters',
18
- template,
19
- styles,
20
- })
21
- export class RowFilters extends DatasourceDataBaseComponent {
22
- @observable ruleExpressionConfig: ExpressionBuilderTypes.RuleConfig = {
23
- fields: [],
24
- partialRuleValidationWarning: true,
25
- };
26
-
27
- handleChangedRuleExpression(
28
- event: CustomEvent<RuleExpression.Expression['PredicateExpression']>,
29
- ) {
30
- if (!this.datasourceName) return;
31
- actions.datasourceConfig.setRowFilter({ key: this.datasourceName, expression: event.detail });
32
- }
33
-
34
- protected async updateDataFields() {
35
- try {
36
- if (!this.datasourceName) throw new Error('Cannot load rule expression model with no key');
37
-
38
- this.fieldData = this.datasourceSpec.flatMap(pathParameters) as GridRowData[];
39
- const maybeExistingExpression = selectors.datasourceConfig.getRowFilterExpression(
40
- this.datasourceName,
41
- );
42
-
43
- this.ruleExpressionConfig = {
44
- ...this.ruleExpressionConfig,
45
- fields: this.fieldData
46
- .map(mapTableRowToRuleField)
47
- .filter(Boolean) as ExpressionBuilderTypes.Field[],
48
- model: maybeExistingExpression ?? blankExpression,
49
- };
50
- this.dataError = false;
51
- } catch (e) {
52
- this.handleError(
53
- e as Error,
54
- 'There were errors when loading the datasource fields' + (<Error>e).message,
55
- );
56
- }
57
- }
58
- }
@@ -1,14 +0,0 @@
1
- import { GridColumnNames, GridRowData, ROW_FILTER_OPERATIONS } from '../shared';
2
-
3
- // Export the row filter operations
4
- export const rowFilterOpts = ROW_FILTER_OPERATIONS;
5
-
6
- // Define the specific subset of fields needed for this component
7
- export type RowFilterDatasourceData = Pick<
8
- GridRowData,
9
- | GridColumnNames.ColumnName
10
- | GridColumnNames.Type
11
- | GridColumnNames.Datasource
12
- | GridColumnNames.Filter
13
- | GridColumnNames.EnumValues
14
- >;
@@ -1,59 +0,0 @@
1
- import { css } from '@genesislcap/web-core';
2
- import { formLabel } from '../../../styles';
3
-
4
- export const styles = css`
5
- ${formLabel}
6
- :host {
7
- display: flex;
8
- flex-direction: column;
9
- gap: calc(var(--design-unit) * 2px);
10
- overflow-y: auto;
11
- overflow-x: hidden;
12
- }
13
-
14
- .heading-padding {
15
- padding-left: calc(var(--design-unit) * 4px);
16
- }
17
-
18
- .row-container {
19
- display: flex;
20
- justify-content: center;
21
- }
22
-
23
- .container {
24
- display: flex;
25
- flex-direction: column;
26
- gap: calc(var(--design-unit) * 2px);
27
- }
28
-
29
- .timezone-container {
30
- display: flex;
31
- flex-direction: column;
32
- padding: 0 calc(var(--design-unit) * 4px);
33
- }
34
-
35
- .enable-schedules {
36
- padding: calc(var(--design-unit) * 4px);
37
- display: flex;
38
- align-items: center;
39
- gap: calc(var(--design-unit) * 3px);
40
- }
41
-
42
- .parent-container.disabled {
43
- cursor: not-allowed;
44
- opacity: 50%;
45
- }
46
-
47
- .container.disabled,
48
- .container.disabled * {
49
- pointer-events: none;
50
- }
51
-
52
- p {
53
- margin: 0;
54
- }
55
-
56
- .timezone-combobox::part(listbox) {
57
- max-height: 20vh;
58
- }
59
- `;
@@ -1,80 +0,0 @@
1
- import { html, repeat, sync } from '@genesislcap/web-core';
2
- import { actions, selectors } from '../../../store';
3
- import { TOOLTIP, tooltip } from '../../../utils';
4
- import { OutputsConfig } from '../outputs-config/outputs-config';
5
- import type { Scheduling } from './scheduling';
6
-
7
- OutputsConfig;
8
-
9
- export const template = html<Scheduling>`
10
- <div class="container">
11
- <h1 class="heading-padding">Scheduling</h1>
12
- <p class="heading-padding">
13
- Here you can set up a schedule to generate and send reports automatically at your preferred
14
- time.
15
- </p>
16
- <div class="enable-schedules">
17
- <rapid-button
18
- data-test-id="config-enable-schedules"
19
- appearance=${(x) => (x.enableSchedules ? 'neutral' : 'primary')}
20
- @click=${(x, c) => x.toggleSchedule()}
21
- >
22
- ${(x) => (x.enableSchedules ? 'Disable Schedule' : 'Enable Schedule')}
23
- </rapid-button>
24
- </div>
25
- <div class="parent-container ${(x) => x.disabledClassNames}">
26
- <div class="container ${(x) => x.disabledClassNames}">
27
- <div class="timezone-container">
28
- <label class="label">Time Zone ${tooltip(TOOLTIP.DELIVERY_TIMEZONE)}</label>
29
- <rapid-combobox
30
- data-test-id="config-report-timezone"
31
- class="timezone-combobox"
32
- autocomplete="both"
33
- value="${() => selectors.baseConfig.getConfig().SCHEDULE?.TIME_ZONE || ''}"
34
- @change="${(x, ctx) =>
35
- actions.baseConfig.updateState({
36
- key: 'SCHEDULE',
37
- value: {
38
- CRON_EXPRESSION: selectors.baseConfig.getConfig().SCHEDULE?.CRON_EXPRESSION || '',
39
- TIME_ZONE: x.timeZones.find(
40
- (tz) => tz === (ctx.event.target as HTMLInputElement).value,
41
- )
42
- ? (ctx.event.target as HTMLInputElement).value
43
- : '',
44
- },
45
- })}"
46
- >
47
- ${repeat(
48
- (x) => x.timeZones,
49
- html`
50
- <rapid-option value="${(x) => x}">${(x) => x}</rapid-option>
51
- `,
52
- )}
53
- </rapid-combobox>
54
- </div>
55
- <rapid-scheduler-cron-builder
56
- :cron=${sync(
57
- () => selectors.baseConfig.getConfig().SCHEDULE?.CRON_EXPRESSION || '0 0 0 * * ?',
58
- )}
59
- @change="${(_, ctx) =>
60
- actions.baseConfig.updateState({
61
- key: 'SCHEDULE',
62
- value: {
63
- TIME_ZONE: selectors.baseConfig.getConfig().SCHEDULE?.TIME_ZONE || '',
64
- CRON_EXPRESSION: (ctx.event.target as HTMLInputElement).value,
65
- },
66
- })}"
67
- min-minute-interval="15"
68
- ></rapid-scheduler-cron-builder>
69
- </div>
70
- </div>
71
- </div>
72
- <h1 class="heading-padding">Report Destinations</h1>
73
- <p class="heading-padding">
74
- You can optionally select one or more destinations to deliver the report to. You may only select
75
- destinations configured under "Report Destinations".
76
- </p>
77
- <div class="heading-padding container">
78
- <outputs-config></outputs-config>
79
- </div>
80
- `;