@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
@@ -14,7 +14,6 @@ interface PageProps {
14
14
  selector: 'app-page',
15
15
  templateUrl: './page.component.html',
16
16
  styleUrls: ['./page.component.scss'],
17
- standalone: true,
18
17
  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
19
18
  })
20
19
  export class PageComponent implements OnInit, OnDestroy {
@@ -34,7 +33,7 @@ export class PageComponent implements OnInit, OnDestroy {
34
33
  this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
35
34
 
36
35
  this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as PageProps;
37
- this.arChildren$ = this.pConn$.getChildren() as any[];
36
+ this.arChildren$ = this.pConn$.getChildren();
38
37
 
39
38
  this.title$ = this.configProps$.title;
40
39
  const operator = this.configProps$.operator;
@@ -26,7 +26,6 @@ const SUPPORTED_TYPES_IN_PROMOTED_FILTERS = [
26
26
  selector: 'app-promoted-filters',
27
27
  templateUrl: './promoted-filters.component.html',
28
28
  styleUrls: ['./promoted-filters.component.scss'],
29
- standalone: true,
30
29
  imports: [CommonModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)]
31
30
  })
32
31
  export class PromotedFiltersComponent implements OnInit, OnDestroy {
@@ -81,7 +80,7 @@ export class PromotedFiltersComponent implements OnInit, OnDestroy {
81
80
  });
82
81
 
83
82
  const filtersWithClassID = { ...this.filtersProperties, classID: this.pageClass };
84
- this.transientItemID = (this.pConn$.getContainerManager() as any).addTransientItem({ id: this.viewName, data: filtersWithClassID });
83
+ this.transientItemID = this.pConn$.getContainerManager().addTransientItem({ id: this.viewName, data: filtersWithClassID });
85
84
  this.processedFilters = [];
