@pega/angular-sdk-overrides 0.24.9 → 0.25.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/designSystemExtension/alert/alert.component.scss +3 -3
- 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.scss +12 -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.html +6 -3
- package/lib/designSystemExtension/material-case-summary/material-case-summary.component.scss +7 -35
- package/lib/designSystemExtension/material-case-summary/material-case-summary.component.ts +0 -2
- package/lib/designSystemExtension/material-details/material-details.component.scss +0 -5
- package/lib/designSystemExtension/material-details/material-details.component.ts +0 -1
- package/lib/designSystemExtension/material-details-fields/material-details-fields.component.html +4 -4
- package/lib/designSystemExtension/material-details-fields/material-details-fields.component.scss +4 -3
- package/lib/designSystemExtension/material-details-fields/material-details-fields.component.ts +10 -2
- package/lib/designSystemExtension/material-summary-item/material-summary-item.component.scss +2 -17
- 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-utility/material-utility.component.scss +1 -2
- package/lib/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.scss +1 -1
- package/lib/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.ts +0 -1
- package/lib/designSystemExtension/operator/operator.component.html +2 -2
- package/lib/designSystemExtension/operator/operator.component.scss +13 -12
- package/lib/designSystemExtension/operator/operator.component.ts +5 -6
- package/lib/designSystemExtension/pulse/pulse.component.scss +2 -2
- package/lib/designSystemExtension/pulse/pulse.component.ts +7 -8
- package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.scss +0 -1
- package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.ts +0 -1
- package/lib/designSystemExtension/wss-quick-create/wss-quick-create.component.scss +16 -8
- package/lib/designSystemExtension/wss-quick-create/wss-quick-create.component.ts +0 -1
- package/lib/field/auto-complete/auto-complete.component.html +0 -2
- package/lib/field/auto-complete/auto-complete.component.ts +56 -178
- package/lib/field/cancel-alert/cancel-alert.component.html +8 -12
- package/lib/field/cancel-alert/cancel-alert.component.scss +2 -3
- package/lib/field/cancel-alert/cancel-alert.component.ts +24 -37
- package/lib/field/check-box/check-box.component.html +17 -6
- package/lib/field/check-box/check-box.component.scss +0 -1
- package/lib/field/check-box/check-box.component.ts +32 -157
- package/lib/field/currency/currency.component.html +4 -4
- package/lib/field/currency/currency.component.ts +65 -175
- package/lib/field/date/date.component.html +4 -8
- package/lib/field/date/date.component.ts +39 -177
- package/lib/field/date-time/date-time.component.html +3 -4
- package/lib/field/date-time/date-time.component.ts +46 -146
- package/lib/field/decimal/decimal.component.html +4 -3
- package/lib/field/decimal/decimal.component.ts +66 -166
- package/lib/field/dropdown/dropdown.component.html +1 -0
- package/lib/field/dropdown/dropdown.component.ts +158 -153
- package/lib/field/email/email.component.ts +28 -148
- package/lib/field/field.base.ts +149 -0
- package/lib/field/group/group.component.ts +9 -7
- package/lib/field/integer/integer.component.ts +30 -152
- 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 +56 -151
- package/lib/field/multiselect/utils.ts +55 -47
- package/lib/field/object-reference/object-reference.component.html +17 -0
- package/lib/field/object-reference/object-reference.component.scss +0 -0
- package/lib/field/object-reference/object-reference.component.spec.ts +22 -0
- package/lib/field/object-reference/object-reference.component.ts +237 -0
- package/lib/field/percentage/percentage.component.html +3 -3
- package/lib/field/percentage/percentage.component.ts +68 -161
- 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 +48 -159
- package/lib/field/radio-buttons/radio-buttons.component.html +17 -12
- package/lib/field/radio-buttons/radio-buttons.component.scss +4 -2
- package/lib/field/radio-buttons/radio-buttons.component.ts +39 -162
- package/lib/field/rich-text/rich-text.component.ts +32 -93
- package/lib/field/scalar-list/scalar-list.component.ts +20 -77
- package/lib/field/selectable-card/selectable-card.component.html +70 -0
- package/lib/field/selectable-card/selectable-card.component.scss +11 -0
- package/lib/field/selectable-card/selectable-card.component.spec.ts +22 -0
- package/lib/field/selectable-card/selectable-card.component.ts +219 -0
- package/lib/field/semantic-link/semantic-link.component.html +4 -8
- package/lib/field/semantic-link/semantic-link.component.scss +0 -13
- package/lib/field/semantic-link/semantic-link.component.ts +165 -6
- package/lib/field/text/text.component.scss +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 +30 -148
- package/lib/field/text-content/text-content.component.ts +0 -1
- package/lib/field/text-input/text-input.component.ts +28 -150
- package/lib/field/time/time.component.html +2 -2
- package/lib/field/time/time.component.ts +39 -145
- package/lib/field/url/url.component.ts +28 -149
- package/lib/field/user-reference/user-reference.component.html +40 -46
- package/lib/field/user-reference/user-reference.component.scss +0 -1
- package/lib/field/user-reference/user-reference.component.ts +110 -21
- package/lib/infra/Containers/flow-container/flow-container.component.html +1 -1
- package/lib/infra/Containers/flow-container/flow-container.component.ts +29 -54
- 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 +6 -19
- package/lib/infra/Containers/preview-view-container/preview-view-container.component.ts +1 -1
- package/lib/infra/Containers/view-container/helper.ts +55 -0
- package/lib/infra/Containers/view-container/view-container.component.ts +6 -19
- package/lib/infra/action-buttons/action-buttons.component.html +13 -8
- package/lib/infra/action-buttons/action-buttons.component.scss +23 -0
- package/lib/infra/action-buttons/action-buttons.component.ts +1 -3
- package/lib/infra/assignment/assignment.component.html +1 -1
- package/lib/infra/assignment/assignment.component.ts +90 -47
- package/lib/infra/assignment-card/assignment-card.component.html +2 -2
- package/lib/infra/assignment-card/assignment-card.component.scss +0 -4
- package/lib/infra/assignment-card/assignment-card.component.ts +21 -5
- package/lib/infra/dashboard-filter/dashboard-filter.component.ts +0 -1
- package/lib/infra/defer-load/defer-load.component.html +6 -2
- package/lib/infra/defer-load/defer-load.component.ts +24 -16
- package/lib/infra/error-boundary/error-boundary.component.ts +0 -1
- package/lib/infra/multi-step/multi-step.component.scss +1 -21
- package/lib/infra/multi-step/multi-step.component.ts +0 -1
- package/lib/infra/navbar/navbar.component.html +25 -28
- package/lib/infra/navbar/navbar.component.scss +16 -4
- package/lib/infra/navbar/navbar.component.ts +11 -9
- 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.scss +0 -1
- package/lib/infra/root-container/root-container.component.ts +28 -35
- package/lib/infra/stages/stages.component.html +2 -2
- package/lib/infra/stages/stages.component.scss +9 -37
- package/lib/infra/stages/stages.component.ts +4 -3
- package/lib/infra/view/view.component.html +7 -20
- package/lib/infra/view/view.component.ts +20 -5
- package/lib/template/advanced-search/advanced-search.component.html +12 -0
- package/lib/template/advanced-search/advanced-search.component.scss +0 -0
- package/lib/template/advanced-search/advanced-search.component.spec.ts +0 -0
- package/lib/template/advanced-search/advanced-search.component.ts +112 -0
- package/lib/template/advanced-search/advanced-search.service.ts +27 -0
- package/lib/template/advanced-search/search-group/persist-utils.ts +56 -0
- package/lib/template/advanced-search/search-groups/search-groups.component.html +32 -0
- package/lib/template/advanced-search/search-groups/search-groups.component.scss +0 -0
- package/lib/template/advanced-search/search-groups/search-groups.component.spec.ts +0 -0
- package/lib/template/advanced-search/search-groups/search-groups.component.ts +294 -0
- package/lib/template/advanced-search/search-groups/utils.ts +29 -0
- package/lib/template/app-shell/app-shell.component.html +4 -1
- package/lib/template/app-shell/app-shell.component.scss +0 -3
- package/lib/template/app-shell/app-shell.component.ts +66 -10
- 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.scss +0 -2
- package/lib/template/case-summary/case-summary.component.ts +7 -23
- package/lib/template/case-view/case-view.component.html +7 -7
- package/lib/template/case-view/case-view.component.scss +18 -10
- package/lib/template/case-view/case-view.component.ts +9 -15
- 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-advanced-search.service.ts +16 -0
- package/lib/template/data-reference/data-reference.component.html +11 -8
- package/lib/template/data-reference/data-reference.component.ts +377 -148
- package/lib/template/data-reference/search-form/search-form.component.html +39 -0
- package/lib/template/data-reference/search-form/search-form.component.scss +11 -0
- package/lib/template/data-reference/search-form/search-form.component.spec.ts +0 -0
- package/lib/template/data-reference/search-form/search-form.component.ts +167 -0
- package/lib/template/data-reference/search-form/tabsData.ts +160 -0
- package/lib/template/data-reference/utils.ts +92 -0
- package/lib/template/default-form/default-form.component.html +0 -4
- package/lib/template/default-form/default-form.component.ts +50 -26
- package/lib/template/default-page/default-page.component.html +34 -0
- package/lib/template/default-page/default-page.component.scss +31 -0
- package/lib/template/default-page/default-page.component.spec.ts +24 -0
- package/lib/template/default-page/default-page.component.ts +64 -0
- 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.scss +0 -1
- 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 +14 -4
- package/lib/template/list-view/list-view.component.scss +30 -19
- package/lib/template/list-view/list-view.component.ts +179 -95
- package/lib/template/list-view/listViewHelpers.ts +4 -10
- package/lib/template/list-view/utils.ts +27 -7
- 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/object-page/object-page.component.html +1 -0
- package/lib/template/object-page/object-page.component.scss +0 -0
- package/lib/template/object-page/object-page.component.spec.ts +22 -0
- package/lib/template/object-page/object-page.component.ts +14 -0
- 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.scss +1 -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 -3
- package/lib/template/self-service-case-view/self-service-case-view.component.html +80 -0
- package/lib/template/self-service-case-view/self-service-case-view.component.scss +124 -0
- package/lib/template/self-service-case-view/self-service-case-view.component.spec.ts +24 -0
- package/lib/template/self-service-case-view/self-service-case-view.component.ts +216 -0
- package/lib/template/simple-table/simple-table.component.ts +0 -2
- package/lib/template/simple-table-manual/helpers.ts +127 -11
- package/lib/template/simple-table-manual/simple-table-manual.component.html +27 -8
- package/lib/template/simple-table-manual/simple-table-manual.component.scss +16 -17
- package/lib/template/simple-table-manual/simple-table-manual.component.ts +118 -58
- package/lib/template/simple-table-select/simple-table-select.component.ts +3 -4
- package/lib/template/single-reference-readonly/single-reference-readonly.component.html +4 -1
- package/lib/template/single-reference-readonly/single-reference-readonly.component.scss +21 -0
- package/lib/template/single-reference-readonly/single-reference-readonly.component.ts +104 -4
- 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 +58 -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.html +5 -4
- package/lib/template/wss-nav-bar/wss-nav-bar.component.scss +2 -8
- package/lib/template/wss-nav-bar/wss-nav-bar.component.ts +3 -11
- package/lib/widget/app-announcement/app-announcement.component.html +1 -2
- package/lib/widget/app-announcement/app-announcement.component.scss +2 -2
- package/lib/widget/app-announcement/app-announcement.component.ts +0 -1
- package/lib/widget/attachment/Attachment.types.ts +92 -0
- package/lib/widget/attachment/AttachmentUtils.ts +287 -0
- package/lib/widget/attachment/attachment.component.html +3 -3
- package/lib/widget/attachment/attachment.component.scss +2 -5
- package/lib/widget/attachment/attachment.component.ts +256 -259
- package/lib/widget/case-history/case-history.component.ts +0 -1
- package/lib/widget/feed-container/feed-container.component.scss +3 -9
- package/lib/widget/feed-container/feed-container.component.ts +9 -12
- package/lib/widget/file-utility/file-utility.component.html +3 -3
- package/lib/widget/file-utility/file-utility.component.scss +5 -16
- package/lib/widget/file-utility/file-utility.component.ts +2 -6
- package/lib/widget/list-utility/list-utility.component.scss +3 -5
- 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 +13 -11
- package/lib/widget/todo/todo.component.scss +19 -11
- package/lib/widget/todo/todo.component.ts +101 -87
- package/lib/widget/utility/utility.component.ts +0 -1
- package/package.json +1 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint-disable max-classes-per-file */
|
|
2
1
|
import { Component, OnInit, Input, ViewChild, forwardRef, OnDestroy } from '@angular/core';
|
|
3
2
|
import { CommonModule } from '@angular/common';
|
|
4
3
|
import { FormGroup } from '@angular/forms';
|
|
@@ -10,6 +9,7 @@ import { MatMenuModule } from '@angular/material/menu';
|
|
|
10
9
|
import { MatOptionModule } from '@angular/material/core';
|
|
11
10
|
import { MatSelectModule } from '@angular/material/select';
|
|
12
11
|
import { MatSort, MatSortModule } from '@angular/material/sort';
|
|
12
|
+
import { MatIcon } from '@angular/material/icon';
|
|
13
13
|
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
|
|
14
14
|
import isEqual from 'fast-deep-equal';
|
|
15
15
|
|
|
@@ -18,11 +18,10 @@ import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-c
|
|
|
18
18
|
import { DatapageService } from '@pega/angular-sdk-components';
|
|
19
19
|
import { getReferenceList } from '@pega/angular-sdk-components';
|
|
20
20
|
import { buildFieldsForTable, filterDataByCommonFields, filterDataByDate, getContext } from './helpers';
|
|
21
|
+
import { evaluateAllowRowAction } from '@pega/angular-sdk-components';
|
|
21
22
|
import { Utils } from '@pega/angular-sdk-components';
|
|
22
23
|
import { getSeconds } from '@pega/angular-sdk-components';
|
|
23
24
|
|
|
24
|
-
declare const window: any;
|
|
25
|
-
|
|
26
25
|
interface SimpleTableManualProps {
|
|
27
26
|
// If any, enter additional props that only exist on this component
|
|
28
27
|
visibility?: boolean;
|
|
@@ -37,7 +36,9 @@ interface SimpleTableManualProps {
|
|
|
37
36
|
contextClass?: string;
|
|
38
37
|
propertyLabel?: string;
|
|
39
38
|
fieldMetadata?: any;
|
|
39
|
+
allowActions?: any;
|
|
40
40
|
allowTableEdit?: boolean;
|
|
41
|
+
allowRowDelete?: any;
|
|
41
42
|
editMode?: string;
|
|
42
43
|
addAndEditRowsWithin?: any;
|
|
43
44
|
viewForAddAndEditModal?: any;
|
|
@@ -45,6 +46,7 @@ interface SimpleTableManualProps {
|
|
|
45
46
|
displayMode?: string;
|
|
46
47
|
useSeparateViewForEdit: any;
|
|
47
48
|
viewForEditModal: any;
|
|
49
|
+
targetClassLabel: string;
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
class Group {
|
|
@@ -61,7 +63,6 @@ class Group {
|
|
|
61
63
|
selector: 'app-simple-table-manual',
|
|
62
64
|
templateUrl: './simple-table-manual.component.html',
|
|
63
65
|
styleUrls: ['./simple-table-manual.component.scss'],
|
|
64
|
-
standalone: true,
|
|
65
66
|
imports: [
|
|
66
67
|
CommonModule,
|
|
67
68
|
MatTableModule,
|
|
@@ -73,8 +74,10 @@ class Group {
|
|
|
73
74
|
MatOptionModule,
|
|
74
75
|
MatSelectModule,
|
|
75
76
|
MatInputModule,
|
|
77
|
+
MatIcon,
|
|
76
78
|
forwardRef(() => ComponentMapperComponent)
|
|
77
|
-
]
|
|
79
|
+
],
|
|
80
|
+
providers: [DatapageService]
|
|
78
81
|
})
|
|
79
82
|
export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
80
83
|
@ViewChild(MatSort) sort: MatSort;
|
|
@@ -103,6 +106,7 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
103
106
|
showAddRowButton: boolean;
|
|
104
107
|
prevReferenceList: any[] = [];
|
|
105
108
|
elementsData: MatTableDataSource<any>;
|
|
109
|
+
originalElementsData: MatTableDataSource<any>;
|
|
106
110
|
rawFields: any;
|
|
107
111
|
label?: string = '';
|
|
108
112
|
searchIcon$: string;
|
|
@@ -158,14 +162,17 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
158
162
|
settingsSvgIcon$: string;
|
|
159
163
|
|
|
160
164
|
isInitialized = false;
|
|
161
|
-
|
|
165
|
+
targetClassLabel: string;
|
|
166
|
+
localizedVal = PCore.getLocaleUtils().getLocaleValue;
|
|
167
|
+
localeCategory = 'SimpleTable';
|
|
162
168
|
constructor(
|
|
163
169
|
private angularPConnect: AngularPConnectService,
|
|
164
|
-
|
|
170
|
+
public utils: Utils,
|
|
165
171
|
private dataPageService: DatapageService
|
|
166
172
|
) {}
|
|
167
173
|
|
|
168
174
|
ngOnInit(): void {
|
|
175
|
+
this.elementsData = new MatTableDataSource<any>([]);
|
|
169
176
|
this.isInitialized = true;
|
|
170
177
|
// First thing in initialization is registering and subscribing to the AngularPConnect service
|
|
171
178
|
this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
|
|
@@ -211,7 +218,6 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
211
218
|
this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as SimpleTableManualProps;
|
|
212
219
|
|
|
213
220
|
if (this.configProps$.visibility != null) {
|
|
214
|
-
// eslint-disable-next-line no-multi-assign
|
|
215
221
|
this.bVisible$ = this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);
|
|
216
222
|
}
|
|
217
223
|
|
|
@@ -219,7 +225,7 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
219
225
|
// but getRawMetadata() has each child.config with datasource and value showing their unresolved values (ex: "@P thePropName")
|
|
220
226
|
// We need to use the prop name as the "glue" to tie the Angular Material table dataSource, displayColumns and data together.
|
|
221
227
|
// So, in the code below, we'll use the unresolved config.value (but replacing the space with an underscore to keep things happy)
|
|
222
|
-
const rawMetadata
|
|
228
|
+
const rawMetadata = this.pConn$.getRawMetadata();
|
|
223
229
|
|
|
224
230
|
// Adapted from Nebula
|
|
225
231
|
const {
|
|
@@ -227,7 +233,9 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
227
233
|
renderMode,
|
|
228
234
|
children, // destructure children into an array var: "resolvedFields"
|
|
229
235
|
presets,
|
|
236
|
+
allowActions,
|
|
230
237
|
allowTableEdit,
|
|
238
|
+
allowRowDelete,
|
|
231
239
|
label: labelProp,
|
|
232
240
|
propertyLabel,
|
|
233
241
|
fieldMetadata,
|
|
@@ -237,15 +245,26 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
237
245
|
editModeConfig,
|
|
238
246
|
displayMode,
|
|
239
247
|
useSeparateViewForEdit,
|
|
240
|
-
viewForEditModal
|
|
248
|
+
viewForEditModal,
|
|
249
|
+
targetClassLabel
|
|
241
250
|
} = this.configProps$;
|
|
242
251
|
|
|
252
|
+
const simpleTableManualProps: any = {};
|
|
253
|
+
if (this.checkIfAllowActionsOrRowEditingExist(allowActions) && editMode) {
|
|
254
|
+
simpleTableManualProps.hideAddRow = allowActions?.allowAdd === false;
|
|
255
|
+
simpleTableManualProps.hideDeleteRow = allowActions?.allowDelete === false;
|
|
256
|
+
simpleTableManualProps.hideEditRow = allowActions?.allowEdit === false;
|
|
257
|
+
simpleTableManualProps.disableDragDrop = allowActions?.allowDragDrop === false;
|
|
258
|
+
} else if (allowTableEdit === false) {
|
|
259
|
+
simpleTableManualProps.hideAddRow = true;
|
|
260
|
+
simpleTableManualProps.hideDeleteRow = true;
|
|
261
|
+
simpleTableManualProps.disableDragDrop = true;
|
|
262
|
+
}
|
|
263
|
+
|
|
243
264
|
this.referenceListStr = getContext(this.pConn$).referenceListStr;
|
|
244
265
|
this.label = labelProp || propertyLabel;
|
|
245
266
|
this.parameters = fieldMetadata?.datasource?.parameters;
|
|
246
|
-
|
|
247
|
-
const hideAddRow = allowTableEdit === false;
|
|
248
|
-
const hideDeleteRow = allowTableEdit === false;
|
|
267
|
+
this.targetClassLabel = targetClassLabel;
|
|
249
268
|
let { contextClass } = this.configProps$;
|
|
250
269
|
this.referenceList = referenceList;
|
|
251
270
|
if (!contextClass) {
|
|
@@ -262,7 +281,7 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
262
281
|
// config.value (ex: "@P .DeclarantChoice") or
|
|
263
282
|
// config.datasource (ex: "@ASSOCIATED .DeclarantChoice")
|
|
264
283
|
// Neither of these appear in the resolved (this.configProps$)
|
|
265
|
-
const rawConfig = rawMetadata?.config;
|
|
284
|
+
const rawConfig: any = rawMetadata?.config;
|
|
266
285
|
const rawFields = rawConfig?.children?.[0]?.children || rawConfig?.presets?.[0].children?.[0]?.children;
|
|
267
286
|
this.rawFields = rawFields;
|
|
268
287
|
// At this point, fields has resolvedFields and rawFields we can use
|
|
@@ -282,13 +301,14 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
282
301
|
this.readOnlyMode = renderMode === 'ReadOnly';
|
|
283
302
|
this.editableMode = renderMode === 'Editable';
|
|
284
303
|
const isDisplayModeEnabled = displayMode === 'DISPLAY_ONLY';
|
|
285
|
-
this.showAddRowButton = !this.readOnlyMode && !hideAddRow;
|
|
304
|
+
this.showAddRowButton = !this.readOnlyMode && !simpleTableManualProps.hideAddRow;
|
|
286
305
|
this.allowEditingInModal =
|
|
287
306
|
(editMode ? editMode === 'modal' : addAndEditRowsWithin === 'modal') && !(renderMode === 'ReadOnly' || isDisplayModeEnabled);
|
|
288
|
-
const showDeleteButton = this.editableMode && !hideDeleteRow;
|
|
307
|
+
const showDeleteButton = this.editableMode && !simpleTableManualProps.hideDeleteRow && evaluateAllowRowAction(allowRowDelete, this.rowData);
|
|
289
308
|
this.defaultView = editModeConfig ? editModeConfig.defaultView : viewForAddAndEditModal;
|
|
290
309
|
this.bUseSeparateViewForEdit = editModeConfig ? editModeConfig.useSeparateViewForEdit : useSeparateViewForEdit;
|
|
291
310
|
this.editView = editModeConfig ? editModeConfig.editView : viewForEditModal;
|
|
311
|
+
const primaryFieldsViewIndex = resolvedFields.findIndex(field => field.config.value === 'pyPrimaryFields');
|
|
292
312
|
// const showDeleteButton = !this.readOnlyMode && !hideDeleteRow;
|
|
293
313
|
|
|
294
314
|
// Nebula has other handling for isReadOnlyMode but has Cosmos-specific code
|
|
@@ -299,8 +319,11 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
299
319
|
// Nebula does). It will also have the "label", and "meta" contains the original,
|
|
300
320
|
// unchanged config info. For now, much of the info here is carried over from
|
|
301
321
|
// Nebula and we may not end up using it all.
|
|
302
|
-
this.fieldDefs = buildFieldsForTable(rawFields,
|
|
303
|
-
|
|
322
|
+
this.fieldDefs = buildFieldsForTable(rawFields, this.pConn$, showDeleteButton, {
|
|
323
|
+
primaryFieldsViewIndex,
|
|
324
|
+
fields: resolvedFields
|
|
325
|
+
});
|
|
326
|
+
this.fieldDefs = this.fieldDefs?.filter(field => !(field.meta?.config?.hide === true));
|
|
304
327
|
this.initializeDefaultPageInstructions();
|
|
305
328
|
|
|
306
329
|
// end of from Nebula
|
|
@@ -316,15 +339,20 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
316
339
|
// from from the fieldDefs. This "name" is the value that
|
|
317
340
|
// we'll share to connect things together in the table.
|
|
318
341
|
|
|
342
|
+
const labelsMap = this.fieldDefs.reduce((acc, curr) => {
|
|
343
|
+
return { ...acc, [curr.name]: curr.label };
|
|
344
|
+
}, {});
|
|
345
|
+
|
|
319
346
|
this.processedFields = [];
|
|
320
347
|
|
|
321
348
|
this.processedFields = resolvedFields.map((field, i) => {
|
|
322
349
|
field.config.name = this.displayedColumns[i]; // .config["value"].replace(/ ./g,"_"); // replace space dot with underscore
|
|
350
|
+
field.config.label = labelsMap[field.config.name] || field.config.label;
|
|
323
351
|
return field;
|
|
324
352
|
});
|
|
325
353
|
|
|
326
354
|
// for adding rows to table when editable and not modal view
|
|
327
|
-
if (this.prevReferenceList.length !== this.referenceList.length
|
|
355
|
+
if (this.prevReferenceList.length !== this.referenceList.length) {
|
|
328
356
|
this.buildElementsForTable();
|
|
329
357
|
}
|
|
330
358
|
|
|
@@ -351,11 +379,14 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
351
379
|
// ties the 3 data structures together.
|
|
352
380
|
}
|
|
353
381
|
|
|
382
|
+
checkIfAllowActionsOrRowEditingExist(newflagobject) {
|
|
383
|
+
return (newflagobject && Object.keys(newflagobject).length > 0) || this.pConn$.getComponentConfig().allowRowEdit;
|
|
384
|
+
}
|
|
385
|
+
|
|
354
386
|
initializeDefaultPageInstructions() {
|
|
355
387
|
if (this.isInitialized) {
|
|
356
388
|
this.isInitialized = false;
|
|
357
389
|
if (this.allowEditingInModal) {
|
|
358
|
-
// @ts-ignore - An argument for 'uniqueField' was not provided.
|
|
359
390
|
this.pConn$.getListActions().initDefaultPageInstructions(
|
|
360
391
|
this.pConn$.getReferenceList(),
|
|
361
392
|
this.fieldDefs.filter(item => item.name).map(item => item.name)
|
|
@@ -373,8 +404,8 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
373
404
|
}
|
|
374
405
|
|
|
375
406
|
sortCompare(a, b): number {
|
|
376
|
-
let aValue = a[this.compareRef];
|
|
377
|
-
let bValue = b[this.compareRef];
|
|
407
|
+
let aValue = a[0][this.compareRef];
|
|
408
|
+
let bValue = b[0][this.compareRef];
|
|
378
409
|
|
|
379
410
|
if (this.compareType == 'Date' || this.compareType == 'DateTime') {
|
|
380
411
|
aValue = getSeconds(aValue);
|
|
@@ -497,17 +528,20 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
497
528
|
// run through list of elements in path, if menu not in th path, then want to
|
|
498
529
|
// hide (toggle) the menu
|
|
499
530
|
const eventPath = event.path;
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
531
|
+
if (eventPath) {
|
|
532
|
+
for (let eventIndex = 0; eventIndex < eventPath.length; eventIndex++) {
|
|
533
|
+
if (
|
|
534
|
+
eventPath[eventIndex].className == 'psdk-modal-file-top' ||
|
|
535
|
+
eventPath[eventIndex].tagName == 'BUTTON' ||
|
|
536
|
+
eventPath[eventIndex].tagName == 'MAT-OPTION' ||
|
|
537
|
+
eventPath[eventIndex].tagName == 'MAT-INPUT'
|
|
538
|
+
) {
|
|
539
|
+
bInPopUp = true;
|
|
540
|
+
break;
|
|
541
|
+
}
|
|
509
542
|
}
|
|
510
543
|
}
|
|
544
|
+
|
|
511
545
|
if (!bInPopUp) {
|
|
512
546
|
// this.bShowFilterPopover$ = false;
|
|
513
547
|
|
|
@@ -626,7 +660,8 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
626
660
|
}
|
|
627
661
|
}
|
|
628
662
|
|
|
629
|
-
filterData(
|
|
663
|
+
filterData(element: any) {
|
|
664
|
+
const item = element[0];
|
|
630
665
|
let bKeep = true;
|
|
631
666
|
for (const filterObj of this.filterByColumns) {
|
|
632
667
|
if (filterObj.containsFilterValue != '' || filterObj.containsFilter == 'null' || filterObj.containsFilter == 'notnull') {
|
|
@@ -640,6 +675,8 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
640
675
|
bKeep = filterDataByCommonFields(item, filterObj);
|
|
641
676
|
break;
|
|
642
677
|
}
|
|
678
|
+
} else if (filterObj.containsFilterValue === '') {
|
|
679
|
+
bKeep = true;
|
|
643
680
|
}
|
|
644
681
|
|
|
645
682
|
// if don't keep stop filtering
|
|
@@ -652,14 +689,22 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
652
689
|
}
|
|
653
690
|
|
|
654
691
|
filterSortGroupBy() {
|
|
655
|
-
let theData = this.originalData.slice()
|
|
692
|
+
let theData = this.originalData.slice().map((item, index) => {
|
|
693
|
+
return [item, index];
|
|
694
|
+
});
|
|
656
695
|
|
|
657
696
|
// last filter config data is global
|
|
658
697
|
theData = theData.filter(this.filterData.bind(this));
|
|
659
698
|
|
|
660
699
|
// last sort config data is global
|
|
661
700
|
theData.sort(this.sortCompare.bind(this));
|
|
662
|
-
this.rowData.data = theData;
|
|
701
|
+
this.rowData.data = theData.map(item => item[0]);
|
|
702
|
+
|
|
703
|
+
const newElements: any = new Array(this.rowData.data.length);
|
|
704
|
+
theData.forEach((item, index) => {
|
|
705
|
+
newElements[index] = this.originalElementsData[item[1]];
|
|
706
|
+
});
|
|
707
|
+
this.elementsData = newElements;
|
|
663
708
|
}
|
|
664
709
|
|
|
665
710
|
_headerSortClick(event, columnData) {
|
|
@@ -782,7 +827,7 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
782
827
|
const seen = {};
|
|
783
828
|
return a.filter(item => {
|
|
784
829
|
const k = key(item);
|
|
785
|
-
// eslint-disable-next-line no-
|
|
830
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
786
831
|
return seen.hasOwnProperty(k) ? false : (seen[k] = true);
|
|
787
832
|
});
|
|
788
833
|
}
|
|
@@ -873,7 +918,7 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
873
918
|
|
|
874
919
|
// return the value that should be shown as the contents for the given row data
|
|
875
920
|
// of the given row field
|
|
876
|
-
getRowValue(inRowData:
|
|
921
|
+
getRowValue(inRowData: object, inColKey: string): any {
|
|
877
922
|
// See what data (if any) we have to display
|
|
878
923
|
const refKeys: string[] = inColKey.split('.');
|
|
879
924
|
let valBuilder = inRowData;
|
|
@@ -916,39 +961,41 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
916
961
|
if (this.allowEditingInModal && this.defaultView) {
|
|
917
962
|
this.pConn$
|
|
918
963
|
.getActionsApi()
|
|
964
|
+
// @ts-expect-error
|
|
919
965
|
.openEmbeddedDataModal(
|
|
920
966
|
this.defaultView,
|
|
921
|
-
this.pConn
|
|
967
|
+
this.pConn$ as any,
|
|
922
968
|
this.referenceListStr,
|
|
923
969
|
this.referenceList.length,
|
|
924
|
-
PCore.getConstants().RESOURCE_STATUS.CREATE
|
|
970
|
+
PCore.getConstants().RESOURCE_STATUS.CREATE,
|
|
971
|
+
this.targetClassLabel
|
|
925
972
|
);
|
|
926
973
|
} else {
|
|
927
|
-
// @ts-ignore - second parameter "pageRef" is optional for insert method
|
|
928
974
|
this.pConn$.getListActions().insert({ classID: this.contextClass }, this.referenceList.length);
|
|
929
975
|
}
|
|
930
976
|
|
|
931
977
|
this.pConn$.clearErrorMessages({
|
|
932
|
-
property:
|
|
933
|
-
}
|
|
978
|
+
property: this.pConn$.getStateProps()?.referenceList?.substring(1)
|
|
979
|
+
});
|
|
934
980
|
}
|
|
935
981
|
|
|
936
982
|
editRecord(data, index) {
|
|
937
983
|
if (data) {
|
|
938
984
|
this.pConn$
|
|
939
985
|
.getActionsApi()
|
|
986
|
+
// @ts-expect-error
|
|
940
987
|
.openEmbeddedDataModal(
|
|
941
988
|
this.bUseSeparateViewForEdit ? this.editView : this.defaultView,
|
|
942
|
-
this.pConn
|
|
989
|
+
this.pConn$ as any,
|
|
943
990
|
this.referenceListStr,
|
|
944
991
|
index,
|
|
945
|
-
PCore.getConstants().RESOURCE_STATUS.UPDATE
|
|
992
|
+
PCore.getConstants().RESOURCE_STATUS.UPDATE,
|
|
993
|
+
this.targetClassLabel
|
|
946
994
|
);
|
|
947
995
|
}
|
|
948
996
|
}
|
|
949
997
|
|
|
950
998
|
deleteRecord(index) {
|
|
951
|
-
// @ts-ignore - second parameter "pageRef" is optional for deleteEntry method
|
|
952
999
|
this.pConn$.getListActions().deleteEntry(index);
|
|
953
1000
|
}
|
|
954
1001
|
|
|
@@ -958,23 +1005,36 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
|
|
|
958
1005
|
this.referenceList.forEach((element, index) => {
|
|
959
1006
|
const data: any = [];
|
|
960
1007
|
this.rawFields?.forEach(item => {
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
1008
|
+
if (!item?.config?.hide) {
|
|
1009
|
+
item = {
|
|
1010
|
+
...item,
|
|
1011
|
+
config: {
|
|
1012
|
+
...item.config,
|
|
1013
|
+
label: '',
|
|
1014
|
+
displayMode: this.readOnlyMode || this.allowEditingInModal ? 'DISPLAY_ONLY' : undefined
|
|
1015
|
+
}
|
|
1016
|
+
};
|
|
1017
|
+
const referenceListData = getReferenceList(this.pConn$);
|
|
1018
|
+
const isDatapage = referenceListData.startsWith('D_');
|
|
1019
|
+
const pageReferenceValue = isDatapage
|
|
1020
|
+
? `${referenceListData}[${index}]`
|
|
1021
|
+
: `${this.pConn$.getPageReference()}${referenceListData}[${index}]`;
|
|
1022
|
+
const config = {
|
|
1023
|
+
meta: item,
|
|
1024
|
+
options: {
|
|
1025
|
+
context,
|
|
1026
|
+
pageReference: pageReferenceValue,
|
|
1027
|
+
referenceList: referenceListData,
|
|
1028
|
+
hasForm: true
|
|
1029
|
+
}
|
|
1030
|
+
};
|
|
1031
|
+
const view = PCore.createPConnect(config);
|
|
1032
|
+
data.push(view);
|
|
1033
|
+
}
|
|
975
1034
|
});
|
|
976
1035
|
eleData.push(data);
|
|
977
1036
|
});
|
|
1037
|
+
this.originalElementsData = eleData;
|
|
978
1038
|
this.elementsData = eleData;
|
|
979
1039
|
}
|
|
980
1040
|
}
|
|
@@ -8,7 +8,6 @@ import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
|
8
8
|
selector: 'app-simple-table-select',
|
|
9
9
|
templateUrl: './simple-table-select.component.html',
|
|
10
10
|
styleUrls: ['./simple-table-select.component.scss'],
|
|
11
|
-
standalone: true,
|
|
12
11
|
imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
|
|
13
12
|
})
|
|
14
13
|
export class SimpleTableSelectComponent implements OnInit, OnDestroy {
|
|
@@ -57,7 +56,7 @@ export class SimpleTableSelectComponent implements OnInit, OnDestroy {
|
|
|
57
56
|
}
|
|
58
57
|
|
|
59
58
|
updateSelf() {
|
|
60
|
-
const theConfigProps
|
|
59
|
+
const theConfigProps = this.pConn$.getConfigProps();
|
|
61
60
|
this.label = theConfigProps.label;
|
|
62
61
|
this.renderMode = theConfigProps.renderMode;
|
|
63
62
|
this.showLabel = theConfigProps.showLabel;
|
|
@@ -71,7 +70,7 @@ export class SimpleTableSelectComponent implements OnInit, OnDestroy {
|
|
|
71
70
|
this.propsToUse.label = '';
|
|
72
71
|
}
|
|
73
72
|
const { MULTI } = PCore.getConstants().LIST_SELECTION_MODE;
|
|
74
|
-
const { selectionMode, selectionList }
|
|
73
|
+
const { selectionMode, selectionList } = this.pConn$.getConfigProps();
|
|
75
74
|
const isMultiSelectMode = selectionMode === MULTI;
|
|
76
75
|
if (isMultiSelectMode && this.renderMode === 'ReadOnly') {
|
|
77
76
|
this.showSimpleTableManual = true;
|
|
@@ -137,7 +136,7 @@ export class SimpleTableSelectComponent implements OnInit, OnDestroy {
|
|
|
137
136
|
parameters: this.parameters
|
|
138
137
|
};
|
|
139
138
|
|
|
140
|
-
this.filters = (this.pConn$.getRawMetadata() as any).
|
|
139
|
+
this.filters = (this.pConn$.getRawMetadata()?.config as any).promotedFilters ?? [];
|
|
141
140
|
|
|
142
141
|
this.isSearchable = this.filters.length > 0;
|
|
143
142
|
}
|
|
@@ -1 +1,4 @@
|
|
|
1
|
-
<
|
|
1
|
+
<div [ngClass]="displayMode ? 'psdk-grid-display' : 'psdk-grid-nondisplay'">
|
|
2
|
+
<div *ngIf="label" class="psdk-grid-label">{{ label }}</div>
|
|
3
|
+
<component-mapper name="SemanticLink" [props]="{ pConn$: newPconn, formGroup$ }"></component-mapper>
|
|
4
|
+
</div>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.psdk-grid-display {
|
|
2
|
+
display: grid;
|
|
3
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
4
|
+
column-gap: calc(2 * 0.5rem);
|
|
5
|
+
row-gap: calc(2 * 0.5rem);
|
|
6
|
+
align-items: center;
|
|
7
|
+
margin-top: 1rem;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.psdk-grid-nondisplay {
|
|
11
|
+
margin-top: 1rem;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.psdk-label {
|
|
15
|
+
color: var(--app-label-color);
|
|
16
|
+
margin: 8px 0px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.psdk-value {
|
|
20
|
+
margin: 8px 0px;
|
|
21
|
+
}
|
|
@@ -1,15 +1,115 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, Input, forwardRef, OnInit, OnDestroy } from '@angular/core';
|
|
2
3
|
import { FormGroup } from '@angular/forms';
|
|
4
|
+
import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
|
|
3
5
|
import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
6
|
+
import { getDataRelationshipContextFromKey } from '@pega/angular-sdk-components';
|
|
4
7
|
|
|
5
8
|
@Component({
|
|
6
9
|
selector: 'app-single-reference-readonly',
|
|
7
10
|
templateUrl: './single-reference-readonly.component.html',
|
|
8
11
|
styleUrls: ['./single-reference-readonly.component.scss'],
|
|
9
|
-
|
|
10
|
-
imports: [forwardRef(() => ComponentMapperComponent)]
|
|
12
|
+
imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
|
|
11
13
|
})
|
|
12
|
-
export class SingleReferenceReadonlyComponent {
|
|
14
|
+
export class SingleReferenceReadonlyComponent implements OnInit, OnDestroy {
|
|
13
15
|
@Input() pConn$: typeof PConnect;
|
|
14
16
|
@Input() formGroup$: FormGroup;
|
|
17
|
+
@Input() dataRelationshipContext?: any;
|
|
18
|
+
|
|
19
|
+
angularPConnectData: AngularPConnectData = {};
|
|
20
|
+
configProps: any;
|
|
21
|
+
component: any;
|
|
22
|
+
label: string;
|
|
23
|
+
newPconn: typeof PConnect;
|
|
24
|
+
displayMode: string;
|
|
25
|
+
|
|
26
|
+
constructor(private angularPConnect: AngularPConnectService) {}
|
|
27
|
+
|
|
28
|
+
ngOnInit(): void {
|
|
29
|
+
// First thing in initialization is registering and subscribing to the AngularPConnect service
|
|
30
|
+
this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
|
|
31
|
+
this.checkAndUpdate();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
ngOnDestroy(): void {
|
|
35
|
+
if (this.angularPConnectData.unsubscribeFn) {
|
|
36
|
+
this.angularPConnectData.unsubscribeFn();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Callback passed when subscribing to store change
|
|
41
|
+
onStateChange() {
|
|
42
|
+
this.checkAndUpdate();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
checkAndUpdate() {
|
|
46
|
+
// Should always check the bridge to see if the component should
|
|
47
|
+
// update itself (re-render)
|
|
48
|
+
const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
|
|
49
|
+
|
|
50
|
+
// ONLY call updateSelf when the component should update
|
|
51
|
+
if (bUpdateSelf) {
|
|
52
|
+
this.updateSelf();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
updateSelf() {
|
|
57
|
+
this.configProps = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
|
|
58
|
+
const rawViewMetadata = this.pConn$.getRawMetadata();
|
|
59
|
+
const label = this.configProps.label;
|
|
60
|
+
const showLabel = this.configProps.showLabel;
|
|
61
|
+
const propsToUse = { label, showLabel, ...this.pConn$.getInheritedProps() };
|
|
62
|
+
const type = (rawViewMetadata?.config as any)?.componentType;
|
|
63
|
+
this.displayMode = this.configProps.displayMode;
|
|
64
|
+
const targetObjectType = this.configProps.targetObjectType;
|
|
65
|
+
const referenceType = targetObjectType === 'case' ? 'Case' : 'Data';
|
|
66
|
+
const hideLabel = this.configProps.hideLabel;
|
|
67
|
+
// const additionalFields = this.configProps.additionalFields;
|
|
68
|
+
const displayAs = this.configProps.displayAs ?? 'readonly';
|
|
69
|
+
const dataRelationshipContext = (rawViewMetadata?.config as any)?.displayField
|
|
70
|
+
? getDataRelationshipContextFromKey((rawViewMetadata?.config as any)?.displayField)
|
|
71
|
+
: this.dataRelationshipContext;
|
|
72
|
+
if (propsToUse.showLabel === false) {
|
|
73
|
+
propsToUse.label = '';
|
|
74
|
+
}
|
|
75
|
+
this.label = propsToUse.label;
|
|
76
|
+
|
|
77
|
+
const editableComponents = ['AutoComplete', 'SimpleTableSelect', 'Dropdown', 'RadioButtons'];
|
|
78
|
+
const config: any = {
|
|
79
|
+
...rawViewMetadata?.config,
|
|
80
|
+
primaryField: (rawViewMetadata?.config as any)?.displayField,
|
|
81
|
+
label: this.label
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
const activeViewRuleClass = (rawViewMetadata?.config as any)?.targetObjectClass;
|
|
85
|
+
if (editableComponents.includes(type)) {
|
|
86
|
+
config.caseClass = activeViewRuleClass;
|
|
87
|
+
config.text = config.primaryField;
|
|
88
|
+
config.caseID = config.value;
|
|
89
|
+
config.contextPage = `@P .${dataRelationshipContext}`;
|
|
90
|
+
config.resourceParams = {
|
|
91
|
+
workID: displayAs === 'table' ? (config as any)?.selectionKey : config.value
|
|
92
|
+
};
|
|
93
|
+
config.resourcePayload = {
|
|
94
|
+
caseClassName: activeViewRuleClass
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
this.component = this.pConn$.createComponent(
|
|
99
|
+
{
|
|
100
|
+
type: 'SemanticLink',
|
|
101
|
+
config: {
|
|
102
|
+
...config,
|
|
103
|
+
displayMode: this.displayMode,
|
|
104
|
+
referenceType,
|
|
105
|
+
hideLabel,
|
|
106
|
+
dataRelationshipContext
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
'',
|
|
110
|
+
0,
|
|
111
|
+
{}
|
|
112
|
+
);
|
|
113
|
+
this.newPconn = this.component.getPConnect();
|
|
114
|
+
}
|
|
15
115
|
}
|
|
@@ -10,7 +10,6 @@ import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
|
10
10
|
selector: 'app-sub-tabs',
|
|
11
11
|
templateUrl: './sub-tabs.component.html',
|
|
12
12
|
styleUrls: ['./sub-tabs.component.scss'],
|
|
13
|
-
standalone: true,
|
|
14
13
|
imports: [MatTabsModule, CommonModule, forwardRef(() => ComponentMapperComponent)]
|
|
15
14
|
})
|
|
16
15
|
export class SubTabsComponent implements OnInit, OnDestroy {
|
|
@@ -2,16 +2,16 @@ import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { FormGroup } from '@angular/forms';
|
|
4
4
|
import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
5
|
+
import { FormTemplateBase } from '@pega/angular-sdk-components';
|
|
5
6
|
|
|
6
7
|
@Component({
|
|
7
8
|
selector: 'app-three-column',
|
|
8
9
|
templateUrl: './three-column.component.html',
|
|
9
10
|
styleUrls: ['./three-column.component.scss'],
|
|
10
|
-
standalone: true,
|
|
11
11
|
imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
|
|
12
12
|
})
|
|
13
|
-
export class ThreeColumnComponent implements OnInit, OnChanges {
|
|
14
|
-
@Input() pConn$: typeof PConnect;
|
|
13
|
+
export class ThreeColumnComponent extends FormTemplateBase implements OnInit, OnChanges {
|
|
14
|
+
@Input() override pConn$: typeof PConnect;
|
|
15
15
|
@Input() formGroup$: FormGroup;
|
|
16
16
|
|
|
17
17
|
arChildren$: any[];
|
|
@@ -29,6 +29,6 @@ export class ThreeColumnComponent implements OnInit, OnChanges {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
updateSelf() {
|
|
32
|
-
this.arChildren$ = this.pConn$.getChildren()
|
|
32
|
+
this.arChildren$ = this.pConn$.getChildren();
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -6,7 +6,6 @@ import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
|
6
6
|
selector: 'app-three-column-page',
|
|
7
7
|
templateUrl: './three-column-page.component.html',
|
|
8
8
|
styleUrls: ['./three-column-page.component.scss'],
|
|
9
|
-
standalone: true,
|
|
10
9
|
imports: [forwardRef(() => ComponentMapperComponent)]
|
|
11
10
|
})
|
|
12
11
|
export class ThreeColumnPageComponent {
|