> 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/budowanie-aplikacji/interfejs-uzytkownika/formularze/biblioteka-komponentow-bazowych/2-pola-wyboru/radio/radio-grupa-radiogroup.md).

# Radio grupa - RadioGroup

Grupa jednokrotnego wyboru wartości

<figure><img src="/files/C3HjkRUGOSBU0IBaBxIh" alt=""><figcaption></figcaption></figure>

## Właściwości komponentu

| Właściwość Eximee Designer                                                                        | Nazwa atrybutu w Źródle | Opis                                                                                                                                                                                                                                               |
| ------------------------------------------------------------------------------------------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p><strong>Tytuł</strong><br>(sekcja <strong>Podstawowe właściwości</strong>)</p>                 | title                   | Tytuł radio grupy. Dostępność funkcjonalności zależy od licencji i może nie być dostępna we wszystkich wdrożeniach.                                                                                                                                |
| <p><strong>Reprezentacja graficzna komponentu</strong><br>(sekcja <strong>Pozostałe</strong>)</p> | presentation            | Reprezentacja graficzna komponentu (do wyboru wartości **STANDARD** oraz **SELECT**). Wartość **STANDARD** określa standardowy wygląd komponentu. Dostępność funkcjonalności zależy od licencji i może nie być dostępna we wszystkich wdrożeniach. |

> Więcej informacji o właściwościach komponentu: [Wspólne właściwości komponentów](/budowanie-aplikacji/interfejs-uzytkownika/formularze/praca-z-komponentami-bazowymi/wspolne-wlasciwosci-komponentow.md)

<figure><img src="/files/L9QRioBjctmUdy9vARo9" alt=""><figcaption><p><em><strong>Ilustracja 1.</strong> Wygląd komponentu na wniosku</em></p></figcaption></figure>

## Komponenty wewnętrzne

Wewnątrz komponentu **Radio grupa** można osadzać dwa rodzaje komponentów: **Text** (etykiety tekstowe) i **Radio** (komponenty jednokrotnego wyboru). Sposób układania komponentów wewnątrz **Radio grupy** można określić za pomocą layoutu, analogicznie jak układ komponentów na stronie czy w sekcji.

{% hint style="warning" %}
Uwaga! dynamiczna Radio grupa ma zawsze layout jednokolumnowy.
{% endhint %}

## Parametry wejściowe komponentu

| Parametr  | Opis                                                                                                                              |
| --------- | --------------------------------------------------------------------------------------------------------------------------------- |
| **value** | Wartość jaką przyjmuje wybrane pole **Radio**.                                                                                    |
| **text**  | Etykieta tekstowa pola **Radio**. Możliwe odwołanie się do zmiennych lub pól np.: *${sessionVariableName}* lub *${GesTextField1}* |

## Zasilenie zewnętrznym źródłem danych

Komponent **Radio grupa** można zasilić danymi z zewnętrznego źródła danych.

W celu zasilenia komponentu **Radio grupa** należy przejść do zakładki **Interakcje** i wybrać właściwość **Źródło danych zewnętrznych**. Następnie wybrać interesującą usługę np. słownik.

<figure><img src="/files/ulGPKIVHb8YnWC5Tn91n" alt=""><figcaption><p><em><strong>Ilustracja 2.</strong> Sposób zasilenia zewnętrznym źródłem danych</em></p></figcaption></figure>

* Dla źródła typu **SERVICE** - można np. wybrać usługę wyświetlającą w radio sformatowany tekst i grafikę z artefaktu Treść (TextContent) - w tym celu należy skorzystać z usługi **TextContentService**.

<figure><img src="/files/BBMbg15B3AriaqVsWQ4i" alt=""><figcaption><p><em><strong>Ilustracja 3.</strong> Zasilenie Radio grupy danymi pochodzącymi z treści formatowanej</em></p></figcaption></figure>

Jeśli logika generowania opcji jest specyficzna dla danego wniosku lub wymaga przetworzenia danych w sposób dynamiczny, doskonałym wyborem będzie użycie źródła typu **SCRIPT**. Poniższy przykład prezentuje skrypt, który konwertuje słownik zdefiniowany w obiekcie na format zrozumiały dla komponentu (tablicę obiektów zawierających pary *label* i *value*).

```js
function callService(context) {
    // Słownik dostępnych opcji - klucz to etykieta (label), wartość to id (value)
    const items = {
        "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.": "1",
        "Lorem ipsum dolor sit amet": "2",
        "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.": "3",
        "Lorem ipsum dolor sit amet, consectetur adipiscing elit": "4",
        "Lorem ipsum": "5",
    };

    // Zmiana obiektu na tablicę obiektów {label, value}
    return Object.entries(items).map(([label, value]) => ({ label, value }));
}
```

Aby skrypt zadziałał poprawnie, niezbędne jest skonfigurowanie mapowania parametrów wyjściowych. Zwracane przez skrypt właściwości (*label* i *value*) muszą zostać jednoznacznie przypisane do odpowiednich atrybutów komponentu.

<figure><img src="/files/ACnv2FMiseQKSte0HZGm" alt=""><figcaption><p><em><strong>Ilustracja 4.</strong> Mapowanie parametrów wyjścia na atrybuty komponentu</em></p></figcaption></figure>

Po poprawnym zmapowaniu, komponent wygeneruje listę opcji na podstawie danych zwróconych przez kod. Skrypt automatycznie dopasuje wygląd listy, poprawnie obsługując zarówno bardzo długie, jak i krótkie teksty.

<figure><img src="/files/yt0gl77VSWSpHV7H3O0F" alt=""><figcaption><p><em><strong>Ilustracja 5.</strong> Radio grupa zasilona skryptem</em></p></figcaption></figure>

* Dla źródła typu **DICTIONARY** - wszystkie wiersze zostaną przetłumaczone na pola **Radio** i ułożone zgodnie z układem **GridLayout**, każde pole **Radio** w kolejnym wierszu.

<figure><img src="/files/f3JmOXc25CojKTeHyw1J" alt=""><figcaption><p><em><strong>Ilustracja 6.</strong> Zasilenie Radio grupy danymi pochodzącymi ze słownika</em></p></figcaption></figure>

{% hint style="info" %}
Wniosek demo: demoRadioGroup
{% endhint %}

{% hint style="info" %}
♿WCAG: [Dobre praktyki WCAG dla low-code dev](/budowanie-aplikacji/interfejs-uzytkownika/wcag/dobre-praktyki-wcag-komponenty-low-code.md)
{% 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/budowanie-aplikacji/interfejs-uzytkownika/formularze/biblioteka-komponentow-bazowych/2-pola-wyboru/radio/radio-grupa-radiogroup.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.
