@pega/angular-sdk-overrides 24.2.10 → 25.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/lib/designSystemExtension/alert/alert.component.scss +3 -3
  2. package/lib/designSystemExtension/alert/alert.component.ts +0 -1
  3. package/lib/designSystemExtension/alert-banner/alert-banner.component.ts +0 -1
  4. package/lib/designSystemExtension/banner/banner.component.html +1 -1
  5. package/lib/designSystemExtension/banner/banner.component.scss +17 -3
  6. package/lib/designSystemExtension/banner/banner.component.ts +0 -1
  7. package/lib/designSystemExtension/case-create-stage/case-create-stage.component.ts +0 -1
  8. package/lib/designSystemExtension/field-group/field-group.component.ts +0 -1
  9. package/lib/designSystemExtension/material-case-summary/material-case-summary.component.html +6 -3
  10. package/lib/designSystemExtension/material-case-summary/material-case-summary.component.scss +5 -34
  11. package/lib/designSystemExtension/material-case-summary/material-case-summary.component.ts +0 -2
  12. package/lib/designSystemExtension/material-details/material-details.component.scss +0 -5
  13. package/lib/designSystemExtension/material-details/material-details.component.ts +0 -1
  14. package/lib/designSystemExtension/material-details-fields/material-details-fields.component.html +3 -3
  15. package/lib/designSystemExtension/material-details-fields/material-details-fields.component.scss +4 -3
  16. package/lib/designSystemExtension/material-details-fields/material-details-fields.component.ts +6 -1
  17. package/lib/designSystemExtension/material-summary-item/material-summary-item.component.scss +4 -17
  18. package/lib/designSystemExtension/material-summary-item/material-summary-item.component.ts +0 -1
  19. package/lib/designSystemExtension/material-summary-list/material-summary-list.component.ts +0 -1
  20. package/lib/designSystemExtension/material-utility/material-utility.component.scss +1 -2
  21. package/lib/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.scss +1 -1
  22. package/lib/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.ts +0 -1
  23. package/lib/designSystemExtension/operator/operator.component.html +2 -2
  24. package/lib/designSystemExtension/operator/operator.component.scss +13 -12
  25. package/lib/designSystemExtension/operator/operator.component.ts +4 -5
  26. package/lib/designSystemExtension/pulse/pulse.component.scss +2 -2
  27. package/lib/designSystemExtension/pulse/pulse.component.ts +0 -1
  28. package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.html +4 -17
  29. package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.scss +0 -1
  30. package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.ts +30 -1
  31. package/lib/designSystemExtension/wss-quick-create/wss-quick-create.component.scss +16 -9
  32. package/lib/designSystemExtension/wss-quick-create/wss-quick-create.component.ts +0 -1
  33. package/lib/field/auto-complete/auto-complete.component.html +0 -2
  34. package/lib/field/auto-complete/auto-complete.component.ts +48 -173
  35. package/lib/field/cancel-alert/cancel-alert.component.html +8 -12
  36. package/lib/field/cancel-alert/cancel-alert.component.scss +2 -3
  37. package/lib/field/cancel-alert/cancel-alert.component.ts +24 -37
  38. package/lib/field/check-box/check-box.component.html +17 -6
  39. package/lib/field/check-box/check-box.component.scss +0 -1
  40. package/lib/field/check-box/check-box.component.ts +25 -151
  41. package/lib/field/currency/currency.component.ts +54 -181
  42. package/lib/field/date/date.component.html +4 -3
  43. package/lib/field/date/date.component.ts +30 -151
  44. package/lib/field/date-time/date-time.component.html +2 -2
  45. package/lib/field/date-time/date-time.component.ts +47 -148
  46. package/lib/field/decimal/decimal.component.html +1 -0
  47. package/lib/field/decimal/decimal.component.ts +61 -164
  48. package/lib/field/dropdown/dropdown.component.html +1 -0
  49. package/lib/field/dropdown/dropdown.component.ts +43 -152
  50. package/lib/field/email/email.component.ts +28 -158
  51. package/lib/field/field.base.ts +149 -0
  52. package/lib/field/group/group.component.ts +7 -5
  53. package/lib/field/integer/integer.component.html +1 -1
  54. package/lib/field/integer/integer.component.ts +30 -160
  55. package/lib/field/list-view-action-buttons/list-view-action-buttons.component.html +1 -1
  56. package/lib/field/list-view-action-buttons/list-view-action-buttons.component.ts +3 -3
  57. package/lib/field/location/config-ext.json +8 -0
  58. package/lib/field/location/location.component.html +45 -0
  59. package/lib/field/location/location.component.scss +18 -0
  60. package/lib/field/location/location.component.spec.ts +22 -0
  61. package/lib/field/location/location.component.ts +280 -0
  62. package/lib/field/multiselect/multiselect.component.ts +47 -152
  63. package/lib/field/multiselect/utils.ts +55 -47
  64. package/lib/field/object-reference/object-reference.component.html +17 -0
  65. package/lib/field/object-reference/object-reference.component.scss +0 -0
  66. package/lib/field/object-reference/object-reference.component.spec.ts +22 -0
  67. package/lib/field/object-reference/object-reference.component.ts +237 -0
  68. package/lib/field/percentage/percentage.component.html +1 -1
  69. package/lib/field/percentage/percentage.component.ts +62 -170
  70. package/lib/field/phone/config-ext.json +1 -1
  71. package/lib/field/phone/phone.component.html +18 -17
  72. package/lib/field/phone/phone.component.scss +4 -0
  73. package/lib/field/phone/phone.component.ts +47 -156
  74. package/lib/field/radio-buttons/radio-buttons.component.html +17 -12
  75. package/lib/field/radio-buttons/radio-buttons.component.scss +4 -2
  76. package/lib/field/radio-buttons/radio-buttons.component.ts +37 -160
  77. package/lib/field/rich-text/rich-text.component.html +2 -0
  78. package/lib/field/rich-text/rich-text.component.scss +172 -0
  79. package/lib/field/rich-text/rich-text.component.ts +32 -93
  80. package/lib/field/scalar-list/scalar-list.component.ts +17 -73
  81. package/lib/field/selectable-card/selectable-card.component.html +70 -0
  82. package/lib/field/selectable-card/selectable-card.component.scss +11 -0
  83. package/lib/field/selectable-card/selectable-card.component.spec.ts +22 -0
  84. package/lib/field/selectable-card/selectable-card.component.ts +219 -0
  85. package/lib/field/semantic-link/semantic-link.component.html +4 -8
  86. package/lib/field/semantic-link/semantic-link.component.scss +0 -13
  87. package/lib/field/semantic-link/semantic-link.component.ts +165 -6
  88. package/lib/field/text/text.component.scss +0 -1
  89. package/lib/field/text/text.component.ts +6 -5
  90. package/lib/field/text-area/text-area.component.html +4 -2
  91. package/lib/field/text-area/text-area.component.ts +30 -155
  92. package/lib/field/text-content/text-content.component.ts +0 -1
  93. package/lib/field/text-input/text-input.component.html +1 -1
  94. package/lib/field/text-input/text-input.component.ts +28 -158
  95. package/lib/field/time/time.component.html +2 -2
  96. package/lib/field/time/time.component.ts +34 -154
  97. package/lib/field/url/url.component.html +1 -1
  98. package/lib/field/url/url.component.ts +28 -157
  99. package/lib/field/user-reference/user-reference.component.html +40 -38
  100. package/lib/field/user-reference/user-reference.component.scss +0 -1
  101. package/lib/field/user-reference/user-reference.component.ts +70 -9
  102. package/lib/infra/Containers/flow-container/flow-container.component.html +2 -2
  103. package/lib/infra/Containers/flow-container/flow-container.component.ts +24 -51
  104. package/lib/infra/Containers/flow-container/helpers.ts +2 -2
  105. package/lib/infra/Containers/hybrid-view-container/hybrid-view-container.component.ts +0 -1
  106. package/lib/infra/Containers/modal-view-container/modal-view-container.component.html +1 -11
  107. package/lib/infra/Containers/modal-view-container/modal-view-container.component.ts +5 -18
  108. package/lib/infra/Containers/view-container/helper.ts +35 -2
  109. package/lib/infra/Containers/view-container/view-container.component.ts +1 -2
  110. package/lib/infra/action-buttons/action-buttons.component.html +13 -8
  111. package/lib/infra/action-buttons/action-buttons.component.scss +23 -0
  112. package/lib/infra/action-buttons/action-buttons.component.ts +1 -3
  113. package/lib/infra/assignment/assignment.component.html +1 -1
  114. package/lib/infra/assignment/assignment.component.ts +100 -46
  115. package/lib/infra/assignment-card/assignment-card.component.html +2 -2
  116. package/lib/infra/assignment-card/assignment-card.component.scss +0 -4
  117. package/lib/infra/assignment-card/assignment-card.component.ts +21 -5
  118. package/lib/infra/dashboard-filter/dashboard-filter.component.ts +0 -1
  119. package/lib/infra/defer-load/defer-load.component.html +6 -2
  120. package/lib/infra/defer-load/defer-load.component.ts +25 -12
  121. package/lib/infra/error-boundary/error-boundary.component.ts +0 -1
  122. package/lib/infra/multi-step/multi-step.component.html +22 -38
  123. package/lib/infra/multi-step/multi-step.component.scss +14 -27
  124. package/lib/infra/multi-step/multi-step.component.ts +0 -1
  125. package/lib/infra/navbar/navbar.component.html +36 -41
  126. package/lib/infra/navbar/navbar.component.scss +22 -4
  127. package/lib/infra/navbar/navbar.component.ts +8 -6
  128. package/lib/infra/reference/reference.component.ts +82 -90
  129. package/lib/infra/region/region.component.ts +0 -1
  130. package/lib/infra/root-container/root-container.component.html +2 -15
  131. package/lib/infra/root-container/root-container.component.scss +0 -1
  132. package/lib/infra/root-container/root-container.component.ts +25 -32
  133. package/lib/infra/stages/stages.component.html +4 -3
  134. package/lib/infra/stages/stages.component.scss +12 -36
  135. package/lib/infra/stages/stages.component.ts +4 -3
  136. package/lib/infra/view/view.component.html +1 -1
  137. package/lib/infra/view/view.component.ts +3 -7
  138. package/lib/template/advanced-search/advanced-search.component.html +12 -0
  139. package/lib/template/advanced-search/advanced-search.component.scss +0 -0
  140. package/lib/template/advanced-search/advanced-search.component.spec.ts +0 -0
  141. package/lib/template/advanced-search/advanced-search.component.ts +112 -0
  142. package/lib/template/advanced-search/advanced-search.service.ts +27 -0
  143. package/lib/template/advanced-search/search-group/persist-utils.ts +56 -0
  144. package/lib/template/advanced-search/search-groups/search-groups.component.html +32 -0
  145. package/lib/template/advanced-search/search-groups/search-groups.component.scss +0 -0
  146. package/lib/template/advanced-search/search-groups/search-groups.component.spec.ts +0 -0
  147. package/lib/template/advanced-search/search-groups/search-groups.component.ts +294 -0
  148. package/lib/template/advanced-search/search-groups/utils.ts +29 -0
  149. package/lib/template/app-shell/app-shell.component.html +4 -1
  150. package/lib/template/app-shell/app-shell.component.scss +0 -3
  151. package/lib/template/app-shell/app-shell.component.ts +46 -8
  152. package/lib/template/banner-page/banner-page.component.ts +0 -1
  153. package/lib/template/base/form-template-base.ts +6 -0
  154. package/lib/template/case-summary/case-summary.component.scss +0 -2
  155. package/lib/template/case-summary/case-summary.component.ts +6 -22
  156. package/lib/template/case-view/case-view.component.html +4 -4
  157. package/lib/template/case-view/case-view.component.scss +18 -10
  158. package/lib/template/case-view/case-view.component.ts +1 -11
  159. package/lib/template/confirmation/confirmation.component.html +2 -2
  160. package/lib/template/confirmation/confirmation.component.ts +0 -1
  161. package/lib/template/data-reference/data-reference.component.html +11 -8
  162. package/lib/template/data-reference/data-reference.component.ts +346 -113
  163. package/lib/template/data-reference/search-form/search-form.component.html +39 -0
  164. package/lib/template/data-reference/search-form/search-form.component.scss +11 -0
  165. package/lib/template/data-reference/search-form/search-form.component.spec.ts +0 -0
  166. package/lib/template/data-reference/search-form/search-form.component.ts +167 -0
  167. package/lib/template/data-reference/search-form/tabsData.ts +160 -0
  168. package/lib/template/data-reference/utils.ts +92 -0
  169. package/lib/template/default-form/default-form.component.ts +45 -5
  170. package/lib/template/default-page/default-page.component.html +34 -0
  171. package/lib/template/default-page/default-page.component.scss +31 -0
  172. package/lib/template/default-page/default-page.component.spec.ts +24 -0
  173. package/lib/template/default-page/default-page.component.ts +64 -0
  174. package/lib/template/details/details.component.ts +0 -1
  175. package/lib/template/details-narrow-wide/details-narrow-wide.component.ts +0 -1
  176. package/lib/template/details-one-column/details-one-column.component.ts +0 -1
  177. package/lib/template/details-sub-tabs/details-sub-tabs.component.ts +0 -1
  178. package/lib/template/details-three-column/details-three-column.component.ts +0 -1
  179. package/lib/template/details-two-column/details-two-column.component.ts +0 -1
  180. package/lib/template/details-wide-narrow/details-wide-narrow.component.ts +0 -1
  181. package/lib/template/dynamic-tabs/dynamic-tabs.component.ts +0 -1
  182. package/lib/template/field-group-list/field-group-list.component.scss +0 -1
  183. package/lib/template/field-group-list/field-group-list.component.ts +0 -1
  184. package/lib/template/field-group-template/field-group-template.component.html +7 -7
  185. package/lib/template/field-group-template/field-group-template.component.scss +8 -0
  186. package/lib/template/field-group-template/field-group-template.component.ts +64 -55
  187. package/lib/template/field-value-list/field-value-list.component.html +2 -2
  188. package/lib/template/field-value-list/field-value-list.component.scss +4 -0
  189. package/lib/template/field-value-list/field-value-list.component.ts +0 -1
  190. package/lib/template/inline-dashboard/inline-dashboard.component.ts +0 -1
  191. package/lib/template/inline-dashboard-page/inline-dashboard-page.component.ts +1 -2
  192. package/lib/template/list-page/list-page.component.ts +0 -1
  193. package/lib/template/list-view/list-view.component.html +170 -160
  194. package/lib/template/list-view/list-view.component.scss +25 -21
  195. package/lib/template/list-view/list-view.component.ts +208 -122
  196. package/lib/template/list-view/listViewHelpers.ts +3 -9
  197. package/lib/template/list-view/utils.ts +27 -7
  198. package/lib/template/multi-reference-readonly/multi-reference-readonly.component.ts +0 -1
  199. package/lib/template/narrow-wide-form/narrow-wide-form.component.ts +0 -1
  200. package/lib/template/object-page/object-page.component.html +1 -0
  201. package/lib/template/object-page/object-page.component.scss +0 -0
  202. package/lib/template/object-page/object-page.component.spec.ts +22 -0
  203. package/lib/template/object-page/object-page.component.ts +14 -0
  204. package/lib/template/one-column/one-column.component.ts +0 -1
  205. package/lib/template/one-column-page/one-column-page.component.ts +0 -1
  206. package/lib/template/one-column-tab/one-column-tab.component.scss +1 -1
  207. package/lib/template/one-column-tab/one-column-tab.component.ts +0 -1
  208. package/lib/template/page/page.component.ts +0 -1
  209. package/lib/template/promoted-filters/promoted-filters.component.ts +0 -1
  210. package/lib/template/repeating-structures/repeating-structures.component.ts +0 -2
  211. package/lib/template/self-service-case-view/self-service-case-view.component.html +78 -0
  212. package/lib/template/self-service-case-view/self-service-case-view.component.scss +132 -0
  213. package/lib/template/self-service-case-view/self-service-case-view.component.spec.ts +24 -0
  214. package/lib/template/self-service-case-view/self-service-case-view.component.ts +207 -0
  215. package/lib/template/simple-table/simple-table.component.ts +0 -2
  216. package/lib/template/simple-table-manual/helpers.ts +126 -10
  217. package/lib/template/simple-table-manual/simple-table-manual.component.html +27 -8
  218. package/lib/template/simple-table-manual/simple-table-manual.component.scss +15 -17
  219. package/lib/template/simple-table-manual/simple-table-manual.component.ts +103 -45
  220. package/lib/template/simple-table-select/simple-table-select.component.ts +0 -1
  221. package/lib/template/single-reference-readonly/single-reference-readonly.component.html +4 -1
  222. package/lib/template/single-reference-readonly/single-reference-readonly.component.scss +21 -0
  223. package/lib/template/single-reference-readonly/single-reference-readonly.component.ts +104 -4
  224. package/lib/template/sub-tabs/sub-tabs.component.ts +0 -1
  225. package/lib/template/three-column/three-column.component.ts +0 -1
  226. package/lib/template/three-column-page/three-column-page.component.ts +0 -1
  227. package/lib/template/two-column/two-column.component.ts +0 -1
  228. package/lib/template/two-column-page/two-column-page.component.ts +0 -1
  229. package/lib/template/two-column-tab/two-column-tab.component.ts +0 -1
  230. package/lib/template/utils.ts +58 -0
  231. package/lib/template/wide-narrow-form/wide-narrow-form.component.ts +0 -1
  232. package/lib/template/wide-narrow-page/wide-narrow-page.component.ts +0 -1
  233. package/lib/template/wss-nav-bar/wss-nav-bar.component.html +6 -5
  234. package/lib/template/wss-nav-bar/wss-nav-bar.component.scss +8 -17
  235. package/lib/template/wss-nav-bar/wss-nav-bar.component.ts +1 -9
  236. package/lib/widget/app-announcement/app-announcement.component.html +1 -2
  237. package/lib/widget/app-announcement/app-announcement.component.scss +2 -2
  238. package/lib/widget/app-announcement/app-announcement.component.ts +0 -1
  239. package/lib/widget/attachment/Attachment.types.ts +92 -0
  240. package/lib/widget/attachment/AttachmentUtils.ts +287 -0
  241. package/lib/widget/attachment/attachment.component.html +3 -3
  242. package/lib/widget/attachment/attachment.component.scss +9 -12
  243. package/lib/widget/attachment/attachment.component.ts +267 -254
  244. package/lib/widget/case-history/case-history.component.ts +0 -1
  245. package/lib/widget/feed-container/feed-container.component.scss +3 -9
  246. package/lib/widget/feed-container/feed-container.component.ts +2 -5
  247. package/lib/widget/file-utility/file-utility.component.html +3 -3
  248. package/lib/widget/file-utility/file-utility.component.scss +6 -17
  249. package/lib/widget/file-utility/file-utility.component.ts +24 -9
  250. package/lib/widget/list-utility/list-utility.component.scss +4 -5
  251. package/lib/widget/list-utility/list-utility.component.ts +0 -1
  252. package/lib/widget/quick-create/quick-create.component.ts +41 -23
  253. package/lib/widget/todo/todo.component.html +12 -10
  254. package/lib/widget/todo/todo.component.scss +20 -10
  255. package/lib/widget/todo/todo.component.ts +11 -7
  256. package/lib/widget/utility/utility.component.ts +0 -1
  257. package/package.json +1 -1
