@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,45 +1,47 @@
1
- <div class="psdk-user-reference">
1
+ <div>
2
2
  <div *ngIf="displayMode$; else noDisplayMode">
3
3
  <component-mapper name="FieldValueList" [props]="{ label$, value$, displayMode$ }"></component-mapper>
4
4
  </div>
5
5
  <ng-template #noDisplayMode>
6
- <div *ngIf="type === 'operator'">
7
- <component-mapper name="Operator" [props]="{ pConn$ }"></component-mapper>
8
- </div>
9
- <div [formGroup]="formGroup$" *ngIf="type === 'dropdown'">
10
- <mat-form-field class="psdk-full-width" subscriptSizing="dynamic" [hintLabel]="helperText">
11
- <mat-select [required]="bRequired$" [formControl]="fieldControl" [attr.data-test-id]="testId" (selectionChange)="fieldOnChange($event)">
12
- <mat-option *ngFor="let opt of options$" [value]="opt.key">
13
- {{ opt.value }}
14
- </mat-option>
15
- </mat-select>
16
- <mat-label>{{ label$ }}</mat-label>
17
- <mat-error *ngIf="fieldControl.invalid">
18
- {{ getErrorMessage() }}
19
- </mat-error>
20
- </mat-form-field>
21
- </div>
22
- <div [formGroup]="formGroup$" *ngIf="type === 'searchbox'">
23
- <mat-form-field class="psdk-full-width" subscriptSizing="dynamic" [hintLabel]="helperText">
24
- <mat-label>{{ label$ }}</mat-label>
25
- <input
26
- matInput
27
- [placeholder]="placeholder"
28
- [formControl]="fieldControl"
29
- [required]="bRequired$"
30
- [matAutocomplete]="auto"
31
- [attr.data-test-id]="testId"
32
- (blur)="fieldOnBlur($event)"
33
- />
34
- <mat-autocomplete #auto="matAutocomplete" autoActiveFirstOption (optionSelected)="optionChanged($event)">
35
- <mat-option *ngFor="let opt of filteredOptions | async" [value]="opt.value">
36
- <span>{{ opt.value }}</span>
37
- </mat-option>
38
- </mat-autocomplete>
39
- <mat-error *ngIf="fieldControl.invalid">
40
- {{ getErrorMessage() }}
41
- </mat-error>
42
- </mat-form-field>
6
+ <div class="psdk-user-reference">
7
+ <div *ngIf="this.userID$ && type === 'operator'">
8
+ <component-mapper name="Operator" [props]="{ pConn$, name$: userName$ }"></component-mapper>
9
+ </div>
10
+ <div [formGroup]="formGroup$" *ngIf="type === 'dropdown'">
11
+ <mat-form-field class="psdk-full-width" subscriptSizing="dynamic" [hintLabel]="helperText">
12
+ <mat-select [required]="bRequired$" [formControl]="fieldControl" [attr.data-test-id]="testId" (selectionChange)="fieldOnChange($event)">
13
+ <mat-option *ngFor="let opt of options$" [value]="opt.key">
14
+ {{ opt.value }}
15
+ </mat-option>
16
+ </mat-select>
17
+ <mat-label>{{ label$ }}</mat-label>
18
+ <mat-error *ngIf="fieldControl.invalid">
19
+ {{ getErrorMessage() }}
20
+ </mat-error>
21
+ </mat-form-field>
22
+ </div>
23
+ <div [formGroup]="formGroup$" *ngIf="type === 'searchbox'">
24
+ <mat-form-field class="psdk-full-width" subscriptSizing="dynamic" [hintLabel]="helperText">
25
+ <mat-label>{{ label$ }}</mat-label>
26
+ <input
27
+ matInput
28
+ [placeholder]="placeholder"
29
+ [formControl]="fieldControl"
30
+ [required]="bRequired$"
31
+ [matAutocomplete]="auto"
32
+ [attr.data-test-id]="testId"
33
+ (blur)="fieldOnBlur($event)"
34
+ />
35
+ <mat-autocomplete #auto="matAutocomplete" autoActiveFirstOption (optionSelected)="optionChanged($event)">
36
+ <mat-option *ngFor="let opt of filteredOptions | async" [value]="opt.value">
37
+ <span>{{ opt.value }}</span>
38
+ </mat-option>
39
+ </mat-autocomplete>
40
+ <mat-error *ngIf="fieldControl.invalid">
41
+ {{ getErrorMessage() }}
42
+ </mat-error>
43
+ </mat-form-field>
44
+ </div>
43
45
  </div>
