@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
@@ -0,0 +1,64 @@
1
+ import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ReferenceComponent } from '@pega/angular-sdk-components';
4
+ import { ComponentMapperComponent } from '@pega/angular-sdk-components';
5
+
6
+ interface DefaultPageProps {
7
+ // If any, enter additional props that only exist on this component
8
+ layout?: string;
9
+ title?: string;
10
+ heading?: string;
11
+ message?: string;
12
+ backgroundImage?: string;
13
+ enableBanner?: boolean;
14
+ }
15
+
16
+ @Component({
17
+ selector: 'app-default-page',
18
+ templateUrl: './default-page.component.html',
19
+ styleUrls: ['./default-page.component.scss'],
20
+ imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
21
+ })
22
+ export class DefaultPageComponent implements OnInit, OnChanges {
23
+ @Input() pConn$: typeof PConnect;
24
+ @Input() formGroup$: any;
25
+
26
+ configProps$: DefaultPageProps;
27
+ arChildren$: any[];
28
+ title?: string;
29
+ heading: any;
30
+ message?: string;
31
+ backgroundImage?: string;
32
+ layout$?: string;
33
+ enableBanner$?: boolean;
34
+
35
+ constructor() {
36
+ this.backgroundImage = this.configProps$?.backgroundImage;
37
+ }
38
+
39
+ ngOnInit() {
40
+ this.backgroundImage = this.configProps$?.backgroundImage;
41
+ this.updateSelf();
42
+ }
43
+
44
+ ngOnChanges(changes: SimpleChanges): void {
45
+ const { pConn$ } = changes;
46
+ this.backgroundImage = this.configProps$?.backgroundImage;
47
+
48
+ if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {
49
+ this.updateSelf();
50
+ }
51
+ }
52
+
53
+ updateSelf() {
54
+ this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as DefaultPageProps;
55
+
56
+ this.layout$ = this.configProps$.layout;
57
+ this.heading = this.configProps$.heading;
58
+ this.message = this.configProps$.message;
59
+ this.backgroundImage = this.configProps$.backgroundImage;
60
+ this.enableBanner$ = this.configProps$.enableBanner;
61
+
62
+ this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());
63
+ }
64
+ }
@@ -1,57 +1,22 @@
1
- import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';
2
- import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
1
+ import { Component, forwardRef } from '@angular/core';
3
2
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
3
+ import { DetailsTemplateBase } from '@pega/angular-sdk-components';
4
4
 
5
5
  @Component({
6
6
  selector: 'app-details',
7
7
  templateUrl: './details.component.html',
8
8
  styleUrls: ['./details.component.scss'],
9
- standalone: true,
10
9
  imports: [forwardRef(() => ComponentMapperComponent)]
11
10
  })