@@ -1,13 +1,13 @@
1
- import { Component, OnInit, Input, NgZone, forwardRef, OnDestroy } from '@angular/core';
1
+ import { Component, OnInit, Input, NgZone, forwardRef, OnDestroy, inject } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
4
4
  import { interval, Subscription } from 'rxjs';
5
5
  import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
6
+ import { ServerConfigService } from '@pega/angular-sdk-components';
6
7
  import { ProgressSpinnerService } from '@pega/angular-sdk-components';
7
8
  import { ReferenceComponent } from '@pega/angular-sdk-components';
8
9
  import { PreviewViewContainerComponent } from '@pega/angular-sdk-components';
9
10
  import { ModalViewContainerComponent } from '@pega/angular-sdk-components';
10
- import { HybridViewContainerComponent } from '@pega/angular-sdk-components';
11
11
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
12
12
 
13
13
  /**
@@ -22,11 +22,9 @@ const options = { context: 'app' };
22
22
  selector: 'app-root-container',
23
23
  templateUrl: './root-container.component.html',
24
24
  styleUrls: ['./root-container.component.scss'],
25
- standalone: true,
26
25
  imports: [
27
26
  CommonModule,
28
27
  MatProgressSpinnerModule,
29
- HybridViewContainerComponent,
30
28
  ModalViewContainerComponent,
31
29
  PreviewViewContainerComponent,
32
30
  forwardRef(() => ComponentMapperComponent)
@@ -37,6 +35,8 @@ export class RootContainerComponent implements OnInit, OnDestroy {
37
35
  @Input() displayOnlyFA$: boolean;
38
36
  @Input() isMashup$: boolean;
39
37
 
38
+ scService = inject(ServerConfigService);
39
+
40
40
  // For interaction with AngularPConnect
41
41
  angularPConnectData: AngularPConnectData = {};
42
42
 
@@ -62,8 +62,6 @@ export class RootContainerComponent implements OnInit, OnDestroy {
62
62
  ) {}
63
63
 
64
64
  ngOnInit(): void {
65
- const myContext = 'app';
66
-
67
65
  const { containers } = PCore.getStore().getState();
68
66
  const items = Object.keys(containers).filter(item => item.includes('root'));
69
67
 
@@ -84,24 +82,11 @@ export class RootContainerComponent implements OnInit, OnDestroy {
84
82
 
85
83
  this.pvConn$ = configObjPreview.getPConnect();
86
84
 
87
- const configObjModal = PCore.createPConnect({
88
- meta: {
89
- type: 'ModalViewContainer',
90
- config: {
91
- name: 'modal'
92
- }
93
- },
94
- options: {
95
- pageReference: 'pyPortal',
96
- context: myContext
97
- }
98
- });
85
+ this.configureModalContainer();
99
86
 
100
87
  // clear out hasViewContainer
101
88
  sessionStorage.setItem('hasViewContainer', 'false');
102
89
 
103
- this.mConn$ = configObjModal.getPConnect();
104
-
105
90
  // First thing in initialization is registering and subscribing to the AngularPConnect service
106
91
  this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
107
92
 
@@ -128,16 +113,6 @@ export class RootContainerComponent implements OnInit, OnDestroy {
128
113
  }
129
114
  }
130
115
 
131
- modalVisibleChanged(isVisible) {
132
- if (this.displayOnlyFA$) {
133
- if (isVisible) {
134
- this.bShowRoot$ = false;
135
- } else {
136
- this.bShowRoot$ = true;
137
- }
138
- }
139
- }
140
-
141
116
  updateSelf() {
142
117
  // need to call this.getCurrentCompleteProps (not this.thePConn.getConfigProps)
143
118
  // to get full set of props that affect this component in Redux
@@ -191,6 +166,25 @@ export class RootContainerComponent implements OnInit, OnDestroy {
191
166
  }
192
167
  }
193
168
 
169
+ async configureModalContainer() {
170
+ const sdkConfig = await this.scService.getSdkConfig();
171
+ const showModalsInEmbeddedMode = sdkConfig.serverConfig.showModalsInEmbeddedMode;
172
+
173
+ if (!this.displayOnlyFA$ || showModalsInEmbeddedMode) {
174
+ const configObjModal = PCore.createPConnect({
175
+ meta: {
176
+ type: 'ModalViewContainer',
177
+ config: {
178
+ name: 'modal'
179
+ }
180
+ },
181
+ options
182
+ });
183
+
184
+ this.mConn$ = configObjModal.getPConnect();
185
+ }
186
+ }
187
+
194
188
  generateViewContainerForNoPortal() {
195
189
  // bootstrap loadMashup resolves to here
196
190
  const arChildren = this.pConn$.getChildren() as any[];
@@ -222,7 +216,6 @@ export class RootContainerComponent implements OnInit, OnDestroy {
222
216
  showHideProgress(bShow: boolean) {
223
217
  // only show spinner after 500ms wait, so if server fast, won't see
224
218
  if (bShow) {
225
- // eslint-disable-next-line sonarjs/no-collapsible-if
226
219
  if (!this.bIsProgress$) {
227
220
  // makes sure Angular tracks these changes
228
221
  if (!this.spinnerTimer || this.spinnerTimer.isStopped) {
@@ -230,7 +223,7 @@ export class RootContainerComponent implements OnInit, OnDestroy {
230
223
  try {
231
224
  this.spinnerTimer.unsubscribe();
232
225
  } catch (ex) {
233
- /* empty */
226
+ console.log(ex);
234
227
  }
