+ Ladowanie specyfikacji...
+
+
+ {{ section.label }}
+
+
+
{{ field.label }}
+
{{ value }}
+
+
+
+```
+
+## `dictionariesStore`
+
+Plik:
+
+```txt
+frontend/src/stores/dictionariesStore.js
+```
+
+### Odpowiedzialność
+
+Ten store przechowuje słowniki.
+
+Słownik to lista wartości używana w filtrach, formularzach albo wyborach. Przykłady:
+
+- modele produktów,
+- klienci,
+- typy wykończenia,
+- listy produkcyjne,
+- operacje produkcyjne,
+- kolory.
+
+Takich danych nie trzeba pobierać przy każdym wejściu na ekran. Zwykle pobiera się je raz i trzyma w pamięci.
+
+### Spodziewana struktura stanu
+
+```js
+{
+ models: [
+ {
+ id: 1,
+ name: 'Regius Core 6',
+ },
+ ],
+ clients: [
+ {
+ id: 4,
+ name: 'HIENDGUITAR.COM / INDONESIA',
+ country: 'INDONESIA',
+ },
+ ],
+ finishes: [
+ {
+ value: 'GLOSS',
+ label: 'Gloss',
+ },
+ {
+ value: 'SATIN',
+ label: 'Satin',
+ },
+ ],
+ productionLists: [
+ {
+ id: 8,
+ name: 'CZE-00',
+ },
+ ],
+ operations: [
+ {
+ id: 7,
+ code: 'B',
+ name: 'Bejca',
+ },
+ ],
+ colors: [
+ {
+ id: 12,
+ name: 'Trans Natural Satine',
+ },
+ ],
+ loadedAt: 1777460000000,
+ isLoading: false,
+ error: null,
+}
+```
+
+### Spodziewana odpowiedź endpointu
+
+Endpoint:
+
+```http
+GET /mayo-api/dictionaries
+```
+
+Odpowiedź:
+
+```json
+{
+ "models": [],
+ "clients": [],
+ "finishes": [],
+ "productionLists": [],
+ "operations": [],
+ "colors": []
+}
+```
+
+### Najważniejsze funkcje
+
+```js
+await dictionariesStore.fetchDictionaries()
+```
+
+Pobiera słowniki, jeśli nie są jeszcze załadowane.
+
+```js
+await dictionariesStore.fetchDictionaries({ force: true })
+```
+
+Wymusza ponowne pobranie słowników.
+
+### Przykład użycia w filtrach
+
+```vue
+
+```
+
+## `uiStore`
+
+Plik:
+
+```txt
+frontend/src/stores/uiStore.js
+```
+
+### Odpowiedzialność
+
+Ten store przechowuje stan interfejsu użytkownika.
+
+Nie przechowuje danych biznesowych. To znaczy, że nie powinien trzymać specyfikacji, timeline ani produktów.
+
+Przechowuje tylko informacje typu:
+
+- czy drawer jest otwarty,
+- jaki panel jest otwarty,
+- dla jakiego produktu otwarty jest panel,
+- dodatkowe parametry panelu.
+
+### Spodziewana struktura stanu
+
+```js
+{
+ isDrawerOpen: true,
+ activePanel: 'productSpecification',
+ activeProductId: 123,
+ drawerPayload: {
+ productId: 123,
+ mode: 'view',
+ },
+ drawerInstanceKey: 4,
+}
+```
+
+### Najważniejsze funkcje
+
+```js
+uiStore.openDrawer(UI_PANELS.PRODUCT_SPECIFICATION, {
+ productId: 123,
+ mode: 'view',
+})
+```
+
+Otwiera drawer i ustawia aktywny panel.
+
+```js
+uiStore.closeDrawer()
+```
+
+Zamyka drawer.
+
+```js
+uiStore.replaceDrawer(UI_PANELS.PRODUCT_TIMELINE, {
+ productId: 123,
+})
+```
+
+Zamienia aktualny panel na inny.
+
+### Przykład użycia
+
+```vue
+
+
+