@vnejs/docs 0.2.18 → 0.2.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,32 @@
2
2
 
3
3
  Краткая история изменений плагинов и внешнего API. Версии — релизы пакета `@vnejs/docs`.
4
4
 
5
+ ## 0.2.20
6
+
7
+ - `views.screens/confirm` — горизонтальные стрелки в модуле `confirm.controller.arrows` на `@vnejs/module.controller.arrows.horizontal`; индекс в стейте `currentArrowHorizontalItem`. `ACCEPT` / `INTERACT` читают его, не `currentItem`. `STATE.CLEAR` → `HIDE` с `{ isForce: true }` в `confirm.hide.state` на `@vnejs/module.controller.hide.on.state` (`IS_STATE_SET_ENABLED = false`). API: `EVENTS.CONFIRM.UPDATE_FAST`.
8
+ - `views.screens/disclaimer` — `ACCEPT` / `INTERACT` в `disclaimer.controller.accept` на `@vnejs/module.controller.accept` → `DISCLAIMER.ACCEPT` → `HIDE`, `emitNext`.
9
+ - `views.screens/credits` — `ACCEPT` / `INTERACT` → `HIDE` в `credits.controller.accept` на `@vnejs/module.controller.accept`. `BACK` / `MENU` / `GAMEMENU` → `HIDE` в `credits.hide.controls` на `@vnejs/module.controller.hide.on.controls`. `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }` в `credits.hide.state` на `@vnejs/module.controller.hide.on.state`.
10
+ - `views/settings` — вертикальные стрелки в модуле `settings.fields.controller.arrows` на `@vnejs/module.controller.arrows.vertical`; индекс в стейте `currentArrowVerticalItem`. `TAB_SET` сбрасывает индекс. API: `EVENTS.SETTINGS_VIEW.STATE_UPDATE`, `EVENTS.SETTINGS_VIEW.UPDATE_FAST`.
11
+ - `views.screens/eula` — вертикальные стрелки по тексту в `eula.controller.arrows` на `@vnejs/module.controller.arrows.vertical`; пустые строки через `isArrowItemAvailable`; индекс `currentArrowVerticalItem`. `STATE.SET` / `STATE.CLEAR` → `HIDE` в `eula.hide.state` на `@vnejs/module.controller.hide.on.state`. API: `EVENTS.EULA.STATE_UPDATE`, `EVENTS.EULA.UPDATE_FAST`.
12
+ - `views.screens/gallery` — `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }` в `gallery.hide.state` на `@vnejs/module.controller.hide.on.state`.
13
+ - `views/video` — `STATE.CLEAR` → `HIDE` с `{ isForce: true }` в `video.hide.state` на `@vnejs/module.controller.hide.on.state` (`IS_STATE_SET_ENABLED = false`).
14
+ - `canvas/sprite` — пустая строка и другие falsy в `getSrc` → transparent (`EMPTY_IMG`), без `MEDIA.GET` / `MEDIA.LOAD`; `indexSrc` берётся с первого непустого overlay.
15
+
16
+ ## 0.2.19
17
+
18
+ - `views.screens/gamemenu` — вертикальные стрелки в модуле `gameMenu.controller.arrows` на `@vnejs/module.controller.arrows.vertical`; индекс в стейте `currentArrowVerticalItem`. `ACCEPT` / `INTERACT` и хендлер `ACCEPT` → `CLICK` в `gameMenu.controller.accept` на `@vnejs/module.controller.accept`. `BACK` / `MENU` / `GAMEMENU` → `HIDE` в `gameMenu.hide.controls` на `@vnejs/module.controller.hide.on.controls`. `STATE.SET` / `STATE.CLEAR` эмитят `HIDE` с `{ isForce: true }` из модуля `gameMenu.hide.state` на `@vnejs/module.controller.hide.on.state`. API: `EVENTS.GAMEMENU.STATE_UPDATE`, `EVENTS.GAMEMENU.UPDATE_FAST`.
19
+ - `views.screens/history` — вертикальные стрелки в модуле `history.controller.arrows` на `@vnejs/module.controller.arrows.vertical`; индекс в стейте `currentArrowVerticalItem`. `ACCEPT` / `INTERACT` и хендлер `ACCEPT` → `CLICK` в `history.controller.accept` на `@vnejs/module.controller.accept`. `BACK` / `MENU` / `GAMEMENU` → `HIDE` в `history.hide.controls` на `@vnejs/module.controller.hide.on.controls`. API: `EVENTS.HISTORY.STATE_UPDATE`, `EVENTS.HISTORY.UPDATE_FAST`.
20
+ - `views.screens/settings` — `BACK` / `MENU` / `GAMEMENU` → `HIDE` в `settings.hide.controls` на `@vnejs/module.controller.hide.on.controls`.
21
+ - `views.screens/gallery` — `BACK` / `MENU` / `GAMEMENU` → `HIDE` в `gallery.hide.controls` на `@vnejs/module.controller.hide.on.controls`.
22
+ - `views.screens/gallery.full` — `BACK` / `MENU` / `GAMEMENU` → `HIDE` в `gallery.full.hide.controls` на `@vnejs/module.controller.hide.on.controls`.
23
+ - `views.screens/save` — `BACK` / `MENU` / `GAMEMENU` → `HIDE` в `save.hide.controls` на `@vnejs/module.controller.hide.on.controls`.
24
+ - `views.scenario/choose` — вертикальные стрелки в модуле `choose_view.controller.arrows` на `@vnejs/module.controller.arrows.vertical`; скип `hided` через `isArrowItemAvailable` (индекс исходный). `ACCEPT` / `INTERACT` → `CHOOSE.OPTION` в `choose_view.controller.accept` на `@vnejs/module.controller.accept`. API: `EVENTS.CHOOSE_VIEW.STATE_UPDATE`, `EVENTS.CHOOSE_VIEW.UPDATE_FAST`, `EVENTS.CHOOSE_VIEW.ACCEPT`.
25
+ - `views.screens/confirm` — `ACCEPT` / `INTERACT` в `confirm.controller.accept` на `@vnejs/module.controller.accept`: при `currentItem` — `ACCEPT` (0) или `DECLINE` (иначе), без выделения — `ACCEPT`. API: `EVENTS.CONFIRM.SUBMIT`, `EVENTS.CONFIRM.STATE_UPDATE`.
26
+ - `views.screens/eula` — `ACCEPT` (`IS_INTERACT_ENABLED = false`) в `eula.controller.accept` на `@vnejs/module.controller.accept` → `EULA.ACCEPT` → `ACCEPTED_VERSION`, `HIDE`.
27
+ - `views.screens/settings.defaults` — `ACCEPT` (`IS_INTERACT_ENABLED = false`) в `settings.defaults.controller.accept` на `@vnejs/module.controller.accept` → `CONFIRM` → `INITED`, `HIDE`, `emitNext`.
28
+ - `views/comment` — `STATE.SET` / `STATE.CLEAR` эмитят `HIDE` с `{ isForce: true }` из модуля `comment.hide` на `@vnejs/module.controller.hide.on.state`.
29
+ - `views.screens/mainmenu.socials` — прямые подписки на `STATE.SET` / `STATE.CLEAR` сняты; hide идёт через `MAINMENU.HIDE` от `mainmenu.hide`.
30
+
5
31
  ## 0.2.18
