@pega/angular-sdk-overrides 0.24.8 → 0.25.1
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.ts +0 -1
- package/lib/designSystemExtension/alert-banner/alert-banner.component.ts +1 -2
- package/lib/designSystemExtension/banner/banner.component.ts +0 -1
- package/lib/designSystemExtension/case-create-stage/case-create-stage.component.ts +1 -2
- package/lib/designSystemExtension/field-group/field-group.component.ts +0 -1
- package/lib/designSystemExtension/material-case-summary/material-case-summary.component.scss +2 -1
- package/lib/designSystemExtension/material-case-summary/material-case-summary.component.ts +0 -2
- package/lib/designSystemExtension/material-details/material-details.component.ts +0 -1
- package/lib/designSystemExtension/material-details-fields/material-details-fields.component.html +2 -2
- package/lib/designSystemExtension/material-details-fields/material-details-fields.component.ts +10 -2
- package/lib/designSystemExtension/material-summary-item/material-summary-item.component.ts +0 -1
- package/lib/designSystemExtension/material-summary-list/material-summary-list.component.ts +0 -1
- package/lib/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.ts +0 -1
- package/lib/designSystemExtension/operator/operator.component.html +1 -1
- package/lib/designSystemExtension/operator/operator.component.scss +10 -2
- package/lib/designSystemExtension/operator/operator.component.ts +5 -5
- package/lib/designSystemExtension/pulse/pulse.component.ts +7 -8
- package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.ts +0 -1
- package/lib/designSystemExtension/wss-quick-create/wss-quick-create.component.ts +0 -1
- package/lib/field/auto-complete/auto-complete.component.html +0 -1
- package/lib/field/auto-complete/auto-complete.component.ts +31 -16
- package/lib/field/cancel-alert/cancel-alert.component.ts +0 -1
- package/lib/field/check-box/check-box.component.html +18 -6
- package/lib/field/check-box/check-box.component.ts +17 -12
- package/lib/field/currency/currency.component.html +4 -4
- package/lib/field/currency/currency.component.ts +42 -20
- package/lib/field/date/date.component.html +3 -7
- package/lib/field/date/date.component.ts +22 -40
- package/lib/field/date-time/date-time.component.html +3 -4
- package/lib/field/date-time/date-time.component.ts +35 -17
- package/lib/field/decimal/decimal.component.html +4 -3
- package/lib/field/decimal/decimal.component.ts +47 -22
- package/lib/field/dropdown/dropdown.component.html +1 -0
- package/lib/field/dropdown/dropdown.component.ts +146 -19
- package/lib/field/email/email.component.ts +24 -5
- package/lib/field/group/group.component.ts +2 -3
- package/lib/field/integer/integer.component.ts +22 -5
- package/lib/field/list-view-action-buttons/list-view-action-buttons.component.html +1 -1
- package/lib/field/list-view-action-buttons/list-view-action-buttons.component.ts +3 -3
- package/lib/field/location/config-ext.json +8 -0
- package/lib/field/location/location.component.html +45 -0
- package/lib/field/location/location.component.scss +18 -0
- package/lib/field/location/location.component.spec.ts +22 -0
- package/lib/field/location/location.component.ts +385 -0
- package/lib/field/multiselect/multiselect.component.ts +17 -10
- package/lib/field/percentage/percentage.component.html +3 -3
- package/lib/field/percentage/percentage.component.ts +45 -21
- package/lib/field/phone/config-ext.json +1 -1
- package/lib/field/phone/phone.component.html +9 -6
- package/lib/field/phone/phone.component.scss +9 -0
- package/lib/field/phone/phone.component.ts +30 -27
- package/lib/field/radio-buttons/radio-buttons.component.html +17 -12
- package/lib/field/radio-buttons/radio-buttons.component.ts +13 -10
- package/lib/field/rich-text/rich-text.component.ts +19 -9
- package/lib/field/scalar-list/scalar-list.component.ts +3 -5
- package/lib/field/selectable-card/selectable-card.component.html +40 -0
- package/lib/field/selectable-card/selectable-card.component.scss +0 -0
- package/lib/field/selectable-card/selectable-card.component.spec.ts +22 -0
- package/lib/field/selectable-card/selectable-card.component.ts +255 -0
- package/lib/field/semantic-link/semantic-link.component.ts +0 -1
- package/lib/field/text/text.component.ts +8 -5
- package/lib/field/text-area/text-area.component.html +4 -1
- package/lib/field/text-area/text-area.component.ts +22 -6
- package/lib/field/text-content/text-content.component.ts +0 -1
- package/lib/field/text-input/text-input.component.ts +22 -5
- package/lib/field/time/time.component.html +2 -2
- package/lib/field/time/time.component.ts +35 -7
- package/lib/field/url/url.component.ts +22 -5
- package/lib/field/user-reference/user-reference.component.html +40 -46
- package/lib/field/user-reference/user-reference.component.ts +111 -21
- package/lib/infra/Containers/flow-container/flow-container.component.html +1 -1
- package/lib/infra/Containers/flow-container/flow-container.component.ts +25 -48
- package/lib/infra/Containers/flow-container/helpers.ts +2 -2
- package/lib/infra/Containers/hybrid-view-container/hybrid-view-container.component.ts +0 -1
- package/lib/infra/Containers/modal-view-container/modal-view-container.component.html +1 -11
- package/lib/infra/Containers/modal-view-container/modal-view-container.component.ts +1 -9
- package/lib/infra/Containers/preview-view-container/preview-view-container.component.ts +1 -1
- package/lib/infra/Containers/view-container/helper.ts +22 -0
- package/lib/infra/Containers/view-container/view-container.component.ts +5 -18
- package/lib/infra/action-buttons/action-buttons.component.html +1 -1
- package/lib/infra/action-buttons/action-buttons.component.ts +0 -1
- package/lib/infra/assignment/assignment.component.html +1 -1
- package/lib/infra/assignment/assignment.component.ts +82 -41
- package/lib/infra/assignment-card/assignment-card.component.html +1 -0
- package/lib/infra/assignment-card/assignment-card.component.ts +0 -1
- package/lib/infra/dashboard-filter/dashboard-filter.component.ts +0 -1
- package/lib/infra/defer-load/defer-load.component.ts +8 -6
- package/lib/infra/error-boundary/error-boundary.component.ts +0 -1
- package/lib/infra/multi-step/multi-step.component.ts +0 -1
- package/lib/infra/navbar/navbar.component.ts +3 -6
- package/lib/infra/reference/reference.component.ts +77 -90
- package/lib/infra/region/region.component.ts +0 -1
- package/lib/infra/root-container/root-container.component.html +2 -15
- package/lib/infra/root-container/root-container.component.ts +27 -33
- package/lib/infra/stages/stages.component.scss +2 -2
- package/lib/infra/stages/stages.component.ts +0 -1
- package/lib/infra/view/view.component.html +7 -20
- package/lib/infra/view/view.component.ts +20 -3
- package/lib/template/app-shell/app-shell.component.ts +20 -3
- package/lib/template/banner-page/banner-page.component.ts +0 -1
- package/lib/template/base/details-template-base.ts +67 -0
- package/lib/template/base/form-template-base.ts +16 -0
- package/lib/template/case-summary/case-summary.component.ts +7 -23
- package/lib/template/case-view/case-view.component.html +4 -4
- package/lib/template/case-view/case-view.component.ts +8 -14
- package/lib/template/confirmation/confirmation.component.html +1 -1
- package/lib/template/confirmation/confirmation.component.ts +1 -2
- package/lib/template/data-reference/data-reference.component.ts +36 -41
- package/lib/template/default-form/default-form.component.html +0 -4
- package/lib/template/default-form/default-form.component.ts +41 -25
- package/lib/template/details/details.component.ts +7 -42
- package/lib/template/details-narrow-wide/details-narrow-wide.component.ts +6 -40
- package/lib/template/details-one-column/details-one-column.component.ts +7 -43
- package/lib/template/details-sub-tabs/details-sub-tabs.component.html +1 -2
- package/lib/template/details-sub-tabs/details-sub-tabs.component.ts +5 -38
- package/lib/template/details-three-column/details-three-column.component.ts +7 -44
- package/lib/template/details-two-column/details-two-column.component.ts +8 -45
- package/lib/template/details-wide-narrow/details-wide-narrow.component.ts +7 -43
- package/lib/template/dynamic-tabs/dynamic-tabs.component.html +3 -0
- package/lib/template/dynamic-tabs/dynamic-tabs.component.ts +8 -4
- package/lib/template/field-group-list/field-group-list.component.ts +0 -1
- package/lib/template/field-group-template/field-group-template.component.html +7 -7
- package/lib/template/field-group-template/field-group-template.component.scss +8 -0
- package/lib/template/field-group-template/field-group-template.component.ts +68 -48
- package/lib/template/field-value-list/field-value-list.component.html +2 -2
- package/lib/template/field-value-list/field-value-list.component.scss +6 -1
- package/lib/template/field-value-list/field-value-list.component.ts +0 -1
- package/lib/template/inline-dashboard/inline-dashboard.component.ts +0 -1
- package/lib/template/inline-dashboard-page/inline-dashboard-page.component.ts +2 -3
- package/lib/template/list-page/list-page.component.ts +0 -1
- package/lib/template/list-view/list-view.component.html +6 -1
- package/lib/template/list-view/list-view.component.scss +11 -0
- package/lib/template/list-view/list-view.component.ts +25 -11
- package/lib/template/list-view/listViewHelpers.ts +4 -10
- package/lib/template/list-view/utils.ts +2 -5
- package/lib/template/multi-reference-readonly/multi-reference-readonly.component.ts +0 -1
- package/lib/template/narrow-wide-form/narrow-wide-form.component.ts +1 -2
- package/lib/template/one-column/one-column.component.ts +4 -4
- package/lib/template/one-column-page/one-column-page.component.ts +0 -1
- package/lib/template/one-column-tab/one-column-tab.component.ts +1 -2
- package/lib/template/page/page.component.ts +1 -2
- package/lib/template/promoted-filters/promoted-filters.component.ts +1 -2
- package/lib/template/repeating-structures/repeating-structures.component.ts +1 -2
- package/lib/template/simple-table/simple-table.component.ts +0 -1
- package/lib/template/simple-table-manual/helpers.ts +126 -10
- package/lib/template/simple-table-manual/simple-table-manual.component.html +25 -6
- package/lib/template/simple-table-manual/simple-table-manual.component.scss +12 -3
- package/lib/template/simple-table-manual/simple-table-manual.component.ts +110 -54
- package/lib/template/simple-table-select/simple-table-select.component.ts +3 -4
- package/lib/template/single-reference-readonly/single-reference-readonly.component.ts +0 -1
- package/lib/template/sub-tabs/sub-tabs.component.ts +0 -1
- package/lib/template/three-column/three-column.component.ts +4 -4
- package/lib/template/three-column-page/three-column-page.component.ts +0 -1
- package/lib/template/two-column/two-column.component.ts +4 -4
- package/lib/template/two-column-page/two-column-page.component.ts +0 -1
- package/lib/template/two-column-tab/two-column-tab.component.ts +1 -2
- package/lib/template/utils.ts +16 -0
- package/lib/template/wide-narrow-form/wide-narrow-form.component.ts +4 -4
- package/lib/template/wide-narrow-page/wide-narrow-page.component.ts +1 -2
- package/lib/template/wss-nav-bar/wss-nav-bar.component.ts +3 -4
- package/lib/widget/app-announcement/app-announcement.component.ts +0 -1
- package/lib/widget/attachment/attachment.component.ts +9 -13
- package/lib/widget/case-history/case-history.component.ts +0 -1
- package/lib/widget/feed-container/feed-container.component.ts +7 -10
- package/lib/widget/file-utility/file-utility.component.ts +2 -6
- package/lib/widget/list-utility/list-utility.component.ts +0 -1
- package/lib/widget/quick-create/quick-create.component.ts +0 -1
- package/lib/widget/todo/todo.component.html +5 -6
- package/lib/widget/todo/todo.component.scss +9 -0
- package/lib/widget/todo/todo.component.ts +95 -85
- package/lib/widget/utility/utility.component.ts +0 -1
- package/package.json +1 -1
|
@@ -10,7 +10,6 @@ const SELECTION_MODE = { SINGLE: 'single', MULTI: 'multi' };
|
|
|
10
10
|
selector: 'app-data-reference',
|
|
11
11
|
templateUrl: './data-reference.component.html',
|
|
12
12
|
styleUrls: ['./data-reference.component.scss'],
|
|
13
|
-
standalone: true,
|
|
14
13
|
imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
|
|
15
14
|
})
|
|
16
15
|
export class DataReferenceComponent implements OnInit, OnDestroy {
|
|
@@ -45,19 +44,18 @@ export class DataReferenceComponent implements OnInit, OnDestroy {
|
|
|
45
44
|
ngOnInit(): void {
|
|
46
45
|
// First thing in initialization is registering and subscribing to the AngularPConnect service
|
|
47
46
|
this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
|
|
48
|
-
this.children = this.pConn$.getChildren()
|
|
47
|
+
this.children = this.pConn$.getChildren();
|
|
49
48
|
this.updateSelf();
|
|
50
49
|
if (this.firstChildMeta?.type === 'Dropdown' && this.rawViewMetadata.config?.parameters) {
|
|
51
50
|
const { value, key, text } = this.firstChildMeta.config.datasource.fields;
|
|
52
|
-
(
|
|
53
|
-
|
|
51
|
+
PCore.getDataApiUtils()
|
|
52
|
+
.getData(
|
|
54
53
|
this.refList,
|
|
55
54
|
{
|
|
56
55
|
dataViewParameters: this.parameters
|
|
57
|
-
}
|
|
56
|
+
},
|
|
58
57
|
''
|
|
59
|
-
)
|
|
60
|
-
)
|
|
58
|
+
)
|
|
61
59
|
.then(res => {
|
|
62
60
|
if (res.data.data !== null) {
|
|
63
61
|
const ddDataSource = res.data.data
|
|
@@ -103,7 +101,7 @@ export class DataReferenceComponent implements OnInit, OnDestroy {
|
|
|
103
101
|
|
|
104
102
|
updateSelf() {
|
|
105
103
|
// Update properties based on configProps
|
|
106
|
-
const theConfigProps
|
|
104
|
+
const theConfigProps = this.pConn$.getConfigProps();
|
|
107
105
|
this.updatePropertiesFromProps(theConfigProps);
|
|
108
106
|
|
|
109
107
|
const displayAs = theConfigProps.displayAs;
|
|
@@ -114,7 +112,7 @@ export class DataReferenceComponent implements OnInit, OnDestroy {
|
|
|
114
112
|
this.refList = this.rawViewMetadata.config.referenceList;
|
|
115
113
|
this.canBeChangedInReviewMode = theConfigProps.allowAndPersistChangesInReviewMode && (displayAs === 'autocomplete' || displayAs === 'dropdown');
|
|
116
114
|
// this.childrenToRender = this.children;
|
|
117
|
-
this.isDisplayModeEnabled = ['
|
|
115
|
+
this.isDisplayModeEnabled = ['DISPLAY_ONLY', 'STACKED_LARGE_VAL'].includes(displayMode);
|
|
118
116
|
|
|
119
117
|
if (this.firstChildMeta?.type !== 'Region') {
|
|
120
118
|
this.firstChildPConnect = this.pConn$.getChildren()[0].getPConnect;
|
|
@@ -187,41 +185,38 @@ export class DataReferenceComponent implements OnInit, OnDestroy {
|
|
|
187
185
|
// AutoComplete sets value on event.id whereas Dropdown sets it on event.target.value
|
|
188
186
|
const propValue = event?.id || event?.target?.value;
|
|
189
187
|
if (propValue && this.canBeChangedInReviewMode && this.isDisplayModeEnabled) {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
188
|
+
PCore.getDataApiUtils()
|
|
189
|
+
.getCaseEditLock(caseKey, '')
|
|
190
|
+
.then(caseResponse => {
|
|
191
|
+
const pageTokens = this.pConn$.getPageReference().replace('caseInfo.content', '').split('.');
|
|
192
|
+
let curr = {};
|
|
193
|
+
const commitData = curr;
|
|
194
194
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
195
|
+
pageTokens.forEach(el => {
|
|
196
|
+
if (el !== '') {
|
|
197
|
+
curr[el] = {};
|
|
198
|
+
curr = curr[el];
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
201
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
202
|
+
// expecting format like {Customer: {pyID:"C-100"}}
|
|
203
|
+
const propArr = this.propName.split('.');
|
|
204
|
+
propArr.forEach((element, idx) => {
|
|
205
|
+
if (idx + 1 === propArr.length) {
|
|
206
|
+
curr[element] = propValue;
|
|
207
|
+
} else {
|
|
208
|
+
curr[element] = {};
|
|
209
|
+
curr = curr[element];
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
212
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
) as Promise<any>
|
|
220
|
-
).then(response => {
|
|
221
|
-
PCore.getContainerUtils().updateParentLastUpdateTime(this.pConn$.getContextName(), response.data.data.caseInfo.lastUpdateTime);
|
|
222
|
-
PCore.getContainerUtils().updateRelatedContextEtag(this.pConn$.getContextName(), response.headers.etag);
|
|
213
|
+
PCore.getCaseUtils()
|
|
214
|
+
.updateCaseEditFieldsData(caseKey, { [caseKey]: commitData }, caseResponse.headers.etag, this.pConn$.getContextName())
|
|
215
|
+
.then(response => {
|
|
216
|
+
PCore.getContainerUtils().updateParentLastUpdateTime(this.pConn$.getContextName(), response.data.data.caseInfo.lastUpdateTime);
|
|
217
|
+
PCore.getContainerUtils().updateRelatedContextEtag(this.pConn$.getContextName(), response.headers.etag);
|
|
218
|
+
});
|
|
223
219
|
});
|
|
224
|
-
});
|
|
225
220
|
}
|
|
226
221
|
}
|
|
227
222
|
|
|
@@ -235,7 +230,7 @@ export class DataReferenceComponent implements OnInit, OnDestroy {
|
|
|
235
230
|
property: this.propName,
|
|
236
231
|
category: '',
|
|
237
232
|
context: ''
|
|
238
|
-
}
|
|
233
|
+
});
|
|
239
234
|
if (!this.canBeChangedInReviewMode && this.isDisplayModeEnabled && this.selectionMode === SELECTION_MODE.SINGLE) {
|
|
240
235
|
this.displaySingleRef = true;
|
|
241
236
|
}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
<!-- When adding a component here, add the same component in 'region' template as well -->
|
|
2
|
-
<div *ngIf="!NO_HEADER_TEMPLATES.includes(template) && showLabel">
|
|
3
|
-
<div class="template-title-container">{{ label }}</div>
|
|
4
|
-
</div>
|
|
5
1
|
<div *ngIf="instructions" class="psdk-default-form-instruction-text">
|
|
6
2
|
<div key="instructions" id="instruction-text" [innerHTML]="instructions"></div>
|
|
7
3
|
</div>
|
|
@@ -1,14 +1,26 @@
|
|
|
1
1
|
import { Component, OnInit, Input, forwardRef } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { FormGroup } from '@angular/forms';
|
|
4
|
+
import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
|
|
4
5
|
import { ReferenceComponent } from '@pega/angular-sdk-components';
|
|
5
6
|
import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
6
7
|
import { TemplateUtils } from '@pega/angular-sdk-components';
|
|
8
|
+
import { FormTemplateBase } from '@pega/angular-sdk-components';
|
|
9
|
+
|
|
10
|
+
function areViewsChanged(oldViews: any[], newViews: any[]): boolean {
|
|
11
|
+
if (oldViews?.length !== newViews?.length) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return !oldViews?.every((oldView, index) => {
|
|
16
|
+
const newView = newViews[index];
|
|
17
|
+
return oldView.getPConnect().viewName === newView.getPConnect().viewName;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
7
20
|
|
|
8
21
|
interface DefaultFormProps {
|
|
9
22
|
// If any, enter additional props that only exist on this component
|
|
10
23
|
NumCols: string;
|
|
11
|
-
template: string;
|
|
12
24
|
instructions: string;
|
|
13
25
|
}
|
|
14
26
|
|
|
@@ -16,40 +28,40 @@ interface DefaultFormProps {
|
|
|
16
28
|
selector: 'app-default-form',
|
|
17
29
|
templateUrl: './default-form.component.html',
|
|
18
30
|
styleUrls: ['./default-form.component.scss'],
|
|
19
|
-
standalone: true,
|
|
20
31
|
imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
|
|
21
32
|
})
|
|
22
|
-
export class DefaultFormComponent implements OnInit {
|
|
23
|
-
@Input() pConn$: typeof PConnect;
|
|
33
|
+
export class DefaultFormComponent extends FormTemplateBase implements OnInit {
|
|
34
|
+
@Input() override pConn$: typeof PConnect;
|
|
24
35
|
@Input() formGroup$: FormGroup;
|
|
25
36
|
|
|
37
|
+
// Used with AngularPConnect
|
|
38
|
+
override angularPConnectData: AngularPConnectData = {};
|
|
39
|
+
|
|
26
40
|
arChildren$: any[];
|
|
27
41
|
divClass$: string;
|
|
28
|
-
template: any;
|
|
29
|
-
showLabel: any;
|
|
30
|
-
label: any;
|
|
31
42
|
instructions: string;
|
|
32
43
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
'NarrowWideDetails',
|
|
40
|
-
'WideNarrowDetails',
|
|
41
|
-
'Confirmation'
|
|
42
|
-
];
|
|
43
|
-
|
|
44
|
-
constructor(private templateUtils: TemplateUtils) {}
|
|
44
|
+
constructor(
|
|
45
|
+
private angularPConnect: AngularPConnectService,
|
|
46
|
+
private templateUtils: TemplateUtils
|
|
47
|
+
) {
|
|
48
|
+
super();
|
|
49
|
+
}
|
|
45
50
|
|
|
46
51
|
ngOnInit(): void {
|
|
52
|
+
// First thing in initialization is registering and subscribing to the AngularPConnect service
|
|
53
|
+
this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
|
|
54
|
+
|
|
55
|
+
this.updateSelf();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
onStateChange() {
|
|
59
|
+
this.updateSelf();
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
updateSelf() {
|
|
47
63
|
const configProps = this.pConn$.getConfigProps() as DefaultFormProps;
|
|
48
|
-
|
|
49
|
-
const propToUse: any = { ...this.pConn$.getInheritedProps() };
|
|
50
|
-
this.showLabel = propToUse?.showLabel;
|
|
51
|
-
this.label = propToUse?.label;
|
|
52
|
-
const kids = this.pConn$.getChildren() as any[];
|
|
64
|
+
const kids = this.pConn$.getChildren();
|
|
53
65
|
this.instructions = this.templateUtils.getInstructions(this.pConn$, configProps?.instructions);
|
|
54
66
|
|
|
55
67
|
const numCols = configProps.NumCols ? configProps.NumCols : '1';
|
|
@@ -71,6 +83,10 @@ export class DefaultFormComponent implements OnInit {
|
|
|
71
83
|
// repoint children before getting templateArray
|
|
72
84
|
// Children may contain 'reference' component, so we need to
|
|
73
85
|
// normalize them
|
|
74
|
-
|
|
86
|
+
const children = ReferenceComponent.normalizePConnArray(kids[0].getPConnect().getChildren());
|
|
87
|
+
|
|
88
|
+
if (areViewsChanged(this.arChildren$, children)) {
|
|
89
|
+
this.arChildren$ = children;
|
|
90
|
+
}
|
|
75
91
|
}
|
|
76
92
|
}
|
|
@@ -1,57 +1,22 @@
|
|
|
1
|
-
import { Component,
|
|
2
|
-
import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
|
|
1
|
+
import { Component, forwardRef } from '@angular/core';
|
|
3
2
|
import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
3
|
+
import { DetailsTemplateBase } from '@pega/angular-sdk-components';
|
|
4
4
|
|
|
5
5
|
@Component({
|
|
6
6
|
selector: 'app-details',
|
|
7
7
|
templateUrl: './details.component.html',
|
|
8
8
|
styleUrls: ['./details.component.scss'],
|
|
9
|
-
standalone: true,
|
|
10
9
|
imports: [forwardRef(() => ComponentMapperComponent)]
|
|
11
10
|
})
|
|
12
|
-
export class DetailsComponent
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@Input() pConn$: typeof PConnect;
|
|
11
|
+
export class DetailsComponent extends DetailsTemplateBase {
|
|
12
|
+
override pConn$: typeof PConnect;
|
|
16
13
|
|
|
17
14
|
highlightedDataArr: any[] = [];
|
|
18
15
|
showHighlightedData: boolean;
|
|
19
16
|
arFields$: any[] = [];
|
|
20
17
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
ngOnInit(): void {
|
|
25
|
-
// First thing in initialization is registering and subscribing to the AngularPConnect service
|
|
26
|
-
this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
|
|
27
|
-
|
|
28
|
-
// this.updateSelf();
|
|
29
|
-
this.checkAndUpdate();
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
ngOnDestroy() {
|
|
33
|
-
if (this.angularPConnectData.unsubscribeFn) {
|
|
34
|
-
this.angularPConnectData.unsubscribeFn();
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
onStateChange() {
|
|
39
|
-
this.checkAndUpdate();
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
checkAndUpdate() {
|
|
43
|
-
// Should always check the bridge to see if the component should
|
|
44
|
-
// update itself (re-render)
|
|
45
|
-
const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
|
|
46
|
-
|
|
47
|
-
// ONLY call updateSelf when the component should update
|
|
48
|
-
if (bUpdateSelf) {
|
|
49
|
-
this.updateSelf();
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
updateSelf() {
|
|
54
|
-
const rawMetaData: any = this.pConn$.resolveConfigProps((this.pConn$.getRawMetadata() as any).config);
|
|
18
|
+
override updateSelf() {
|
|
19
|
+
const rawMetaData: any = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);
|
|
55
20
|
this.showHighlightedData = rawMetaData?.showHighlightedData;
|
|
56
21
|
|
|
57
22
|
if (this.showHighlightedData) {
|
|
@@ -79,7 +44,7 @@ export class DetailsComponent implements OnInit, OnDestroy {
|
|
|
79
44
|
if (theCompType === 'reference' || theCompType === 'group') {
|
|
80
45
|
const configProps = thePConn.getConfigProps();
|
|
81
46
|
configProps.readOnly = true;
|
|
82
|
-
configProps.displayMode = '
|
|
47
|
+
configProps.displayMode = 'DISPLAY_ONLY';
|
|
83
48
|
const propToUse = { ...thePConn.getInheritedProps() };
|
|
84
49
|
configProps.label = propToUse?.label;
|
|
85
50
|
const options = {
|
|
@@ -1,57 +1,23 @@
|
|
|
1
|
-
import { Component,
|
|
2
|
-
import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
|
|
1
|
+
import { Component, forwardRef } from '@angular/core';
|
|
3
2
|
import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
3
|
+
import { DetailsTemplateBase } from '@pega/angular-sdk-components';
|
|
4
4
|
|
|
5
5
|
@Component({
|
|
6
6
|
selector: 'app-details-narrow-wide',
|
|
7
7
|
templateUrl: './details-narrow-wide.component.html',
|
|
8
8
|
styleUrls: ['./details-narrow-wide.component.scss'],
|
|
9
|
-
standalone: true,
|
|
10
9
|
imports: [forwardRef(() => ComponentMapperComponent)]
|
|
11
10
|
})
|
|
12
|
-
export class DetailsNarrowWideComponent
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@Input() pConn$: typeof PConnect;
|
|
11
|
+
export class DetailsNarrowWideComponent extends DetailsTemplateBase {
|
|
12
|
+
override pConn$: typeof PConnect;
|
|
16
13
|
|
|
17
14
|
arFields$: any[] = [];
|
|
18
15
|
arFields2$: any[] = [];
|
|
19
16
|
highlightedDataArr: any[] = [];
|
|
20
17
|
showHighlightedData: boolean;
|
|
21
|
-
// Used with AngularPConnect
|
|
22
|
-
angularPConnectData: AngularPConnectData = {};
|
|
23
|
-
|
|
24
|
-
ngOnInit(): void {
|
|
25
|
-
// First thing in initialization is registering and subscribing to the AngularPConnect service
|
|
26
|
-
this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
|
|
27
|
-
|
|
28
|
-
// this.updateSelf();
|
|
29
|
-
this.checkAndUpdate();
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
ngOnDestroy() {
|
|
33
|
-
if (this.angularPConnectData.unsubscribeFn) {
|
|
34
|
-
this.angularPConnectData.unsubscribeFn();
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
onStateChange() {
|
|
39
|
-
this.checkAndUpdate();
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
checkAndUpdate() {
|
|
43
|
-
// Should always check the bridge to see if the component should
|
|
44
|
-
// update itself (re-render)
|
|
45
|
-
const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
|
|
46
|
-
|
|
47
|
-
// ONLY call updateSelf when the component should update
|
|
48
|
-
if (bUpdateSelf) {
|
|
49
|
-
this.updateSelf();
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
18
|
|
|
53
|
-
updateSelf() {
|
|
54
|
-
const rawMetaData: any = this.pConn$.resolveConfigProps(
|
|
19
|
+
override updateSelf() {
|
|
20
|
+
const rawMetaData: any = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);
|
|
55
21
|
this.showHighlightedData = rawMetaData?.showHighlightedData;
|
|
56
22
|
|
|
57
23
|
if (this.showHighlightedData) {
|
|
@@ -1,59 +1,23 @@
|
|
|
1
|
-
import { Component,
|
|
2
|
-
import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
|
|
3
|
-
import { FormGroup } from '@angular/forms';
|
|
1
|
+
import { Component, forwardRef } from '@angular/core';
|
|
4
2
|
import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
3
|
+
import { DetailsTemplateBase } from '@pega/angular-sdk-components';
|
|
5
4
|
|
|
6
5
|
@Component({
|
|
7
6
|
selector: 'app-details-one-column',
|
|
8
7
|
templateUrl: './details-one-column.component.html',
|
|
9
8
|
styleUrls: ['./details-one-column.component.scss'],
|
|
10
|
-
standalone: true,
|
|
11
9
|
imports: [forwardRef(() => ComponentMapperComponent)]
|
|
12
10
|
})
|
|
13
|
-
export class DetailsOneColumnComponent
|
|
14
|
-
|
|
11
|
+
export class DetailsOneColumnComponent extends DetailsTemplateBase {
|
|
12
|
+
override pConn$: typeof PConnect;
|
|
15
13
|
|
|
16
|
-
@Input() pConn$: typeof PConnect;
|
|
17
|
-
@Input() formGroup$: FormGroup;
|
|
18
14
|
showHighlightedData: boolean;
|
|
19
15
|
highlightedDataArr: any;
|
|
20
16
|
|
|
21
17
|
arFields$: any[] = [];
|
|
22
18
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
ngOnInit(): void {
|
|
27
|
-
// First thing in initialization is registering and subscribing to the AngularPConnect service
|
|
28
|
-
this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
|
|
29
|
-
|
|
30
|
-
// this.updateSelf();
|
|
31
|
-
this.checkAndUpdate();
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
ngOnDestroy() {
|
|
35
|
-
if (this.angularPConnectData.unsubscribeFn) {
|
|
36
|
-
this.angularPConnectData.unsubscribeFn();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
onStateChange() {
|
|
41
|
-
this.checkAndUpdate();
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
checkAndUpdate() {
|
|
45
|
-
// Should always check the bridge to see if the component should
|
|
46
|
-
// update itself (re-render)
|
|
47
|
-
const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
|
|
48
|
-
|
|
49
|
-
// ONLY call updateSelf when the component should update
|
|
50
|
-
if (bUpdateSelf) {
|
|
51
|
-
this.updateSelf();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
updateSelf() {
|
|
56
|
-
const rawMetaData: any = this.pConn$.resolveConfigProps((this.pConn$.getRawMetadata() as any).config);
|
|
19
|
+
override updateSelf() {
|
|
20
|
+
const rawMetaData: any = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);
|
|
57
21
|
this.showHighlightedData = rawMetaData?.showHighlightedData;
|
|
58
22
|
|
|
59
23
|
if (this.showHighlightedData) {
|
|
@@ -70,7 +34,7 @@ export class DetailsOneColumnComponent implements OnInit, OnDestroy {
|
|
|
70
34
|
});
|
|
71
35
|
}
|
|
72
36
|
|
|
73
|
-
this.pConn$.setInheritedProp('displayMode', '
|
|
37
|
+
this.pConn$.setInheritedProp('displayMode', 'DISPLAY_ONLY');
|
|
74
38
|
this.pConn$.setInheritedProp('readOnly', true);
|
|
75
39
|
|
|
76
40
|
const kids = this.pConn$.getChildren() as any[];
|
|
@@ -5,8 +5,7 @@
|
|
|
5
5
|
*ngIf="tab.content?.getPConnect()"
|
|
6
6
|
[name]="tab.content?.getPConnect().getComponentName()"
|
|
7
7
|
[props]="{
|
|
8
|
-
pConn$: tab.content?.getPConnect()
|
|
9
|
-
formGroup$: formGroup$
|
|
8
|
+
pConn$: tab.content?.getPConnect()
|
|
10
9
|
}"
|
|
11
10
|
errorMsg="Details Sub tabs wants component not yet available: {{ tab.content?.getPConnect().getComponentName() }}"
|
|
12
11
|
></component-mapper>
|
|
@@ -1,57 +1,24 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { Component, forwardRef } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { FormGroup } from '@angular/forms';
|
|
4
3
|
import { MatTabsModule } from '@angular/material/tabs';
|
|
5
|
-
import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
|
|
6
4
|
import { getTransientTabs, getVisibleTabs, tabClick } from '@pega/angular-sdk-components';
|
|
7
5
|
import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
6
|
+
import { DetailsTemplateBase } from '@pega/angular-sdk-components';
|
|
8
7
|
|
|
9
8
|
@Component({
|
|
10
9
|
selector: 'app-details-sub-tabs',
|
|
11
10
|
templateUrl: './details-sub-tabs.component.html',
|
|
12
11
|
styleUrls: ['./details-sub-tabs.component.scss'],
|
|
13
|
-
standalone: true,
|
|
14
12
|
imports: [MatTabsModule, CommonModule, forwardRef(() => ComponentMapperComponent)]
|
|
15
13
|
})
|
|
16
|
-
export class DetailsSubTabsComponent
|
|
17
|
-
|
|
18
|
-
@Input() formGroup$: FormGroup;
|
|
14
|
+
export class DetailsSubTabsComponent extends DetailsTemplateBase {
|
|
15
|
+
override pConn$: typeof PConnect;
|
|
19
16
|
|
|
20
|
-
angularPConnectData: AngularPConnectData = {};
|
|
21
17
|
currentTabId = '0';
|
|
22
18
|
tabItems: any[];
|
|
23
19
|
availableTabs: any[];
|
|
24
20
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
ngOnInit(): void {
|
|
28
|
-
// First thing in initialization is registering and subscribing to the AngularPConnect service
|
|
29
|
-
this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
|
|
30
|
-
this.checkAndUpdate();
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
ngOnDestroy() {
|
|
34
|
-
if (this.angularPConnectData.unsubscribeFn) {
|
|
35
|
-
this.angularPConnectData.unsubscribeFn();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
onStateChange() {
|
|
40
|
-
this.checkAndUpdate();
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
checkAndUpdate() {
|
|
44
|
-
// Should always check the bridge to see if the component should
|
|
45
|
-
// update itself (re-render)
|
|
46
|
-
const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
|
|
47
|
-
|
|
48
|
-
// ONLY call updateSelf when the component should update
|
|
49
|
-
if (bUpdateSelf) {
|
|
50
|
-
this.updateSelf();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
updateSelf() {
|
|
21
|
+
override updateSelf() {
|
|
55
22
|
const children = this.pConn$?.getChildren();
|
|
56
23
|
const deferLoadedTabs = children[0];
|
|
57
24
|
this.availableTabs = getVisibleTabs(deferLoadedTabs, 'tabsSubs');
|
|
@@ -1,20 +1,15 @@
|
|
|
1
|
-
import { Component,
|
|
2
|
-
import { FormGroup } from '@angular/forms';
|
|
3
|
-
import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
|
|
1
|
+
import { Component, forwardRef } from '@angular/core';
|
|
4
2
|
import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
3
|
+
import { DetailsTemplateBase } from '@pega/angular-sdk-components';
|
|
5
4
|
|
|
6
5
|
@Component({
|
|
7
6
|
selector: 'app-details-three-column',
|
|
8
7
|
templateUrl: './details-three-column.component.html',
|
|
9
8
|
styleUrls: ['./details-three-column.component.scss'],
|
|
10
|
-
standalone: true,
|
|
11
9
|
imports: [forwardRef(() => ComponentMapperComponent)]
|
|
12
10
|
})
|
|
13
|
-
export class DetailsThreeColumnComponent
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
@Input() pConn$: typeof PConnect;
|
|
17
|
-
@Input() formGroup$: FormGroup;
|
|
11
|
+
export class DetailsThreeColumnComponent extends DetailsTemplateBase {
|
|
12
|
+
override pConn$: typeof PConnect;
|
|
18
13
|
|
|
19
14
|
showHighlightedData: boolean;
|
|
20
15
|
highlightedDataArr: any;
|
|
@@ -25,40 +20,8 @@ export class DetailsThreeColumnComponent implements OnInit, OnDestroy {
|
|
|
25
20
|
|
|
26
21
|
propsToUse: any = {};
|
|
27
22
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
ngOnInit(): void {
|
|
32
|
-
// First thing in initialization is registering and subscribing to the AngularPConnect service
|
|
33
|
-
this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
|
|
34
|
-
|
|
35
|
-
// this.updateSelf();
|
|
36
|
-
this.checkAndUpdate();
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
ngOnDestroy() {
|
|
40
|
-
if (this.angularPConnectData.unsubscribeFn) {
|
|
41
|
-
this.angularPConnectData.unsubscribeFn();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
onStateChange() {
|
|
46
|
-
this.checkAndUpdate();
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
checkAndUpdate() {
|
|
50
|
-
// Should always check the bridge to see if the component should
|
|
51
|
-
// update itself (re-render)
|
|
52
|
-
const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
|
|
53
|
-
|
|
54
|
-
// ONLY call updateSelf when the component should update
|
|
55
|
-
if (bUpdateSelf) {
|
|
56
|
-
this.updateSelf();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
updateSelf() {
|
|
61
|
-
const rawMetaData: any = this.pConn$.resolveConfigProps((this.pConn$.getRawMetadata() as any).config);
|
|
23
|
+
override updateSelf() {
|
|
24
|
+
const rawMetaData: any = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);
|
|
62
25
|
this.showHighlightedData = rawMetaData?.showHighlightedData;
|
|
63
26
|
|
|
64
27
|
if (this.showHighlightedData) {
|
|
@@ -75,7 +38,7 @@ export class DetailsThreeColumnComponent implements OnInit, OnDestroy {
|
|
|
75
38
|
});
|
|
76
39
|
}
|
|
77
40
|
|
|
78
|
-
this.pConn$.setInheritedProp('displayMode', '
|
|
41
|
+
this.pConn$.setInheritedProp('displayMode', 'DISPLAY_ONLY');
|
|
79
42
|
this.pConn$.setInheritedProp('readOnly', true);
|
|
80
43
|
|
|
81
44
|
const kids = this.pConn$.getChildren() as any[];
|