@pega/angular-sdk-overrides 0.25.1 → 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/banner/banner.component.scss +12 -2
- package/lib/designSystemExtension/material-case-summary/material-case-summary.component.html +6 -3
- package/lib/designSystemExtension/material-case-summary/material-case-summary.component.scss +5 -34
- package/lib/designSystemExtension/material-details/material-details.component.scss +0 -5
- package/lib/designSystemExtension/material-details-fields/material-details-fields.component.html +2 -2
- package/lib/designSystemExtension/material-details-fields/material-details-fields.component.scss +4 -3
- package/lib/designSystemExtension/material-summary-item/material-summary-item.component.scss +2 -17
- 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/operator/operator.component.html +1 -1
- package/lib/designSystemExtension/operator/operator.component.scss +3 -10
- package/lib/designSystemExtension/operator/operator.component.ts +0 -1
- package/lib/designSystemExtension/pulse/pulse.component.scss +2 -2
- package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.scss +0 -1
- package/lib/designSystemExtension/wss-quick-create/wss-quick-create.component.scss +16 -8
- package/lib/field/auto-complete/auto-complete.component.html +0 -1
- package/lib/field/auto-complete/auto-complete.component.ts +35 -172
- 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 -36
- package/lib/field/check-box/check-box.component.html +0 -1
- package/lib/field/check-box/check-box.component.scss +0 -1
- package/lib/field/check-box/check-box.component.ts +19 -149
- package/lib/field/currency/currency.component.ts +36 -168
- package/lib/field/date/date.component.html +1 -1
- package/lib/field/date/date.component.ts +30 -150
- package/lib/field/date-time/date-time.component.ts +31 -149
- package/lib/field/decimal/decimal.component.ts +38 -163
- package/lib/field/dropdown/dropdown.component.ts +29 -151
- package/lib/field/email/email.component.ts +16 -155
- package/lib/field/field.base.ts +149 -0
- package/lib/field/group/group.component.ts +7 -4
- package/lib/field/integer/integer.component.ts +18 -157
- package/lib/field/location/location.component.ts +1 -1
- package/lib/field/multiselect/multiselect.component.ts +46 -148
- 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.ts +37 -154
- package/lib/field/phone/phone.component.ts +28 -142
- package/lib/field/radio-buttons/radio-buttons.component.scss +4 -2
- package/lib/field/radio-buttons/radio-buttons.component.ts +35 -161
- package/lib/field/rich-text/rich-text.component.ts +19 -90
- package/lib/field/scalar-list/scalar-list.component.ts +17 -72
- package/lib/field/selectable-card/selectable-card.component.html +54 -24
- package/lib/field/selectable-card/selectable-card.component.scss +11 -0
- package/lib/field/selectable-card/selectable-card.component.ts +16 -52
- 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 -5
- package/lib/field/text/text.component.scss +0 -1
- package/lib/field/text-area/text-area.component.ts +18 -152
- package/lib/field/text-input/text-input.component.ts +16 -155
- package/lib/field/time/time.component.ts +17 -151
- package/lib/field/url/url.component.ts +16 -154
- package/lib/field/user-reference/user-reference.component.scss +0 -1
- package/lib/field/user-reference/user-reference.component.ts +2 -3
- package/lib/infra/Containers/flow-container/flow-container.component.ts +5 -7
- package/lib/infra/Containers/modal-view-container/modal-view-container.component.ts +5 -10
- package/lib/infra/Containers/view-container/helper.ts +35 -2
- package/lib/infra/Containers/view-container/view-container.component.ts +1 -1
- 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 -2
- package/lib/infra/assignment/assignment.component.ts +8 -6
- package/lib/infra/assignment-card/assignment-card.component.html +1 -2
- package/lib/infra/assignment-card/assignment-card.component.scss +0 -4
- package/lib/infra/assignment-card/assignment-card.component.ts +21 -4
- package/lib/infra/defer-load/defer-load.component.html +6 -2
- package/lib/infra/defer-load/defer-load.component.ts +16 -10
- package/lib/infra/multi-step/multi-step.component.scss +1 -21
- 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 +8 -3
- package/lib/infra/root-container/root-container.component.scss +0 -1
- package/lib/infra/root-container/root-container.component.ts +1 -2
- package/lib/infra/stages/stages.component.html +2 -2
- package/lib/infra/stages/stages.component.scss +7 -35
- package/lib/infra/stages/stages.component.ts +4 -2
- package/lib/infra/view/view.component.html +1 -1
- package/lib/infra/view/view.component.ts +0 -2
- 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 +46 -7
- package/lib/template/case-summary/case-summary.component.scss +0 -2
- package/lib/template/case-view/case-view.component.html +3 -3
- package/lib/template/case-view/case-view.component.scss +18 -10
- package/lib/template/case-view/case-view.component.ts +1 -1
- 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 +346 -112
- 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.ts +10 -2
- 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/field-group-list/field-group-list.component.scss +0 -1
- package/lib/template/inline-dashboard-page/inline-dashboard-page.component.ts +1 -1
- package/lib/template/list-view/list-view.component.html +9 -4
- package/lib/template/list-view/list-view.component.scss +21 -21
- package/lib/template/list-view/list-view.component.ts +154 -84
- package/lib/template/list-view/utils.ts +25 -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-tab/one-column-tab.component.scss +1 -1
- package/lib/template/repeating-structures/repeating-structures.component.ts +0 -1
- 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 -1
- package/lib/template/simple-table-manual/helpers.ts +2 -2
- package/lib/template/simple-table-manual/simple-table-manual.component.html +4 -4
- package/lib/template/simple-table-manual/simple-table-manual.component.scss +4 -14
- package/lib/template/simple-table-manual/simple-table-manual.component.ts +8 -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 -3
- package/lib/template/utils.ts +42 -0
- 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 +1 -8
- 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/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 +255 -254
- package/lib/widget/feed-container/feed-container.component.scss +3 -9
- package/lib/widget/feed-container/feed-container.component.ts +2 -2
- 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/list-utility/list-utility.component.scss +3 -5
- package/lib/widget/todo/todo.component.html +8 -5
- package/lib/widget/todo/todo.component.scss +10 -11
- package/lib/widget/todo/todo.component.ts +6 -2
- package/package.json +1 -1
|
@@ -216,7 +216,6 @@ export class RootContainerComponent implements OnInit, OnDestroy {
|
|
|
216
216
|
showHideProgress(bShow: boolean) {
|
|
217
217
|
// only show spinner after 500ms wait, so if server fast, won't see
|
|
218
218
|
if (bShow) {
|
|
219
|
-
// eslint-disable-next-line sonarjs/no-collapsible-if
|
|
220
219
|
if (!this.bIsProgress$) {
|
|
221
220
|
// makes sure Angular tracks these changes
|
|
222
221
|
if (!this.spinnerTimer || this.spinnerTimer.isStopped) {
|
|
@@ -224,7 +223,7 @@ export class RootContainerComponent implements OnInit, OnDestroy {
|
|
|
224
223
|
try {
|
|
225
224
|
this.spinnerTimer.unsubscribe();
|
|
226
225
|
} catch (ex) {
|
|
227
|
-
|
|
226
|
+
console.log(ex);
|
|
228
227
|
}
|
|
229
228
|
|
|
230
229
|
this.ngZone.run(() => {
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
<img class="psdk-stages-icon" src="{{ checkSvgIcon$ }}" />{{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}
|
|
5
5
|
</div>
|
|
6
6
|
<div *ngIf="stage.visited_status == 'active'" class="psdk-stages-inner-present">
|
|
7
|
-
{{
|
|
7
|
+
{{ localizationService.getLocalizedText(stage.name) }}
|
|
8
8
|
</div>
|
|
9
9
|
<div *ngIf="stage.visited_status == 'future'" class="psdk-stages-inner-future">
|
|
10
|
-
{{
|
|
10
|
+
{{ localizationService.getLocalizedText(stage.name) }}
|
|
11
11
|
</div>
|
|
12
12
|
</div>
|
|
13
13
|
</div>
|
|
@@ -8,45 +8,18 @@
|
|
|
8
8
|
font-size: 1.5rem;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
.psdk-stages-div {
|
|
12
|
-
display: inline-flex;
|
|
13
|
-
padding: 0.3125rem;
|
|
14
|
-
font-weight: bold;
|
|
15
|
-
font-size: 1.3rem;
|
|
16
|
-
color: var(--app-neutral-color);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.psdk-stages-past {
|
|
20
|
-
color: var(--app-primary-color);
|
|
21
|
-
padding-right: 0.3125rem;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
.psdk-stages-present {
|
|
25
|
-
color: var(--app-secondary-color);
|
|
26
|
-
padding-right: 0.3125rem;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.psdk-stages-future {
|
|
30
|
-
color: var(--app-neutral-color);
|
|
31
|
-
padding-right: 0.3125rem;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
11
|
.psdk-stages-full {
|
|
35
12
|
display: block;
|
|
36
13
|
}
|
|
37
14
|
|
|
38
15
|
.psdk-stages-divider {
|
|
39
|
-
border-bottom: 0.0625rem solid var(--
|
|
16
|
+
border-bottom: 0.0625rem solid var(--mat-sys-outline-variant);
|
|
40
17
|
}
|
|
41
18
|
|
|
42
19
|
.psdk-stages-full {
|
|
43
20
|
display: block;
|
|
44
21
|
}
|
|
45
22
|
|
|
46
|
-
.psdk-stages-divider {
|
|
47
|
-
border-bottom: 0.0625rem solid var(--app-neutral-light-color);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
23
|
.psdk-stages-icon {
|
|
51
24
|
width: 1.4rem;
|
|
52
25
|
display: inline-block;
|
|
@@ -54,10 +27,9 @@
|
|
|
54
27
|
}
|
|
55
28
|
|
|
56
29
|
.psdk-stages-bar {
|
|
57
|
-
|
|
58
|
-
background-color: var(--app-form-color);
|
|
30
|
+
background-color: var(--mat-sys-surface-container);
|
|
59
31
|
border-radius: 0.5rem;
|
|
60
|
-
border: 0.0625rem solid var(--
|
|
32
|
+
border: 0.0625rem solid var(--mat-sys-outline-variant);
|
|
61
33
|
overflow: hidden;
|
|
62
34
|
display: flex;
|
|
63
35
|
flex-wrap: wrap;
|
|
@@ -84,7 +56,7 @@
|
|
|
84
56
|
right: calc(-0.4375rem);
|
|
85
57
|
background: inherit;
|
|
86
58
|
border-style: solid;
|
|
87
|
-
border-color:
|
|
59
|
+
border-color: var(--mat-sys-outline-variant);
|
|
88
60
|
border-width: 0.0625rem 0.0625rem 0px 0px;
|
|
89
61
|
border-radius: 0px calc(0.3125rem) 0px 0px;
|
|
90
62
|
transform: rotateZ(45deg) skew(15deg, 15deg);
|
|
@@ -92,17 +64,17 @@
|
|
|
92
64
|
}
|
|
93
65
|
|
|
94
66
|
.psdk-stages-inner-past {
|
|
95
|
-
color: var(--
|
|
67
|
+
color: var(--mat-sys-outline-variant);
|
|
96
68
|
font-size: 1rem;
|
|
97
69
|
}
|
|
98
70
|
|
|
99
71
|
.psdk-stages-inner-present {
|
|
100
|
-
color: var(--
|
|
72
|
+
color: var(--mat-sys-primary);
|
|
101
73
|
font-weight: bold;
|
|
102
74
|
font-size: 1rem;
|
|
103
75
|
}
|
|
104
76
|
|
|
105
77
|
.psdk-stages-inner-future {
|
|
106
|
-
color: var(--
|
|
78
|
+
color: var(--mat-sys-on-surface);
|
|
107
79
|
font-size: 1rem;
|
|
108
80
|
}
|
|
@@ -26,7 +26,8 @@ export class StagesComponent implements OnInit, OnDestroy {
|
|
|
26
26
|
arStageResults$: any[];
|
|
27
27
|
lastStage$: any;
|
|
28
28
|
checkSvgIcon$: string;
|
|
29
|
-
key:
|
|
29
|
+
key: any;
|
|
30
|
+
localizationService: any;
|
|
30
31
|
|
|
31
32
|
constructor(
|
|
32
33
|
private angularPConnect: AngularPConnectService,
|
|
@@ -39,7 +40,8 @@ export class StagesComponent implements OnInit, OnDestroy {
|
|
|
39
40
|
|
|
40
41
|
// const imagePath = this.utils.getIconPath(this.utils.getSDKStaticContentUrl());
|
|
41
42
|
this.checkSvgIcon$ = this.utils.getImageSrc('check', this.utils.getSDKStaticContentUrl());
|
|
42
|
-
this.key =
|
|
43
|
+
this.key = this.pConn$?.getCaseLocaleReference();
|
|
44
|
+
this.localizationService = this.pConn$?.getLocalizationService();
|
|
43
45
|
}
|
|
44
46
|
|
|
45
47
|
ngOnDestroy(): void {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<div *ngFor="let kid of arChildren$">
|
|
18
18
|
<component-mapper
|
|
19
19
|
[name]="kid.getPConnect().getComponentName()"
|
|
20
|
-
[props]="{ pConn$: kid.getPConnect() }"
|
|
20
|
+
[props]="{ pConn$: kid.getPConnect(), formGroup$ }"
|
|
21
21
|
errorMsg="View Missing (displayAll): {{ kid.getPConnect().getComponentName() }}"
|
|
22
22
|
></component-mapper>
|
|
23
23
|
</div>
|
|
@@ -162,10 +162,8 @@ export class ViewComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
162
162
|
this.showLabel$ = this.configProps$.showLabel || isDetailsTemplate(this.templateName$) || this.showLabel$;
|
|
163
163
|
// label & showLabel within inheritedProps takes precedence over configProps
|
|
164
164
|
this.label$ = this.inheritedProps$.label || this.label$;
|
|
165
|
-
this.showLabel$ = this.inheritedProps$.showLabel || this.showLabel$;
|
|
166
165
|
// children may have a 'reference' so normalize the children array
|
|
167
166
|
this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());
|
|
168
|
-
|
|
169
167
|
this.visibility$ = this.configProps$.visibility ?? this.visibility$;
|
|
170
168
|
|
|
171
169
|
/**
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<div class="advanced-search">
|
|
2
|
+
<!-- Search Groups Component -->
|
|
3
|
+
<component-mapper name="SearchGroups" [props]="{ pConn$, formGroup$, searchGroupsProps }"></component-mapper>
|
|
4
|
+
<!-- Editable Field Component -->
|
|
5
|
+
<ng-container *ngIf="editableFieldComp">
|
|
6
|
+
<component-mapper
|
|
7
|
+
[name]="editableFieldComp.getPConnect().getComponentName()"
|
|
8
|
+
[props]="{ pConn$: editableFieldComp.getPConnect() }"
|
|
9
|
+
errorMsg="View Missing (displayAll): {{ editableFieldComp.getPConnect().getComponentName() }}"
|
|
10
|
+
></component-mapper>
|
|
11
|
+
</ng-container>
|
|
12
|
+
</div>
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { Component, forwardRef, Input, OnInit, OnChanges } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormGroup } from '@angular/forms';
|
|
4
|
+
import { ComponentMapperComponent } from '@pega/angular-sdk-components';
|
|
5
|
+
import { DataReferenceAdvancedSearchService } from '@pega/angular-sdk-components';
|
|
6
|
+
import { getFirstChildConfig } from '@pega/angular-sdk-components';
|
|
7
|
+
|
|
8
|
+
@Component({
|
|
9
|
+
selector: 'app-advanced-search',
|
|
10
|
+
templateUrl: './advanced-search.component.html',
|
|
11
|
+
styleUrls: ['./advanced-search.component.scss'],
|
|
12
|
+
imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
|
|
13
|
+
})
|
|
14
|
+
export class AdvancedSearchComponent implements OnInit, OnChanges {
|
|
15
|
+
@Input() pConn$: typeof PConnect;
|
|
16
|
+
@Input() formGroup$: FormGroup;
|
|
17
|
+
@Input() searchSelectCacheKey;
|
|
18
|
+
|
|
19
|
+
isInitialized = false;
|
|
20
|
+
|
|
21
|
+
configProps$: any;
|
|
22
|
+
showRecords: any;
|
|
23
|
+
searchGroupsProps: any;
|
|
24
|
+
editableFieldComp: any;
|
|
25
|
+
|
|
26
|
+
constructor(private advancedSearchService: DataReferenceAdvancedSearchService) {}
|
|
27
|
+
|
|
28
|
+
ngOnInit(): void {
|
|
29
|
+
this.isInitialized = true;
|
|
30
|
+
this.updateSelf();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
ngOnChanges() {
|
|
34
|
+
if (this.isInitialized) {
|
|
35
|
+
this.updateSelf();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// updateSelf
|
|
40
|
+
updateSelf(): void {
|
|
41
|
+
this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
|
|
42
|
+
const targetObjectClass = this.configProps$.targetObjectClass;
|
|
43
|
+
const localeReference = this.configProps$.localeReference;
|
|
44
|
+
const data: any = this.advancedSearchService.getConfig();
|
|
45
|
+
const { dataReferenceConfigToChild, isCreateNewReferenceEnabled, disableStartingFieldsForReference, pyID, searchSelectCacheKey } = data;
|
|
46
|
+
const { selectionMode, value: singleSelectFieldValue, readonlyContextList: multiSelectField } = dataReferenceConfigToChild;
|
|
47
|
+
|
|
48
|
+
// let isSelectionExist = false;
|
|
49
|
+
const { MULTI } = PCore.getConstants().LIST_SELECTION_MODE;
|
|
50
|
+
|
|
51
|
+
if (selectionMode === MULTI) {
|
|
52
|
+
this.showRecords = this.pConn$.getValue(multiSelectField)?.length || false;
|
|
53
|
+
} else {
|
|
54
|
+
this.showRecords = this.pConn$.getValue(singleSelectFieldValue) || false;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const rawViewMetadata = this.pConn$.getRawMetadata() as any;
|
|
58
|
+
|
|
59
|
+
const searchFieldsSet = new Set();
|
|
60
|
+
const searchFields: any = [];
|
|
61
|
+
rawViewMetadata?.config?.searchGroups?.forEach((group: any) => {
|
|
62
|
+
group.children.forEach((child: any) => {
|
|
63
|
+
if (!searchFieldsSet.has(child.config.value) && !child.config.validator) {
|
|
64
|
+
searchFields.push(child);
|
|
65
|
+
searchFieldsSet.add(child.config.value);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
const firstChildPConnect = this.pConn$.getChildren()[0].getPConnect as any;
|
|
71
|
+
const [firstChildMeta] = rawViewMetadata.children;
|
|
72
|
+
|
|
73
|
+
const localizedVal = PCore.getLocaleUtils().getLocaleValue;
|
|
74
|
+
// @ts-ignore
|
|
75
|
+
const cache = PCore.getNavigationUtils().getComponentCache(searchSelectCacheKey) ?? {};
|
|
76
|
+
|
|
77
|
+
this.editableFieldComp = firstChildPConnect().createComponent({
|
|
78
|
+
type: firstChildMeta.type,
|
|
79
|
+
config: {
|
|
80
|
+
...getFirstChildConfig({
|
|
81
|
+
firstChildMeta,
|
|
82
|
+
getPConnect: this.pConn$,
|
|
83
|
+
rawViewMetadata,
|
|
84
|
+
contextClass: targetObjectClass,
|
|
85
|
+
dataReferenceConfigToChild,
|
|
86
|
+
isCreateNewReferenceEnabled,
|
|
87
|
+
disableStartingFieldsForReference,
|
|
88
|
+
pyID
|
|
89
|
+
}),
|
|
90
|
+
searchFields,
|
|
91
|
+
showRecords: this.showRecords,
|
|
92
|
+
label: localizedVal('Search results', 'DataReference'),
|
|
93
|
+
searchSelectCacheKey,
|
|
94
|
+
cache
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
const { selectionList, dataRelationshipContext } = this.editableFieldComp.getPConnect().getConfigProps();
|
|
99
|
+
const editableField = selectionMode === MULTI ? selectionList.substring(1) : dataRelationshipContext;
|
|
100
|
+
|
|
101
|
+
this.searchGroupsProps = {
|
|
102
|
+
getPConnect: this.pConn$,
|
|
103
|
+
editableField,
|
|
104
|
+
localeReference,
|
|
105
|
+
setShowRecords: (value: boolean) => {
|
|
106
|
+
this.showRecords = value;
|
|
107
|
+
},
|
|
108
|
+
searchSelectCacheKey: dataReferenceConfigToChild.searchSelectCacheKey,
|
|
109
|
+
cache
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Injectable({
|
|
4
|
+
providedIn: 'root'
|
|
5
|
+
})
|
|
6
|
+
export class AdvancedSearchService {
|
|
7
|
+
initializeSearchFields(rawViewMetadata: any): any[] {
|
|
8
|
+
const searchFieldsSet = new Set();
|
|
9
|
+
const searchFields: any[] = [];
|
|
10
|
+
|
|
11
|
+
rawViewMetadata.config.searchGroups.forEach((group: any) => {
|
|
12
|
+
group.children.forEach((child: any) => {
|
|
13
|
+
if (!searchFieldsSet.has(child.config.value) && !child.config.validator) {
|
|
14
|
+
searchFields.push(child);
|
|
15
|
+
searchFieldsSet.add(child.config.value);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
return searchFields;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
getLocalizedValue(key: string, context: string): string {
|
|
24
|
+
// Mock implementation for localized value retrieval
|
|
25
|
+
return `${context}: ${key}`;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
const SKIP_CACHE_KEY = '';
|
|
2
|
+
|
|
3
|
+
export function getMappedKey(key) {
|
|
4
|
+
const mappedKey = PCore.getEnvironmentInfo().getKeyMapping(key);
|
|
5
|
+
if (!mappedKey) {
|
|
6
|
+
return key;
|
|
7
|
+
}
|
|
8
|
+
return mappedKey;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const getComponentStateKey = (getPConnect, propertyName: string) => {
|
|
12
|
+
const pConnect = getPConnect;
|
|
13
|
+
const caseID = `.${getMappedKey('pyID')}`; // Enhance this later when use-case arrives for data objects using S&S.
|
|
14
|
+
const resolvedCaseID = pConnect.getValue(caseID);
|
|
15
|
+
|
|
16
|
+
if (!resolvedCaseID) {
|
|
17
|
+
return SKIP_CACHE_KEY;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return `Search-${resolvedCaseID}-${pConnect.getPageReference()}-${propertyName}-${pConnect.getCurrentView()}`;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const getComponentStateOptions = getPConnect => {
|
|
24
|
+
return { clearOnCancelForContext: getPConnect.getContextName() };
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
interface SearchCategory {
|
|
28
|
+
// tabId of search category selected
|
|
29
|
+
selectedCategory: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
interface SearchGroup {
|
|
33
|
+
// searchFields can be any object based on what fields are authored.
|
|
34
|
+
searchFields: unknown;
|
|
35
|
+
activeGroupId: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const setComponentCache = ({
|
|
39
|
+
cacheKey,
|
|
40
|
+
state,
|
|
41
|
+
options
|
|
42
|
+
}: {
|
|
43
|
+
cacheKey: string;
|
|
44
|
+
state: SearchCategory | SearchGroup;
|
|
45
|
+
options: ReturnType<typeof getComponentStateOptions>;
|
|
46
|
+
}) => {
|
|
47
|
+
if (cacheKey !== SKIP_CACHE_KEY) {
|
|
48
|
+
(PCore.getNavigationUtils() as any).setComponentCache(cacheKey, state, options);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export const componentCachePersistUtils = {
|
|
53
|
+
getComponentStateKey,
|
|
54
|
+
getComponentStateOptions,
|
|
55
|
+
setComponentCache
|
|
56
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<div class="search-groups-container" fxLayout="column" fxLayoutGap="16px">
|
|
2
|
+
<!-- Dropdown if multiple groups -->
|
|
3
|
+
<div *ngIf="groups && groups.length > 1">
|
|
4
|
+
<mat-form-field appearance="fill" style="width: 100%">
|
|
5
|
+
<mat-label>Search By</mat-label>
|
|
6
|
+
<mat-select [value]="activeGroupId" (selectionChange)="onActiveGroupChange($event.value)">
|
|
7
|
+
<mat-option *ngFor="let group of groups" [value]="group.config.id">
|
|
8
|
+
{{ group.config.label }}
|
|
9
|
+
</mat-option>
|
|
10
|
+
</mat-select>
|
|
11
|
+
</mat-form-field>
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
<!-- Search Fields Form -->
|
|
15
|
+
<div *ngIf="transientItemID">
|
|
16
|
+
<component-mapper
|
|
17
|
+
[name]="searchFieldsC11nEnv()?.getPConnect().getComponentName()"
|
|
18
|
+
[props]="{ pConn$: searchFieldsC11nEnv()?.getPConnect(), formGroup$ }"
|
|
19
|
+
errorMsg="View Missing (displayAll): {{ searchFieldsC11nEnv()?.getPConnect().getComponentName() }}"
|
|
20
|
+
></component-mapper>
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<!-- Action Buttons -->
|
|
24
|
+
<div style="display: flex; gap: 8px; margin-bottom: 10px">
|
|
25
|
+
<button mat-stroked-button type="button" (click)="resetFilterData()">
|
|
26
|
+
{{ localizedVal('Reset', 'SimpleTable') }}
|
|
27
|
+
</button>
|
|
28
|
+
<button mat-raised-button color="primary" type="button" (click)="getFilterData()">
|
|
29
|
+
{{ localizedVal('Search', 'SimpleTable') }}
|
|
30
|
+
</button>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
File without changes
|
|
File without changes
|