6
32
 
7
33
  - `views.screens/mainmenu` — вертикальные стрелки в модуле `mainmenu.controller.arrows` на `@vnejs/module.controller.arrows.vertical`; индекс в стейте `currentArrowVerticalItem` (ACCEPT читает его, не `currentItem` базы). Кнопки `ACCEPT` / `INTERACT` и хендлер `ACCEPT` → `CLICK` в `mainmenu.controller.accept` на `@vnejs/module.controller.accept` (зеркало `STATE_UPDATE`). `mainmenu.controller` пушит пустой `controls` на `ZINDEX`, чтобы стопорить слои ниже. `STATE.SET` / `STATE.CLEAR` эмитят `HIDE` с `{ isForce: true }` из модуля `mainmenu.hide` на `@vnejs/module.controller.hide.on.state`. Accept / arrows / backgrounds больше не слушают `STATE.SET` / `STATE.CLEAR` напрямую — только `HIDE`.
package/architecture.md CHANGED
@@ -139,6 +139,7 @@ flowchart TD
139
139
  MCAC["@vnejs/module.controller.accept"]
140
140
  MCAV["@vnejs/module.controller.arrows.vertical"]
141
141
  MCHS["@vnejs/module.controller.hide.on.state"]
142
+ MCHC["@vnejs/module.controller.hide.on.controls"]
142
143
  MSC["@vnejs/module.scales.common"]
143
144
 
144
145
  M --> MC
@@ -154,6 +155,7 @@ flowchart TD
154
155
  MC --> MCAC
155
156
  MC --> MCAV
156
157
  MC --> MCHS
158
+ MC --> MCHC
157
159
  MC --> MSC
158
160
  MCO --> ML
159
161
  ```
@@ -175,6 +177,7 @@ flowchart TD
175
177
  | **`@vnejs/module.controller.accept`** | ACCEPT / INTERACT → событие ACCEPT плагина; PUSH/POP controls на SHOW/HIDE |
176
178
  | **`@vnejs/module.controller.arrows.vertical`** | ARROW_UP / ARROW_BOTTOM по видимым пунктам; PUSH/POP controls на SHOW/HIDE |
177
179
  | **`@vnejs/module.controller.hide.on.state`** | STATE.SET / STATE.CLEAR → emit HIDE плагина (`isForce` задаёт наследник) |
180
+ | **`@vnejs/module.controller.hide.on.controls`** | BACK / MENU / GAMEMENU → emit HIDE плагина; PUSH/POP controls на SHOW/HIDE |
178
181
  | **`@vnejs/module.scales.common`** | База для scales / RPG-модулей |
179
182
 
180
183
  ### Принципы
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vnejs/docs",
3
- "version": "0.2.18",
3
+ "version": "0.2.20",
4
4
  "description": "VNEJS documentation for engine consumers and coding agents",
5
5
  "files": [
6
6
  "*.md",
@@ -24,7 +24,7 @@ $ ul.sprite show co left {co/default} opacity 500
24
24
  | Поле | Смысл |
25
25
  |------|-------|
26
26
  | `mapOverlays?` | Преобразование карты overlays перед резолвом путей |
27
- | `getSrc?` | Кастомный список src по `(variation, realOverlays, options, otherArgs)` |
27
+ | `getSrc?` | Кастомный список src по `(variation, realOverlays, options, otherArgs)`. Пустая строка и другие falsy-элементы сохраняют слот и рисуются как transparent-картинка (без `MEDIA.GET` / `MEDIA.LOAD`). |
28
28
 
29
29
  ## События
30
30
 
@@ -34,6 +34,7 @@
34
34
  |--------|----------------------|
35
35
  | `comment` | Модуль `comment`. |
36
36
  | `comment.controller` | Обрабатывает UPDATE, SHOW, HIDE, EXTERNAL_UPDATE, …. |
37
+ | `comment.hide` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }`. |
37
38
  | `comment.view` | Подмодуль `view` плагина. |
