@pega/angular-sdk-overrides 25.1.13 → 26.1.10

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 (153) hide show
  1. package/lib/designSystemExtension/alert/alert.component.html +4 -1
  2. package/lib/designSystemExtension/alert/alert.component.scss +9 -10
  3. package/lib/designSystemExtension/alert/alert.component.ts +6 -2
  4. package/lib/designSystemExtension/field-group/field-group.component.ts +11 -3
  5. package/lib/designSystemExtension/material-case-summary/material-case-summary.component.html +51 -36
  6. package/lib/designSystemExtension/material-case-summary/material-case-summary.component.scss +12 -0
  7. package/lib/designSystemExtension/material-case-summary/material-case-summary.component.ts +11 -0
  8. package/lib/designSystemExtension/operator/operator.component.html +5 -3
  9. package/lib/designSystemExtension/operator/operator.component.scss +7 -0
  10. package/lib/designSystemExtension/operator/operator.component.ts +2 -1
  11. package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.html +100 -10
  12. package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.scss +141 -1
  13. package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.spec.ts +1 -1
  14. package/lib/designSystemExtension/rich-text-editor/rich-text-editor.component.ts +240 -72
  15. package/lib/field/auto-complete/auto-complete.component.html +46 -5
  16. package/lib/field/auto-complete/auto-complete.component.scss +92 -0
  17. package/lib/field/auto-complete/auto-complete.component.ts +350 -23
  18. package/lib/field/cancel-alert/cancel-alert.component.ts +38 -15
  19. package/lib/field/check-box/check-box.component.html +8 -6
  20. package/lib/field/check-box/check-box.component.ts +9 -2
  21. package/lib/field/currency/currency.component.html +2 -1
  22. package/lib/field/currency/currency.component.ts +10 -1
  23. package/lib/field/date/date.component.html +2 -1
  24. package/lib/field/date/date.component.ts +2 -0
  25. package/lib/field/date-time/date-time.component.html +2 -1
  26. package/lib/field/date-time/date-time.component.scss +46 -40
  27. package/lib/field/date-time/date-time.component.ts +29 -0
  28. package/lib/field/decimal/decimal.component.html +2 -1
  29. package/lib/field/decimal/decimal.component.ts +2 -0
  30. package/lib/field/dropdown/dropdown.component.html +4 -1
  31. package/lib/field/dropdown/dropdown.component.ts +18 -19
  32. package/lib/field/email/email.component.html +2 -1
  33. package/lib/field/email/email.component.ts +2 -2
  34. package/lib/field/embedded-data-multi/embedded-data-multi.component.html +3 -0
  35. package/lib/field/embedded-data-multi/embedded-data-multi.component.scss +0 -0
  36. package/lib/field/embedded-data-multi/embedded-data-multi.component.ts +173 -0
  37. package/lib/field/field.base.ts +27 -1
  38. package/lib/field/group/group.component.html +1 -1
  39. package/lib/field/group/group.component.ts +15 -5
  40. package/lib/field/integer/integer.component.html +2 -1
  41. package/lib/field/integer/integer.component.ts +4 -2
  42. package/lib/field/location/location.component.html +2 -1
  43. package/lib/field/location/location.component.ts +3 -1
  44. package/lib/field/multiselect/multiselect.component.html +1 -1
  45. package/lib/field/multiselect/multiselect.component.ts +23 -4
  46. package/lib/field/multiselect/utils.ts +5 -3
  47. package/lib/field/object-reference/object-reference.component.html +30 -15
  48. package/lib/field/object-reference/object-reference.component.ts +818 -94
  49. package/lib/field/percentage/percentage.component.html +2 -1
  50. package/lib/field/percentage/percentage.component.ts +10 -1
  51. package/lib/field/phone/phone.component.html +2 -1
  52. package/lib/field/phone/phone.component.ts +2 -1
  53. package/lib/field/radio-buttons/radio-buttons.component.html +2 -1
  54. package/lib/field/radio-buttons/radio-buttons.component.ts +10 -1
  55. package/lib/field/rich-text/rich-text.component.scss +1 -166
  56. package/lib/field/rich-text/rich-text.component.spec.ts +1 -1
  57. package/lib/field/rich-text/rich-text.component.ts +1 -1
  58. package/lib/field/selectable-card/selectable-card.component.html +1 -0
  59. package/lib/field/selectable-card/selectable-card.component.ts +31 -16
  60. package/lib/field/semantic-link/semantic-link.component.html +1 -1
  61. package/lib/field/semantic-link/semantic-link.component.scss +4 -0
  62. package/lib/field/semantic-link/semantic-link.component.ts +13 -7
  63. package/lib/field/text-area/text-area.component.html +2 -1
  64. package/lib/field/text-area/text-area.component.ts +2 -1
  65. package/lib/field/text-input/text-input.component.html +2 -1
  66. package/lib/field/text-input/text-input.component.ts +2 -1
  67. package/lib/field/time/time.component.html +2 -1
  68. package/lib/field/time/time.component.ts +2 -1
  69. package/lib/field/url/url.component.html +2 -1
  70. package/lib/field/url/url.component.ts +2 -1
  71. package/lib/field/user-reference/user-reference.component.html +4 -2
  72. package/lib/field/user-reference/user-reference.component.ts +11 -6
  73. package/lib/infra/Containers/flow-container/flow-container.component.html +1 -1
  74. package/lib/infra/Containers/flow-container/flow-container.component.ts +35 -46
  75. package/lib/infra/Containers/modal-view-container/data-view-action-buttons/data-view-action-buttons.component.html +12 -0
  76. package/lib/infra/Containers/modal-view-container/data-view-action-buttons/data-view-action-buttons.component.spec.ts +130 -0
  77. package/lib/infra/Containers/modal-view-container/data-view-action-buttons/data-view-action-buttons.component.ts +77 -0
  78. package/lib/infra/Containers/modal-view-container/modal-view-container.component.html +35 -8
  79. package/lib/infra/Containers/modal-view-container/modal-view-container.component.ts +185 -194
  80. package/lib/infra/Containers/view-container/view-container.component.ts +32 -35
  81. package/lib/infra/assignment/assignment.component.html +2 -1
  82. package/lib/infra/assignment/assignment.component.ts +42 -15
  83. package/lib/infra/defer-load/defer-load.component.ts +6 -3
  84. package/lib/infra/multi-step/multi-step.component.html +25 -33
  85. package/lib/infra/multi-step/multi-step.component.scss +67 -125
  86. package/lib/infra/multi-step/multi-step.component.ts +11 -0
  87. package/lib/infra/navbar/navbar.component.ts +33 -36
  88. package/lib/infra/reference/reference.component.ts +1 -2
  89. package/lib/infra/root-container/root-container.component.ts +33 -38
  90. package/lib/infra/view/view.component.ts +21 -40
  91. package/lib/template/advanced-search/advanced-search.component.ts +0 -1
  92. package/lib/template/advanced-search/search-groups/search-groups.component.ts +2 -3
  93. package/lib/template/app-shell/app-shell.component.ts +13 -13
  94. package/lib/template/base/details-template-base.ts +41 -14
  95. package/lib/template/case-summary/case-summary.component.ts +15 -1
  96. package/lib/template/case-view/case-view.component.html +13 -1
  97. package/lib/template/case-view/case-view.component.spec.ts +119 -10
  98. package/lib/template/case-view/case-view.component.ts +52 -3
  99. package/lib/template/data-reference/data-reference.component.ts +2 -4
  100. package/lib/template/data-reference/search-form/search-form.component.html +1 -1
  101. package/lib/template/data-reference/search-form/search-form.component.ts +9 -1
  102. package/lib/template/data-reference/search-form/tabsData.ts +0 -1
  103. package/lib/template/default-form/default-form.component.html +19 -3
  104. package/lib/template/default-form/default-form.component.ts +13 -3
  105. package/lib/template/details/details.component.html +23 -3
  106. package/lib/template/details/details.component.scss +9 -2
  107. package/lib/template/details/details.component.ts +3 -70
  108. package/lib/template/details-narrow-wide/details-narrow-wide.component.html +21 -2
  109. package/lib/template/details-narrow-wide/details-narrow-wide.component.scss +8 -1
  110. package/lib/template/details-narrow-wide/details-narrow-wide.component.ts +3 -39
  111. package/lib/template/details-one-column/details-one-column.component.html +23 -1
  112. package/lib/template/details-one-column/details-one-column.component.scss +14 -0
  113. package/lib/template/details-one-column/details-one-column.component.ts +3 -40
  114. package/lib/template/details-three-column/details-three-column.component.html +21 -2
  115. package/lib/template/details-three-column/details-three-column.component.scss +8 -1
  116. package/lib/template/details-three-column/details-three-column.component.ts +3 -48
  117. package/lib/template/details-two-column/details-two-column.component.html +21 -2
  118. package/lib/template/details-two-column/details-two-column.component.scss +8 -1
  119. package/lib/template/details-two-column/details-two-column.component.ts +3 -46
  120. package/lib/template/details-wide-narrow/details-wide-narrow.component.html +21 -2
  121. package/lib/template/details-wide-narrow/details-wide-narrow.component.scss +8 -1
  122. package/lib/template/details-wide-narrow/details-wide-narrow.component.ts +3 -43
  123. package/lib/template/field-group-template/field-group-template.component.ts +19 -6
  124. package/lib/template/field-value-list/field-value-list.component.scss +17 -0
  125. package/lib/template/list-view/list-view.component.ts +47 -11
  126. package/lib/template/self-service-case-view/self-service-case-view.component.html +13 -1
  127. package/lib/template/self-service-case-view/self-service-case-view.component.spec.ts +96 -11
  128. package/lib/template/self-service-case-view/self-service-case-view.component.ts +52 -3
  129. package/lib/template/simple-table/simple-table.component.ts +6 -0
  130. package/lib/template/simple-table-manual/helpers.ts +84 -16
  131. package/lib/template/simple-table-manual/simple-table-manual.component.html +30 -14
  132. package/lib/template/simple-table-manual/simple-table-manual.component.scss +8 -2
  133. package/lib/template/simple-table-manual/simple-table-manual.component.ts +131 -43
  134. package/lib/template/single-reference-readonly/single-reference-readonly.component.html +0 -0
  135. package/lib/template/single-reference-readonly/single-reference-readonly.component.scss +2 -3
  136. package/lib/template/single-reference-readonly/single-reference-readonly.component.ts +7 -8
  137. package/lib/template/wss-nav-bar/wss-nav-bar.component.ts +19 -21
  138. package/lib/widget/attachment/AttachmentUtils.ts +19 -11
  139. package/lib/widget/attachment/attachment.component.html +16 -6
  140. package/lib/widget/attachment/attachment.component.ts +14 -4
  141. package/lib/widget/case-history/case-history.component.ts +6 -2
  142. package/lib/widget/feed-container/feed-container.component.ts +1 -199
  143. package/lib/widget/file-utility/file-utility.component.ts +26 -30
  144. package/lib/widget/todo/todo.component.ts +7 -2
  145. package/package.json +2 -2
  146. package/lib/designSystemExtension/material-details/material-details.component.html +0 -40
  147. package/lib/designSystemExtension/material-details/material-details.component.scss +0 -116
  148. package/lib/designSystemExtension/material-details/material-details.component.spec.ts +0 -24
  149. package/lib/designSystemExtension/material-details/material-details.component.ts +0 -31
  150. package/lib/designSystemExtension/material-details-fields/material-details-fields.component.html +0 -29
  151. package/lib/designSystemExtension/material-details-fields/material-details-fields.component.scss +0 -34
  152. package/lib/designSystemExtension/material-details-fields/material-details-fields.component.spec.ts +0 -22
  153. package/lib/designSystemExtension/material-details-fields/material-details-fields.component.ts +0 -37
