@vnejs/docs 0.2.64 → 0.2.66

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.
Files changed (261) hide show
  1. package/README.md +35 -35
  2. package/architecture/backends.md +18 -0
  3. package/architecture/build.md +37 -0
  4. package/architecture/bundles.md +20 -0
  5. package/architecture/cli.md +25 -0
  6. package/architecture/compatibility.md +22 -0
  7. package/architecture/configs.md +19 -0
  8. package/architecture/contracts.md +30 -0
  9. package/architecture/dependencies.md +55 -0
  10. package/architecture/editor.md +7 -0
  11. package/architecture/games.md +38 -0
  12. package/architecture/helpers.md +14 -0
  13. package/architecture/model.md +43 -0
  14. package/architecture/modules.md +87 -0
  15. package/architecture/packages.md +43 -0
  16. package/architecture/plugins.md +36 -0
  17. package/architecture/uis.md +23 -0
  18. package/changelog/0.2.18.md +7 -0
  19. package/changelog/0.2.19.md +14 -0
  20. package/changelog/0.2.20.md +10 -0
  21. package/changelog/0.2.21.md +5 -0
  22. package/changelog/0.2.22.md +11 -0
  23. package/changelog/0.2.23.md +4 -0
  24. package/changelog/0.2.25.md +6 -0
  25. package/changelog/0.2.26.md +12 -0
  26. package/changelog/0.2.29.md +10 -0
  27. package/changelog/0.2.31.md +5 -0
  28. package/changelog/0.2.32.md +3 -0
  29. package/changelog/0.2.33.md +5 -0
  30. package/changelog/0.2.34.md +8 -0
  31. package/changelog/0.2.35.md +33 -0
  32. package/changelog/0.2.36.md +10 -0
  33. package/changelog/0.2.38.md +19 -0
  34. package/changelog/0.2.39.md +16 -0
  35. package/changelog/0.2.40.md +9 -0
  36. package/changelog/0.2.42.md +3 -0
  37. package/changelog/0.2.43.md +10 -0
  38. package/changelog/0.2.46.md +3 -0
  39. package/changelog/0.2.47.md +25 -0
  40. package/changelog/0.2.49.md +3 -0
  41. package/changelog/0.2.50.md +6 -0
  42. package/changelog/0.2.51.md +6 -0
  43. package/changelog/0.2.52.md +5 -0
  44. package/changelog/0.2.53.md +12 -0
  45. package/changelog/0.2.55.md +19 -0
  46. package/changelog/0.2.56.md +11 -0
  47. package/changelog/0.2.57.md +7 -0
  48. package/changelog/0.2.58.md +8 -0
  49. package/changelog/0.2.59.md +6 -0
  50. package/changelog/0.2.60.md +5 -0
  51. package/changelog/0.2.61.md +11 -0
  52. package/changelog/0.2.62.md +8 -0
  53. package/changelog/0.2.63.md +4 -0
  54. package/changelog/0.2.64.md +4 -0
  55. package/changelog/0.2.65.md +3 -0
  56. package/changelog/0.2.66.md +5 -0
  57. package/changelog/README.md +43 -0
  58. package/manifest.json +66 -5
  59. package/package.json +6 -4
  60. package/plugins/ai/ai.md +29 -29
  61. package/plugins/ai/checkers.md +26 -26
  62. package/plugins/audio/ambient.md +20 -20
  63. package/plugins/audio/audio.md +40 -40
  64. package/plugins/audio/music.md +20 -20
  65. package/plugins/audio/sound.md +20 -20
  66. package/plugins/audio/voice.md +23 -23
  67. package/plugins/canvas/bg.md +44 -44
  68. package/plugins/canvas/bg.speak.md +34 -34
  69. package/plugins/canvas/fill.md +33 -33
  70. package/plugins/canvas/layer.md +35 -35
  71. package/plugins/canvas/sprite.md +46 -46
  72. package/plugins/canvas/sprite.speak.md +33 -33
  73. package/plugins/canvas/text.md +37 -37
  74. package/plugins/canvas/video.md +37 -37
  75. package/plugins/canvas.layers/bl.md +33 -33
  76. package/plugins/canvas.layers/fl.md +33 -33
  77. package/plugins/canvas.layers/ml.md +33 -33
  78. package/plugins/canvas.layers/ul.md +32 -32
  79. package/plugins/canvas.props/animation.md +25 -25
  80. package/plugins/canvas.props/clip.md +22 -22
  81. package/plugins/canvas.props/filters.md +20 -20
  82. package/plugins/canvas.props/mask.md +23 -23
  83. package/plugins/canvas.props/scale.md +20 -20
  84. package/plugins/common/grid.md +23 -23
  85. package/plugins/common/turn.md +18 -18
  86. package/plugins/controls/controls.md +31 -31
  87. package/plugins/controls/cursor.md +54 -54
  88. package/plugins/controls/gamepad.md +56 -56
  89. package/plugins/controls/keyboard.md +17 -17
  90. package/plugins/core/components.md +28 -28
  91. package/plugins/core/interact.md +26 -26
  92. package/plugins/core/logs.md +28 -28
  93. package/plugins/core/media.md +38 -38
  94. package/plugins/core/memory.md +28 -28
  95. package/plugins/core/platforms.md +19 -19
  96. package/plugins/core/scenario.md +48 -48
  97. package/plugins/core/settings.md +24 -24
  98. package/plugins/core/stack.md +39 -39
  99. package/plugins/core/state.md +30 -30
  100. package/plugins/core/storage.md +56 -56
  101. package/plugins/core/system.md +37 -37
  102. package/plugins/core/vendors.md +19 -19
  103. package/plugins/entities/entities.md +16 -16
  104. package/plugins/entities/wallet.md +27 -27
  105. package/plugins/font/montserrat.md +16 -16
  106. package/plugins/game/checkers.md +38 -38
  107. package/plugins/platform/android.md +17 -17
  108. package/plugins/platform/electron.md +21 -21
  109. package/plugins/platform/metric.md +23 -23
  110. package/plugins/rpg/damage.md +22 -22
  111. package/plugins/rpg/hit.md +24 -24
  112. package/plugins/rpg/skills.md +26 -26
  113. package/plugins/save/auto.md +26 -26
  114. package/plugins/save/continue.md +23 -23
  115. package/plugins/save/quick.md +24 -24
  116. package/plugins/save/save.md +37 -37
  117. package/plugins/scales/health.md +17 -17
  118. package/plugins/scales/mana.md +17 -17
  119. package/plugins/scales/scales.md +31 -31
  120. package/plugins/scenario/autoread.md +36 -36
  121. package/plugins/scenario/choose.md +74 -65
  122. package/plugins/scenario/fastforward.md +46 -46
  123. package/plugins/scenario/history.md +41 -41
  124. package/plugins/scenario/pause.md +27 -27
  125. package/plugins/scenario/point_and_click.md +51 -51
  126. package/plugins/scenario/qte.md +54 -54
  127. package/plugins/scenario/random.md +17 -17
  128. package/plugins/settings/filter.md +19 -19
  129. package/plugins/settings/potato.md +22 -22
  130. package/plugins/settings/ratio.md +19 -19
  131. package/plugins/settings/textsize.md +19 -19
  132. package/plugins/settings/volume.md +21 -21
  133. package/plugins/text/inject.md +22 -22
  134. package/plugins/text/locs.md +36 -36
  135. package/plugins/text/meet.md +19 -19
  136. package/plugins/text/smooth.md +33 -33
  137. package/plugins/text/text.md +76 -69
  138. package/plugins/text/wall.md +20 -20
  139. package/plugins/time/date.md +22 -22
  140. package/plugins/time/time.md +23 -23
  141. package/plugins/vars/counters.md +28 -28
  142. package/plugins/vars/flags.md +24 -24
  143. package/plugins/vars/vars.md +29 -29
  144. package/plugins/views/achievement.md +44 -44
  145. package/plugins/views/comment.md +31 -31
  146. package/plugins/views/controls.hints.md +34 -34
  147. package/plugins/views/cursor.md +19 -19
  148. package/plugins/views/fps.md +33 -33
  149. package/plugins/views/gamepad.debug.md +32 -32
  150. package/plugins/views/settings.md +39 -39
  151. package/plugins/views/video.md +37 -37
  152. package/plugins/views.scenario/choose.md +41 -41
  153. package/plugins/views.scenario/interface.controls.md +31 -31
  154. package/plugins/views.scenario/interface.fastforward.md +29 -29
  155. package/plugins/views.scenario/interface.md +74 -74
  156. package/plugins/views.scenario/point_and_click.md +39 -39
  157. package/plugins/views.scenario/qte.md +51 -51
  158. package/plugins/views.screens/checkers.md +35 -35
  159. package/plugins/views.screens/confirm.md +35 -35
  160. package/plugins/views.screens/credits.md +31 -31
  161. package/plugins/views.screens/disclaimer.md +42 -42
  162. package/plugins/views.screens/eula.md +37 -37
  163. package/plugins/views.screens/gallery.full.md +41 -41
  164. package/plugins/views.screens/gallery.md +75 -75
  165. package/plugins/views.screens/gamemenu.md +41 -41
  166. package/plugins/views.screens/history.md +39 -39
  167. package/plugins/views.screens/intro.md +32 -32
  168. package/plugins/views.screens/loading.md +30 -30
  169. package/plugins/views.screens/mainmenu.md +49 -49
  170. package/plugins/views.screens/mainmenu.socials.md +25 -25
  171. package/plugins/views.screens/save.md +66 -66
  172. package/plugins/views.screens/settings.defaults.md +37 -37
  173. package/plugins/views.screens/settings.md +40 -40
  174. package/scenario.catalog/README.md +13 -13
  175. package/scenario.catalog/index.md +35 -35
  176. package/scenario.catalog/stubs/achievement.md +4 -4
  177. package/scenario.catalog/stubs/audio.ambient.md +4 -4
  178. package/scenario.catalog/stubs/audio.music.md +4 -4
  179. package/scenario.catalog/stubs/audio.sound.md +4 -4
  180. package/scenario.catalog/stubs/audio.voice.md +4 -4
  181. package/scenario.catalog/stubs/bl.animation.md +5 -5
  182. package/scenario.catalog/stubs/bl.bg.md +5 -5
  183. package/scenario.catalog/stubs/bl.clip.md +5 -5
  184. package/scenario.catalog/stubs/bl.fill.md +5 -5
  185. package/scenario.catalog/stubs/bl.filter.md +5 -5
  186. package/scenario.catalog/stubs/bl.mask.md +5 -5
  187. package/scenario.catalog/stubs/bl.scale.md +5 -5
  188. package/scenario.catalog/stubs/bl.sprite.md +5 -5
  189. package/scenario.catalog/stubs/bl.text.md +5 -5
  190. package/scenario.catalog/stubs/bl.video.md +5 -5
  191. package/scenario.catalog/stubs/choose.block.md +7 -7
  192. package/scenario.catalog/stubs/choose.md +4 -4
  193. package/scenario.catalog/stubs/choose.option.md +7 -7
  194. package/scenario.catalog/stubs/comment.md +5 -5
  195. package/scenario.catalog/stubs/counter.md +5 -5
  196. package/scenario.catalog/stubs/credits.md +4 -4
  197. package/scenario.catalog/stubs/date.md +4 -4
  198. package/scenario.catalog/stubs/disclaimer.md +5 -5
  199. package/scenario.catalog/stubs/fl.animation.md +5 -5
  200. package/scenario.catalog/stubs/fl.bg.md +5 -5
  201. package/scenario.catalog/stubs/fl.clip.md +5 -5
  202. package/scenario.catalog/stubs/fl.fill.md +5 -5
  203. package/scenario.catalog/stubs/fl.filter.md +5 -5
  204. package/scenario.catalog/stubs/fl.mask.md +5 -5
  205. package/scenario.catalog/stubs/fl.scale.md +5 -5
  206. package/scenario.catalog/stubs/fl.sprite.md +5 -5
  207. package/scenario.catalog/stubs/fl.text.md +5 -5
  208. package/scenario.catalog/stubs/fl.video.md +5 -5
  209. package/scenario.catalog/stubs/flag.md +13 -13
  210. package/scenario.catalog/stubs/interface.md +4 -4
  211. package/scenario.catalog/stubs/intro.md +4 -4
  212. package/scenario.catalog/stubs/mainmenu.md +4 -4
  213. package/scenario.catalog/stubs/ml.animation.md +5 -5
  214. package/scenario.catalog/stubs/ml.bg.md +5 -5
  215. package/scenario.catalog/stubs/ml.clip.md +5 -5
  216. package/scenario.catalog/stubs/ml.fill.md +5 -5
  217. package/scenario.catalog/stubs/ml.filter.md +5 -5
  218. package/scenario.catalog/stubs/ml.mask.md +5 -5
  219. package/scenario.catalog/stubs/ml.scale.md +5 -5
  220. package/scenario.catalog/stubs/ml.sprite.md +5 -5
  221. package/scenario.catalog/stubs/ml.text.md +5 -5
  222. package/scenario.catalog/stubs/ml.video.md +5 -5
  223. package/scenario.catalog/stubs/other.md +6 -6
  224. package/scenario.catalog/stubs/pause.md +5 -5
  225. package/scenario.catalog/stubs/point-and-click.block.md +4 -4
  226. package/scenario.catalog/stubs/point-and-click.md +4 -4
  227. package/scenario.catalog/stubs/point-and-click.option.md +4 -4
  228. package/scenario.catalog/stubs/qte.md +4 -4
  229. package/scenario.catalog/stubs/random.md +4 -4
  230. package/scenario.catalog/stubs/random.option.md +4 -4
  231. package/scenario.catalog/stubs/save.auto.md +4 -4
  232. package/scenario.catalog/stubs/save.md +5 -5
  233. package/scenario.catalog/stubs/scenario.md +4 -4
  234. package/scenario.catalog/stubs/settings.defaults.md +4 -4
  235. package/scenario.catalog/stubs/stack.md +4 -4
  236. package/scenario.catalog/stubs/text.meet.md +4 -4
  237. package/scenario.catalog/stubs/text.wall.md +4 -4
  238. package/scenario.catalog/stubs/time.md +4 -4
  239. package/scenario.catalog/stubs/ul.animation.md +5 -5
  240. package/scenario.catalog/stubs/ul.bg.md +5 -5
  241. package/scenario.catalog/stubs/ul.clip.md +5 -5
  242. package/scenario.catalog/stubs/ul.fill.md +5 -5
  243. package/scenario.catalog/stubs/ul.filter.md +5 -5
  244. package/scenario.catalog/stubs/ul.mask.md +5 -5
  245. package/scenario.catalog/stubs/ul.scale.md +5 -5
  246. package/scenario.catalog/stubs/ul.sprite.md +5 -5
  247. package/scenario.catalog/stubs/ul.text.md +5 -5
  248. package/scenario.catalog/stubs/video.md +4 -4
  249. package/scenario.catalog/stubs/wallet.md +4 -4
  250. package/scenario.guide/README.md +38 -38
  251. package/scenario.guide/audio.md +11 -11
  252. package/scenario.guide/canvas.md +23 -23
  253. package/scenario.guide/choose.md +28 -28
  254. package/scenario.guide/dialogue.md +23 -23
  255. package/scenario.guide/flow.md +21 -21
  256. package/scenario.guide/point-and-click.md +12 -12
  257. package/scenario.guide/qte-random.md +20 -20
  258. package/scenario.guide/vars.md +19 -19
  259. package/scenario.guide/views.md +20 -20
  260. package/CHANGELOG.md +0 -383
  261. package/architecture.md +0 -566
