> For the complete documentation index, see [llms.txt](https://docs.eximee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.eximee.com/documentation/documentation-en/budowanie-aplikacji/interfejs-uzytkownika/formularze/praca-z-komponentami-bazowymi/wspolne-wlasciwosci-komponentow.md).

# Common component properties

## Basic properties of components <a href="#wspolnewlasciwoscikomponentow-podstawowewlasnoscikomponentow" id="wspolnewlasciwoscikomponentow-podstawowewlasnoscikomponentow"></a>

Regardless of the type, each component has defined properties available in the panel displayed on the right side after selecting the component.

<table><thead><tr><th width="224.5390625">Eximee Designer property</th><th width="253.6953125">Attribute name in the Source</th><th>Description</th></tr></thead><tbody><tr><td>A section <strong>Basic properties</strong></td><td></td><td></td></tr><tr><td><strong>Id</strong></td><td>id</td><td>Unique technical identifier of the field (assigned automatically when adding the component).</td></tr><tr><td><strong>Business identifier</strong></td><td>mid</td><td><p>Business identifier of the field (by default it is the same as the id, but it can be changed).<br><br>The business identifier (Mid) is a unique identifier linked to business logic. Once assigned, it will be easier for us to find a specific component when adding listeners or Page Services input and output parameters. Text (Text) and Formatted content (TextContent) components do not have a Mid.</p><p>The business identifier should be written in camelCase and should not contain spaces or Polish characters.<br><br><strong>NOTE!</strong></p><p>Since the Uniflow data model is based on business field identifiers (mid) and not on id, when using the Uniflow data model in an application, business field identifiers cannot be repeated (e.g. we have two different components with the same business identifier, or a component has the same mid as the session variable id).<br></p></td></tr><tr><td><strong>Label</strong></td><td>label</td><td><p>Component label displayed above the component (the attribute is not supported in some channels).</p><p><br></p></td></tr><tr><td><strong>Inactive field displayed as a label</strong></td><td>labelIfDisabled</td><td><p>Selected (set to "true") means that the inactive component is displayed as text (in the application it appears as displayed as a label).</p><p>Availability of functionality depends on the license and may not be available in all deployments.</p><p>Demo application: demoLabelIfDisabled</p></td></tr><tr><td><strong>Context help</strong></td><td>toolTips</td><td><p>Defining dynamic context help for a component depending on conditions.</p><p>More in: <a href="/pages/47efd633953179af71744f52fdf4ce4abb9a06f7">Context help - Tooltip</a></p></td></tr><tr><td><strong>Data model key</strong></td><td>model</td><td><p>For fields that can accept values, it defines a two-way binding with the data model.</p><p>More in: <a href="/pages/e44921d44a6caa232a238751cfe32772b989797c">Storing data in the model</a></p></td></tr><tr><td>A section <strong>Data quality</strong></td><td></td><td></td></tr><tr><td><strong>Visibility condition</strong></td><td>visibleCondition</td><td>Field visibility condition (conditions are entered using the editor described in <a href="/pages/d6953ccaf81c240c5e37b1d1fdb0ac44c56b4f23">Advanced condition editor</a>).</td></tr><tr><td><strong>Activity condition</strong></td><td>enabledCondition</td><td>Field editability condition (conditions are entered using the editor described in <a href="/pages/d6953ccaf81c240c5e37b1d1fdb0ac44c56b4f23">Advanced condition editor</a>).</td></tr><tr><td><strong>Maximum value length</strong></td><td>maxPropertyLength</td><td><p>For security reasons, every text value on the platform (e.g. text field content, dropdown value and description, radio value, etc.) is checked for length. By default, the platform does not allow strings longer than 256 characters. If business requirements require changing the maximum length, this can be done using the attribute <strong>Maximum value length</strong>.<br>The availability of the functionality depends on the license and may not be available in all deployments.</p><p><strong>NOTE!</strong></p><p>The system also has an additional hard limit (default: 10485760 characters) - this is an absolute limit that will not be overridden by the Maximum value length attribute value.<br></p></td></tr><tr><td><strong>Requirement condition</strong></td><td>requiredCondition</td><td>Field requirement condition (conditions are entered using the editor described in <a href="/pages/d6953ccaf81c240c5e37b1d1fdb0ac44c56b4f23">Advanced condition editor</a>).</td></tr><tr><td><strong>Validators</strong></td><td>externalValidators</td><td><p>Defining specialized external validators.</p><p>More in: <a href="/pages/1b49253472ce823ae311d07ebe168488d5fa796f">Complex validations</a></p></td></tr><tr><td><strong>Default value</strong></td><td>defaultValue</td><td>For fields that can accept values, it defines the component's initial value.</td></tr><tr><td><strong>Formatter</strong></td><td>formatter</td><td>See: <a href="/pages/7b73dc4a3305d7bb638b399c45c54700701d6580">Setting formatting for the component</a>.</td></tr><tr><td><strong>Field description</strong></td><td>description</td><td>Text displayed as the field description below it, by default it is empty.<br><br>The availability of the functionality depends on the license and may not be available in all deployments.</td></tr><tr><td>A section <strong>Interactions</strong></td><td></td><td></td></tr><tr><td><strong>Listening</strong></td><td>listeningOn</td><td><p>List of components on which the component depends. Changing the values of listened-to components will refresh the component state.</p><p>More in: <a href="/pages/e534e5198b3b95bb60874dc4b50ebf268f098741">Listening and clearing</a>.</p></td></tr><tr><td><strong>External data source</strong></td><td>enternalDataSource</td><td><p>Defining external data sources.</p><p>More in: <a href="/pages/4fc2bb50ad367fe76fcf59a2144110c15db42303">Feeding components with external data sources</a></p></td></tr><tr><td><strong>Clearing the field</strong></td><td>clearOn</td><td>List of components on which clearing the data entered into the component depends.</td></tr><tr><td><strong>Data source from another field</strong></td><td>valueSourceId</td><td>ID of another component that will provide the value for the given component (an usage example is described in: <a href="/pages/dc2061981040ee49c1012afaf54374c872742a1b">Passing values between components or application pages</a>).</td></tr><tr><td>A section <strong>Security</strong></td><td></td><td></td></tr><tr><td><strong>Whitelist of characters</strong></td><td>extraWhitelistCharacters</td><td><p>For security reasons, every text value on the platform (e.g. text field content, dropdown value and description, radio value, tile group value, etc.) is checked for allowed characters. By default, the platform allows the following character classes:</p><ul><li>letters (including diacritical characters of all languages),</li><li>digits,</li><li>whitespace characters (various kinds of spaces, tabs, newline characters, etc.),</li><li>the following special characters: '.' (period), ',' (comma), '-' (hyphen), '_' (underscore).</li></ul><p>If a value with a character outside the list reaches the server, the server will restore the last safe value. If, due to business requirements, it is necessary to extend the list of special characters for a given field, this can be done using the attribute <strong>Whitelist of characters</strong> (extraWhitelistCharacters). The attribute value is a string of characters that should be allowed in the given field.</p><p><strong>NOTE!</strong></p><p>When extending the list of allowed characters, for security reasons you should make sure that the services to which this value will be sent are ready to accept the given character and are properly secured.</p><p>The @ character is not allowed by default unless the field type is "email" (parameter <strong>Data type</strong> (expected type)).</p><p><strong>IMPORTANT!</strong></p><p>For components that, in addition to a label, also have a value (e.g. Radio group, Tile group), and these values are different for some reason (in the context of disallowed characters), it is necessary to define in <strong>Whitelist of characters</strong> both values - we define this for the Tile group, not for an individual Tile.</p><p>Example: for a tile with the label "5+", the option value is defined as ">5" - in such a case, in the whitelist we must define both "+" and ">" as allowed characters</p><p>(using different values for content and value is not a recommended solution; it is recommended to use consistent values).</p></td></tr><tr><td><strong>Technical field</strong></td><td>technicalField</td><td>A field used for the internal needs of the application template logic, it is not propagated to subsequent systems and is not visible in the application. The property is available for selected components.</td></tr><tr><td>A section <strong>Styling</strong></td><td></td><td></td></tr><tr><td><strong>Style name</strong></td><td>styleName</td><td>Name of the component style (in eximee Webforms it corresponds to the CSS style that will be assigned to the given component).</td></tr><tr><td>A section <strong>Other</strong></td><td></td><td></td></tr><tr><td><strong>Automatic value update</strong><br></td><td>autoServerUpdate</td><td><p>Automatic sending of the value back to the server (regardless of whether anything listens to a given component). Additionally, when this flag is selected, processing in the graph (after a value change) starts from the component whose value changed (by default, processing starts from its successors).</p><p><strong>NOTE!</strong></p><p>This setting has a major impact on the performance of the application platform. It should be used only where required (e.g. when using the Suggester). In doubtful situations, please contact the Consdata team.</p><p>Example application with a suggester and the autoServerUpdate property: test_autoserverUpdate.</p></td></tr><tr><td><strong>GTM tag / Enable GTM</strong></td><td>gtmTagName/pushTagsToGtm</td><td>Ability to configure the functionality <strong>Google Tag Manager</strong>. By default the field is not selected (value "false").</td></tr><tr><td><strong>Collecting statistics</strong></td><td>getStats</td><td>Field used to collect statistics about a given component. By default the field is not selected (value "false").</td></tr><tr><td><strong>Visibility in printouts</strong></td><td>printable</td><td>Specifies whether the component should be visible in the application printout. By default the field is selected (value "true").</td></tr><tr><td><strong>Behavior of value change when the component is hidden</strong></td><td>preserveValueWhenHidden</td><td><p>This flag is used to prevent the component value from being changed to the default when it is hidden (or hidden after being unparked). The component value will also be preserved after parking and will be available for use in subsequent sessions. By default the field is not selected (value "false").</p><p>The functionality is not available for some components.</p></td></tr></tbody></table>

### Visibility conditions <a href="#wspolnewlasciwoscikomponentow-warunkiwidocznosci" id="wspolnewlasciwoscikomponentow-warunkiwidocznosci"></a>

For each component in the panel **Properties** you can specify its visibility conditions by clicking **Add visibility condition** in the field **VISIBILITY CONDITION** (available in the section **Data quality**). In the displayed condition editor, you can enter conditions written in a simple expression language (more in [Advanced condition editor](/documentation/documentation-en/budowanie-aplikacji/logika-biznesowa/jezyk-wyrazen-definiowania-warunkow-warunki-z-getvalue/zaawansowany-edytor-warunkow.md)). The expression language used is described in [Condition definition expression language](/documentation/documentation-en/budowanie-aplikacji/logika-biznesowa/jezyk-wyrazen-definiowania-warunkow-warunki-z-getvalue.md).

<figure><img src="/files/9a082d3cfbb76c968a46e481ff8b4eaf52e44aaa" alt=""><figcaption><p><em><strong>Figure 1.</strong> Empty property for defining a visibility condition</em></p></figcaption></figure>

The component is visible only if the condition entered in the field is met **VISIBILITY CONDITION**.

### Requirement conditions <a href="#wspolnewlasciwoscikomponentow-warunkiwymagalnosci" id="wspolnewlasciwoscikomponentow-warunkiwymagalnosci"></a>

For each component in the panel **Properties** you can specify the conditions under which the component is required by clicking **Add requirement condition** in the field **REQUIREMENT CONDITION** (available in the section **Data quality**). The condition editing window is analogous to the component visibility condition editing window. JavaScript language described in is used to define conditions [Condition definition expression language](/documentation/documentation-en/budowanie-aplikacji/logika-biznesowa/jezyk-wyrazen-definiowania-warunkow-warunki-z-getvalue.md).

Components for which the condition is met are required and it is not possible to proceed to the next page of the application without entering a value.

### Component conditions in read-only mode <a href="#wspolnewlasciwoscikomponentow-warunkikomponentowwtrybietylkodoodczytu" id="wspolnewlasciwoscikomponentow-warunkikomponentowwtrybietylkodoodczytu"></a>

For each component in the panel **Properties** you can specify the conditions under which the component is displayed in read-only mode by clicking **Add activity condition** in the field **ACTIVITY CONDITION**. The condition editing window is analogous to the component visibility condition editing window. JavaScript language described in is used to define conditions [Condition definition expression language](/documentation/documentation-en/budowanie-aplikacji/logika-biznesowa/jezyk-wyrazen-definiowania-warunkow-warunki-z-getvalue.md).

For components with an unmet condition, editing their values is blocked during application display.

### Listening <a href="#wspolnewlasciwoscikomponentow-nasluchiwanie" id="wspolnewlasciwoscikomponentow-nasluchiwanie"></a>

For each component, you can define a list of components that a given component listens to (more in [Listening and clearing](/documentation/documentation-en/budowanie-aplikacji/interfejs-uzytkownika/formularze/dynamicznosc-formularza/nasluchiwanie-i-czyszczenie.md)).

A dependency graph is created based on listening. When a component's state changes, the dependency subgraph containing all paths ending at the changed component is topologically sorted and the components in the subgraph are refreshed. Components are refreshed in the order resulting from the topological sort in such a way that only those components are refreshed whose at least one direct predecessor in the graph has changed state.

Cycles in the dependency graph are resolved arbitrarily (cut off after the component located deeper in the graph)

It is possible to enable refreshing of all components in the graph (regardless of whether the direct predecessor changed state). This is an administrative action and requires changing the following entry in the /etc/eximee/webforms.xml file:

```
<webforms>
    <server>
        ...
        <nonBlockingGraphFormTemplates>template_name1,template_name2</nonBlockingGraphFormTemplates>
    </server>
</webforms>
```

{% hint style="info" %}
Demo application: demoWspolneWlasciwosciKomponentow
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.eximee.com/documentation/documentation-en/budowanie-aplikacji/interfejs-uzytkownika/formularze/praca-z-komponentami-bazowymi/wspolne-wlasciwosci-komponentow.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
