diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 00000000..90ed8272
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,239 @@
+# [26.1.10](https://github.com/pegasystems/angular-sdk/tree/release/26.1.10) - Released: 24/06/2026
+
+### **Bug fixes**
+* **Fixed the issue where views are not rendering in Details Template.**
+ * Github: [PR-533](https://github.com/pegasystems/angular-sdk-components/pull/533)
+
+# [25.1.13](https://github.com/pegasystems/angular-sdk/tree/release/25.1.13) - Released: 12/06/2026
+
+## Breaking changes
+
+* None.
+
+## Non Breaking changes
+
+### **Bug fixes**
+* **Fixed the issue where when you configured any action in the EmbeddedData field, and add a record, the configured fields do not appear.**
+ * Github: [PR-479](https://github.com/pegasystems/angular-sdk-components/pull/479)
+* **Repeating Dynamic Layout list is reset when screen is refreshed**
+ * Github: [PR-473](https://github.com/pegasystems/angular-sdk-components/pull/473)
+* **EmbeddedData field is not displayed when visibility condition is configured based on an existing field value**
+ * Github: [PR-473](https://github.com/pegasystems/angular-sdk-components/pull/473)
+* **Unwanted refresh triggers on field value changes**
+ * Github: [PR-473](https://github.com/pegasystems/angular-sdk-components/pull/473)
+* **Fixed the checkbox required validation issue**
+ * Github: [PR-473](https://github.com/pegasystems/angular-sdk-components/pull/473)
+* **Console errors triggered when uploading attachment**
+ * Github: [PR-482](https://github.com/pegasystems/angular-sdk-components/pull/482)
+---
+
+### **Dependencies & Infrastructure**
+
+The following table lists the packages whose versions have been updated:
+
+| Package | Updated version |
+| :--- | :--- |
+| **@pega/angular-sdk-components** | 25.1.13 |
+| **@pega/angular-sdk-overrides** | 25.1.13 |
+| **@pega/dx-component-builder-sdk** | 25.1.15 |
+| **@pega/constellationjs** | 25.1.3 |
+
+
+# [25.1.12](https://github.com/pegasystems/angular-sdk/tree/release/25.1.12) - Released: 27/03/2026
+
+## Breaking changes
+
+* Upgraded the `Angular` version to 21 and the `Angular Material` version to 21.
+
+
+## Non Breaking changes
+
+### **Bug fixes**
+
+* **When condition not working for Add & Delete actions in FieldGroupTemplate**
+ * Github: [PR-444](https://github.com/pegasystems/angular-sdk-components/pull/444)
+* **Confirmation view not getting rendered issue**
+ * Github: [PR-452](https://github.com/pegasystems/angular-sdk-components/pull/452)
+---
+
+### **Dependencies & Infrastructure**
+
+* The following table lists the packages whose versions have been updated:
+
+| Package | Updated version |
+| :--- | :--- |
+| **@angular/animations** | 21.2.4 |
+| **@angular/cdk** | 21.2.2 |
+| **@angular/cli** | 21.2.2 |
+| **@angular/common** | 21.2.4 |
+| **@angular/compiler** | 21.2.4 |
+| **@angular/compiler-cli** | 21.2.4 |
+| **@angular/core** | 21.2.4 |
+| **@angular/forms** | 21.2.4 |
+| **@angular/language-service** | 21.2.4 |
+| **@angular/material** | 21.2.2 |
+| **@angular/platform-browser** | 21.2.4 |
+| **@angular/platform-browser-dynamic** | 21.2.4 |
+| **@angular/router** | 21.2.4 |
+| **@angular-builders/custom-webpack** | 21.0.3 |
+| **@angular-devkit/build-angular** | 21.2.2 |
+| **@angular-devkit/core** | 21.2.2 |
+| **@angular-eslint/eslint-plugin** | 21.3.1 |
+| **@angular-eslint/eslint-plugin-template** | 21.3.1 |
+| **@angular-eslint/template-parser** | 21.3.1 |
+| **eslint** | 9.36.0 |
+| **jest** | 30.2.0 |
+| **jest-environment-jsdom** | 30.2.0 |
+| **typescript** | 5.9.3 |
+| **typescript-eslint** | 8.48.1 |
+| **zone.js** | 0.16.1 |
+
+
+# [25.1.11](https://github.com/pegasystems/angular-sdk/tree/release/25.1.11) - Released: 15/01/2026
+
+## Non Breaking changes
+
+### **Bug fixes**
+
+* **Location field appeared editable even in a read-only state issue fixed**
+ * Github: [PR-418](https://github.com/pegasystems/angular-sdk-components/pull/418)
+* **Checkbox required validation handled correctly**
+ * Github: [PR-419](https://github.com/pegasystems/angular-sdk-components/pull/419)
+
+| Package | Updated version |
+| :--- | :--- |
+| **@angular/animations** | 20.3.15 |
+| **@angular/cdk** | 20.2.14 |
+| **@angular/cli** | 20.3.13 |
+| **@angular/common** | 20.3.15 |
+| **@angular/compiler** | 20.3.15 |
+| **@angular/compiler-cli** | 20.3.15 |
+| **@angular/core** | 20.3.15 |
+| **@angular/forms** | 20.3.15 |
+| **@angular/language-service** | 20.3.15 |
+| **@angular/material** | 20.2.14 |
+| **@angular/material-experimental** | 20.2.14 |
+| **@angular/material-moment-adapter** | 20.2.14 |
+| **@angular/platform-browser** | 20.3.15 |
+| **@angular/platform-browser-dynamic** | 20.3.15 |
+| **@angular/router** | 20.3.15 |
+| **@angular-builders/custom-webpack** | 20.0.0 |
+| **@angular-devkit/build-angular** | 20.3.13 |
+| **@angular-devkit/core** | 20.3.13 |
+| **@danielmoncada/angular-datetime-picker**| 20.0.1 |
+| **@pega/auth** | 0.2.34 |
+| **ng-packagr** | 20.3.0 |
+
+
+# [25.1.10](https://github.com/pegasystems/angular-sdk/tree/release/25.1.10) - Released: 26/12/2025
+
+
+## Breaking changes
+
+* The `Attachment` component now passes data in the `pageInstructions` object instead of the `content` object.
+ * Github: [PR-370](https://github.com/pegasystems/angular-sdk-components/pull/370)
+
+## Non Breaking changes
+
+### **Features**
+
+* A new self-service portal called **MediaCoSelfService** has been introduced for the MediaCo sample application.
+
+ * Github: [PR-355](https://github.com/pegasystems/angular-sdk-components/pull/355)
+
+ **NOTE:** Please refer [What's New](https://pega-dev.zoominsoftware.io/bundle/constellation-sdk/page/constellation-sdks/sdks/angular-sdk-updates.html) for more details.
+
+
+* Support for `light`, `dark`, and `MediaCo` themes has been introduced through the `theme` attribute in the **sdk-config.json** file. The `light` theme is applied by default. For more information, see [theme](https://pega-dev.zoominsoftware.io/bundle/constellation-sdk/page/constellation-sdks/sdks/configuring-sdk-config-json.html#configuring-the-sdk-config-json-con__theme).
+
+ * Github: [PR-321](https://github.com/pegasystems/angular-sdk-components/pull/321)
+
+* The advanced search feature is now supported in the `Data Reference` field type. For more information, see [Advanced search](https://docs.pega.com/bundle/common-data-model/page/common-data-model/implementation/advanced-search-intro.html).
+
+ * Github: [PR-326](https://github.com/pegasystems/angular-sdk-components/pull/326)
+
+* `ListView` now supports `Select all`
+ * Github: [PR-374](https://github.com/pegasystems/angular-sdk-components/pull/374)
+* `DefaultPage` component has been added.
+ * Github: [PR-351](https://github.com/pegasystems/angular-sdk-components/pull/351)
+* `Location` component has been added.
+ * Github: [PR-325](https://github.com/pegasystems/angular-sdk-components/pull/325)
+* `ObjectReference` component has been added.
+ * Github: [PR-329](https://github.com/pegasystems/angular-sdk-components/pull/329)
+* `SelectableCards` component has been added.
+ * Github: [PR-322](https://github.com/pegasystems/angular-sdk-components/pull/322)
+* `SelfServiceCaseView` component has been added.
+ * Github: [PR-355](https://github.com/pegasystems/angular-sdk-components/pull/355)
+---
+
+### **Bug fixes**
+
+* **Playwright tests have been fixed**
+ * Github: [PR-330](https://github.com/pegasystems/angular-sdk-components/pull/330), [PR-347](https://github.com/pegasystems/angular-sdk-components/pull/347)
+* **Semantic link component did not display links as expected**
+ * Github: [PR-329](https://github.com/pegasystems/angular-sdk-components/pull/329)
+* **Improved the handling of phone number value changes**
+ * Github: [PR-360](https://github.com/pegasystems/angular-sdk-components/pull/360)
+* **Localization fixes have been made**
+ * Github: [PR-356](https://github.com/pegasystems/angular-sdk-components/pull/356)
+
+---
+
+### Refactoring
+
+* **FieldBase** component has been added for the field components to inherit
+ * Github: [PR-322](https://github.com/pegasystems/angular-sdk-components/pull/332)
+
+---
+
+### **Dependencies & Infrastructure**
+
+* Upgraded the `Angular` version to 19 and the `Angular Material` version to 19.
+ * Github: [PR-319](https://github.com/pegasystems/angular-sdk-components/pull/319)
+* The `ESLint` library has been updated to version 9.
+ * Github: [PR-339](https://github.com/pegasystems/angular-sdk-components/pull/339)
+
+* The **@pega/pcore-pconnect-typedefs** package has been updated to v4.1.0
+ * Github: [PR-336](https://github.com/pegasystems/angular-sdk-components/pull/336)
+
+* The `npm` vulerabilities have been reduced.
+ * Github: [PR-363](https://github.com/pegasystems/angular-sdk-components/pull/363)
+* The **@angular/google-maps** package has been added to support the Location component.
+ * Github: [PR-328](https://github.com/pegasystems/angular-sdk-components/pull/328)
+* The **mat-tel-input** package has been added to support the Phone component for Angular 19.
+ * Github: [PR-326](https://github.com/pegasystems/angular-sdk-components/pull/326)
+* The **ngx-mat-intl-tel-input** package has been removed.
+ * Github: [PR-319](https://github.com/pegasystems/angular-sdk-components/pull/319)
+* The following table lists the packages whose versions have been updated:
+
+| Package | Updated version |
+| :--- | :--- |
+| **@angular/animations** | 19.2.14 |
+| **@angular/cdk** | 19.2.19 |
+| **@angular/cli** | 19.2.15 |
+| **@angular/common** | 19.2.14 |
+| **@angular/compiler** | 19.2.14 |
+| **@angular/compiler-cli** | 19.2.14 |
+| **@angular/core** | 19.2.14 |
+| **@angular/forms** | 19.2.14 |
+| **@angular/language-service** | 19.2.14 |
+| **@angular/material** | 19.2.19 |
+| **@angular/material-experimental** | 19.2.19 |
+| **@angular/material-moment-adapter** | 19.2.19 |
+| **@angular/platform-browser** | 19.2.14 |
+| **@angular/platform-browser-dynamic** | 19.2.14 |
+| **@angular/router** | 19.2.14 |
+| **@angular-builders/custom-webpack** | 19.0.1 |
+| **@angular-devkit/build-angular** | 19.2.15 |
+| **@angular-devkit/core** | 19.2.15 |
+| **@danielmoncada/angular-datetime-picker**| 19.0.0 |
+| **@pega/auth** | 0.2.31 |
+| **@pega/configs** | 0.16.3 |
+| **@playwright/test** | 1.54.2 |
+| **copy-webpack-plugin** | 13.0.1 |
+| **eslint-plugin-import** | 2.32.0 |
+| **ng-packagr** | 19.2.2 |
+| **ngx-currency** | 19.0.0 |
+| **shx** | 0.4.0 |
+| **typescript** | 5.5.4 |
+| **webpack** | 5.101.2 |
diff --git a/packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.html b/packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.html
index 46505528..3f3adb9c 100644
--- a/packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.html
+++ b/packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.html
@@ -22,6 +22,7 @@
{{ _formatDate(field.config.value, field.type) }}
{{ _formatDecimal(field) }}
{{ _formatCurrency(field) }}
+
{{ _formatDecimal(field) }}
{{ _formatCurrency(field) }}
diff --git a/packages/angular-sdk-components/src/lib/_components/infra/view/view.component.ts b/packages/angular-sdk-components/src/lib/_components/infra/view/view.component.ts
index dd43df18..73f44d17 100644
--- a/packages/angular-sdk-components/src/lib/_components/infra/view/view.component.ts
+++ b/packages/angular-sdk-components/src/lib/_components/infra/view/view.component.ts
@@ -146,7 +146,6 @@ export class ViewComponent implements OnInit, OnDestroy, OnChanges {
this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as ViewProps;
this.inheritedProps$ = this.pConn$.getInheritedProps();
-
// NOTE: this.configProps$.visibility'] is used in view.component.ts such that
// the View will only be rendered when this.configProps$.visibility'] is false.
// It WILL render if true or undefined.
@@ -155,7 +154,10 @@ export class ViewComponent implements OnInit, OnDestroy, OnChanges {
this.title$ = this.configProps$.title || '';
// label & showLabel within inheritedProps takes precedence over configProps
this.label$ = this.inheritedProps$.label || this.configProps$.label || '';
- this.showLabel$ = this.inheritedProps$.showLabel || this.configProps$.showLabel || isDetailsTemplate(this.templateName$);
+ this.showLabel$ =
+ this.inheritedProps$.showLabel !== undefined
+ ? this.inheritedProps$.showLabel
+ : this.configProps$.showLabel || isDetailsTemplate(this.templateName$);
this.arChildren$ = this.pConn$.getChildren();
this.visibility$ = this.configProps$.visibility ?? this.visibility$;
diff --git a/packages/angular-sdk-components/src/lib/_components/template/base/details-template-base.ts b/packages/angular-sdk-components/src/lib/_components/template/base/details-template-base.ts
index a10fb8b0..9601d5e4 100644
--- a/packages/angular-sdk-components/src/lib/_components/template/base/details-template-base.ts
+++ b/packages/angular-sdk-components/src/lib/_components/template/base/details-template-base.ts
@@ -66,4 +66,47 @@ export class DetailsTemplateBase implements OnInit, OnDestroy {
return pConnect.resolveConfigProps(pConnect.getRawMetadata());
});
}
+
+ processDetailFields(kid: any): any[] {
+ const pKid = kid.getPConnect();
+ const fields = pKid.getChildren();
+ const processedFields: any[] = [];
+
+ fields?.forEach(field => {
+ const thePConn = field.getPConnect();
+ const theCompType = thePConn.getComponentName().toLowerCase();
+ if (theCompType === 'reference' || theCompType === 'group') {
+ const configProps = thePConn.getConfigProps();
+ configProps.readOnly = true;
+ configProps.displayMode = 'DISPLAY_ONLY';
+ const propToUse = { ...thePConn.getInheritedProps() };
+ configProps.label = propToUse?.label;
+ const options = {
+ context: thePConn.getContextName(),
+ pageReference: thePConn.getPageReference(),
+ referenceList: thePConn.getReferenceList()
+ };
+ const viewContConfig = {
+ meta: {
+ ...thePConn.getMetadata(),
+ type: theCompType,
+ config: configProps
+ },
+ options
+ };
+ const theViewCont = PCore.createPConnect(viewContConfig);
+ processedFields.push({
+ type: theCompType,
+ pConn: theViewCont?.getPConnect()
+ });
+ } else {
+ processedFields.push({
+ type: theCompType,
+ config: thePConn.getConfigProps()
+ });
+ }
+ });
+
+ return processedFields;
+ }
}
diff --git a/packages/angular-sdk-components/src/lib/_components/template/details-narrow-wide/details-narrow-wide.component.ts b/packages/angular-sdk-components/src/lib/_components/template/details-narrow-wide/details-narrow-wide.component.ts
index e1dd3298..a655f31e 100644
--- a/packages/angular-sdk-components/src/lib/_components/template/details-narrow-wide/details-narrow-wide.component.ts
+++ b/packages/angular-sdk-components/src/lib/_components/template/details-narrow-wide/details-narrow-wide.component.ts
@@ -36,12 +36,10 @@ export class DetailsNarrowWideComponent extends DetailsTemplateBase {
const kids = this.pConn$.getChildren() as any[];
for (const kid of kids) {
- const pKid = kid.getPConnect();
- const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());
if (kids.indexOf(kid) == 0) {
- this.arFields$ = pKidData.children;
+ this.arFields$ = this.processDetailFields(kid);
} else {
- this.arFields2$ = pKidData.children;
+ this.arFields2$ = this.processDetailFields(kid);
}
}
}
diff --git a/packages/angular-sdk-components/src/lib/_components/template/details-one-column/details-one-column.component.ts b/packages/angular-sdk-components/src/lib/_components/template/details-one-column/details-one-column.component.ts
index 623413c5..d93e8002 100644
--- a/packages/angular-sdk-components/src/lib/_components/template/details-one-column/details-one-column.component.ts
+++ b/packages/angular-sdk-components/src/lib/_components/template/details-one-column/details-one-column.component.ts
@@ -39,10 +39,8 @@ export class DetailsOneColumnComponent extends DetailsTemplateBase {
const kids = this.pConn$.getChildren() as any[];
for (const kid of kids) {
- const pKid = kid.getPConnect();
- const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());
if (kids.indexOf(kid) == 0) {
- this.arFields$ = pKidData.children;
+ this.arFields$ = this.processDetailFields(kid);
}
}
}
diff --git a/packages/angular-sdk-components/src/lib/_components/template/details-three-column/details-three-column.component.ts b/packages/angular-sdk-components/src/lib/_components/template/details-three-column/details-three-column.component.ts
index 443993cf..26f99410 100644
--- a/packages/angular-sdk-components/src/lib/_components/template/details-three-column/details-three-column.component.ts
+++ b/packages/angular-sdk-components/src/lib/_components/template/details-three-column/details-three-column.component.ts
@@ -43,14 +43,12 @@ export class DetailsThreeColumnComponent extends DetailsTemplateBase {
const kids = this.pConn$.getChildren() as any[];
for (const kid of kids) {
- const pKid = kid.getPConnect();
- const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());
if (kids.indexOf(kid) == 0) {
- this.arFields$ = pKidData.children;
+ this.arFields$ = this.processDetailFields(kid);
} else if (kids.indexOf(kid) == 1) {
- this.arFields2$ = pKidData.children;
+ this.arFields2$ = this.processDetailFields(kid);
} else {
- this.arFields3$ = pKidData.children;
+ this.arFields3$ = this.processDetailFields(kid);
}
}
}
diff --git a/packages/angular-sdk-components/src/lib/_components/template/details-two-column/details-two-column.component.ts b/packages/angular-sdk-components/src/lib/_components/template/details-two-column/details-two-column.component.ts
index 4a5887aa..cbe1e698 100644
--- a/packages/angular-sdk-components/src/lib/_components/template/details-two-column/details-two-column.component.ts
+++ b/packages/angular-sdk-components/src/lib/_components/template/details-two-column/details-two-column.component.ts
@@ -43,12 +43,10 @@ export class DetailsTwoColumnComponent extends DetailsTemplateBase {
const kids = this.pConn$.getChildren() as any[];
for (const kid of kids) {
- const pKid = kid.getPConnect();
- const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());
if (kids.indexOf(kid) == 0) {
- this.arFields$ = pKidData.children;
+ this.arFields$ = this.processDetailFields(kid);
} else {
- this.arFields2$ = pKidData.children;
+ this.arFields2$ = this.processDetailFields(kid);
}
}
}
diff --git a/packages/angular-sdk-components/src/lib/_components/template/details-wide-narrow/details-wide-narrow.component.ts b/packages/angular-sdk-components/src/lib/_components/template/details-wide-narrow/details-wide-narrow.component.ts
index 3d20a667..d422443a 100644
--- a/packages/angular-sdk-components/src/lib/_components/template/details-wide-narrow/details-wide-narrow.component.ts
+++ b/packages/angular-sdk-components/src/lib/_components/template/details-wide-narrow/details-wide-narrow.component.ts
@@ -40,12 +40,10 @@ export class DetailsWideNarrowComponent extends DetailsTemplateBase {
const kids = this.pConn$.getChildren() as any[];
for (const kid of kids) {
- const pKid = kid.getPConnect();
- const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());
if (kids.indexOf(kid) == 0) {
- this.arFields$ = pKidData.children;
+ this.arFields$ = this.processDetailFields(kid);
} else {
- this.arFields2$ = pKidData.children;
+ this.arFields2$ = this.processDetailFields(kid);
}
}
}
diff --git a/packages/angular-sdk-components/src/lib/_components/template/details/details.component.ts b/packages/angular-sdk-components/src/lib/_components/template/details/details.component.ts
index 76eb53cb..d6c260c9 100644
--- a/packages/angular-sdk-components/src/lib/_components/template/details/details.component.ts
+++ b/packages/angular-sdk-components/src/lib/_components/template/details/details.component.ts
@@ -35,45 +35,7 @@ export class DetailsComponent extends DetailsTemplateBase {
const kids = this.pConn$.getChildren() as any[];
for (const kid of kids) {
- this.arFields$ = [];
- const pKid = kid.getPConnect();
- const fields = pKid.getChildren();
- fields?.forEach(field => {
- const thePConn = field.getPConnect();
- const theCompType = thePConn.getComponentName().toLowerCase();
- if (theCompType === 'reference' || theCompType === 'group') {
- const configProps = thePConn.getConfigProps();
- configProps.readOnly = true;
- configProps.displayMode = 'DISPLAY_ONLY';
- const propToUse = { ...thePConn.getInheritedProps() };
- configProps.label = propToUse?.label;
- const options = {
- context: thePConn.getContextName(),
- pageReference: thePConn.getPageReference(),
- referenceList: thePConn.getReferenceList()
- };
- const viewContConfig = {
- meta: {
- ...thePConn.getMetadata(),
- type: theCompType,
- config: configProps
- },
- options
- };
- const theViewCont = PCore.createPConnect(viewContConfig);
- const data = {
- type: theCompType,
- pConn: theViewCont?.getPConnect()
- };
- this.arFields$.push(data);
- } else {
- const data = {
- type: theCompType,
- config: thePConn.getConfigProps()
- };
- this.arFields$.push(data);
- }
- });
+ this.arFields$ = this.processDetailFields(kid);
}
}
}