@pega/angular-sdk-overrides 0.24.9 → 0.25.2

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 (256) 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 +1 -2
  4. package/lib/designSystemExtension/banner/banner.component.scss +12 -2
  5. package/lib/designSystemExtension/banner/banner.component.ts +0 -1
  6. package/lib/designSystemExtension/case-create-stage/case-create-stage.component.ts +1 -2
  7. package/lib/designSystemExtension/field-group/field-group.component.ts +0 -1
  8. package/lib/designSystemExtension/material-case-summary/material-case-summary.component.html +6 -3
  9. package/lib/designSystemExtension/material-case-summary/material-case-summary.component.scss +7 -35
  10. package/lib/designSystemExtension/material-case-summary/material-case-summary.component.ts +0 -2
  11. package/lib/designSystemExtension/material-details/material-details.component.scss +0 -5
  12. package/lib/designSystemExtension/material-details/material-details.component.ts +0 -1
  13. package/lib/designSystemExtension/material-details-fields/material-details-fields.component.html +4 -4
  14. package/lib/designSystemExtension/material-details-fields/material-details-fields.component.scss +4 -3
  15. package/lib/designSystemExtension/material-details-fields/material-details-fields.component.ts +10 -2
  16. package/lib/designSystemExtension/material-summary-item/material-summary-item.component.scss +2 -17
  17. package/lib/designSystemExtension/material-summary-item/material-summary-item.component.ts +0 -1
  18. package/lib/designSystemExtension/material-summary-list/material-summary-list.component.ts +0 -1
  19. package/lib/designSystemExtension/material-utility/material-utility.component.scss +1 -2
  20. package/lib/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.scss +1 -1
  21. package/lib/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.ts +0 -1
  22. package/lib/designSystemExtension/operator/operator.component.html +2 -2
  23. package/lib/designSystemExtension/operator/operator.component.scss +13 -12
  24. package/lib/designSystemExtension/operator/operator.component.ts +5 -6
  25. package/lib/designSystemExtension/pulse/pulse.component.scss +2 -2
  26. package/lib/designSystemExtension/pulse/pulse.component.ts +7 -8
  27. package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.scss +0 -1
  28. package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.ts +0 -1
  29. package/lib/designSystemExtension/wss-quick-create/wss-quick-create.component.scss +16 -8
  30. package/lib/designSystemExtension/wss-quick-create/wss-quick-create.component.ts +0 -1
  31. package/lib/field/auto-complete/auto-complete.component.html +0 -2
  32. package/lib/field/auto-complete/auto-complete.component.ts +56 -178
  33. package/lib/field/cancel-alert/cancel-alert.component.html +8 -12
  34. package/lib/field/cancel-alert/cancel-alert.component.scss +2 -3
  35. package/lib/field/cancel-alert/cancel-alert.component.ts +24 -37
  36. package/lib/field/check-box/check-box.component.html +17 -6
  37. package/lib/field/check-box/check-box.component.scss +0 -1
  38. package/lib/field/check-box/check-box.component.ts +32 -157
  39. package/lib/field/currency/currency.component.html +4 -4
  40. package/lib/field/currency/currency.component.ts +65 -175
  41. package/lib/field/date/date.component.html +4 -8
  42. package/lib/field/date/date.component.ts +39 -177
  43. package/lib/field/date-time/date-time.component.html +3 -4
  44. package/lib/field/date-time/date-time.component.ts +46 -146
  45. package/lib/field/decimal/decimal.component.html +4 -3
  46. package/lib/field/decimal/decimal.component.ts +66 -166
  47. package/lib/field/dropdown/dropdown.component.html +1 -0
  48. package/lib/field/dropdown/dropdown.component.ts +158 -153
  49. package/lib/field/email/email.component.ts +28 -148
  50. package/lib/field/field.base.ts +149 -0
  51. package/lib/field/group/group.component.ts +9 -7
  52. package/lib/field/integer/integer.component.ts +30 -152
  53. package/lib/field/list-view-action-buttons/list-view-action-buttons.component.html +1 -1
  54. package/lib/field/list-view-action-buttons/list-view-action-buttons.component.ts +3 -3
  55. package/lib/field/location/config-ext.json +8 -0
  56. package/lib/field/location/location.component.html +45 -0
  57. package/lib/field/location/location.component.scss +18 -0
  58. package/lib/field/location/location.component.spec.ts +22 -0
  59. package/lib/field/location/location.component.ts +385 -0
  60. package/lib/field/multiselect/multiselect.component.ts +56 -151
  61. package/lib/field/multiselect/utils.ts +55 -47
  62. package/lib/field/object-reference/object-reference.component.html +17 -0
  63. package/lib/field/object-reference/object-reference.component.scss +0 -0
  64. package/lib/field/object-reference/object-reference.component.spec.ts +22 -0
  65. package/lib/field/object-reference/object-reference.component.ts +237 -0
  66. package/lib/field/percentage/percentage.component.html +3 -3
  67. package/lib/field/percentage/percentage.component.ts +68 -161
  68. package/lib/field/phone/config-ext.json +1 -1
  69. package/lib/field/phone/phone.component.html +9 -6
  70. package/lib/field/phone/phone.component.scss +9 -0
  71. package/lib/field/phone/phone.component.ts +48 -159
  72. package/lib/field/radio-buttons/radio-buttons.component.html +17 -12
  73. package/lib/field/radio-buttons/radio-buttons.component.scss +4 -2
  74. package/lib/field/radio-buttons/radio-buttons.component.ts +39 -162
  75. package/lib/field/rich-text/rich-text.component.ts +32 -93
  76. package/lib/field/scalar-list/scalar-list.component.ts +20 -77
  77. package/lib/field/selectable-card/selectable-card.component.html +70 -0
  78. package/lib/field/selectable-card/selectable-card.component.scss +11 -0
  79. package/lib/field/selectable-card/selectable-card.component.spec.ts +22 -0
  80. package/lib/field/selectable-card/selectable-card.component.ts +219 -0
  81. package/lib/field/semantic-link/semantic-link.component.html +4 -8
  82. package/lib/field/semantic-link/semantic-link.component.scss +0 -13
  83. package/lib/field/semantic-link/semantic-link.component.ts +165 -6
  84. package/lib/field/text/text.component.scss +0 -1
  85. package/lib/field/text/text.component.ts +8 -5
  86. package/lib/field/text-area/text-area.component.html +4 -1
  87. package/lib/field/text-area/text-area.component.ts +30 -148
  88. package/lib/field/text-content/text-content.component.ts +0 -1
  89. package/lib/field/text-input/text-input.component.ts +28 -150
  90. package/lib/field/time/time.component.html +2 -2
  91. package/lib/field/time/time.component.ts +39 -145
  92. package/lib/field/url/url.component.ts +28 -149
  93. package/lib/field/user-reference/user-reference.component.html +40 -46
  94. package/lib/field/user-reference/user-reference.component.scss +0 -1
  95. package/lib/field/user-reference/user-reference.component.ts +110 -21
  96. package/lib/infra/Containers/flow-container/flow-container.component.html +1 -1
  97. package/lib/infra/Containers/flow-container/flow-container.component.ts +29 -54
  98. package/lib/infra/Containers/flow-container/helpers.ts +2 -2
  99. package/lib/infra/Containers/hybrid-view-container/hybrid-view-container.component.ts +0 -1
  100. package/lib/infra/Containers/modal-view-container/modal-view-container.component.html +1 -11
  101. package/lib/infra/Containers/modal-view-container/modal-view-container.component.ts +6 -19
  102. package/lib/infra/Containers/preview-view-container/preview-view-container.component.ts +1 -1
  103. package/lib/infra/Containers/view-container/helper.ts +55 -0
  104. package/lib/infra/Containers/view-container/view-container.component.ts +6 -19
  105. package/lib/infra/action-buttons/action-buttons.component.html +13 -8
  106. package/lib/infra/action-buttons/action-buttons.component.scss +23 -0
  107. package/lib/infra/action-buttons/action-buttons.component.ts +1 -3
  108. package/lib/infra/assignment/assignment.component.html +1 -1
  109. package/lib/infra/assignment/assignment.component.ts +90 -47
  110. package/lib/infra/assignment-card/assignment-card.component.html +2 -2
  111. package/lib/infra/assignment-card/assignment-card.component.scss +0 -4
  112. package/lib/infra/assignment-card/assignment-card.component.ts +21 -5
  113. package/lib/infra/dashboard-filter/dashboard-filter.component.ts +0 -1
  114. package/lib/infra/defer-load/defer-load.component.html +6 -2
  115. package/lib/infra/defer-load/defer-load.component.ts +24 -16
  116. package/lib/infra/error-boundary/error-boundary.component.ts +0 -1
  117. package/lib/infra/multi-step/multi-step.component.scss +1 -21
  118. package/lib/infra/multi-step/multi-step.component.ts +0 -1
  119. package/lib/infra/navbar/navbar.component.html +25 -28
  120. package/lib/infra/navbar/navbar.component.scss +16 -4
  121. package/lib/infra/navbar/navbar.component.ts +11 -9
  122. package/lib/infra/reference/reference.component.ts +77 -90
  123. package/lib/infra/region/region.component.ts +0 -1
  124. package/lib/infra/root-container/root-container.component.html +2 -15
  125. package/lib/infra/root-container/root-container.component.scss +0 -1
  126. package/lib/infra/root-container/root-container.component.ts +28 -35
  127. package/lib/infra/stages/stages.component.html +2 -2
  128. package/lib/infra/stages/stages.component.scss +9 -37
  129. package/lib/infra/stages/stages.component.ts +4 -3
  130. package/lib/infra/view/view.component.html +7 -20
  131. package/lib/infra/view/view.component.ts +20 -5
  132. package/lib/template/advanced-search/advanced-search.component.html +12 -0
  133. package/lib/template/advanced-search/advanced-search.component.scss +0 -0
  134. package/lib/template/advanced-search/advanced-search.component.spec.ts +0 -0
  135. package/lib/template/advanced-search/advanced-search.component.ts +112 -0
  136. package/lib/template/advanced-search/advanced-search.service.ts +27 -0
  137. package/lib/template/advanced-search/search-group/persist-utils.ts +56 -0
  138. package/lib/template/advanced-search/search-groups/search-groups.component.html +32 -0
  139. package/lib/template/advanced-search/search-groups/search-groups.component.scss +0 -0
  140. package/lib/template/advanced-search/search-groups/search-groups.component.spec.ts +0 -0
  141. package/lib/template/advanced-search/search-groups/search-groups.component.ts +294 -0
  142. package/lib/template/advanced-search/search-groups/utils.ts +29 -0
  143. package/lib/template/app-shell/app-shell.component.html +4 -1
  144. package/lib/template/app-shell/app-shell.component.scss +0 -3
  145. package/lib/template/app-shell/app-shell.component.ts +66 -10
  146. package/lib/template/banner-page/banner-page.component.ts +0 -1
  147. package/lib/template/base/details-template-base.ts +67 -0
  148. package/lib/template/base/form-template-base.ts +16 -0
  149. package/lib/template/case-summary/case-summary.component.scss +0 -2
  150. package/lib/template/case-summary/case-summary.component.ts +7 -23
  151. package/lib/template/case-view/case-view.component.html +7 -7
  152. package/lib/template/case-view/case-view.component.scss +18 -10
  153. package/lib/template/case-view/case-view.component.ts +9 -15
  154. package/lib/template/confirmation/confirmation.component.html +1 -1
  155. package/lib/template/confirmation/confirmation.component.ts +1 -2
  156. package/lib/template/data-reference/data-reference-advanced-search.service.ts +16 -0
  157. package/lib/template/data-reference/data-reference.component.html +11 -8
  158. package/lib/template/data-reference/data-reference.component.ts +377 -148
  159. package/lib/template/data-reference/search-form/search-form.component.html +39 -0
  160. package/lib/template/data-reference/search-form/search-form.component.scss +11 -0
  161. package/lib/template/data-reference/search-form/search-form.component.spec.ts +0 -0
  162. package/lib/template/data-reference/search-form/search-form.component.ts +167 -0
  163. package/lib/template/data-reference/search-form/tabsData.ts +160 -0
  164. package/lib/template/data-reference/utils.ts +92 -0
  165. package/lib/template/default-form/default-form.component.html +0 -4
  166. package/lib/template/default-form/default-form.component.ts +50 -26
  167. package/lib/template/default-page/default-page.component.html +34 -0
  168. package/lib/template/default-page/default-page.component.scss +31 -0
  169. package/lib/template/default-page/default-page.component.spec.ts +24 -0
  170. package/lib/template/default-page/default-page.component.ts +64 -0
  171. package/lib/template/details/details.component.ts +7 -42
  172. package/lib/template/details-narrow-wide/details-narrow-wide.component.ts +6 -40
  173. package/lib/template/details-one-column/details-one-column.component.ts +7 -43
  174. package/lib/template/details-sub-tabs/details-sub-tabs.component.html +1 -2
  175. package/lib/template/details-sub-tabs/details-sub-tabs.component.ts +5 -38
  176. package/lib/template/details-three-column/details-three-column.component.ts +7 -44
  177. package/lib/template/details-two-column/details-two-column.component.ts +8 -45
  178. package/lib/template/details-wide-narrow/details-wide-narrow.component.ts +7 -43
  179. package/lib/template/dynamic-tabs/dynamic-tabs.component.html +3 -0
  180. package/lib/template/dynamic-tabs/dynamic-tabs.component.ts +8 -4
  181. package/lib/template/field-group-list/field-group-list.component.scss +0 -1
  182. package/lib/template/field-group-list/field-group-list.component.ts +0 -1
  183. package/lib/template/field-group-template/field-group-template.component.html +7 -7
  184. package/lib/template/field-group-template/field-group-template.component.scss +8 -0
  185. package/lib/template/field-group-template/field-group-template.component.ts +68 -48
  186. package/lib/template/field-value-list/field-value-list.component.html +2 -2
  187. package/lib/template/field-value-list/field-value-list.component.scss +6 -1
  188. package/lib/template/field-value-list/field-value-list.component.ts +0 -1
  189. package/lib/template/inline-dashboard/inline-dashboard.component.ts +0 -1
  190. package/lib/template/inline-dashboard-page/inline-dashboard-page.component.ts +2 -3
  191. package/lib/template/list-page/list-page.component.ts +0 -1
  192. package/lib/template/list-view/list-view.component.html +14 -4
  193. package/lib/template/list-view/list-view.component.scss +30 -19
  194. package/lib/template/list-view/list-view.component.ts +179 -95
  195. package/lib/template/list-view/listViewHelpers.ts +4 -10
  196. package/lib/template/list-view/utils.ts +27 -7
  197. package/lib/template/multi-reference-readonly/multi-reference-readonly.component.ts +0 -1
  198. package/lib/template/narrow-wide-form/narrow-wide-form.component.ts +1 -2
  199. package/lib/template/object-page/object-page.component.html +1 -0
  200. package/lib/template/object-page/object-page.component.scss +0 -0
  201. package/lib/template/object-page/object-page.component.spec.ts +22 -0
  202. package/lib/template/object-page/object-page.component.ts +14 -0
  203. package/lib/template/one-column/one-column.component.ts +4 -4
  204. package/lib/template/one-column-page/one-column-page.component.ts +0 -1
  205. package/lib/template/one-column-tab/one-column-tab.component.scss +1 -1
  206. package/lib/template/one-column-tab/one-column-tab.component.ts +1 -2
  207. package/lib/template/page/page.component.ts +1 -2
  208. package/lib/template/promoted-filters/promoted-filters.component.ts +1 -2
  209. package/lib/template/repeating-structures/repeating-structures.component.ts +1 -3
  210. package/lib/template/self-service-case-view/self-service-case-view.component.html +80 -0
  211. package/lib/template/self-service-case-view/self-service-case-view.component.scss +124 -0
  212. package/lib/template/self-service-case-view/self-service-case-view.component.spec.ts +24 -0
  213. package/lib/template/self-service-case-view/self-service-case-view.component.ts +216 -0
  214. package/lib/template/simple-table/simple-table.component.ts +0 -2
  215. package/lib/template/simple-table-manual/helpers.ts +127 -11
  216. package/lib/template/simple-table-manual/simple-table-manual.component.html +27 -8
  217. package/lib/template/simple-table-manual/simple-table-manual.component.scss +16 -17
  218. package/lib/template/simple-table-manual/simple-table-manual.component.ts +118 -58
  219. package/lib/template/simple-table-select/simple-table-select.component.ts +3 -4
  220. package/lib/template/single-reference-readonly/single-reference-readonly.component.html +4 -1
  221. package/lib/template/single-reference-readonly/single-reference-readonly.component.scss +21 -0
  222. package/lib/template/single-reference-readonly/single-reference-readonly.component.ts +104 -4
  223. package/lib/template/sub-tabs/sub-tabs.component.ts +0 -1
  224. package/lib/template/three-column/three-column.component.ts +4 -4
  225. package/lib/template/three-column-page/three-column-page.component.ts +0 -1
  226. package/lib/template/two-column/two-column.component.ts +4 -4
  227. package/lib/template/two-column-page/two-column-page.component.ts +0 -1
  228. package/lib/template/two-column-tab/two-column-tab.component.ts +1 -2
  229. package/lib/template/utils.ts +58 -0
  230. package/lib/template/wide-narrow-form/wide-narrow-form.component.ts +4 -4
  231. package/lib/template/wide-narrow-page/wide-narrow-page.component.ts +1 -2
  232. package/lib/template/wss-nav-bar/wss-nav-bar.component.html +5 -4
  233. package/lib/template/wss-nav-bar/wss-nav-bar.component.scss +2 -8
  234. package/lib/template/wss-nav-bar/wss-nav-bar.component.ts +3 -11
  235. package/lib/widget/app-announcement/app-announcement.component.html +1 -2
  236. package/lib/widget/app-announcement/app-announcement.component.scss +2 -2
  237. package/lib/widget/app-announcement/app-announcement.component.ts +0 -1
  238. package/lib/widget/attachment/Attachment.types.ts +92 -0
  239. package/lib/widget/attachment/AttachmentUtils.ts +287 -0
  240. package/lib/widget/attachment/attachment.component.html +3 -3
  241. package/lib/widget/attachment/attachment.component.scss +2 -5
  242. package/lib/widget/attachment/attachment.component.ts +256 -259
  243. package/lib/widget/case-history/case-history.component.ts +0 -1
  244. package/lib/widget/feed-container/feed-container.component.scss +3 -9
  245. package/lib/widget/feed-container/feed-container.component.ts +9 -12
  246. package/lib/widget/file-utility/file-utility.component.html +3 -3
  247. package/lib/widget/file-utility/file-utility.component.scss +5 -16
  248. package/lib/widget/file-utility/file-utility.component.ts +2 -6
  249. package/lib/widget/list-utility/list-utility.component.scss +3 -5
  250. package/lib/widget/list-utility/list-utility.component.ts +0 -1
  251. package/lib/widget/quick-create/quick-create.component.ts +0 -1
  252. package/lib/widget/todo/todo.component.html +13 -11
  253. package/lib/widget/todo/todo.component.scss +19 -11
  254. package/lib/widget/todo/todo.component.ts +101 -87
  255. package/lib/widget/utility/utility.component.ts +0 -1
  256. package/package.json +1 -1
