@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.
Files changed (160) hide show
  1. package/lib/designSystemExtension/alert/alert.component.scss +3 -3
  2. package/lib/designSystemExtension/banner/banner.component.scss +12 -2
  3. package/lib/designSystemExtension/material-case-summary/material-case-summary.component.html +6 -3
  4. package/lib/designSystemExtension/material-case-summary/material-case-summary.component.scss +5 -34
  5. package/lib/designSystemExtension/material-details/material-details.component.scss +0 -5
  6. package/lib/designSystemExtension/material-details-fields/material-details-fields.component.html +2 -2
  7. package/lib/designSystemExtension/material-details-fields/material-details-fields.component.scss +4 -3
  8. package/lib/designSystemExtension/material-summary-item/material-summary-item.component.scss +2 -17
  9. package/lib/designSystemExtension/material-utility/material-utility.component.scss +1 -2
  10. package/lib/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.scss +1 -1
  11. package/lib/designSystemExtension/operator/operator.component.html +1 -1
  12. package/lib/designSystemExtension/operator/operator.component.scss +3 -10
  13. package/lib/designSystemExtension/operator/operator.component.ts +0 -1
  14. package/lib/designSystemExtension/pulse/pulse.component.scss +2 -2
  15. package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.scss +0 -1
  16. package/lib/designSystemExtension/wss-quick-create/wss-quick-create.component.scss +16 -8
  17. package/lib/field/auto-complete/auto-complete.component.html +0 -1
  18. package/lib/field/auto-complete/auto-complete.component.ts +35 -172
  19. package/lib/field/cancel-alert/cancel-alert.component.html +8 -12
  20. package/lib/field/cancel-alert/cancel-alert.component.scss +2 -3
  21. package/lib/field/cancel-alert/cancel-alert.component.ts +24 -36
  22. package/lib/field/check-box/check-box.component.html +0 -1
  23. package/lib/field/check-box/check-box.component.scss +0 -1
  24. package/lib/field/check-box/check-box.component.ts +19 -149
  25. package/lib/field/currency/currency.component.ts +36 -168
  26. package/lib/field/date/date.component.html +1 -1
  27. package/lib/field/date/date.component.ts +30 -150
  28. package/lib/field/date-time/date-time.component.ts +31 -149
  29. package/lib/field/decimal/decimal.component.ts +38 -163
  30. package/lib/field/dropdown/dropdown.component.ts +29 -151
  31. package/lib/field/email/email.component.ts +16 -155
  32. package/lib/field/field.base.ts +149 -0
  33. package/lib/field/group/group.component.ts +7 -4
  34. package/lib/field/integer/integer.component.ts +18 -157
  35. package/lib/field/location/location.component.ts +1 -1
  36. package/lib/field/multiselect/multiselect.component.ts +46 -148
  37. package/lib/field/multiselect/utils.ts +55 -47
  38. package/lib/field/object-reference/object-reference.component.html +17 -0
  39. package/lib/field/object-reference/object-reference.component.scss +0 -0
  40. package/lib/field/object-reference/object-reference.component.spec.ts +22 -0
  41. package/lib/field/object-reference/object-reference.component.ts +237 -0
  42. package/lib/field/percentage/percentage.component.ts +37 -154
  43. package/lib/field/phone/phone.component.ts +28 -142
  44. package/lib/field/radio-buttons/radio-buttons.component.scss +4 -2
  45. package/lib/field/radio-buttons/radio-buttons.component.ts +35 -161
  46. package/lib/field/rich-text/rich-text.component.ts +19 -90
  47. package/lib/field/scalar-list/scalar-list.component.ts +17 -72
  48. package/lib/field/selectable-card/selectable-card.component.html +54 -24
  49. package/lib/field/selectable-card/selectable-card.component.scss +11 -0
  50. package/lib/field/selectable-card/selectable-card.component.ts +16 -52
  51. package/lib/field/semantic-link/semantic-link.component.html +4 -8
  52. package/lib/field/semantic-link/semantic-link.component.scss +0 -13
  53. package/lib/field/semantic-link/semantic-link.component.ts +165 -5
  54. package/lib/field/text/text.component.scss +0 -1
  55. package/lib/field/text-area/text-area.component.ts +18 -152
  56. package/lib/field/text-input/text-input.component.ts +16 -155
  57. package/lib/field/time/time.component.ts +17 -151
  58. package/lib/field/url/url.component.ts +16 -154
  59. package/lib/field/user-reference/user-reference.component.scss +0 -1
  60. package/lib/field/user-reference/user-reference.component.ts +2 -3
  61. package/lib/infra/Containers/flow-container/flow-container.component.ts +5 -7
  62. package/lib/infra/Containers/modal-view-container/modal-view-container.component.ts +5 -10
  63. package/lib/infra/Containers/view-container/helper.ts +35 -2
  64. package/lib/infra/Containers/view-container/view-container.component.ts +1 -1
  65. package/lib/infra/action-buttons/action-buttons.component.html +13 -8
  66. package/lib/infra/action-buttons/action-buttons.component.scss +23 -0
  67. package/lib/infra/action-buttons/action-buttons.component.ts +1 -2
  68. package/lib/infra/assignment/assignment.component.ts +8 -6
  69. package/lib/infra/assignment-card/assignment-card.component.html +1 -2
  70. package/lib/infra/assignment-card/assignment-card.component.scss +0 -4
  71. package/lib/infra/assignment-card/assignment-card.component.ts +21 -4
  72. package/lib/infra/defer-load/defer-load.component.html +6 -2
  73. package/lib/infra/defer-load/defer-load.component.ts +16 -10
  74. package/lib/infra/multi-step/multi-step.component.scss +1 -21
  75. package/lib/infra/navbar/navbar.component.html +25 -28
  76. package/lib/infra/navbar/navbar.component.scss +16 -4
  77. package/lib/infra/navbar/navbar.component.ts +8 -3
  78. package/lib/infra/root-container/root-container.component.scss +0 -1
  79. package/lib/infra/root-container/root-container.component.ts +1 -2
  80. package/lib/infra/stages/stages.component.html +2 -2
  81. package/lib/infra/stages/stages.component.scss +7 -35
  82. package/lib/infra/stages/stages.component.ts +4 -2
  83. package/lib/infra/view/view.component.html +1 -1
  84. package/lib/infra/view/view.component.ts +0 -2
  85. package/lib/template/advanced-search/advanced-search.component.html +12 -0
  86. package/lib/template/advanced-search/advanced-search.component.scss +0 -0
  87. package/lib/template/advanced-search/advanced-search.component.spec.ts +0 -0
  88. package/lib/template/advanced-search/advanced-search.component.ts +112 -0
  89. package/lib/template/advanced-search/advanced-search.service.ts +27 -0
  90. package/lib/template/advanced-search/search-group/persist-utils.ts +56 -0
  91. package/lib/template/advanced-search/search-groups/search-groups.component.html +32 -0
  92. package/lib/template/advanced-search/search-groups/search-groups.component.scss +0 -0
  93. package/lib/template/advanced-search/search-groups/search-groups.component.spec.ts +0 -0
  94. package/lib/template/advanced-search/search-groups/search-groups.component.ts +294 -0
  95. package/lib/template/advanced-search/search-groups/utils.ts +29 -0
  96. package/lib/template/app-shell/app-shell.component.html +4 -1
  97. package/lib/template/app-shell/app-shell.component.scss +0 -3
  98. package/lib/template/app-shell/app-shell.component.ts +46 -7
  99. package/lib/template/case-summary/case-summary.component.scss +0 -2
  100. package/lib/template/case-view/case-view.component.html +3 -3
  101. package/lib/template/case-view/case-view.component.scss +18 -10
  102. package/lib/template/case-view/case-view.component.ts +1 -1
  103. package/lib/template/data-reference/data-reference-advanced-search.service.ts +16 -0
  104. package/lib/template/data-reference/data-reference.component.html +11 -8
  105. package/lib/template/data-reference/data-reference.component.ts +346 -112
  106. package/lib/template/data-reference/search-form/search-form.component.html +39 -0
  107. package/lib/template/data-reference/search-form/search-form.component.scss +11 -0
  108. package/lib/template/data-reference/search-form/search-form.component.spec.ts +0 -0
  109. package/lib/template/data-reference/search-form/search-form.component.ts +167 -0
  110. package/lib/template/data-reference/search-form/tabsData.ts +160 -0
  111. package/lib/template/data-reference/utils.ts +92 -0
  112. package/lib/template/default-form/default-form.component.ts +10 -2
  113. package/lib/template/default-page/default-page.component.html +34 -0
  114. package/lib/template/default-page/default-page.component.scss +31 -0
  115. package/lib/template/default-page/default-page.component.spec.ts +24 -0
  116. package/lib/template/default-page/default-page.component.ts +64 -0
  117. package/lib/template/field-group-list/field-group-list.component.scss +0 -1
  118. package/lib/template/inline-dashboard-page/inline-dashboard-page.component.ts +1 -1
  119. package/lib/template/list-view/list-view.component.html +9 -4
  120. package/lib/template/list-view/list-view.component.scss +21 -21
  121. package/lib/template/list-view/list-view.component.ts +154 -84
  122. package/lib/template/list-view/utils.ts +25 -2
  123. package/lib/template/object-page/object-page.component.html +1 -0
  124. package/lib/template/object-page/object-page.component.scss +0 -0
  125. package/lib/template/object-page/object-page.component.spec.ts +22 -0
  126. package/lib/template/object-page/object-page.component.ts +14 -0
  127. package/lib/template/one-column-tab/one-column-tab.component.scss +1 -1
  128. package/lib/template/repeating-structures/repeating-structures.component.ts +0 -1
  129. package/lib/template/self-service-case-view/self-service-case-view.component.html +80 -0
  130. package/lib/template/self-service-case-view/self-service-case-view.component.scss +124 -0
  131. package/lib/template/self-service-case-view/self-service-case-view.component.spec.ts +24 -0
  132. package/lib/template/self-service-case-view/self-service-case-view.component.ts +216 -0
  133. package/lib/template/simple-table/simple-table.component.ts +0 -1
  134. package/lib/template/simple-table-manual/helpers.ts +2 -2
  135. package/lib/template/simple-table-manual/simple-table-manual.component.html +4 -4
  136. package/lib/template/simple-table-manual/simple-table-manual.component.scss +4 -14
  137. package/lib/template/simple-table-manual/simple-table-manual.component.ts +8 -4
  138. package/lib/template/single-reference-readonly/single-reference-readonly.component.html +4 -1
  139. package/lib/template/single-reference-readonly/single-reference-readonly.component.scss +21 -0
  140. package/lib/template/single-reference-readonly/single-reference-readonly.component.ts +104 -3
  141. package/lib/template/utils.ts +42 -0
  142. package/lib/template/wss-nav-bar/wss-nav-bar.component.html +5 -4
  143. package/lib/template/wss-nav-bar/wss-nav-bar.component.scss +2 -8
  144. package/lib/template/wss-nav-bar/wss-nav-bar.component.ts +1 -8
  145. package/lib/widget/app-announcement/app-announcement.component.html +1 -2
  146. package/lib/widget/app-announcement/app-announcement.component.scss +2 -2
  147. package/lib/widget/attachment/Attachment.types.ts +92 -0
  148. package/lib/widget/attachment/AttachmentUtils.ts +287 -0
  149. package/lib/widget/attachment/attachment.component.html +3 -3
  150. package/lib/widget/attachment/attachment.component.scss +2 -5
  151. package/lib/widget/attachment/attachment.component.ts +255 -254
  152. package/lib/widget/feed-container/feed-container.component.scss +3 -9
  153. package/lib/widget/feed-container/feed-container.component.ts +2 -2
  154. package/lib/widget/file-utility/file-utility.component.html +3 -3
  155. package/lib/widget/file-utility/file-utility.component.scss +5 -16
  156. package/lib/widget/list-utility/list-utility.component.scss +3 -5
  157. package/lib/widget/todo/todo.component.html +8 -5
  158. package/lib/widget/todo/todo.component.scss +10 -11
  159. package/lib/widget/todo/todo.component.ts +6 -2
  160. 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
- /* empty */
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
- {{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}
7
+ {{ localizationService.getLocalizedText(stage.name) }}
8
8
  </div>
9
9
  <div *ngIf="stage.visited_status == 'future'" class="psdk-stages-inner-future">
10
- {{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}
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(--app-neutral-light-color);
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
- margin: 1rem 0rem;
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(--app-neutral-light-color);
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: rgb(207, 207, 207);
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(--app-inverse-form-color);
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(--app-primary-color);
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(--app-neutral-color);
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: string;
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 = `${this.pConn$.getCaseInfo().getClassName()}!CASE!${this.pConn$.getCaseInfo().getName()}`.toUpperCase();
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>
@@ -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>