@@ -1,5 +1,5 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, forwardRef, Input, OnInit } from '@angular/core';
2
+ import { Component, forwardRef, Input, OnDestroy, OnInit } from '@angular/core';
3
3
  import { FormGroup } from '@angular/forms';
4
4
  import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
5
5
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
@@ -10,7 +10,7 @@ interface GroupProps extends PConnFieldProps {
10
10
  showHeading: boolean;
11
11
  heading: string;
12
12
  instructions: string;
13
- collapsible: boolean;
13
+ collapseOnLoad?: 'none' | 'expanded' | 'collapsed';
14
14
  }
15
15
 
16
16
  @Component({
@@ -19,7 +19,7 @@ interface GroupProps extends PConnFieldProps {
19
19
  styleUrls: ['./group.component.scss'],
20
20
  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
21
21
  })
22
- export class GroupComponent implements OnInit {
22
+ export class GroupComponent implements OnInit, OnDestroy {
23
23
  @Input() pConn$: typeof PConnect;
24
24
  @Input() formGroup$: FormGroup;
25
25
 
@@ -32,7 +32,6 @@ export class GroupComponent implements OnInit {
32
32
  showHeading$?: boolean;
33
33
  heading$: string;
34
34
  instructions$: string;
35
- collapsible$: boolean;
36
35
 
37
36
  constructor(private angularPConnect: AngularPConnectService) {}
38
37
 
@@ -42,6 +41,12 @@ export class GroupComponent implements OnInit {
42
41
  this.checkAndUpdate();
43
42
  }
44
43
 
44
+ additionalProps() {
45
+ return {
46
+ visibility: this.pConn$.getComputedVisibility()
47
+ };
48
+ }
49
+
45
50
  // Callback passed when subscribing to store change
46
51
  onStateChange() {
47
52
  this.checkAndUpdate();
@@ -68,7 +73,6 @@ export class GroupComponent implements OnInit {
68
73
  this.showHeading$ = this.configProps$.showHeading;
69
74
  this.heading$ = this.configProps$.heading;
70
75
  this.instructions$ = this.configProps$.instructions;
71
- this.collapsible$ = this.configProps$.collapsible;
72
76
 
73
77
  if (this.configProps$.visibility === undefined) {
74
78
  this.visibility$ = this.pConn$.getComputedVisibility();
@@ -86,4 +90,10 @@ export class GroupComponent implements OnInit {
86
90
  });
87
91
  }
88
92
  }
93
+
94
+ ngOnDestroy(): void {
95
+ if (this.angularPConnectData.unsubscribeFn) {
96
+ this.angularPConnectData.unsubscribeFn();
97
+ }
98
+ }
89
99
  }
@@ -4,7 +4,7 @@
4
4
  <ng-template #noDisplayMode>
5
5
  <div *ngIf="!bReadonly$ && bHasForm$; else noEdit">
6
6
  <div [formGroup]="formGroup$" *ngIf="bVisible$">
7
- <mat-form-field class="psdk-full-width" subscriptSizing="dynamic" [hintLabel]="helperText">
7
+ <mat-form-field class="psdk-full-width" subscriptSizing="dynamic">
8
8
  <mat-label>{{ label$ }}</mat-label>
9
9
  <input
10
10
  matInput
@@ -18,6 +18,7 @@
18
18
  (change)="fieldOnChange($event)"
19
19
  (blur)="fieldOnBlur($event)"
20
20
  />
21
+ <mat-hint *ngIf="helperText" [appFieldWarning]="bFieldMessageVisible$">{{ helperText }}</mat-hint>
21
22
  <mat-error *ngIf="fieldControl.invalid">{{ getErrorMessage() }}</mat-error>
22
23
  </mat-form-field>
23
24
  </div>
@@ -5,6 +5,7 @@ import { MatInputModule } from '@angular/material/input';
5
5
  import { MatFormFieldModule } from '@angular/material/form-field';
6
6
 
7
7
  import { FieldBase } from '@pega/angular-sdk-components';
8
+ import { FieldWarningDirective } from '@pega/angular-sdk-components';
8
9
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
9
10
  import { handleEvent } from '@pega/angular-sdk-components';
10
11
  import { PConnFieldProps } from '@pega/angular-sdk-components';
@@ -17,7 +18,7 @@ interface IntegerProps extends PConnFieldProps {
17
18
  selector: 'app-integer',
18
19
  templateUrl: './integer.component.html',
19
20
  styleUrls: ['./integer.component.scss'],
20
- imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]
21
+ imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, FieldWarningDirective, forwardRef(() => ComponentMapperComponent)]
21
22
  })
