@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,14 +1,12 @@
1
1
  import { Component, Input, Output, EventEmitter } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { MatButtonModule } from '@angular/material/button';
4
- import { MatGridListModule } from '@angular/material/grid-list';
5
4
 
6
5
  @Component({
7
6
  selector: 'app-action-buttons',
8
7
  templateUrl: './action-buttons.component.html',
9
8
  styleUrls: ['./action-buttons.component.scss'],
10
- standalone: true,
11
- imports: [CommonModule, MatGridListModule, MatButtonModule]
9
+ imports: [CommonModule, MatButtonModule]
12
10
  })
13
11
  export class ActionButtonsComponent {
14
12
  @Input() arMainButtons$: any[];
@@ -1,5 +1,5 @@
1
1
  <div>
2
- <div><component-mapper name="AlertBanner" [props]="{ banners }" [parent]="this"></component-mapper></div>
2
+ <div><component-mapper name="AlertBanner" [props]="{ banners: bannerService.banners }" [parent]="this"></component-mapper></div>
3
3
  <div *ngIf="bHasNavigation$" class="psdk-stepper">
4
4
  <component-mapper
5
5
  name="MultiStep"
@@ -1,14 +1,28 @@
1
1
  /* eslint-disable no-case-declarations */
2
- import { Component, OnInit, Input, NgZone, forwardRef, OnDestroy, OnChanges } from '@angular/core';
2
+ import { Component, OnInit, Input, forwardRef, OnDestroy, OnChanges } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { MatSnackBarModule, MatSnackBar } from '@angular/material/snack-bar';
5
5
  import { FormGroup } from '@angular/forms';
6
6
  import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
7
7
  import { ErrorMessagesService } from '@pega/angular-sdk-components';
8
8
  import { ProgressSpinnerService } from '@pega/angular-sdk-components';
9
+ import { BannerService } from '@pega/angular-sdk-components';
9
10
  import { ReferenceComponent } from '@pega/angular-sdk-components';
10
11
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
11
12
 
13
+ function getRefreshProps(refreshConditions) {
14
+ // refreshConditions cuurently supports only "Changes" event
15
+ if (!refreshConditions) {
16
+ return [];
17
+ }
18
+ return refreshConditions.filter(item => item.event && item.event === 'Changes').map(item => [item.field, item.field?.substring(1)]) || [];
19
+ }
20
+
21
+ function scrollToTop() {
22
+ const scrollElement = document.querySelector('.psdk-view-container-top');
23
+ scrollElement?.scrollIntoView();
24
+ }
25
+
12
26
  interface AssignmentProps {
13
27
  // If any, enter additional props that only exist on this component
14
28
  template: string;
@@ -18,7 +32,6 @@ interface AssignmentProps {
18
32
  selector: 'app-assignment',
19
33
  templateUrl: './assignment.component.html',
20
34
  styleUrls: ['./assignment.component.scss'],
21
- standalone: true,
22
35
  imports: [CommonModule, MatSnackBarModule, forwardRef(() => ComponentMapperComponent)]
23
36
  })
24
37
  export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
@@ -29,7 +42,6 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
29
42
  @Input() isCreateStage$: boolean;
30
43
  @Input() updateToken$: number;
31
44
  @Input() isInModal$ = false;
32
- @Input() banners;
33
45
 
34
46
  // For interaction with AngularPConnect
35
47
  angularPConnectData: AngularPConnectData = {};
@@ -49,6 +61,7 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
49
61
 
50
62
  bHasNavigation$ = false;
51
63
  bIsVertical$ = false;
64
+ prevNavigationSteps: any[] = [];
52
65
  arCurrentStepIndicies$: number[] = [];
53
66
  arNavigationSteps$: any[] = [];
54
67
 
@@ -69,12 +82,14 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
69
82
  localeCategory = 'Assignment';
70
83
  localeReference;
71
84
 
85
+ snackBarRef;
86
+
72
87
  constructor(
73
88
  private angularPConnect: AngularPConnectService,
74
89
  private psService: ProgressSpinnerService,
75
90
  private erService: ErrorMessagesService,
76
- private ngZone: NgZone,
77
- private snackBar: MatSnackBar
91
+ private snackBar: MatSnackBar,
92
+ public bannerService: BannerService
78
93
  ) {}
79
94
 
80
95
  ngOnInit(): void {
@@ -105,6 +120,8 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
105
120
  // Should always check the bridge to see if the component should update itself (re-render)
106
121
  const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
107
122
 
123
+ this.bannerService.updateBanners(this.itemKey$);
124
+
108
125
  // ONLY call updateSelf when the component should update
109
126
  // AND removing the "gate" that was put there since shouldComponentUpdate
110
127
  // should be the real "gate"
@@ -116,7 +133,7 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
116
133
 
117
134
  this.psService.sendMessage(loadingInfo);
118
135
  } catch (ex) {
119
- /* empty */
136
+ console.log(ex);
120
137
  }
121
138
  }