12
- export class DetailsComponent implements OnInit, OnDestroy {
13
- constructor(private angularPConnect: AngularPConnectService) {}
14
-
15
- @Input() pConn$: typeof PConnect;
11
+ export class DetailsComponent extends DetailsTemplateBase {
12
+ override pConn$: typeof PConnect;
16
13
 
17
14
  highlightedDataArr: any[] = [];
18
15
  showHighlightedData: boolean;
19
16
  arFields$: any[] = [];
20
17
 
21
- // Used with AngularPConnect
22
- angularPConnectData: AngularPConnectData = {};
23
-
24
- ngOnInit(): void {
25
- // First thing in initialization is registering and subscribing to the AngularPConnect service
26
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
27
-
28
- // this.updateSelf();
29
- this.checkAndUpdate();
30
- }
31
-
32
- ngOnDestroy() {
33
- if (this.angularPConnectData.unsubscribeFn) {
34
- this.angularPConnectData.unsubscribeFn();
35
- }
36
- }
37
-
38
- onStateChange() {
39
- this.checkAndUpdate();
40
- }
41
-
42
- checkAndUpdate() {
43
- // Should always check the bridge to see if the component should
44
- // update itself (re-render)
45
- const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
46
-
47
- // ONLY call updateSelf when the component should update
48
- if (bUpdateSelf) {
49
- this.updateSelf();
50
- }
51
- }
52
-
53
- updateSelf() {
54
- const rawMetaData: any = this.pConn$.resolveConfigProps((this.pConn$.getRawMetadata() as any).config);
18
+ override updateSelf() {
19
+ const rawMetaData: any = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);
55
20
  this.showHighlightedData = rawMetaData?.showHighlightedData;
56
21
 
57
22
  if (this.showHighlightedData) {
@@ -79,7 +44,7 @@ export class DetailsComponent implements OnInit, OnDestroy {
79
44
  if (theCompType === 'reference' || theCompType === 'group') {
80
45
  const configProps = thePConn.getConfigProps();
81
46
  configProps.readOnly = true;
82
- configProps.displayMode = 'LABELS_LEFT';
47
+ configProps.displayMode = 'DISPLAY_ONLY';
83
48
  const propToUse = { ...thePConn.getInheritedProps() };
84
49
  configProps.label = propToUse?.label;
85
50
  const options = {
@@ -1,57 +1,23 @@
1
- import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';
2
- import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
1
+ import { Component, forwardRef } from '@angular/core';
3
2
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
3
+ import { DetailsTemplateBase } from '@pega/angular-sdk-components';
4
4
 
5
5
  @Component({
6
6
  selector: 'app-details-narrow-wide',
7
7
  templateUrl: './details-narrow-wide.component.html',
8
8
  styleUrls: ['./details-narrow-wide.component.scss'],
9
- standalone: true,
10
9
  imports: [forwardRef(() => ComponentMapperComponent)]
11
10
  })
12
- export class DetailsNarrowWideComponent implements OnInit, OnDestroy {
13
- constructor(private angularPConnect: AngularPConnectService) {}
14
-
15
- @Input() pConn$: typeof PConnect;
11
+ export class DetailsNarrowWideComponent extends DetailsTemplateBase {
12
+ override pConn$: typeof PConnect;
16
13
 
17
14
  arFields$: any[] = [];
18
15
  arFields2$: any[] = [];
19
16
  highlightedDataArr: any[] = [];
20
17
  showHighlightedData: boolean;
21
- // Used with AngularPConnect
22
- angularPConnectData: AngularPConnectData = {};
23
-
24
- ngOnInit(): void {
25
- // First thing in initialization is registering and subscribing to the AngularPConnect service
26
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
27
-
28
- // this.updateSelf();
29
- this.checkAndUpdate();
30
- }
31
-
32
- ngOnDestroy() {
33
- if (this.angularPConnectData.unsubscribeFn) {
34
- this.angularPConnectData.unsubscribeFn();
35
- }
36
- }
37
-
38
- onStateChange() {
39
- this.checkAndUpdate();
40
- }
41
-
42
- checkAndUpdate() {
43
- // Should always check the bridge to see if the component should
44
- // update itself (re-render)
45
- const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
46
-
47
- // ONLY call updateSelf when the component should update
48
- if (bUpdateSelf) {
49
- this.updateSelf();
50
- }
51
- }
52
18
 
53
- updateSelf() {
54
- const rawMetaData: any = this.pConn$.resolveConfigProps((this.pConn$.getRawMetadata() as any).config);
19
+ override updateSelf() {
20
+ const rawMetaData: any = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);
55
21
  this.showHighlightedData = rawMetaData?.showHighlightedData;
56
22
 
57
23
  if (this.showHighlightedData) {
@@ -1,59 +1,23 @@
1
- import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';
2
- import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
3
- import { FormGroup } from '@angular/forms';
1
+ import { Component, forwardRef } from '@angular/core';
4
2
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
3
+ import { DetailsTemplateBase } from '@pega/angular-sdk-components';
5
4
 
6
5
  @Component({
7
6
  selector: 'app-details-one-column',
8
7
  templateUrl: './details-one-column.component.html',
9
8
  styleUrls: ['./details-one-column.component.scss'],
10
- standalone: true,
11
9
  imports: [forwardRef(() => ComponentMapperComponent)]
12
10
  })
13
- export class DetailsOneColumnComponent implements OnInit, OnDestroy {
14
- constructor(private angularPConnect: AngularPConnectService) {}
11
+ export class DetailsOneColumnComponent extends DetailsTemplateBase {
12
+ override pConn$: typeof PConnect;
15
13
 
16
- @Input() pConn$: typeof PConnect;
17
- @Input() formGroup$: FormGroup;
18
14
  showHighlightedData: boolean;
19
15
  highlightedDataArr: any;
20
16
 
21
17
  arFields$: any[] = [];
22
18
 
23
- // Used with AngularPConnect
24
- angularPConnectData: AngularPConnectData = {};
25
-
26
- ngOnInit(): void {
27
- // First thing in initialization is registering and subscribing to the AngularPConnect service
28
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
29
-
30
- // this.updateSelf();
31
- this.checkAndUpdate();
32
- }
33
-
34
- ngOnDestroy() {
35
- if (this.angularPConnectData.unsubscribeFn) {
36
- this.angularPConnectData.unsubscribeFn();
37
- }
38
- }
39
-
40
- onStateChange() {
41
- this.checkAndUpdate();
42
- }
43
-
44
- checkAndUpdate() {
45
- // Should always check the bridge to see if the component should
46
- // update itself (re-render)
47
- const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
48
-
49
- // ONLY call updateSelf when the component should update
50
- if (bUpdateSelf) {
51
- this.updateSelf();
52
- }
53
- }
54
-
55
- updateSelf() {
56
- const rawMetaData: any = this.pConn$.resolveConfigProps((this.pConn$.getRawMetadata() as any).config);
19
+ override updateSelf() {
20
+ const rawMetaData: any = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);
57
21
  this.showHighlightedData = rawMetaData?.showHighlightedData;
58
22
 
59
23
  if (this.showHighlightedData) {
@@ -70,7 +34,7 @@ export class DetailsOneColumnComponent implements OnInit, OnDestroy {
70
34
  });
71
35
  }
72
36
 
73
- this.pConn$.setInheritedProp('displayMode', 'LABELS_LEFT');
37
+ this.pConn$.setInheritedProp('displayMode', 'DISPLAY_ONLY');
74
38
  this.pConn$.setInheritedProp('readOnly', true);
75
39
 
76
40
  const kids = this.pConn$.getChildren() as any[];
@@ -5,8 +5,7 @@
5
5
  *ngIf="tab.content?.getPConnect()"
6
6
  [name]="tab.content?.getPConnect().getComponentName()"
7
7
  [props]="{
8
- pConn$: tab.content?.getPConnect(),
9
- formGroup$: formGroup$
8
+ pConn$: tab.content?.getPConnect()
10
9
  }"
11
10
  errorMsg="Details Sub tabs wants component not yet available: {{ tab.content?.getPConnect().getComponentName() }}"
12
11
  ></component-mapper>
@@ -1,57 +1,24 @@
1
- import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';
1
+ import { Component, forwardRef } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
- import { FormGroup } from '@angular/forms';
4
3
  import { MatTabsModule } from '@angular/material/tabs';
5
- import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
6
4
  import { getTransientTabs, getVisibleTabs, tabClick } from '@pega/angular-sdk-components';
7
5
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
6
+ import { DetailsTemplateBase } from '@pega/angular-sdk-components';
8
7
 
9
8
  @Component({
10
9
  selector: 'app-details-sub-tabs',
11
10
  templateUrl: './details-sub-tabs.component.html',
12
11
  styleUrls: ['./details-sub-tabs.component.scss'],
13
- standalone: true,
14
12
  imports: [MatTabsModule, CommonModule, forwardRef(() => ComponentMapperComponent)]
15
13
  })
16
- export class DetailsSubTabsComponent implements OnInit, OnDestroy {
17
- @Input() pConn$: typeof PConnect;
18
- @Input() formGroup$: FormGroup;
14
+ export class DetailsSubTabsComponent extends DetailsTemplateBase {
15
+ override pConn$: typeof PConnect;
19
16
 
20
- angularPConnectData: AngularPConnectData = {};
21
17
  currentTabId = '0';
22
18
  tabItems: any[];
23
19
  availableTabs: any[];
24
20
 
25
- constructor(private angularPConnect: AngularPConnectService) {}
26
-
27
- ngOnInit(): void {
28
- // First thing in initialization is registering and subscribing to the AngularPConnect service
29
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
30
- this.checkAndUpdate();
31
- }
32
-
33
- ngOnDestroy() {
34
- if (this.angularPConnectData.unsubscribeFn) {
35
- this.angularPConnectData.unsubscribeFn();
36
- }
37
- }
38
-
39
- onStateChange() {
40
- this.checkAndUpdate();
41
- }
42
-
43
- checkAndUpdate() {
44
- // Should always check the bridge to see if the component should
45
- // update itself (re-render)
46
- const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
47
-
48
- // ONLY call updateSelf when the component should update
49
- if (bUpdateSelf) {
50
- this.updateSelf();
51
- }
52
- }
53
-
54
- updateSelf() {
21
+ override updateSelf() {
55
22
  const children = this.pConn$?.getChildren();
56
23
  const deferLoadedTabs = children[0];
57
24
  this.availableTabs = getVisibleTabs(deferLoadedTabs, 'tabsSubs');
@@ -1,20 +1,15 @@
1
- import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';
2
- import { FormGroup } from '@angular/forms';
3
- import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
1
+ import { Component, forwardRef } from '@angular/core';
4
2
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
3
+ import { DetailsTemplateBase } from '@pega/angular-sdk-components';
5
4
 
6
5
  @Component({
7
6
  selector: 'app-details-three-column',
8
7
  templateUrl: './details-three-column.component.html',
9
8
  styleUrls: ['./details-three-column.component.scss'],
10
- standalone: true,
11
9
  imports: [forwardRef(() => ComponentMapperComponent)]
12
10
  })
13
- export class DetailsThreeColumnComponent implements OnInit, OnDestroy {
14
- constructor(private angularPConnect: AngularPConnectService) {}
15
-
16
- @Input() pConn$: typeof PConnect;
17
- @Input() formGroup$: FormGroup;
11
+ export class DetailsThreeColumnComponent extends DetailsTemplateBase {
12
+ override pConn$: typeof PConnect;
18
13
 
19
14
  showHighlightedData: boolean;
20
15
  highlightedDataArr: any;
@@ -25,40 +20,8 @@ export class DetailsThreeColumnComponent implements OnInit, OnDestroy {
25
20
 
26
21
  propsToUse: any = {};
27
22
 
28
- // Used with AngularPConnect
29
- angularPConnectData: AngularPConnectData = {};
30
-
31
- ngOnInit(): void {
32
- // First thing in initialization is registering and subscribing to the AngularPConnect service
33
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
34
-
35
- // this.updateSelf();
36
- this.checkAndUpdate();
37
- }
38
-
39
- ngOnDestroy() {
40
- if (this.angularPConnectData.unsubscribeFn) {
41
- this.angularPConnectData.unsubscribeFn();
42
- }
43
- }
44
-
45
- onStateChange() {
46
- this.checkAndUpdate();
47
- }
48
-
49
- checkAndUpdate() {
50
- // Should always check the bridge to see if the component should
51
- // update itself (re-render)
52
- const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
53
-
54
- // ONLY call updateSelf when the component should update
55
- if (bUpdateSelf) {
56
- this.updateSelf();
57
- }
58
- }
59
-
60
- updateSelf() {
61
- const rawMetaData: any = this.pConn$.resolveConfigProps((this.pConn$.getRawMetadata() as any).config);
23
+ override updateSelf() {
24
+ const rawMetaData: any = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);
62
25
  this.showHighlightedData = rawMetaData?.showHighlightedData;
63
26
 
64
27
  if (this.showHighlightedData) {
@@ -75,7 +38,7 @@ export class DetailsThreeColumnComponent implements OnInit, OnDestroy {
75
38
  });
76
39
  }
77
40
 
78
- this.pConn$.setInheritedProp('displayMode', 'LABELS_LEFT');
41
+ this.pConn$.setInheritedProp('displayMode', 'DISPLAY_ONLY');
79
42
  this.pConn$.setInheritedProp('readOnly', true);
80
43
 
81
44
  const kids = this.pConn$.getChildren() as any[];
@@ -1,20 +1,15 @@
1
- import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';
2
- import { FormGroup } from '@angular/forms';
3
- import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
1
+ import { Component, forwardRef } from '@angular/core';
4
2
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
3
+ import { DetailsTemplateBase } from '@pega/angular-sdk-components';
5
4
 
6
5
  @Component({
7
6
  selector: 'app-details-two-column',
8
7
  templateUrl: './details-two-column.component.html',
9
8
  styleUrls: ['./details-two-column.component.scss'],
10
- standalone: true,
11
9
  imports: [forwardRef(() => ComponentMapperComponent)]
12
10
  })
13
- export class DetailsTwoColumnComponent implements OnInit, OnDestroy {
14
- constructor(private angularPConnect: AngularPConnectService) {}
15
-
16
- @Input() pConn$: typeof PConnect;
17
- @Input() formGroup$: FormGroup;
11
+ export class DetailsTwoColumnComponent extends DetailsTemplateBase {
12
+ override pConn$: typeof PConnect;
18
13
 
19
14
  showHighlightedData: boolean;
20
15
  highlightedDataArr: any;
@@ -25,45 +20,13 @@ export class DetailsTwoColumnComponent implements OnInit, OnDestroy {
25
20
 
26
21
  propsToUse: any = {};
27
22
 
28
- // Used with AngularPConnect
29
- angularPConnectData: AngularPConnectData = {};
30
-
31
- ngOnInit(): void {
32
- // First thing in initialization is registering and subscribing to the AngularPConnect service
33
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
34
-
35
- // this.updateSelf();
36
- this.checkAndUpdate();
37
- }
38
-
39
- ngOnDestroy() {
40
- if (this.angularPConnectData.unsubscribeFn) {
41
- this.angularPConnectData.unsubscribeFn();
42
- }
43
- }
44
-
45
- onStateChange() {
46
- this.checkAndUpdate();
47
- }
48
-
49
- checkAndUpdate() {
50
- // Should always check the bridge to see if the component should
51
- // update itself (re-render)
52
- const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
53
-
54
- // ONLY call updateSelf when the component should update
55
- if (bUpdateSelf) {
56
- this.updateSelf();
57
- }
58
- }
59
-
60
- updateSelf() {
61
- const rawMetaData: any = this.pConn$.resolveConfigProps((this.pConn$.getRawMetadata() as any).config);
23
+ override updateSelf() {
24
+ const rawMetaData: any = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);
62
25
  this.showHighlightedData = rawMetaData?.showHighlightedData;
63
26
 
64
27
  if (this.showHighlightedData) {
65
28
  const highlightedData = rawMetaData?.highlightedData;
66
- this.highlightedDataArr = highlightedData.map(field => {
29
+ this.highlightedDataArr = highlightedData?.map(field => {
67
30
  field.config.displayMode = 'STACKED_LARGE_VAL';
68
31
 
69
32
  if (field.config.value === '@P .pyStatusWork') {
@@ -75,7 +38,7 @@ export class DetailsTwoColumnComponent implements OnInit, OnDestroy {
75
38
  });
76
39
  }
77
40
 
78
- this.pConn$.setInheritedProp('displayMode', 'LABELS_LEFT');
41
+ this.pConn$.setInheritedProp('displayMode', 'DISPLAY_ONLY');
79
42
  this.pConn$.setInheritedProp('readOnly', true);
80
43
 
81
44
  const kids = this.pConn$.getChildren() as any[];
@@ -1,60 +1,24 @@
1
- import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';
2
- import { FormGroup } from '@angular/forms';
3
- import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
1
+ import { Component, forwardRef } from '@angular/core';
4
2
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
3
+ import { DetailsTemplateBase } from '@pega/angular-sdk-components';
5
4
 
6
5
  @Component({
7
6
  selector: 'app-details-wide-narrow',
8
7
  templateUrl: './details-wide-narrow.component.html',
9
8
  styleUrls: ['./details-wide-narrow.component.scss'],
10
- standalone: true,
11
9
  imports: [forwardRef(() => ComponentMapperComponent)]
12
10
  })
13
- export class DetailsWideNarrowComponent implements OnInit, OnDestroy {
14
- constructor(private angularPConnect: AngularPConnectService) {}
15
-
16
- @Input() pConn$: typeof PConnect;
17
- @Input() formGroup$: FormGroup;
11
+ export class DetailsWideNarrowComponent extends DetailsTemplateBase {
12
+ override pConn$: typeof PConnect;
18
13
 
19
14
  highlightedDataArr: any[] = [];
20
15
  showHighlightedData: boolean;
21
16
  arFields$: any[] = [];
22
17
  arFields2$: any[] = [];
23
18
  propsToUse: any = {};
24
- // Used with AngularPConnect
25
- angularPConnectData: AngularPConnectData = {};
26
-
27
- ngOnInit(): void {
28
- // First thing in initialization is registering and subscribing to the AngularPConnect service
29
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
30
-
31
- // this.updateSelf();
32
- this.checkAndUpdate();
33
- }
34
-
35
- ngOnDestroy() {
36
- if (this.angularPConnectData.unsubscribeFn) {
37
- this.angularPConnectData.unsubscribeFn();
38
- }
39
- }
40
-
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
19
 
56
- updateSelf() {
57
- const rawMetaData: any = this.pConn$.resolveConfigProps((this.pConn$.getRawMetadata() as any).config);
20
+ override updateSelf() {
21
+ const rawMetaData: any = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);
58
22
  this.showHighlightedData = rawMetaData?.showHighlightedData;
59
23
 
60
24
  if (this.showHighlightedData) {
@@ -71,7 +35,7 @@ export class DetailsWideNarrowComponent implements OnInit, OnDestroy {
71
35
  });
72
36
  }
73
37
 
74
- this.pConn$.setInheritedProp('displayMode', 'LABELS_LEFT');
38
+ this.pConn$.setInheritedProp('displayMode', 'DISPLAY_ONLY');
75
39
  this.pConn$.setInheritedProp('readOnly', true);
76
40
 
77
41
  const kids = this.pConn$.getChildren() as any[];
@@ -1,3 +1,6 @@
1
+ <div *ngIf="propsToUse.showLabel && propsToUse.label" class="template-title-container">
2
+ <span>{{ propsToUse.label }}</span>
3
+ </div>
1
4
  <mat-tab-group id="dynamic-tabs" mat-stretch-tabs="false" animationDuration="0">
2
5
  <mat-tab *ngFor="let tab of tabsItems" [label]="tab.name">
3
6
  <component-mapper name="View" [props]="{ pConn$: tab.content.getPConnect() }"></component-mapper>
@@ -9,13 +9,14 @@ import { ComponentMapperComponent } from '@pega/angular-sdk-components';
9
9
  interface DynamicTabsProps {
10
10
  referenceList: string;
11
11
  template: string;
12
+ label?: string;
13
+ showLabel?: boolean;
12
14
  }
13
15
 
14
16
  @Component({
15
17
  selector: 'app-dynamic-tabs',
16
18
  templateUrl: './dynamic-tabs.component.html',
17
19
  styleUrls: ['./dynamic-tabs.component.scss'],
18
- standalone: true,
19
20
  imports: [CommonModule, MatTabsModule, forwardRef(() => ComponentMapperComponent)]
20
21
  })
21
22
  export class DynamicTabsComponent implements OnInit, OnDestroy {
@@ -24,6 +25,7 @@ export class DynamicTabsComponent implements OnInit, OnDestroy {
24
25
 
25
26
  angularPConnectData: AngularPConnectData = {};
26
27
  tabsItems: any[];
28
+ propsToUse: any;
27
29
 
28
30
  constructor(private angularPConnect: AngularPConnectService) {}
29
31
 
@@ -54,15 +56,17 @@ export class DynamicTabsComponent implements OnInit, OnDestroy {
54
56
  }
55
57
 
56
58
  updateSelf() {
57
- const { referenceList } = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as DynamicTabsProps;
59
+ const { referenceList, label, showLabel } = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as DynamicTabsProps;
60
+
61
+ this.propsToUse = { label, showLabel, ...this.pConn$.getInheritedProps() };
58
62
 
59
63
  const { tablabel } = this.pConn$.getComponentConfig();
60
64
  const tablabelProp = PCore.getAnnotationUtils().getPropertyName(tablabel);
61
65
 
62
- this.pConn$.setInheritedProp('displayMode', 'LABELS_LEFT');
66
+ this.pConn$.setInheritedProp('displayMode', 'DISPLAY_ONLY');
63
67
  this.pConn$.setInheritedProp('readOnly', true);
64
68
 
65
- const referenceListData: any = this.pConn$.getValue(`${referenceList}.pxResults`, ''); // 2nd arg empty string until typedefs properly allow optional
69
+ const referenceListData = this.pConn$.getValue(`${referenceList}.pxResults`, ''); // 2nd arg empty string until typedefs properly allow optional
66
70
 
67
71
  this.tabsItems =
68
72
  referenceListData?.map((item, i) => {
@@ -1,5 +1,4 @@
1
1
  .psdk-details-fields-label {
2
- color: var(--app-label-color);
3
2
  margin: 8px 0px;
4
3
  }
5
4
 
@@ -6,7 +6,6 @@ import { ComponentMapperComponent } from '@pega/angular-sdk-components';
6
6
  selector: 'app-field-group-list',
7
7
  templateUrl: './field-group-list.component.html',
8
8
  styleUrls: ['./field-group-list.component.scss'],
9
- standalone: true,
10
9
  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
11
10
  })
12
11
  export class FieldGroupListComponent {