--- title: "Product Model Details" slug: "product-model-details-widget" updated: 2026-04-17T07:41:55Z published: 2026-04-17T07:41:55Z canonical: "learn.servitly.com/product-model-details-widget" --- > ## Documentation Index > Fetch the complete documentation index at: https://learn.servitly.com/llms.txt > Use this file to discover all available pages before exploring further. # Product Model Details Displays the properties of a product model in a details box. ![Product Model Details](https://components-manager.servitly.com/components/ProductModelDetails_1/IMAGES/_screenshot?owner=AG_Servitly) ## Template Syntax Below you can find some examples of how to use the component within a template. ```xml                                                                     ``` ## Component Reference Here is a comprehensive list of all the elements and properties that can be used to configure the component. #### Product Model Details `<product-model-details-widget>` | *Column Span* | The number of columns the widget must span its sub-elements (default 1). **Name**: columns **Type**: INTEGER \| Optional `columns="2"` | | --- | --- | | *Layout* | The layout used to display properties in the widget: TABLE: Displays one column for the label and another for the property value. ALTERNATE_ROWS: Displays a gray row for the label and a white row for the property value. **Name**: layout **Type**: ENUM \| Optional **Values**: *TABLE*, *ALTERNATE_ROWS* **Default Value**: *TABLE* `layout="TABLE"` | | *Title* | The title displayed on the top part of the widget box. **Name**: title **Type**: STRING \| Optional `[title]="'Product Model'"` | | **Rendering** | | *Availability* | Configure availability based on active features on Digital Plan on Add-ons **Name**: hasFeature **Type**: FEATURE (multiple) \| Optional `[hasFeature]="['feature_a', 'feature_b']"` | | *Collapse / Expand* | The flag indicating whether the widget is collaspible. **Name**: collapsible **Type**: BOOLEAN \| Optional **Default Value**: *false* `[collapsible]="true"` | | *CSS Class* | The name(s) of the CSS class used to customize the widget layout. **Name**: class **Type**: STRING \| Optional `class="my-custom-class"` | | *Visibility Condition* | The expression that allows you to reduce the visibility of the element. **Name**: *ngIf **Type**: STRING \| Optional `*ngIf="getUser().organizationId != null"` | | **Expandable Details** | | *Details Button Icon* | The Angular Material icon displayed inside the details button. **Name**: expandableDetails.expandIcon **Type**: STRING \| Optional `[expandableDetails]="{expandIcon: 'abc'}"` | | *Mode* | The way the details is opened. **Name**: expandableDetails.mode **Type**: ENUM \| Optional **Values**: *EMBEDDED*, *POPUP* **Default Value**: *POPUP* `[expandableDetails]="{mode: 'EMBEDDED'}"` | | *Popup Title* | The title displayed on the top part of the popup. **Name**: expandableDetails.popupTitle **Type**: STRING \| Optional `[expandableDetails]="{popupTitle: 'abc'}"` | | *Template* | The name of the template to display. **Name**: expandableDetails.template **Type**: STRING \| Optional `[expandableDetails]="{template: 'abc'}"` | | **Sub Elements** | | [*Property*](/docs/product-model-details-widget/#property) | The property whose label and current value must be rendered as a widget row. | | [*Widget Title*](/docs/product-model-details-widget/#widget-title) | Compose the widget title by using properties. | #### Property `<property>` | *Description* | The property description. **Name**: description **Type**: STRING \| Optional `description="abc"` | | --- | --- | | *Filter* | The name of the filter used to transform and display values. **Name**: filter **Type**: FILTER \| Optional `filter="fooBarFilter"` | | *Label* | The property alternative label. **Name**: label **Type**: STRING \| Optional `label="Temperature"` | | *Name* | The property whose value must be loaded by the widget. **Name**: name **Type**: PROPERTY \| Required `name="serialNumber"` | | *Show Label* | The flag indicated whether the label is visible. **Name**: showLabel **Type**: BOOLEAN \| Optional **Default Value**: *true* `[showLabel]="false"` | | **Advanced** | | *Visibility Condition* | The expression that allows you to reduce the visibility of the element. **Name**: *ngIf **Type**: STRING \| Optional `*ngIf="getUser().organizationId != null"` | #### Widget Title `<widget-title>` | *Filter* | The filter applied on the composite-part to transform or display its value. **Name**: filter **Type**: FILTER \| Optional `filter="fooBarFilter"` | | --- | --- | | **Sub Elements** | | [*Property*](/docs/product-model-details-widget/#property) | The property whose value must be loaded within the composite-part. | #### Property `<property>` | *Filter* | The name of the filter used to transform and display values. **Name**: filter **Type**: FILTER \| Optional `filter="fooBarFilter"` | | --- | --- | | *Name* | The property whose value must be loaded by the widget. **Name**: name **Type**: PROPERTY \| Required `name="serialNumber"` | ## Full Syntax Example ```xml                         ```