235
228
 
236
229
  this.ngZone.run(() => {
@@ -1,13 +1,14 @@
1
1
  <div class="psdk-stages-bar">
2
2
  <div class="psdk-stages-chevron" *ngFor="let stage of arStageResults$">
3
3
  <div *ngIf="stage.visited_status == 'completed'" class="psdk-stages-inner-past">
4
- <img class="psdk-stages-icon" src="{{ checkSvgIcon$ }}" />{{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}
4
+ <img class="psdk-stages-icon" src="{{ checkSvgIcon$ }}" />
5
+ <div>{{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}</div>
5
6
  </div>
6
7
  <div *ngIf="stage.visited_status == 'active'" class="psdk-stages-inner-present">
7
- {{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}
8
+ {{ localizationService.getLocalizedText(stage.name) }}
8
9
  </div>
9
10
  <div *ngIf="stage.visited_status == 'future'" class="psdk-stages-inner-future">
10
- {{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}
11
+ {{ localizationService.getLocalizedText(stage.name) }}
11
12
  </div>
12
13
  </div>
13
14
  </div>
@@ -8,56 +8,30 @@
8
8
  font-size: 1.5rem;
9
9
  }
10
10
 
11
- .psdk-stages-div {
12
- display: inline-flex;
13
- padding: 0.3125rem;
14
- font-weight: bold;
15
- font-size: 1.3rem;
16
- color: var(--app-neutral-color);
17
- }
18
-
19
- .psdk-stages-past {
20
- color: var(--app-primary-color);
21
- padding-right: 0.3125rem;
22
- }
23
-
24
- .psdk-stages-present {
25
- color: var(--app-secondary-color);
26
- padding-right: 0.3125rem;
27
- }
28
-
29
- .psdk-stages-future {
30
- color: var(--app-neutral-color);
31
- padding-right: 0.3125rem;
32
- }
33
-
34
11
  .psdk-stages-full {
35
12
  display: block;
36
13
  }
37
14
 
38
15
  .psdk-stages-divider {
39
- border-bottom: 0.0625rem solid var(--app-neutral-light-color);
16
+ border-bottom: 0.0625rem solid var(--mat-sys-outline-variant);
40
17
  }
41
18
 
42
19
  .psdk-stages-full {
43
20
  display: block;
44
21
  }
45
22
 
46
- .psdk-stages-divider {
47
- border-bottom: 0.0625rem solid var(--app-neutral-light-color);
48
- }
49
-
50
23
  .psdk-stages-icon {
51
- width: 1.4rem;
24
+ width: 18px;
52
25
  display: inline-block;
53
26
  vertical-align: top;
27
+ filter: var(--app-primary-color-filter);
28
+ margin-right: 2px;
54
29
  }
55
30
 
56
31
  .psdk-stages-bar {
57
- margin: 1rem 0rem;
58
- background-color: var(--app-form-color);
32
+ background-color: var(--mat-sys-surface-container);
59
33
  border-radius: 0.5rem;
60
- border: 0.0625rem solid var(--app-neutral-light-color);
34
+ border: 0.0625rem solid var(--mat-sys-outline-variant);
61
35
  overflow: hidden;
62
36
  display: flex;
63
37
  flex-wrap: wrap;
@@ -84,7 +58,7 @@
84
58
  right: calc(-0.4375rem);
85
59
  background: inherit;
86
60
  border-style: solid;
87
- border-color: rgb(207, 207, 207);
61
+ border-color: var(--mat-sys-outline-variant);
88
62
  border-width: 0.0625rem 0.0625rem 0px 0px;
89
63
  border-radius: 0px calc(0.3125rem) 0px 0px;
90
64
  transform: rotateZ(45deg) skew(15deg, 15deg);
@@ -92,17 +66,19 @@
92
66
  }
93
67
 
94
68
  .psdk-stages-inner-past {
95
- color: var(--app-inverse-form-color);
69
+ color: var(--mat-sys-outline-variant);
96
70
  font-size: 1rem;
71
+ display: flex;
72
+ align-items: center;
97
73
  }
98
74
 
99
75
  .psdk-stages-inner-present {
100
- color: var(--app-primary-color);
76
+ color: var(--mat-sys-primary);
101
77
  font-weight: bold;
102
78
  font-size: 1rem;
103
79
  }
104
80
 
105
81
  .psdk-stages-inner-future {
106
- color: var(--app-neutral-color);
82
+ color: var(--mat-sys-on-surface);
107
83
  font-size: 1rem;
108
84
  }
@@ -13,7 +13,6 @@ interface StagesProps {
13
13
  selector: 'app-stages',
14
14
  templateUrl: './stages.component.html',
15
15
  styleUrls: ['./stages.component.scss'],
16
- standalone: true,
17
16
  imports: [CommonModule]
18
17
  })
19
18
  export class StagesComponent implements OnInit, OnDestroy {
@@ -27,7 +26,8 @@ export class StagesComponent implements OnInit, OnDestroy {
27
26
  arStageResults$: any[];
28
27
  lastStage$: any;
29
28
  checkSvgIcon$: string;
30
- key: string;
29
+ key: any;
30
+ localizationService: any;
31
31
 
32
32
  constructor(
33
33
  private angularPConnect: AngularPConnectService,
@@ -40,7 +40,8 @@ export class StagesComponent implements OnInit, OnDestroy {
40
40
 
41
41
  // const imagePath = this.utils.getIconPath(this.utils.getSDKStaticContentUrl());
42
42
  this.checkSvgIcon$ = this.utils.getImageSrc('check', this.utils.getSDKStaticContentUrl());
43
- this.key = `${this.pConn$.getCaseInfo().getClassName()}!CASE!${this.pConn$.getCaseInfo().getName()}`.toUpperCase();
43
+ this.key = this.pConn$?.getCaseLocaleReference();
44
+ this.localizationService = this.pConn$?.getLocalizationService();
44
45
  }
45
46
 
46
47
  ngOnDestroy(): void {
@@ -17,7 +17,7 @@
17
17
  <div *ngFor="let kid of arChildren$">
18
18
  <component-mapper
19
19
  [name]="kid.getPConnect().getComponentName()"
20
- [props]="{ pConn$: kid.getPConnect() }"
20
+ [props]="{ pConn$: kid.getPConnect(), formGroup$ }"
21
21
  errorMsg="View Missing (displayAll): {{ kid.getPConnect().getComponentName() }}"
22
22
  ></component-mapper>
23
23
  </div>
@@ -7,7 +7,7 @@ import { getAllFields } from '@pega/angular-sdk-components';
7
7
  import { ReferenceComponent } from '@pega/angular-sdk-components';
8
8
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
9
9
 
10
- const NO_HEADER_TEMPLATES = ['SubTabs', 'SimpleTable', 'Confirmation', 'DynamicTabs', 'DetailsSubTabs'];
10
+ const NO_HEADER_TEMPLATES = ['SubTabs', 'SimpleTable', 'Confirmation', 'DynamicTabs', 'DetailsSubTabs', 'ListView'];
11
11
  const DETAILS_TEMPLATES = [
12
12
  'Details',
13
13
  'DetailsFields',
@@ -82,7 +82,6 @@ interface ViewProps {
82
82
  selector: 'app-view',
83
83
  templateUrl: './view.component.html',
84
84
  styleUrls: ['./view.component.scss'],
85
- standalone: true,
86
85
  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
87
86
  })
88
87
  export class ViewComponent implements OnInit, OnDestroy, OnChanges {
@@ -159,14 +158,11 @@ export class ViewComponent implements OnInit, OnDestroy, OnChanges {
159
158
 
160
159
  this.templateName$ = this.configProps$.template || '';
161
160
  this.title$ = this.configProps$.title || '';
162
- this.label$ = this.configProps$.label || '';
163
- this.showLabel$ = this.configProps$.showLabel || isDetailsTemplate(this.templateName$) || this.showLabel$;
164
161
  // label & showLabel within inheritedProps takes precedence over configProps
165
- this.label$ = this.inheritedProps$.label || this.label$;
166
- this.showLabel$ = this.inheritedProps$.showLabel || this.showLabel$;
162
+ this.label$ = this.inheritedProps$.label || this.configProps$.label || '';
163
+ this.showLabel$ = this.inheritedProps$.showLabel || this.configProps$.showLabel || isDetailsTemplate(this.templateName$);
167
164
  // children may have a 'reference' so normalize the children array
168
165
  this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());
169
-
170
166
  this.visibility$ = this.configProps$.visibility ?? this.visibility$;
171
167
 
172
168
  /**
@@ -0,0 +1,12 @@
1
+ <div class="advanced-search">
2
+ <!-- Search Groups Component -->
3
+ <component-mapper name="SearchGroups" [props]="{ pConn$, formGroup$, searchGroupsProps }"></component-mapper>
4
+ <!-- Editable Field Component -->
5
+ <ng-container *ngIf="editableFieldComp">
6
+ <component-mapper
7
+ [name]="editableFieldComp.getPConnect().getComponentName()"
8
+ [props]="{ pConn$: editableFieldComp.getPConnect() }"
9
+ errorMsg="View Missing (displayAll): {{ editableFieldComp.getPConnect().getComponentName() }}"
10
+ ></component-mapper>
11
+ </ng-container>
12
+ </div>
@@ -0,0 +1,112 @@
1
+ import { Component, forwardRef, Input, OnInit, OnChanges } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormGroup } from '@angular/forms';
4
+ import { ComponentMapperComponent } from '@pega/angular-sdk-components';
5
+ import { DataReferenceAdvancedSearchService } from '@pega/angular-sdk-components';
6
+ import { getFirstChildConfig } from '@pega/angular-sdk-components';
7
+
8
+ @Component({
9
+ selector: 'app-advanced-search',
10
+ templateUrl: './advanced-search.component.html',
11
+ styleUrls: ['./advanced-search.component.scss'],
12
+ imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
13
+ })
14
+ export class AdvancedSearchComponent implements OnInit, OnChanges {
15
+ @Input() pConn$: typeof PConnect;
16
+ @Input() formGroup$: FormGroup;
17
+ @Input() searchSelectCacheKey;
18
+
19
+ isInitialized = false;
20
+
21
+ configProps$: any;
22
+ showRecords: any;
23
+ searchGroupsProps: any;
24
+ editableFieldComp: any;
25
+
26
+ constructor(private advancedSearchService: DataReferenceAdvancedSearchService) {}
27
+
28
+ ngOnInit(): void {
29
+ this.isInitialized = true;
30
+ this.updateSelf();
31
+ }
32
+
33
+ ngOnChanges() {
34
+ if (this.isInitialized) {
35
+ this.updateSelf();
36
+ }
37
+ }
38
+
39
+ // updateSelf
40
+ updateSelf(): void {
41
+ this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
42
+ const targetObjectClass = this.configProps$.targetObjectClass;
43
+ const localeReference = this.configProps$.localeReference;
44
+ const data: any = this.advancedSearchService.getConfig();
45
+ const { dataReferenceConfigToChild, isCreateNewReferenceEnabled, disableStartingFieldsForReference, pyID, searchSelectCacheKey } = data;
46
+ const { selectionMode, value: singleSelectFieldValue, readonlyContextList: multiSelectField } = dataReferenceConfigToChild;
47
+
48
+ // let isSelectionExist = false;
49
+ const { MULTI } = PCore.getConstants().LIST_SELECTION_MODE;
50
+
51
+ if (selectionMode === MULTI) {
52
+ this.showRecords = this.pConn$.getValue(multiSelectField)?.length || false;
53
+ } else {
54
+ this.showRecords = this.pConn$.getValue(singleSelectFieldValue) || false;
55
+ }
56
+
57
+ const rawViewMetadata = this.pConn$.getRawMetadata() as any;
58
+
59
+ const searchFieldsSet = new Set();
60
+ const searchFields: any = [];
61
+ rawViewMetadata?.config?.searchGroups?.forEach((group: any) => {
62
+ group.children.forEach((child: any) => {
63
+ if (!searchFieldsSet.has(child.config.value) && !child.config.validator) {
64
+ searchFields.push(child);
65
+ searchFieldsSet.add(child.config.value);
66
+ }
67
+ });
68
+ });
69
+
70
+ const firstChildPConnect = this.pConn$.getChildren()[0].getPConnect as any;
71
+ const [firstChildMeta] = rawViewMetadata.children;
72
+
73
+ const localizedVal = PCore.getLocaleUtils().getLocaleValue;
74
+ // @ts-ignore
75
+ const cache = PCore.getNavigationUtils().getComponentCache(searchSelectCacheKey) ?? {};
76
+
77
+ this.editableFieldComp = firstChildPConnect().createComponent({
78
+ type: firstChildMeta.type,
79
+ config: {
80
+ ...getFirstChildConfig({
81
+ firstChildMeta,
82
+ getPConnect: this.pConn$,
83
+ rawViewMetadata,
84
+ contextClass: targetObjectClass,
85
+ dataReferenceConfigToChild,
86
+ isCreateNewReferenceEnabled,
87
+ disableStartingFieldsForReference,
88
+ pyID
89
+ }),
90
+ searchFields,
91
+ showRecords: this.showRecords,
92
+ label: localizedVal('Search results', 'DataReference'),
93
+ searchSelectCacheKey,
94
+ cache
95
+ }
96
+ });
97
+
98
+ const { selectionList, dataRelationshipContext } = this.editableFieldComp.getPConnect().getConfigProps();
99
+ const editableField = selectionMode === MULTI ? selectionList.substring(1) : dataRelationshipContext;
100
+
101
+ this.searchGroupsProps = {
102
+ getPConnect: this.pConn$,
103
+ editableField,
104
+ localeReference,
105
+ setShowRecords: (value: boolean) => {
106
+ this.showRecords = value;
107
+ },
108
+ searchSelectCacheKey: dataReferenceConfigToChild.searchSelectCacheKey,
109
+ cache
110
+ };
111
+ }
112
+ }
@@ -0,0 +1,27 @@
1
+ import { Injectable } from '@angular/core';
2
+
3
+ @Injectable({
4
+ providedIn: 'root'
5
+ })
6
+ export class AdvancedSearchService {
7
+ initializeSearchFields(rawViewMetadata: any): any[] {
8
+ const searchFieldsSet = new Set();
9
+ const searchFields: any[] = [];
10
+
11
+ rawViewMetadata.config.searchGroups.forEach((group: any) => {
12
+ group.children.forEach((child: any) => {
13
+ if (!searchFieldsSet.has(child.config.value) && !child.config.validator) {
14
+ searchFields.push(child);
15
+ searchFieldsSet.add(child.config.value);
16
+ }
17
+ });
18
+ });
19
+
20
+ return searchFields;
21
+ }
22
+
23
+ getLocalizedValue(key: string, context: string): string {
24
+ // Mock implementation for localized value retrieval
25
+ return `${context}: ${key}`;
26
+ }
27
+ }
@@ -0,0 +1,56 @@
1
+ const SKIP_CACHE_KEY = '';
2
+
3
+ export function getMappedKey(key) {
4
+ const mappedKey = PCore.getEnvironmentInfo().getKeyMapping(key);
5
+ if (!mappedKey) {
6
+ return key;
7
+ }
8
+ return mappedKey;
9
+ }
10
+
11
+ const getComponentStateKey = (getPConnect, propertyName: string) => {
12
+ const pConnect = getPConnect;
13
+ const caseID = `.${getMappedKey('pyID')}`; // Enhance this later when use-case arrives for data objects using S&S.
14
+ const resolvedCaseID = pConnect.getValue(caseID);
15
+
16
+ if (!resolvedCaseID) {
17
+ return SKIP_CACHE_KEY;
18
+ }
19
+
20
+ return `Search-${resolvedCaseID}-${pConnect.getPageReference()}-${propertyName}-${pConnect.getCurrentView()}`;
21
+ };
22
+
23
+ const getComponentStateOptions = getPConnect => {
24
+ return { clearOnCancelForContext: getPConnect.getContextName() };
25
+ };
26
+
27
+ interface SearchCategory {
28
+ // tabId of search category selected
29
+ selectedCategory: string;
30
+ }
31
+
32
+ interface SearchGroup {
33
+ // searchFields can be any object based on what fields are authored.
34
+ searchFields: unknown;
35
+ activeGroupId: string;
36
+ }
37
+
38
+ const setComponentCache = ({
39
+ cacheKey,
40
+ state,
41
+ options
42
+ }: {
43
+ cacheKey: string;
44
+ state: SearchCategory | SearchGroup;
45
+ options: ReturnType<typeof getComponentStateOptions>;
46
+ }) => {
47
+ if (cacheKey !== SKIP_CACHE_KEY) {
48
+ (PCore.getNavigationUtils() as any).setComponentCache(cacheKey, state, options);
49
+ }
50
+ };
51
+
52
+ export const componentCachePersistUtils = {
53
+ getComponentStateKey,
54
+ getComponentStateOptions,
55
+ setComponentCache
56
+ };
@@ -0,0 +1,32 @@
1
+ <div class="search-groups-container" fxLayout="column" fxLayoutGap="16px">
2
+ <!-- Dropdown if multiple groups -->
3
+ <div *ngIf="groups && groups.length > 1">
4
+ <mat-form-field appearance="fill" style="width: 100%">
5
+ <mat-label>Search By</mat-label>
6
+ <mat-select [value]="activeGroupId" (selectionChange)="onActiveGroupChange($event.value)">
7
+ <mat-option *ngFor="let group of groups" [value]="group.config.id">
8
+ {{ group.config.label }}
9
+ </mat-option>
10
+ </mat-select>
11
+ </mat-form-field>
12
+ </div>
13
+
14
+ <!-- Search Fields Form -->
15
+ <div *ngIf="transientItemID">
16
+ <component-mapper
17
+ [name]="searchFieldsC11nEnv()?.getPConnect().getComponentName()"
18
+ [props]="{ pConn$: searchFieldsC11nEnv()?.getPConnect(), formGroup$ }"
19
+ errorMsg="View Missing (displayAll): {{ searchFieldsC11nEnv()?.getPConnect().getComponentName() }}"
20
+ ></component-mapper>
21
+ </div>
22
+
23
+ <!-- Action Buttons -->
24
+ <div style="display: flex; gap: 8px; margin-bottom: 10px">
25
+ <button mat-stroked-button type="button" (click)="resetFilterData()">
26
+ {{ localizedVal('Reset', 'SimpleTable') }}
27
+ </button>
28
+ <button mat-raised-button color="primary" type="button" (click)="getFilterData()">
29
+ {{ localizedVal('Search', 'SimpleTable') }}
30
+ </button>
31
+ </div>
32
+ </div>