86
85
  this.filters.forEach(filter => {
87
86
  const filterClone = { ...filter };
@@ -18,7 +18,6 @@ interface RepeatingStructuresProps {
18
18
  selector: 'app-repeating-structures',
19
19
  templateUrl: './repeating-structures.component.html',
20
20
  styleUrls: ['./repeating-structures.component.scss'],
21
- standalone: true,
22
21
  imports: [CommonModule, MatFormFieldModule, MatIconModule, MatInputModule, MatTableModule, MatSortModule, MatPaginatorModule]
23
22
  })
24
23
  export class RepeatingStructuresComponent implements OnInit, AfterViewInit {
@@ -69,7 +68,6 @@ export class RepeatingStructuresComponent implements OnInit, AfterViewInit {
69
68
  }
70
69
 
71
70
  rowClick(row) {
72
- // eslint-disable-next-line sonarjs/no-small-switch
73
71
  switch (this.configProps$.rowClickAction) {
74
72
  case 'openAssignment':
75
73
  this.psService.sendMessage(true);
@@ -107,7 +105,7 @@ export class RepeatingStructuresComponent implements OnInit, AfterViewInit {
107
105
  openAssignment(row) {
108
106
  const { pxRefObjectClass, pzInsKey } = row;
109
107
  const sTarget = this.pConn$.getContainerName();
110
- const options: any = { containerName: sTarget };
108
+ const options = { containerName: sTarget };
111
109
  this.pConn$
112
110
  .getActionsApi()
113
111
  .openAssignment(pzInsKey, pxRefObjectClass, options)
@@ -0,0 +1,80 @@
1
+ <div *ngIf="showCaseActions" class="psdk-self-service-case-view-header">
2
+ <div>{{ this.heading$ }}</div>
3
+ <div class="psdk-case-view-buttons">
4
+ <button mat-raised-button color="secondary" [matMenuTriggerFor]="actionMenu">{{ localizedVal('Actions...', localeCategory) }}</button>
5
+ <mat-menu #actionMenu="matMenu" overlapTrigger="false">
6
+ <ng-container *ngFor="let action of arAvailableActions$">
7
+ <button mat-menu-item (click)="_menuActionClick(action)">
8
+ {{ localizedVal(action.name, '', localeKey) }}
9
+ </button>
10
+ </ng-container>
11
+ <ng-container *ngFor="let process of arAvailabeProcesses$">
12
+ <button mat-menu-item (click)="_menuProcessClick(process)">
13
+ {{ process.name }}
14
+ </button>
15
+ </ng-container>
16
+ </mat-menu>
17
+ </div>
18
+ </div>
19
+ <div class="psdk-case-view" id="case-view">
20
+ <div class="psdk-case-view-info">
21
+ <div *ngIf="showSummaryRegion && (primarySummaryFields.length > 0 || secondarySummaryFields.length > 0)">
22
+ <mat-toolbar class="psdk-case-view-toolbar">
23
+ <mat-toolbar-row class="psdk-case-view-toolbar-row">
24
+ <div class="psdk-case-view-heading">
25
+ <div>
26
+ <h1 id="case-name">{{ heading$ }}</h1>
27
+ </div>
28
+ <div id="current-caseID" [hidden]="true">{{ currentCaseID }}</div>
29
+ <div class="psdk-case-view-heading-id" id="caseId">{{ id$ }}</div>
30
+ </div>
31
+ </mat-toolbar-row>
32
+ </mat-toolbar>
33
+ <div class="psdk-case-view-divider"></div>
34
+ <div class="psdk-case-view-summary">
35
+ <component-mapper
36
+ name="CaseSummaryFields"
37
+ [props]="{ primaryFields$: primarySummaryFields, secondaryFields$: secondarySummaryFields }"
38
+ ></component-mapper>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ <div class="psdk-case-view-main">
43
+ <div>
44
+ <div *ngFor="let kid of arChildren$">
45
+ <div
46
+ *ngIf="
47
+ kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' &&
48
+ kid.getPConnect().getRawMetadata().name.toLowerCase() == 'stages' &&
49
+ showCaseLifecycle
50
+ "
51
+ >
52
+ <component-mapper name="Region" [props]="{ pConn$: kid.getPConnect() }"></component-mapper>
53
+ </div>
54
+ </div>
55
+ </div>
56
+
57
+ <div *ngFor="let kid of arChildren$">
58
+ <div
59
+ *ngIf="kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'todo'"
60
+ >
61
+ <component-mapper name="Region" [props]="{ pConn$: kid.getPConnect(), formGroup$ }"></component-mapper>
62
+ </div>
63
+ </div>
64
+
65
+ <div *ngFor="let kid of arChildren$">
66
+ <div *ngIf="kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name == 'Main'">
67
+ <component-mapper name="Region" [props]="{ pConn$: kid.getPConnect(), formGroup$ }"></component-mapper>
68
+ </div>
69
+ </div>
70
+ </div>
71
+ <div class="psdk-case-view-utilities">
72
+ <div *ngIf="arChildren$ && showUtilitiesRegion && isUtilitiesRegionNotEmpty()">
73
+ <div *ngFor="let kid of arChildren$">
74
+ <div *ngIf="kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'">
75
+ <component-mapper name="Region" [props]="{ pConn$: kid.getPConnect() }"></component-mapper>
76
+ </div>
77
+ </div>
78
+ </div>
79
+ </div>
80
+ </div>
@@ -0,0 +1,124 @@
1
+ h1 {
2
+ font-size: 1.1rem;
3
+ line-height: 1.3rem;
4
+ }
5
+
6
+ ::ng-deep .mat-mdc-menu-panel {
7
+ overflow: unset;
8
+ max-width: unset;
9
+ }
10
+
11
+ .psdk-case-view-label {
12
+ font-size: 1rem;
13
+ display: block;
14
+ transform: translateY(0.2em) scale(0.75) perspective(100px) translateZ(0.001px);
15
+ -ms-transform: translateY(0.2em) scale(0.75);
16
+ width: 133.33333%;
17
+ border-radius: 0.6125rem;
18
+ }
19
+
20
+ .psdk-case-view {
21
+ box-sizing: border-box;
22
+ display: flex;
23
+ }
24
+
25
+ .ng-case-view-toolbar {
26
+ padding: 0.625rem 0.625rem;
27
+ }
28
+
29
+ .psdk-case-icon-div {
30
+ background-color: var(--mat-sys-on-primary-fixed);
31
+ border-radius: 1rem;
32
+ padding: 0.5rem 0.3rem 0.3rem 0.3rem;
33
+ }
34
+ .psdk-case-svg-icon {
35
+ width: 2rem;
36
+ padding: 0rem 0.3125rem;
37
+ filter: var(--app-white-color-filter);
38
+ }
39
+
40
+ .psdk-case-view-info-box {
41
+ display: flex;
42
+ flex-direction: row;
43
+ padding: 0rem 0.3125rem 0rem 0rem;
44
+ }
45
+
46
+ .psdk-case-view-info {
47
+ flex: 0 0 auto;
48
+ width: 25rem;
49
+ float: left;
50
+ // padding: 0rem 0.3125rem 0rem 0rem;
51
+ background-color: var(--mat-sys-surface-container);
52
+ height: 100%;
53
+ }
54
+
55
+ .psdk-case-view-main {
56
+ flex-grow: 2;
57
+ float: left;
58
+ padding: 0rem 0.3125rem;
59
+ height: 100%; /* Should be removed. Only for demonstration */
60
+ }
61
+
62
+ .psdk-case-view-summary {
63
+ padding-left: 0.75rem;
64
+ }
65
+
66
+ .psdk-case-view-heading {
67
+ display: block;
68
+ text-align: left;
69
+ padding-left: 0.5rem;
70
+ padding-bottom: 0;
71
+ padding-top: 5px;
72
+ }
73
+ .psdk-case-view-heading-id {
74
+ font-size: 0.9rem;
75
+ font-weight: normal;
76
+ }
77
+
78
+ .psdk-case-view-buttons {
79
+ display: flex;
80
+ justify-content: flex-start;
81
+ padding: 0.3125rem;
82
+ }
83
+
84
+ .psdk-case-view-utilities {
85
+ background-color: var(--mat-sys-surface-container);
86
+ width: 21.875rem;
87
+ float: left;
88
+ padding: 0rem 0.3125rem;
89
+ }
90
+
91
+ .psdk-case-view-divider {
92
+ border-bottom: 0.0625rem solid var(--mat-sys-outline-variant);
93
+ }
94
+
95
+ .psdk-status {
96
+ padding: 0.3125rem 0.3125rem;
97
+ background-color: var(--mat-sys-primary);
98
+ color: var(--mat-sys-surface-container);
99
+ width: fit-content;
100
+ margin: 0.625rem;
101
+ }
102
+
103
+ .psdk-case-view-toolbar {
104
+ background-color: var(--mat-sys-primary);
105
+ justify-content: center;
106
+ }
107
+
108
+ button {
109
+ margin: 0rem 0.3125rem;
110
+ }
111
+
112
+ .psdk-case-view-toolbar-row {
113
+ padding-left: 1rem;
114
+ white-space: normal;
115
+ height: auto;
116
+ }
117
+
118
+ .psdk-self-service-case-view-header {
119
+ display: flex;
120
+ justify-content: space-around;
121
+ align-items: center;
122
+ margin: 10px;
123
+ background-color: var(--mat-sys-primary);
124
+ }
@@ -0,0 +1,24 @@
1
+ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
2
+
3
+ import { SelfServiceCaseViewComponent } from './self-service-case-view.component';
4
+
5
+ describe('SelfServiceCaseViewComponent', () => {
6
+ let component: SelfServiceCaseViewComponent;
7
+ let fixture: ComponentFixture<SelfServiceCaseViewComponent>;
8
+
9
+ beforeEach(waitForAsync(() => {
10
+ TestBed.configureTestingModule({
11
+ declarations: [SelfServiceCaseViewComponent]
12
+ }).compileComponents();
13
+ }));
14
+
15
+ beforeEach(() => {
16
+ fixture = TestBed.createComponent(SelfServiceCaseViewComponent);
17
+ component = fixture.componentInstance;
18
+ fixture.detectChanges();
19
+ });
20
+
21
+ it('should create', () => {
22
+ expect(component).toBeTruthy();
23
+ });
24
+ });
@@ -0,0 +1,216 @@
1
+ import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormGroup } from '@angular/forms';
4
+ import { MatToolbarModule } from '@angular/material/toolbar';
5
+ import { MatButtonModule } from '@angular/material/button';
6
+ import { MatMenuModule } from '@angular/material/menu';
7
+ import { interval } from 'rxjs';
8
+ import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
9
+ import { Utils } from '@pega/angular-sdk-components';
10
+ import { ComponentMapperComponent } from '@pega/angular-sdk-components';
11
+ import { prepareCaseSummaryData } from '@pega/angular-sdk-components';
12
+
13
+ interface SelfServiceCaseViewProps {
14
+ // If any, enter additional props that only exist on this component
15
+ icon: string;
16
+ subheader: string;
17
+ header: string;
18
+ showCaseLifecycle: any;
19
+ showSummaryRegion: any;
20
+ showUtilitiesRegion: any;
21
+ showCaseActions: any;
22
+ caseClass: any;
23
+ }
24
+
25
+ @Component({
26
+ selector: 'app-self-service-case-view',
27
+ templateUrl: './self-service-case-view.component.html',
28
+ styleUrls: ['./self-service-case-view.component.scss'],
29
+ providers: [Utils],
30
+ imports: [CommonModule, MatToolbarModule, MatButtonModule, MatMenuModule, forwardRef(() => ComponentMapperComponent)]
31
+ })
32
+ export class SelfServiceCaseViewComponent implements OnInit, OnDestroy {
33
+ @Input() pConn$: typeof PConnect;
34
+ @Input() formGroup$: FormGroup;
35
+
36
+ // Used with AngularPConnect
37
+ angularPConnectData: AngularPConnectData = {};
38
+ configProps$: SelfServiceCaseViewProps;
39
+
40
+ arChildren$: any[];
41
+
42
+ heading$ = '';
43
+ id$ = '';
44
+ status$ = '';
45
+
46
+ arAvailableActions$: any[] = [];
47
+ arAvailabeProcesses$: any[] = [];
48
+
49
+ caseSummaryPConn$: any;
50
+ currentCaseID = '';
51
+ editAction: boolean;
52
+ bHasNewAttachments = false;
53
+ localizedVal: any;
54
+ localeCategory = 'CaseView';
55
+ localeKey: any;
56
+ showCaseLifecycle: boolean;
57
+ showSummaryRegion: boolean;
58
+ showUtilitiesRegion: boolean;
59
+ showCaseActions: boolean;
60
+ utilityRegion: any;
61
+ primarySummaryFields: any;
62
+ secondarySummaryFields: any;
63
+
64
+ constructor(
65
+ private angularPConnect: AngularPConnectService,
66
+ private utils: Utils
67
+ ) {}
68
+
69
+ ngOnInit(): void {
70
+ // First thing in initialization is registering and subscribing to the AngularPConnect service
71
+ this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
72
+ this.checkAndUpdate();
73
+ this.localizedVal = PCore.getLocaleUtils().getLocaleValue;
74
+ }
75
+
76
+ ngOnDestroy(): void {
77
+ if (this.angularPConnectData.unsubscribeFn) {
78
+ this.angularPConnectData.unsubscribeFn();
79
+ }
80
+ }
81
+
82
+ // Callback passed when subscribing to store change
83
+ onStateChange() {
84
+ this.checkAndUpdate();
85
+ }
86
+
87
+ checkAndUpdate() {
88
+ // Should always check the bridge to see if the component should update itself (re-render)
89
+ const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
90
+
91
+ // ONLY call updateSelf when the component should update
92
+ // AND removing the "gate" that was put there since shouldComponentUpdate
93
+ // should be the real "gate"
94
+ if (bUpdateSelf) {
95
+ // generally, don't want to refresh everything when data changes in caseView, it is usually the
96
+ // case summary. But check if the case ID changes, this means a different case and we should
97
+ // update all.
98
+ if (this.hasCaseIDChanged()) {
99
+ this.fullUpdate();
100
+
101
+ // update okToInitFlowContainer, because case view was drawn, flow container will need to be init
102
+ // to match Nebula/Constellation
103
+ sessionStorage.setItem('okToInitFlowContainer', 'true');
104
+ } else {
105
+ this.updateHeaderAndSummary();
106
+ }
107
+ }
108
+ }
109
+
110
+ hasCaseIDChanged(): boolean {
111
+ if (this.currentCaseID !== this.pConn$.getDataObject().caseInfo.ID) {
112
+ this.currentCaseID = this.pConn$.getDataObject().caseInfo.ID;
113
+ return true;
114
+ }
115
+ return false;
116
+ }
117
+
118
+ updateHeaderAndSummary() {
119
+ this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as SelfServiceCaseViewProps;
120
+ const hasNewAttachments = this.pConn$.getDataObject().caseInfo?.hasNewAttachments;
121
+
122
+ if (hasNewAttachments !== this.bHasNewAttachments) {
123
+ this.bHasNewAttachments = hasNewAttachments;
124
+ if (this.bHasNewAttachments) {
125
+ PCore.getPubSubUtils().publish(PCore.getEvents().getCaseEvent().CASE_ATTACHMENTS_UPDATED_FROM_CASEVIEW, true);
126
+ }
127
+ }
128
+
129
+ const kids = this.pConn$.getChildren() as any[];
130
+ for (const kid of kids) {
131
+ const meta = kid.getPConnect().getRawMetadata();
132
+ if (meta.type.toLowerCase() == 'region' && meta.name.toLowerCase() == 'summary') {
133
+ this.caseSummaryPConn$ = kid.getPConnect().getChildren()[0].getPConnect();
134
+ }
135
+ }
136
+
137
+ // have to put in a timeout, otherwise get an angular change event error
138
+ const timer = interval(100).subscribe(() => {
139
+ timer.unsubscribe();
140
+
141
+ this.heading$ = PCore.getLocaleUtils().getLocaleValue(this.configProps$.header, '', this.localeKey);
142
+ this.id$ = this.configProps$.subheader;
143
+ this.status$ = this.pConn$.getValue('.pyStatusWork');
144
+ });
145
+ }
146
+
147
+ fullUpdate() {
148
+ this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as SelfServiceCaseViewProps;
149
+ this.localeKey = this.pConn$?.getCaseLocaleReference();
150
+ this.updateHeaderAndSummary();
151
+
152
+ this.arChildren$ = this.pConn$.getChildren() as any[];
153
+
154
+ const caseInfo = this.pConn$.getDataObject().caseInfo;
155
+ this.currentCaseID = caseInfo.ID;
156
+ this.arAvailableActions$ = caseInfo?.availableActions ? caseInfo.availableActions : [];
157
+ this.editAction = this.arAvailableActions$.find(action => action.ID === 'pyUpdateCaseDetails');
158
+ this.arAvailabeProcesses$ = caseInfo?.availableProcesses ? caseInfo.availableProcesses : [];
159
+
160
+ const { showCaseLifecycle = true, showSummaryRegion = true, showUtilitiesRegion = true, showCaseActions = true, caseClass } = this.configProps$;
161
+ this.showCaseLifecycle = this.utils.getBooleanValue(showCaseLifecycle);
162
+ this.showSummaryRegion = this.utils.getBooleanValue(showSummaryRegion);
163
+ this.showUtilitiesRegion = this.utils.getBooleanValue(showUtilitiesRegion);
164
+ this.showCaseActions = this.utils.getBooleanValue(showCaseActions);
165
+ const isObjectType: boolean = (PCore.getCaseUtils() as any).isObjectCaseType(caseClass);
166
+ this.utilityRegion = isObjectType ? this.filterUtilities(this.arChildren$[2]) : this.filterUtilities(this.arChildren$[4]);
167
+ if (this.showSummaryRegion) {
168
+ const { primarySummaryFields, secondarySummaryFields } = prepareCaseSummaryData(
169
+ this.arChildren$[0],
170
+ (config: any) => config?.availableInChannel?.selfService === true
171
+ );
172
+ this.primarySummaryFields = primarySummaryFields;
173
+ this.secondarySummaryFields = secondarySummaryFields;
174
+ }
175
+ }
176
+
177
+ filterUtilities(utils) {
178
+ let utilsMeta;
179
+ const pConnect = utils.getPConnect();
180
+ utilsMeta = pConnect.getRawMetadata?.();
181
+ if (!utilsMeta?.children?.length) return;
182
+ utilsMeta = {
183
+ ...utilsMeta,
184
+ children: utilsMeta.children.filter((child: any) => child.config?.availableInChannel?.selfService === true)
185
+ };
186
+ return utilsMeta.children?.length ? pConnect.createComponent(utilsMeta) : undefined;
187
+ }
188
+
189
+ isUtilitiesRegionNotEmpty() {
190
+ if (this.utilityRegion && this.utilityRegion.getPConnect()?.getChildren()?.length > 0) {
191
+ return this.utilityRegion
192
+ .getPConnect()
193
+ .getChildren()
194
+ .some((prop: { getPConnect: () => any }) => prop.getPConnect().getConfigProps().visibility !== false);
195
+ }
196
+ return false;
197
+ }
198
+
199
+ updateSelf() {
200
+ this.fullUpdate();
201
+ }
202
+
203
+ _menuActionClick(data) {
204
+ const actionsAPI = this.pConn$.getActionsApi();
205
+ const openLocalAction = actionsAPI.openLocalAction.bind(actionsAPI);
206
+
207
+ openLocalAction(data.ID, { ...data, containerName: 'modal', type: 'express' });
208
+ }
209
+
210
+ _menuProcessClick(data) {
211
+ const actionsAPI = this.pConn$.getActionsApi();
212
+ const openProcessAction = actionsAPI.openProcessAction.bind(actionsAPI);
213
+
214
+ openProcessAction(data.ID, { ...data });
215
+ }
216
+ }
@@ -28,7 +28,6 @@ interface SimpleTableProps {
28
28
  selector: 'app-simple-table',
29
29
  templateUrl: './simple-table.component.html',
30
30
  styleUrls: ['./simple-table.component.scss'],
31
- standalone: true,
32
31
  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
33
32
  })
34
33
  export class SimpleTableComponent implements OnInit, OnDestroy {
@@ -80,7 +79,6 @@ export class SimpleTableComponent implements OnInit, OnDestroy {
80
79
  this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as SimpleTableProps;
81
80
 
82
81
  if (this.configProps$.visibility != null) {
83
- // eslint-disable-next-line no-multi-assign
84
82
  this.bVisible$ = this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);
85
83
  }
86
84