@pega/angular-sdk-overrides 24.2.10 → 25.1.10

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 (257) hide show
  1. package/lib/designSystemExtension/alert/alert.component.scss +3 -3
  2. package/lib/designSystemExtension/alert/alert.component.ts +0 -1
  3. package/lib/designSystemExtension/alert-banner/alert-banner.component.ts +0 -1
  4. package/lib/designSystemExtension/banner/banner.component.html +1 -1
  5. package/lib/designSystemExtension/banner/banner.component.scss +17 -3
  6. package/lib/designSystemExtension/banner/banner.component.ts +0 -1
  7. package/lib/designSystemExtension/case-create-stage/case-create-stage.component.ts +0 -1
  8. package/lib/designSystemExtension/field-group/field-group.component.ts +0 -1
  9. package/lib/designSystemExtension/material-case-summary/material-case-summary.component.html +6 -3
  10. package/lib/designSystemExtension/material-case-summary/material-case-summary.component.scss +5 -34
  11. package/lib/designSystemExtension/material-case-summary/material-case-summary.component.ts +0 -2
  12. package/lib/designSystemExtension/material-details/material-details.component.scss +0 -5
  13. package/lib/designSystemExtension/material-details/material-details.component.ts +0 -1
  14. package/lib/designSystemExtension/material-details-fields/material-details-fields.component.html +3 -3
  15. package/lib/designSystemExtension/material-details-fields/material-details-fields.component.scss +4 -3
  16. package/lib/designSystemExtension/material-details-fields/material-details-fields.component.ts +6 -1
  17. package/lib/designSystemExtension/material-summary-item/material-summary-item.component.scss +4 -17
  18. package/lib/designSystemExtension/material-summary-item/material-summary-item.component.ts +0 -1
  19. package/lib/designSystemExtension/material-summary-list/material-summary-list.component.ts +0 -1
  20. package/lib/designSystemExtension/material-utility/material-utility.component.scss +1 -2
  21. package/lib/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.scss +1 -1
  22. package/lib/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.ts +0 -1
  23. package/lib/designSystemExtension/operator/operator.component.html +2 -2
  24. package/lib/designSystemExtension/operator/operator.component.scss +13 -12
  25. package/lib/designSystemExtension/operator/operator.component.ts +4 -5
  26. package/lib/designSystemExtension/pulse/pulse.component.scss +2 -2
  27. package/lib/designSystemExtension/pulse/pulse.component.ts +0 -1
  28. package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.html +4 -17
  29. package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.scss +0 -1
  30. package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.ts +30 -1
  31. package/lib/designSystemExtension/wss-quick-create/wss-quick-create.component.scss +16 -9
  32. package/lib/designSystemExtension/wss-quick-create/wss-quick-create.component.ts +0 -1
  33. package/lib/field/auto-complete/auto-complete.component.html +0 -2
  34. package/lib/field/auto-complete/auto-complete.component.ts +48 -173
  35. package/lib/field/cancel-alert/cancel-alert.component.html +8 -12
  36. package/lib/field/cancel-alert/cancel-alert.component.scss +2 -3
  37. package/lib/field/cancel-alert/cancel-alert.component.ts +24 -37
  38. package/lib/field/check-box/check-box.component.html +17 -6
  39. package/lib/field/check-box/check-box.component.scss +0 -1
  40. package/lib/field/check-box/check-box.component.ts +25 -151
  41. package/lib/field/currency/currency.component.ts +54 -181
  42. package/lib/field/date/date.component.html +4 -3
  43. package/lib/field/date/date.component.ts +30 -151
  44. package/lib/field/date-time/date-time.component.html +2 -2
  45. package/lib/field/date-time/date-time.component.ts +47 -148
  46. package/lib/field/decimal/decimal.component.html +1 -0
  47. package/lib/field/decimal/decimal.component.ts +61 -164
  48. package/lib/field/dropdown/dropdown.component.html +1 -0
  49. package/lib/field/dropdown/dropdown.component.ts +43 -152
  50. package/lib/field/email/email.component.ts +28 -158
  51. package/lib/field/field.base.ts +149 -0
  52. package/lib/field/group/group.component.ts +7 -5
  53. package/lib/field/integer/integer.component.html +1 -1
  54. package/lib/field/integer/integer.component.ts +30 -160
  55. package/lib/field/list-view-action-buttons/list-view-action-buttons.component.html +1 -1
  56. package/lib/field/list-view-action-buttons/list-view-action-buttons.component.ts +3 -3
  57. package/lib/field/location/config-ext.json +8 -0
  58. package/lib/field/location/location.component.html +45 -0
  59. package/lib/field/location/location.component.scss +18 -0
  60. package/lib/field/location/location.component.spec.ts +22 -0
  61. package/lib/field/location/location.component.ts +280 -0
  62. package/lib/field/multiselect/multiselect.component.ts +47 -152
  63. package/lib/field/multiselect/utils.ts +55 -47
  64. package/lib/field/object-reference/object-reference.component.html +17 -0
  65. package/lib/field/object-reference/object-reference.component.scss +0 -0
  66. package/lib/field/object-reference/object-reference.component.spec.ts +22 -0
  67. package/lib/field/object-reference/object-reference.component.ts +237 -0
  68. package/lib/field/percentage/percentage.component.html +1 -1
  69. package/lib/field/percentage/percentage.component.ts +62 -170
  70. package/lib/field/phone/config-ext.json +1 -1
  71. package/lib/field/phone/phone.component.html +18 -17
  72. package/lib/field/phone/phone.component.scss +4 -0
  73. package/lib/field/phone/phone.component.ts +47 -156
  74. package/lib/field/radio-buttons/radio-buttons.component.html +17 -12
  75. package/lib/field/radio-buttons/radio-buttons.component.scss +4 -2
  76. package/lib/field/radio-buttons/radio-buttons.component.ts +37 -160
  77. package/lib/field/rich-text/rich-text.component.html +2 -0
  78. package/lib/field/rich-text/rich-text.component.scss +172 -0
  79. package/lib/field/rich-text/rich-text.component.ts +32 -93
  80. package/lib/field/scalar-list/scalar-list.component.ts +17 -73
  81. package/lib/field/selectable-card/selectable-card.component.html +70 -0
  82. package/lib/field/selectable-card/selectable-card.component.scss +11 -0
  83. package/lib/field/selectable-card/selectable-card.component.spec.ts +22 -0
  84. package/lib/field/selectable-card/selectable-card.component.ts +219 -0
  85. package/lib/field/semantic-link/semantic-link.component.html +4 -8
  86. package/lib/field/semantic-link/semantic-link.component.scss +0 -13
  87. package/lib/field/semantic-link/semantic-link.component.ts +165 -6
  88. package/lib/field/text/text.component.scss +0 -1
  89. package/lib/field/text/text.component.ts +6 -5
  90. package/lib/field/text-area/text-area.component.html +4 -2
  91. package/lib/field/text-area/text-area.component.ts +30 -155
  92. package/lib/field/text-content/text-content.component.ts +0 -1
  93. package/lib/field/text-input/text-input.component.html +1 -1
  94. package/lib/field/text-input/text-input.component.ts +28 -158
  95. package/lib/field/time/time.component.html +2 -2
  96. package/lib/field/time/time.component.ts +34 -154
  97. package/lib/field/url/url.component.html +1 -1
  98. package/lib/field/url/url.component.ts +28 -157
  99. package/lib/field/user-reference/user-reference.component.html +40 -38
  100. package/lib/field/user-reference/user-reference.component.scss +0 -1
  101. package/lib/field/user-reference/user-reference.component.ts +70 -9
  102. package/lib/infra/Containers/flow-container/flow-container.component.html +2 -2
  103. package/lib/infra/Containers/flow-container/flow-container.component.ts +24 -51
  104. package/lib/infra/Containers/flow-container/helpers.ts +2 -2
  105. package/lib/infra/Containers/hybrid-view-container/hybrid-view-container.component.ts +0 -1
  106. package/lib/infra/Containers/modal-view-container/modal-view-container.component.html +1 -11
  107. package/lib/infra/Containers/modal-view-container/modal-view-container.component.ts +5 -18
  108. package/lib/infra/Containers/view-container/helper.ts +35 -2
  109. package/lib/infra/Containers/view-container/view-container.component.ts +1 -2
  110. package/lib/infra/action-buttons/action-buttons.component.html +13 -8
  111. package/lib/infra/action-buttons/action-buttons.component.scss +23 -0
  112. package/lib/infra/action-buttons/action-buttons.component.ts +1 -3
  113. package/lib/infra/assignment/assignment.component.html +1 -1
  114. package/lib/infra/assignment/assignment.component.ts +100 -46
  115. package/lib/infra/assignment-card/assignment-card.component.html +2 -2
  116. package/lib/infra/assignment-card/assignment-card.component.scss +0 -4
  117. package/lib/infra/assignment-card/assignment-card.component.ts +21 -5
  118. package/lib/infra/dashboard-filter/dashboard-filter.component.ts +0 -1
  119. package/lib/infra/defer-load/defer-load.component.html +6 -2
  120. package/lib/infra/defer-load/defer-load.component.ts +25 -12
  121. package/lib/infra/error-boundary/error-boundary.component.ts +0 -1
  122. package/lib/infra/multi-step/multi-step.component.html +22 -38
  123. package/lib/infra/multi-step/multi-step.component.scss +14 -27
  124. package/lib/infra/multi-step/multi-step.component.ts +0 -1
  125. package/lib/infra/navbar/navbar.component.html +36 -41
  126. package/lib/infra/navbar/navbar.component.scss +22 -4
  127. package/lib/infra/navbar/navbar.component.ts +8 -6
  128. package/lib/infra/reference/reference.component.ts +82 -90
  129. package/lib/infra/region/region.component.ts +0 -1
  130. package/lib/infra/root-container/root-container.component.html +2 -15
  131. package/lib/infra/root-container/root-container.component.scss +0 -1
  132. package/lib/infra/root-container/root-container.component.ts +25 -32
  133. package/lib/infra/stages/stages.component.html +4 -3
  134. package/lib/infra/stages/stages.component.scss +12 -36
  135. package/lib/infra/stages/stages.component.ts +4 -3
  136. package/lib/infra/view/view.component.html +1 -1
  137. package/lib/infra/view/view.component.ts +3 -7
  138. package/lib/template/advanced-search/advanced-search.component.html +12 -0
  139. package/lib/template/advanced-search/advanced-search.component.scss +0 -0
  140. package/lib/template/advanced-search/advanced-search.component.spec.ts +0 -0
  141. package/lib/template/advanced-search/advanced-search.component.ts +112 -0
  142. package/lib/template/advanced-search/advanced-search.service.ts +27 -0
  143. package/lib/template/advanced-search/search-group/persist-utils.ts +56 -0
  144. package/lib/template/advanced-search/search-groups/search-groups.component.html +32 -0
  145. package/lib/template/advanced-search/search-groups/search-groups.component.scss +0 -0
  146. package/lib/template/advanced-search/search-groups/search-groups.component.spec.ts +0 -0
  147. package/lib/template/advanced-search/search-groups/search-groups.component.ts +294 -0
  148. package/lib/template/advanced-search/search-groups/utils.ts +29 -0
  149. package/lib/template/app-shell/app-shell.component.html +4 -1
  150. package/lib/template/app-shell/app-shell.component.scss +0 -3
  151. package/lib/template/app-shell/app-shell.component.ts +46 -8
  152. package/lib/template/banner-page/banner-page.component.ts +0 -1
  153. package/lib/template/base/form-template-base.ts +6 -0
  154. package/lib/template/case-summary/case-summary.component.scss +0 -2
  155. package/lib/template/case-summary/case-summary.component.ts +6 -22
  156. package/lib/template/case-view/case-view.component.html +4 -4
  157. package/lib/template/case-view/case-view.component.scss +18 -10
  158. package/lib/template/case-view/case-view.component.ts +1 -11
  159. package/lib/template/confirmation/confirmation.component.html +2 -2
  160. package/lib/template/confirmation/confirmation.component.ts +0 -1
  161. package/lib/template/data-reference/data-reference.component.html +11 -8
  162. package/lib/template/data-reference/data-reference.component.ts +346 -113
  163. package/lib/template/data-reference/search-form/search-form.component.html +39 -0
  164. package/lib/template/data-reference/search-form/search-form.component.scss +11 -0
  165. package/lib/template/data-reference/search-form/search-form.component.spec.ts +0 -0
  166. package/lib/template/data-reference/search-form/search-form.component.ts +167 -0
  167. package/lib/template/data-reference/search-form/tabsData.ts +160 -0
  168. package/lib/template/data-reference/utils.ts +92 -0
  169. package/lib/template/default-form/default-form.component.ts +45 -5
  170. package/lib/template/default-page/default-page.component.html +34 -0
  171. package/lib/template/default-page/default-page.component.scss +31 -0
  172. package/lib/template/default-page/default-page.component.spec.ts +24 -0
  173. package/lib/template/default-page/default-page.component.ts +64 -0
  174. package/lib/template/details/details.component.ts +0 -1
  175. package/lib/template/details-narrow-wide/details-narrow-wide.component.ts +0 -1
  176. package/lib/template/details-one-column/details-one-column.component.ts +0 -1
  177. package/lib/template/details-sub-tabs/details-sub-tabs.component.ts +0 -1
  178. package/lib/template/details-three-column/details-three-column.component.ts +0 -1
  179. package/lib/template/details-two-column/details-two-column.component.ts +0 -1
  180. package/lib/template/details-wide-narrow/details-wide-narrow.component.ts +0 -1
  181. package/lib/template/dynamic-tabs/dynamic-tabs.component.ts +0 -1
  182. package/lib/template/field-group-list/field-group-list.component.scss +0 -1
  183. package/lib/template/field-group-list/field-group-list.component.ts +0 -1
  184. package/lib/template/field-group-template/field-group-template.component.html +7 -7
  185. package/lib/template/field-group-template/field-group-template.component.scss +8 -0
  186. package/lib/template/field-group-template/field-group-template.component.ts +64 -55
  187. package/lib/template/field-value-list/field-value-list.component.html +2 -2
  188. package/lib/template/field-value-list/field-value-list.component.scss +4 -0
  189. package/lib/template/field-value-list/field-value-list.component.ts +0 -1
  190. package/lib/template/inline-dashboard/inline-dashboard.component.ts +0 -1
  191. package/lib/template/inline-dashboard-page/inline-dashboard-page.component.ts +1 -2
  192. package/lib/template/list-page/list-page.component.ts +0 -1
  193. package/lib/template/list-view/list-view.component.html +170 -160
  194. package/lib/template/list-view/list-view.component.scss +25 -21
  195. package/lib/template/list-view/list-view.component.ts +208 -122
  196. package/lib/template/list-view/listViewHelpers.ts +3 -9
  197. package/lib/template/list-view/utils.ts +27 -7
  198. package/lib/template/multi-reference-readonly/multi-reference-readonly.component.ts +0 -1
  199. package/lib/template/narrow-wide-form/narrow-wide-form.component.ts +0 -1
  200. package/lib/template/object-page/object-page.component.html +1 -0
  201. package/lib/template/object-page/object-page.component.scss +0 -0
  202. package/lib/template/object-page/object-page.component.spec.ts +22 -0
  203. package/lib/template/object-page/object-page.component.ts +14 -0
  204. package/lib/template/one-column/one-column.component.ts +0 -1
  205. package/lib/template/one-column-page/one-column-page.component.ts +0 -1
  206. package/lib/template/one-column-tab/one-column-tab.component.scss +1 -1
  207. package/lib/template/one-column-tab/one-column-tab.component.ts +0 -1
  208. package/lib/template/page/page.component.ts +0 -1
  209. package/lib/template/promoted-filters/promoted-filters.component.ts +0 -1
  210. package/lib/template/repeating-structures/repeating-structures.component.ts +0 -2
  211. package/lib/template/self-service-case-view/self-service-case-view.component.html +78 -0
  212. package/lib/template/self-service-case-view/self-service-case-view.component.scss +132 -0
  213. package/lib/template/self-service-case-view/self-service-case-view.component.spec.ts +24 -0
  214. package/lib/template/self-service-case-view/self-service-case-view.component.ts +207 -0
  215. package/lib/template/simple-table/simple-table.component.ts +0 -2
  216. package/lib/template/simple-table-manual/helpers.ts +126 -10
  217. package/lib/template/simple-table-manual/simple-table-manual.component.html +27 -8
  218. package/lib/template/simple-table-manual/simple-table-manual.component.scss +15 -17
  219. package/lib/template/simple-table-manual/simple-table-manual.component.ts +103 -45
  220. package/lib/template/simple-table-select/simple-table-select.component.ts +0 -1
  221. package/lib/template/single-reference-readonly/single-reference-readonly.component.html +4 -1
  222. package/lib/template/single-reference-readonly/single-reference-readonly.component.scss +21 -0
  223. package/lib/template/single-reference-readonly/single-reference-readonly.component.ts +104 -4
  224. package/lib/template/sub-tabs/sub-tabs.component.ts +0 -1
  225. package/lib/template/three-column/three-column.component.ts +0 -1
  226. package/lib/template/three-column-page/three-column-page.component.ts +0 -1
  227. package/lib/template/two-column/two-column.component.ts +0 -1
  228. package/lib/template/two-column-page/two-column-page.component.ts +0 -1
  229. package/lib/template/two-column-tab/two-column-tab.component.ts +0 -1
  230. package/lib/template/utils.ts +58 -0
  231. package/lib/template/wide-narrow-form/wide-narrow-form.component.ts +0 -1
  232. package/lib/template/wide-narrow-page/wide-narrow-page.component.ts +0 -1
  233. package/lib/template/wss-nav-bar/wss-nav-bar.component.html +6 -5
  234. package/lib/template/wss-nav-bar/wss-nav-bar.component.scss +8 -17
  235. package/lib/template/wss-nav-bar/wss-nav-bar.component.ts +1 -9
  236. package/lib/widget/app-announcement/app-announcement.component.html +1 -2
  237. package/lib/widget/app-announcement/app-announcement.component.scss +2 -2
  238. package/lib/widget/app-announcement/app-announcement.component.ts +0 -1
  239. package/lib/widget/attachment/Attachment.types.ts +92 -0
  240. package/lib/widget/attachment/AttachmentUtils.ts +287 -0
  241. package/lib/widget/attachment/attachment.component.html +3 -3
  242. package/lib/widget/attachment/attachment.component.scss +9 -12
  243. package/lib/widget/attachment/attachment.component.ts +267 -254
  244. package/lib/widget/case-history/case-history.component.ts +0 -1
  245. package/lib/widget/feed-container/feed-container.component.scss +3 -9
  246. package/lib/widget/feed-container/feed-container.component.ts +2 -5
  247. package/lib/widget/file-utility/file-utility.component.html +3 -3
  248. package/lib/widget/file-utility/file-utility.component.scss +6 -17
  249. package/lib/widget/file-utility/file-utility.component.ts +24 -9
  250. package/lib/widget/list-utility/list-utility.component.scss +4 -5
  251. package/lib/widget/list-utility/list-utility.component.ts +0 -1
  252. package/lib/widget/quick-create/quick-create.component.ts +41 -23
  253. package/lib/widget/todo/todo.component.html +12 -10
  254. package/lib/widget/todo/todo.component.scss +20 -10
  255. package/lib/widget/todo/todo.component.ts +11 -7
  256. package/lib/widget/utility/utility.component.ts +0 -1
  257. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import { Component, OnInit, Input, ViewChild, forwardRef, OnDestroy } from '@angular/core';
