> 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 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 field identifier (assigned automatically when adding the component).</td></tr><tr><td><strong>Business identifier</strong></td><td>mid</td><td><p>Business field identifier (by default it is the same as the id, but it can be changed).<br><br>The business identifier (Mid) is a unique identifier associated with 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. Labels (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) rather than id, when using the Uniflow data model on a form, business field identifiers must not be duplicated (e.g. we have two different components with the same business identifier, or a component has the same mid as a 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>Checked (set to "true") means that the inactive component is displayed as text (on the form it looks like it is displayed as a label).</p><p>The availability of functionality depends on the license and may not be available in all deployments.</p><p>Demo form: 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 at: <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, defines a two-way binding with the data model.</p><p>More at: <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>Enabled 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 in the platform (e.g. text field content, drop-down list value and description, radio value, etc.) is validated for length. By default, the platform does not allow strings longer than 256 characters. If business requirements make it necessary to change the maximum length, this can be done using the attribute <strong>Maximum value length</strong>.<br>The availability of this feature depends on the license and may not be available in all deployments.</p><p><strong>NOTE!</strong></p><p>The system has an additional hard limit (default: 10485760 characters) - this is an absolute limit that will not be overridden by the Maximum value length attribute.<br></p></td></tr><tr><td><strong>Required condition</strong></td><td>requiredCondition</td><td>Field required 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 at: <a href="/pages/1b49253472ce823ae311d07ebe168488d5fa796f">Composite validations</a></p></td></tr><tr><td><strong>Default value</strong></td><td>defaultValue</td><td>For fields that can accept values, defines the initial value of the component.</td></tr><tr><td><strong>Formatter</strong></td><td>formatter</td><td>See: <a href="/pages/7b73dc4a3305d7bb638b399c45c54700701d6580">Setting formatting for a 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 this feature 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 state of the component.</p><p>More at: <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 at: <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 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 provides the value for this component (an example of use is described in: <a href="/pages/dc2061981040ee49c1012afaf54374c872742a1b">Passing values between components or form 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 in the platform (e.g. text field content, drop-down list value and description, radio value, tile group value, etc.) is validated for allowed characters. By default, the platform allows the following character classes:</p><ul><li>letters (including diacritical characters from 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 containing a character outside the list reaches the server, the server will restore the last safe value. If business requirements make it necessary to extend the list of special characters for a given field, you can use 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, 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 (at sign) is not allowed by default unless the field is of type "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 was defined as ">5" - in such a situation, 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; using consistent values is recommended).</p></td></tr><tr><td><strong>Technical field</strong></td><td>technicalField</td><td>Field used for the internal needs of the form template logic; it is not propagated to subsequent systems and is not visible on the form. 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>Component style name (in eximee Webforms it corresponds to the CSS style that will be assigned to a 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 to the server (regardless of whether anything is listening to the given component). Additionally, when this flag is selected, processing in the graph (after the value changes) 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 significant impact on the performance of the form platform. It should only be used where it is required (e.g. when using Suggesters). If in doubt, please contact the Consdata team.</p><p>Sample form 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>Print visibility</strong></td><td>printable</td><td>Specifies whether the component should be visible in the printed form. 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 protect the component value from being reset to the default when it is hidden (or hidden after unpark). 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>This 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 define 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 [Conditional 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**.

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

For each component in the panel **Properties** you can define the conditions under which the component is required by clicking **Add required condition** in the field **REQUIRED CONDITION** (available in the section **Data quality**). The condition editing window is analogous to the component visibility condition editing window. JavaScript language, described in [Conditional 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 form page 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 define conditions under which the component is displayed in read-only mode by clicking **Add enabled condition** in the field **ENABLED CONDITION**. The condition editing window is analogous to the component visibility condition editing window. JavaScript language, described in [Conditional 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 disabled during form display.

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

For each component, you can define the list of components that the 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 the state of a component 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 deeper in the graph)

It is possible to enable refreshing 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 form: 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.