@@ -1,4 +1,3 @@
1
- /* eslint-disable max-classes-per-file */
2
1
  import { Component, OnInit, Input, ViewChild, forwardRef, OnDestroy } from '@angular/core';
3
2
  import { CommonModule } from '@angular/common';
4
3
  import { FormGroup } from '@angular/forms';
@@ -10,6 +9,7 @@ import { MatMenuModule } from '@angular/material/menu';
10
9
  import { MatOptionModule } from '@angular/material/core';
11
10
  import { MatSelectModule } from '@angular/material/select';
12
11
  import { MatSort, MatSortModule } from '@angular/material/sort';
12
+ import { MatIcon } from '@angular/material/icon';
13
13
  import { MatTableDataSource, MatTableModule } from '@angular/material/table';
14
14
  import isEqual from 'fast-deep-equal';
15
15
 
@@ -18,11 +18,10 @@ import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-c
18
18
  import { DatapageService } from '@pega/angular-sdk-components';
19
19
  import { getReferenceList } from '@pega/angular-sdk-components';
20
20
  import { buildFieldsForTable, filterDataByCommonFields, filterDataByDate, getContext } from './helpers';
21
+ import { evaluateAllowRowAction } from '@pega/angular-sdk-components';
21
22
  import { Utils } from '@pega/angular-sdk-components';