2
+ import { SelectionModel } from '@angular/cdk/collections';
2
3
  import { CommonModule } from '@angular/common';
3
4
  import { MatDatepickerModule } from '@angular/material/datepicker';
4
5
  import { MatOptionModule } from '@angular/material/core';
@@ -23,8 +24,6 @@ import { formatters } from '@pega/angular-sdk-components';
23
24
 
24
25
  import { init } from './listViewHelpers';
25
26
 
26
- declare const window: any;
27
-
28
27
  const SELECTION_MODE = { SINGLE: 'single', MULTI: 'multi' };
29
28
 
30
29
  interface ListViewProps {
@@ -44,6 +43,10 @@ interface ListViewProps {
44
43
  value: any;
45
44
  readonlyContextList: any;
46
45
  label?: string;
46
+ displayAs?: string;
47
+ showRecords: boolean;
48
+ viewName?: string;
49
+ localeReference?: any;
47
50
  }
48
51
 
49
52
  export class Group {
@@ -60,7 +63,6 @@ export class Group {
60
63
  selector: 'app-list-view',
61
64
  templateUrl: './list-view.component.html',
62
65
  styleUrls: ['./list-view.component.scss'],
63
- standalone: true,
64
66
  imports: [
65
67
  CommonModule,
66
68
  MatFormFieldModule,
@@ -91,6 +93,7 @@ export class ListViewComponent implements OnInit, OnDestroy {
91
93
  @Input() payload;
92
94
 
93
95
  repeatList$: MatTableDataSource<any>;
96
+ selection = new SelectionModel<any>(true, []);
94
97
  fields$: any[];
95
98
 
96
99
  displayedColumns$ = Array<any>();
@@ -158,14 +161,16 @@ export class ListViewComponent implements OnInit, OnDestroy {
158
161
  query: any = null;
159
162
  paging: any;
160
163
  fieldDefs: any;
161
- xRayApis = PCore.getDebugger().getXRayRuntime();
162
- xRayUid = this.xRayApis.startXRay();
163
164
  checkBoxValue: string;
164
165
  label?: string = '';
165
-
166
+ uniqueId = crypto.randomUUID();
167
+ displayAs: any;
168
+ showRecords: any;
169
+ identifier: string;
170
+ promotedFiltersId: string;
166
171
  constructor(
167
172
  private psService: ProgressSpinnerService,
168
- private utils: Utils
173
+ public utils: Utils
169
174
  ) {}
170
175
 
171
176
  ngOnInit(): void {
@@ -174,12 +179,13 @@ export class ListViewComponent implements OnInit, OnDestroy {
174
179
  const defRowID = this.configProps$?.referenceType === 'Case' ? 'pyID' : 'pyGUID';
175
180
  /** If compositeKeys is defined, use dynamic value, else fallback to pyID or pyGUID. */
176
181
  this.compositeKeys = this.configProps$?.compositeKeys;
177
- this.rowID = this.compositeKeys && this.compositeKeys?.length === 1 ? this.compositeKeys[0] : defRowID;
182
+ this.rowID = this.payload?.compositeKeys?.length === 1 ? this.payload?.compositeKeys[0] : defRowID;
178
183
  this.bShowSearch$ = this.utils.getBooleanValue(this.configProps$?.globalSearch ? this.configProps$.globalSearch : this.payload?.globalSearch);
179
184
  this.bColumnReorder$ = this.utils.getBooleanValue(this.configProps$.reorderFields);
180
185
  this.bGrouping$ = this.utils.getBooleanValue(this.configProps$.grouping);
181
186
  this.showDynamicFields = this.configProps$?.showDynamicFields;
182
-
187
+ this.displayAs = this.configProps$.displayAs;
188
+ this.showRecords = this.configProps$.showRecords;
183
189
  this.menuSvgIcon$ = this.utils.getImageSrc('more', this.utils.getSDKStaticContentUrl());
184
190
  this.arrowDownSvgIcon$ = this.utils.getImageSrc('arrow-down', this.utils.getSDKStaticContentUrl());
185
191
  this.arrowUpSvgIcon$ = this.utils.getImageSrc('arrow-up', this.utils.getSDKStaticContentUrl());
@@ -208,6 +214,7 @@ export class ListViewComponent implements OnInit, OnDestroy {
208
214
  this.label = title;
209
215
 
210
216
  this.searchIcon$ = this.utils.getImageSrc('search', this.utils.getSDKStaticContentUrl());
217
+ this.promotedFiltersId = `promoted-filters-queryable-${this.uniqueId}`;
211
218
  setTimeout(() => {
212
219
  PCore.getPubSubUtils().subscribe(
213
220
  PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CHANGE,
@@ -228,6 +235,15 @@ export class ListViewComponent implements OnInit, OnDestroy {
228
235
  false,
229
236
  this.pConn$.getContextName()
230
237
  );
238
+ PCore.getPubSubUtils().subscribe(
239
+ PCore.getEvents().getTransientEvent().UPDATE_PROMOTED_FILTERS,
240
+ data => {
241
+ this.showRecords = data.showRecords;
242
+ const filterData = this.prepareFilters(data);
243
+ this.processFilterChange(filterData);
244
+ },
245
+ this.promotedFiltersId
246
+ );
231
247
  }, 0);
232
248
  if (this.configProps$) {
233
249
  if (!this.payload) {
@@ -240,7 +256,6 @@ export class ListViewComponent implements OnInit, OnDestroy {
240
256
  listContext: this.listContext,
241
257
  ref: this.ref,
242
258
  showDynamicFields: this.showDynamicFields,
243
- xRayUid: this.xRayUid,
244
259
  cosmosTableRef: this.cosmosTableRef,
245
260
  selectionMode: this.selectionMode
246
261
  }).then(response => {
@@ -248,6 +263,29 @@ export class ListViewComponent implements OnInit, OnDestroy {
248
263
  this.getListData();
249
264
  });
250
265
  }
266
+ this.clearSelectionsAndUpdateTable(this.pConn$, this.uniqueId, this.configProps$?.viewName);
267
+ }
268
+
269
+ clearSelectionsAndUpdateTable(getPConnect: any, uniqueId: string, viewName): void {
270
+ const clearSelectionsAndRefreshList = ({ viewName: name, clearSelections }: any) => {
271
+ if (name === viewName) {
272
+ const { selectionMode } = getPConnect.getRawConfigProps();
273
+ if (!selectionMode) {
274
+ return;
275
+ }
276
+ if (clearSelections) {
277
+ if (selectionMode === 'single') {
278
+ getPConnect.getListActions().setSelectedRows({});
279
+ } else {
280
+ getPConnect.getListActions().clearSelectedRows();
281
+ }
282
+ }
283
+ }
284
+ };
285
+
286
+ this.identifier = `clear-and-update-advanced-search-selections-${uniqueId}`;
287
+
288
+ PCore.getPubSubUtils().subscribe('update-advanced-search-selections', clearSelectionsAndRefreshList, this.identifier);
251
289
  }
252
290
 
253
291
  getFieldFromFilter(filter, dateRange = false) {
@@ -262,82 +300,22 @@ export class ListViewComponent implements OnInit, OnDestroy {
262
300
 
263
301
  // Will be triggered when EVENT_DASHBOARD_FILTER_CHANGE fires
264
302
  processFilterChange(data) {
265
- const { filterId, filterExpression } = data;
266
- let dashboardFilterPayload: any = {
267
- query: {
268
- filter: {},
269
- select: []
270
- }
271
- };
272
-
273
- this.filters[filterId] = filterExpression;
274
- let isDateRange = !!data.filterExpression?.AND;
275
- // Will be AND by default but making it dynamic in case we support dynamic relational ops in future
276
- const relationalOp = 'AND';
277
-
278
- let field = this.getFieldFromFilter(filterExpression, isDateRange);
279
- const selectParam: any[] = [];
280
- // Constructing the select parameters list (will be sent in dashboardFilterPayload)
281
- this.displayedColumns$?.forEach(col => {
282
- selectParam.push({
283
- field: col
284
- });
285
- });
286
-
287
- // Checking if the triggered filter is applicable for this list
288
- if (data.filterExpression !== null && !(this.displayedColumns$?.length && this.displayedColumns$?.includes(field))) {
289
- return;
290
- }
291
- // This is a flag which will be used to reset dashboardFilterPayload in case we don't find any valid filters
292
- let validFilter = false;
293
-
294
- let index = 1;
295
- // Iterating over the current filters list to create filter data which will be POSTed
296
- const filterKeys: any[] = Object.keys(this.filters);
297
- const filterValues: any[] = Object.values(this.filters);
298
- for (let filterIndex = 0; filterIndex < filterKeys.length; filterIndex++) {
299
- const filter = filterValues[filterIndex];
300
- // If the filter is null then we can skip this iteration
301
- if (filter === null) {
302
- // eslint-disable-next-line no-continue
303
- continue;
304
- }
305
-
306
- // Checking if the filter is of type- Date Range
307
- isDateRange = !!filter?.AND;
308
- field = this.getFieldFromFilter(filter, isDateRange);
303
+ this.updateFiltersFromData(data);
309
304
 
310
- if (!(this.displayedColumns$?.length && this.displayedColumns$?.includes(field))) {
311
- // eslint-disable-next-line no-continue
312
- continue;
313
- }
314
- // If we reach here that implies we've at least one valid filter, hence setting the flag
315
- validFilter = true;
316
- /** Below are the 2 cases for- Text & Date-Range filter types where we'll construct filter data which will be sent in the dashboardFilterPayload
317
- * In Constellation DX Components, through Repeating Structures they might be using several APIs to do it. We're doing it here
318
- */
319
- if (isDateRange) {
320
- dashboardFilterPayload = this.filterBasedOnDateRange(dashboardFilterPayload, filter, relationalOp, selectParam, index);
321
- } else {
322
- dashboardFilterPayload.query.filter.filterConditions = {
323
- ...dashboardFilterPayload.query.filter.filterConditions,
324
- [`T${index++}`]: { ...filter.condition, ignoreCase: true }
325
- };
305
+ const selectParam = this.displayedColumns$?.map(col => ({ field: col })) || [];
326
306
 
327
- if (dashboardFilterPayload.query.filter.logic) {
328
- dashboardFilterPayload.query.filter.logic = `${dashboardFilterPayload.query.filter.logic} ${relationalOp} T${index - 1}`;
329
- } else {
330
- dashboardFilterPayload.query.filter.logic = `T${index - 1}`;
331
- }
307
+ if (this.displayAs !== 'advancedSearch') {
308
+ const { filterExpression } = data;
309
+ const isDateRange = !!filterExpression?.AND;
310
+ const field = this.getFieldFromFilter(filterExpression, isDateRange);
332
311
 
333
- dashboardFilterPayload.query.select = selectParam;
312
+ if (filterExpression !== null && !this.displayedColumns$?.includes(field)) {
313
+ return;
334
314
  }
335
315
  }
336
316
 
337
- // Reset the dashboardFilterPayload if we end up with no valid filters for the list
338
- if (!validFilter) {
339
- dashboardFilterPayload = undefined;
340
- }
317
+ const dashboardFilterPayload = this.buildFilterPayload(selectParam);
318
+
341
319
  this.filterPayload = dashboardFilterPayload;
342
320
  this.getListData();
343
321
  }
@@ -372,10 +350,22 @@ export class ListViewComponent implements OnInit, OnDestroy {
372
350
  return PCore.getAnalyticsUtils().getDataViewMetadata(refList, this.showDynamicFields);
373
351
  }
374
352
 
353
+ getValue(col) {
354
+ return this.fieldDefs.find(f => f.name === col)?.label;
355
+ }
356
+
375
357
  getListData() {
358
+ this.preparePayload();
376
359
  const componentConfig = this.pConn$.getComponentConfig();
377
- if (this.configProps$) {
378
- this.preparePayload();
360
+ const columnFields = componentConfig.presets[0].children[0].children;
361
+ const columns = this.getHeaderCells(columnFields, this.fieldDefs);
362
+ this.fields$ = this.configProps$.presets[0].children[0].children;
363
+ this.displayedColumns$ = columns.map(col => {
364
+ return col.id;
365
+ });
366
+ if (this.displayAs === 'advancedSearch' && !this.showRecords) {
367
+ Promise.resolve({ data: null });
368
+ } else if (this.configProps$) {
379
369
  const refList = this.configProps$.referenceList;
380
370
  const fieldsMetaDataPromise = this.getFieldsMetadata(refList);
381
371
  // returns a promise
@@ -401,17 +391,9 @@ export class ListViewComponent implements OnInit, OnDestroy {
401
391
  const fieldsMetaData = results[0];
402
392
  const workListData = results[1];
403
393
 
404
- this.fields$ = this.configProps$.presets[0].children[0].children;
405
- // this is an unresovled version of this.fields$, need unresolved, so can get the property reference
406
- const columnFields = componentConfig.presets[0].children[0].children;
407
-
408
394
  const tableDataResults = !this.bInForm$ ? workListData.data.data : workListData.data;
409
395
 
410
- const columns = this.getHeaderCells(columnFields, this.fieldDefs);
411
396
  this.fields$ = this.updateFields(this.fields$, fieldsMetaData.data.fields, columns);
412
- this.displayedColumns$ = columns.map(col => {
413
- return col.id;
414
- });
415
397
  this.response = tableDataResults;
416
398
  this.updatedRefList = this.updateData(tableDataResults, this.fields$);
417
399
  if (this.selectionMode === SELECTION_MODE.SINGLE && this.updatedRefList?.length > 0) {
@@ -423,6 +405,14 @@ export class ListViewComponent implements OnInit, OnDestroy {
423
405
  }
424
406
 
425
407
  this.repeatList$ = new MatTableDataSource(this.updatedRefList);
408
+
409
+ if (this.configProps$?.readonlyContextList?.length > 0) {
410
+ const readonlyIds = new Set(this.configProps$.readonlyContextList.map(element => element[this.rowID]));
411
+ const rowsToSelect = this.repeatList$.data.filter(row => readonlyIds.has(row[this.rowID]));
412
+ if (rowsToSelect.length > 0) {
413
+ this.selection.select(...rowsToSelect);
414
+ }
415
+ }
426
416
  this.repeatList$.filterPredicate = this.customFilterPredicate.bind(this);
427
417
 
428
418
  // keeping an original copy to get back after possible sorts, filters and groupBy
@@ -439,6 +429,33 @@ export class ListViewComponent implements OnInit, OnDestroy {
439
429
  }
440
430
  }
441
431
 
432
+ prepareFilters(data) {
433
+ return Object.entries(data.payload).reduce((acc, [field, value]) => {
434
+ if (value) {
435
+ let comparator = 'EQ';
436
+ const filterRecord = this.listContext.meta.fieldDefs.filter(item => item.id === field);
437
+ if (filterRecord?.[0]?.meta.type === 'TextInput') {
438
+ comparator = 'CONTAINS';
439
+ }
440
+ acc[field] = {
441
+ filterExpression: {
442
+ condition: {
443
+ lhs: {
444
+ field
445
+ },
446
+ comparator,
447
+ rhs: {
448
+ value
449
+ }
450
+ }
451
+ },
452
+ filterId: field
453
+ };
454
+ }
455
+ return acc;
456
+ }, {});
457
+ }
458
+
442
459
  preparePayload() {
443
460
  const { fieldDefs, itemKey, patchQueryFields } = this.listContext.meta;
444
461
  this.fieldDefs = fieldDefs;
@@ -480,6 +497,8 @@ export class ListViewComponent implements OnInit, OnDestroy {
480
497
  `dashboard-component-${'id'}`,
481
498
  this.pConn$.getContextName()
482
499
  );
500
+ PCore.getPubSubUtils().unsubscribe('update-advanced-search-selections', this.identifier);
501
+ PCore.getPubSubUtils().unsubscribe(PCore.getEvents().getTransientEvent().UPDATE_PROMOTED_FILTERS, this.promotedFiltersId);
483
502
  }
484
503
 
485
504
  // ngAfterViewInit() {
@@ -498,6 +517,7 @@ export class ListViewComponent implements OnInit, OnDestroy {
498
517
  const arReturn = arFields;
499
518
  arReturn.forEach((field, i) => {
500
519
  field.config = { ...field.config, ...fields[i], name: fields[i].id };
520
+ field.config.label = PCore.getLocaleUtils().getLocaleValue(field.config.label, this.configProps$.localeReference);
501
521
  });
502
522
  return arReturn;
503
523
  }
@@ -523,13 +543,6 @@ export class ListViewComponent implements OnInit, OnDestroy {
523
543
  }
524
544
  }
525
545
 
526
- isChecked(rowIn): any {
527
- const initialVal = false;
528
- return this.configProps$?.readonlyContextList?.reduce((acc, currRow) => {
529
- return acc || rowIn[this.rowID] === currRow[this.rowID];
530
- }, initialVal);
531
- }
532
-
533
546
  fieldOnChange(row) {
534
547
  const value = row[this.rowID];
535
548
  const reqObj = {};
@@ -546,32 +559,31 @@ export class ListViewComponent implements OnInit, OnDestroy {
546
559
  this.pConn$?.getListActions?.()?.setSelectedRows([reqObj]);
547
560
  }
548
561
 
549
- onCheckboxClick(row, event) {
550
- const value = row[this.rowID];
551
- const checked = event?.checked;
552
- const reqObj: any = {};
553
- if (this.compositeKeys?.length > 1) {
554
- const index = this.response.findIndex(element => element[this.rowID] === value);
555
- const selectedRow = this.response[index];
556
- this.compositeKeys.forEach(element => {
557
- reqObj[element] = selectedRow[element];
558
- });
559
- reqObj.$selected = checked;
560
- } else {
561
- reqObj[this.rowID] = value;
562
- reqObj.$selected = checked;
563
- }
564
- this.pConn$?.getListActions()?.setSelectedRows([reqObj]);
562
+ onCheckboxClick(row) {
563
+ this.selection.toggle(row);
564
+ const requiredValue = this.getSelectedValue(row);
565
+ this.pConn$?.getListActions()?.setSelectedRows([requiredValue]);
565
566
  }
566
567
 
567
- // rowClick(row) {
568
- // switch (this.configProps$.rowClickAction) {
569
- // case 'openAssignment':
570
- // this.psService.sendMessage(true);
571
- // this.openAssignment(row);
572
- // break;
573
- // }
574
- // }
568
+ isAllSelected() {
569
+ const numSelected = this.selection.selected.length;
570
+ const numRows = this.repeatList$.data.length;
571
+ return numSelected === numRows;
572
+ }
573
+
574
+ toggleAllRows() {
575
+ if (this.isAllSelected()) {
576
+ this.selection.clear();
577
+ this.pConn$?.getListActions()?.clearSelectedRows();
578
+ return;
579
+ }
580
+ if (this.selection.hasValue() && !this.isAllSelected()) {
581
+ this.pConn$?.getListActions()?.clearSelectedRows();
582
+ }
583
+ this.selection.select(...this.repeatList$.data);
584
+ const requiredValues = this.repeatList$.data.map(row => this.getSelectedValue(row));
585
+ this.pConn$?.getListActions()?.setSelectedRows(requiredValues);
586
+ }
575
587
 
576
588
  _getIconStyle(level): string {
577
589
  let sReturn = '';
@@ -1159,7 +1171,7 @@ export class ListViewComponent implements OnInit, OnDestroy {
1159
1171
  const seen = {};
1160
1172
  return a.filter(item => {
1161
1173
  const k = key(item);
1162
- // eslint-disable-next-line no-return-assign, no-prototype-builtins
1174
+ // eslint-disable-next-line no-prototype-builtins
1163
1175
  return seen.hasOwnProperty(k) ? false : (seen[k] = true);
1164
1176
  });
1165
1177
  }
@@ -1433,4 +1445,78 @@ export class ListViewComponent implements OnInit, OnDestroy {
1433
1445
 
1434
1446
  return select;
1435
1447
  }
1448
+
1449
+ private getSelectedValue(row) {
1450
+ const value = row[this.rowID];
1451
+ const checked = this.selection.isSelected(row);
1452
+ const reqObj: any = {};
1453
+ if (this.compositeKeys?.length > 1) {
1454
+ const index = this.response.findIndex(element => element[this.rowID] === value);
1455
+ const selectedRow = this.response[index];
1456
+ this.compositeKeys.forEach(element => {
1457
+ reqObj[element] = selectedRow[element];
1458
+ });
1459
+ reqObj.$selected = checked;
1460
+ } else {
1461
+ reqObj[this.rowID] = value;
1462
+ reqObj.$selected = checked;
1463
+ }
1464
+ return reqObj;
1465
+ }
1466
+
1467
+ private updateFiltersFromData(data) {
1468
+ if (this.displayAs === 'advancedSearch') {
1469
+ this.filters = {};
1470
+ Object.values(data).forEach((value: any) => {
1471
+ this.filters[value.filterId] = value.filterExpression;
1472
+ });
1473
+ } else {
1474
+ const { filterId, filterExpression } = data;
1475
+ this.filters[filterId] = filterExpression;
1476
+ }
1477
+ }
1478
+
1479
+ private buildFilterPayload(selectParam: any[]) {
1480
+ const filterConditions = {};
1481
+ let logic = '';
1482
+ let index = 1;
1483
+ const relationalOp = 'AND';
1484
+
1485
+ for (const currentFilter of Object.values(this.filters)) {
1486
+ const filter: any = currentFilter;
1487
+ if (!filter) continue;
1488
+
1489
+ const isDateRange = !!filter.AND;
1490
+ const field = this.getFieldFromFilter(filter, isDateRange);
1491
+
1492
+ if (!this.displayedColumns$?.includes(field)) continue;
1493
+
1494
+ if (logic) {
1495
+ logic += ` ${relationalOp} `;
1496
+ }
1497
+
1498
+ if (isDateRange) {
1499
+ const dateRelationalOp = filter.AND ? 'AND' : 'OR';
1500
+ filterConditions[`T${index}`] = { ...filter[relationalOp][0].condition };
1501
+ filterConditions[`T${index + 1}`] = { ...filter[relationalOp][1].condition };
1502
+ logic += `(T${index} ${dateRelationalOp} T${index + 1})`;
1503
+ index += 2;
1504
+ } else {
1505
+ filterConditions[`T${index}`] = { ...filter.condition, ...(filter.condition.comparator === 'CONTAINS' && { ignoreCase: true }) };
1506
+ logic += `T${index}`;
1507
+ index++;
1508
+ }
1509
+ }
1510
+
1511
+ if (!logic) {
1512
+ return undefined;
1513
+ }
1514
+
1515
+ return {
1516
+ query: {
1517
+ filter: { filterConditions, logic },
1518
+ select: selectParam
1519
+ }
1520
+ };
1521
+ }
1436
1522
  }
@@ -1,8 +1,5 @@
1
1
  import { getContext, readContextResponse } from './utils';
2
2
 
3
- // Remove this and use "real" PCore type once .d.ts is fixed (currently shows 1 error)
4
- declare const PCore: any;
5
-
6
3
  export function init(props) {
7
4
  const {
8
5
  referenceList,
@@ -15,7 +12,6 @@ export function init(props) {
15
12
  ref,
16
13
  showDynamicFields,
17
14
  isDataObject,
18
- xRayUid,
19
15
  cosmosTableRef
20
16
  } = props;
21
17
  let { editing, selectionMode } = props;
@@ -25,9 +21,9 @@ export function init(props) {
25
21
  let selectionCountThreshold;
26
22
 
27
23
  // promise to fetch metadata
28
- const metaDataPromise = PCore.getAnalyticsUtils().getDataViewMetadata(referenceList, showDynamicFields);
24
+ const metaDataPromise = PCore.getAnalyticsUtils().getDataViewMetadata(referenceList, showDynamicFields, null);
29
25
 
30
- const promisesArray = [metaDataPromise];
26
+ const promisesArray: any = [metaDataPromise];
31
27
 
32
28
  // promise to fetch report configured columns
33
29
  const reportColumnsPromise = PCore.getAnalyticsUtils()
@@ -70,8 +66,7 @@ export function init(props) {
70
66
  pConn$,
71
67
  compositeKeys,
72
68
  isSearchable,
73
- isCacheable: true,
74
- xRayUid
69
+ isCacheable: true
75
70
  }).then(async context => {
76
71
  return readContextResponse(context, {
77
72
  ...props,
@@ -79,7 +74,6 @@ export function init(props) {
79
74
  selectionCountThreshold,
80
75
  ref,
81
76
  selectionMode,
82
- xRayUid,
83
77
  cosmosTableRef
84
78
  });
85
79
  });
@@ -1,8 +1,5 @@
1
1
  import { getDefaultViewMeta } from './DefaultViewMeta';
2
2
 
3
- // Remove this and use "real" PCore type once .d.ts is fixed (currently shows 5 errors)
4
- declare const PCore: any;
5
-
6
3
  const USER_REFERENCE = 'UserReference';
7
4
  const PAGE = '!P!';
8
5
  const PAGELIST = '!PL!';
@@ -121,7 +118,7 @@ export const isPageListInPath = (propertyName, currentClassID) => {
121
118
  return false;
122
119
  }
123
120
  const [first, ...rest] = propertyName.split('.');
124
- const metadata = PCore.getMetadataUtils().getPropertyMetadata(first, currentClassID);
121
+ const metadata: any = PCore.getMetadataUtils().getPropertyMetadata(first, currentClassID);
125
122
  if (metadata?.type === 'Page List') {
126
123
  return true;
127
124
  }
@@ -205,7 +202,7 @@ export function getConfigEmbeddedFieldsMeta(configFields, classID) {
205
202
  if (value.includes('[')) {
206
203
  value = value.substring(0, value.indexOf('[')) + value.substring(value.indexOf(']') + 1);
207
204
  }
208
- const meta = PCore.getMetadataUtils().getEmbeddedPropertyMetadata(value, classID);
205
+ const meta: any = PCore.getMetadataUtils().getEmbeddedPropertyMetadata(value, classID);
209
206
  meta.fieldID = field;
210
207
  configEmbeddedFieldsMeta.push(meta);
211
208
  }
@@ -553,6 +550,27 @@ function populateRenderingOptions(name, config, field) {
553
550
  config.cellRenderer = formatConstants.Integer;
554
551
  }
555
552
  }
553
+ function isFLProperty(label) {
554
+ return label?.startsWith('@FL');
555
+ }
556
+
557
+ function getFieldLabel(fieldConfig) {
558
+ const { label, classID, caption } = fieldConfig;
559
+ let fieldLabel = (label ?? caption)?.substring(4);
560
+ const labelSplit = fieldLabel?.split('.');
561
+ const propertyName = labelSplit?.pop();
562
+ const fieldMetaData: any = PCore.getMetadataUtils().getPropertyMetadata(propertyName, classID) ?? {};
563
+ fieldLabel = fieldMetaData.label ?? fieldMetaData.caption ?? propertyName;
564
+
565
+ const definedOnClassID = fieldMetaData.definedOnClassID;
566
+ const localeValue = PCore.getLocaleUtils().getLocaleValue(
567
+ fieldLabel,
568
+ `${definedOnClassID ?? fieldMetaData.classID ?? classID}.${propertyName}`,
569
+ PCore.getLocaleUtils().FIELD_LABELS_BUNDLE_KEY,
570
+ null
571
+ );
572
+ return localeValue || fieldLabel;
573
+ }
556
574
  export function initializeColumns(fields: any[] = [], getMappedProperty: any = null) {
557
575
  return fields.map((field, originalColIndex) => {
558
576
  let name = field.config.value;
@@ -565,7 +583,9 @@ export function initializeColumns(fields: any[] = [], getMappedProperty: any = n
565
583
 
566
584
  let label = field.config.label || field.config.caption;
567
585
  const { show = true, displayAs } = field.config;
568
- if (label.startsWith('@')) {
586
+ if (isFLProperty(label)) {
587
+ label = getFieldLabel(field.config);
588
+ } else if (label.startsWith('@')) {
569
589
  label = label.substring(3);
570
590
  }
571
591
 
@@ -656,7 +676,7 @@ export const readContextResponse = async (context, params) => {
656
676
  const { pConn$, apiContext, children, showDynamicFields, referenceList, isDataObject } = params;
657
677
  // let { listContext } = params;
658
678
  const { promisesResponseArray, apiContext: otherContext } = context;
659
- // eslint-disable-next-line sonarjs/no-unused-collection
679
+
660
680
  const listOfComponents: any[] = [];
661
681
  const {
662
682
  data: { fields: metaFields, classID, isQueryable }
@@ -12,7 +12,6 @@ interface MultiReferenceReadOnlyProps {
12
12
  selector: 'app-multi-reference-readonly',
13
13
  templateUrl: './multi-reference-readonly.component.html',
14
14
  styleUrls: ['./multi-reference-readonly.component.scss'],
15
- standalone: true,
16
15
  imports: [forwardRef(() => ComponentMapperComponent)]
17
16
  })
18
17
  export class MultiReferenceReadonlyComponent implements OnInit, OnDestroy {
@@ -7,7 +7,6 @@ import { ComponentMapperComponent } from '@pega/angular-sdk-components';
7
7
  selector: 'app-narrow-wide-form',
8
8
  templateUrl: './narrow-wide-form.component.html',
9
9
  styleUrls: ['./narrow-wide-form.component.scss'],
10
- standalone: true,
11
10
  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
12
11
  })
13
12
  export class NarrowWideFormComponent implements OnInit, OnChanges {
@@ -0,0 +1 @@
1
+ <component-mapper name="CaseView" [props]="{ pConn$, formGroup$ }"></component-mapper>
@@ -0,0 +1,22 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+
3
+ import { ObjectPageComponent } from './object-page.component';
4
+
5
+ describe('ObjectPageComponent', () => {
6
+ let component: ObjectPageComponent;
7
+ let fixture: ComponentFixture<ObjectPageComponent>;
8
+
9
+ beforeEach(async () => {
10
+ await TestBed.configureTestingModule({
11
+ imports: [ObjectPageComponent]
12
+ }).compileComponents();
13
+
14
+ fixture = TestBed.createComponent(ObjectPageComponent);
15
+ component = fixture.componentInstance;
16
+ fixture.detectChanges();
17
+ });
18
+
19
+ it('should create', () => {
20
+ expect(component).toBeTruthy();
21
+ });
22
+ });
@@ -0,0 +1,14 @@
1
+ import { Component, forwardRef, Input } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { ComponentMapperComponent } from '@pega/angular-sdk-components';
4
+
5
+ @Component({
6
+ selector: 'lib-object-page',
7
+ imports: [forwardRef(() => ComponentMapperComponent)],
8
+ templateUrl: './object-page.component.html',
9
+ styleUrl: './object-page.component.scss'
10
+ })
11
+ export class ObjectPageComponent {
12
+ @Input() pConn$: typeof PConnect;
13
+ @Input() formGroup$: FormGroup;
14
+ }
@@ -8,7 +8,6 @@ import { FormTemplateBase } from '@pega/angular-sdk-components';
8
8
  selector: 'app-one-column',
9
9
  templateUrl: './one-column.component.html',
10
10
  styleUrls: ['./one-column.component.scss'],
11
- standalone: true,
12
11
  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
13
12
  })
14
13
  export class OneColumnComponent extends FormTemplateBase implements OnInit, OnChanges {