38
39
 
39
40
  ## Близкие плагины
@@ -12,6 +12,8 @@
12
12
  | `TAB_SET` | `vne:settings_view:tab_set` | Сменить активную вкладку; payload `{ tab, tabKey?, locs?, isForce? }`. Старая и новая одновременно: `PositionBox opacity` 1↔0. |
13
13
  | `HIDE` | `vne:settings_view:hide` | Скрыть слой полей. |
14
14
  | `UPDATE` | `vne:settings_view:update` | Обновить состояние или отображение. |
15
+ | `UPDATE_FAST` | `vne:settings_view:update_fast` | Быстрый UPDATE view без анимации (стрелки). |
16
+ | `STATE_UPDATE` | `vne:settings_view:state_update` | Слить `{ currentArrowVerticalItem }` в стейт controller; пересчитать `currentItemInner`. |
15
17
 
16
18
  ## Константы
17
19
 
@@ -37,8 +39,9 @@
37
39
 
38
40
  | Модуль | Зона ответственности |
39
41
  |--------|----------------------|
40
- | `settings.fields.controller` | `SHOW`/`HIDE`/`TAB_SET`; `ARROW_UP`/`ARROW_BOTTOM` по полям. На `selector_texts` / `actions` (`options`): `ARROW_LEFT`/`ARROW_RIGHT` циклят `currentItemInner` (modulo); у `selector_texts` сразу `SETTINGS.SET`. `INTERACT` — option value или named action (в т.ч. `actions` без `settingKey`). `ACCEPT` не обрабатывает — оставляют экраны. |
41
- | `settings.fields.view` | Обёртка `<View {...propsView} />` (fade show/hide); внутри вкладки `<SettingsTabContent />` с `PositionBox opacity` для crossfade по `tabKey`. |
42
+ | `settings.fields.controller` | `SHOW`/`HIDE`/`TAB_SET`; зеркалит `STATE_UPDATE` (`currentArrowVerticalItem` + `currentItemInner`). На `selector_texts` / `actions` (`options`): `ARROW_LEFT`/`ARROW_RIGHT` циклят `currentItemInner` (modulo); у `selector_texts` сразу `SETTINGS.SET`. `INTERACT` — option value или named action (в т.ч. `actions` без `settingKey`). `ACCEPT` не обрабатывает — оставляют экраны. |
43
+ | `settings.fields.controller.arrows` | Наследует `@vnejs/module.controller.arrows.vertical`: `ARROW_UP`/`ARROW_BOTTOM` по полям; PUSH/POP на SHOW/HIDE; `TAB_SET` сбрасывает индекс; эмитит `STATE_UPDATE` с `{ currentArrowVerticalItem }` и `UPDATE_FAST`. |
44
+ | `settings.fields.view` | Обёртка `<View {...propsView} />` (fade show/hide); внутри вкладки `<SettingsTabContent />` с `PositionBox opacity` для crossfade по `tabKey`. Подсветка полей по `currentArrowVerticalItem`. |
42
45
 
43
46
  ## Близкие плагины
44
47
 
@@ -37,7 +37,8 @@
37
37
 
38
38
  | Модуль | Зона ответственности |
39
39
  |--------|----------------------|