22
23
  export class IntegerComponent extends FieldBase {
23
24
  configProps$: IntegerProps;
@@ -57,7 +58,8 @@ export class IntegerComponent extends FieldBase {
57
58
 
58
59
  if (isValueChanged) {
59
60
  const value = event?.target?.value;
60
- handleEvent(this.actionsApi, 'changeNblur', this.propName, value);
61
+ const normalizedValue = value === '' ? '' : Number(value);
62
+ handleEvent(this.actionsApi, 'changeNblur', this.propName, normalizedValue);
61
63
  }
62
64
  }
63
65
  }
@@ -1,6 +1,6 @@
1
1
  <div *ngIf="mapReady && bVisible$">
2
2
  <!-- Google suggestions -->
3
- <mat-form-field class="psdk-full-width" [hintLabel]="helperText">
3
+ <mat-form-field class="psdk-full-width">
4
4
  <mat-label>{{ label$ }}</mat-label>
5
5
  <input
6
6
  matInput
@@ -14,6 +14,7 @@
14
14
  (blur)="fieldOnBlur()"
15
15
  />
16
16
  <mat-error *ngIf="fieldControl.invalid">{{ getErrorMessage() }}</mat-error>
17
+ <mat-hint *ngIf="helperText" [appFieldWarning]="bFieldMessageVisible$">{{ helperText }}</mat-hint>
17
18
  <button
