@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
@@ -5,6 +5,7 @@ import { Subscription } from 'rxjs';
5
5
  import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
6
6
  import { ErrorMessagesService } from '@pega/angular-sdk-components';
7
7
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
8
+ import { Utils } from '@pega/angular-sdk-components';
8
9
 
9
10
  interface IPage {
10
11
  classID: string;
@@ -24,14 +25,13 @@ interface AppShellProps {
24
25
  portalTemplate: string;
25
26
  readOnly?: boolean;
26
27
  showAppHeaderBar: boolean;
27
- showAppName: boolean;
28
+ showAppName: any;
28
29
  }
29
30
 
30
31
  @Component({
31
32
  selector: 'app-app-shell',
32
33
  templateUrl: './app-shell.component.html',
33
34
  styleUrls: ['./app-shell.component.scss'],
34
- standalone: true,
35
35
  imports: [CommonModule, MatSnackBarModule, forwardRef(() => ComponentMapperComponent)]
36
36
  })
37
37
  export class AppShellComponent implements OnInit, OnDestroy {
@@ -45,19 +45,22 @@ export class AppShellComponent implements OnInit, OnDestroy {
45
45
  caseTypes$?: object[];
46
46
  arChildren$: any[];
47
47
  bShowAppShell$ = false;
48
- appName$ = 'PEGA';
48
+ appName$ = '';
49
49
  errorMessagesSubscription: Subscription;
50
50
  sErrorMessages = '';
51
51
  snackBarRef: any;
52
52
  bOkDisplayError = false;
53
53
  portalTemplate: string;
54
54
  links: any = [];
55
+ imageURL: string | Blob;
56
+ localizedVal = PCore.getLocaleUtils().getLocaleValue;
55
57
 
56
58
  constructor(
57
59
  private angularPConnect: AngularPConnectService,
58
60
  private erService: ErrorMessagesService,
59
61
  private snackBar: MatSnackBar,
60
- private ngZone: NgZone
62
+ private ngZone: NgZone,
63
+ private utils: Utils
61
64
  ) {}
62
65
 
63
66
  ngOnInit() {
@@ -68,6 +71,8 @@ export class AppShellComponent implements OnInit, OnDestroy {
68
71
 
69
72
  this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as AppShellProps;
70
73
 
74
+ this.portalTemplate = this.configProps$.portalTemplate;
75
+
71
76
  // making a copy, so can add info
72
77
  this.pages$ = this.configProps$.pages;
73
78
 
@@ -78,11 +83,32 @@ export class AppShellComponent implements OnInit, OnDestroy {
78
83
  if (this.pages$) {
79
84
  this.bShowAppShell$ = true;
80
85
  }
81
- this.caseTypes$ = this.configProps$.caseTypes;
82
86
 
83
- this.arChildren$ = this.pConn$.getChildren() as any[];
87
+ /* TODO: We're setting the `pyPortalTemplate` for now, this would be handled by the CoreJS in the future releases */
88
+ if (this.portalTemplate === 'wss') {
89
+ PCore.getEnvironmentInfo().setEnvironmentInfo({ ...PCore.getEnvironmentInfo().environmentInfoObject, pyPortalTemplate: 'wss' } as any);
90
+ }
91
+
92
+ // @ts-ignore - Property 'pyCaseTypesAvailableToCreateDP' does not exist on type pxApplication
93
+ const caseTypesAvailableToCreateDP = PCore.getEnvironmentInfo().environmentInfoObject?.pxApplication?.pyCaseTypesAvailableToCreateDP;
94
+ if (caseTypesAvailableToCreateDP) {
95
+ const portalID = this.pConn$.getValue('.pyOwner');
96
+ PCore.getDataPageUtils()
97
+ .getPageDataAsync(caseTypesAvailableToCreateDP, this.pConn$.getContextName(), {
98
+ PortalName: portalID
99
+ })
100
+ .then((response: any) => {
101
+ if (response?.pyCaseTypesAvailableToCreate) {
102
+ this.pConn$.replaceState('.pyCaseTypesAvailableToCreate', response.pyCaseTypesAvailableToCreate, {
103
+ skipDirtyValidation: true
104
+ });
105
+ }
106
+ });
107
+ }
84
108
 
85
- this.portalTemplate = this.configProps$.portalTemplate;
109
+ this.caseTypes$ = this.configProps$.caseTypes;
110
+
111
+ this.arChildren$ = this.pConn$.getChildren();
86
112
 
87
113
  // handle showing and hiding the progress spinner
88
114
  this.errorMessagesSubscription = this.erService.getMessage().subscribe(message => {
@@ -120,6 +146,12 @@ export class AppShellComponent implements OnInit, OnDestroy {
120
146
  updateSelf() {
121
147
  this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as AppShellProps;
122
148
 
149
+ const showAppName = this.configProps$.showAppName;
150
+ const envInfo = PCore.getEnvironmentInfo();
151
+ const appNameToDisplay = showAppName ? envInfo.getApplicationLabel() : '';
152
+ const portalClass = this.pConn$.getValue('.classID', ''); // 2nd arg empty string until typedef marked correctly
153
+ const envPortalName = envInfo.getPortalName();
154
+
123
155
  this.ngZone.run(() => {
124
156
  // making a copy, so can add info
125
157
  this.pages$ = this.configProps$.pages;
@@ -129,8 +161,32 @@ export class AppShellComponent implements OnInit, OnDestroy {
129
161
  }
130
162
 
131
163
  this.caseTypes$ = this.configProps$.caseTypes;
132
- this.arChildren$ = this.pConn$.getChildren() as any[];
164
+ this.arChildren$ = this.pConn$.getChildren();
133
165
  });
166
+
167
+ const portalLogo = this.configProps$.portalLogo;
168
+ // using the default icon then fetch it from the static folder (not auth involved)
169
+ if (
170
+ !portalLogo ||
171
+ portalLogo.toLowerCase().includes('pzpega-logo-mark') ||
172
+ portalLogo.toLowerCase().includes('py-logo') ||
173
+ portalLogo.toLowerCase().includes('py-full-logo')
174
+ ) {
175
+ const portalLogoImage = this.utils.getIconPath(this.utils.getSDKStaticContentUrl()).concat('pzpega-logo-mark.svg');
176
+ this.imageURL = portalLogoImage;
177
+ }
178
+ // not using default icon to fetch it using the way which uses authentication
179
+ else {
180
+ PCore.getAssetLoader()
181
+ .getSvcImageUrl(portalLogo)
182
+ .then(data => {
183
+ this.imageURL = data;
184
+ })
185
+ .catch(() => {
186
+ console.error(`${this.localizedVal('Unable to load the image for the portal logo/icon with the insName', 'AppShell')}:${portalLogo}`);
187
+ });
188
+ }
189
+ this.appName$ = this.localizedVal(appNameToDisplay || '', '', `${portalClass}!PORTAL!${envPortalName}`.toUpperCase());
134
190
  }
135
191
 
136
192
  // fpr show/hiding error messages in the SnackBar component
@@ -138,7 +194,7 @@ export class AppShellComponent implements OnInit, OnDestroy {
138
194
  switch (errorMessages.action) {
139
195
  case 'update':
140
196
  // won't show unless publish is turned on
141
- // eslint-disable-next-line @typescript-eslint/prefer-includes
197
+
142
198
  if (this.sErrorMessages.indexOf(errorMessages.actionMessage) < 0) {
143
199
  this.sErrorMessages = this.sErrorMessages.concat(errorMessages.actionMessage).concat('\n');
144
200
 
@@ -151,7 +207,7 @@ export class AppShellComponent implements OnInit, OnDestroy {
151
207
  case 'show':
152
208
  // add error message if not in the list
153
209
  // won't show unless publish is turned on
154
- // eslint-disable-next-line @typescript-eslint/prefer-includes
210
+
155
211
  if (this.sErrorMessages.indexOf(errorMessages.actionMessage) < 0) {
156
212
  this.sErrorMessages = this.sErrorMessages.concat(errorMessages.actionMessage).concat('\n');
157
213
  }
@@ -16,7 +16,6 @@ interface BannerPageProps {
16
16
  selector: 'app-banner-page',
17
17
  templateUrl: './banner-page.component.html',
18
18
  styleUrls: ['./banner-page.component.scss'],
19
- standalone: true,
20
19
  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
21
20
  })
22
21
  export class BannerPageComponent implements OnInit, OnChanges {
@@ -0,0 +1,67 @@
1
+ import { Directive, OnInit, OnDestroy, Injector, Input } from '@angular/core';
2
+ import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
3
+
4
+ @Directive()
5
+ export class DetailsTemplateBase implements OnInit, OnDestroy {
6
+ @Input() pConn$: typeof PConnect;
7
+
8
+ // For interaction with AngularPConnect
9
+ protected angularPConnectData: AngularPConnectData = {};
10
+ protected angularPConnect;
11
+
12
+ childrenMetadataOld;
13
+
14
+ constructor(injector: Injector) {
15
+ this.angularPConnect = injector.get(AngularPConnectService);
16
+ }
17
+
18
+ ngOnInit(): void {
19
+ // First thing in initialization is registering and subscribing to the AngularPConnect service
20
+ this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
21
+
22
+ this.checkAndUpdate();
23
+ }
24
+
25
+ ngOnDestroy() {
26
+ if (this.angularPConnectData.unsubscribeFn) {
27
+ this.angularPConnectData.unsubscribeFn();
28
+ }
29
+ }
30
+
31
+ onStateChange() {
32
+ this.checkAndUpdate();
33
+ }
34
+
35
+ checkAndUpdate() {
36
+ // Should always check the bridge to see if the component should update itself (re-render)
37
+ const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
38
+
39
+ // Only call updateSelf when the component should update
40
+ if (bUpdateSelf || this.hasRawMetadataChanged()) {
41
+ this.updateSelf();
42
+ }
43
+ }
44
+
45
+ // this method will get overriden by the child component
46
+ updateSelf() {}
47
+
48
+ hasRawMetadataChanged(): boolean {
49
+ const newChildrenMetadata = this.fetchChildrenMetadata();
50
+
51
+ if (!PCore.isDeepEqual(newChildrenMetadata, this.childrenMetadataOld)) {
52
+ this.childrenMetadataOld = newChildrenMetadata;
53
+ return true;
54
+ }
55
+
56
+ return false;
57
+ }
58
+
59
+ fetchChildrenMetadata() {
60
+ const children = this.pConn$.getChildren() || [];
61
+
62
+ return children.map(child => {
63
+ const pConnect = child.getPConnect();
64
+ return pConnect.resolveConfigProps(pConnect.getRawMetadata());
65
+ });
66
+ }
67
+ }
@@ -0,0 +1,16 @@
1
+ import { Directive, OnDestroy } from '@angular/core';
2
+ import { AngularPConnectData } from '@pega/angular-sdk-components';
3
+
4
+ @Directive()
5
+ export class FormTemplateBase implements OnDestroy {
6
+ pConn$: any;
7
+ angularPConnectData: AngularPConnectData;
8
+
9
+ ngOnDestroy(): void {
10
+ PCore.getContextTreeManager().removeContextTreeNode(this.pConn$.getContextName());
11
+
12
+ if (this.angularPConnectData?.unsubscribeFn) {
13
+ this.angularPConnectData.unsubscribeFn();
14
+ }
15
+ }
16
+ }
@@ -30,8 +30,6 @@
30
30
  }
31
31
 
32
32
  .psdk-status {
33
- background-color: var(--app-primary-color);
34
- color: var(--app-form-color);
35
33
  padding: 0;
36
34
  margin-top: 0.625rem;
37
35
  width: fit-content;
@@ -3,6 +3,7 @@ import { FormGroup } from '@angular/forms';
3
3
  import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
4
4
  import { ReferenceComponent } from '@pega/angular-sdk-components';
5
5
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
6
+ import { Utils } from '@pega/angular-sdk-components';
6
7
 
7
8
  interface CaseSummaryProps {
8
9
  // If any, enter additional props that only exist on this component
@@ -16,7 +17,6 @@ interface CaseSummaryProps {
16
17
  selector: 'app-case-summary',
17
18
  templateUrl: './case-summary.component.html',
18
19
  styleUrls: ['./case-summary.component.scss'],
19
- standalone: true,
20
20
  imports: [forwardRef(() => ComponentMapperComponent)]
21
21
  })
22
22
  export class CaseSummaryComponent implements OnInit, OnDestroy, OnChanges {
@@ -33,7 +33,10 @@ export class CaseSummaryComponent implements OnInit, OnDestroy, OnChanges {
33
33
  primaryFields$: any[] = [];
34
34
  secondaryFields$: any[] = [];
35
35
 
36
- constructor(private angularPConnect: AngularPConnectService) {}
36
+ constructor(
37
+ private angularPConnect: AngularPConnectService,
38
+ private utils: Utils
39
+ ) {}
37
40
 
38
41
  ngOnInit(): void {
39
42
  // First thing in initialization is registering and subscribing to the AngularPConnect service
@@ -55,7 +58,7 @@ export class CaseSummaryComponent implements OnInit, OnDestroy, OnChanges {
55
58
  // Then, continue on with other initialization
56
59
 
57
60
  this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as CaseSummaryProps;
58
- this.arChildren$ = this.pConn$.getChildren() as any[];
61
+ this.arChildren$ = this.pConn$.getChildren();
59
62
 
60
63
  this.generatePrimaryAndSecondaryFields();
61
64
 
@@ -101,30 +104,11 @@ export class CaseSummaryComponent implements OnInit, OnDestroy, OnChanges {
101
104
  });
102
105
  }
103
106
 
104
- prepareComponentInCaseSummary(pConnectMeta, getPConnect) {
105
- const { config, children } = pConnectMeta;
106
- const pConnect = getPConnect();
107
-
108
- const caseSummaryComponentObject: any = {};
109
-
110
- const { type } = pConnectMeta;
111
- const createdComponent = pConnect.createComponent({
112
- type,
113
- children: children ? [...children] : [],
114
- config: {
115
- ...config
116
- }
117
- });
118
-
119
- caseSummaryComponentObject.value = createdComponent;
120
- return caseSummaryComponentObject;
121
- }
122
-
123
107
  prepareCaseSummaryData(summaryFieldChildren) {
124
108
  const convertChildrenToSummaryData = kid => {
125
109
  return kid?.map((childItem, index) => {
126
110
  const childMeta = childItem.getPConnect().meta;
127
- const caseSummaryComponentObject = this.prepareComponentInCaseSummary(childMeta, childItem.getPConnect);
111
+ const caseSummaryComponentObject = this.utils.prepareComponentInCaseSummary(childMeta, childItem.getPConnect);
128
112
  caseSummaryComponentObject.id = index + 1;
129
113
  return caseSummaryComponentObject;
130
114
  });
@@ -1,7 +1,7 @@
1
1
  <div class="psdk-case-view" id="case-view">
2
- <div *ngIf="!displayOnlyFA$" class="psdk-case-view-info">
3
- <mat-toolbar color="primary" class="psdk-case-view-toolbar">
4
- <mat-toolbar-row style="padding-left: 1rem">
2
+ <div class="psdk-case-view-info">
3
+ <mat-toolbar class="psdk-case-view-toolbar">
4
+ <mat-toolbar-row class="psdk-case-view-toolbar-row">
5
5
  <div class="psdk-case-icon-div">
6
6
  <img class="psdk-case-svg-icon" src="{{ svgCase$ }}" />
7
7
  </div>
@@ -47,7 +47,7 @@
47
47
  ></component-mapper>
48
48
  </div>
49
49
  <div class="psdk-case-view-main">
50
- <div *ngIf="!displayOnlyFA$">
50
+ <div>
51
51
  <div *ngFor="let kid of arChildren$">
52
52
  <div
53
53
  *ngIf="
@@ -73,11 +73,11 @@
73
73
  </div>
74
74
  </div>
75
75
 
76
- <div *ngIf="!displayOnlyFA$">
77
- <component-mapper name="DeferLoad" [props]="{ pConn$, loadData$: tabData$, name: tabData$?.config?.name }"></component-mapper>
76
+ <div>
77
+ <component-mapper name="DeferLoad" [props]="{ pConn$, name: tabData$?.config?.name }"></component-mapper>
78
78
  </div>
79
79
  </div>
80
- <div *ngIf="!displayOnlyFA$">
80
+ <div>
81
81
  <div *ngIf="arChildren$" class="psdk-case-view-utilities">
82
82
  <div *ngFor="let kid of arChildren$">
83
83
  <div *ngIf="kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'">
@@ -27,7 +27,7 @@ h1 {
27
27
  }
28
28
 
29
29
  .psdk-case-icon-div {
30
- background-color: var(--app-primary-dark-color);
30
+ background-color: var(--mat-sys-on-primary-fixed);
31
31
  border-radius: 1rem;
32
32
  padding: 0.5rem 0.3rem 0.3rem 0.3rem;
33
33
  }
@@ -47,11 +47,9 @@ h1 {
47
47
  flex: 0 0 auto;
48
48
  width: 25rem;
49
49
  float: left;
50
- padding: 0rem 0.3125rem 0rem 0rem;
51
- margin-left: 0.5rem;
52
- margin-top: 0.5rem;
53
- height: 100%; /* Should be removed. Only for demonstration */
54
- background-color: var(--app-form-color);
50
+ // padding: 0rem 0.3125rem 0rem 0rem;
51
+ background-color: var(--mat-sys-surface-container);
52
+ height: 100%;
55
53
  }
56
54
 
57
55
  .psdk-case-view-main {
@@ -84,24 +82,34 @@ h1 {
84
82
  }
85
83
 
86
84
  .psdk-case-view-utilities {
85
+ background-color: var(--mat-sys-surface-container);
87
86
  width: 21.875rem;
88
87
  float: left;
89
88
  padding: 0rem 0.3125rem;
90
- height: 100%; /* Should be removed. Only for demonstration */
91
89
  }
92
90
 
93
91
  .psdk-case-view-divider {
94
- border-bottom: 0.0625rem solid var(--app-neutral-light-color);
92
+ border-bottom: 0.0625rem solid var(--mat-sys-outline-variant);
95
93
  }
96
94
 
97
95
  .psdk-status {
98
96
  padding: 0.3125rem 0.3125rem;
99
- background-color: var(--app-primary-color);
100
- color: var(--app-form-color);
97
+ background-color: var(--mat-sys-primary);
98
+ color: var(--mat-sys-surface-container);
101
99
  width: fit-content;
102
100
  margin: 0.625rem;
103
101
  }
104
102
 
103
+ .psdk-case-view-toolbar {
104
+ background-color: var(--mat-sys-primary);
105
+ }
106
+
105
107
  button {
106
108
  margin: 0rem 0.3125rem;
107
109
  }
110
+
111
+ .psdk-case-view-toolbar-row {
112
+ padding-left: 1rem;
113
+ white-space: normal;
114
+ height: auto;
115
+ }
@@ -21,13 +21,11 @@ interface CaseViewProps {
21
21
  templateUrl: './case-view.component.html',
22
22
  styleUrls: ['./case-view.component.scss'],
23
23
  providers: [Utils],
24
- standalone: true,
25
24
  imports: [CommonModule, MatToolbarModule, MatButtonModule, MatMenuModule, forwardRef(() => ComponentMapperComponent)]
26
25
  })
27
26
  export class CaseViewComponent implements OnInit, OnDestroy {
28
27
  @Input() pConn$: typeof PConnect;
29
28
  @Input() formGroup$: FormGroup;
30
- @Input() displayOnlyFA$: boolean;
31
29
 
32
30
  // Used with AngularPConnect
33
31
  angularPConnectData: AngularPConnectData = {};
@@ -120,7 +118,7 @@ export class CaseViewComponent implements OnInit, OnDestroy {
120
118
  if (hasNewAttachments !== this.bHasNewAttachments) {
121
119
  this.bHasNewAttachments = hasNewAttachments;
122
120
  if (this.bHasNewAttachments) {
123
- PCore.getPubSubUtils().publish((PCore.getEvents().getCaseEvent() as any).CASE_ATTACHMENTS_UPDATED_FROM_CASEVIEW, true);
121
+ PCore.getPubSubUtils().publish(PCore.getEvents().getCaseEvent().CASE_ATTACHMENTS_UPDATED_FROM_CASEVIEW, true);
124
122
  }
125
123
  }
126
124
 
@@ -136,7 +134,7 @@ export class CaseViewComponent implements OnInit, OnDestroy {
136
134
  const timer = interval(100).subscribe(() => {
137
135
  timer.unsubscribe();
138
136
 
139
- this.heading$ = PCore.getLocaleUtils().getLocaleValue(this.configProps$.header, '', this.localeKey);
137
+ this.heading$ = this.pConn$.getLocalizationService().getLocalizedText(this.configProps$.header);
140
138
  this.id$ = this.configProps$.subheader;
141
139
  this.status$ = this.pConn$.getValue('.pyStatusWork');
142
140
  });
@@ -161,19 +159,15 @@ export class CaseViewComponent implements OnInit, OnDestroy {
161
159
 
162
160
  this.svgCase$ = this.utils.getImageSrc(this.configProps$.icon, this.utils.getSDKStaticContentUrl());
163
161
 
164
- // this.utils.consoleKidDump(this.pConn$);
165
-
166
- if (!this.displayOnlyFA$) {
167
- for (const kid of this.arChildren$) {
168
- const kidPConn = kid.getPConnect();
169
- if (kidPConn.getRawMetadata().name == 'Tabs') {
170
- this.mainTabs = kid;
171
- this.mainTabData = this.mainTabs.getPConnect().getChildren();
172
- }
162
+ for (const kid of this.arChildren$) {
163
+ const kidPConn = kid.getPConnect();
164
+ if (kidPConn.getRawMetadata().name == 'Tabs') {
165
+ this.mainTabs = kid;
166
+ this.mainTabData = this.mainTabs.getPConnect().getChildren();
173
167
  }
174
-
175
- this.generateTabsData();
176
168
  }
169
+
170
+ this.generateTabsData();
177
171
  }
178
172
 
179
173
  generateTabsData() {
@@ -14,7 +14,7 @@
14
14
  <button mat-raised-button color="primary" (click)="onConfirmViewClose()">Done</button>
15
15
  </div>
16
16
  </div>
17
- <div *ngIf="toDoList?.length > 0">
17
+ <div *ngIf="!showConfirmView && toDoList?.length > 0">
18
18
  <component-mapper
19
19
  name="Todo"
20
20
  [props]="{ pConn$, datasource$: { source: toDoList }, headerText$: 'Tasks', type$: CONSTS.TODO, isConfirm: true }"
@@ -18,7 +18,6 @@ interface ConfirmationProps {
18
18
  selector: 'app-confirmation',
19
19
  templateUrl: './confirmation.component.html',
20
20
  styleUrls: ['./confirmation.component.scss'],
21
- standalone: true,
22
21
  imports: [CommonModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)]
23
22
  })
24
23
  export class ConfirmationComponent implements OnInit, OnDestroy {
@@ -43,7 +42,7 @@ export class ConfirmationComponent implements OnInit, OnDestroy {
43
42
  // First thing in initialization is registering and subscribing to the AngularPConnect service
44
43
  this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
45
44
  this.CONSTS = PCore.getConstants();
46
- const activeContainerItemID = PCore.getContainerUtils().getActiveContainerItemName(this.pConn$.getTarget());
45
+ const activeContainerItemID = PCore.getContainerUtils().getActiveContainerItemName(this.pConn$.getTarget() ?? null);
47
46
  this.rootInfo = PCore.getContainerUtils().getContainerItemData(this.pConn$.getTarget(), activeContainerItemID);
48
47
  this.checkAndUpdate();
49
48
  }
@@ -0,0 +1,16 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+
4
+ @Injectable({ providedIn: 'root' })
5
+ export class DataReferenceAdvancedSearchService {
6
+ private configSubject = new BehaviorSubject(null);
7
+ config$ = this.configSubject.asObservable();
8
+
9
+ setConfig(config) {
10
+ this.configSubject.next(config);
11
+ }
12
+
13
+ getConfig() {
14
+ return this.configSubject.getValue();
15
+ }
16
+ }
@@ -1,13 +1,16 @@
1
- <div *ngIf="childrenToRender && childrenToRender.length > 0">
2
- <div *ngIf="!displayMultiRef">
3
- <div *ngFor="let kid of childrenToRender">
4
- <component-mapper [name]="kid?.getPConnect().getComponentName()" [props]="{ pConn$: kid.getPConnect(), formGroup$ }"></component-mapper>
5
- </div>
6
- </div>
1
+ <div *ngIf="showAdvancedSearch; else notadvancedSearch">
2
+ <component-mapper name="SearchForm" [props]="{ pConn$: pConn$, formGroup$, searchSelectCacheKey: '' }"></component-mapper>
3
+ </div>
4
+ <ng-template #notadvancedSearch>
7
5
  <div *ngIf="displaySingleRef">
8
- <component-mapper name="SingleReferenceReadOnly" [props]="{ pConn$: firstChildPConnect() }"></component-mapper>
6
+ <component-mapper name="SingleReferenceReadOnly" [props]="{ pConn$: firstChildPConnect(), dataRelationshipContext }"></component-mapper>
9
7
  </div>
10
8
  <div *ngIf="displayMultiRef">
11
9
  <component-mapper name="MultiReferenceReadOnly" [props]="{ pConn$: firstChildPConnect() }"></component-mapper>
12
10
  </div>
13
- </div>
11
+ <div *ngIf="displayChild && childrenToRender && childrenToRender.length > 0">
12
+ <div *ngFor="let kid of childrenToRender">
13
+ <component-mapper [name]="kid?.getPConnect().getComponentName()" [props]="{ pConn$: kid.getPConnect(), formGroup$ }"></component-mapper>
14
+ </div>
15
+ </div>
16
+ </ng-template>