122
139
  }
@@ -128,6 +145,10 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
128
145
  }
129
146
 
130
147
  updateChanges() {
148
+ scrollToTop();
149
+
150
+ this.registerForRefresh();
151
+
131
152
  // pConn$ may be a 'reference' component, so normalize it
132
153
  this.newPConn$ = ReferenceComponent.normalizePConn(this.pConn$);
133
154
 
@@ -236,17 +257,19 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
236
257
 
237
258
  // iterate through steps to find current one(s)
238
259
  // immutable, so we want to change the local copy, so need to make a copy
239
- this.ngZone.run(() => {
260
+
261
+ if (!PCore.isDeepEqual(this.prevNavigationSteps, oCaseInfo.navigation.steps)) {
240
262
  // what comes back now in configObject is the children of the flowContainer
241
263
  this.arNavigationSteps$ = JSON.parse(JSON.stringify(oCaseInfo.navigation.steps));
264
+ this.prevNavigationSteps = JSON.parse(JSON.stringify(oCaseInfo.navigation.steps));
242
265
  this.arNavigationSteps$.forEach(step => {
243
266
  if (step.name) {
244
- step.name = PCore.getLocaleUtils().getLocaleValue(step.name, undefined, this.localeReference);
267
+ step.name = this.pConn$.getLocalizationService().getLocalizedText(step.name);
245
268
  }
246
269
  });
247
270
  this.arCurrentStepIndicies$ = [];
248
271
  this.arCurrentStepIndicies$ = this.findCurrentIndicies(this.arNavigationSteps$, this.arCurrentStepIndicies$, 0);
249
- });
272
+ }
250
273
  }
251
274
 
252
275
  findCurrentIndicies(arStepperSteps: any[], arIndicies: number[], depth: number): number[] {
@@ -285,6 +308,9 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
285
308
  }
286
309
 
287
310
  buttonClick(sAction, sButtonType) {
311
+ this.snackBarRef?.dismiss();
312
+ this.bannerService.clearBanners();
313
+ PCore.getPubSubUtils().publish('clearBannerMessages');
288
314
  // right now, done on an individual basis, setting bReInit to true
289
315
  // upon the next flow container state change, will cause the flow container
290
316
  // to re-initialize
@@ -308,21 +334,21 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
308
334
  switch (sAction) {
309
335
  case 'navigateToStep':
310
336
  this.erService.sendMessage('publish', '');
311
- if (this.formValid()) {
312
- this.bReInit = true;
313
- this.psService.sendMessage(true);
314
337
 
315
- const navigatePromise = this.navigateToStep('previous', this.itemKey$);
316
- navigatePromise
317
- .then(() => {
318
- this.updateChanges();
319
- this.psService.sendMessage(false);
320
- })
321
- .catch(() => {
322
- this.psService.sendMessage(false);
323
- this.snackBar.open(`${this.localizedVal('Navigation failed!', this.localeCategory)}`, 'Ok');
324
- });
325
- }
338
+ this.bReInit = true;
339
+ this.psService.sendMessage(true);
340
+
341
+ const navigatePromise = this.navigateToStep('previous', this.itemKey$);
342
+ navigatePromise
343
+ .then(() => {
344
+ this.updateChanges();
345
+ this.psService.sendMessage(false);
346
+ })
347
+ .catch(() => {
348
+ this.psService.sendMessage(false);
349
+ this.snackBarRef = this.snackBar.open(`${this.localizedVal('Navigation failed!', this.localeCategory)}`, 'Ok');
350
+ });
351
+
326
352
  break;
327
353
 
328
354
  case 'saveAssignment': {
@@ -338,7 +364,7 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
338
364
  })
339
365
  .catch(() => {
340
366
  this.psService.sendMessage(false);
341
- this.snackBar.open(`${this.localizedVal('Save failed', this.localeCategory)}`, 'Ok');
367
+ this.snackBarRef = this.snackBar.open(`${this.localizedVal('Save failed', this.localeCategory)}`, 'Ok');
342
368
  });
343
369
 
344
370
  break;
@@ -362,7 +388,7 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
362
388
  })
