@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 { MatDatepickerModule } from '@angular/material/datepicker';
|
|
@@ -22,13 +21,13 @@ import { getCurrencyOptions } from '@pega/angular-sdk-components';
|
|
|
22
21
|
import { getLocale, getSeconds } from '@pega/angular-sdk-components';
|
|
23
22
|
import { formatters } from '@pega/angular-sdk-components';
|
|
24
23
|
|
|
25
|
-
import {
|
|
26
|
-
|
|
27
|
-
declare const window: any;
|
|
24
|
+
import { init } from './listViewHelpers';
|
|
28
25
|
|
|
29
26
|
const SELECTION_MODE = { SINGLE: 'single', MULTI: 'multi' };
|
|
30
27
|
|
|
31
28
|
interface ListViewProps {
|
|
29
|
+
inheritedProps: any;
|
|
30
|
+
title: string | undefined;
|
|
32
31
|
// If any, enter additional props that only exist on this component
|
|
33
32
|
globalSearch?: boolean;
|
|
34
33
|
referenceList?: any;
|
|
@@ -42,6 +41,10 @@ interface ListViewProps {
|
|
|
42
41
|
grouping: string | boolean;
|
|
43
42
|
value: any;
|
|
44
43
|
readonlyContextList: any;
|
|
44
|
+
label?: string;
|
|
45
|
+
displayAs?: string;
|
|
46
|
+
showRecords: boolean;
|
|
47
|
+
viewName?: string;
|
|
45
48
|
}
|
|
46
49
|
|
|
47
50
|
export class Group {
|
|
@@ -58,7 +61,6 @@ export class Group {
|
|
|
58
61
|
selector: 'app-list-view',
|
|
59
62
|
templateUrl: './list-view.component.html',
|
|
60
63
|
styleUrls: ['./list-view.component.scss'],
|
|
61
|
-
standalone: true,
|
|
62
64
|
imports: [
|
|
63
65
|
CommonModule,
|
|
64
66
|
MatFormFieldModule,
|
|
@@ -156,13 +158,16 @@ export class ListViewComponent implements OnInit, OnDestroy {
|
|
|
156
158
|
query: any = null;
|
|
157
159
|
paging: any;
|
|
158
160
|
fieldDefs: any;
|
|
159
|
-
xRayApis = PCore.getDebugger().getXRayRuntime();
|
|
160
|
-
xRayUid = this.xRayApis.startXRay();
|
|
161
161
|
checkBoxValue: string;
|
|
162
|
-
|
|
162
|
+
label?: string = '';
|
|
163
|
+
uniqueId = crypto.randomUUID();
|
|
164
|
+
displayAs: any;
|
|
165
|
+
showRecords: any;
|
|
166
|
+
identifier: string;
|
|
167
|
+
promotedFiltersId: string;
|
|
163
168
|
constructor(
|
|
164
169
|
private psService: ProgressSpinnerService,
|
|
165
|
-
|
|
170
|
+
public utils: Utils
|
|
166
171
|
) {}
|
|
167
172
|
|
|
168
173
|
ngOnInit(): void {
|
|
@@ -171,12 +176,13 @@ export class ListViewComponent implements OnInit, OnDestroy {
|
|
|
171
176
|
const defRowID = this.configProps$?.referenceType === 'Case' ? 'pyID' : 'pyGUID';
|
|
172
177
|
/** If compositeKeys is defined, use dynamic value, else fallback to pyID or pyGUID. */
|
|
173
178
|
this.compositeKeys = this.configProps$?.compositeKeys;
|
|
174
|
-
this.rowID = this.compositeKeys
|
|
179
|
+
this.rowID = this.payload?.compositeKeys?.length === 1 ? this.payload?.compositeKeys[0] : defRowID;
|
|
175
180
|
this.bShowSearch$ = this.utils.getBooleanValue(this.configProps$?.globalSearch ? this.configProps$.globalSearch : this.payload?.globalSearch);
|
|
176
181
|
this.bColumnReorder$ = this.utils.getBooleanValue(this.configProps$.reorderFields);
|
|
177
182
|
this.bGrouping$ = this.utils.getBooleanValue(this.configProps$.grouping);
|
|
178
183
|
this.showDynamicFields = this.configProps$?.showDynamicFields;
|
|
179
|
-
|
|
184
|
+
this.displayAs = this.configProps$.displayAs;
|
|
185
|
+
this.showRecords = this.configProps$.showRecords;
|
|
180
186
|
this.menuSvgIcon$ = this.utils.getImageSrc('more', this.utils.getSDKStaticContentUrl());
|
|
181
187
|
this.arrowDownSvgIcon$ = this.utils.getImageSrc('arrow-down', this.utils.getSDKStaticContentUrl());
|
|
182
188
|
this.arrowUpSvgIcon$ = this.utils.getImageSrc('arrow-up', this.utils.getSDKStaticContentUrl());
|
|
@@ -192,7 +198,20 @@ export class ListViewComponent implements OnInit, OnDestroy {
|
|
|
192
198
|
this.arFilterMainButtons$.push({ actionID: 'submit', jsAction: 'submit', name: 'Submit' });
|
|
193
199
|
this.arFilterSecondaryButtons$.push({ actionID: 'cancel', jsAction: 'cancel', name: 'Cancel' });
|
|
194
200
|
|
|
201
|
+
let title = this.configProps$?.title || this.configProps$?.label || 'List';
|
|
202
|
+
const inheritedProps = this.configProps$?.inheritedProps;
|
|
203
|
+
if (title === 'List' && inheritedProps) {
|
|
204
|
+
for (const inheritedProp of inheritedProps) {
|
|
205
|
+
if (inheritedProp?.prop === 'label') {
|
|
206
|
+
title = inheritedProp?.value;
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
this.label = title;
|
|
212
|
+
|
|
195
213
|
this.searchIcon$ = this.utils.getImageSrc('search', this.utils.getSDKStaticContentUrl());
|
|
214
|
+
this.promotedFiltersId = `promoted-filters-queryable-${this.uniqueId}`;
|
|
196
215
|
setTimeout(() => {
|
|
197
216
|
PCore.getPubSubUtils().subscribe(
|
|
198
217
|
PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CHANGE,
|
|
@@ -213,19 +232,27 @@ export class ListViewComponent implements OnInit, OnDestroy {
|
|
|
213
232
|
false,
|
|
214
233
|
this.pConn$.getContextName()
|
|
215
234
|
);
|
|
235
|
+
PCore.getPubSubUtils().subscribe(
|
|
236
|
+
PCore.getEvents().getTransientEvent().UPDATE_PROMOTED_FILTERS,
|
|
237
|
+
data => {
|
|
238
|
+
this.showRecords = data.showRecords;
|
|
239
|
+
const filterData = this.prepareFilters(data);
|
|
240
|
+
this.processFilterChange(filterData);
|
|
241
|
+
},
|
|
242
|
+
this.promotedFiltersId
|
|
243
|
+
);
|
|
216
244
|
}, 0);
|
|
217
245
|
if (this.configProps$) {
|
|
218
246
|
if (!this.payload) {
|
|
219
247
|
this.payload = { referenceList: this.configProps$.referenceList };
|
|
220
248
|
}
|
|
221
|
-
|
|
249
|
+
init({
|
|
222
250
|
pConn$: this.pConn$,
|
|
223
251
|
bInForm$: this.bInForm$,
|
|
224
252
|
...this.payload,
|
|
225
253
|
listContext: this.listContext,
|
|
226
254
|
ref: this.ref,
|
|
227
255
|
showDynamicFields: this.showDynamicFields,
|
|
228
|
-
xRayUid: this.xRayUid,
|
|
229
256
|
cosmosTableRef: this.cosmosTableRef,
|
|
230
257
|
selectionMode: this.selectionMode
|
|
231
258
|
}).then(response => {
|
|
@@ -233,6 +260,29 @@ export class ListViewComponent implements OnInit, OnDestroy {
|
|
|
233
260
|
this.getListData();
|
|
234
261
|
});
|
|
235
262
|
}
|
|
263
|
+
this.clearSelectionsAndUpdateTable(this.pConn$, this.uniqueId, this.configProps$?.viewName);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
clearSelectionsAndUpdateTable(getPConnect: any, uniqueId: string, viewName): void {
|
|
267
|
+
const clearSelectionsAndRefreshList = ({ viewName: name, clearSelections }: any) => {
|
|
268
|
+
if (name === viewName) {
|
|
269
|
+
const { selectionMode } = getPConnect.getRawConfigProps();
|
|
270
|
+
if (!selectionMode) {
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
if (clearSelections) {
|
|
274
|
+
if (selectionMode === 'single') {
|
|
275
|
+
getPConnect.getListActions().setSelectedRows({});
|
|
276
|
+
} else {
|
|
277
|
+
getPConnect.getListActions().clearSelectedRows();
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
};
|
|
282
|
+
|
|
283
|
+
this.identifier = `clear-and-update-advanced-search-selections-${uniqueId}`;
|
|
284
|
+
|
|
285
|
+
PCore.getPubSubUtils().subscribe('update-advanced-search-selections', clearSelectionsAndRefreshList, this.identifier);
|
|
236
286
|
}
|
|
237
287
|
|
|
238
288
|
getFieldFromFilter(filter, dateRange = false) {
|
|
@@ -247,82 +297,22 @@ export class ListViewComponent implements OnInit, OnDestroy {
|
|
|
247
297
|
|
|
248
298
|
// Will be triggered when EVENT_DASHBOARD_FILTER_CHANGE fires
|
|
249
299
|
processFilterChange(data) {
|
|
250
|
-
|
|
251
|
-
let dashboardFilterPayload: any = {
|
|
252
|
-
query: {
|
|
253
|
-
filter: {},
|
|
254
|
-
select: []
|
|
255
|
-
}
|
|
256
|
-
};
|
|
257
|
-
|
|
258
|
-
this.filters[filterId] = filterExpression;
|
|
259
|
-
let isDateRange = !!data.filterExpression?.AND;
|
|
260
|
-
// Will be AND by default but making it dynamic in case we support dynamic relational ops in future
|
|
261
|
-
const relationalOp = 'AND';
|
|
262
|
-
|
|
263
|
-
let field = this.getFieldFromFilter(filterExpression, isDateRange);
|
|
264
|
-
const selectParam: any[] = [];
|
|
265
|
-
// Constructing the select parameters list (will be sent in dashboardFilterPayload)
|
|
266
|
-
this.displayedColumns$?.forEach(col => {
|
|
267
|
-
selectParam.push({
|
|
268
|
-
field: col
|
|
269
|
-
});
|
|
270
|
-
});
|
|
271
|
-
|
|
272
|
-
// Checking if the triggered filter is applicable for this list
|
|
273
|
-
if (data.filterExpression !== null && !(this.displayedColumns$?.length && this.displayedColumns$?.includes(field))) {
|
|
274
|
-
return;
|
|
275
|
-
}
|
|
276
|
-
// This is a flag which will be used to reset dashboardFilterPayload in case we don't find any valid filters
|
|
277
|
-
let validFilter = false;
|
|
300
|
+
this.updateFiltersFromData(data);
|
|
278
301
|
|
|
279
|
-
|
|
280
|
-
// Iterating over the current filters list to create filter data which will be POSTed
|
|
281
|
-
const filterKeys: any[] = Object.keys(this.filters);
|
|
282
|
-
const filterValues: any[] = Object.values(this.filters);
|
|
283
|
-
for (let filterIndex = 0; filterIndex < filterKeys.length; filterIndex++) {
|
|
284
|
-
const filter = filterValues[filterIndex];
|
|
285
|
-
// If the filter is null then we can skip this iteration
|
|
286
|
-
if (filter === null) {
|
|
287
|
-
// eslint-disable-next-line no-continue
|
|
288
|
-
continue;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
// Checking if the filter is of type- Date Range
|
|
292
|
-
isDateRange = !!filter?.AND;
|
|
293
|
-
field = this.getFieldFromFilter(filter, isDateRange);
|
|
294
|
-
|
|
295
|
-
if (!(this.displayedColumns$?.length && this.displayedColumns$?.includes(field))) {
|
|
296
|
-
// eslint-disable-next-line no-continue
|
|
297
|
-
continue;
|
|
298
|
-
}
|
|
299
|
-
// If we reach here that implies we've at least one valid filter, hence setting the flag
|
|
300
|
-
validFilter = true;
|
|
301
|
-
/** Below are the 2 cases for- Text & Date-Range filter types where we'll construct filter data which will be sent in the dashboardFilterPayload
|
|
302
|
-
* In Constellation DX Components, through Repeating Structures they might be using several APIs to do it. We're doing it here
|
|
303
|
-
*/
|
|
304
|
-
if (isDateRange) {
|
|
305
|
-
dashboardFilterPayload = this.filterBasedOnDateRange(dashboardFilterPayload, filter, relationalOp, selectParam, index);
|
|
306
|
-
} else {
|
|
307
|
-
dashboardFilterPayload.query.filter.filterConditions = {
|
|
308
|
-
...dashboardFilterPayload.query.filter.filterConditions,
|
|
309
|
-
[`T${index++}`]: { ...filter.condition, ignoreCase: true }
|
|
310
|
-
};
|
|
302
|
+
const selectParam = this.displayedColumns$?.map(col => ({ field: col })) || [];
|
|
311
303
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
}
|
|
304
|
+
if (this.displayAs !== 'advancedSearch') {
|
|
305
|
+
const { filterExpression } = data;
|
|
306
|
+
const isDateRange = !!filterExpression?.AND;
|
|
307
|
+
const field = this.getFieldFromFilter(filterExpression, isDateRange);
|
|
317
308
|
|
|
318
|
-
|
|
309
|
+
if (filterExpression !== null && !this.displayedColumns$?.includes(field)) {
|
|
310
|
+
return;
|
|
319
311
|
}
|
|
320
312
|
}
|
|
321
313
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
dashboardFilterPayload = undefined;
|
|
325
|
-
}
|
|
314
|
+
const dashboardFilterPayload = this.buildFilterPayload(selectParam);
|
|
315
|
+
|
|
326
316
|
this.filterPayload = dashboardFilterPayload;
|
|
327
317
|
this.getListData();
|
|
328
318
|
}
|
|
@@ -357,10 +347,22 @@ export class ListViewComponent implements OnInit, OnDestroy {
|
|
|
357
347
|
return PCore.getAnalyticsUtils().getDataViewMetadata(refList, this.showDynamicFields);
|
|
358
348
|
}
|
|
359
349
|
|
|
350
|
+
getValue(col) {
|
|
351
|
+
return this.fieldDefs.find(f => f.name === col)?.label;
|
|
352
|
+
}
|
|
353
|
+
|
|
360
354
|
getListData() {
|
|
355
|
+
this.preparePayload();
|
|
361
356
|
const componentConfig = this.pConn$.getComponentConfig();
|
|
362
|
-
|
|
363
|
-
|
|
357
|
+
const columnFields = componentConfig.presets[0].children[0].children;
|
|
358
|
+
const columns = this.getHeaderCells(columnFields, this.fieldDefs);
|
|
359
|
+
this.fields$ = this.configProps$.presets[0].children[0].children;
|
|
360
|
+
this.displayedColumns$ = columns.map(col => {
|
|
361
|
+
return col.id;
|
|
362
|
+
});
|
|
363
|
+
if (this.displayAs === 'advancedSearch' && !this.showRecords) {
|
|
364
|
+
Promise.resolve({ data: null });
|
|
365
|
+
} else if (this.configProps$) {
|
|
364
366
|
const refList = this.configProps$.referenceList;
|
|
365
367
|
const fieldsMetaDataPromise = this.getFieldsMetadata(refList);
|
|
366
368
|
// returns a promise
|
|
@@ -386,17 +388,9 @@ export class ListViewComponent implements OnInit, OnDestroy {
|
|
|
386
388
|
const fieldsMetaData = results[0];
|
|
387
389
|
const workListData = results[1];
|
|
388
390
|
|
|
389
|
-
this.fields$ = this.configProps$.presets[0].children[0].children;
|
|
390
|
-
// this is an unresovled version of this.fields$, need unresolved, so can get the property reference
|
|
391
|
-
const columnFields = componentConfig.presets[0].children[0].children;
|
|
392
|
-
|
|
393
391
|
const tableDataResults = !this.bInForm$ ? workListData.data.data : workListData.data;
|
|
394
392
|
|
|
395
|
-
const columns = this.getHeaderCells(columnFields, this.fieldDefs);
|
|
396
393
|
this.fields$ = this.updateFields(this.fields$, fieldsMetaData.data.fields, columns);
|
|
397
|
-
this.displayedColumns$ = columns.map(col => {
|
|
398
|
-
return col.id;
|
|
399
|
-
});
|
|
400
394
|
this.response = tableDataResults;
|
|
401
395
|
this.updatedRefList = this.updateData(tableDataResults, this.fields$);
|
|
402
396
|
if (this.selectionMode === SELECTION_MODE.SINGLE && this.updatedRefList?.length > 0) {
|
|
@@ -424,6 +418,33 @@ export class ListViewComponent implements OnInit, OnDestroy {
|
|
|
424
418
|
}
|
|
425
419
|
}
|
|
426
420
|
|
|
421
|
+
prepareFilters(data) {
|
|
422
|
+
return Object.entries(data.payload).reduce((acc, [field, value]) => {
|
|
423
|
+
if (value) {
|
|
424
|
+
let comparator = 'EQ';
|
|
425
|
+
const filterRecord = this.listContext.meta.fieldDefs.filter(item => item.id === field);
|
|
426
|
+
if (filterRecord?.[0]?.meta.type === 'TextInput') {
|
|
427
|
+
comparator = 'CONTAINS';
|
|
428
|
+
}
|
|
429
|
+
acc[field] = {
|
|
430
|
+
filterExpression: {
|
|
431
|
+
condition: {
|
|
432
|
+
lhs: {
|
|
433
|
+
field
|
|
434
|
+
},
|
|
435
|
+
comparator,
|
|
436
|
+
rhs: {
|
|
437
|
+
value
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
},
|
|
441
|
+
filterId: field
|
|
442
|
+
};
|
|
443
|
+
}
|
|
444
|
+
return acc;
|
|
445
|
+
}, {});
|
|
446
|
+
}
|
|
447
|
+
|
|
427
448
|
preparePayload() {
|
|
428
449
|
const { fieldDefs, itemKey, patchQueryFields } = this.listContext.meta;
|
|
429
450
|
this.fieldDefs = fieldDefs;
|
|
@@ -465,6 +486,8 @@ export class ListViewComponent implements OnInit, OnDestroy {
|
|
|
465
486
|
`dashboard-component-${'id'}`,
|
|
466
487
|
this.pConn$.getContextName()
|
|
467
488
|
);
|
|
489
|
+
PCore.getPubSubUtils().unsubscribe('update-advanced-search-selections', this.identifier);
|
|
490
|
+
PCore.getPubSubUtils().unsubscribe(PCore.getEvents().getTransientEvent().UPDATE_PROMOTED_FILTERS, this.promotedFiltersId);
|
|
468
491
|
}
|
|
469
492
|
|
|
470
493
|
// ngAfterViewInit() {
|
|
@@ -961,7 +984,7 @@ export class ListViewComponent implements OnInit, OnDestroy {
|
|
|
961
984
|
|
|
962
985
|
filterDataWithDate(item, filterObj, filterValue) {
|
|
963
986
|
let bKeep;
|
|
964
|
-
let value = item[filterObj.ref] != null
|
|
987
|
+
let value = item[filterObj.ref] != null || item[filterObj.ref] != '' ? getSeconds(item[filterObj.ref]) : null;
|
|
965
988
|
filterValue = filterObj.containsFilterValue != null && filterObj.containsFilterValue != '' ? getSeconds(filterObj.containsFilterValue) : null;
|
|
966
989
|
|
|
967
990
|
switch (filterObj.containsFilter) {
|
|
@@ -1144,7 +1167,7 @@ export class ListViewComponent implements OnInit, OnDestroy {
|
|
|
1144
1167
|
const seen = {};
|
|
1145
1168
|
return a.filter(item => {
|
|
1146
1169
|
const k = key(item);
|
|
1147
|
-
// eslint-disable-next-line no-
|
|
1170
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
1148
1171
|
return seen.hasOwnProperty(k) ? false : (seen[k] = true);
|
|
1149
1172
|
});
|
|
1150
1173
|
}
|
|
@@ -1380,6 +1403,11 @@ export class ListViewComponent implements OnInit, OnDestroy {
|
|
|
1380
1403
|
return listFields;
|
|
1381
1404
|
}
|
|
1382
1405
|
|
|
1406
|
+
getResultsText() {
|
|
1407
|
+
const recordsCount = this.repeatList$?.paginator?.length || 0;
|
|
1408
|
+
return `${recordsCount || 0} result${recordsCount > 1 ? 's' : ''}`;
|
|
1409
|
+
}
|
|
1410
|
+
|
|
1383
1411
|
getField(fieldDefs, columnId) {
|
|
1384
1412
|
const fieldsMap = this.getFieldsMap(fieldDefs);
|
|
1385
1413
|
return fieldsMap.get(columnId);
|
|
@@ -1413,4 +1441,60 @@ export class ListViewComponent implements OnInit, OnDestroy {
|
|
|
1413
1441
|
|
|
1414
1442
|
return select;
|
|
1415
1443
|
}
|
|
1444
|
+
|
|
1445
|
+
private updateFiltersFromData(data) {
|
|
1446
|
+
if (this.displayAs === 'advancedSearch') {
|
|
1447
|
+
this.filters = {};
|
|
1448
|
+
Object.values(data).forEach((value: any) => {
|
|
1449
|
+
this.filters[value.filterId] = value.filterExpression;
|
|
1450
|
+
});
|
|
1451
|
+
} else {
|
|
1452
|
+
const { filterId, filterExpression } = data;
|
|
1453
|
+
this.filters[filterId] = filterExpression;
|
|
1454
|
+
}
|
|
1455
|
+
}
|
|
1456
|
+
|
|
1457
|
+
private buildFilterPayload(selectParam: any[]) {
|
|
1458
|
+
const filterConditions = {};
|
|
1459
|
+
let logic = '';
|
|
1460
|
+
let index = 1;
|
|
1461
|
+
const relationalOp = 'AND';
|
|
1462
|
+
|
|
1463
|
+
for (const currentFilter of Object.values(this.filters)) {
|
|
1464
|
+
const filter: any = currentFilter;
|
|
1465
|
+
if (!filter) continue;
|
|
1466
|
+
|
|
1467
|
+
const isDateRange = !!filter.AND;
|
|
1468
|
+
const field = this.getFieldFromFilter(filter, isDateRange);
|
|
1469
|
+
|
|
1470
|
+
if (!this.displayedColumns$?.includes(field)) continue;
|
|
1471
|
+
|
|
1472
|
+
if (logic) {
|
|
1473
|
+
logic += ` ${relationalOp} `;
|
|
1474
|
+
}
|
|
1475
|
+
|
|
1476
|
+
if (isDateRange) {
|
|
1477
|
+
const dateRelationalOp = filter.AND ? 'AND' : 'OR';
|
|
1478
|
+
filterConditions[`T${index}`] = { ...filter[relationalOp][0].condition };
|
|
1479
|
+
filterConditions[`T${index + 1}`] = { ...filter[relationalOp][1].condition };
|
|
1480
|
+
logic += `(T${index} ${dateRelationalOp} T${index + 1})`;
|
|
1481
|
+
index += 2;
|
|
1482
|
+
} else {
|
|
1483
|
+
filterConditions[`T${index}`] = { ...filter.condition, ...(filter.condition.comparator === 'CONTAINS' && { ignoreCase: true }) };
|
|
1484
|
+
logic += `T${index}`;
|
|
1485
|
+
index++;
|
|
1486
|
+
}
|
|
1487
|
+
}
|
|
1488
|
+
|
|
1489
|
+
if (!logic) {
|
|
1490
|
+
return undefined;
|
|
1491
|
+
}
|
|
1492
|
+
|
|
1493
|
+
return {
|
|
1494
|
+
query: {
|
|
1495
|
+
filter: { filterConditions, logic },
|
|
1496
|
+
select: selectParam
|
|
1497
|
+
}
|
|
1498
|
+
};
|
|
1499
|
+
}
|
|
1416
1500
|
}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { getContext, readContextResponse } from './utils';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
declare const PCore: any;
|
|
5
|
-
|
|
6
|
-
export function useInit(props) {
|
|
3
|
+
export function init(props) {
|
|
7
4
|
const {
|
|
8
5
|
referenceList,
|
|
9
6
|
pConn$,
|
|
@@ -15,7 +12,6 @@ export function useInit(props) {
|
|
|
15
12
|
ref,
|
|
16
13
|
showDynamicFields,
|
|
17
14
|
isDataObject,
|
|
18
|
-
xRayUid,
|
|
19
15
|
cosmosTableRef
|
|
20
16
|
} = props;
|
|
21
17
|
let { editing, selectionMode } = props;
|
|
@@ -25,9 +21,9 @@ export function useInit(props) {
|
|
|
25
21
|
let selectionCountThreshold;
|
|
26
22
|
|
|
27
23
|
// promise to fetch metadata
|
|
28
|
-
const metaDataPromise = PCore.getAnalyticsUtils().getDataViewMetadata(referenceList, showDynamicFields);
|
|
24
|
+
const metaDataPromise = PCore.getAnalyticsUtils().getDataViewMetadata(referenceList, showDynamicFields, null);
|
|
29
25
|
|
|
30
|
-
const promisesArray = [metaDataPromise];
|
|
26
|
+
const promisesArray: any = [metaDataPromise];
|
|
31
27
|
|
|
32
28
|
// promise to fetch report configured columns
|
|
33
29
|
const reportColumnsPromise = PCore.getAnalyticsUtils()
|
|
@@ -70,8 +66,7 @@ export function useInit(props) {
|
|
|
70
66
|
pConn$,
|
|
71
67
|
compositeKeys,
|
|
72
68
|
isSearchable,
|
|
73
|
-
isCacheable: true
|
|
74
|
-
xRayUid
|
|
69
|
+
isCacheable: true
|
|
75
70
|
}).then(async context => {
|
|
76
71
|
return readContextResponse(context, {
|
|
77
72
|
...props,
|
|
@@ -79,7 +74,6 @@ export function useInit(props) {
|
|
|
79
74
|
selectionCountThreshold,
|
|
80
75
|
ref,
|
|
81
76
|
selectionMode,
|
|
82
|
-
xRayUid,
|
|
83
77
|
cosmosTableRef
|
|
84
78
|
});
|
|
85
79
|
});
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { getDefaultViewMeta } from './DefaultViewMeta';
|
|
2
2
|
|
|
3
|
-
// Remove this and use "real" PCore type once .d.ts is fixed (currently shows 5 errors)
|
|
4
|
-
declare const PCore: any;
|
|
5
|
-
|
|
6
3
|
const USER_REFERENCE = 'UserReference';
|
|
7
4
|
const PAGE = '!P!';
|
|
8
5
|
const PAGELIST = '!PL!';
|
|
@@ -121,7 +118,7 @@ export const isPageListInPath = (propertyName, currentClassID) => {
|
|
|
121
118
|
return false;
|
|
122
119
|
}
|
|
123
120
|
const [first, ...rest] = propertyName.split('.');
|
|
124
|
-
const metadata = PCore.getMetadataUtils().getPropertyMetadata(first, currentClassID);
|
|
121
|
+
const metadata: any = PCore.getMetadataUtils().getPropertyMetadata(first, currentClassID);
|
|
125
122
|
if (metadata?.type === 'Page List') {
|
|
126
123
|
return true;
|
|
127
124
|
}
|
|
@@ -205,7 +202,7 @@ export function getConfigEmbeddedFieldsMeta(configFields, classID) {
|
|
|
205
202
|
if (value.includes('[')) {
|
|
206
203
|
value = value.substring(0, value.indexOf('[')) + value.substring(value.indexOf(']') + 1);
|
|
207
204
|
}
|
|
208
|
-
const meta = PCore.getMetadataUtils().getEmbeddedPropertyMetadata(value, classID);
|
|
205
|
+
const meta: any = PCore.getMetadataUtils().getEmbeddedPropertyMetadata(value, classID);
|
|
209
206
|
meta.fieldID = field;
|
|
210
207
|
configEmbeddedFieldsMeta.push(meta);
|
|
211
208
|
}
|
|
@@ -553,6 +550,27 @@ function populateRenderingOptions(name, config, field) {
|
|
|
553
550
|
config.cellRenderer = formatConstants.Integer;
|
|
554
551
|
}
|
|
555
552
|
}
|
|
553
|
+
function isFLProperty(label) {
|
|
554
|
+
return label?.startsWith('@FL');
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
function getFieldLabel(fieldConfig) {
|
|
558
|
+
const { label, classID, caption } = fieldConfig;
|
|
559
|
+
let fieldLabel = (label ?? caption)?.substring(4);
|
|
560
|
+
const labelSplit = fieldLabel?.split('.');
|
|
561
|
+
const propertyName = labelSplit?.pop();
|
|
562
|
+
const fieldMetaData: any = PCore.getMetadataUtils().getPropertyMetadata(propertyName, classID) ?? {};
|
|
563
|
+
fieldLabel = fieldMetaData.label ?? fieldMetaData.caption ?? propertyName;
|
|
564
|
+
|
|
565
|
+
const definedOnClassID = fieldMetaData.definedOnClassID;
|
|
566
|
+
const localeValue = PCore.getLocaleUtils().getLocaleValue(
|
|
567
|
+
fieldLabel,
|
|
568
|
+
`${definedOnClassID ?? fieldMetaData.classID ?? classID}.${propertyName}`,
|
|
569
|
+
PCore.getLocaleUtils().FIELD_LABELS_BUNDLE_KEY,
|
|
570
|
+
null
|
|
571
|
+
);
|
|
572
|
+
return localeValue || fieldLabel;
|
|
573
|
+
}
|
|
556
574
|
export function initializeColumns(fields: any[] = [], getMappedProperty: any = null) {
|
|
557
575
|
return fields.map((field, originalColIndex) => {
|
|
558
576
|
let name = field.config.value;
|
|
@@ -565,7 +583,9 @@ export function initializeColumns(fields: any[] = [], getMappedProperty: any = n
|
|
|
565
583
|
|
|
566
584
|
let label = field.config.label || field.config.caption;
|
|
567
585
|
const { show = true, displayAs } = field.config;
|
|
568
|
-
if (label
|
|
586
|
+
if (isFLProperty(label)) {
|
|
587
|
+
label = getFieldLabel(field.config);
|
|
588
|
+
} else if (label.startsWith('@')) {
|
|
569
589
|
label = label.substring(3);
|
|
570
590
|
}
|
|
571
591
|
|
|
@@ -656,7 +676,7 @@ export const readContextResponse = async (context, params) => {
|
|
|
656
676
|
const { pConn$, apiContext, children, showDynamicFields, referenceList, isDataObject } = params;
|
|
657
677
|
// let { listContext } = params;
|
|
658
678
|
const { promisesResponseArray, apiContext: otherContext } = context;
|
|
659
|
-
|
|
679
|
+
|
|
660
680
|
const listOfComponents: any[] = [];
|
|
661
681
|
const {
|
|
662
682
|
data: { fields: metaFields, classID, isQueryable }
|
|
@@ -12,7 +12,6 @@ interface MultiReferenceReadOnlyProps {
|
|
|
12
12
|
selector: 'app-multi-reference-readonly',
|
|
13
13
|
templateUrl: './multi-reference-readonly.component.html',
|
|
14
14
|
styleUrls: ['./multi-reference-readonly.component.scss'],
|
|
15
|
-
standalone: true,
|
|
16
15
|
imports: [forwardRef(() => ComponentMapperComponent)]
|
|
17
16
|
})
|
|
18
17
|
export class MultiReferenceReadonlyComponent implements OnInit, OnDestroy {
|
|
@@ -7,7 +7,6 @@ import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
|
7
7
|
selector: 'app-narrow-wide-form',
|
|
8
8
|
templateUrl: './narrow-wide-form.component.html',
|
|
9
9
|
styleUrls: ['./narrow-wide-form.component.scss'],
|
|
10
|
-
standalone: true,
|
|
11
10
|
imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
|
|
12
11
|
})
|
|
13
12
|
export class NarrowWideFormComponent implements OnInit, OnChanges {
|
|
@@ -29,6 +28,6 @@ export class NarrowWideFormComponent implements OnInit, OnChanges {
|
|
|
29
28
|
}
|
|
30
29
|
|
|
31
30
|
updateSelf() {
|
|
32
|
-
this.arChildren$ = this.pConn$.getChildren()
|
|
31
|
+
this.arChildren$ = this.pConn$.getChildren();
|
|
33
32
|
}
|
|
34
33
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<component-mapper name="CaseView" [props]="{ pConn$, formGroup$ }"></component-mapper>
|
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
|
2
|
+
|
|
3
|
+
import { ObjectPageComponent } from './object-page.component';
|
|
4
|
+
|
|
5
|
+
describe('ObjectPageComponent', () => {
|
|
6
|
+
let component: ObjectPageComponent;
|
|
7
|
+
let fixture: ComponentFixture<ObjectPageComponent>;
|
|
8
|
+
|
|
9
|
+
beforeEach(async () => {
|
|
10
|
+
await TestBed.configureTestingModule({
|
|
11
|
+
imports: [ObjectPageComponent]
|
|
12
|
+
}).compileComponents();
|
|
13
|
+
|
|
14
|
+
fixture = TestBed.createComponent(ObjectPageComponent);
|
|
15
|
+
component = fixture.componentInstance;
|
|
16
|
+
fixture.detectChanges();
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it('should create', () => {
|
|
20
|
+
expect(component).toBeTruthy();
|
|
21
|
+
});
|
|
22
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Component, forwardRef, Input } from '@angular/core';
|
|
2
|
+
import { FormGroup } from '@angular/forms';
|
|
3
|
+
import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
4
|
+
|
|
5
|
+
@Component({
|
|
6
|
+
selector: 'lib-object-page',
|
|
7
|
+
imports: [forwardRef(() => ComponentMapperComponent)],
|
|
8
|
+
templateUrl: './object-page.component.html',
|
|
9
|
+
styleUrl: './object-page.component.scss'
|
|
10
|
+
})
|
|
11
|
+
export class ObjectPageComponent {
|
|
12
|
+
@Input() pConn$: typeof PConnect;
|
|
13
|
+
@Input() formGroup$: FormGroup;
|
|
14
|
+
}
|
|
@@ -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-one-column',
|
|
8
9
|
templateUrl: './one-column.component.html',
|
|
9
10
|
styleUrls: ['./one-column.component.scss'],
|
|
10
|
-
standalone: true,
|
|
11
11
|
imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
|
|
12
12
|
})
|
|
13
|
-
export class OneColumnComponent implements OnInit, OnChanges {
|
|
14
|
-
@Input() pConn$: typeof PConnect;
|
|
13
|
+
export class OneColumnComponent 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 OneColumnComponent 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-one-column-page',
|
|
7
7
|
templateUrl: './one-column-page.component.html',
|
|
8
8
|
styleUrls: ['./one-column-page.component.scss'],
|
|
9
|
-
standalone: true,
|
|
10
9
|
imports: [forwardRef(() => ComponentMapperComponent)]
|
|
11
10
|
})
|
|
12
11
|
export class OneColumnPageComponent {
|
|
@@ -7,7 +7,6 @@ import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
|
7
7
|
selector: 'app-one-column-tab',
|
|
8
8
|
templateUrl: './one-column-tab.component.html',
|
|
9
9
|
styleUrls: ['./one-column-tab.component.scss'],
|
|
10
|
-
standalone: true,
|
|
11
10
|
imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
|
|
12
11
|
})
|
|
13
12
|
export class OneColumnTabComponent implements OnInit, OnChanges {
|
|
@@ -29,6 +28,6 @@ export class OneColumnTabComponent implements OnInit, OnChanges {
|
|
|
29
28
|
}
|
|
30
29
|
|
|
31
30
|
updateSelf() {
|
|
32
|
-
this.arChildren$ = this.pConn$.getChildren()
|
|
31
|
+
this.arChildren$ = this.pConn$.getChildren();
|
|
33
32
|
}
|
|
34
33
|
}
|