@@ -1,76 +1,76 @@
1
1
  # plugins/views.screens/disclaimer/
2
2
 
3
- Пакет: `@vnejs/plugins.views.screens.disclaimer` · namespace: `DISCLAIMER`
3
+ Package: `@vnejs/plugins.views.screens.disclaimer` · namespace: `DISCLAIMER`
4
4
 
5
- Полноэкранный дисклеймер по сценарной команде: заголовок, текст и кнопка принятия. Затемнение без фоновой картинки. Принятие не сохраняется — экран показывается при каждом вызове.
5
+ Full-screen disclaimer via a scenario command: title, text, and accept button. Dim overlay, no background image. Acceptance is not saved — the screen shows on every call.
6
6
 
7
- ## События
7
+ ## Events
8
8
 
9
- Payloads и результаты хендлеров типизированы через module augmentation контракта (`VneEventPayloadMap` / `VneEventResultMap`); типы — в `@vnejs/contracts.views.screens.disclaimer`.
9
+ Handler payloads and results are typed through module augmentation of the contract (`VneEventPayloadMap` / `VneEventResultMap`). The types live in `@vnejs/contracts.views.screens.disclaimer`.
10
10
 
11
- | Ключ | Строка | Смысл |
12
- | -------------- | ----------------------------- | ----------------------------------------------- |
13
- | `SHOW` | `vne:disclaimer:show` | Показать UI. Payload: `{ id }`. |
14
- | `HIDE` | `vne:disclaimer:hide` | Скрыть UI. |
15
- | `UPDATE` | `vne:disclaimer:update` | Обновить состояние или отображение. |
16
- | `UPDATE_FAST` | `vne:disclaimer:update_fast` | Быстрое обновление отображения. |
17
- | `UPDATE_FORCE` | `vne:disclaimer:update_force` | Перерисовать view с `isForce`, стейт не меняет. |
18
- | `UPDATE_STATE` | `vne:disclaimer:update_state` | Слить partial в стейт контроллера. |
19
- | `ACCEPT` | `vne:disclaimer:accept` | Пользователь принял дисклеймер → HIDE → next. |
11
+ | Key | String | Meaning |
12
+ | -------------- | ----------------------------- | ------------------------------------------------------ |
13
+ | `SHOW` | `vne:disclaimer:show` | Show the UI. Payload: `{ id }`. |
14
+ | `HIDE` | `vne:disclaimer:hide` | Hide the UI. |
15
+ | `UPDATE` | `vne:disclaimer:update` | Update state or display. |
16
+ | `UPDATE_FAST` | `vne:disclaimer:update_fast` | Fast display update. |
17
+ | `UPDATE_FORCE` | `vne:disclaimer:update_force` | Redraw the view with `isForce`; state does not change. |
18
+ | `UPDATE_STATE` | `vne:disclaimer:update_state` | Merge a partial into controller state. |
19
+ | `ACCEPT` | `vne:disclaimer:accept` | User accepted disclaimer → HIDE → next. |
20
20
 