44
46
  </ng-template>
45
47
  </div>
@@ -1,6 +1,5 @@
1
1
  .psdk-user-reference {
2
2
  font-size: 0.8rem;
3
- color: var(--app-neutral-color);
4
3
  }
5
4
  .psdk-single {
6
5
  flex: 1;
@@ -30,7 +30,6 @@ interface UserReferenceProps extends Omit<PConnFieldProps, 'value'> {
30
30
  selector: 'app-user-reference',
31
31
  templateUrl: './user-reference.component.html',
32
32
  styleUrls: ['./user-reference.component.scss'],
33
- standalone: true,
34
33
  imports: [
35
34
  CommonModule,
36
35
  ReactiveFormsModule,
@@ -65,7 +64,7 @@ export class UserReferenceComponent implements OnInit, OnDestroy {
65
64
  filterValue = '';
66
65
 
67
66
  fieldControl = new FormControl('', null);
68
- actionsApi: Object;
67
+ actionsApi: object;
69
68
  propName: string;
70
69
  onRecordChange: any;
71
70
 
@@ -168,7 +167,11 @@ export class UserReferenceComponent implements OnInit, OnDestroy {
168
167
  this.placeholder = placeholder || '';
169
168
  this.displayMode$ = displayMode;
170
169
 
171
- this.value$ = this.pConn$.getConfigProps()?.value;
170
+ if (value && typeof value === 'object') {
171
+ this.value$ = value.userName ? value.userName : '';
172
+ } else {
173
+ this.value$ = value || '';
174
+ }
172
175
 
173
176
  const { readOnly, required } = props;
174
177
  [this.bReadonly$, this.bRequired$] = [readOnly, required].map(prop => prop === true || (typeof prop === 'string' && prop === 'true'));
@@ -184,12 +187,8 @@ export class UserReferenceComponent implements OnInit, OnDestroy {
184
187
  } else {
185
188
  // if same user ref field is referred in view as editable & readonly formatted text
186
189
  // referenced users won't be available, so get user details from dx api
187
- const { getOperatorDetails } = PCore.getUserApi();
188
- getOperatorDetails(this.userID$).then((resp: any) => {
189
- if (resp.data && resp.data.pyOperatorInfo && resp.data.pyOperatorInfo.pyUserName) {
190
- this.userName$ = resp.data.pyOperatorInfo.pyUserName;
191
- }
192
- });
190
+
191
+ this.userName$ = await getUserName(this.pConn$, this.userID$);
193
192
  }
194
193
  } else if (displayAs === DROPDOWN_LIST || displayAs === SEARCH_BOX) {
195
194
  const queryPayload = {
@@ -257,3 +256,65 @@ export class UserReferenceComponent implements OnInit, OnDestroy {
257
256
  return errMessage;
258
257
  }
259
258
  }
259
+
260
+ const buildColumnForDisplayValue = dataObj => {
261
+ if (dataObj.columns) {
262
+ dataObj.columns = dataObj.columns.map(column => {
263
+ const tempColObj = { ...column };
264
+ if (tempColObj.key === 'true') {
265
+ tempColObj.useForSearch = true;
266
+ } else {
267
+ tempColObj.useForSearch = false;
268
+ }
269
+ return tempColObj;
270
+ });
271
+ }
272
+ };
273
+
274
+ function getUserName(pConn, userId = ''): Promise<string> {
275
+ return new Promise(resolve => {
276
+ const { parameters = {}, referenceList } = pConn.getConfigProps();
277
+ const contextName = pConn.getContextName();
278
+
279
+ const OPERATORS_DP = referenceList || PCore.getEnvironmentInfo().getDefaultOperatorDP() || '';
280
+
281
+ const columns = [
282
+ {
283
+ value: 'pyUserName',
284
+ display: 'true',
285
+ useForSearch: true,
286
+ primary: 'true'
287
+ },
288
+ {
289
+ value: 'pyUserIdentifier',
290
+ setProperty: 'Associated property',
291
+ key: 'true',
292
+ display: 'true',
293
+ secondary: 'true',
294
+ useForSearch: true
295
+ }
296
+ ];
297
+
298
+ const dataConfig: any = {
299
+ dataSource: OPERATORS_DP,
300
+ parameters,
301
+ matchPosition: 'equals',
302
+ listType: 'datapage',
303
+ columns,
304
+ cacheLifeSpan: 'form',
305
+ deferDatasource: false,
306
+ maxResultsDisplay: '1',
307
+ ignoreCase: true
308
+ };
309
+
310
+ PCore.getDataApi()
311
+ .init(dataConfig, contextName)
312
+ .then(dataApiObj => {
313
+ buildColumnForDisplayValue(dataApiObj);
314
+ dataApiObj.registerForBufferedCall({ waitTime: 50 });
315
+ dataApiObj.fetchData(userId).then((response: any) => {
316
+ resolve(response.data?.[0]?.pyUserName || userId);
317
+ });
318
+ });
319
+ });
320
+ }
@@ -1,7 +1,7 @@
1
1
  <div style="text-align: left" class="psdk-flow-container-top">
2
2
  <div *ngIf="!bShowConfirm">
3
3
  <div *ngIf="!todo_showTodo$">
4
- <h2>{{ containerName$ }}</h2>
4
+ <h2 *ngIf="!isMultiStep">{{ containerName$ }}</h2>
5
5
  <div *ngIf="banners?.length">
6
6
  <component-mapper name="AlertBanner" [props]="{ banners }"></component-mapper>
7
7
  </div>
@@ -32,7 +32,7 @@
32
32
  </div>
33
33
  <div *ngIf="bHasCaseMessages$">
34
34
  <mat-card class="psdk-message-card">
35
- <div style="display: flex; flex-direction: row">
35
+ <div style="display: flex; flex-direction: row; align-items: center">
36
36
  <div><img class="psdk-icon" src="{{ checkSvg$ }}" /></div>
37
37
  <div>{{ caseMessages$ }}</div>
38
38
  </div>
@@ -6,7 +6,7 @@ import { publicConstants } from '@pega/pcore-pconnect-typedefs/constants';
6
6
  import { ProgressSpinnerService } from '@pega/angular-sdk-components';
7
7
  import { ReferenceComponent } from '@pega/angular-sdk-components';
8
8
  import { Utils } from '@pega/angular-sdk-components';
9
- import { getToDoAssignments, showBanner } from './helpers';
9
+ import { getToDoAssignments, hasAssignments, showBanner } from './helpers';
10
10
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
11
11
  import { FlowContainerBaseComponent } from '@pega/angular-sdk-components';
12
12
 
@@ -29,7 +29,6 @@ interface FlowContainerProps {
29
29
  templateUrl: './flow-container.component.html',
30
30
  styleUrls: ['./flow-container.component.scss'],
31
31
  providers: [Utils],
32
- standalone: true,
33
32
  imports: [CommonModule, MatCardModule, forwardRef(() => ComponentMapperComponent)]
34
33
  })
35
34
  export class FlowContainerComponent extends FlowContainerBaseComponent implements OnInit, OnDestroy {
@@ -71,6 +70,7 @@ export class FlowContainerComponent extends FlowContainerBaseComponent implement
71
70
  // itemKey: string = ""; // JA - this is what Nebula/Constellation uses to pass to finishAssignment, navigateToStep
72
71
 
73
72
  pConnectOfActiveContainerItem;
73
+ isMultiStep: any;
74
74
 
75
75
  constructor(
76
76
  injector: Injector,
@@ -90,8 +90,7 @@ export class FlowContainerComponent extends FlowContainerBaseComponent implement
90
90
  this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
91
91
 
92
92
  this.localizedVal = PCore.getLocaleUtils().getLocaleValue;
93
- const caseInfo = this.pConn$.getCaseInfo();
94
- this.localeReference = `${caseInfo?.getClassName()}!CASE!${caseInfo.getName()}`.toUpperCase();
93
+ this.localeReference = this.pConn$?.getCaseLocaleReference();
95
94
 
96
95
  // Then, continue on with other initialization
97
96
 
@@ -121,6 +120,14 @@ export class FlowContainerComponent extends FlowContainerBaseComponent implement
121
120
  },
122
121
  'cancelPressed'
123
122
  );
123
+
124
+ PCore.getPubSubUtils().subscribe(
125
+ 'clearBannerMessages',
126
+ () => {
127
+ this.banners = [];
128
+ },
129
+ 'clearBannerMessages'
130
+ );
124
131
  }
125
132
 
126
133
  ngOnDestroy() {
@@ -131,6 +138,8 @@ export class FlowContainerComponent extends FlowContainerBaseComponent implement
131
138
  PCore.getPubSubUtils().unsubscribe(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL, 'cancelAssignment');
132
139
 
133
140
  PCore.getPubSubUtils().unsubscribe('cancelPressed', 'cancelPressed');
141
+
142
+ PCore.getPubSubUtils().unsubscribe('clearBannerMessages', 'clearBannerMessages');
134
143
  }
135
144
 
136
145
  handleCancel() {
@@ -155,13 +164,15 @@ export class FlowContainerComponent extends FlowContainerBaseComponent implement
155
164
  const caseViewModeFromProps = this.angularPConnect.getComponentProp(this, 'caseViewMode');
156
165
  const caseViewModeFromRedux = pConn.getValue('context_data.caseViewMode', '');
157
166
 
167
+ const completeProps = this.angularPConnect.getCurrentCompleteProps(this) as FlowContainerProps;
168
+
158
169
  // ONLY call updateSelf when the component should update
159
170
  // AND removing the "gate" that was put there since shouldComponentUpdate
160
171
  // should be the real "gate"
172
+
161
173
  if (bUpdateSelf || caseViewModeFromProps !== caseViewModeFromRedux) {
162
174
  // don't want to redraw the flow container when there are page messages, because
163
175
  // the redraw causes us to loose the errors on the elements
164
- const completeProps = this.angularPConnect.getCurrentCompleteProps(this) as FlowContainerProps;
165
176
  if (!completeProps.pageMessages || completeProps.pageMessages.length == 0) {
166
177
  // with a cancel, need to timeout so todo will update correctly
167
178
  if (this.bHasCancel) {
@@ -172,10 +183,10 @@ export class FlowContainerComponent extends FlowContainerBaseComponent implement
172
183
  } else {
173
184
  this.updateSelf();
174
185
  }
175
- } else {
176
- this.showPageMessages(completeProps);
177
186
  }
178
187
  }
188
+
189
+ this.showPageMessages(completeProps);
179
190
  }
180
191
 
181
192
  showPageMessages(completeProps: FlowContainerProps) {
@@ -191,9 +202,9 @@ export class FlowContainerComponent extends FlowContainerBaseComponent implement
191
202
  const kid = this.pConn$.getChildren()[0];
192
203
  const todoKid = kid.getPConnect().getChildren()[0];
193
204
 
194
- this.todo_pConn$ = todoKid.getPConnect();
205
+ this.todo_pConn$ = todoKid?.getPConnect();
195
206
 
196
- return true;
207
+ return !!this.todo_pConn$;
197
208
  }
198
209
 
199
210
  return !(caseViewMode && caseViewMode === 'perform');
@@ -270,48 +281,14 @@ export class FlowContainerComponent extends FlowContainerBaseComponent implement
270
281
 
271
282
  // this.containerName$ = oWorkMeta["name"];
272
283
  if (bLoadChildren && oWorkData) {
273
- this.containerName$ = this.localizedVal(this.getActiveViewLabel() || oWorkData.caseInfo.assignments[0].name, undefined, this.localeReference);
284
+ this.containerName$ = this.localizedVal(this.getActiveViewLabel() || oWorkData.caseInfo.assignments?.[0].name, undefined, this.localeReference);
285
+ this.isMultiStep = this.utils.getBooleanValue(oWorkData.caseInfo.assignments?.[0].isMultiStep);
274
286
  }
275
287
 
276
288
  // turn off spinner
277
289
  this.psService.sendMessage(false);
278
290
  }
279
291
 
280
- hasAssignments() {
281
- let hasAssignments = false;
282
- const assignmentsList = this.pConn$.getValue(this.pCoreConstants.CASE_INFO.D_CASE_ASSIGNMENTS_RESULTS);
283
- // const thisOperator = PCore.getEnvironmentInfo().getOperatorIdentifier();
284
- // 8.7 includes assignments in Assignments List that may be assigned to
285
- // a different operator. So, see if there are any assignments for
286
- // the current operator
287
- const isEmbedded = window.location.href.includes('embedded');
288
- let bAssignmentsForThisOperator = false;
289
-
290
- if (isEmbedded) {
291
- const thisOperator = PCore.getEnvironmentInfo().getOperatorIdentifier();
292
- for (const assignment of assignmentsList) {
293
- if (assignment.assigneeInfo.ID === thisOperator) {
294
- bAssignmentsForThisOperator = true;
295
- }
296
- }
297
- } else {
298
- bAssignmentsForThisOperator = true;
299
- }
300
-
301
- // Bail if there is no assignmentsList
302
- if (!assignmentsList) {
303
- return hasAssignments;
304
- }
305
-
306
- const hasChildCaseAssignments = this.hasChildCaseAssignments();
307
-
308
- if (bAssignmentsForThisOperator || hasChildCaseAssignments || this.isCaseWideLocalAction()) {
309
- hasAssignments = true;
310
- }
311
-
312
- return hasAssignments;
313
- }
314
-
315
292
  isCaseWideLocalAction() {
316
293
  const actionID = this.pConn$.getValue(this.pCoreConstants.CASE_INFO.ACTIVE_ACTION_ID);
317
294
  const caseActions = this.pConn$.getValue(this.pCoreConstants.CASE_INFO.AVAILABLEACTIONS);
@@ -461,7 +438,7 @@ export class FlowContainerComponent extends FlowContainerBaseComponent implement
461
438
  this.caseMessages$ = this.localizedVal(this.pConn$.getValue('caseMessages'), this.localeCategory);
462
439
  // caseMessages's behavior has changed in 24.2, and hence it doesn't let Optional Action work.
463
440
  // Changing the below condition for now. Was: (theCaseMessages || !hasAssignments())
464
- if (!this.hasAssignments()) {
441
+ if (!hasAssignments(this.pConn$)) {
465
442
  this.bHasCaseMessages$ = true;
466
443
  this.bShowConfirm = true;
467
444
  this.checkSvg$ = this.utils.getImageSrc('check', this.utils.getSDKStaticContentUrl());
@@ -471,9 +448,6 @@ export class FlowContainerComponent extends FlowContainerBaseComponent implement
471
448
  this.caseMessages$ = this.localizedVal('Thank you! The next step in this case has been routed appropriately.', this.localeCategory);
472
449
  }
473
450
 
474
- // publish this "assignmentFinished" for mashup, need to get approved as a standard
475
- PCore.getPubSubUtils().publish('assignmentFinished');
476
-
477
451
  this.psService.sendMessage(false);
478
452
  } else {
479
453
  this.bHasCaseMessages$ = false;
@@ -491,7 +465,7 @@ export class FlowContainerComponent extends FlowContainerBaseComponent implement
491
465
  // @ts-ignore - Property 'getLoadingStatus' is private and only accessible within class 'C11nEnv'
492
466
  loadingInfo = this.pConn$.getLoadingStatus();
493
467
  } catch (ex) {
494
- /* empty */
468
+ console.log(ex);
495
469
  }
496
470
 
497
471
  // this check in routingInfo, mimic Nebula/Constellation (React) to check and get the internals of the
@@ -513,7 +487,6 @@ export class FlowContainerComponent extends FlowContainerBaseComponent implement
513
487
  }
514
488
  });