22
23
  import { getSeconds } from '@pega/angular-sdk-components';
23
24
 
24
- declare const window: any;
25
-
26
25
  interface SimpleTableManualProps {
27
26
  // If any, enter additional props that only exist on this component
28
27
  visibility?: boolean;
@@ -37,7 +36,9 @@ interface SimpleTableManualProps {
37
36
  contextClass?: string;
38
37
  propertyLabel?: string;
39
38
  fieldMetadata?: any;
39
+ allowActions?: any;
40
40
  allowTableEdit?: boolean;
41
+ allowRowDelete?: any;
41
42
  editMode?: string;
42
43
  addAndEditRowsWithin?: any;
43
44
  viewForAddAndEditModal?: any;
@@ -45,6 +46,7 @@ interface SimpleTableManualProps {
45
46
  displayMode?: string;
46
47
  useSeparateViewForEdit: any;
47
48
  viewForEditModal: any;
49
+ targetClassLabel: string;
48
50
  }
49
51
 
50
52
  class Group {
@@ -61,7 +63,6 @@ class Group {
61
63
  selector: 'app-simple-table-manual',
62
64
  templateUrl: './simple-table-manual.component.html',
63
65
  styleUrls: ['./simple-table-manual.component.scss'],
64
- standalone: true,
65
66
  imports: [
66
67
  CommonModule,
67
68
  MatTableModule,
@@ -73,8 +74,10 @@ class Group {
73
74
  MatOptionModule,
74
75
  MatSelectModule,
75
76
  MatInputModule,
77
+ MatIcon,
76
78
  forwardRef(() => ComponentMapperComponent)
77
- ]
79
+ ],
80
+ providers: [DatapageService]
78
81
  })
79
82
  export class SimpleTableManualComponent implements OnInit, OnDestroy {
80
83
  @ViewChild(MatSort) sort: MatSort;
@@ -103,6 +106,7 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
103
106
  showAddRowButton: boolean;
104
107
  prevReferenceList: any[] = [];
105
108
  elementsData: MatTableDataSource<any>;
109
+ originalElementsData: MatTableDataSource<any>;
106
110
  rawFields: any;
107
111
  label?: string = '';
108
112
  searchIcon$: string;
@@ -158,14 +162,17 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
158
162
  settingsSvgIcon$: string;
159
163
 
160
164
  isInitialized = false;
161
-
165
+ targetClassLabel: string;
166
+ localizedVal = PCore.getLocaleUtils().getLocaleValue;
167
+ localeCategory = 'SimpleTable';
162
168
  constructor(
163
169
  private angularPConnect: AngularPConnectService,
164
- private utils: Utils,
170
+ public utils: Utils,
165
171
  private dataPageService: DatapageService
166
172
  ) {}
167
173
 
168
174
  ngOnInit(): void {
175
+ this.elementsData = new MatTableDataSource<any>([]);
169
176
  this.isInitialized = true;
170
177
  // First thing in initialization is registering and subscribing to the AngularPConnect service
171
178
  this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
@@ -211,7 +218,6 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
211
218
  this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as SimpleTableManualProps;
212
219
 
213
220
  if (this.configProps$.visibility != null) {
214
- // eslint-disable-next-line no-multi-assign
215
221
  this.bVisible$ = this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);
216
222
  }
217
223
 
@@ -219,7 +225,7 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
219
225
  // but getRawMetadata() has each child.config with datasource and value showing their unresolved values (ex: "@P thePropName")
220
226
  // We need to use the prop name as the "glue" to tie the Angular Material table dataSource, displayColumns and data together.
221
227
  // So, in the code below, we'll use the unresolved config.value (but replacing the space with an underscore to keep things happy)
222
- const rawMetadata: any = this.pConn$.getRawMetadata();
228
+ const rawMetadata = this.pConn$.getRawMetadata();
223
229
 
224
230
  // Adapted from Nebula
225
231
  const {
@@ -227,7 +233,9 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
227
233
  renderMode,
228
234
  children, // destructure children into an array var: "resolvedFields"
229
235
  presets,
236
+ allowActions,
230
237
  allowTableEdit,
238
+ allowRowDelete,
231
239
  label: labelProp,
232
240
  propertyLabel,
233
241
  fieldMetadata,
@@ -237,15 +245,26 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
237
245
  editModeConfig,
238
246
  displayMode,
239
247
  useSeparateViewForEdit,
240
- viewForEditModal
248
+ viewForEditModal,
249
+ targetClassLabel
241
250
  } = this.configProps$;
242
251
 
252
+ const simpleTableManualProps: any = {};
253
+ if (this.checkIfAllowActionsOrRowEditingExist(allowActions) && editMode) {
254
+ simpleTableManualProps.hideAddRow = allowActions?.allowAdd === false;
255
+ simpleTableManualProps.hideDeleteRow = allowActions?.allowDelete === false;
256
+ simpleTableManualProps.hideEditRow = allowActions?.allowEdit === false;
257
+ simpleTableManualProps.disableDragDrop = allowActions?.allowDragDrop === false;
258
+ } else if (allowTableEdit === false) {
259
+ simpleTableManualProps.hideAddRow = true;
260
+ simpleTableManualProps.hideDeleteRow = true;
261
+ simpleTableManualProps.disableDragDrop = true;
262
+ }
263
+
243
264
  this.referenceListStr = getContext(this.pConn$).referenceListStr;
244
265
  this.label = labelProp || propertyLabel;
245
266
  this.parameters = fieldMetadata?.datasource?.parameters;
246
-
247
- const hideAddRow = allowTableEdit === false;
248
- const hideDeleteRow = allowTableEdit === false;
267
+ this.targetClassLabel = targetClassLabel;
249
268
  let { contextClass } = this.configProps$;
250
269
  this.referenceList = referenceList;
251
270
  if (!contextClass) {
@@ -262,7 +281,7 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
262
281
  // config.value (ex: "@P .DeclarantChoice") or
263
282
  // config.datasource (ex: "@ASSOCIATED .DeclarantChoice")
264
283
  // Neither of these appear in the resolved (this.configProps$)
265
- const rawConfig = rawMetadata?.config;
284
+ const rawConfig: any = rawMetadata?.config;
266
285
  const rawFields = rawConfig?.children?.[0]?.children || rawConfig?.presets?.[0].children?.[0]?.children;
267
286
  this.rawFields = rawFields;
268
287
  // At this point, fields has resolvedFields and rawFields we can use
@@ -282,13 +301,14 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
282
301
  this.readOnlyMode = renderMode === 'ReadOnly';
283
302
  this.editableMode = renderMode === 'Editable';
284
303
  const isDisplayModeEnabled = displayMode === 'DISPLAY_ONLY';
285
- this.showAddRowButton = !this.readOnlyMode && !hideAddRow;
304
+ this.showAddRowButton = !this.readOnlyMode && !simpleTableManualProps.hideAddRow;
286
305
  this.allowEditingInModal =
287
306
  (editMode ? editMode === 'modal' : addAndEditRowsWithin === 'modal') && !(renderMode === 'ReadOnly' || isDisplayModeEnabled);
288
- const showDeleteButton = this.editableMode && !hideDeleteRow;
307
+ const showDeleteButton = this.editableMode && !simpleTableManualProps.hideDeleteRow && evaluateAllowRowAction(allowRowDelete, this.rowData);
289
308
  this.defaultView = editModeConfig ? editModeConfig.defaultView : viewForAddAndEditModal;
290
309
  this.bUseSeparateViewForEdit = editModeConfig ? editModeConfig.useSeparateViewForEdit : useSeparateViewForEdit;
291
310
  this.editView = editModeConfig ? editModeConfig.editView : viewForEditModal;
311
+ const primaryFieldsViewIndex = resolvedFields.findIndex(field => field.config.value === 'pyPrimaryFields');
292
312
  // const showDeleteButton = !this.readOnlyMode && !hideDeleteRow;
293
313
 
294
314
  // Nebula has other handling for isReadOnlyMode but has Cosmos-specific code
@@ -299,8 +319,11 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
299
319
  // Nebula does). It will also have the "label", and "meta" contains the original,
300
320
  // unchanged config info. For now, much of the info here is carried over from
301
321
  // Nebula and we may not end up using it all.
302
- this.fieldDefs = buildFieldsForTable(rawFields, resolvedFields, showDeleteButton);
303
-
322
+ this.fieldDefs = buildFieldsForTable(rawFields, this.pConn$, showDeleteButton, {
323
+ primaryFieldsViewIndex,
324
+ fields: resolvedFields
325
+ });
326
+ this.fieldDefs = this.fieldDefs?.filter(field => !(field.meta?.config?.hide === true));
304
327
  this.initializeDefaultPageInstructions();
305
328
 
306
329
  // end of from Nebula
@@ -316,15 +339,20 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
316
339
  // from from the fieldDefs. This "name" is the value that
317
340
  // we'll share to connect things together in the table.
318
341
 
342
+ const labelsMap = this.fieldDefs.reduce((acc, curr) => {
343
+ return { ...acc, [curr.name]: curr.label };
344
+ }, {});
345
+
319
346
  this.processedFields = [];
320
347
 
321
348
  this.processedFields = resolvedFields.map((field, i) => {
322
349
  field.config.name = this.displayedColumns[i]; // .config["value"].replace(/ ./g,"_"); // replace space dot with underscore
350
+ field.config.label = labelsMap[field.config.name] || field.config.label;
323
351
  return field;
324
352
  });
325
353
 
326
354
  // for adding rows to table when editable and not modal view
327
- if (this.prevReferenceList.length !== this.referenceList.length && this.editableMode && !this.allowEditingInModal) {
355
+ if (this.prevReferenceList.length !== this.referenceList.length) {
328
356
  this.buildElementsForTable();
329
357
  }
330
358
 
@@ -351,11 +379,14 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
351
379
  // ties the 3 data structures together.
352
380
  }
353
381
 
382
+ checkIfAllowActionsOrRowEditingExist(newflagobject) {
383
+ return (newflagobject && Object.keys(newflagobject).length > 0) || this.pConn$.getComponentConfig().allowRowEdit;
384
+ }
385
+
354
386
  initializeDefaultPageInstructions() {
355
387
  if (this.isInitialized) {
356
388
  this.isInitialized = false;
357
389
  if (this.allowEditingInModal) {
358
- // @ts-ignore - An argument for 'uniqueField' was not provided.
359
390
  this.pConn$.getListActions().initDefaultPageInstructions(
360
391
  this.pConn$.getReferenceList(),
361
392
  this.fieldDefs.filter(item => item.name).map(item => item.name)
@@ -373,8 +404,8 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
373
404
  }
374
405
 
375
406
  sortCompare(a, b): number {
376
- let aValue = a[this.compareRef];
377
- let bValue = b[this.compareRef];
407
+ let aValue = a[0][this.compareRef];
408
+ let bValue = b[0][this.compareRef];
378
409
 
379
410
  if (this.compareType == 'Date' || this.compareType == 'DateTime') {
380
411
  aValue = getSeconds(aValue);
@@ -497,17 +528,20 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
497
528
  // run through list of elements in path, if menu not in th path, then want to
498
529
  // hide (toggle) the menu
499
530
  const eventPath = event.path;
500
- for (let eventIndex = 0; eventIndex < eventPath.length; eventIndex++) {
501
- if (
502
- eventPath[eventIndex].className == 'psdk-modal-file-top' ||
503
- eventPath[eventIndex].tagName == 'BUTTON' ||
504
- eventPath[eventIndex].tagName == 'MAT-OPTION' ||
505
- eventPath[eventIndex].tagName == 'MAT-INPUT'
506
- ) {
507
- bInPopUp = true;
508
- break;
531
+ if (eventPath) {
532
+ for (let eventIndex = 0; eventIndex < eventPath.length; eventIndex++) {
533
+ if (
534
+ eventPath[eventIndex].className == 'psdk-modal-file-top' ||
535
+ eventPath[eventIndex].tagName == 'BUTTON' ||
536
+ eventPath[eventIndex].tagName == 'MAT-OPTION' ||
537
+ eventPath[eventIndex].tagName == 'MAT-INPUT'
538
+ ) {
539
+ bInPopUp = true;
540
+ break;
541
+ }
509
542
  }
510
543
  }
544
+
511
545
  if (!bInPopUp) {
512
546
  // this.bShowFilterPopover$ = false;
513
547
 
@@ -626,7 +660,8 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
626
660
  }
627
661
  }
628
662
 
629
- filterData(item: any) {
663
+ filterData(element: any) {
664
+ const item = element[0];
630
665
  let bKeep = true;
631
666
  for (const filterObj of this.filterByColumns) {
632
667
  if (filterObj.containsFilterValue != '' || filterObj.containsFilter == 'null' || filterObj.containsFilter == 'notnull') {
@@ -640,6 +675,8 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
640
675
  bKeep = filterDataByCommonFields(item, filterObj);
641
676
  break;
642
677
  }
678
+ } else if (filterObj.containsFilterValue === '') {
679
+ bKeep = true;
643
680
  }
644
681
 
645
682
  // if don't keep stop filtering
@@ -652,14 +689,22 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
652
689
  }
653
690
 
654
691
  filterSortGroupBy() {
655
- let theData = this.originalData.slice();
692
+ let theData = this.originalData.slice().map((item, index) => {
693
+ return [item, index];
694
+ });
656
695
 
657
696
  // last filter config data is global
658
697
  theData = theData.filter(this.filterData.bind(this));
659
698
 
660
699
  // last sort config data is global
661
700
  theData.sort(this.sortCompare.bind(this));
662
- this.rowData.data = theData;
701
+ this.rowData.data = theData.map(item => item[0]);
702
+
703
+ const newElements: any = new Array(this.rowData.data.length);
704
+ theData.forEach((item, index) => {
705
+ newElements[index] = this.originalElementsData[item[1]];
706
+ });
707
+ this.elementsData = newElements;
663
708
  }
664
709
 
665
710
  _headerSortClick(event, columnData) {
@@ -782,7 +827,7 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
782
827
  const seen = {};
783
828
  return a.filter(item => {
784
829
  const k = key(item);
785
- // eslint-disable-next-line no-return-assign, no-prototype-builtins
830
+ // eslint-disable-next-line no-prototype-builtins
786
831
  return seen.hasOwnProperty(k) ? false : (seen[k] = true);
787
832
  });
788
833
  }
@@ -873,7 +918,7 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
873
918
 
874
919
  // return the value that should be shown as the contents for the given row data
875
920
  // of the given row field
876
- getRowValue(inRowData: Object, inColKey: string): any {
921
+ getRowValue(inRowData: object, inColKey: string): any {
877
922
  // See what data (if any) we have to display
878
923
  const refKeys: string[] = inColKey.split('.');
879
924
  let valBuilder = inRowData;
@@ -916,39 +961,41 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
916
961
  if (this.allowEditingInModal && this.defaultView) {
917
962
  this.pConn$
918
963
  .getActionsApi()
964
+ // @ts-expect-error
919
965
  .openEmbeddedDataModal(
920
966
  this.defaultView,
921
- this.pConn$,
967
+ this.pConn$ as any,
922
968
  this.referenceListStr,
923
969
  this.referenceList.length,
924
- PCore.getConstants().RESOURCE_STATUS.CREATE
970
+ PCore.getConstants().RESOURCE_STATUS.CREATE,
971
+ this.targetClassLabel
925
972
  );
926
973
  } else {
927
- // @ts-ignore - second parameter "pageRef" is optional for insert method
928
974
  this.pConn$.getListActions().insert({ classID: this.contextClass }, this.referenceList.length);
929
975
  }
930
976
 
931
977
  this.pConn$.clearErrorMessages({
932
- property: (this.pConn$.getStateProps() as any)?.referenceList?.substring(1)
933
- } as any);
978
+ property: this.pConn$.getStateProps()?.referenceList?.substring(1)
979
+ });
934
980
  }
935
981
 
936
982
  editRecord(data, index) {
937
983
  if (data) {
938
984
  this.pConn$
939
985
  .getActionsApi()
986
+ // @ts-expect-error
940
987
  .openEmbeddedDataModal(
941
988
  this.bUseSeparateViewForEdit ? this.editView : this.defaultView,
942
- this.pConn$,
989
+ this.pConn$ as any,
943
990
  this.referenceListStr,
944
991
  index,
945
- PCore.getConstants().RESOURCE_STATUS.UPDATE
992
+ PCore.getConstants().RESOURCE_STATUS.UPDATE,
993
+ this.targetClassLabel
946
994
  );
947
995
  }
948
996
  }
949
997
 
950
998
  deleteRecord(index) {
951
- // @ts-ignore - second parameter "pageRef" is optional for deleteEntry method
952
999
  this.pConn$.getListActions().deleteEntry(index);
953
1000
  }
954
1001
 
@@ -958,23 +1005,36 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
958
1005
  this.referenceList.forEach((element, index) => {
959
1006
  const data: any = [];
960
1007
  this.rawFields?.forEach(item => {
961
- const referenceListData = getReferenceList(this.pConn$);
962
- const isDatapage = referenceListData.startsWith('D_');
963
- const pageReferenceValue = isDatapage ? `${referenceListData}[${index}]` : `${this.pConn$.getPageReference()}${referenceListData}[${index}]`;
964
- const config = {
965
- meta: item,
966
- options: {
967
- context,
968
- pageReference: pageReferenceValue,
969
- referenceList: referenceListData,
970
- hasForm: true
971
- }
972
- };
973
- const view = PCore.createPConnect(config);
974
- data.push(view);
1008
+ if (!item?.config?.hide) {
1009
+ item = {
1010
+ ...item,
1011
+ config: {
1012
+ ...item.config,
1013
+ label: '',
1014
+ displayMode: this.readOnlyMode || this.allowEditingInModal ? 'DISPLAY_ONLY' : undefined
1015
+ }
1016
+ };
1017
+ const referenceListData = getReferenceList(this.pConn$);
1018
+ const isDatapage = referenceListData.startsWith('D_');
1019
+ const pageReferenceValue = isDatapage
1020
+ ? `${referenceListData}[${index}]`
1021
+ : `${this.pConn$.getPageReference()}${referenceListData}[${index}]`;
1022
+ const config = {
1023
+ meta: item,
1024
+ options: {
1025
+ context,
1026
+ pageReference: pageReferenceValue,
1027
+ referenceList: referenceListData,
1028
+ hasForm: true
1029
+ }
1030
+ };
1031
+ const view = PCore.createPConnect(config);
1032
+ data.push(view);
1033
+ }
975
1034
  });
976
1035
  eleData.push(data);
977
1036
  });
1037
+ this.originalElementsData = eleData;
978
1038
  this.elementsData = eleData;
979
1039
  }
980
1040
  }
@@ -8,7 +8,6 @@ import { ComponentMapperComponent } from '@pega/angular-sdk-components';
8
8
  selector: 'app-simple-table-select',
9
9
  templateUrl: './simple-table-select.component.html',
10
10
  styleUrls: ['./simple-table-select.component.scss'],
11
- standalone: true,
12
11
  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
13
12
  })
14
13
  export class SimpleTableSelectComponent implements OnInit, OnDestroy {
@@ -57,7 +56,7 @@ export class SimpleTableSelectComponent implements OnInit, OnDestroy {
57
56
  }
58
57
 
59
58
  updateSelf() {
60
- const theConfigProps: any = this.pConn$.getConfigProps();
59
+ const theConfigProps = this.pConn$.getConfigProps();
61
60
  this.label = theConfigProps.label;
62
61
  this.renderMode = theConfigProps.renderMode;
63
62
  this.showLabel = theConfigProps.showLabel;
@@ -71,7 +70,7 @@ export class SimpleTableSelectComponent implements OnInit, OnDestroy {
71
70
  this.propsToUse.label = '';
72
71
  }
73
72
  const { MULTI } = PCore.getConstants().LIST_SELECTION_MODE;
74
- const { selectionMode, selectionList }: any = this.pConn$.getConfigProps();
73
+ const { selectionMode, selectionList } = this.pConn$.getConfigProps();
75
74
  const isMultiSelectMode = selectionMode === MULTI;
76
75
  if (isMultiSelectMode && this.renderMode === 'ReadOnly') {
77
76
  this.showSimpleTableManual = true;
@@ -137,7 +136,7 @@ export class SimpleTableSelectComponent implements OnInit, OnDestroy {
137
136
  parameters: this.parameters
138
137
  };
139
138
 
140
- this.filters = (this.pConn$.getRawMetadata() as any).config.promotedFilters ?? [];
139
+ this.filters = (this.pConn$.getRawMetadata()?.config as any).promotedFilters ?? [];
141
140
 
142
141
  this.isSearchable = this.filters.length > 0;
143
142
  }
@@ -1 +1,4 @@
1
- <component-mapper name="SemanticLink" [props]="{ pConn$ }"></component-mapper>
1
+ <div [ngClass]="displayMode ? 'psdk-grid-display' : 'psdk-grid-nondisplay'">
2
+ <div *ngIf="label" class="psdk-grid-label">{{ label }}</div>
3
+ <component-mapper name="SemanticLink" [props]="{ pConn$: newPconn, formGroup$ }"></component-mapper>
4
+ </div>
@@ -0,0 +1,21 @@
1
+ .psdk-grid-display {
2
+ display: grid;
3
+ grid-template-columns: repeat(2, minmax(0, 1fr));
4
+ column-gap: calc(2 * 0.5rem);
5
+ row-gap: calc(2 * 0.5rem);
6
+ align-items: center;
7
+ margin-top: 1rem;
8
+ }
9
+
10
+ .psdk-grid-nondisplay {
11
+ margin-top: 1rem;
12
+ }
13
+
14
+ .psdk-label {
15
+ color: var(--app-label-color);
16
+ margin: 8px 0px;
17
+ }
18
+
19
+ .psdk-value {
20
+ margin: 8px 0px;
21
+ }
@@ -1,15 +1,115 @@
1
- import { Component, Input, forwardRef } from '@angular/core';
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, Input, forwardRef, OnInit, OnDestroy } from '@angular/core';
2
3
  import { FormGroup } from '@angular/forms';
4
+ import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
3
5
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
6
+ import { getDataRelationshipContextFromKey } from '@pega/angular-sdk-components';
4
7
 
5
8
  @Component({
6
9
  selector: 'app-single-reference-readonly',
7
10
  templateUrl: './single-reference-readonly.component.html',
8
11
  styleUrls: ['./single-reference-readonly.component.scss'],
9
- standalone: true,
10
- imports: [forwardRef(() => ComponentMapperComponent)]
12
+ imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
11
13
  })
12
- export class SingleReferenceReadonlyComponent {
14
+ export class SingleReferenceReadonlyComponent implements OnInit, OnDestroy {
13
15
  @Input() pConn$: typeof PConnect;
14
16
  @Input() formGroup$: FormGroup;
17
+ @Input() dataRelationshipContext?: any;
18
+
19
+ angularPConnectData: AngularPConnectData = {};
20
+ configProps: any;
21
+ component: any;
22
+ label: string;
23
+ newPconn: typeof PConnect;
24
+ displayMode: string;
25
+
26
+ constructor(private angularPConnect: AngularPConnectService) {}
27
+
28
+ ngOnInit(): void {
29
+ // First thing in initialization is registering and subscribing to the AngularPConnect service
30
+ this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
31
+ this.checkAndUpdate();
32
+ }
33
+
34
+ ngOnDestroy(): void {
35
+ if (this.angularPConnectData.unsubscribeFn) {
36
+ this.angularPConnectData.unsubscribeFn();
37
+ }
38
+ }
39
+
40
+ // Callback passed when subscribing to store change
41
+ onStateChange() {
42
+ this.checkAndUpdate();
43
+ }
44
+
45
+ checkAndUpdate() {
46
+ // Should always check the bridge to see if the component should
47
+ // update itself (re-render)
48
+ const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
49
+
50
+ // ONLY call updateSelf when the component should update
51
+ if (bUpdateSelf) {
52
+ this.updateSelf();
53
+ }
54
+ }
55
+
56
+ updateSelf() {
57
+ this.configProps = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
58
+ const rawViewMetadata = this.pConn$.getRawMetadata();
59
+ const label = this.configProps.label;
60
+ const showLabel = this.configProps.showLabel;
61
+ const propsToUse = { label, showLabel, ...this.pConn$.getInheritedProps() };
62
+ const type = (rawViewMetadata?.config as any)?.componentType;
63
+ this.displayMode = this.configProps.displayMode;
64
+ const targetObjectType = this.configProps.targetObjectType;
65
+ const referenceType = targetObjectType === 'case' ? 'Case' : 'Data';
66
+ const hideLabel = this.configProps.hideLabel;
67
+ // const additionalFields = this.configProps.additionalFields;
68
+ const displayAs = this.configProps.displayAs ?? 'readonly';
69
+ const dataRelationshipContext = (rawViewMetadata?.config as any)?.displayField
70
+ ? getDataRelationshipContextFromKey((rawViewMetadata?.config as any)?.displayField)
71
+ : this.dataRelationshipContext;
72
+ if (propsToUse.showLabel === false) {
73
+ propsToUse.label = '';
74
+ }
75
+ this.label = propsToUse.label;
76
+
77
+ const editableComponents = ['AutoComplete', 'SimpleTableSelect', 'Dropdown', 'RadioButtons'];
78
+ const config: any = {
79
+ ...rawViewMetadata?.config,
80
+ primaryField: (rawViewMetadata?.config as any)?.displayField,
81
+ label: this.label
82
+ };
83
+
84
+ const activeViewRuleClass = (rawViewMetadata?.config as any)?.targetObjectClass;
85
+ if (editableComponents.includes(type)) {
86
+ config.caseClass = activeViewRuleClass;
87
+ config.text = config.primaryField;
88
+ config.caseID = config.value;
89
+ config.contextPage = `@P .${dataRelationshipContext}`;
90
+ config.resourceParams = {
91
+ workID: displayAs === 'table' ? (config as any)?.selectionKey : config.value
92
+ };
93
+ config.resourcePayload = {
94
+ caseClassName: activeViewRuleClass
95
+ };
96
+ }
97
+
98
+ this.component = this.pConn$.createComponent(
99
+ {
100
+ type: 'SemanticLink',
101
+ config: {
102
+ ...config,
103
+ displayMode: this.displayMode,
104
+ referenceType,
105
+ hideLabel,
106
+ dataRelationshipContext
107
+ }
108
+ },
109
+ '',
110
+ 0,
111
+ {}
112
+ );
113
+ this.newPconn = this.component.getPConnect();
114
+ }
15
115
  }
@@ -10,7 +10,6 @@ import { ComponentMapperComponent } from '@pega/angular-sdk-components';
10
10
  selector: 'app-sub-tabs',
11
11
  templateUrl: './sub-tabs.component.html',
12
12
  styleUrls: ['./sub-tabs.component.scss'],
13
- standalone: true,
14
13
  imports: [MatTabsModule, CommonModule, forwardRef(() => ComponentMapperComponent)]
15
14
  })
16
15
  export class SubTabsComponent implements OnInit, OnDestroy {
@@ -2,16 +2,16 @@ import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { FormGroup } from '@angular/forms';
4
4
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
5
+ import { FormTemplateBase } from '@pega/angular-sdk-components';
5
6
 
6
7
  @Component({
7
8
  selector: 'app-three-column',
8
9
  templateUrl: './three-column.component.html',
9
10
  styleUrls: ['./three-column.component.scss'],
10
- standalone: true,
11
11
  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
12
12
  })
13
- export class ThreeColumnComponent implements OnInit, OnChanges {
14
- @Input() pConn$: typeof PConnect;
13
+ export class ThreeColumnComponent extends FormTemplateBase implements OnInit, OnChanges {
14
+ @Input() override pConn$: typeof PConnect;
15
15
  @Input() formGroup$: FormGroup;
16
16
 
17
17
  arChildren$: any[];
@@ -29,6 +29,6 @@ export class ThreeColumnComponent implements OnInit, OnChanges {
29
29
  }
30
30
 
31
31
  updateSelf() {
32
- this.arChildren$ = this.pConn$.getChildren() as any[];
32
+ this.arChildren$ = this.pConn$.getChildren();
33
33
  }
34
34
  }
@@ -6,7 +6,6 @@ import { ComponentMapperComponent } from '@pega/angular-sdk-components';
6
6
  selector: 'app-three-column-page',
7
7
  templateUrl: './three-column-page.component.html',
8
8
  styleUrls: ['./three-column-page.component.scss'],
9
- standalone: true,
10
9
  imports: [forwardRef(() => ComponentMapperComponent)]
11
10
  })
12
11
  export class ThreeColumnPageComponent {