21
- ## Константы
21
+ ## Constants
22
22
 
23
- - **`EXEC_ACTIONS.SHOW`** — `"show"`: действие сценарной команды.
24
- - **`LOGS_ACTIONS.SHOW` / `ACCEPT`** — метки логов при показе и принятии.
23
+ - **`EXEC_ACTIONS.SHOW`** — `"show"`: scenario command action.
24
+ - **`LOGS_ACTIONS.SHOW` / `ACCEPT`** — log labels on show and accept.
25
25
 
26
- ## Параметры
26
+ ## Parameters
27
27
 
28
- | Ключ | Тип | Смысл |
28
+ | Key | Type | Meaning |
29
29
  | ------------ | -------- | -------------------------------------------------------------- |
30
- | `TRANSITION` | `number` | Длительность анимации экрана. |
31
- | `ZINDEX` | `number` | z-index экрана. |
32
- | `LOC_LABEL` | `string` | Метка локализации (`disclaimer`). |
30
+ | `TRANSITION` | `number` | Screen animation duration. |
31
+ | `ZINDEX` | `number` | Screen z-index. |
32
+ | `LOC_LABEL` | `string` | Localization label (`disclaimer`). |
33
33
  | `VIEW_PROPS` | `object` | Layout: screen (`withDark`/`withBlur`), title, text, controls. |
34
34
 
35
- ## Настройки
35
+ ## Settings
36
36
 
37
- Нет.
37
+ None.
38
38
 
39
- ## Модули
39
+ ## Modules
40
40
 
41
- | Модуль | Зона ответственности |
42
- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
43
- | `disclaimer.controller` | SHOW/HIDE; пустой `controls` на `ZINDEX`, чтобы стопорить слои ниже. |
44
- | `disclaimer.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `DISCLAIMER.ACCEPT` → `HIDE`, `emit SCENARIO.NEXT`; PUSH/POP на SHOW/HIDE. |
45
- | `disclaimer` | `$ disclaimer show <id>` → SHOW. |
46
- | `disclaimer.view` | React UI: title / text / accept из locs. |
41
+ | Module | Role |
42
+ | ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
43
+ | `disclaimer.controller` | SHOW/HIDE; empty `controls` on `ZINDEX` to block lower layers. |
44
+ | `disclaimer.controller.accept` | Extends `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `DISCLAIMER.ACCEPT` → `HIDE`, `emit SCENARIO.NEXT`; PUSH/POP on SHOW/HIDE. |
45
+ | `disclaimer` | `$ disclaimer show <id>` → SHOW. |
46
+ | `disclaimer.view` | React UI: title / text / accept from locs. |
47
47
 