515
489
 
516
- // eslint-disable-next-line sonarjs/no-collapsible-if
517
490
  if (currentOrder.length > 0) {
518
491
  if (currentItems[key] && currentItems[key].view && type === 'single' && Object.keys(currentItems[key].view).length > 0) {
519
492
  // when we get here, it it because the flow action data has changed
@@ -28,12 +28,12 @@ function getChildCaseAssignments(pConnect) {
28
28
  return allAssignments;
29
29
  }
30
30
 
31
- function hasAssignments(pConnect) {
31
+ export function hasAssignments(pConnect) {
32
32
  const { CASE_INFO } = PCore.getConstants();
33
33
  const assignments = pConnect.getValue(CASE_INFO.D_CASE_ASSIGNMENTS_RESULTS);
34
34
  const childCasesAssignments = getChildCaseAssignments(pConnect);
35
35
 
36
- return assignments || childCasesAssignments || isCaseWideLocalAction(pConnect);
36
+ return assignments || childCasesAssignments?.length || isCaseWideLocalAction(pConnect);
37
37
  }
38
38
 
39
39
  export const showBanner = getPConnect => {
@@ -14,7 +14,6 @@ import { FormGroup } from '@angular/forms';
14
14
  selector: 'app-hybrid-view-container',
15
15
  templateUrl: './hybrid-view-container.component.html',
16
16
  styleUrls: ['./hybrid-view-container.component.scss'],
17
- standalone: true,
18
17
  imports: [CommonModule]
19
18
  })
20
19
  export class HybridViewContainerComponent {
@@ -1,4 +1,4 @@
1
- <div id="dialog" *ngIf="bShowModal$ && bShowAsModal$" class="psdk-dialog-background">
1
+ <div id="dialog" *ngIf="bShowModal$" class="psdk-dialog-background">
2
2
  <div class="psdk-modal-view-container-top" id="{{ buildName$ }}">
3
3
  <h3 *ngIf="title$ != ''">{{ title$ }}</h3>
4
4
  <component-mapper
@@ -15,16 +15,6 @@
15
15
  </div>
16
16
  </div>
17
17
 
18
- <div *ngIf="bShowModal$ && !bShowAsModal$">
19
- <div id="{{ buildName$ }}">
20
- <h3 *ngIf="title$ != ''">{{ title$ }}</h3>
21
- <component-mapper
22
- name="Assignment"
23
- [props]="{ pConn$: createdViewPConn$, formGroup$, arChildren$, itemKey$, isCreateStage$: true, updateToken$ }"
24
- ></component-mapper>
25
- </div>
26
- </div>
27
-
28
18
  <div *ngIf="bShowCancelAlert$">
29
19
  <component-mapper
30
20
  name="CancelAlert"
@@ -18,12 +18,10 @@ import { ReferenceComponent } from '@pega/angular-sdk-components';
18
18
  selector: 'app-modal-view-container',
19
19
  templateUrl: './modal-view-container.component.html',
20
20
  styleUrls: ['./modal-view-container.component.scss'],
21
- standalone: true,
22
21
  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
23
22
  })
24
23
  export class ModalViewContainerComponent implements OnInit, OnDestroy {
25
24
  @Input() pConn$: typeof PConnect;
26
- @Input() displayOnlyFA$: boolean;
27
25
 
28
26
  // for when non modal
29
27
  @Output() modalVisibleChange = new EventEmitter<boolean>();
@@ -32,17 +30,16 @@ export class ModalViewContainerComponent implements OnInit, OnDestroy {
32
30
  angularPConnectData: AngularPConnectData = {};
33
31
 
34
32
  arChildren$: any[];
35
- stateProps$: Object;
33
+ stateProps$: object;
36
34
  banners: any;
37
35
  templateName$: string;
38
36
  buildName$: string;
39
37
  context$: string;
40
38
  title$ = '';
41
39
  bShowModal$ = false;
42
- bShowAsModal$ = true;
43
40
  itemKey$: string;
44
41
  formGroup$: FormGroup;
45
- oCaseInfo: Object = {};
42
+ oCaseInfo: object = {};
46
43
 
47
44
  // for causing a change on assignment
48
45
  updateToken$ = 0;
@@ -73,11 +70,6 @@ export class ModalViewContainerComponent implements OnInit, OnDestroy {
73
70
  }
74
71
 
75
72
  ngOnInit(): void {
76
- if (this.displayOnlyFA$) {
77
- // for when non modal
78
- this.bShowAsModal$ = false;
79
- }
80
-
81
73
  // First thing in initialization is registering and subscribing to the AngularPConnect service
82
74
  this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
83
75
 
@@ -142,7 +134,7 @@ export class ModalViewContainerComponent implements OnInit, OnDestroy {
142
134
  // @ts-ignore - Property 'getLoadingStatus' is private and only accessible within class 'C11nEnv'
143
135
  loadingInfo = this.pConn$.getLoadingStatus();
144
136
  } catch (ex) {
145
- /* empty */
137
+ console.log(ex);
146
138
  }
147
139
  // const configProps = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
148
140
  this.stateProps$ = this.pConn$.getStateProps();
@@ -242,12 +234,7 @@ export class ModalViewContainerComponent implements OnInit, OnDestroy {
242
234
  this.title$ =
243
235
  isDataObject || this.isMultiRecord
244
236
  ? this.getModalHeading(dataObjectAction)
245
- : this.determineModalHeaderByAction(
246
- actionName,
247
- caseTypeName,
248
- ID,
249
- `${theNewCaseInfo?.getClassName()}!CASE!${theNewCaseInfo.getName()}`.toUpperCase()
250
- );
237
+ : this.determineModalHeaderByAction(actionName, caseTypeName, ID, this.createdViewPConn$?.getCaseLocaleReference());
251
238
 
252
239
  const bIsRefComponent = this.checkIfRefComponent(newComp);
253
240
 
@@ -372,7 +359,7 @@ export class ModalViewContainerComponent implements OnInit, OnDestroy {
372
359
  return {};
373
360
  }
374
361
 
375
- compareCaseInfoIsDifferent(oCurrentCaseInfo: Object): boolean {
362
+ compareCaseInfoIsDifferent(oCurrentCaseInfo: object): boolean {
376
363
  let bRet = false;
377
364
 
378
365
  // fast-deep-equal version
@@ -10,13 +10,46 @@ export const addContainerItem = pConnect => {
10
10
  export const configureBrowserBookmark = pConnect => {
11
11
  const context = pConnect.getContextName();
12
12
  const containerName = pConnect.getContainerName();
13
+ const envInfo = PCore.getEnvironmentInfo();
14
+ const { APP } = PCore.getConstants();
15
+
13
16
  const navPages = pConnect.getValue('pyPortal.pyPrimaryNavPages');
14
- const defaultViewLabel = Array.isArray(navPages) && navPages[0] ? navPages[0].pyLabel : '';
17
+ let ruleName = '';
18
+ let className = '';
19
+ let defaultViewLabel = '';
20
+
21
+ const isNextGenLandingPageRouting = (envInfo?.environmentInfoObject as any)?.pyExecutionRuntimeName === (APP as any).INFINITY_RUNTIME;
22
+
23
+ if (Array.isArray(navPages) && navPages.length > 0) {
24
+ const firstNavPage = navPages[0];
25
+ const nestedNavPage = firstNavPage.NavigationPages?.[0];
26
+
27
+ if (isNextGenLandingPageRouting) {
28
+ if (nestedNavPage?.pyRuleName) {
29
+ ruleName = nestedNavPage.pyRuleName;
30
+ className = nestedNavPage.pyClassName || '';
31
+ } else if (firstNavPage?.pyRuleName) {
32
+ ruleName = firstNavPage.pyRuleName;
33
+ className = firstNavPage.pyClassName || '';
34
+ } else if (nestedNavPage?.pyLabel) {
35
+ defaultViewLabel = nestedNavPage.pyLabel;
36
+ } else if (firstNavPage?.pyLabel) {
37
+ defaultViewLabel = firstNavPage.pyLabel;
38
+ }
39
+ } else if (nestedNavPage?.pyLabel) {
40
+ defaultViewLabel = nestedNavPage.pyLabel;
41
+ } else if (firstNavPage?.pyLabel) {
42
+ defaultViewLabel = firstNavPage.pyLabel;
43
+ }
44
+ }
45
+
15
46
  PCore.configureForBrowserBookmark({
16
47
  context,
17
48
  containerName,
18
49
  acName: containerName,
19
50
  semanticURL: '',
20
- defaultViewLabel
51
+ defaultViewLabel,
52
+ ruleName,
53
+ className
21
54
  });
22
55
  };
@@ -28,7 +28,6 @@ interface ViewContainerProps {
28
28
  selector: 'app-view-container',
29
29
  templateUrl: './view-container.component.html',
30
30
  styleUrls: ['./view-container.component.scss'],
31
- standalone: true,
32
31
  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
33
32
  })
34
33
  export class ViewContainerComponent implements OnInit, OnDestroy {
@@ -162,7 +161,7 @@ export class ViewContainerComponent implements OnInit, OnDestroy {
162
161
 
163
162
  this.psService.sendMessage(loadingInfo);
164
163
  } catch (ex) {
165
- /* empty */
164
+ console.log(ex);
166
165
  }
167
166
 
168
167
  // const buildName = this.buildName();
@@ -1,12 +1,17 @@
1
- <mat-grid-list cols="2" rowHeight="6.25rem">
2
- <mat-grid-tile>
3
- <button *ngFor="let aButton of arSecondaryButtons$" mat-raised-button color="secondary" (click)="buttonClick(aButton.jsAction, 'secondary')">
1
+ <div class="button-bar" *ngIf="arMainButtons$ && arSecondaryButtons$">
2
+ <div class="left-group">
3
+ <button
4
+ *ngFor="let aButton of arSecondaryButtons$"
5
+ mat-stroked-button
6
+ class="secondary-button"
7
+ (click)="buttonClick(aButton.jsAction, 'secondary')"
8
+ >
4
9
  {{ localizedVal(aButton.name, localeCategory) }}
5
10
  </button>
6
- </mat-grid-tile>
7
- <mat-grid-tile>
8
- <button *ngFor="let aButton of arMainButtons$" mat-raised-button color="primary" (click)="buttonClick(aButton.jsAction, 'primary')">
11
+ </div>
12
+ <div class="right-group">
13
+ <button *ngFor="let aButton of arMainButtons$" mat-flat-button (click)="buttonClick(aButton.jsAction, 'primary')">
9
14
  {{ localizedVal(aButton.name, localeCategory) }}
10
15
  </button>
11
- </mat-grid-tile>
12
- </mat-grid-list>
16
+ </div>
17
+ </div>
@@ -0,0 +1,23 @@
1
+ .button-bar {
2
+ box-sizing: border-box;
3
+ display: flex;
4
+ flex-direction: row;
5
+ align-items: center;
6
+ width: 100%;
7
+ padding: 1rem;
8
+ }
9
+
10
+ .left-group,
11
+ .right-group {
12
+ display: flex;
13
+ gap: 1rem;
14
+ }
15
+
16
+ .right-group {
17
+ margin-left: auto;
18
+ }
19
+
20
+ .secondary-button {
21
+ background-color: var(--app-sys-secondary-button-background);
22
+ border-color: var(--app-sys-secondary-button-border);
23
+ }