40
- | `video.controller` | Обрабатывает UPDATE, EMIT, SHOW, HIDE, …. |
40
+ | `video.controller` | SHOW/HIDE, SET_SRC, `BUTTONS.ANY` → `INTERACT.EMIT`. |
41
+ | `video.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: только `STATE.CLEAR` → `HIDE` с `{ isForce: true }` (`IS_STATE_SET_ENABLED = false`). |
41
42
  | `video` | Обрабатывает HIDE, PLAY, LOAD, GET, …. |
42
43
  | `video.view` | Подмодуль `view` плагина. |
43
44
 
@@ -12,6 +12,9 @@ React-UI выбора из текстовых опций. Зависит от sc
12
12
  | `SHOW_BEFORE` | `vne:choose_view:show_before` | Хук перед показом (после загрузки state из `globalState.choose`). |
13
13
  | `HIDE` | `vne:choose_view:hide` | Скрыть UI выбора. |
14
14
  | `UPDATE` | `vne:choose_view:update` | Обновить React-store / отображение. |
15
+ | `STATE_UPDATE` | `vne:choose_view:state_update` | Слить partial в стейт контроллера без UPDATE view. |
16
+ | `UPDATE_FAST` | `vne:choose_view:update_fast` | Перерисовать view с `isFast`, стейт не меняет. |
17
+ | `ACCEPT` | `vne:choose_view:accept` | `ACCEPT` / `INTERACT` → `CHOOSE.OPTION` по `currentArrowVerticalItem`. |
15
18
 
16
19
  Сценарные события (`EMIT`, `OPTION`, `SHOW`, `HIDE`, `SKIP`, `EXEC_*`, `STATE_UPDATE`) — в контракте `@vnejs/contracts.scenario.choose`, namespace `CHOOSE`.
17
20
 
@@ -37,7 +40,9 @@ React-UI выбора из текстовых опций. Зависит от sc
37
40
  | Модуль | Зона ответственности |
38
41
  |--------|----------------------|
39
42
  | `choose_view.bridge` | Bridge `CHOOSE.SHOW/HIDE` → `CHOOSE_VIEW.SHOW/HIDE`. |
40
- | `choose_view.controller` | Controls, emit `CHOOSE.OPTION`, `beforeShow` / `afterHide`. |
43
+ | `choose_view.controller` | `CONTROLS_EXTENSIONS`, `beforeShow` / `afterHide`, зеркало `STATE_UPDATE` / `UPDATE_FAST`. |
44
+ | `choose_view.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `ACCEPT` → `CHOOSE.OPTION` по `currentArrowVerticalItem`; зеркалит `STATE_UPDATE`; PUSH/POP на SHOW/HIDE. |
45
+ | `choose_view.controller.arrows` | Наследует `@vnejs/module.controller.arrows.vertical`: `ARROW_UP` / `ARROW_BOTTOM` по полному `options[]`; скипает `hided` через `isArrowItemAvailable` (индекс исходный); PUSH/POP на SHOW/HIDE; эмитит `STATE_UPDATE` с `{ currentArrowVerticalItem }` и `UPDATE_FAST`. |
41
46
  | `choose_view.view` | React-render опций. |
42
47
 
43
48
  ## Связь с CHOOSE
@@ -74,6 +79,6 @@ sequenceDiagram
74
79
 
75
80
  ### Остальные
76
81
 
77
- - [controls.md](../controls/controls.md) — `CONTROLS`: стрелки, ACCEPT
82
+ - [controls.md](../controls/controls.md) — `CONTROLS`: стрелки, ACCEPT, INTERACT
78
83
  - [interface.md](interface.md) — compatibility скрывает interface на `CHOOSE_VIEW.SHOW_BEFORE`
79
84
  - [qte.md](./qte.md) — `QTE_VIEW`: при опции с `qte:` открывается поверх choose (z-index 1300 > 1200)
@@ -12,8 +12,11 @@
12
12
  | `HIDE` | `vne:confirm:hide` | Скрыть UI или слой. |
13
13
  | `EMIT` | `vne:confirm:emit` | Инициировать действие или цикл. |
14
14
  | `UPDATE` | `vne:confirm:update` | Обновить состояние или отображение. |
15
+ | `UPDATE_FAST` | `vne:confirm:update_fast` | Быстрый UPDATE view без анимации (стрелки). |
16
+ | `STATE_UPDATE` | `vne:confirm:state_update` | Слить `{ currentArrowHorizontalItem }` в стейт controller/accept без UPDATE view. |
15
17
  | `ACCEPT` | `vne:confirm:accept` | Событие `ACCEPT` namespace плагина. |
16
18
  | `DECLINE` | `vne:confirm:decline` | Событие `DECLINE` namespace плагина. |
19
+ | `SUBMIT` | `vne:confirm:submit` | `ACCEPT` / `INTERACT`: при `currentArrowHorizontalItem` — ACCEPT (0) или DECLINE, иначе ACCEPT. |
17
20
 
18
21
  ## Константы
19
22
 
@@ -33,7 +36,10 @@
33
36
 
34
37
  | Модуль | Зона ответственности |
35
38
  |--------|----------------------|
36
- | `confirm.controller` | Обрабатывает UPDATE, ACCEPT, DECLINE, SHOW, …. |
39
+ | `confirm.controller` | SHOW/HIDE; BACK → `DECLINE`; зеркалит `STATE_UPDATE` в стейт и `UPDATE_FAST` во view. |
40
+ | `confirm.controller.arrows` | Наследует `@vnejs/module.controller.arrows.horizontal`: `ARROW_LEFT` / `ARROW_RIGHT` по Accept/Decline; PUSH/POP controls на SHOW/HIDE; эмитит `STATE_UPDATE` с `{ currentArrowHorizontalItem }` и `UPDATE_FAST`. |
41
+ | `confirm.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `SUBMIT` → `ACCEPT` или `DECLINE` по `currentArrowHorizontalItem`; зеркалит `STATE_UPDATE`; PUSH/POP на SHOW/HIDE. |
42
+ | `confirm.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: только `STATE.CLEAR` → `HIDE` с `{ isForce: true }` (`IS_STATE_SET_ENABLED = false`). |
37
43
  | `confirm` | Обрабатывает EMIT, ACCEPT, DECLINE. |