18
19
  mat-icon-button
19
20
  matSuffix
@@ -11,6 +11,7 @@ import { GoogleMapsModule } from '@angular/google-maps';
11
11
  import { debounceTime, from, of, switchMap } from 'rxjs';
12
12
 
13
13
  import { FieldBase } from '@pega/angular-sdk-components';
14
+ import { FieldWarningDirective } from '@pega/angular-sdk-components';
14
15
  import { GoogleMapsLoaderService } from '@pega/angular-sdk-components';
15
16
  import { handleEvent } from '@pega/angular-sdk-components';
16
17
 
@@ -34,7 +35,8 @@ interface LocationProps extends PConnFieldProps {
34
35
  MatIconModule,
35
36
  MatInputModule,
36
37
  MatProgressSpinnerModule,
37
- ReactiveFormsModule
38
+ ReactiveFormsModule,
39
+ FieldWarningDirective
38
40
  ],
39
41
  templateUrl: './location.component.html',
40
42
  styleUrl: './location.component.scss'
@@ -1,7 +1,7 @@
1
1
  <div [formGroup]="formGroup$">
2
2
  <mat-form-field class="psdk-full-width" subscriptSizing="dynamic">
3
3
  <mat-label>{{ label$ }}</mat-label>
4
- <mat-chip-grid #chipGrid>
4
+ <mat-chip-grid #chipGrid [required]="bRequired$">
5
5
  <ng-container *ngFor="let select of selectedItems">
