@pega/angular-sdk-overrides 25.1.12 → 26.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.
- package/lib/designSystemExtension/alert/alert.component.html +4 -1
- package/lib/designSystemExtension/alert/alert.component.scss +9 -10
- package/lib/designSystemExtension/alert/alert.component.ts +6 -2
- package/lib/designSystemExtension/field-group/field-group.component.ts +11 -3
- package/lib/designSystemExtension/material-case-summary/material-case-summary.component.html +51 -36
- package/lib/designSystemExtension/material-case-summary/material-case-summary.component.scss +12 -0
- package/lib/designSystemExtension/material-case-summary/material-case-summary.component.ts +11 -0
- package/lib/designSystemExtension/operator/operator.component.html +5 -3
- package/lib/designSystemExtension/operator/operator.component.scss +7 -0
- package/lib/designSystemExtension/operator/operator.component.ts +2 -1
- package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.html +100 -10
- package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.scss +141 -1
- package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.spec.ts +1 -1
- package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.ts +240 -72
- package/lib/field/auto-complete/auto-complete.component.html +46 -5
- package/lib/field/auto-complete/auto-complete.component.scss +92 -0
- package/lib/field/auto-complete/auto-complete.component.ts +350 -23
- package/lib/field/cancel-alert/cancel-alert.component.ts +38 -15
- package/lib/field/check-box/check-box.component.html +8 -6
- package/lib/field/check-box/check-box.component.ts +9 -2
- package/lib/field/currency/currency.component.html +2 -1
- package/lib/field/currency/currency.component.ts +10 -1
- package/lib/field/date/date.component.html +2 -1
- package/lib/field/date/date.component.ts +2 -0
- package/lib/field/date-time/date-time.component.html +2 -1
- package/lib/field/date-time/date-time.component.scss +46 -40
- package/lib/field/date-time/date-time.component.ts +29 -0
- package/lib/field/decimal/decimal.component.html +2 -1
- package/lib/field/decimal/decimal.component.ts +2 -0
- package/lib/field/dropdown/dropdown.component.html +4 -1
- package/lib/field/dropdown/dropdown.component.ts +18 -19
- package/lib/field/email/email.component.html +2 -1
- package/lib/field/email/email.component.ts +2 -2
- package/lib/field/embedded-data-multi/embedded-data-multi.component.html +3 -0
- package/lib/field/embedded-data-multi/embedded-data-multi.component.scss +0 -0
- package/lib/field/embedded-data-multi/embedded-data-multi.component.ts +173 -0
- package/lib/field/field.base.ts +27 -1
- package/lib/field/group/group.component.html +1 -1
- package/lib/field/group/group.component.ts +16 -7
- package/lib/field/integer/integer.component.html +2 -1
- package/lib/field/integer/integer.component.ts +4 -2
- package/lib/field/location/location.component.html +2 -1
- package/lib/field/location/location.component.ts +3 -1
- package/lib/field/multiselect/multiselect.component.html +1 -1
- package/lib/field/multiselect/multiselect.component.ts +23 -4
- package/lib/field/multiselect/utils.ts +5 -3
- package/lib/field/object-reference/object-reference.component.html +30 -15
- package/lib/field/object-reference/object-reference.component.ts +818 -94
- package/lib/field/percentage/percentage.component.html +2 -1
- package/lib/field/percentage/percentage.component.ts +10 -1
- package/lib/field/phone/phone.component.html +2 -1
- package/lib/field/phone/phone.component.ts +2 -1
- package/lib/field/radio-buttons/radio-buttons.component.html +2 -1
- package/lib/field/radio-buttons/radio-buttons.component.ts +10 -1
- package/lib/field/rich-text/rich-text.component.scss +1 -166
- package/lib/field/rich-text/rich-text.component.spec.ts +1 -1
- package/lib/field/rich-text/rich-text.component.ts +1 -1
- package/lib/field/selectable-card/selectable-card.component.html +1 -0
- package/lib/field/selectable-card/selectable-card.component.ts +31 -16
- package/lib/field/semantic-link/semantic-link.component.html +1 -1
- package/lib/field/semantic-link/semantic-link.component.scss +4 -0
- package/lib/field/semantic-link/semantic-link.component.ts +13 -7
- package/lib/field/text-area/text-area.component.html +2 -1
- package/lib/field/text-area/text-area.component.ts +2 -1
- package/lib/field/text-input/text-input.component.html +2 -1
- package/lib/field/text-input/text-input.component.ts +2 -1
- package/lib/field/time/time.component.html +2 -1
- package/lib/field/time/time.component.ts +2 -1
- package/lib/field/url/url.component.html +2 -1
- package/lib/field/url/url.component.ts +2 -1
- package/lib/field/user-reference/user-reference.component.html +4 -2
- package/lib/field/user-reference/user-reference.component.ts +11 -6
- package/lib/infra/Containers/flow-container/flow-container.component.html +2 -2
- package/lib/infra/Containers/flow-container/flow-container.component.ts +34 -42
- package/lib/infra/Containers/modal-view-container/data-view-action-buttons/data-view-action-buttons.component.html +12 -0
- package/lib/infra/Containers/modal-view-container/data-view-action-buttons/data-view-action-buttons.component.spec.ts +130 -0
- package/lib/infra/Containers/modal-view-container/data-view-action-buttons/data-view-action-buttons.component.ts +77 -0
- package/lib/infra/Containers/modal-view-container/modal-view-container.component.html +35 -8
- package/lib/infra/Containers/modal-view-container/modal-view-container.component.ts +185 -196
- package/lib/infra/Containers/view-container/view-container.component.html +1 -1
- package/lib/infra/Containers/view-container/view-container.component.ts +36 -43
- package/lib/infra/assignment/assignment.component.html +2 -1
- package/lib/infra/assignment/assignment.component.ts +44 -22
- package/lib/infra/assignment-card/assignment-card.component.html +1 -0
- package/lib/infra/assignment-card/assignment-card.component.ts +2 -8
- package/lib/infra/defer-load/defer-load.component.ts +7 -5
- package/lib/infra/multi-step/multi-step.component.html +25 -33
- package/lib/infra/multi-step/multi-step.component.scss +67 -125
- package/lib/infra/multi-step/multi-step.component.ts +11 -0
- package/lib/infra/navbar/navbar.component.ts +33 -36
- package/lib/infra/reference/reference.component.html +7 -1
- package/lib/infra/reference/reference.component.ts +63 -109
- package/lib/infra/region/region.component.ts +1 -3
- package/lib/infra/root-container/root-container.component.html +1 -0
- package/lib/infra/root-container/root-container.component.ts +34 -42
- package/lib/infra/view/view.component.ts +22 -46
- package/lib/template/advanced-search/advanced-search.component.ts +0 -1
- package/lib/template/advanced-search/search-groups/search-groups.component.ts +2 -3
- package/lib/template/app-shell/app-shell.component.ts +13 -13
- package/lib/template/banner-page/banner-page.component.ts +1 -2
- package/lib/template/base/details-template-base.ts +41 -14
- package/lib/template/base/form-template-base.ts +0 -2
- package/lib/template/case-summary/case-summary.component.ts +15 -7
- package/lib/template/case-view/case-view.component.html +14 -2
- package/lib/template/case-view/case-view.component.spec.ts +119 -10
- package/lib/template/case-view/case-view.component.ts +52 -3
- package/lib/template/data-reference/data-reference.component.ts +29 -22
- package/lib/template/data-reference/search-form/search-form.component.html +1 -1
- package/lib/template/data-reference/search-form/search-form.component.ts +9 -1
- package/lib/template/data-reference/search-form/tabsData.ts +0 -1
- package/lib/template/default-form/default-form.component.html +20 -4
- package/lib/template/default-form/default-form.component.ts +14 -5
- package/lib/template/default-page/default-page.component.ts +1 -2
- package/lib/template/details/details.component.html +23 -3
- package/lib/template/details/details.component.scss +9 -2
- package/lib/template/details/details.component.ts +3 -70
- package/lib/template/details-narrow-wide/details-narrow-wide.component.html +21 -2
- package/lib/template/details-narrow-wide/details-narrow-wide.component.scss +8 -1
- package/lib/template/details-narrow-wide/details-narrow-wide.component.ts +3 -39
- package/lib/template/details-one-column/details-one-column.component.html +23 -1
- package/lib/template/details-one-column/details-one-column.component.scss +14 -0
- package/lib/template/details-one-column/details-one-column.component.ts +3 -40
- package/lib/template/details-three-column/details-three-column.component.html +21 -2
- package/lib/template/details-three-column/details-three-column.component.scss +8 -1
- package/lib/template/details-three-column/details-three-column.component.ts +3 -48
- package/lib/template/details-two-column/details-two-column.component.html +21 -2
- package/lib/template/details-two-column/details-two-column.component.scss +8 -1
- package/lib/template/details-two-column/details-two-column.component.ts +3 -46
- package/lib/template/details-wide-narrow/details-wide-narrow.component.html +21 -2
- package/lib/template/details-wide-narrow/details-wide-narrow.component.scss +8 -1
- package/lib/template/details-wide-narrow/details-wide-narrow.component.ts +3 -43
- package/lib/template/dynamic-tabs/dynamic-tabs.component.html +1 -0
- package/lib/template/field-group-template/field-group-template.component.ts +19 -6
- package/lib/template/field-value-list/field-value-list.component.scss +17 -0
- package/lib/template/inline-dashboard-page/inline-dashboard-page.component.ts +2 -10
- package/lib/template/list-view/list-view.component.ts +47 -11
- package/lib/template/one-column/one-column.component.html +3 -0
- package/lib/template/one-column-tab/one-column-tab.component.html +1 -0
- package/lib/template/page/page.component.html +1 -0
- package/lib/template/self-service-case-view/self-service-case-view.component.html +13 -1
- package/lib/template/self-service-case-view/self-service-case-view.component.spec.ts +96 -11
- package/lib/template/self-service-case-view/self-service-case-view.component.ts +52 -3
- package/lib/template/simple-table/simple-table.component.ts +11 -1
- package/lib/template/simple-table-manual/helpers.ts +84 -16
- package/lib/template/simple-table-manual/simple-table-manual.component.html +30 -14
- package/lib/template/simple-table-manual/simple-table-manual.component.scss +8 -2
- package/lib/template/simple-table-manual/simple-table-manual.component.ts +142 -46
- package/lib/template/single-reference-readonly/single-reference-readonly.component.html +0 -0
- package/lib/template/single-reference-readonly/single-reference-readonly.component.scss +2 -3
- package/lib/template/single-reference-readonly/single-reference-readonly.component.ts +7 -8
- package/lib/template/wide-narrow-page/wide-narrow-page.component.ts +0 -3
- package/lib/template/wss-nav-bar/wss-nav-bar.component.ts +19 -21
- package/lib/widget/attachment/AttachmentUtils.ts +19 -11
- package/lib/widget/attachment/attachment.component.html +16 -6
- package/lib/widget/attachment/attachment.component.ts +14 -4
- package/lib/widget/case-history/case-history.component.ts +6 -2
- package/lib/widget/feed-container/feed-container.component.ts +1 -199
- package/lib/widget/file-utility/file-utility.component.ts +26 -30
- package/lib/widget/todo/todo.component.ts +7 -2
- package/package.json +2 -2
- package/lib/designSystemExtension/material-details/material-details.component.html +0 -40
- package/lib/designSystemExtension/material-details/material-details.component.scss +0 -116
- package/lib/designSystemExtension/material-details/material-details.component.spec.ts +0 -24
- package/lib/designSystemExtension/material-details/material-details.component.ts +0 -31
- package/lib/designSystemExtension/material-details-fields/material-details-fields.component.html +0 -29
- package/lib/designSystemExtension/material-details-fields/material-details-fields.component.scss +0 -34
- package/lib/designSystemExtension/material-details-fields/material-details-fields.component.spec.ts +0 -22
- package/lib/designSystemExtension/material-details-fields/material-details-fields.component.ts +0 -37
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<div>
|
|
2
|
-
<div><component-mapper name="AlertBanner" [props]="{ banners: bannerService.
|
|
2
|
+
<div><component-mapper name="AlertBanner" [props]="{ banners: bannerService.getBanners(itemKey$) }" [parent]="this"></component-mapper></div>
|
|
3
3
|
<div *ngIf="bHasNavigation$" class="psdk-stepper">
|
|
4
4
|
<component-mapper
|
|
5
5
|
name="MultiStep"
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
arMainButtons$,
|
|
11
11
|
arSecondaryButtons$,
|
|
12
12
|
bIsVertical$,
|
|
13
|
+
stepIndicator$,
|
|
13
14
|
arCurrentStepIndicies$,
|
|
14
15
|
arNavigationSteps$
|
|
15
16
|
}"
|
|
@@ -7,7 +7,6 @@ import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-c
|
|
|
7
7
|
import { ErrorMessagesService } from '@pega/angular-sdk-components';
|
|
8
8
|
import { ProgressSpinnerService } from '@pega/angular-sdk-components';
|
|
9
9
|
import { BannerService } from '@pega/angular-sdk-components';
|
|
10
|
-
import { ReferenceComponent } from '@pega/angular-sdk-components';
|
|
11
10
|
import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
12
11
|
|
|
13
12
|
function getRefreshProps(refreshConditions) {
|
|
@@ -28,6 +27,8 @@ interface AssignmentProps {
|
|
|
28
27
|
template: string;
|
|
29
28
|
}
|
|
30
29
|
|
|
30
|
+
type StepIndicator = 'horizontal' | 'vertical' | 'vertical-start';
|
|
31
|
+
|
|
31
32
|
@Component({
|
|
32
33
|
selector: 'app-assignment',
|
|
33
34
|
templateUrl: './assignment.component.html',
|
|
@@ -61,6 +62,7 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
61
62
|
|
|
62
63
|
bHasNavigation$ = false;
|
|
63
64
|
bIsVertical$ = false;
|
|
65
|
+
stepIndicator$: StepIndicator = 'horizontal';
|
|
64
66
|
prevNavigationSteps: any[] = [];
|
|
65
67
|
arCurrentStepIndicies$: number[] = [];
|
|
66
68
|
arNavigationSteps$: any[] = [];
|
|
@@ -98,6 +100,9 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
98
100
|
|
|
99
101
|
this.initComponent();
|
|
100
102
|
|
|
103
|
+
// ngOnChanges runs before ngOnInit, so updateChanges() never registers on first render.
|
|
104
|
+
this.registerForRefresh();
|
|
105
|
+
|
|
101
106
|
this.angularPConnect.shouldComponentUpdate(this);
|
|
102
107
|
|
|
103
108
|
this.bInitialized = true;
|
|
@@ -109,6 +114,8 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
109
114
|
if (this.angularPConnectData.unsubscribeFn) {
|
|
110
115
|
this.angularPConnectData.unsubscribeFn();
|
|
111
116
|
}
|
|
117
|
+
|
|
118
|
+
this.bannerService.clearBanners(this.itemKey$);
|
|
112
119
|
}
|
|
113
120
|
|
|
114
121
|
// Callback passed when subscribing to store change
|
|
@@ -126,6 +133,9 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
126
133
|
// AND removing the "gate" that was put there since shouldComponentUpdate
|
|
127
134
|
// should be the real "gate"
|
|
128
135
|
if (bUpdateSelf) {
|
|
136
|
+
// The engine drops registrations when it cleans the context cache, so re-register on each update (as React does per render).
|
|
137
|
+
this.registerForRefresh();
|
|
138
|
+
|
|
129
139
|
let loadingInfo;
|
|
130
140
|
try {
|
|
131
141
|
// loadingInfo = this.pConn$.getLoadingStatus();
|
|
@@ -149,8 +159,7 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
149
159
|
|
|
150
160
|
this.registerForRefresh();
|
|
151
161
|
|
|
152
|
-
|
|
153
|
-
this.newPConn$ = ReferenceComponent.normalizePConn(this.pConn$);
|
|
162
|
+
this.newPConn$ = this.pConn$;
|
|
154
163
|
|
|
155
164
|
if (this.arChildren$) {
|
|
156
165
|
this.createButtons();
|
|
@@ -158,9 +167,7 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
158
167
|
}
|
|
159
168
|
|
|
160
169
|
initComponent() {
|
|
161
|
-
|
|
162
|
-
// this.pConn$ = ReferenceComponent.normalizePConn(this.pConn$);
|
|
163
|
-
this.newPConn$ = ReferenceComponent.normalizePConn(this.pConn$);
|
|
170
|
+
this.newPConn$ = this.pConn$;
|
|
164
171
|
|
|
165
172
|
// prevent re-intializing with flowContainer update unless an action is taken
|
|
166
173
|
this.bReInit = false;
|
|
@@ -203,7 +210,6 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
203
210
|
this.cancelCreateStageAssignment = actionsAPI.cancelCreateStageAssignment.bind(actionsAPI);
|
|
204
211
|
this.approveCase = actionsAPI.approveCase?.bind(actionsAPI);
|
|
205
212
|
this.rejectCase = actionsAPI.rejectCase?.bind(actionsAPI);
|
|
206
|
-
|
|
207
213
|
if (this.arChildren$) {
|
|
208
214
|
this.createButtons();
|
|
209
215
|
}
|
|
@@ -245,14 +251,22 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
245
251
|
}
|
|
246
252
|
|
|
247
253
|
createButtonsForMultiStepForm(oCaseInfo) {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
254
|
+
const navigationTemplate = oCaseInfo.navigation.template?.toLowerCase();
|
|
255
|
+
const stepCount = oCaseInfo.navigation.steps?.length ?? 0;
|
|
256
|
+
const shouldHideNavigation = navigationTemplate === 'standard' || stepCount <= 1;
|
|
257
|
+
|
|
258
|
+
this.bHasNavigation$ = !shouldHideNavigation;
|
|
259
|
+
this.bIsVertical$ = false;
|
|
260
|
+
this.stepIndicator$ = 'horizontal';
|
|
261
|
+
|
|
262
|
+
if (!shouldHideNavigation) {
|
|
263
|
+
if (navigationTemplate === 'vertical') {
|
|
264
|
+
this.bIsVertical$ = true;
|
|
265
|
+
this.stepIndicator$ = 'vertical';
|
|
266
|
+
} else if (navigationTemplate === 'vertical-left') {
|
|
267
|
+
this.bIsVertical$ = true;
|
|
268
|
+
this.stepIndicator$ = 'vertical-start';
|
|
269
|
+
}
|
|
256
270
|
}
|
|
257
271
|
|
|
258
272
|
// iterate through steps to find current one(s)
|
|
@@ -309,7 +323,7 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
309
323
|
|
|
310
324
|
buttonClick(sAction, sButtonType) {
|
|
311
325
|
this.snackBarRef?.dismiss();
|
|
312
|
-
this.bannerService.clearBanners();
|
|
326
|
+
this.bannerService.clearBanners(this.itemKey$);
|
|
313
327
|
PCore.getPubSubUtils().publish('clearBannerMessages');
|
|
314
328
|
// right now, done on an individual basis, setting bReInit to true
|
|
315
329
|
// upon the next flow container state change, will cause the flow container
|
|
@@ -483,7 +497,11 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
483
497
|
}
|
|
484
498
|
|
|
485
499
|
registerForRefresh() {
|
|
486
|
-
const
|
|
500
|
+
const caseInfo = this.pConn$.getCaseInfo();
|
|
501
|
+
if (!caseInfo) {
|
|
502
|
+
return;
|
|
503
|
+
}
|
|
504
|
+
const refreshConditions = caseInfo.getActionRefreshConditions();
|
|
487
505
|
const pageReference = this.pConn$.getPageReference();
|
|
488
506
|
const context = this.pConn$.getContextName();
|
|
489
507
|
|
|
@@ -492,7 +510,7 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
492
510
|
|
|
493
511
|
// refresh api registration
|
|
494
512
|
const refreshProps = getRefreshProps(refreshConditions);
|
|
495
|
-
const caseKey =
|
|
513
|
+
const caseKey = caseInfo.getKey();
|
|
496
514
|
const refreshOptions = {
|
|
497
515
|
autoDetectRefresh: true,
|
|
498
516
|
preserveClientChanges: false
|
|
@@ -501,10 +519,14 @@ export class AssignmentComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
501
519
|
refreshProps.forEach(prop => {
|
|
502
520
|
PCore.getRefreshManager().registerForRefresh(
|
|
503
521
|
'PROP_CHANGE',
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
522
|
+
// The registered prop is an authored pattern with an empty list index (ex: ".Addons().Type"),
|
|
523
|
+
// which the server rejects. The refresh manager hands back the concrete path that changed.
|
|
524
|
+
(matchedPath?: string) => {
|
|
525
|
+
this.pConn$.getActionsApi().refreshCaseView(caseKey, '', pageReference, {
|
|
526
|
+
...refreshOptions,
|
|
527
|
+
refreshFor: matchedPath || prop[0]
|
|
528
|
+
});
|
|
529
|
+
},
|
|
508
530
|
`${pageReference}.${prop[1]}`,
|
|
509
531
|
`${context}/${pageReference}`,
|
|
510
532
|
context
|
|
@@ -2,6 +2,7 @@
|
|
|
2
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
|
+
<component-mapper *ngSwitchCase="'reference'" name="reference" [props]="{ formGroup$, pConn$: kid.getPConnect() }"></component-mapper>
|
|
5
6
|
<component-mapper
|
|
6
7
|
*ngSwitchCase="'CaseCreateStage'"
|
|
7
8
|
name="CaseCreateStage"
|
|
@@ -1,7 +1,6 @@
|
|
|
1
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
|
-
import { ReferenceComponent } from '@pega/angular-sdk-components';
|
|
5
4
|
import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
6
5
|
|
|
7
6
|
function isChildrenUpdated(children) {
|
|
@@ -34,18 +33,13 @@ export class AssignmentCardComponent implements OnInit, OnChanges {
|
|
|
34
33
|
@Output() actionButtonClick: EventEmitter<any> = new EventEmitter();
|
|
35
34
|
|
|
36
35
|
ngOnInit(): void {
|
|
37
|
-
|
|
38
|
-
// normalize them
|
|
39
|
-
this.childrenArray = ReferenceComponent.normalizePConnArray(this.arChildren$);
|
|
36
|
+
this.childrenArray = this.arChildren$;
|
|
40
37
|
}
|
|
41
38
|
|
|
42
39
|
ngOnChanges(changes: SimpleChanges) {
|
|
43
|
-
// Children may contain 'reference' component, so we need to
|
|
44
|
-
// normalize them
|
|
45
|
-
|
|
46
40
|
const { arChildren$ } = changes;
|
|
47
41
|
if (isChildrenUpdated(arChildren$)) {
|
|
48
|
-
this.childrenArray =
|
|
42
|
+
this.childrenArray = this.arChildren$;
|
|
49
43
|
}
|
|
50
44
|
}
|
|
51
45
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { Component, OnInit, Input, forwardRef, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
|
|
1
|
+
import { Component, OnInit, Input, forwardRef, OnDestroy, OnChanges, SimpleChanges, ChangeDetectorRef } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { publicConstants } from '@pega/pcore-pconnect-typedefs/constants';
|
|
4
|
-
import { ReferenceComponent } from '@pega/angular-sdk-components';
|
|
5
4
|
import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
6
5
|
import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
|
|
7
6
|
|
|
@@ -36,7 +35,10 @@ export class DeferLoadComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
36
35
|
PAGE: any;
|
|
37
36
|
DATA: any;
|
|
38
37
|
lastUpdateCaseTime;
|
|
39
|
-
constructor(
|
|
38
|
+
constructor(
|
|
39
|
+
private angularPConnect: AngularPConnectService,
|
|
40
|
+
private cdRef: ChangeDetectorRef
|
|
41
|
+
) {
|
|
40
42
|
this.constants = PCore.getConstants();
|
|
41
43
|
}
|
|
42
44
|
|
|
@@ -127,13 +129,13 @@ export class DeferLoadComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
127
129
|
const configObject = PCore.createPConnect(config);
|
|
128
130
|
configObject.getPConnect().setInheritedProp('displayMode', 'DISPLAY_ONLY');
|
|
129
131
|
|
|
130
|
-
this.childComponentPConnect =
|
|
132
|
+
this.childComponentPConnect = configObject.getPConnect();
|
|
131
133
|
|
|
132
134
|
if (this.deferLoadId) {
|
|
133
135
|
PCore.getDeferLoadManager().stop(this.deferLoadId, this.pConn$.getContextName());
|
|
134
136
|
}
|
|
135
137
|
}
|
|
136
|
-
|
|
138
|
+
this.cdRef.detectChanges();
|
|
137
139
|
}
|
|
138
140
|
|
|
139
141
|
loadActiveTab() {
|
|
@@ -1,43 +1,35 @@
|
|
|
1
1
|
<div *ngIf="bShow$">
|
|
2
|
-
<div
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
<div class="
|
|
11
|
-
{{ mainStep.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
<div class="{{ _getVBodyClass(i) }}">
|
|
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>
|
|
2
|
+
<div
|
|
3
|
+
*ngIf="isVerticalLayout()"
|
|
4
|
+
class="psdk-vertical-stepper-container"
|
|
5
|
+
[class.stepper-start]="stepIndicator$ === 'vertical-start'"
|
|
6
|
+
[class.stepper-end]="stepIndicator$ === 'vertical'"
|
|
7
|
+
>
|
|
8
|
+
<div class="psdk-stepper-rail">
|
|
9
|
+
<div *ngFor="let mainStep of arNavigationSteps$; let i = index" class="psdk-vertical-step">
|
|
10
|
+
<div class="psdk-vertical-step-header">
|
|
11
|
+
<div class="{{ _getVIconClass(mainStep.visited_status) }}">
|
|
12
|
+
<div class="psdk-vertical-step-icon-content">
|
|
13
|
+
<span>{{ i + 1 }}</span>
|
|
24
14
|
</div>
|
|
25
15
|
</div>
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
name="AssignmentCard"
|
|
31
|
-
[props]="{ pConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$ }"
|
|
32
|
-
[parent]="this"
|
|
33
|
-
[outputEvents]="{ actionButtonClick: onActionButtonClick }"
|
|
34
|
-
></component-mapper>
|
|
35
|
-
</ng-container>
|
|
16
|
+
<div class="{{ _getVLabelClass(mainStep.visited_status) }}">
|
|
17
|
+
{{ mainStep.name }}
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
36
20
|
</div>
|
|
37
21
|
</div>
|
|
22
|
+
<div class="psdk-stepper-content">
|
|
23
|
+
<component-mapper
|
|
24
|
+
name="AssignmentCard"
|
|
25
|
+
[props]="{ pConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$ }"
|
|
26
|
+
[parent]="this"
|
|
27
|
+
[outputEvents]="{ actionButtonClick: onActionButtonClick }"
|
|
28
|
+
></component-mapper>
|
|
29
|
+
</div>
|
|
38
30
|
</div>
|
|
39
31
|
|
|
40
|
-
<div *ngIf="
|
|
32
|
+
<div *ngIf="isHorizontalLayout()" class="psdk-horizontal-stepper">
|
|
41
33
|
<div class="psdk-horizontal-stepper-header-container">
|
|
42
34
|
<ng-container *ngFor="let mainStep of arNavigationSteps$; let i = index">
|
|
43
35
|
<div class="psdk-horizontal-step-header">
|
|
@@ -1,59 +1,3 @@
|
|
|
1
|
-
.psdk-case-view-divider {
|
|
2
|
-
border-bottom: 0.0625rem solid var(--mat-sys-outline-variant);
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
.psdk-icon {
|
|
6
|
-
padding: 0rem 0.125rem;
|
|
7
|
-
min-width: unset;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.psdk-current-svg-icon {
|
|
11
|
-
width: 1rem;
|
|
12
|
-
filter: var(--app-primary-color-filter);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.psdk-not-current-svg-icon {
|
|
16
|
-
width: 1rem;
|
|
17
|
-
filter: var(--app-neutral-color-filter);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
mat-vertical-stepper {
|
|
21
|
-
background-color: transparent;
|
|
22
|
-
}
|
|
23
|
-
mat-horizontal-stepper {
|
|
24
|
-
background-color: transparent;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.psdk-sub-step-current {
|
|
28
|
-
padding-left: 0.625rem;
|
|
29
|
-
font-weight: bold;
|
|
30
|
-
color: var(--mat-sys-on-secondary-container);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.psdk-sub-step-not-current {
|
|
34
|
-
color: var(--mat-sys-on-surface-variant);
|
|
35
|
-
padding-left: 0.625rem;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.psdk-flow-container-top {
|
|
39
|
-
padding: 0rem 0.625rem;
|
|
40
|
-
border-radius: 0.3125rem;
|
|
41
|
-
}
|
|
42
|
-
.psdk-flow-container {
|
|
43
|
-
padding-left: 2.1875rem;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.psdk-sub-step-list {
|
|
47
|
-
list-style: none;
|
|
48
|
-
padding-bottom: 0.625rem;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.psdk-vertical-stepper {
|
|
52
|
-
background-color: transparent;
|
|
53
|
-
display: block;
|
|
54
|
-
text-align: left;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
1
|
.psdk-vertical-step {
|
|
58
2
|
display: block;
|
|
59
3
|
}
|
|
@@ -71,8 +15,12 @@ mat-horizontal-stepper {
|
|
|
71
15
|
}
|
|
72
16
|
|
|
73
17
|
.psdk-vertical-step-icon {
|
|
74
|
-
margin-right: 12px;
|
|
75
18
|
background-color: var(--mat-sys-secondary);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.psdk-vertical-step-icon,
|
|
22
|
+
.psdk-vertical-step-icon-selected {
|
|
23
|
+
margin-right: 12px;
|
|
76
24
|
border-radius: 50%;
|
|
77
25
|
height: 24px;
|
|
78
26
|
width: 24px;
|
|
@@ -80,67 +28,95 @@ mat-horizontal-stepper {
|
|
|
80
28
|
position: relative;
|
|
81
29
|
}
|
|
82
30
|
|
|
83
|
-
.psdk-vertical-step-icon-content
|
|
31
|
+
.psdk-vertical-step-icon-content,
|
|
32
|
+
.psdk-horizontal-step-icon-content {
|
|
33
|
+
display: block;
|
|
84
34
|
position: absolute;
|
|
85
35
|
top: 50%;
|
|
86
36
|
left: 50%;
|
|
87
37
|
transform: translate(-50%, -50%);
|
|
88
38
|
}
|
|
89
39
|
|
|
90
|
-
.psdk-vertical-step-icon-selected
|
|
91
|
-
|
|
40
|
+
.psdk-vertical-step-icon-selected,
|
|
41
|
+
.psdk-horizontal-step-icon-selected {
|
|
92
42
|
background-color: var(--mat-sys-primary);
|
|
93
43
|
color: var(--mat-sys-surface);
|
|
94
|
-
border-radius: 50%;
|
|
95
|
-
height: 24px;
|
|
96
|
-
width: 24px;
|
|
97
|
-
flex-shrink: 0;
|
|
98
|
-
position: relative;
|
|
99
44
|
}
|
|
100
45
|
|
|
101
|
-
.psdk-vertical-step-label
|
|
102
|
-
|
|
46
|
+
.psdk-vertical-step-label,
|
|
47
|
+
.psdk-vertical-step-label-selected,
|
|
48
|
+
.psdk-horizontal-step-label,
|
|
49
|
+
.psdk-horizontal-step-label-selected {
|
|
103
50
|
display: inline-block;
|
|
104
|
-
white-space: nowrap;
|
|
105
|
-
overflow: hidden;
|
|
106
|
-
text-overflow: ellipsis;
|
|
107
51
|
min-width: 50px;
|
|
108
52
|
vertical-align: middle;
|
|
109
53
|
font-size: 14px;
|
|
110
54
|
font-weight: 500;
|
|
111
55
|
}
|
|
112
56
|
|
|
113
|
-
.psdk-vertical-step-label
|
|
57
|
+
.psdk-vertical-step-label,
|
|
58
|
+
.psdk-horizontal-step-label {
|
|
59
|
+
color: var(--mat-sys-on-surface-variant);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.psdk-vertical-step-label-selected,
|
|
63
|
+
.psdk-horizontal-step-label-selected {
|
|
114
64
|
color: var(--mat-sys-on-secondary-container);
|
|
115
|
-
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.psdk-vertical-step-label,
|
|
68
|
+
.psdk-vertical-step-label-selected {
|
|
116
69
|
white-space: nowrap;
|
|
117
70
|
overflow: hidden;
|
|
118
71
|
text-overflow: ellipsis;
|
|
119
|
-
min-width: 50px;
|
|
120
|
-
vertical-align: middle;
|
|
121
|
-
font-size: 14px;
|
|
122
|
-
font-weight: 500;
|
|
123
72
|
}
|
|
124
73
|
|
|
125
|
-
.psdk-vertical-
|
|
126
|
-
|
|
127
|
-
|
|
74
|
+
.psdk-vertical-stepper-container {
|
|
75
|
+
display: grid;
|
|
76
|
+
gap: 2rem;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.psdk-vertical-stepper-container.stepper-end {
|
|
80
|
+
grid-template-columns: 1fr minmax(12rem, auto);
|
|
81
|
+
grid-template-areas: 'content stepper';
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.psdk-vertical-stepper-container.stepper-start {
|
|
85
|
+
grid-template-columns: minmax(12rem, auto) 1fr;
|
|
86
|
+
grid-template-areas: 'stepper content';
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.psdk-stepper-rail {
|
|
90
|
+
grid-area: stepper;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.psdk-stepper-content {
|
|
94
|
+
grid-area: content;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.psdk-stepper-rail .psdk-vertical-step {
|
|
128
98
|
position: relative;
|
|
129
|
-
display: block;
|
|
130
|
-
text-align: left;
|
|
131
99
|
}
|
|
132
|
-
|
|
133
|
-
|
|
100
|
+
|
|
101
|
+
.psdk-stepper-rail .psdk-vertical-step-header {
|
|
102
|
+
height: auto;
|
|
103
|
+
overflow: visible;
|
|
104
|
+
padding: 0.75rem 0;
|
|
134
105
|
}
|
|
135
106
|
|
|
136
|
-
.psdk-vertical-step-
|
|
107
|
+
.psdk-stepper-rail .psdk-vertical-step:not(:last-child)::after {
|
|
137
108
|
content: '';
|
|
138
109
|
position: absolute;
|
|
139
|
-
left: 0;
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
110
|
+
left: 0.75rem;
|
|
111
|
+
top: calc(0.75rem + 1.75rem);
|
|
112
|
+
bottom: -0.25rem;
|
|
113
|
+
width: 0.0625rem;
|
|
114
|
+
background-color: var(--mat-sys-outline-variant);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.psdk-stepper-rail .psdk-vertical-step-label,
|
|
118
|
+
.psdk-stepper-rail .psdk-vertical-step-label-selected {
|
|
119
|
+
font-size: 0.875rem;
|
|
144
120
|
}
|
|
145
121
|
|
|
146
122
|
.psdk-horizontal-stepper {
|
|
@@ -164,7 +140,6 @@ mat-horizontal-stepper {
|
|
|
164
140
|
box-sizing: content-box;
|
|
165
141
|
display: flex;
|
|
166
142
|
height: 72px;
|
|
167
|
-
overflow: hidden;
|
|
168
143
|
align-items: center;
|
|
169
144
|
padding: 0 24px;
|
|
170
145
|
}
|
|
@@ -172,54 +147,21 @@ mat-horizontal-stepper {
|
|
|
172
147
|
.psdk-horizontal-step-icon {
|
|
173
148
|
background-color: var(--mat-sys-secondary);
|
|
174
149
|
color: var(--mat-sys-surface);
|
|
175
|
-
border-radius: 50%;
|
|
176
|
-
height: 24px;
|
|
177
|
-
width: 24px;
|
|
178
|
-
flex-shrink: 0;
|
|
179
|
-
position: relative;
|
|
180
|
-
display: block;
|
|
181
|
-
margin-right: 8px;
|
|
182
|
-
flex: none;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
.psdk-horizontal-step-icon-content {
|
|
186
|
-
display: block;
|
|
187
|
-
position: absolute;
|
|
188
|
-
top: 50%;
|
|
189
|
-
left: 50%;
|
|
190
|
-
transform: translate(-50%, -50%);
|
|
191
150
|
}
|
|
192
151
|
|
|
152
|
+
.psdk-horizontal-step-icon,
|
|
193
153
|
.psdk-horizontal-step-icon-selected {
|
|
194
|
-
background-color: var(--mat-sys-primary);
|
|
195
|
-
color: var(--mat-sys-surface);
|
|
196
154
|
border-radius: 50%;
|
|
197
155
|
height: 24px;
|
|
198
156
|
width: 24px;
|
|
199
157
|
flex-shrink: 0;
|
|
200
158
|
position: relative;
|
|
201
|
-
display: block;
|
|
202
159
|
margin-right: 8px;
|
|
203
160
|
flex: none;
|
|
204
161
|
}
|
|
205
162
|
|
|
206
|
-
.psdk-horizontal-step-label
|
|
207
|
-
color: var(--mat-sys-on-surface-variant);
|
|
208
|
-
display: inline-block;
|
|
209
|
-
min-width: 50px;
|
|
210
|
-
vertical-align: middle;
|
|
211
|
-
font-size: 14px;
|
|
212
|
-
font-weight: 500;
|
|
213
|
-
white-space: initial;
|
|
214
|
-
}
|
|
215
|
-
|
|
163
|
+
.psdk-horizontal-step-label,
|
|
216
164
|
.psdk-horizontal-step-label-selected {
|
|
217
|
-
color: var(--mat-sys-on-secondary-container);
|
|
218
|
-
display: inline-block;
|
|
219
|
-
min-width: 50px;
|
|
220
|
-
vertical-align: middle;
|
|
221
|
-
font-size: 14px;
|
|
222
|
-
font-weight: 500;
|
|
223
165
|
white-space: initial;
|
|
224
166
|
}
|
|
225
167
|
|
|
@@ -4,6 +4,8 @@ import { FormGroup } from '@angular/forms';
|
|
|
4
4
|
import { Utils } from '@pega/angular-sdk-components';
|
|
5
5
|
import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
6
6
|
|
|
7
|
+
type StepIndicator = 'horizontal' | 'vertical' | 'vertical-start';
|
|
8
|
+
|
|
7
9
|
@Component({
|
|
8
10
|
selector: 'app-multi-step',
|
|
9
11
|
templateUrl: './multi-step.component.html',
|
|
@@ -18,6 +20,7 @@ export class MultiStepComponent implements OnInit {
|
|
|
18
20
|
@Input() arSecondaryButtons$: any[];
|
|
19
21
|
@Input() arChildren$: any[];
|
|
20
22
|
@Input() bIsVertical$: boolean;
|
|
23
|
+
@Input() stepIndicator$?: StepIndicator;
|
|
21
24
|
@Input() arCurrentStepIndicies$: number[];
|
|
22
25
|
@Input() arNavigationSteps$: any[];
|
|
23
26
|
@Output() actionButtonClick: EventEmitter<any> = new EventEmitter();
|
|
@@ -38,6 +41,14 @@ export class MultiStepComponent implements OnInit {
|
|
|
38
41
|
this.actionButtonClick.emit(oData);
|
|
39
42
|
}
|
|
40
43
|
|
|
44
|
+
isVerticalLayout(): boolean {
|
|
45
|
+
return this.stepIndicator$ === 'vertical' || this.stepIndicator$ === 'vertical-start';
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
isHorizontalLayout(): boolean {
|
|
49
|
+
return !this.isVerticalLayout();
|
|
50
|
+
}
|
|
51
|
+
|
|
41
52
|
_getVIconClass(status): string {
|
|
42
53
|
if (status == 'current') {
|
|
43
54
|
return 'psdk-vertical-step-icon-selected';
|