38
44
  | `confirm.view` | Подмодуль `view` плагина. |
39
45
 
@@ -30,7 +30,10 @@
30
30
 
31
31
  | Модуль | Зона ответственности |
32
32
  |--------|----------------------|
33
- | `credits.controller` | Обрабатывает HIDE, UPDATE, SHOW, CLEAR. |
33
+ | `credits.controller` | SHOW/HIDE; пустой `controls` на `ZINDEX`; `afterHide` → emitNext. |
34
+ | `credits.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `CREDITS.HIDE`; PUSH/POP на SHOW/HIDE. |
35
+ | `credits.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
36
+ | `credits.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }`. |
34
37
  | `credits` | Модуль `credits`. |
35
38
  | `credits.view` | Подмодуль `view` плагина. |
36
39
 
@@ -38,9 +41,9 @@
38
41
 
39
42
  ### plugins/core/
40
43
 
44
+ - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
41
45
  - [scenario.md](../core/scenario.md) — `SCENARIO`: emitNext, EVENTS.LINE_EXEC_REG
42
- - [state.md](../core/state.md) — `STATE`: EVENTS.CLEAR
43
46
 
44
47
  ### Остальные
45
48
 
46
- - [controls.md](../controls/controls.md) — `CONTROLS`: CONST.BUTTONS.ACCEPT, CONST.BUTTONS.INTERACT, CONST.BUTTONS.MENU
49
+ - [controls.md](../controls/controls.md) — `CONTROLS`: CONST.BUTTONS.ACCEPT, CONST.BUTTONS.INTERACT, CONST.BUTTONS.BACK, CONST.BUTTONS.MENU, CONST.BUTTONS.GAMEMENU
@@ -34,8 +34,9 @@
34
34
 
35
35
  | Модуль | Зона ответственности |
36
36
  |--------|----------------------|
37
- | `disclaimer.controller` | SHOW/HIDE, controls ACCEPT/INTERACT → ACCEPT. |
38
- | `disclaimer` | `$ disclaimer show <id>` → SHOW; ACCEPT → HIDE → emitNext. |
37
+ | `disclaimer.controller` | SHOW/HIDE; пустой `controls` на `ZINDEX`, чтобы стопорить слои ниже. |
38
+ | `disclaimer.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `DISCLAIMER.ACCEPT` → `HIDE`, `emitNext`; PUSH/POP на SHOW/HIDE. |
39
+ | `disclaimer` | `$ disclaimer show <id>` → SHOW. |
39
40
  | `disclaimer.view` | React UI: title / text / accept из locs. |
40
41
 
41
42
  ## Локализация
@@ -9,6 +9,8 @@
9
9
  | Ключ | Строка | Смысл |
10
10
  |------|--------|-------|
11
11
  | `UPDATE` | `vne:eula:update` | Обновить состояние или отображение. |
12
+ | `UPDATE_FAST` | `vne:eula:update_fast` | Быстрый UPDATE view без анимации (стрелки по тексту). |
13
+ | `STATE_UPDATE` | `vne:eula:state_update` | Слить `{ currentArrowVerticalItem }` в стейт controller без UPDATE view. |
12
14
  | `SHOW` | `vne:eula:show` | Показать UI или слой. |
13
15
  | `HIDE` | `vne:eula:hide` | Скрыть UI или слой. |
14
16
  | `ACCEPT` | `vne:eula:accept` | Событие `ACCEPT` namespace плагина. |
@@ -36,8 +38,11 @@
36
38
 
37
39
  | Модуль | Зона ответственности |
38
40
  |--------|----------------------|
39
- | `eula.controller` | Обрабатывает UPDATE, SHOW, HIDE, EXTERNAL_UPDATE, …. |
40
- | `eula` | Обрабатывает ACCEPT, EXIT, SHOW. |
41
+ | `eula.controller` | SHOW/HIDE; `BACK` → `EXIT`; зеркалит `STATE_UPDATE` / `UPDATE_FAST`; lang/locs. |
42
+ | `eula.controller.arrows` | Наследует `@vnejs/module.controller.arrows.vertical`: `ARROW_UP` / `ARROW_BOTTOM` по строкам текста; пустые строки через `isArrowItemAvailable`; смена `SETTINGS.EULA.LANG` сбрасывает индекс; PUSH/POP на SHOW/HIDE; эмитит `STATE_UPDATE` с `{ currentArrowVerticalItem }` и `UPDATE_FAST`. |
43
+ | `eula.controller.accept` | Наследует `@vnejs/module.controller.accept`: только `ACCEPT` (`IS_INTERACT_ENABLED = false`) → `EULA.ACCEPT` → `ACCEPTED_VERSION`, `HIDE`; PUSH/POP на SHOW/HIDE. |
44
+ | `eula.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }`. |
45
+ | `eula` | `MAINMENU.SHOW` → `SHOW` (если версия не принята); `EXIT` → `SYSTEM.CLOSE`. |
41
46
  | `eula.view` | Подмодуль `view` плагина. |
42
47
 
43
48
  ## Близкие плагины
@@ -46,7 +51,7 @@
46
51
 
47
52
  - [components.md](../core/components.md) — `COMPONENTS`: EVENTS.EXTERNAL_UPDATE
48
53
  - [settings.md](../core/settings.md) — `SETTINGS`: EVENTS.CHANGED, EVENTS.INIT, EVENTS.SET
49
- - [state.md](../core/state.md) — `STATE`: EVENTS.CLEAR
54
+ - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
50
55
  - [system.md](../core/system.md) — `SYSTEM`: EVENTS.CLOSE
51
56
 
52
57
  ### Остальные
@@ -34,7 +34,8 @@
34
34
 
35
35
  | Модуль | Зона ответственности |
36
36
  |--------|----------------------|
37
- | `gallery.full.controller` | Обрабатывает UPDATE, HIDE, SHOW, CHOOSE. |
37
+ | `gallery.full.controller` | Обрабатывает UPDATE, HIDE, SHOW, CHOOSE. `ARROW_LEFT` / `ARROW_RIGHT` → смена вариации. |
38
+ | `gallery.full.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
38
39
  | `gallery.full.view` | Подмодуль `full.view` плагина. |