363
389
  .catch(() => {
364
390
  this.psService.sendMessage(false);
365
- this.snackBar.open(`${this.localizedVal('Cancel failed!', this.localeCategory)}`, 'Ok');
391
+ this.snackBarRef = this.snackBar.open(`${this.localizedVal('Cancel failed!', this.localeCategory)}`, 'Ok');
366
392
  });
367
393
  } else {
368
394
  this.psService.sendMessage(true);
@@ -379,7 +405,7 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
379
405
  })
380
406
  .catch(() => {
381
407
  this.psService.sendMessage(false);
382
- this.snackBar.open(`${this.localizedVal('Cancel failed!', this.localeCategory)}`, 'Ok');
408
+ this.snackBarRef = this.snackBar.open(`${this.localizedVal('Cancel failed!', this.localeCategory)}`, 'Ok');
383
409
  });
384
410
  }
385
411
  break;
@@ -391,7 +417,7 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
391
417
  .then(() => {})
392
418
  .catch(() => {
393
419
  this.psService.sendMessage(false);
394
- this.snackBar.open(`${this.localizedVal('Rejection failed!', this.localeCategory)}`, 'Ok');
420
+ this.snackBarRef = this.snackBar.open(`${this.localizedVal('Rejection failed!', this.localeCategory)}`, 'Ok');
395
421
  });
396
422
 
397
423
  break;
@@ -404,23 +430,19 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
404
430
  switch (sAction) {
405
431
  case 'finishAssignment':
406
432
  this.erService.sendMessage('publish', '');
407
- if (this.formValid()) {
408
- this.bReInit = true;
409
- this.psService.sendMessage(true);
410
- const finishPromise = this.finishAssignment(this.itemKey$); // JA - was itemID but Nebula/Constellation uses itemKey
411
- finishPromise
412
- .then(() => {
413
- this.psService.sendMessage(false);
414
- this.updateChanges();
415
- })
416
- .catch(() => {
417
- this.psService.sendMessage(false);
418
- this.snackBar.open(`${this.localizedVal('Submit failed!', this.localeCategory)}`, 'Ok');
419
- });
420
- } else {
421
- // let snackBarRef = this.snackBar.open("Please fix errors on form.", "Ok");
422
- this.erService.sendMessage('show', this.localizedVal('Please fix errors on form.', this.localeCategory));
423
- }
433
+ this.bReInit = true;
434
+ this.psService.sendMessage(true);
435
+ const finishPromise = this.finishAssignment(this.itemKey$); // JA - was itemID but Nebula/Constellation uses itemKey
436
+ finishPromise
437
+ .then(() => {
438
+ this.updateChanges();
439
+ })
440
+ .catch(() => {
441
+ this.snackBarRef = this.snackBar.open(`${this.localizedVal('Submit failed!', this.localeCategory)}`, 'Ok');
442
+ })
443
+ .finally(() => {
444
+ this.psService.sendMessage(false);
445
+ });
424
446
  break;
425
447
 
426
448
  case 'approveCase': {
@@ -429,8 +451,10 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
429
451
  approvePromise
430
452
  .then(() => {})
431
453
  .catch(() => {
454
+ this.snackBarRef = this.snackBar.open(`${this.localizedVal('Approve failed!', this.localeCategory)}`, 'Ok');
455
+ })
456
+ .finally(() => {
432
457
  this.psService.sendMessage(false);
433
- this.snackBar.open(`${this.localizedVal('Approve failed!', this.localeCategory)}`, 'Ok');
434
458
  });
435
459
 
436
460
  break;
@@ -452,10 +476,40 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
452
476
  });