48
- ## Локализация
48
+ ## Localization
49
49
 
50
- Файл `media/locs/{lang}/views/disclaimer.json`. Ключи:
50
+ File `media/locs/{lang}/views/disclaimer.json`. Keys:
51
51
 
52
- | Ключ | Смысл |
53
- | ------------ | --------------------------------------------- |
54
- | `accept` | Текст кнопки |
55
- | `{id}.title` | Заголовок для id |
56
- | `{id}.text` | Текст для id (можно многострочный через `\n`) |
52
+ | Key | Meaning |
53
+ | ------------ | ----------------------------------- |
54
+ | `accept` | Button text |
55
+ | `{id}.title` | Title for id |
56
+ | `{id}.text` | Text for id (multiline via `\n` ok) |
57
57
 
58
- ## Сценарий
58
+ ## Scenario
59
59
 
60
60
  ```vne
61
61
  $ disclaimer show setting
62
62
  $ disclaimer show qte
63
63
  ```
64
64
 
65
- ## Близкие плагины
65
+ ## Related plugins
66
66
 
67
67
  ### plugins/core/
68
68
 
69
69
  - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …)
70
70
  - [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
71
71
 
72
- ### Остальные
72
+ ### Other
73
73
 
74
74
  - [controls.md](../controls/controls.md) — `CONTROLS`: CONST.BUTTONS.ACCEPT, CONST.BUTTONS.INTERACT
75
- - [intro.md](./intro.md) — `INTRO`: похожий сценарный экран
76
- - [confirm.md](./confirm.md) — `CONFIRM`: затемнение и кнопки
75
+ - [intro.md](./intro.md) — `INTRO`: similar scenario screen
76
+ - [confirm.md](./confirm.md) — `CONFIRM`: dim overlay and buttons
@@ -1,54 +1,54 @@
1
1
  # plugins/views.screens/eula/
2
2
 
3
- Пакет: `@vnejs/plugins.views.screens.eula` · namespace: `EULA`
3
+ Package: `@vnejs/plugins.views.screens.eula` · namespace: `EULA`
4
4
 
5
- Экран лицензионного соглашения перед главным меню, если версия ещё не принята.
5
+ License agreement screen before the main menu, if the version is not accepted yet.
6
6
 
7
- ## События
7
+ ## Events
8
8
 
9
- Payloads и результаты хендлеров типизированы через module augmentation контракта (`VneEventPayloadMap` / `VneEventResultMap`); типы — в `@vnejs/contracts.views.screens.eula`.
9
+ Handler payloads and results are typed through module augmentation of the contract (`VneEventPayloadMap` / `VneEventResultMap`). The types live in `@vnejs/contracts.views.screens.eula`.
10
10
 
11
- | Ключ | Строка | Смысл |
12
- | -------------- | ----------------------- | ------------------------------------------------------------------------ |
13
- | `UPDATE` | `vne:eula:update` | Обновить состояние или отображение. |
14
- | `UPDATE_FAST` | `vne:eula:update_fast` | Быстрый UPDATE view без анимации (стрелки по тексту). |
15
- | `UPDATE_FORCE` | `vne:eula:update_force` | Перерисовать view с `isForce`, стейт не меняет. |
16
- | `UPDATE_STATE` | `vne:eula:update_state` | Слить `{ currentArrowVerticalItem }` в стейт controller без UPDATE view. |
17
- | `SHOW` | `vne:eula:show` | Показать UI или слой. |
18
- | `HIDE` | `vne:eula:hide` | Скрыть UI или слой. |
19
- | `ACCEPT` | `vne:eula:accept` | Событие `ACCEPT` namespace плагина. |
20
- | `EXIT` | `vne:eula:exit` | Событие `EXIT` namespace плагина. |
11
+ | Key | String | Meaning |
12
+ | -------------- | ----------------------- | ------------------------------------------------------------------------------- |
13
+ | `UPDATE` | `vne:eula:update` | Update state or display. |
14
+ | `UPDATE_FAST` | `vne:eula:update_fast` | Fast UPDATE view without animation (arrows over text). |
15
+ | `UPDATE_FORCE` | `vne:eula:update_force` | Redraw the view with `isForce`; state does not change. |
16
+ | `UPDATE_STATE` | `vne:eula:update_state` | Merge `{ currentArrowVerticalItem }` into controller state without UPDATE view. |
17
+ | `SHOW` | `vne:eula:show` | Show the UI or layer. |
18
+ | `HIDE` | `vne:eula:hide` | Hide the UI or layer. |
19
+ | `ACCEPT` | `vne:eula:accept` | Plugin namespace `ACCEPT` event. |
20
+ | `EXIT` | `vne:eula:exit` | Plugin namespace `EXIT` event. |
21
21
 
22
- ## Константы
22
+ ## Constants
23
23
 
24
- Нет.
24
+ None.
25
25
 
26
- ## Параметры
26
+ ## Parameters
27
27
 
28
- | Ключ | Тип | Смысл |
29
- | --------- | --------- | ----------------------------------------------------------- |
30
- | `ENABLED` | `boolean` | Показывать экран при `MAINMENU.SHOW`; по умолчанию `false`. |
31
- | `LANGS` | `string` | Значение по умолчанию: "LANGS". |
28
+ | Key | Type | Meaning |
29
+ | --------- | --------- | ---------------------------------------------------- |
30
+ | `ENABLED` | `boolean` | Show the screen on `MAINMENU.SHOW`; default `false`. |
31
+ | `LANGS` | `string` | Default: "LANGS". |
32
32
 
33
- ## Настройки
33
+ ## Settings
34
34
 
35
- | Ключ | Тип | Смысл |
36
- | ------------------------------------------------ | -------- | ---------------------------------------------------------- |
37
- | `ACCEPTED_VERSION` (`vne:eula:accepted_version`) | `string` | Настройка `vne:eula:accepted_version` в `shared.settings`. |
38
- | `LANG` (`vne:eula:lang`) | `string` | Настройка `vne:eula:lang` в `shared.settings`. |
35
+ | Key | Type | Meaning |
36
+ | ------------------------------------------------ | -------- | --------------------------------------------------------- |
37
+ | `ACCEPTED_VERSION` (`vne:eula:accepted_version`) | `string` | `vne:eula:accepted_version` setting in `shared.settings`. |
38
+ | `LANG` (`vne:eula:lang`) | `string` | `vne:eula:lang` setting in `shared.settings`. |
39
39
 
40
- ## Модули
40
+ ## Modules
41
41
 
42
- | Модуль | Зона ответственности |
43
- | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
44
- | `eula.controller` | SHOW/HIDE; `BACK` → `EXIT`; зеркалит `UPDATE_STATE` / `UPDATE_FAST`; lang/locs. `onSettingChange`: при `SETTINGS.EULA.LANG` и `isShow` — `lang` + сброс `currentArrowVerticalItem`. |
45
- | `eula.controller.arrows` | Наследует `@vnejs/module.controller.arrows.vertical`: `ARROW_UP` / `ARROW_BOTTOM` по строкам текста; пустые строки через `isArrowItemAvailable`; смена `SETTINGS.EULA.LANG` сбрасывает индекс; PUSH/POP на SHOW/HIDE; эмитит `UPDATE_STATE` с `{ currentArrowVerticalItem }` и `UPDATE_FAST`. На `HIDE.CLEANUP` `currentArrowVerticalItem` в стейте становится `undefined`. |
46
- | `eula.controller.accept` | Наследует `@vnejs/module.controller.accept`: только `ACCEPT` (`IS_INTERACT_ENABLED = false`) → `EULA.ACCEPT` → `ACCEPTED_VERSION`, `HIDE`; PUSH/POP на SHOW/HIDE. |
47
- | `eula.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }`. |
48
- | `eula` | В `setup` — `SETTINGS.INIT` для версии и языка; `MAINMENU.SHOW` → `SHOW` (если версия не принята); `EXIT` → `SYSTEM.CLOSE`. |
49
- | `eula.view` | Подмодуль `view` плагина. |
42
+ | Module | Role |
43
+ | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
44
+ | `eula.controller` | SHOW/HIDE; `BACK` → `EXIT`; mirrors `UPDATE_STATE` / `UPDATE_FAST`; lang/locs. `onSettingChange`: on `SETTINGS.EULA.LANG` when `isShow` — `lang` + reset `currentArrowVerticalItem`. |
45
+ | `eula.controller.arrows` | Extends `@vnejs/module.controller.arrows.vertical`: `ARROW_UP` / `ARROW_BOTTOM` over text lines; empty lines via `isArrowItemAvailable`; `SETTINGS.EULA.LANG` change resets index; PUSH/POP on SHOW/HIDE; emits `UPDATE_STATE` with `{ currentArrowVerticalItem }` and `UPDATE_FAST`. On `HIDE.CLEANUP` `currentArrowVerticalItem` in state becomes `undefined`. |
46
+ | `eula.controller.accept` | Extends `@vnejs/module.controller.accept`: only `ACCEPT` (`IS_INTERACT_ENABLED = false`) → `EULA.ACCEPT` → `ACCEPTED_VERSION`, `HIDE`; PUSH/POP on SHOW/HIDE. |
47
+ | `eula.hide.state` | Extends `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` with `{ isForce: true }`. |
48
+ | `eula` | In `setup` — `SETTINGS.INIT` for version and language; `MAINMENU.SHOW` → `SHOW` (if version not accepted); `EXIT` → `SYSTEM.CLOSE`. |
49
+ | `eula.view` | Plugin `view` submodule. |
50
50
 
51
- ## Близкие плагины
51
+ ## Related plugins
52
52
 
53
53
  ### plugins/core/
54
54
 
@@ -57,7 +57,7 @@ Payloads и результаты хендлеров типизированы ч
57
57
  - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
58
58
  - [system.md](../core/system.md) — `SYSTEM`: EVENTS.CLOSE
59
59
 
60
- ### Остальные
60
+ ### Other
61
61
 
62
62
  - [controls.md](../controls/controls.md) — `CONTROLS`: CONST.BUTTONS.ARROW_UP, CONST.BUTTONS.ARROW_BOTTOM, CONST.BUTTONS.ACCEPT, CONST.BUTTONS.BACK
63
63
  - [mainmenu.md](./mainmenu.md) — `MAINMENU`: EVENTS.SHOW
@@ -1,65 +1,65 @@
1
1
  # plugins/views.screens/gallery.full/
2
2
 
3
- Пакет: `@vnejs/plugins.views.screens.gallery.full` · namespace: `GALLERY_FULL_VIEW`
3
+ Package: `@vnejs/plugins.views.screens.gallery.full` · namespace: `GALLERY_FULL_VIEW`
4
4
 
5
- Полноэкранный просмотр выбранного изображения из галереи.
5
+ Full-screen view of the selected gallery image.
6
6
 
7
- `GALLERY.CHOOSE` с `isOpened: false` не открывает full-view. Залоченные вариации не грузят media: пустой `imageSrc` и `withBackgroundBlur`.
7
+ `GALLERY.CHOOSE` with `isOpened: false` does not open full-view. Locked variations do not load media: empty `imageSrc` and `withBackgroundBlur`.
8
8
 
9
- Для вариаций с `layerChildType` фона src берётся через `LAYER_BG.SRC_GET` с `args.overlays` из выбранного варианта галереи.
9
+ For background variations with `layerChildType`, src comes from `LAYER_BG.SRC_GET` with `args.overlays` from the selected gallery variant.
10
10
 
11
- ## События
11
+ ## Events
12
12
 
13
- Payloads и результаты хендлеров типизированы через module augmentation контракта (`VneEventPayloadMap` / `VneEventResultMap`); типы — в `@vnejs/contracts.views.screens.gallery.full`.
13
+ Handler payloads and results are typed through module augmentation of the contract (`VneEventPayloadMap` / `VneEventResultMap`). The types live in `@vnejs/contracts.views.screens.gallery.full`.
14
14
 
15
- | Ключ | Строка | Смысл |
16
- | -------------- | ------------------------------- | ----------------------------------------------- |
17
- | `SHOW` | `vne:gallery_full:show` | Показать UI или слой. |
18
- | `HIDE` | `vne:gallery_full:hide` | Скрыть UI или слой. |
19
- | `UPDATE` | `vne:gallery_full:update` | Обновить состояние или отображение. |
20
- | `UPDATE_FAST` | `vne:gallery_full:update_fast` | Быстрое обновление отображения. |
21
- | `UPDATE_FORCE` | `vne:gallery_full:update_force` | Перерисовать view с `isForce`, стейт не меняет. |
22
- | `UPDATE_STATE` | `vne:gallery_full:update_state` | Слить partial в стейт контроллера и модулей, подписанных на событие. |
23
- | `LOAD` | `vne:gallery_full:load` | Загрузить вариацию. Payload `{ pageIndex }`. |
24
- | `LOAD_SRC` | `vne:gallery_full:load_src` | Получить src вариации. Payload — вариант, результат — src. |
25
- | `PREV` | `vne:gallery_full:prev` | Предыдущая вариация (`EVENT_PAGE_PREV`). |
26
- | `NEXT` | `vne:gallery_full:next` | Следующая вариация (`EVENT_PAGE_NEXT`). |
27
- | `PAGE_SET` | `vne:gallery_full:page_set` | Абсолютный прыжок вариации (`{ pageIndex }`). |
15
+ | Key | String | Meaning |
16
+ | -------------- | ------------------------------- | -------------------------------------------------------------------------- |
17
+ | `SHOW` | `vne:gallery_full:show` | Show the UI or layer. |
18
+ | `HIDE` | `vne:gallery_full:hide` | Hide the UI or layer. |
19
+ | `UPDATE` | `vne:gallery_full:update` | Update state or display. |
20
+ | `UPDATE_FAST` | `vne:gallery_full:update_fast` | Fast display update. |
21
+ | `UPDATE_FORCE` | `vne:gallery_full:update_force` | Redraw the view with `isForce`; state does not change. |
22
+ | `UPDATE_STATE` | `vne:gallery_full:update_state` | Merge a partial into controller state and modules subscribed to the event. |
23
+ | `LOAD` | `vne:gallery_full:load` | Load a variation. Payload `{ pageIndex }`. |
24
+ | `LOAD_SRC` | `vne:gallery_full:load_src` | Get variation src. Payload — variant, result — src. |
25
+ | `PREV` | `vne:gallery_full:prev` | Previous variation (`EVENT_PAGE_PREV`). |
26
+ | `NEXT` | `vne:gallery_full:next` | Next variation (`EVENT_PAGE_NEXT`). |
27
+ | `PAGE_SET` | `vne:gallery_full:page_set` | Absolute variation jump (`{ pageIndex }`). |
28
28
 
29
- ## Константы
29
+ ## Constants
30
30
 
31
- Нет.
31
+ None.
32
32
 
33
- ## Параметры
33
+ ## Parameters
34
34
 
35
- | Ключ | Тип | Смысл |
36
- | ------------ | -------- | ------------------------------------ |
37
- | `TRANSITION` | `string` | Значение по умолчанию: "TRANSITION". |
35
+ | Key | Type | Meaning |
36
+ | ------------ | -------- | ---------------------- |
37
+ | `TRANSITION` | `string` | Default: "TRANSITION". |
38
38
 
39
- ## Настройки
39
+ ## Settings
40
40
 
41
- Нет.
41
+ None.
42
42
 
43
- ## Модули
43
+ ## Modules
44
44
 
45
- | Модуль | Зона ответственности |
46
- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------- |
47
- | `gallery.full.bridge` | `GALLERY.CHOOSE` с `isOpened: true` → `SHOW`. |
48
- | `gallery.full.controller` | `onShowBefore` пишет `itemFullName` / `itemMediaType` / `itemLayerChildType` / `variants` в `UPDATE_STATE` и эмитит `LOAD` `{ pageIndex: 0 }`. `onHideAfter` сбрасывает этот контекст через `UPDATE_STATE`. |
49
- | `gallery.full.load` | `LOAD` → `onLoad` по `state.variants`; для открытой вариации эмитит `LOAD_SRC`. `UPDATE_STATE` сливает partial в стейт модуля. |
50
- | `gallery.full.load.src` | `LOAD_SRC` → `loadVariationSrc`: media по имени или `LAYER_BG.SRC_GET` для фона. |
51
- | `gallery.full.variation` | Наследует `@vnejs/module.controller.pages`: `EVENT_PAGE_PREV`/`NEXT`/`SET` = `PREV`/`NEXT`/`PAGE_SET`; стейт `pageIndex` / `pagesCount`; `applyPage` → `LOAD` `{ pageIndex }`. |
52
- | `gallery.full.controller.arrows` | `onArrowLeft` / `onArrowRight` → `PREV` / `NEXT`; PUSH/POP на SHOW/HIDE. |
53
- | `gallery.full.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
54
- | `gallery.full.view` | Подмодуль `full.view` плагина. |
45
+ | Module | Role |
46
+ | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
47
+ | `gallery.full.bridge` | `GALLERY.CHOOSE` with `isOpened: true` → `SHOW`. |
48
+ | `gallery.full.controller` | `onShowBefore` writes `itemFullName` / `itemMediaType` / `itemLayerChildType` / `variants` into `UPDATE_STATE` and emits `LOAD` `{ pageIndex: 0 }`. `onHideAfter` resets this context via `UPDATE_STATE`. |
49
+ | `gallery.full.load` | `LOAD` → `onLoad` by `state.variants`; for an open variation emits `LOAD_SRC`. `UPDATE_STATE` merges a partial into module state. |
50
+ | `gallery.full.load.src` | `LOAD_SRC` → `loadVariationSrc`: media by name or `LAYER_BG.SRC_GET` for background. |
51
+ | `gallery.full.variation` | Extends `@vnejs/module.controller.pages`: `EVENT_PAGE_PREV`/`NEXT`/`SET` = `PREV`/`NEXT`/`PAGE_SET`; state `pageIndex` / `pagesCount`; `applyPage` → `LOAD` `{ pageIndex }`. |
52
+ | `gallery.full.controller.arrows` | `onArrowLeft` / `onArrowRight` → `PREV` / `NEXT`; PUSH/POP on SHOW/HIDE. |
53
+ | `gallery.full.hide.controls` | Extends `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP on SHOW/HIDE. |
54
+ | `gallery.full.view` | Plugin `full.view` submodule. |
55
55
 
56
- ## Близкие плагины
56
+ ## Related plugins
57
57
 
58
58
  ### plugins/core/
59
59
 
60
- — нет
60
+ — None
61
61
 
62
- ### Остальные
62
+ ### Other
63
63
 
64
64
  - [controls.md](../controls/controls.md) — `CONTROLS`: CONST.BUTTONS.BACK, CONST.BUTTONS.MENU, CONST.BUTTONS.GAMEMENU
65
65
  - [gallery.md](./gallery.md) — `GALLERY`: EVENTS.CHOOSE
@@ -1,80 +1,80 @@
1
1
  # plugins/views.screens/gallery/
2
2
 
3
- Пакет: `@vnejs/plugins.views.screens.gallery` · namespace: `GALLERY`
4
-
5
- Галерея CG с вкладками и сеткой; открытые изображения отмечаются в storage.
6
-
7
- ACCEPT/INTERACT эмитит `CHOOSE` только для выбранного открытого слота (`isOpened`, не stub); без выделения или на залоченном слоте — no-op. Клик мыши уже вешается только на открытые слоты.
8
-
9
- Вариации вкладки (`GalleryTabContentVariation`) несут `overlays: Record<string, string | number>` — та же карта, что у [bg.md](../canvas/bg.md) args; значения нормализуются в строки перед показом / full-view.
10
-
11
- ## События
12
-
13
- Payloads и результаты хендлеров типизированы через module augmentation контракта (`VneEventPayloadMap` / `VneEventResultMap`); типы — в `@vnejs/contracts.views.screens.gallery`.
14
-
15
- | Ключ | Строка | Смысл |
16
- | ------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
17
- | `OPEN` | `vne:gallery:open` | Открыть экран или панель. |
18
- | `CHECK` | `vne:gallery:check` | Проверить состояние или наличие ресурса. |
19
- | `CLEAR` | `vne:gallery:clear` | Очистить накопленное состояние. |
20
- | `SHOW` | `vne:gallery:show` | Показать UI или слой. |
21
- | `HIDE` | `vne:gallery:hide` | Скрыть UI или слой. |
22
- | `PAGE_SET` | `vne:gallery:page_set` | Абсолютный прыжок пагинации UI (`{ pageIndex }`). |
23
- | `TAB_SET` | `vne:gallery:tab_set` | Выбрать вкладку галереи (`{ tab }`). |
24
- | `UPDATE` | `vne:gallery:update` | Обновить состояние или отображение. |
25
- | `UPDATE_FAST` | `vne:gallery:update_fast` | Перерисовать view с `isFast`, без смены стейта. |
26
- | `UPDATE_FORCE` | `vne:gallery:update_force` | Перерисовать view с `isForce`, стейт не меняет. |
27
- | `PRELOAD` | `vne:gallery:preload` | Событие `PRELOAD` namespace плагина. |
28
- | `CHOOSE` | `vne:gallery:choose` | Событие `CHOOSE` namespace плагина. |
29
- | `ACCEPT` | `vne:gallery:accept` | ACCEPT / INTERACT по выбранному слоту. |
30
- | `UPDATE_STATE` | `vne:gallery:update_state` | Слить partial в стейт (`grid*`, `tab`, `pageIndex` / `pagesCount`, …). |
31
- | `GRID_NEXT` | `vne:gallery:grid_next` | Край сетки вперёд; `gallery.controller.pages` слушает как `EVENT_PAGE_NEXT`. |
32
- | `GRID_PREV` | `vne:gallery:grid_prev` | Край сетки назад; `gallery.controller.pages` слушает как `EVENT_PAGE_PREV`. |
33
- | `GRID_CLEAR` | `vne:gallery:grid_clear` | Сбросить выбор ячейки: `gridRow` / `gridColumn` → `null` (+ `UPDATE_STATE`). |
34
- | `GRID_UPDATE_ITEMS` | `vne:gallery:grid_update_items` | Пересобрать сетку из стейта (без payload) → `UPDATE_STATE` `{ gridItems }`. Meta — заранее через `UPDATE_STATE`. |
35
- | `PAGE_ITEMS_GET` | `vne:gallery:page_items_get` | Собрать UI-слот из content (`CHECK` + media); возврат item. Вместо `ITEM_CREATE`. |
36
-
37
- ## Константы
38
-
39
- Нет.
40
-
41
- ## Параметры
42
-
43
- | Ключ | Тип | Смысл |
44
- | ------------ | -------- | --------------------------------------------------------------------------------- |
45
- | `TABS` | `string` | Значение по умолчанию: "TABS". |
46
- | `BACKGROUND` | `string` | Значение по умолчанию: "save". |
47
- | `TRANSITION` | `string` | Значение по умолчанию: "TRANSITION". |
48
- | `ZINDEX` | `string` | Значение по умолчанию: "ZINDEX". |
49
- | `LOC_LABEL` | `string` | Имя метки или стартовой точки. |
50
- | `VIEW_PROPS` | `string` | Значение по умолчанию: "VIEW_PROPS". |
51
- | `ROWS` | `string` | Значение по умолчанию: "ROWS". |
52
- | `COLUMNS` | `string` | Значение по умолчанию: "COLUMNS". |
53
- | `AUDIO_NAME` | `string` | Имя трека на слое `view` при открытии экрана; пустая строка — без overlay-музыки. |
54
-
55
- ## Настройки
56
-
57
- Нет.
58
-
59
- ## Модули
60
-
61
- | Модуль | Зона ответственности |
62
- | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
63
- | `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`. |
64
- | `gallery.controller` | SHOW/HIDE по фазам `CONST.COMPONENTS.LIFECYCLE_PRIORITY`; на `SHOW.BEFORE` — `TAB_SET`. `UPDATE_STATE` / `UPDATE_FAST`; пустой `controls` на `ZINDEX`. |
65
- | `gallery.controller.bg` | Наследует `@vnejs/module.controller.bg`: `SHOW` + `LIFECYCLE_PRIORITY.SHOW.BEFORE` → `UPDATE_STATE` `{ bgSrc }`; PRELOAD → warm-cache фона; `MEMORY.CLEARED` при `isShow` → refresh `bgSrc` + `UPDATE_FAST`. |
66
- | `gallery.controller.preload` | PRELOAD — page 0 первого таба через `PAGE_ITEMS_GET`; `MEMORY.CLEARED` при `isShow` — текущая / соседние страницы + page 0 остальных табов (`getItemsOnPage` / `getMaxPagesCount` на лету). |
67
- | `gallery.controller.pages` | Наследует `@vnejs/module.controller.pages`: `EVENT_*` → `GALLERY`; `EVENT_PAGE_NEXT`/`PREV` = `GRID_NEXT`/`PREV`; `applyPage` → `UPDATE_STATE` `{ gridIndex, gridsCount }` + `GRID_UPDATE_ITEMS` + `MEMORY.CLEAR`; стейт `pageIndex` / `pagesCount` (пишет tabs). |
68
- | `gallery.controller.pages.items` | На `PAGE_ITEMS_GET` собирает UI-слот: `CHECK` + media (`MEDIA.LOAD`); возврат item. |
69
- | `gallery.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `ACCEPT` → `CHOOSE` только если слот открыт (`isOpened`, не stub); зеркалит `UPDATE_STATE` (`grid*`); PUSH/POP на SHOW/HIDE. |
70
- | `gallery.controller.grid` | Наследует `@vnejs/module.controller.arrows.grid`: четыре стрелки; `isDisableGridChangeVertical = true` (вертикаль не листает страницы); на краю колонок — `GRID_NEXT`/`PREV`; `GRID_CLEAR`; на `GRID_UPDATE_ITEMS` — `getGridItems` через `PAGE_ITEMS_GET` (stub’ы только для layout; в count и snap позиции не входят). На `HIDE.CLEANUP` `gridRow` / `gridColumn` в стейте становятся `undefined`. |
71
- | `gallery.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
72
- | `gallery.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }`. |
73
- | `gallery.controller.tabs` | Наследник `ModuleControllerTabs`: `TAB_SET` → `applyTab` + `onTabSet` (`pageIndex: 0`, `pagesCount`, `GRID_CLEAR`, `UPDATE_STATE` `{ gridIndex, gridsCount }`, `GRID_UPDATE_ITEMS`; при `isUpdateView` — `UPDATE_FAST` + `MEMORY.CLEAR`); TAB_PREV/TAB_NEXT → `TAB_SET`. |
74
- | `gallery` | Обрабатывает OPEN, CHECK, CLEAR. |
75
- | `gallery.view` | Подмодуль `view` плагина. |
76
-
77
- ## Близкие плагины
3
+ Package: `@vnejs/plugins.views.screens.gallery` · namespace: `GALLERY`
4
+
5
+ CG gallery with tabs and a grid; opened images are marked in storage.
6
+
7
+ ACCEPT/INTERACT emits `CHOOSE` only for the selected open slot (`isOpened`, not stub); with no selection or on a locked slot — no-op. Mouse click is wired only on open slots.
8
+
9
+ Tab variations (`GalleryTabContentVariation`) carry `overlays: Record<string, string | number>` — the same map as [bg.md](../canvas/bg.md) args; values normalize to strings before show / full-view.
10
+
11
+ ## Events
12
+
13
+ Handler payloads and results are typed through module augmentation of the contract (`VneEventPayloadMap` / `VneEventResultMap`). The types live in `@vnejs/contracts.views.screens.gallery`.
14
+
15
+ | Key | String | Meaning |
16
+ | ------------------- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
17
+ | `OPEN` | `vne:gallery:open` | Open the screen or panel. |
18
+ | `CHECK` | `vne:gallery:check` | Check state or resource presence. |
19
+ | `CLEAR` | `vne:gallery:clear` | Clear accumulated state. |
20
+ | `SHOW` | `vne:gallery:show` | Show the UI or layer. |
21
+ | `HIDE` | `vne:gallery:hide` | Hide the UI or layer. |
22
+ | `PAGE_SET` | `vne:gallery:page_set` | Absolute UI pagination jump (`{ pageIndex }`). |
23
+ | `TAB_SET` | `vne:gallery:tab_set` | Pick a gallery tab (`{ tab }`). |
24
+ | `UPDATE` | `vne:gallery:update` | Update state or display. |
25
+ | `UPDATE_FAST` | `vne:gallery:update_fast` | Redraw the view with `isFast`, without a state change. |
26
+ | `UPDATE_FORCE` | `vne:gallery:update_force` | Redraw the view with `isForce`; state does not change. |
27
+ | `PRELOAD` | `vne:gallery:preload` | Plugin namespace `PRELOAD` event. |
28
+ | `CHOOSE` | `vne:gallery:choose` | Plugin namespace `CHOOSE` event. |
29
+ | `ACCEPT` | `vne:gallery:accept` | ACCEPT / INTERACT on the selected slot. |
30
+ | `UPDATE_STATE` | `vne:gallery:update_state` | Merge a partial into state (`grid*`, `tab`, `pageIndex` / `pagesCount`, …). |
31
+ | `GRID_NEXT` | `vne:gallery:grid_next` | Grid edge forward; `gallery.controller.pages` listens as `EVENT_PAGE_NEXT`. |
32
+ | `GRID_PREV` | `vne:gallery:grid_prev` | Grid edge backward; `gallery.controller.pages` listens as `EVENT_PAGE_PREV`. |
33
+ | `GRID_CLEAR` | `vne:gallery:grid_clear` | Clear cell selection: `gridRow` / `gridColumn` → `null` (+ `UPDATE_STATE`). |
34
+ | `GRID_UPDATE_ITEMS` | `vne:gallery:grid_update_items` | Rebuild the grid from state (no payload) → `UPDATE_STATE` `{ gridItems }`. Meta — set earlier via `UPDATE_STATE`. |
35
+ | `PAGE_ITEMS_GET` | `vne:gallery:page_items_get` | Build a UI slot from content (`CHECK` + media); return item. Replaces `ITEM_CREATE`. |
36
+
37
+ ## Constants
38
+
39
+ None.
40
+
41
+ ## Parameters
42
+
43
+ | Key | Type | Meaning |
44
+ | ------------ | -------- | -------------------------------------------------------------------------------------- |
45
+ | `TABS` | `string` | Default: "TABS". |
46
+ | `BACKGROUND` | `string` | Default: "save". |
47
+ | `TRANSITION` | `string` | Default: "TRANSITION". |
48
+ | `ZINDEX` | `string` | Default: "ZINDEX". |
49
+ | `LOC_LABEL` | `string` | Label name or entry point. |
50
+ | `VIEW_PROPS` | `string` | Default: "VIEW_PROPS". |
51
+ | `ROWS` | `string` | Default: "ROWS". |
52
+ | `COLUMNS` | `string` | Default: "COLUMNS". |
53
+ | `AUDIO_NAME` | `string` | Track name on the `view` layer when the screen opens; empty string — no overlay music. |
54
+
55
+ ## Settings
56
+
57
+ None.
58
+
59
+ ## Modules
60
+
61
+ | Module | Role |
62
+ | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
63
+ | `gallery.controller.audio` | `ModuleControllerAudio` subclass: SHOW/HIDE/PRELOAD → pause global, play/stop `view` track; `VOLUME_SETTING = MUSIC.VOLUME`; SHOW passes a computed `volume` into `AUDIO.PLAY`; on `VOLUME_CHANGED` / `VOLUME_SETTING` change — `AUDIO.VOLUME` again. |
64
+ | `gallery.controller` | SHOW/HIDE by `CONST.COMPONENTS.LIFECYCLE_PRIORITY` phases; on `SHOW.BEFORE` — `TAB_SET`. `UPDATE_STATE` / `UPDATE_FAST`; empty `controls` on `ZINDEX`. |
65
+ | `gallery.controller.bg` | Extends `@vnejs/module.controller.bg`: `SHOW` + `LIFECYCLE_PRIORITY.SHOW.BEFORE` → `UPDATE_STATE` `{ bgSrc }`; PRELOAD → background warm-cache; `MEMORY.CLEARED` when `isShow` → refresh `bgSrc` + `UPDATE_FAST`. |
66
+ | `gallery.controller.preload` | PRELOAD — page 0 of the first tab via `PAGE_ITEMS_GET`; `MEMORY.CLEARED` when `isShow` — current / neighbor pages + page 0 of other tabs (`getItemsOnPage` / `getMaxPagesCount` on the fly). |
67
+ | `gallery.controller.pages` | Extends `@vnejs/module.controller.pages`: `EVENT_*` → `GALLERY`; `EVENT_PAGE_NEXT`/`PREV` = `GRID_NEXT`/`PREV`; `applyPage` → `UPDATE_STATE` `{ gridIndex, gridsCount }` + `GRID_UPDATE_ITEMS` + `MEMORY.CLEAR`; state `pageIndex` / `pagesCount` (written by tabs). |
68
+ | `gallery.controller.pages.items` | On `PAGE_ITEMS_GET` builds a UI slot: `CHECK` + media (`MEDIA.LOAD`); return item. |
69
+ | `gallery.controller.accept` | Extends `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `ACCEPT` → `CHOOSE` only when the slot is open (`isOpened`, not stub); mirrors `UPDATE_STATE` (`grid*`); PUSH/POP on SHOW/HIDE. |
70
+ | `gallery.controller.grid` | Extends `@vnejs/module.controller.arrows.grid`: four arrows; `isDisableGridChangeVertical = true` (vertical does not flip pages); at column edge — `GRID_NEXT`/`PREV`; `GRID_CLEAR`; on `GRID_UPDATE_ITEMS` — `getGridItems` via `PAGE_ITEMS_GET` (stubs for layout only; not in count or snap position). On `HIDE.CLEANUP` `gridRow` / `gridColumn` in state become `undefined`. |
71
+ | `gallery.hide.controls` | Extends `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP on SHOW/HIDE. |
72
+ | `gallery.hide.state` | Extends `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` with `{ isForce: true }`. |
73
+ | `gallery.controller.tabs` | `ModuleControllerTabs` subclass: `TAB_SET` → `applyTab` + `onTabSet` (`pageIndex: 0`, `pagesCount`, `GRID_CLEAR`, `UPDATE_STATE` `{ gridIndex, gridsCount }`, `GRID_UPDATE_ITEMS`; when `isUpdateView` — `UPDATE_FAST` + `MEMORY.CLEAR`); TAB_PREV/TAB_NEXT → `TAB_SET`. |
74
+ | `gallery` | Handles OPEN, CHECK, CLEAR. |
75
+ | `gallery.view` | Plugin `view` submodule. |
76
+
77
+ ## Related plugins
78
78
 
79
79
  ### plugins/core/
80
80