39
40
 
40
41
  ## Близкие плагины
@@ -50,7 +50,9 @@ ACCEPT/INTERACT эмитит `CHOOSE` только для выбранного
50
50
  | Модуль | Зона ответственности |
51
51
  |--------|----------------------|
52
52
  | `gallery.controller.audio` | Наследник `ModuleControllerAudio`: SHOW/HIDE/PRELOAD → pause global, play/stop `view`-трека; `VOLUME_SETTING = MUSIC.VOLUME`; SHOW передаёт в `AUDIO.PLAY` уже посчитанный `volume`; при `VOLUME_CHANGED` / смене `VOLUME_SETTING` — повторный `AUDIO.VOLUME`. |
53
- | `gallery.controller` | Обрабатывает UPDATE, HIDE, TAB_SET, …. ACCEPT/INTERACT → `CHOOSE` только если слот открыт. |
53
+ | `gallery.controller` | Обрабатывает UPDATE, HIDE, TAB_SET, …. ACCEPT/INTERACT → `CHOOSE` только если слот открыт. Стрелки и ACCEPT/INTERACT в `controls` контроллера. |
54
+ | `gallery.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
55
+ | `gallery.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }`. |
54
56
  | `gallery.controller.tabs` | Наследник `ModuleControllerTabs`: TAB_PREV/TAB_NEXT → `TAB_SET`; PUSH/POP controls на SHOW/HIDE. |
55
57
  | `gallery` | Обрабатывает OPEN, CHECK, CLEAR. |
56
58
  | `gallery.view` | Подмодуль `view` плагина. |
@@ -60,7 +62,7 @@ ACCEPT/INTERACT эмитит `CHOOSE` только для выбранного
60
62
  ### plugins/core/
61
63
 
62
64
  - [memory.md](../core/memory.md) — `MEMORY`: EVENTS.CLEARED, EVENTS.CLEAR
63
- - [state.md](../core/state.md) — `STATE`: EVENTS.CLEAR
65
+ - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
64
66
  - [storage.md](../core/storage.md) — `STORAGE`: EVENTS.SET, EVENTS.GET, EVENTS.RM_ALL
65
67
  - [system.md](../core/system.md) — `SYSTEM`: EVENTS.STARTED
66
68
 
@@ -12,6 +12,8 @@
12
12
  | `HIDE` | `vne:gamemenu:hide` | Скрыть UI или слой. |
13
13
  | `CLICK` | `vne:gamemenu:click` | Событие `CLICK` namespace плагина. |
14
14
  | `UPDATE` | `vne:gamemenu:update` | Обновить состояние или отображение. |
15
+ | `STATE_UPDATE` | `vne:gamemenu:state_update` | Слить partial в стейт контроллера без UPDATE view. |
16
+ | `UPDATE_FAST` | `vne:gamemenu:update_fast` | Перерисовать view с `isFast`, стейт не меняет. |
15
17
  | `ACCEPT` | `vne:gamemenu:accept` | Событие `ACCEPT` namespace плагина. |
16
18
 
17
19
  ## Константы
@@ -36,7 +38,11 @@
36
38
 
37
39
  | Модуль | Зона ответственности |
38
40
  |--------|----------------------|
39
- | `gameMenu.controller` | Обрабатывает UPDATE, HIDE, ACCEPT, SHOW, …. |
41
+ | `gameMenu.controller` | Обрабатывает UPDATE, HIDE, SHOW, STATE_UPDATE, UPDATE_FAST, …. Пустой `controls` на `ZINDEX`, чтобы стопорить слои ниже. |
42
+ | `gameMenu.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `ACCEPT` → `CLICK` по `currentArrowVerticalItem`; зеркалит `STATE_UPDATE`; PUSH/POP на SHOW/HIDE. |
43
+ | `gameMenu.controller.arrows` | Наследует `@vnejs/module.controller.arrows.vertical`: `ARROW_UP` / `ARROW_BOTTOM` по видимым пунктам; PUSH/POP controls на SHOW/HIDE; эмитит `STATE_UPDATE` с `{ currentArrowVerticalItem }` и `UPDATE_FAST`. |
44
+ | `gameMenu.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
45
+ | `gameMenu.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }`. |
40
46
  | `gameMenu` | Модуль `gameMenu`. |
41
47
  | `gameMenu.view` | Подмодуль `view` плагина. |
42
48
 
@@ -49,4 +55,4 @@
49
55
 
50
56
  ### Остальные
51
57
 
52
- - [controls.md](../controls/controls.md) — `CONTROLS`: CONST.BUTTONS.BACK, CONST.BUTTONS.MENU, CONST.BUTTONS.GAMEMENU, CONST.BUTTONS.ACCEPT, CONST.BUTTONS.ARROW_UP, CONST.BUTTONS.ARROW_BOTTOM
58
+ - [controls.md](../controls/controls.md) — `CONTROLS`: CONST.BUTTONS.BACK, CONST.BUTTONS.MENU, CONST.BUTTONS.GAMEMENU, CONST.BUTTONS.ACCEPT, CONST.BUTTONS.INTERACT, CONST.BUTTONS.ARROW_UP, CONST.BUTTONS.ARROW_BOTTOM
@@ -17,6 +17,8 @@
17
17
  | `SHOW` | `vne:history:show` | Показать UI или слой. |
18
18
  | `CLICK` | `vne:history:click` | Событие `CLICK` namespace плагина. |
19
19
  | `UPDATE` | `vne:history:update` | Обновить состояние или отображение. |
20
+ | `STATE_UPDATE` | `vne:history:state_update` | Слить partial в стейт контроллера без UPDATE view. |
21
+ | `UPDATE_FAST` | `vne:history:update_fast` | Перерисовать view с `isFast`, стейт не меняет. |
20
22
  | `ACCEPT` | `vne:history:accept` | Событие `ACCEPT` namespace плагина. |
21
23
 
22
24
  ## Константы
@@ -41,7 +43,10 @@
41
43
 
42
44
  | Модуль | Зона ответственности |
43
45
  |--------|----------------------|
44
- | `history.controller` | SHOW/HIDE/ACCEPT/CLICK; перед SHOW резолвит тексты строк (`TEXT.REPLACE`). Для `locKey` — через `PARAMS.HISTORY.LOC_LABEL` (локализация view), иначе через label сценария. |
46
+ | `history.controller` | SHOW/HIDE/CLICK/STATE_UPDATE/UPDATE_FAST; перед SHOW резолвит тексты строк (`TEXT.REPLACE`). Для `locKey` — через `PARAMS.HISTORY.LOC_LABEL` (локализация view), иначе через label сценария. Пустой `controls` на `ZINDEX`, чтобы стопорить слои ниже. |
47
+ | `history.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `ACCEPT` → `CLICK` по `currentArrowVerticalItem`; зеркалит `STATE_UPDATE`; PUSH/POP на SHOW/HIDE. |
48
+ | `history.controller.arrows` | Наследует `@vnejs/module.controller.arrows.vertical`: `ARROW_UP` / `ARROW_BOTTOM` по записям журнала; PUSH/POP controls на SHOW/HIDE; эмитит `STATE_UPDATE` с `{ currentArrowVerticalItem }` и `UPDATE_FAST`. |
49
+ | `history.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
45
50
  | `history` | Обрабатывает ADD, GET, LOAD, BACK, …. |
46
51
  | `history.view` | Подмодуль `view` плагина. |
47
52
 
@@ -65,6 +70,6 @@
65
70
 
66
71
  ### Остальные
67
72
 
68
- - [controls.md](../controls/controls.md) — `CONTROLS`: CONST.BUTTONS.BACK, CONST.BUTTONS.MENU, CONST.BUTTONS.GAMEMENU, CONST.BUTTONS.ARROW_UP, CONST.BUTTONS.ARROW_BOTTOM, CONST.BUTTONS.ACCEPT
73
+ - [controls.md](../controls/controls.md) — `CONTROLS`: CONST.BUTTONS.BACK, CONST.BUTTONS.MENU, CONST.BUTTONS.GAMEMENU, CONST.BUTTONS.ARROW_UP, CONST.BUTTONS.ARROW_BOTTOM, CONST.BUTTONS.ACCEPT, CONST.BUTTONS.INTERACT
69
74
  - [text.md](../text/text.md) — `TEXT`: EVENTS.REPLACE
70
75
  - [choose.md](../scenario/choose.md) — `CHOOSE`: связка через compatibility выше (`OPTION_BEFORE_REG`)
@@ -28,7 +28,7 @@
28
28
 
29
29
  | Модуль | Зона ответственности |
30
30
  |--------|----------------------|
31
- | `mainmenu.socials.controller` | Обрабатывает UPDATE, SHOW, HIDE, CLEAR, …. |
31
+ | `mainmenu.socials.controller` | Обрабатывает UPDATE, SHOW, HIDE. Hide на `STATE.SET` / `STATE.CLEAR` идёт через `MAINMENU.HIDE` от `mainmenu.hide`, прямых подписок на `STATE` нет. |
32
32
  | `mainmenu.socials.view` | Подмодуль `socials.view` плагина. |
33
33
 
34
34
  ## Близкие плагины
@@ -36,10 +36,9 @@
36
36
  ### plugins/core/
37
37
 
38
38
  - [memory.md](../core/memory.md) — `MEMORY`: EVENTS.CLEARED
39
- - [state.md](../core/state.md) — `STATE`: EVENTS.CLEAR, EVENTS.SET
40
39
  - [system.md](../core/system.md) — `SYSTEM`: EVENTS.STARTED
41
40
 
42
41
  ### Остальные
43
42
 
44
43
  - [layer.md](../canvas/layer.md) — `LAYER`: SETTINGS.QUALITY
45
- - [mainmenu.md](./mainmenu.md) — `MAINMENU`: EVENTS.SHOW, EVENTS.HIDE, PARAMS.TRANSITION
44
+ - [mainmenu.md](./mainmenu.md) — `MAINMENU`: EVENTS.SHOW, EVENTS.HIDE; hide на STATE через `mainmenu.hide`
@@ -40,7 +40,8 @@ ACCEPT/INTERACT повторяет клик по слоту: на вкладке
40
40
  | Модуль | Зона ответственности |
41
41
  |--------|----------------------|
42
42
  | `save.controller.audio` | Наследник `ModuleControllerAudio`: SHOW/HIDE/PRELOAD → pause global, play/stop `view`-трека; `VOLUME_SETTING = MUSIC.VOLUME`; SHOW передаёт в `AUDIO.PLAY` уже посчитанный `volume`; при `VOLUME_CHANGED` / смене `VOLUME_SETTING` — повторный `AUDIO.VOLUME`. |
43
- | `save.controller` | Обрабатывает UPDATE, HIDE, LOAD, TAB_SET, …. SHOW принимает `{ tab }`; в `SAVE.*` передаёт `group` (номер страницы или `autosave`). ACCEPT/INTERACT: save → `CREATE`, load/autosave → `LOAD` при `screen`. |
43
+ | `save.controller` | Обрабатывает UPDATE, HIDE, LOAD, TAB_SET, …. SHOW принимает `{ tab }`; в `SAVE.*` передаёт `group` (номер страницы или `autosave`). ACCEPT/INTERACT: save → `CREATE`, load/autosave → `LOAD` при `screen`. Стрелки и ACCEPT/INTERACT в `controls` контроллера. |
44
+ | `save.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
44
45
  | `save.controller.tabs` | Наследник `ModuleControllerTabs`: TAB_PREV/TAB_NEXT → `TAB_SET`; `getTabKeys` фильтрует SAVE vs LOAD/AUTOSAVE. |
