@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,92 +0,0 @@
1
- import { IHeaderComp, IHeaderParams } from '@ag-grid-community/core';
2
- import { checkboxTag } from '../../tags'; // Ensure this is your custom checkbox tag or use a regular HTML input tag
3
-
4
- export class CustomHeaderCheckboxComponent implements IHeaderComp {
5
- private eCheckbox: HTMLElement;
6
- private params!: IHeaderParams;
7
- private indeterminateIndicator: HTMLElement | null = null;
8
-
9
- constructor() {
10
- this.eCheckbox = document.createElement(checkboxTag); // Create custom checkbox
11
- }
12
-
13
- refresh(params: IHeaderParams): boolean {
14
- return true;
15
- }
16
-
17
- init(params: IHeaderParams): void {
18
- this.params = params;
19
-
20
- this.eCheckbox.setAttribute('aria-label', 'Select all rows');
21
- this.eCheckbox.setAttribute('role', 'checkbox');
22
- this.eCheckbox.setAttribute('tabindex', '0');
23
-
24
- this.indeterminateIndicator =
25
- this.eCheckbox.shadowRoot?.querySelector('[part="indeterminate-indicator"]') || null;
26
-
27
- this.eCheckbox.addEventListener('click', this.onCheckboxClick);
28
- this.eCheckbox.addEventListener('keydown', this.onKeyDown);
29
-
30
- this.params.api.addEventListener('selectionChanged', this.updateCheckboxState);
31
- this.updateCheckboxState(); // Initial state update
32
- }
33
-
34
- private onKeyDown = (event: KeyboardEvent) => {
35
- // Spacebar triggers checkbox toggle
36
- if (event.key === ' ' || event.key === 'Spacebar') {
37
- event.preventDefault();
38
- this.onCheckboxClick();
39
- }
40
- };
41
-
42
- private onCheckboxClick = () => {
43
- const isChecked = this.eCheckbox.classList.contains('checked');
44
- this.params.api.forEachNode((node) => node.setSelected(!isChecked));
45
- this.updateCheckboxState();
46
- };
47
-
48
- private updateCheckboxState = () => {
49
- const selectedNodes = this.params.api.getSelectedNodes();
50
- const displayedRowCount = this.params.api.getDisplayedRowCount();
51
-
52
- // Remove all state classes first
53
- this.eCheckbox.classList.remove('checked', 'unchecked', 'indeterminate');
54
- this.eCheckbox.removeAttribute('aria-checked');
55
-
56
- if (selectedNodes.length === displayedRowCount && displayedRowCount > 0) {
57
- this.setCheckboxState('checked', true);
58
- } else if (selectedNodes.length === 0) {
59
- this.setCheckboxState('unchecked', false);
60
- } else {
61
- this.setCheckboxState('indeterminate', false);
62
- this.updateIndeterminateIndicator();
63
- }
64
- };
65
-
66
- private setCheckboxState(state: string, isChecked: boolean) {
67
- this.eCheckbox.classList.add(state);
68
- this.eCheckbox.setAttribute(
69
- 'aria-checked',
70
- state === 'checked' ? 'true' : state === 'unchecked' ? 'false' : 'mixed',
71
- );
72
- }
73
-
74
- private updateIndeterminateIndicator() {
75
- if (!this.indeterminateIndicator) {
76
- this.indeterminateIndicator = this.eCheckbox.shadowRoot?.querySelector(
77
- '[part="indeterminate-indicator"]',
78
- );
79
- }
80
- this.indeterminateIndicator.style.backgroundColor = 'var(--accent-fill-rest)';
81
- }
82
-
83
- getGui(): HTMLElement {
84
- return this.eCheckbox; // Return the custom checkbox element
85
- }
86
-
87
- destroy(): void {
88
- this.params.api.removeEventListener('selectionChanged', this.updateCheckboxState);
89
- this.eCheckbox.removeEventListener('click', this.onCheckboxClick);
90
- this.eCheckbox.removeEventListener('keydown', this.onKeyDown);
91
- }
92
- }
@@ -1,237 +0,0 @@
1
- import { ICellRendererComp, ICellRendererParams } from '@ag-grid-community/core';
2
- import { css, html, observable, FoundationElement, ref } from '@genesislcap/web-core';
3
- import { getFilterTypeByFieldType } from '../../utils/getFiltersByType';
4
-
5
- /**
6
- * Custom params interface for the filter value renderer
7
- * @public
8
- */
9
- export interface FilterValueRendererParams {
10
- onChange?: (value: any, params: ICellRendererParams) => void;
11
- accessor?: string;
12
- }
13
-
14
- const ISO_DATETIME_LENGTH = 16;
15
-
16
- /**
17
- * The AG Filter Value Renderer element.
18
- * Provides type-aware input fields for filter values (text, number, date, datetime)
19
- * @public
20
- * @tagname %%prefix%%-filter-value-renderer
21
- */
22
- export class FilterValueRenderer extends FoundationElement implements ICellRendererComp {
23
- @observable
24
- public params: ICellRendererParams & FilterValueRendererParams;
25
-
26
- value: any = '';
27
- inputElement: HTMLInputElement;
28
-
29
- @observable
30
- inputType: 'text' | 'number' | 'date' | 'datetime-local' = 'text';
31
-
32
- /**
33
- * Initialize the renderer with cell parameters
34
- */
35
- public init(params: ICellRendererParams & FilterValueRendererParams) {
36
- if (!params) return;
37
-
38
- this.params = params;
39
-
40
- // Get value using accessor or direct value
41
- const accessor = params.accessor;
42
- let value = params.value;
43
-
44
- if (accessor && params.data) {
45
- const keys = accessor.split('.');
46
- let current = params.data;
47
- for (const key of keys) {
48
- current = current?.[key];
49
- }
50
- value = current;
51
- }
52
-
53
- // Determine input type based on field type
54
- const fieldType = params.data?.type;
55
- const filterType = getFilterTypeByFieldType(fieldType);
56
-
57
- switch (filterType) {
58
- case 'number':
59
- this.inputType = 'number';
60
- this.value = value ?? '';
61
- break;
62
-
63
- case 'date':
64
- this.inputType = 'date';
65
- // Convert epoch timestamp or Date object to ISO date string (YYYY-MM-DD)
66
- if (value) {
67
- if (typeof value === 'number') {
68
- // Handle epoch timestamp
69
- const date = new Date(value);
70
- this.value = date.toISOString().split('T')[0];
71
- } else if (typeof value === 'string') {
72
- // Handle ISO string or other date formats
73
- const date = new Date(value);
74
- if (!isNaN(date.getTime())) {
75
- this.value = date.toISOString().split('T')[0];
76
- } else {
77
- this.value = value;
78
- }
79
- } else if (value instanceof Date) {
80
- this.value = value.toISOString().split('T')[0];
81
- } else {
82
- this.value = value;
83
- }
84
- } else {
85
- this.value = '';
86
- }
87
- break;
88
-
89
- case 'datetime':
90
- this.inputType = 'datetime-local';
91
- // Convert epoch timestamp or Date object to ISO datetime string (YYYY-MM-DDTHH:mm)
92
- if (value) {
93
- if (typeof value === 'number') {
94
- // Handle epoch timestamp
95
- const date = new Date(value);
96
- this.value = date.toISOString().slice(0, ISO_DATETIME_LENGTH); // YYYY-MM-DDTHH:mm
97
- } else if (typeof value === 'string') {
98
- // Handle ISO string or other date formats
99
- const date = new Date(value);
100
- if (!isNaN(date.getTime())) {
101
- this.value = date.toISOString().slice(0, ISO_DATETIME_LENGTH); // YYYY-MM-DDTHH:mm
102
- } else {
103
- this.value = value;
104
- }
105
- } else if (value instanceof Date) {
106
- this.value = value.toISOString().slice(0, ISO_DATETIME_LENGTH); // YYYY-MM-DDTHH:mm
107
- } else {
108
- this.value = value;
109
- }
110
- } else {
111
- this.value = '';
112
- }
113
- break;
114
-
115
- case 'text':
116
- default:
117
- this.inputType = 'text';
118
- this.value = value ?? '';
119
- break;
120
- }
121
-
122
- // Set input value directly after element is ready
123
- if (this.inputElement) {
124
- this.inputElement.value = this.value;
125
- }
126
- }
127
-
128
- /**
129
- * Handle input blur events - only update when user leaves the field
130
- * This prevents focus loss during typing
131
- */
132
- public handleChange(event: Event) {
133
- const input = event.target as HTMLInputElement;
134
- const newValue = input.value;
135
-
136
- // Store value internally (not as observable to avoid re-render)
137
- this.value = newValue;
138
-
139
- // Call onChange callback if provided
140
- if (this.params.onChange) {
141
- this.params.onChange(newValue, this.params);
142
- }
143
- }
144
-
145
- /**
146
- * Get the DOM element for the cell
147
- */
148
- public getGui(): HTMLElement {
149
- return this;
150
- }
151
-
152
- /**
153
- * Cleanup when renderer is destroyed
154
- */
155
- public destroy() {
156
- // No cleanup needed
157
- }
158
-
159
- /**
160
- * Refresh the cell with new data
161
- */
162
- public refresh(params: ICellRendererParams): boolean {
163
- // Return false to indicate we don't support refresh
164
- // AG Grid will destroy and recreate the cell renderer instead
165
- return false;
166
- }
167
- }
168
-
169
- /**
170
- * The AG Filter Value Renderer Styles.
171
- * @public
172
- */
173
- export const agFilterValueRendererStyles = css`
174
- :host {
175
- align-items: center;
176
- display: flex;
177
- height: 100%;
178
- width: 100%;
179
- }
180
-
181
- .filter-input {
182
- width: 100%;
183
- height: 100%;
184
- padding: 0 8px;
185
- border: none;
186
- background: transparent;
187
- font-family: inherit;
188
- font-size: inherit;
189
- color: inherit;
190
- outline: none;
191
- }
192
-
193
- .filter-input:focus {
194
- outline: none;
195
- background: var(--ag-input-focus-background-color, var(--neutral-fill-input-rest));
196
- }
197
-
198
- .filter-input[type='date'],
199
- .filter-input[type='datetime-local'] {
200
- padding: 0 4px;
201
- }
202
-
203
- .filter-input[type='number'] {
204
- text-align: right;
205
- }
206
- `;
207
-
208
- /**
209
- * Get the template for the Filter Value Renderer
210
- * @returns A template for the filter value input
211
- * @public
212
- */
213
- export const getAgFilterValueRendererTemplate = () => {
214
- return html<FilterValueRenderer>`
215
- <input
216
- ${ref('inputElement')}
217
- class="filter-input"
218
- type="${(x) => x.inputType ?? 'text'}"
219
- value="${(x) => x.value ?? ''}"
220
- @blur="${(x, c) => x.handleChange(c.event)}"
221
- placeholder="Enter value..."
222
- />
223
- `;
224
- };
225
-
226
- /**
227
- * A function that returns a Foundation Filter Value Renderer registration for configuring the component with a DesignSystem.
228
- *
229
- * @public
230
- * @remarks
231
- * HTML Element: \<foundation-filter-value-renderer\>
232
- */
233
- export const foundationAgFilterValueRenderer = FilterValueRenderer.compose({
234
- baseName: 'grid-pro-filter-value-renderer',
235
- styles: agFilterValueRendererStyles,
236
- template: getAgFilterValueRendererTemplate(),
237
- });
@@ -1,148 +0,0 @@
1
- import { ICellRendererComp, ICellRendererParams } from '@ag-grid-community/core';
2
- import { BooleanRendererParams, EDITED_COLUMN_FIELD } from '@genesislcap/foundation-zero-grid-pro';
3
- import { css, html, observable, FoundationElement } from '@genesislcap/web-core';
4
-
5
- /**
6
- * The AG Row Select Renderer element.
7
- * @public
8
- * @tagname %%prefix%%-row-select-renderer
9
- */
10
- export class RowSelectRenderer extends FoundationElement implements ICellRendererComp {
11
- @observable
12
- public params: ICellRendererParams & BooleanRendererParams;
13
-
14
- @observable
15
- checked: boolean;
16
-
17
- public isDisabled(data): boolean {
18
- if (typeof this.params?.isDisabled === 'function') {
19
- try {
20
- return this.params.isDisabled(data);
21
- } catch (error) {
22
- // logger.error('Error executing grid action cell renderer isDisabled callback:', error);
23
- }
24
- }
25
- return false;
26
- }
27
-
28
- public init(params: ICellRendererParams) {
29
- if (!params) return;
30
- this.params = params;
31
- this.checked = !!params.value;
32
- const { ariaLabelField } = params.context;
33
- this.ariaLabel = `Select row for ${params.data[ariaLabelField]}. Press Space to toggle selection.`;
34
- this.params.api.addEventListener('selectionChanged', this.onSelectionChanged.bind(this));
35
- }
36
-
37
- public onSelectionChanged() {
38
- if (this.params && this.params.node) {
39
- this.checked = this.params.node.isSelected() ?? false;
40
- }
41
- }
42
-
43
- public changeHandler(e) {
44
- this.checked = e.target.checked;
45
- this.params.node.setSelected(this.checked);
46
- }
47
-
48
- public getGui(): HTMLElement {
49
- return this;
50
- }
51
-
52
- public destroy() {
53
- if (this.params && this.params.api) {
54
- // oxlint-disable-next-line unicorn/no-invalid-remove-event-listener -- symmetric to addEventListener(.bind)
55
- this.params.api.removeEventListener('selectionChanged', this.onSelectionChanged.bind(this));
56
- }
57
- }
58
-
59
- public refresh(params: ICellRendererParams) {
60
- this.checked = params.value;
61
- return true;
62
- }
63
-
64
- getValue() {
65
- return this.checked;
66
- }
67
-
68
- isCancelBeforeStart() {
69
- return !!this.params.data[EDITED_COLUMN_FIELD];
70
- }
71
- }
72
-
73
- /**
74
- * The AG Boolean Renderer Styles.
75
- * @public
76
- */
77
- export const agRowSelectRendererStyles = css`
78
- :host {
79
- align-items: center;
80
- display: flex;
81
- height: 100%;
82
- }
83
-
84
- .custom-checkbox {
85
- width: calc((var(--base-height-multiplier) - 1) * 2px);
86
- height: calc((var(--base-height-multiplier) - 1) * 2px);
87
- background: var(--ag-background-color);
88
- }
89
-
90
- .custom-checkbox:focus {
91
- outline: none;
92
- box-shadow: var(--ag-input-focus-box-shadow);
93
- border-radius: 2px;
94
- }
95
-
96
- .custom-checkbox::part(control) {
97
- width: calc((var(--base-height-multiplier) - 1) * 2px);
98
- height: calc((var(--base-height-multiplier) - 1) * 2px);
99
- background: var(--ag-background-color);
100
- border-radius: 2px;
101
- border: calc(var(--stroke-width) * 2px) solid var(--ag-checkbox-unchecked-color);
102
- }
103
-
104
- .custom-checkbox[aria-checked='true'],
105
- .custom-checkbox[aria-checked='true']::part(control) {
106
- background: var(--ag-checkbox-checked-color);
107
- border: none;
108
- }
109
-
110
- .custom-checkbox[aria-checked='true']::part(checked-indicator) {
111
- fill: var(--foreground-on-accent-rest);
112
- box-shadow: none;
113
- border-radius: 0;
114
- }
115
- `;
116
-
117
- /**
118
- * Get a Design System prefixed Checkbox template.
119
- * @param designSystem - The design system prefix to use. Defaults to 'foundation'.
120
- * @returns A Checkbox component template prefixed with the correct design system.
121
- * @public
122
- */
123
- export const getAgRowSelectRendererTemplate = (designSystem = 'rapid') => {
124
- const checkboxComponent = `${designSystem}-checkbox`;
125
- return html<RowSelectRenderer>`
126
- <${checkboxComponent}
127
- role="checkbox"
128
- class="custom-checkbox"
129
- @change=${(x, c) => x.changeHandler(c.event)}
130
- :checked=${(x) => x.checked}
131
- :disabled=${(x) => x.isDisabled(x.params.data)}
132
- aria-label=${(x) => x.ariaLabel}
133
- ></${checkboxComponent}>
134
- `;
135
- };
136
-
137
- /**
138
- * A function that returns a Foundation Row Select Renderer registration for configuring the component with a DesignSystem.
139
- *
140
- * @public
141
- * @remarks
142
- * HTML Element: \<foundation-row-select-renderer\>
143
- */
144
- export const foundationAgRowSelectRenderer = RowSelectRenderer.compose({
145
- baseName: 'grid-pro-row-select-renderer',
146
- styles: agRowSelectRendererStyles,
147
- template: getAgRowSelectRendererTemplate(),
148
- });
@@ -1,83 +0,0 @@
1
- import type { GridOptions } from '@ag-grid-community/core';
2
- import { defaultRowConfig } from '../../constants/grid-config';
3
- import { RowSelectRenderer } from '../renderers/row-select.renderer';
4
-
5
- /**
6
- * Field selection grid config
7
- */
8
- export const FIELD_SELECT_CONFIG = {
9
- colDefs: [
10
- {
11
- cellRenderer: 'row-select',
12
- checkboxSelection: false,
13
- filter: false,
14
- headerCheckboxSelection: true,
15
- suppressMenu: true,
16
- suppressSorting: true,
17
- width: 60,
18
- },
19
- {
20
- field: 'name',
21
- headerName: 'Field Name',
22
- },
23
- ],
24
- gridOptions: {
25
- ...defaultRowConfig,
26
- components: {
27
- 'row-select': RowSelectRenderer,
28
- },
29
- defaultColDef: {
30
- filter: false,
31
- floatingFilter: false,
32
- sortable: false,
33
- sort: 'asc',
34
- suppressMenu: false,
35
- resizable: false,
36
- },
37
- context: {
38
- ariaLabelField: 'name',
39
- },
40
- rowSelection: 'multiple',
41
- suppressRowClickSelection: true,
42
- } as GridOptions,
43
- };
44
-
45
- /**
46
- * Selected fields config
47
- */
48
- export const SELECTED_FIELDS_CONFIG = {
49
- colDefs: [
50
- {
51
- cellRenderer: 'row-select',
52
- checkboxSelection: false,
53
- filter: false,
54
- headerCheckboxSelection: true,
55
- suppressMenu: true,
56
- suppressSorting: true,
57
- width: 60,
58
- },
59
- {
60
- field: 'name',
61
- headerName: 'Column name',
62
- },
63
- ],
64
- gridOptions: {
65
- ...defaultRowConfig,
66
- components: {
67
- 'row-select': RowSelectRenderer,
68
- },
69
- defaultColDef: {
70
- filter: false,
71
- floatingFilter: false,
72
- sortable: false,
73
- suppressMenu: false,
74
- resizable: false,
75
- },
76
- context: {
77
- ariaLabelField: 'name',
78
- },
79
- animateRows: true,
80
- debug: true,
81
- rowDragManaged: true,
82
- },
83
- };