453
477
  }
454
478
 
455
- // eslint-disable-next-line sonarjs/no-identical-functions
456
479
  topViewRefresh(): void {
457
480
  Object.values(this.formGroup$.controls).forEach((control: any) => {
458
481
  control.markAsTouched();
459
482
  });
460
483
  }
484
+
485
+ registerForRefresh() {
486
+ const refreshConditions = this.pConn$.getCaseInfo()?.getActionRefreshConditions();
487
+ const pageReference = this.pConn$.getPageReference();
488
+ const context = this.pConn$.getContextName();
489
+
490
+ // refresh api de-registration
491
+ PCore.getRefreshManager().deRegisterForRefresh(context);
492
+
493
+ // refresh api registration
494
+ const refreshProps = getRefreshProps(refreshConditions);
495
+ const caseKey = this.pConn$.getCaseInfo().getKey();
496
+ const refreshOptions = {
497
+ autoDetectRefresh: true,
498
+ preserveClientChanges: false
499
+ };
500
+ if (refreshProps.length > 0) {
501
+ refreshProps.forEach(prop => {
502
+ PCore.getRefreshManager().registerForRefresh(
503
+ 'PROP_CHANGE',
504
+ this.pConn$.getActionsApi().refreshCaseView.bind(this.pConn$.getActionsApi(), caseKey, '', pageReference, {
505
+ ...refreshOptions,
506
+ refreshFor: prop[0]
507
+ }),
508
+ `${pageReference}.${prop[1]}`,
509
+ `${context}/${pageReference}`,
510
+ context
511
+ );
512
+ });
513
+ }
514
+ }
461
515
  }
@@ -1,5 +1,5 @@
1
1
  <form [formGroup]="formGroup$" name="flowContainer" class="psdk-flow-container">
2
- <div *ngFor="let kid of arChildren$">
2
+ <div *ngFor="let kid of childrenArray" class="psdk-assignment-card-child">
3
3
  <div [ngSwitch]="kid.getPConnect().getComponentName()">
4
4
  <component-mapper *ngSwitchCase="'View'" name="View" [props]="{ formGroup$, pConn$: kid.getPConnect() }"></component-mapper>
5
5
  <component-mapper
@@ -14,10 +14,10 @@
14
14
  </form>
15
15
 
16
16
  <div>
17
- <br />
18
17
  <div class="psdk-case-view-divider"></div>
19
18
 
20
19
  <component-mapper
20
+ *ngIf="arMainButtons$ && arSecondaryButtons$"
21
21
  name="ActionButtons"
22
22
  [props]="{ arMainButtons$, arSecondaryButtons$ }"
23
23
  [parent]="this"
@@ -1,7 +1,3 @@
1
- .psdk-case-view-divider {
2
- border-bottom: 0.0625rem solid var(--app-neutral-light-color);
3
- }
4
-
5
1
  .psdk-flow-container {
6
2
  padding: 0rem 1rem;
7
3
  }
@@ -1,14 +1,24 @@
1
- import { Component, OnInit, Input, Output, EventEmitter, forwardRef, OnChanges } from '@angular/core';
1
+ import { Component, OnInit, Input, Output, EventEmitter, forwardRef, OnChanges, SimpleChanges } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { FormGroup, ReactiveFormsModule } from '@angular/forms';
4
4
  import { ReferenceComponent } from '@pega/angular-sdk-components';
5
5
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
6
6
 
7
+ function isChildrenUpdated(children) {
8
+ if (!children || children.firstChange) {
9
+ return false;
10
+ }
11
+ for (let i = 0; i < children.previousValue.length; i++) {
12
+ if (!PCore.isDeepEqual(children.previousValue[i].getPConnect().getConfigProps(), children.currentValue[i].getPConnect().getConfigProps())) {
13
+ return true;
14
+ }
15
+ }
16
+ return false;
17
+ }
7
18
  @Component({
8
19
  selector: 'app-assignment-card',
9
20
  templateUrl: './assignment-card.component.html',
10
21
  styleUrls: ['./assignment-card.component.scss'],
11
- standalone: true,
12
22
  imports: [CommonModule, ReactiveFormsModule, forwardRef(() => ComponentMapperComponent)]
13
23
  })