6
6
  <mat-chip-row (removed)="removeChip(select)">
7
7
  {{ select.primary }}
@@ -90,14 +90,33 @@ export class MultiselectComponent extends FieldBase {
90
90
  key: 'true'
91
91
  }
92
92
  ];
93
- let secondaryColumns: any = [];
94
- if (secondaryFields) {
95
- secondaryColumns = secondaryFields.map(secondaryField => ({
96
- value: secondaryField,
93
+ let secondaryColumns: any;
94
+ // Read columnsFormatter from raw (unresolved) metadata to get field property paths
95
+ // (e.g. "@P .pyLabel") instead of resolved data values (e.g. "New Complex Fields").
96
+ // This matches Constellation's approach: pConn.getRawMetadata()?.config?.columnsFormatter
97
+ const columnsFormatter = (this.pConn$.getRawMetadata()?.config as any)?.columnsFormatter;
98
+ const secondaryFieldsFromFormatter = columnsFormatter
99
+ ? columnsFormatter
100
+ .map(item => {
101
+ const property = item?.config?.value;
102
+ if (typeof property === 'string') {
103
+ if (property.startsWith('@USER ')) return property.substring(6);
104
+ if (property.startsWith('@P ')) return property.substring(3);
105
+ return property;
106
+ }
107
+ return undefined;
108
+ })
109
+ .filter(Boolean)
110
+ : undefined;
111
+ const updatedSecondaryFields = secondaryFieldsFromFormatter || secondaryFields;
112
+ if (updatedSecondaryFields) {
113
+ secondaryColumns = updatedSecondaryFields.map(secondaryField => ({
114
+ value: typeof secondaryField === 'string' ? secondaryField : undefined,
97
115
  display: 'true',
98
116
  secondary: 'true',
99
117
  useForSearch: 'true'
100
118
  }));
119
+ secondaryColumns = secondaryColumns.filter(col => col.value);
101
120
  } else {
102
121
  secondaryColumns = [
103
122
  {
@@ -11,9 +11,11 @@ export function setVisibilityForList(c11nEnv, visibility) {
11
11
  function preProcessColumns(columns) {
12
12
  return columns?.map(col => {
13
13
  const tempColObj = { ...col };
14
- tempColObj.value = col.value && col.value.startsWith('.') ? col.value.substring(1) : col.value;
15
- if (tempColObj.setProperty) {
16
- tempColObj.setProperty = col.setProperty && col.setProperty.startsWith('.') ? col.setProperty.substring(1) : col.setProperty;
14
+ if (typeof col.value === 'string') {
15
+ tempColObj.value = col.value.startsWith('.') ? col.value.substring(1) : col.value;
16
+ }
17
+ if (typeof col.setProperty === 'string') {
18
+ tempColObj.setProperty = col.setProperty.startsWith('.') ? col.setProperty.substring(1) : col.setProperty;
17
19
  }
18
20
  return tempColObj;
19
21
  });
@@ -1,17 +1,32 @@
1
- <div *ngIf="isDisplayModeEnabled && !canBeChangedInReviewMode; else semanticLinkCheck">
2
- <component-mapper name="SingleReferenceReadOnly" [props]="{ pConn$ }"></component-mapper>
3
- </div>
4
- <ng-template #semanticLinkCheck>
5
- <div *ngIf="type === 'SemanticLink' && !canBeChangedInReviewMode; else loadDynamicComp">
1
+ <ng-container *ngIf="bVisible$" [ngSwitch]="renderMode">
2
+ <!-- SingleReferenceReadOnly mode -->
3
+ <div *ngSwitchCase="'singleReferenceReadonly'">
4
+ <component-mapper name="SingleReferenceReadOnly" [props]="{ pConn$, dataRelationshipContext }"></component-mapper>
5
+ </div>
6
+
7
+ <!-- MultiReferenceReadonly mode -->
8
+ <div *ngSwitchCase="'multiReferenceReadonly'">
9
+ <component-mapper name="MultiReferenceReadOnly" [props]="{ pConn$ }"></component-mapper>
10
+ </div>
11
+
12
+ <!-- SemanticLink mode -->
13
+ <div *ngSwitchCase="'semanticLink'">
6
14
  <component-mapper name="SemanticLink" [props]="{ pConn$: newPconn }"></component-mapper>
7
15
  </div>
8
- </ng-template>
9
- <ng-template #loadDynamicComp>
10
- <component-mapper
11
- *ngIf="newComponentName"
12
- [name]="newComponentName"
13
- [props]="{ pConn$: newPconn, formGroup$ }"
14
- [parent]="this"
15
- [outputEvents]="{ onRecordChange: onRecordChange }"
16
- ></component-mapper>
17
- </ng-template>
16
+
17
+ <!-- SearchAndSelect mode -->
18
+ <div *ngSwitchCase="'searchAndSelect'">
19
+ <component-mapper name="SearchForm" [props]="{ pConn$, formGroup$, searchSelectCacheKey, type: 'ObjectReference' }"></component-mapper>
20
+ </div>
21
+
22
+ <!-- Dynamic component mode (Cards, Map, CheckboxGroup, Table, Multiselect, Dropdown, AutoComplete, etc.) -->
23
+ <div *ngSwitchCase="'dynamicComponent'">
24
+ <component-mapper
25
+ *ngIf="newComponentName"
26
+ [name]="newComponentName"
27
+ [props]="{ pConn$: newPconn, formGroup$ }"
28
+ [parent]="this"
29
+ [outputEvents]="useOutputEvents ? { onRecordChange: onRecordChange } : undefined"
30
+ ></component-mapper>
31
+ </div>
32
+ </ng-container>