45
46
  | `save.controller.load` | Подмодуль `controller.load` плагина. |
46
47
  | `save.view` | Подмодуль `view` плагина. |
@@ -37,8 +37,9 @@ Breaking: раньше namespace был `SETTINGS_DEFAULTS`, события `vne
37
37
 
38
38
  | Модуль | Зона ответственности |
39
39
  |--------|----------------------|
40
- | `settings.defaults.controller` | SHOW/HIDE; `ACCEPT` → `CONFIRM` (выше controls index слоя полей); связка с `SETTINGS_VIEW`. |
41
- | `settings.defaults` | Связь со сценарием: шаг next после завершения действия. |
40
+ | `settings.defaults.controller` | SHOW/HIDE; связка с `SETTINGS_VIEW`. |
41
+ | `settings.defaults.controller.accept` | Наследует `@vnejs/module.controller.accept`: только `ACCEPT` (`IS_INTERACT_ENABLED = false`) → `CONFIRM` → `INITED`, `HIDE`, `emitNext`; PUSH/POP на SHOW/HIDE. |
42
+ | `settings.defaults` | Сценарий: `LINE_EXEC` → `SHOW`, либо `emitNext` при `skip_if_possible` и `INITED`. |
42
43
  | `settings.defaults.view` | Chrome: title + кнопка Accept. |
43
44
 
44
45
  ## Близкие плагины
@@ -39,7 +39,8 @@
39
39
  | Модуль | Зона ответственности |
40
40
  |--------|----------------------|
41
41
  | `settings.controller.audio` | Наследник `ModuleControllerAudio`: SHOW/HIDE/PRELOAD → pause global, play/stop `view`-трека; `VOLUME_SETTING = MUSIC.VOLUME`; SHOW передаёт в `AUDIO.PLAY` уже посчитанный `volume`; при `VOLUME_CHANGED` / смене `VOLUME_SETTING` — повторный `AUDIO.VOLUME`. |
42
- | `settings.controller` | SHOW/HIDE/TAB_SET; `BACK`/`MENU`/`GAMEMENU` → hide; связка с `SETTINGS_VIEW`. |
42
+ | `settings.controller` | SHOW/HIDE/TAB_SET; связка с `SETTINGS_VIEW`. Пустой `controls` на `ZINDEX`, чтобы стопорить слои ниже. |
43
+ | `settings.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
43
44
  | `settings.controller.tabs` | Наследник `ModuleControllerTabs`: TAB_PREV/TAB_NEXT → `TAB_SET`; `getTabKeys` по `showInSettings`. |
44
45
  | `settings.view` | Chrome экрана (Screen, tabs, cross); поля и example text — в `SETTINGS_VIEW`. |
45
46