14
24
  export class AssignmentCardComponent implements OnInit, OnChanges {
@@ -19,18 +29,24 @@ export class AssignmentCardComponent implements OnInit, OnChanges {
19
29
  @Input() arChildren$: any[];
20
30
  @Input() updateToken$: number;
21
31
 
32
+ childrenArray: any[] = [];
33
+
22
34
  @Output() actionButtonClick: EventEmitter<any> = new EventEmitter();
23
35
 
24
36
  ngOnInit(): void {
25
37
  // Children may contain 'reference' component, so we need to
26
38
  // normalize them
27
- this.arChildren$ = ReferenceComponent.normalizePConnArray(this.arChildren$);
39
+ this.childrenArray = ReferenceComponent.normalizePConnArray(this.arChildren$);
28
40
  }
29
41
 
30
- ngOnChanges() {
42
+ ngOnChanges(changes: SimpleChanges) {
31
43
  // Children may contain 'reference' component, so we need to
32
44
  // normalize them
33
- this.arChildren$ = ReferenceComponent.normalizePConnArray(this.arChildren$);
45
+
46
+ const { arChildren$ } = changes;
47
+ if (isChildrenUpdated(arChildren$)) {
48
+ this.childrenArray = ReferenceComponent.normalizePConnArray(this.arChildren$);
49
+ }
34
50
  }
35
51
 
36
52
  onActionButtonClick(oData: any) {
@@ -14,7 +14,6 @@ import { getFilterExpression, getFormattedDate, createFilter, combineFilters } f
14
14
  selector: 'app-dashboard-filter',
15
15
  templateUrl: './dashboard-filter.component.html',
16
16
  styleUrls: ['./dashboard-filter.component.scss'],
17
- standalone: true,
18
17
  imports: [
19
18
  CommonModule,
20
19
  MatFormFieldModule,
@@ -1,3 +1,7 @@
1
- <div *ngIf="loadedPConn$">
2
- <component-mapper [name]="componentName$" [props]="{ pConn$: loadedPConn$ }" errorMsg="Defer Load Missing: {{ componentName$ }}"></component-mapper>
1
+ <div *ngIf="childComponentPConnect">
2
+ <component-mapper
3
+ [name]="childComponentPConnect.getComponentName()"
4
+ [props]="{ pConn$: childComponentPConnect, formGroup$ }"
5
+ errorMsg="Defer Load Missing: {{ childComponentPConnect.getComponentName() }}"
6
+ ></component-mapper>
3
7
  </div>
@@ -1,4 +1,4 @@
1
- import { Component, OnInit, Input, forwardRef, OnDestroy, OnChanges } from '@angular/core';
1
+ import { Component, OnInit, Input, forwardRef, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { publicConstants } from '@pega/pcore-pconnect-typedefs/constants';
4
4
  import { ReferenceComponent } from '@pega/angular-sdk-components';
@@ -15,16 +15,14 @@ import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-c
15
15
  selector: 'app-defer-load',
16
16
  templateUrl: './defer-load.component.html',
17
17
  styleUrls: ['./defer-load.component.scss'],
18
- standalone: true,
19
18
  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
20
19
  })
21
20
  export class DeferLoadComponent implements OnInit, OnDestroy, OnChanges {
22
21
  @Input() pConn$: typeof PConnect;
23
- @Input() loadData$: any;
22
+ @Input() formGroup$;
24
23
  @Input() name;
25
24
 
26
- componentName$: string;
27
- loadedPConn$: any;
25
+ childComponentPConnect: typeof PConnect;
28
26
  bShowDefer$ = false;
29
27
 
30
28
  angularPConnectData: AngularPConnectData = {};
@@ -38,6 +36,7 @@ export class DeferLoadComponent implements OnInit, OnDestroy, OnChanges {
38
36
  CASE: any;
39
37
  PAGE: any;
40
38
  DATA: any;
39
+ lastUpdateCaseTime;
41
40
  constructor(private angularPConnect: AngularPConnectService) {
42
41
  this.constants = PCore.getConstants();
43
42
  }
@@ -45,7 +44,7 @@ export class DeferLoadComponent implements OnInit, OnDestroy, OnChanges {
45
44
  ngOnInit(): void {
46
45
  this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
47
46
  // The below call is causing an error while creating/opening a case, hence commenting it out
48
- // this.loadActiveTab();
47
+ this.updateSelf();
49
48
  }
50
49
 
51
50
  ngOnDestroy(): void {
@@ -58,13 +57,24 @@ export class DeferLoadComponent implements OnInit, OnDestroy, OnChanges {
58
57
  // Should always check the bridge to see if the component should
59
58
  // update itself (re-render)
60
59
  const theRequestedAssignment = this.pConn$.getValue(PCore.getConstants().CASE_INFO.ASSIGNMENT_LABEL);
61
- if (theRequestedAssignment !== this.currentLoadedAssignment) {
60
+ const lastUpdateCaseTime = this.pConn$.getValue('caseInfo.lastUpdateTime');
61
+ if (
62
+ (theRequestedAssignment && theRequestedAssignment !== this.currentLoadedAssignment) ||
63
+ (lastUpdateCaseTime && lastUpdateCaseTime !== this.lastUpdateCaseTime)
64
+ ) {
62
65
  this.currentLoadedAssignment = theRequestedAssignment;
63
- this.loadActiveTab();
66
+ this.lastUpdateCaseTime = lastUpdateCaseTime;
67
+ this.updateSelf();
64
68
  }
65
69
  }
66
70
 
67
- ngOnChanges() {
71
+ ngOnChanges(changes: SimpleChanges) {
72
+ if (!Object.values(changes).every(val => val.firstChange === true)) {
73
+ this.updateSelf();
74
+ }
75
+ }
76
+
77
+ updateSelf() {
68
78
  this.loadViewCaseID = this.pConn$.getValue(this.constants.PZINSKEY) || this.pConn$.getValue(this.constants.CASE_INFO.CASE_INFO_ID);
69
79
  let containerItemData;
70
80
  const targetName = this.pConn$.getTarget();
@@ -90,7 +100,7 @@ export class DeferLoadComponent implements OnInit, OnDestroy, OnChanges {
90
100
 
91
101
  getViewOptions = () => ({
92
102
  viewContext: this.resourceType,
93
- pageClass: this.loadViewCaseID ? '' : this.pConn$.getDataObject().pyPortal.classID,
103
+ pageClass: this.loadViewCaseID ? '' : this.pConn$.getDataObject()?.pyPortal?.classID,
94
104
  container: this.isContainerPreview ? 'preview' : undefined,
95
105
  containerName: this.isContainerPreview ? 'preview' : undefined,
96
106
  updateData: this.isContainerPreview
@@ -117,8 +127,9 @@ export class DeferLoadComponent implements OnInit, OnDestroy, OnChanges {
117
127
  };
118
128
  const configObject = PCore.createPConnect(config);
119
129
  configObject.getPConnect().setInheritedProp('displayMode', 'DISPLAY_ONLY');
120
- this.loadedPConn$ = ReferenceComponent.normalizePConn(configObject.getPConnect());
121
- this.componentName$ = this.loadedPConn$.getComponentName();
130
+
131
+ this.childComponentPConnect = ReferenceComponent.normalizePConn(configObject.getPConnect());
132
+
122
133
  if (this.deferLoadId) {
123
134
  PCore.getDeferLoadManager().stop(this.deferLoadId, this.pConn$.getContextName());
124
135
  }
@@ -147,6 +158,8 @@ export class DeferLoadComponent implements OnInit, OnDestroy, OnChanges {
147
158
  console.error('Cannot load the defer loaded view without container information');
148
159
  }
149
160
  } else if (this.resourceType === this.PAGE) {
161
+ if (!this.loadViewCaseID) return;
162
+
150
163
  // Rendering defer loaded tabs in case/ page context
151
164
  this.pConn$
152
165
  .getActionsApi()
@@ -5,7 +5,6 @@ import { CommonModule } from '@angular/common';
5
5
  selector: 'app-error-boundary',
6
6
  templateUrl: './error-boundary.component.html',
7
7
  styleUrls: ['./error-boundary.component.scss'],
8
- standalone: true,
9
8
  imports: [CommonModule]
10
9
  })
11
10
  export class ErrorBoundaryComponent {
@@ -12,25 +12,17 @@
12
12
  </div>
13
13
  </div>
14
14
  <div class="{{ _getVBodyClass(i) }}">
15
- <ng-container *ngIf="mainStep?.steps">
16
- <ul style="padding-inline-start: 0rem; margin-left: -7px">
17
- <li *ngFor="let subStep of mainStep.steps" class="psdk-sub-step-list">
18
- <div style="display: inline-flex">
19
- <img *ngIf="subStep.visited_status == 'current'" class="psdk-current-svg-icon" src="{{ svgCurrent$ }}" />
20
- <img *ngIf="subStep.visited_status != 'current'" class="psdk-not-current-svg-icon" src="{{ svgNotCurrent$ }}" />
21
- <label *ngIf="subStep.visited_status == 'current'" class="psdk-sub-step-current">{{ subStep.name }}</label>
22
- <label *ngIf="subStep.visited_status != 'current'" class="psdk-sub-step-not-current">{{ subStep.name }}</label>
23
- </div>
24
- <div *ngIf="subStep.visited_status == 'current'">
25
- <component-mapper
26
- name="AssignmentCard"
27
- [props]="{ pConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$ }"
28
- [parent]="this"
29
- [outputEvents]="{ actionButtonClick: onActionButtonClick }"
30
- ></component-mapper>
31
- </div>
32
- </li>
33
- </ul>
15
+ <ng-container *ngIf="mainStep?.steps && mainStep.visited_status == 'current'">
16
+ <div *ngFor="let subStep of mainStep.steps">
17
+ <div *ngIf="subStep.visited_status == 'current'">
18
+ <component-mapper
19
+ name="AssignmentCard"
20
+ [props]="{ pConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$ }"
21
+ [parent]="this"
22
+ [outputEvents]="{ actionButtonClick: onActionButtonClick }"
23
+ ></component-mapper>
24
+ </div>
25
+ </div>
34
26
  </ng-container>
35
27
 
36
28
  <ng-container *ngIf="!mainStep?.steps && mainStep.visited_status == 'current'">
@@ -64,25 +56,17 @@
64
56
  </ng-container>
65
57
  </div>
66
58
  <div *ngFor="let mainStep of arNavigationSteps$" class="psdk-horizontal-stepper-body">
67
- <ng-container *ngIf="mainStep?.steps">
68
- <ul style="padding-inline-start: 0rem; margin-left: 35px">
69
- <li *ngFor="let subStep of mainStep.steps" class="psdk-sub-step-list">
70
- <div style="display: inline-flex">
71
- <img *ngIf="subStep.visited_status == 'current'" class="psdk-current-svg-icon" src="{{ svgCurrent$ }}" />
72
- <img *ngIf="subStep.visited_status != 'current'" class="psdk-not-current-svg-icon" src="{{ svgNotCurrent$ }}" />
73
- <label *ngIf="subStep.visited_status == 'current'" class="psdk-sub-step-current">{{ subStep.name }}</label>
74
- <label *ngIf="subStep.visited_status != 'current'" class="psdk-sub-step-not-current">{{ subStep.name }}</label>
75
- </div>
76
- <div *ngIf="subStep.visited_status == 'current'">
77
- <component-mapper
78
- name="AssignmentCard"
79
- [props]="{ pConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$ }"
80
- [parent]="this"
81
- [outputEvents]="{ actionButtonClick: onActionButtonClick }"
82
- ></component-mapper>
83
- </div>
84
- </li>
85
- </ul>
59
+ <ng-container *ngIf="mainStep?.steps && mainStep.visited_status == 'current'">
60
+ <div *ngFor="let subStep of mainStep.steps">
61
+ <div *ngIf="subStep.visited_status == 'current'">
62
+ <component-mapper
63
+ name="AssignmentCard"
64
+ [props]="{ pConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$ }"
65
+ [parent]="this"
66
+ [outputEvents]="{ actionButtonClick: onActionButtonClick }"
67
+ ></component-mapper>
68
+ </div>
69
+ </div>
86
70
  </ng-container>
87
71
 
88
72
  <ng-container *ngIf="!mainStep?.steps && mainStep.visited_status == 'current'">