@vnejs/docs 0.2.33 → 0.2.35
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 +38 -0
- package/architecture.md +31 -19
- package/package.json +1 -1
- package/plugins/scenario/autoread.md +18 -10
- package/plugins/scenario/choose.md +4 -4
- package/plugins/scenario/history.md +75 -0
- package/plugins/scenario/pause.md +15 -10
- package/plugins/text/text.md +7 -0
- package/plugins/views/settings.md +3 -1
- package/plugins/views.screens/gallery.md +36 -31
- package/plugins/views.screens/history.md +19 -36
- package/plugins/views.screens/intro.md +17 -13
- package/plugins/views.screens/loading.md +15 -11
- package/plugins/views.screens/mainmenu.md +15 -13
- package/plugins/views.screens/save.md +36 -24
- package/plugins/views.screens/settings.defaults.md +15 -10
- package/plugins/views.screens/settings.md +22 -17
- package/scenario.catalog/stubs/pause.md +3 -2
- package/scenario.guide/flow.md +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,44 @@
|
|
|
2
2
|
|
|
3
3
|
Краткая история изменений движка (плагины, helpers, packages, CLI и прочий runtime) и внешнего API. Версии — релизы пакета `@vnejs/docs`.
|
|
4
4
|
|
|
5
|
+
## 0.2.35
|
|
6
|
+
|
|
7
|
+
- `module.controller.arrows.grid` — `cachedItemsCount` не считает слоты с `isStub`; после `GRID_UPDATE_ITEMS` невалидные `gridRow` / `gridColumn` (в т.ч. stub после смены `gridIndex`) сдвигаются на ближайшую валидную ячейку. API: `getGridItemsCount`, `snapSelectionToGrid`, `findNearestValidCell`.
|
|
8
|
+
- `views/settings` — константа ключа вкладки дефолтных настроек. API: `CONST.SETTINGS_VIEW.DEFAULT_TAB` (`"DEFAULT"`).
|
|
9
|
+
- `views.screens/settings` — показ полей на `SHOW_BEFORE` в `settings.screen.controller.fields` (`STATE_UPDATE` tabs/tab → `SETTINGS_VIEW.SHOW`); main только эмитит `SHOW_BEFORE` и `HIDE` → `SETTINGS_VIEW.HIDE`.
|
|
10
|
+
- `views.screens/settings.defaults` — показ полей на `SHOW_BEFORE` в `settings.default.controller.fields` с `CONST.SETTINGS_VIEW.DEFAULT_TAB`.
|
|
11
|
+
- `module.controller.bg` — база статичного фона `@vnejs/module.controller.bg`: `SHOW_BEFORE` → `STATE_UPDATE` `{ bgSrc }`; опционально `EVENT_PRELOAD` / `start` / `STATE.CLEAR`; `MEMORY.CLEARED` — флаги preload и/или refresh при `isShow`. Abstract: `EVENT_SHOW` / `HIDE` / `SHOW_BEFORE` / `STATE_UPDATE` / `UPDATE_FAST`, `BGNAME`, `QUALITY_SETTING`. API: `IS_START_PRELOAD_ENABLED`, `IS_STATE_CLEAR_PRELOAD_ENABLED`, `IS_MEMORY_CLEARED_PRELOAD_ENABLED`, `IS_MEMORY_CLEARED_UPDATE_ENABLED`, `loadBg`.
|
|
12
|
+
- `views.screens/gallery` — фон вынесен в `gallery.controller.bg`; main `beforeShow` эмитит `SHOW_BEFORE`, затем `TAB_SET`. API: `EVENTS.GALLERY.SHOW_BEFORE`.
|
|
13
|
+
- `views.screens/save` — фон в `save.controller.bg` (`PRELOAD` / `start` / `MEMORY.CLEARED`); main `beforeShow` → `SHOW_BEFORE` + `TAB_SET`. API: `EVENTS.SAVE_VIEW.SHOW_BEFORE`.
|
|
14
|
+
- `views.screens/settings` — фон в `settings.screen.controller.bg`; API: `EVENTS.SETTINGS_SCREEN_VIEW.SHOW_BEFORE`, `EVENTS.SETTINGS_SCREEN_VIEW.UPDATE_FAST`.
|
|
15
|
+
- `views.screens/settings.defaults` — фон в `settings.default.controller.bg`; API: `EVENTS.SETTINGS_DEFAULT_VIEW.SHOW_BEFORE`, `EVENTS.SETTINGS_DEFAULT_VIEW.STATE_UPDATE`, `EVENTS.SETTINGS_DEFAULT_VIEW.UPDATE_FAST`.
|
|
16
|
+
- `views.screens/intro` — фон в `intro.controller.bg` (`start` preload); API: `EVENTS.INTRO.SHOW_BEFORE`, `EVENTS.INTRO.STATE_UPDATE`, `EVENTS.INTRO.UPDATE_FAST`.
|
|
17
|
+
- `views.screens/loading` — фон в `loading.controller.bg` (`start` / `MEMORY.CLEARED`); API: `EVENTS.LOADING.SHOW_BEFORE`, `EVENTS.LOADING.STATE_UPDATE`, `EVENTS.LOADING.UPDATE_FAST`.
|
|
18
|
+
- `views.screens/mainmenu` — начальный фон в `mainmenu.controller.bg` (`start` / `STATE.CLEAR`); ротация по-прежнему `mainmenu.backgrounds`. API: `EVENTS.MAINMENU.SHOW_BEFORE`.
|
|
19
|
+
- `module.controller.tabs` — abstract `EVENT_STATE_UPDATE`; entrypoint `onTabSetEvent` (guard пустого / того же tab) → `applyTab` (`STATE_UPDATE` `{ tab }`) → abstract `onTabSet` (как `onAccept`). API: `EVENT_STATE_UPDATE`, `applyTab`, `onTabSetEvent`, `onTabSet`.
|
|
20
|
+
- `module.controller.pages` — база пагинации `@vnejs/module.controller.pages`: `PAGE_SET` / `PAGE_NEXT` / `PAGE_PREV` → `setPage` → abstract `applyPage` + `UPDATE_FAST`. Стейт `pageIndex` / `pagesCount`. Abstract: `EVENT_PAGE_SET` / `PAGE_NEXT` / `PAGE_PREV` / `STATE_UPDATE` / `UPDATE_FAST`, `applyPage`. API: `setPage`, `onPageSet`, `onPageNext`, `onPagePrev`, `applyPage`.
|
|
21
|
+
- `views.screens/gallery` — `gallery.controller.pages.items` на `PAGE_ITEMS_GET` (`vne:gallery:page_items_get`) собирает UI-слот (`CHECK` + media); вместо `ITEM_CREATE` / `vne:gallery:item_create`. Call-sites: grid `getGridItems`, preload. API: `EVENTS.GALLERY.PAGE_ITEMS_GET`.
|
|
22
|
+
- `views.screens/gallery` — `gallery.controller.preload`: PRELOAD / `MEMORY.CLEARED` предзагружают контент вкладок через `PAGE_ITEMS_GET`; фон — `gallery.controller.bg`.
|
|
23
|
+
- `views.screens/save` / `views.screens/gallery` — `isDisableGridChangeVertical = true` в `*.controller.grid`: вертикальные стрелки не эмитят `GRID_NEXT`/`PREV` (не листают страницы); горизонталь по-прежнему может.
|
|
24
|
+
- `views.screens/save` — `save.controller.actions`: `CREATE` → `SAVE.CREATE`, `DELETE` → `SAVE.DELETE`; `group` из payload или `getSaveGroup` (autosave / `pageIndex`); затем `GRID_UPDATE_ITEMS` + `UPDATE_FAST`. Main — SHOW/HIDE/PRELOAD.
|
|
25
|
+
- `views.screens/save` — `save.controller.pages` наследует `@vnejs/module.controller.pages`; `EVENT_PAGE_NEXT`/`PREV` = `GRID_NEXT`/`PREV`; `applyPage` → `STATE_UPDATE` `{ gridIndex, gridsCount }` + `GRID_UPDATE_ITEMS`; стейт `pageIndex` / `pagesCount`; `PAGE_SET` `{ pageIndex }`; `init` пишет `pagesCount`. Main — SHOW/HIDE/PRELOAD. API: `EVENTS.SAVE_VIEW.PAGE_SET` payload `{ pageIndex }`.
|
|
26
|
+
- `views.screens/save` — `TAB_SET` обрабатывает `save.controller.tabs` (`pageIndex: 0`, `GRID_CLEAR`, `STATE_UPDATE` `{ gridIndex, gridsCount }`, `GRID_UPDATE_ITEMS`, опционально `UPDATE_FAST`). `beforeShow` эмитит `TAB_SET` с `isForce` / `isUpdateView: false`.
|
|
27
|
+
- `views.screens/gallery` — `gallery.controller.pages` наследует `@vnejs/module.controller.pages`; `EVENT_PAGE_NEXT`/`PREV` = `GRID_NEXT`/`PREV`; `applyPage` → `STATE_UPDATE` `{ gridIndex, gridsCount }` + `GRID_UPDATE_ITEMS` + `MEMORY.CLEAR`; стейт `pageIndex` / `pagesCount` (вместо `currentPage` / `pages`); `PAGE_SET` `{ pageIndex }`; tabs пишет `pagesCount` при `TAB_SET`. Main — SHOW/HIDE/PRELOAD. API: `EVENTS.GALLERY.PAGE_SET` payload `{ pageIndex }`.
|
|
28
|
+
- `views.screens/gallery` — `gallery.controller.grid` на `@vnejs/module.controller.arrows.grid`; стейт `gridRow` / `gridColumn` / `gridItems` (вместо `current*`); `TAB_SET` в tabs: `GRID_CLEAR` + `STATE_UPDATE` `{ gridIndex, gridsCount }` + `GRID_UPDATE_ITEMS` + опционально `UPDATE_FAST`. `MEMORY.CLEAR` / `UPDATE_FAST` только при `isUpdateView` (не в `beforeShow`), чтобы SHOW не попадал под `viewForceAnimationSources`. API: `EVENTS.GALLERY.UPDATE_FAST`, `EVENTS.GALLERY.GRID_NEXT`, `EVENTS.GALLERY.GRID_PREV`, `EVENTS.GALLERY.GRID_CLEAR`, `EVENTS.GALLERY.GRID_UPDATE_ITEMS`, `EVENTS.GALLERY.PAGE_ITEMS_GET`.
|
|
29
|
+
- `views.screens/settings` — `TAB_SET` в `settings.screen.controller.tabs` (`applyTab` + `SETTINGS_VIEW.TAB_SET` + `UPDATE_FAST`); main на `STATE_UPDATE` только `updateState`. API: `EVENTS.SETTINGS_SCREEN_VIEW.STATE_UPDATE`.
|
|
30
|
+
- `module.controller.arrows.grid` — база сеточной навигации `@vnejs/module.controller.arrows.grid`: четыре стрелки, PUSH/POP на SHOW/HIDE, `STATE_UPDATE` `{ gridRow, gridColumn }` + `UPDATE_FAST`, на краю — `GRID_NEXT` / `GRID_PREV`, сброс позиции — `GRID_CLEAR` (`gridRow` / `gridColumn` → `null` + `STATE_UPDATE`). Abstract: `EVENT_SHOW` / `HIDE` / `STATE_UPDATE` / `UPDATE_FAST` / `GRID_NEXT` / `GRID_PREV` / `GRID_CLEAR`, `CONTROLS_ZINDEX`, `getMaxRows` / `getMaxColumns`. `STATE_UPDATE` зеркалит стейт (`updateState`) и кэш. `GRID_UPDATE_ITEMS` без payload → `getGridItems` из стейта → `STATE_UPDATE` `{ gridItems }`. Флаги `isDisableGridChangeHorizontal` / `isDisableGridChangeVertical` (по умолчанию `false`).
|
|
31
|
+
- `views.screens/save` — `save.controller.grid` наследует `@vnejs/module.controller.arrows.grid`. Внутри сетки — `STATE_UPDATE` с `{ gridRow, gridColumn }` и `UPDATE_FAST`; на краю — `GRID_NEXT` / `GRID_PREV` (`save.controller.pages` мапит на пагинацию); смена tab — `EVENTS.SAVE_VIEW.GRID_CLEAR`. Meta сетки — `STATE_UPDATE` (`gridIndex` / `gridsCount` / `tab`); `GRID_UPDATE_ITEMS` без payload. Загрузка слотов — `getGridItems` через `emitOne(EVENTS.SAVE_VIEW.SLOT_CREATE)`. Модуль `save.view.slot` на `SLOT_CREATE` (`{ key, group, index }`) → `SAVE.GET` + дата/время. API: `EVENTS.SAVE_VIEW.UPDATE_FAST`, `EVENTS.SAVE_VIEW.GRID_NEXT`, `EVENTS.SAVE_VIEW.GRID_PREV`, `EVENTS.SAVE_VIEW.GRID_CLEAR`, `EVENTS.SAVE_VIEW.GRID_UPDATE_ITEMS`, `EVENTS.SAVE_VIEW.SLOT_CREATE`.
|
|
32
|
+
- `module.controller.tabs` / `views.screens/settings` / `views.screens/gallery` — стейт вкладки: `tab` вместо `currentTab`.
|
|
33
|
+
|
|
34
|
+
## 0.2.34
|
|
35
|
+
|
|
36
|
+
- `scenario/pause` — логи в модуле `pause.logs`, не `emitLog` из шага. `$ pause` обрабатывает модуль `pause.scenario`: `LINE_EXEC_REG`, затем `EVENTS.PAUSE.EMIT` и `emitNext`. Блокировки — модуль `pause.emit`: в `postinject` создаёт `shared.pauseDisableSources`; `EVENTS.PAUSE.EMIT` (`vne:pause:emit`) эмитит `START`, если набор пуст. `START` больше не смотрит блокировки и не вызывает `emitNext`. `STATE.CLEAR` больше не вызывает `END`. API: `EVENTS.PAUSE.EMIT`, `CONST.PAUSE.LOGS_ACTIONS` (`EMIT` / `emit`, `START` / `start`, `END` / `end`).
|
|
37
|
+
- `scenario/autoread` — постановка и сброс таймера через события, не методы модуля. `TIMEOUT_CREATE` ставит таймер на `SETTINGS.AUTOREAD.DELAY` и по нему эмитит `AUTOREAD.EMIT`. `TIMEOUT_CLEAR` снимает таймер. PUSH / POP / `STATE.SET` / `STATE.CLEAR` идут через эти события. Шаг авточтения — модуль `autoread.emit` на `EVENTS.AUTOREAD.EMIT` (`vne:autoread:emit`). Таймер — модуль `autoread.timeout` (`TIMEOUT_CREATE` / `TIMEOUT_CLEAR`; `STATE.CLEAR` → `TIMEOUT_CLEAR`, `STATE.SET` → `TIMEOUT_CLEAR` затем `TIMEOUT_CREATE`). Блокировки — модуль `autoread.sources`: `postinject` создаёт `shared.autoreadDisableSources`, `PUSH` / `POP` меняют набор, `STATE.SET` его очищает. Вместо `EVENTS.AUTOREAD.TRY` (`vne:autoread:try`). Логи — модуль `autoread.logs`, не `emitLog` из шага. `CONST.AUTOREAD.LOGS_ACTIONS`: `EMIT` (`emit`), `PUSH` (`push`), `POP` (`pop`), `TIMEOUT_CREATE` (`timeout_create`), `TIMEOUT_CLEAR` (`timeout_clear`). `PUSH` / `POP` пишут `source`. API: `EVENTS.AUTOREAD.EMIT`, `EVENTS.AUTOREAD.TIMEOUT_CREATE`, `EVENTS.AUTOREAD.TIMEOUT_CLEAR`, `CONST.AUTOREAD.LOGS_ACTIONS`.
|
|
38
|
+
- `scenario/history` — журнал снапшотов вынесен из экрана (`@vnejs/plugins.scenario.history`). Шаг назад — `EVENTS.HISTORY.BACK`; запись — `EVENTS.HISTORY.ADD` / `GET` / `SET` / `LOAD` / `KEYS` / `KEYS_UPDATE`. Снапшот в память — `EVENTS.HISTORY.SET` (`{ uid, value }`), не прямой `MEMORY.SET`. Прогрев ключей — `EVENTS.HISTORY.KEYS_UPDATE`. Флаг загрузки — `shared.isHistoryLoadInProcess`, не поле модуля. Логи — `CONST.HISTORY.LOGS_ACTIONS` (`ADD`, `LOAD_START`, `LOAD_DELETED`, `LOAD_END`). `PARAMS.HISTORY.MAX_LENGTH`. Мост к `MEMORY` — модуль `history.memory` (`MEMORY.REG` / `GET` / `SET` / `KEYS`, ключ `module: this.name`). Загрузка снапшота — модуль `history.load` (`EVENTS.HISTORY.LOAD`, флаг `shared.isHistoryLoadInProcess`). Шаг назад — модуль `history.back` (`EVENTS.HISTORY.BACK`, последняя запись из `globalState.history`). Плагин и связки записи — в `bundles/vn.skeleton`. Вместо `HISTORY.ADD` с экрана `views.screens/history`.
|
|
39
|
+
- `views.screens/history` — экран журнала: namespace `HISTORY_VIEW` (`@vnejs/plugins.views.screens.history`), в `bundles/vn.base`. API: `EVENTS.HISTORY_VIEW.SHOW`, `EVENTS.HISTORY_VIEW.HIDE`, `EVENTS.HISTORY_VIEW.CLICK`, `EVENTS.HISTORY_VIEW.UPDATE`, `EVENTS.HISTORY_VIEW.STATE_UPDATE`, `EVENTS.HISTORY_VIEW.UPDATE_FAST`, `EVENTS.HISTORY_VIEW.ACCEPT`, `PARAMS.HISTORY_VIEW.ZINDEX`, `PARAMS.HISTORY_VIEW.TRANSITION`, `PARAMS.HISTORY_VIEW.LOC_LABEL`, `PARAMS.HISTORY_VIEW.VIEW_PROPS`. Вместо `EVENTS.HISTORY.SHOW` и остальных view-событий `HISTORY`.
|
|
40
|
+
- `compatibility/text/scenario.history` — `@vnejs/compatibility.text-with-scenario.history` вместо `@vnejs/compatibility.text-with-views.screens.history`. На `TEXT.EMIT_NEXT` эмитит `EVENTS.HISTORY.ADD`.
|
|
41
|
+
- `compatibility/scenario.choose/scenario.history` — `@vnejs/compatibility.scenario.choose-with-scenario.history` вместо `@vnejs/compatibility.scenario.choose-with-views.screens.history`. На `CHOOSE.OPTION_BEFORE_REG` эмитит `EVENTS.HISTORY.ADD` с `{ locKey: "choice" }`.
|
|
42
|
+
|
|
5
43
|
## 0.2.33
|
|
6
44
|
|
|
7
45
|
- `views.scenario/point_and_click` — `SETTINGS.CHANGED` обновляет view только при `state.isShow` (`point_and_click_view.controller`).
|
package/architecture.md
CHANGED
|
@@ -136,8 +136,12 @@ flowchart TD
|
|
|
136
136
|
MCT["@vnejs/module.controller.tabs"]
|
|
137
137
|
MCP["@vnejs/module.controller.preload"]
|
|
138
138
|
MCB["@vnejs/module.controller.backgrounds"]
|
|
139
|
+
MCBG["@vnejs/module.controller.bg"]
|
|
139
140
|
MCAC["@vnejs/module.controller.accept"]
|
|
140
141
|
MCAV["@vnejs/module.controller.arrows.vertical"]
|
|
142
|
+
MCAH["@vnejs/module.controller.arrows.horizontal"]
|
|
143
|
+
MCAG["@vnejs/module.controller.arrows.grid"]
|
|
144
|
+
MCPG["@vnejs/module.controller.pages"]
|
|
141
145
|
MCHS["@vnejs/module.controller.hide.on.state"]
|
|
142
146
|
MCHC["@vnejs/module.controller.hide.on.controls"]
|
|
143
147
|
MSC["@vnejs/module.scales.common"]
|
|
@@ -152,33 +156,41 @@ flowchart TD
|
|
|
152
156
|
MC --> MCT
|
|
153
157
|
MC --> MCP
|
|
154
158
|
MC --> MCB
|
|
159
|
+
MC --> MCBG
|
|
155
160
|
MC --> MCAC
|
|
156
161
|
MC --> MCAV
|
|
162
|
+
MC --> MCAH
|
|
163
|
+
MC --> MCAG
|
|
164
|
+
MC --> MCPG
|
|
157
165
|
MC --> MCHS
|
|
158
166
|
MC --> MCHC
|
|
159
167
|
MC --> MSC
|
|
160
168
|
MCO --> ML
|
|
161
169
|
```
|
|
162
170
|
|
|
163
|
-
| Пакет
|
|
164
|
-
|
|
|
165
|
-
| **`@vnejs/module`**
|
|
166
|
-
| **`@vnejs/module.core`**
|
|
167
|
-
| **`@vnejs/module.handlers`**
|
|
168
|
-
| **`@vnejs/module.replace`**
|
|
169
|
-
| **`@vnejs/module.replace.exec`**
|
|
170
|
-
| **`@vnejs/module.components`**
|
|
171
|
-
| **`@vnejs/module.layer`**
|
|
172
|
-
| **`@vnejs/module.audio`**
|
|
173
|
-
| **`@vnejs/module.controller.audio`**
|
|
174
|
-
| **`@vnejs/module.controller.tabs`**
|
|
175
|
-
| **`@vnejs/module.controller.preload`**
|
|
176
|
-
| **`@vnejs/module.controller.backgrounds`**
|
|
177
|
-
| **`@vnejs/module.controller.
|
|
178
|
-
| **`@vnejs/module.controller.
|
|
179
|
-
| **`@vnejs/module.controller.
|
|
180
|
-
| **`@vnejs/module.controller.
|
|
181
|
-
| **`@vnejs/module.
|
|
171
|
+
| Пакет | Назначение |
|
|
172
|
+
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
173
|
+
| **`@vnejs/module`** | **`Module`**: `VNE`, `on`/`emit`, `inject`, state, shared, media, lifecycle |
|
|
174
|
+
| **`@vnejs/module.core`** | **`ModuleCore`** — типизированный доступ к **core-контрактам**; `emitLog`, `emitNext`, … |
|
|
175
|
+
| **`@vnejs/module.handlers`** | **`ModuleHandlers`** — параллельные обработчики emit-событий с приоритетами (side effects) |
|
|
176
|
+
| **`@vnejs/module.replace`** | **`ModuleReplace`** — последовательная подмена значения поля payload через `REPLACE_KEY` и цепочку handlers |
|
|
177
|
+
| **`@vnejs/module.replace.exec`** | **`ModuleReplaceExec`** — реестр exec-handlers по имени модуля (`EXEC_REG` / `EXEC_GET`) |
|
|
178
|
+
| **`@vnejs/module.components`** | **`ModuleView`**, **`ModuleController`** — React-view, zustand, media, controls |
|
|
179
|
+
| **`@vnejs/module.layer`** | Canvas layers: controller, image, sprite, text, video, props, view |
|
|
180
|
+
| **`@vnejs/module.audio`** | База для audio-плагинов scenario-слоёв (`music` / `sound` / …) |
|
|
181
|
+
| **`@vnejs/module.controller.audio`** | Overlay-BGM для view-экранов: pause global / play `view` / resume на SHOW/HIDE/PRELOAD |
|
|
182
|
+
| **`@vnejs/module.controller.tabs`** | Навигация по вкладкам: TAB_PREV/TAB_NEXT → `TAB_SET`; guard + `applyTab` (`STATE_UPDATE` `{ tab }`) + abstract `onTabSet`; PUSH/POP на SHOW/HIDE |
|
|
183
|
+
| **`@vnejs/module.controller.preload`** | Предзагрузка меток и событий экрана по SHOW / PRELOAD / MEMORY.CLEARED; SHOW/HIDE/PRELOAD задаёт плагин |
|
|
184
|
+
| **`@vnejs/module.controller.backgrounds`** | Ротация списка фонов по SHOW / таймеру / MEMORY.CLEARED; стоп на HIDE; события и список задаёт плагин |
|
|
185
|
+
| **`@vnejs/module.controller.bg`** | Статичный фон экрана: SHOW_BEFORE → `bgSrc` в стейт; опционально PRELOAD / start / STATE.CLEAR; MEMORY.CLEARED — preload и/или refresh при isShow |
|
|
186
|
+
| **`@vnejs/module.controller.accept`** | ACCEPT / INTERACT → событие ACCEPT плагина; PUSH/POP controls на SHOW/HIDE |
|
|
187
|
+
| **`@vnejs/module.controller.arrows.vertical`** | ARROW_UP / ARROW_BOTTOM по видимым пунктам; PUSH/POP controls на SHOW/HIDE |
|
|
188
|
+
| **`@vnejs/module.controller.arrows.horizontal`** | ARROW_LEFT / ARROW_RIGHT по пунктам; PUSH/POP controls на SHOW/HIDE |
|
|
189
|
+
| **`@vnejs/module.controller.arrows.grid`** | Четыре стрелки по сетке; `GRID_NEXT` / `GRID_PREV` на краю; PUSH/POP на SHOW/HIDE; `GRID_UPDATE_ITEMS` без payload, meta через `STATE_UPDATE` |
|
|
190
|
+
| **`@vnejs/module.controller.pages`** | Пагинация: `PAGE_SET` / `PAGE_NEXT` / `PAGE_PREV` → `setPage` → abstract `applyPage` + `UPDATE_FAST`; стейт `pageIndex` / `pagesCount` |
|
|
191
|
+
| **`@vnejs/module.controller.hide.on.state`** | STATE.SET / STATE.CLEAR → emit HIDE плагина (`isForce` задаёт наследник) |
|
|
192
|
+
| **`@vnejs/module.controller.hide.on.controls`** | BACK / MENU / GAMEMENU → emit HIDE плагина; PUSH/POP controls на SHOW/HIDE |
|
|
193
|
+
| **`@vnejs/module.scales.common`** | База для scales / RPG-модулей |
|
|
182
194
|
|
|
183
195
|
### Принципы
|
|
184
196
|
|
package/package.json
CHANGED
|
@@ -6,15 +6,19 @@
|
|
|
6
6
|
|
|
7
7
|
## События
|
|
8
8
|
|
|
9
|
-
| Ключ
|
|
10
|
-
|
|
|
11
|
-
| `
|
|
12
|
-
| `PUSH`
|
|
13
|
-
| `POP`
|
|
9
|
+
| Ключ | Строка | Смысл |
|
|
10
|
+
| ---------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
11
|
+
| `EMIT` | `vne:autoread:emit` | Если авточтение включено и нет блокировок — `INTERACT.EMIT` по `vne-autoread-allow`, иначе `TIMEOUT_CREATE`. |
|
|
12
|
+
| `PUSH` | `vne:autoread:push` | Добавить источник блокировки и `TIMEOUT_CLEAR`. Payload: `{ source? }`. |
|
|
13
|
+
| `POP` | `vne:autoread:pop` | Снять источник блокировки; если очередь пуста — `TIMEOUT_CREATE`. Payload: `{ source? }`. |
|
|
14
|
+
| `TIMEOUT_CREATE` | `vne:autoread:timeout_create` | Поставить таймер на `SETTINGS.AUTOREAD.DELAY`; по нему эмитит `EMIT`. |
|
|
15
|
+
| `TIMEOUT_CLEAR` | `vne:autoread:timeout_clear` | Снять поставленный таймер. |
|
|
14
16
|
|
|
15
17
|
## Константы
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
| Ключ | Смысл |
|
|
20
|
+
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
|
21
|
+
| `LOGS_ACTIONS` | Метки для логов: `EMIT` (`emit`), `PUSH` (`push`), `POP` (`pop`), `TIMEOUT_CREATE` (`timeout_create`), `TIMEOUT_CLEAR` (`timeout_clear`). |
|
|
18
22
|
|
|
19
23
|
## Параметры
|
|
20
24
|
|
|
@@ -32,16 +36,20 @@
|
|
|
32
36
|
|
|
33
37
|
## Модули
|
|
34
38
|
|
|
35
|
-
| Модуль
|
|
36
|
-
|
|
|
37
|
-
| `autoread`
|
|
39
|
+
| Модуль | Зона ответственности |
|
|
40
|
+
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
41
|
+
| `autoread` | `SETTINGS.INIT` в `setup`. `SETTINGS.CHANGED` для `ENABLED` эмитит `PUSH` / `POP`. |
|
|
42
|
+
| `autoread.logs` | Логи всех событий `AUTOREAD` через `emitLog`. `PUSH` / `POP` пишут `source`. |
|
|
43
|
+
| `autoread.sources` | В `postinject` — `shared.autoreadDisableSources`. `PUSH` / `POP`. На `STATE.SET` очищает набор. |
|
|
44
|
+
| `autoread.emit` | `EMIT`: если включено и нет блокировок — `INTERACT.EMIT` по `vne-autoread-allow`, иначе `TIMEOUT_CREATE`. |
|
|
45
|
+
| `autoread.timeout` | `TIMEOUT_CREATE` / `TIMEOUT_CLEAR`. Таймер на `SETTINGS.AUTOREAD.DELAY`, по нему `EMIT`. `STATE.CLEAR` → `TIMEOUT_CLEAR`. `STATE.SET` → `TIMEOUT_CLEAR`, затем `TIMEOUT_CREATE`. |
|
|
38
46
|
|
|
39
47
|
## Близкие плагины
|
|
40
48
|
|
|
41
49
|
### plugins/core/
|
|
42
50
|
|
|
43
51
|
- [interact.md](../core/interact.md) — `INTERACT`: EVENTS.EMIT
|
|
44
|
-
- [logs.md](../core/logs.md) — `LOGS`: emitLog
|
|
52
|
+
- [logs.md](../core/logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
|
|
45
53
|
- [settings.md](../core/settings.md) — `SETTINGS`: EVENTS.CHANGED, EVENTS.INIT
|
|
46
54
|
- [state.md](../core/state.md) — `STATE`: EVENTS.CLEAR, EVENTS.SET
|
|
47
55
|
|
|
@@ -80,11 +80,11 @@
|
|
|
80
80
|
|
|
81
81
|
В `init` регистрирует handler на `OPTION_BEFORE_REG`: при выборе опции эмитит `FASTFORWARD.CHECK` (до `HIDE` / `OPTION_REPLACE`).
|
|
82
82
|
|
|
83
|
-
### `compatibility/scenario.choose/
|
|
83
|
+
### `compatibility/scenario.choose/scenario.history/`
|
|
84
84
|
|
|
85
|
-
Пакет: `@vnejs/compatibility.scenario.choose-with-
|
|
85
|
+
Пакет: `@vnejs/compatibility.scenario.choose-with-scenario.history`
|
|
86
86
|
|
|
87
|
-
В `init` регистрирует handler на `OPTION_BEFORE_REG`: при выборе опции эмитит `HISTORY.ADD` с `{ locKey: "choice" }` (без speaker/text). Текст строки берётся из локализации
|
|
87
|
+
В `init` регистрирует handler на `OPTION_BEFORE_REG`: при выборе опции эмитит `HISTORY.ADD` с `{ locKey: "choice" }` (без speaker/text). Текст строки берётся из локализации экрана history (`history.json`). Подключается в `bundles/vn.skeleton`.
|
|
88
88
|
|
|
89
89
|
### `compatibility/scenario.choose/scenario.qte/`
|
|
90
90
|
|
|
@@ -106,6 +106,6 @@
|
|
|
106
106
|
- [text.md](../text/text.md) — `TEXT`: EVENTS.REPLACE (текст опций)
|
|
107
107
|
- [qte.md](./qte.md) — `QTE`: связка через `OPTION_REPLACE` (compatibility выше)
|
|
108
108
|
- [fastforward.md](./fastforward.md) — `FASTFORWARD`: связка через `OPTION_BEFORE_REG` (compatibility выше)
|
|
109
|
-
- [
|
|
109
|
+
- [history.md](./history.md) — `HISTORY`: связка через `OPTION_BEFORE_REG` → `ADD` с `locKey` (compatibility выше)
|
|
110
110
|
- [views.scenario/choose.md](../views.scenario/choose.md) — `CHOOSE_VIEW`: UI выбора (слушает SHOW / HIDE)
|
|
111
111
|
- [scenario/point_and_click.md](./point_and_click.md) — тот же паттерн `repeat` / `SKIP` / `SHOW` / `HIDE` / `STATE_UPDATE`
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# plugins/scenario/history/
|
|
2
|
+
|
|
3
|
+
Пакет: `@vnejs/plugins.scenario.history` · namespace: `HISTORY`
|
|
4
|
+
|
|
5
|
+
Журнал снапшотов состояния. `BACK` возвращает на последнюю запись. Экран журнала — [views.screens/history.md](../views.screens/history.md) (`HISTORY_VIEW`), в `bundles/vn.base`. Этот плагин — в `bundles/vn.skeleton`.
|
|
6
|
+
|
|
7
|
+
## События
|
|
8
|
+
|
|
9
|
+
| Ключ | Строка | Смысл |
|
|
10
|
+
| ------ | ------------------ | ---------------------------------------------------------------------------------------------------------- |
|
|
11
|
+
| `GET` | `vne:history:get` | Снапшот по `uid` (`MEMORY.GET`). Payload: `{ uid? }`. |
|
|
12
|
+
| `SET` | `vne:history:set` | Записать снапшот в `MEMORY` модуля `history.memory`. Payload: `{ uid?, value? }`. |
|
|
13
|
+
| `ADD` | `vne:history:add` | Снять snapshot `STATE` и добавить запись. Payload: реплика (`label`/`text`/`args`/`speaker`…) или `{ locKey }`. Пока `shared.isHistoryLoadInProcess` — игнорируется. |
|
|
14
|
+
| `LOAD` | `vne:history:load` | Загрузить снапшот в `STATE` и перейти на `state.scenario.label` (`SCENARIO.LABEL_GET`). Payload: `{ uid? }`. На время загрузки ставит `shared.isHistoryLoadInProcess`. |
|
|
15
|
+
| `BACK` | `vne:history:back` | `LOAD` последней записи. Пока `shared.isHistoryLoadInProcess` и на пустом журнале ничего не делает. |
|
|
16
|
+
| `KEYS` | `vne:history:keys` | Ключи модуля `history.memory` в `MEMORY`. |
|
|
17
|
+
| `KEYS_UPDATE` | `vne:history:keys_update` | Прогреть ключи: `GET` по каждому `uid` в стейте журнала. |
|
|
18
|
+
|
|
19
|
+
Флаг загрузки — `shared.isHistoryLoadInProcess` (ставит модуль `history.load`; в `postinject` — `false`).
|
|
20
|
+
|
|
21
|
+
## Константы
|
|
22
|
+
|
|
23
|
+
| Ключ | Смысл |
|
|
24
|
+
| -------------- | ---------------------------------------------------------------------------------------------- |
|
|
25
|
+
| `LOGS_ACTIONS` | Метки для логов: `ADD` (`add`), `LOAD_START` (`load start`), `LOAD_DELETED` (`load deleted`), `LOAD_END` (`load end`). |
|
|
26
|
+
|
|
27
|
+
## Параметры
|
|
28
|
+
|
|
29
|
+
| Ключ | Тип | Смысл |
|
|
30
|
+
| ------------ | -------- | ------------------------------------------ |
|
|
31
|
+
| `MAX_LENGTH` | `number` | Максимум записей. Значение по умолчанию: 50. |
|
|
32
|
+
|
|
33
|
+
## Настройки
|
|
34
|
+
|
|
35
|
+
Нет.
|
|
36
|
+
|
|
37
|
+
## Модули
|
|
38
|
+
|
|
39
|
+
| Модуль | Зона ответственности |
|
|
40
|
+
| ---------------- | ------------------------------------------------------------------------------------ |
|
|
41
|
+
| `history` | ADD, KEYS_UPDATE. Стейт `{ history }`. |
|
|
42
|
+
| `history.back` | BACK. Последняя запись — `globalState.history`. Пока `shared.isHistoryLoadInProcess` и на пустом журнале ничего не делает. |
|
|
43
|
+
| `history.load` | LOAD. На время загрузки ставит `shared.isHistoryLoadInProcess`. |
|
|
44
|
+
| `history.memory` | `MEMORY.REG` в `setup` (`module: this.name`); GET, SET, KEYS. |
|
|
45
|
+
|
|
46
|
+
Стейт журнала — у модуля `history` (`globalState.history`). Снапшоты в `MEMORY` лежат под именем модуля `history.memory`.
|
|
47
|
+
|
|
48
|
+
## Compatibility
|
|
49
|
+
|
|
50
|
+
### `compatibility/text/scenario.history/`
|
|
51
|
+
|
|
52
|
+
Пакет: `@vnejs/compatibility.text-with-scenario.history`
|
|
53
|
+
|
|
54
|
+
На `TEXT.EMIT_NEXT` эмитит `HISTORY.ADD` с `{ label, text, args, speaker, speakerInfo }`. Маркеры `{…}` из текста снимаются. Подключается в `bundles/vn.skeleton`.
|
|
55
|
+
|
|
56
|
+
### `compatibility/scenario.choose/scenario.history/`
|
|
57
|
+
|
|
58
|
+
Пакет: `@vnejs/compatibility.scenario.choose-with-scenario.history`
|
|
59
|
+
|
|
60
|
+
На `CHOOSE.OPTION_BEFORE_REG` эмитит `HISTORY.ADD` с `{ locKey: "choice" }`. Перевод строки — ключ `choice` в `history.json` экрана. Подключается в `bundles/vn.skeleton`.
|
|
61
|
+
|
|
62
|
+
## Близкие плагины
|
|
63
|
+
|
|
64
|
+
### plugins/core/
|
|
65
|
+
|
|
66
|
+
- [logs.md](../core/logs.md) — `LOGS`: emitLog
|
|
67
|
+
- [memory.md](../core/memory.md) — `MEMORY`: EVENTS.REG, EVENTS.SET, EVENTS.KEYS, EVENTS.GET
|
|
68
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.LABEL_GET
|
|
69
|
+
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR, EVENTS.GET, EVENTS.LOAD
|
|
70
|
+
|
|
71
|
+
### Остальные
|
|
72
|
+
|
|
73
|
+
- [text.md](../text/text.md) — `TEXT`: `EMIT_NEXT` → `ADD` (compatibility выше)
|
|
74
|
+
- [choose.md](./choose.md) — `CHOOSE`: `OPTION_BEFORE_REG` → `ADD` (compatibility выше)
|
|
75
|
+
- [views.screens/history.md](../views.screens/history.md) — `HISTORY_VIEW`: экран журнала (`SHOW` / `HIDE`); читает `GET` / `KEYS` / `LOAD`
|
|
@@ -6,14 +6,17 @@
|
|
|
6
6
|
|
|
7
7
|
## События
|
|
8
8
|
|
|
9
|
-
| Ключ | Строка | Смысл
|
|
10
|
-
| ------- | ----------------- |
|
|
11
|
-
| `
|
|
12
|
-
| `
|
|
9
|
+
| Ключ | Строка | Смысл |
|
|
10
|
+
| ------- | ----------------- | ----------------------------------------------------------------------------------------------- |
|
|
11
|
+
| `EMIT` | `vne:pause:emit` | Если `shared.pauseDisableSources` пуст — `START` с `{ time? }`. Иначе ничего. |
|
|
12
|
+
| `START` | `vne:pause:start` | Ждать клик (`INTERACT.PUSH`, ключ `pause`) или `time` мс, пока не `END`. Payload: `{ time? }`. |
|
|
13
|
+
| `END` | `vne:pause:end` | Снять таймер, `INTERACT.POP`, завершить ожидание `START`. |
|
|
13
14
|
|
|
14
15
|
## Константы
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
| Ключ | Смысл |
|
|
18
|
+
| -------------- | ---------------------------------------------------------------------------------------- |
|
|
19
|
+
| `LOGS_ACTIONS` | Метки для логов: `EMIT` (`emit`), `START` (`start`), `END` (`end`). `EMIT` пишет `time`. |
|
|
17
20
|
|
|
18
21
|
## Параметры
|
|
19
22
|
|
|
@@ -25,18 +28,20 @@
|
|
|
25
28
|
|
|
26
29
|
## Модули
|
|
27
30
|
|
|
28
|
-
| Модуль
|
|
29
|
-
|
|
|
30
|
-
| `pause`
|
|
31
|
+
| Модуль | Зона ответственности |
|
|
32
|
+
| ---------------- | --------------------------------------------------------------------------------------------------------- |
|
|
33
|
+
| `pause` | `START` ждёт `END`: клик (`INTERACT`) или таймер `time`. |
|
|
34
|
+
| `pause.emit` | В `postinject` — `shared.pauseDisableSources`. `EMIT` → `START`, если набор пуст. |
|
|
35
|
+
| `pause.logs` | Логи `EMIT` / `START` / `END` через `emitLog`. `EMIT` пишет `time`. |
|
|
36
|
+
| `pause.scenario` | `LINE_EXEC_REG` для `$ pause` в `init`. Парсит `time`, эмитит `EMIT`, затем `emitNext`. |
|
|
31
37
|
|
|
32
38
|
## Близкие плагины
|
|
33
39
|
|
|
34
40
|
### plugins/core/
|
|
35
41
|
|
|
36
42
|
- [interact.md](../core/interact.md) — `INTERACT`: EVENTS.POP, EVENTS.PUSH
|
|
37
|
-
- [logs.md](../core/logs.md) — `LOGS`: emitLog
|
|
43
|
+
- [logs.md](../core/logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
|
|
38
44
|
- [scenario.md](../core/scenario.md) — `SCENARIO`: emitNext, EVENTS.LINE_EXEC_REG
|
|
39
|
-
- [state.md](../core/state.md) — `STATE`: EVENTS.CLEAR
|
|
40
45
|
|
|
41
46
|
### Остальные
|
|
42
47
|
|
package/plugins/text/text.md
CHANGED
|
@@ -71,6 +71,12 @@
|
|
|
71
71
|
|
|
72
72
|
Связка с [interface.md](../views.scenario/interface.md): `CHANGED` / `SPEAKER_CHANGED` / `EMIT_BEFORE` → `INTERFACE.TEXT_CHANGED` / `SPEAKER_CHANGED` / `SHOW`. В `postinject` ставит `shared.interfaceTextShowAllTokensOnChange`.
|
|
73
73
|
|
|
74
|
+
### `compatibility/text/scenario.history/`
|
|
75
|
+
|
|
76
|
+
Пакет: `@vnejs/compatibility.text-with-scenario.history`
|
|
77
|
+
|
|
78
|
+
На `EMIT_NEXT` эмитит `HISTORY.ADD` с текстом последней реплики (маркеры `{…}` снимаются). Подключается в `bundles/vn.skeleton`.
|
|
79
|
+
|
|
74
80
|
## Близкие плагины
|
|
75
81
|
|
|
76
82
|
### plugins/core/
|
|
@@ -84,3 +90,4 @@
|
|
|
84
90
|
### Остальные
|
|
85
91
|
|
|
86
92
|
- [interface.md](../views.scenario/interface.md) — `INTERFACE`: связка через compatibility выше
|
|
93
|
+
- [history.md](../scenario/history.md) — `HISTORY`: `EMIT_NEXT` → `ADD` (compatibility выше)
|
|
@@ -17,7 +17,9 @@
|
|
|
17
17
|
|
|
18
18
|
## Константы
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
| Ключ | Тип | Смысл |
|
|
21
|
+
| ------------- | -------- | -------------------------------------------------------------- |
|
|
22
|
+
| `DEFAULT_TAB` | `string` | Ключ вкладки дефолтных настроек в `PARAMS.TABS` (`"DEFAULT"`). |
|
|
21
23
|
|
|
22
24
|
## Параметры
|
|
23
25
|
|
|
@@ -10,20 +10,27 @@ ACCEPT/INTERACT эмитит `CHOOSE` только для выбранного
|
|
|
10
10
|
|
|
11
11
|
## События
|
|
12
12
|
|
|
13
|
-
| Ключ
|
|
14
|
-
|
|
|
15
|
-
| `OPEN`
|
|
16
|
-
| `CHECK`
|
|
17
|
-
| `CLEAR`
|
|
18
|
-
| `SHOW`
|
|
19
|
-
| `
|
|
20
|
-
| `
|
|
21
|
-
| `
|
|
22
|
-
| `
|
|
23
|
-
| `
|
|
24
|
-
| `
|
|
25
|
-
| `
|
|
26
|
-
| `
|
|
13
|
+
| Ключ | Строка | Смысл |
|
|
14
|
+
| ------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
|
|
15
|
+
| `OPEN` | `vne:gallery:open` | Открыть экран или панель. |
|
|
16
|
+
| `CHECK` | `vne:gallery:check` | Проверить состояние или наличие ресурса. |
|
|
17
|
+
| `CLEAR` | `vne:gallery:clear` | Очистить накопленное состояние. |
|
|
18
|
+
| `SHOW` | `vne:gallery:show` | Показать UI или слой. |
|
|
19
|
+
| `SHOW_BEFORE` | `vne:gallery:show_before` | Хук перед показом: `gallery.controller.bg` пишет `bgSrc` в стейт. |
|
|
20
|
+
| `HIDE` | `vne:gallery:hide` | Скрыть UI или слой. |
|
|
21
|
+
| `PAGE_SET` | `vne:gallery:page_set` | Абсолютный прыжок пагинации UI (`{ pageIndex }`). |
|
|
22
|
+
| `TAB_SET` | `vne:gallery:tab_set` | Выбрать вкладку галереи (`{ tab }`). |
|
|
23
|
+
| `UPDATE` | `vne:gallery:update` | Обновить состояние или отображение. |
|
|
24
|
+
| `UPDATE_FAST` | `vne:gallery:update_fast` | Перерисовать view с `isFast`, без смены стейта. |
|
|
25
|
+
| `PRELOAD` | `vne:gallery:preload` | Событие `PRELOAD` namespace плагина. |
|
|
26
|
+
| `CHOOSE` | `vne:gallery:choose` | Событие `CHOOSE` namespace плагина. |
|
|
27
|
+
| `ACCEPT` | `vne:gallery:accept` | ACCEPT / INTERACT по выбранному слоту. |
|
|
28
|
+
| `STATE_UPDATE` | `vne:gallery:state_update` | Слить partial в стейт (`grid*`, `tab`, `pageIndex` / `pagesCount`, …). |
|
|
29
|
+
| `GRID_NEXT` | `vne:gallery:grid_next` | Край сетки вперёд; `gallery.controller.pages` слушает как `EVENT_PAGE_NEXT`. |
|
|
30
|
+
| `GRID_PREV` | `vne:gallery:grid_prev` | Край сетки назад; `gallery.controller.pages` слушает как `EVENT_PAGE_PREV`. |
|
|
31
|
+
| `GRID_CLEAR` | `vne:gallery:grid_clear` | Сбросить выбор ячейки: `gridRow` / `gridColumn` → `null` (+ `STATE_UPDATE`). |
|
|
32
|
+
| `GRID_UPDATE_ITEMS` | `vne:gallery:grid_update_items` | Пересобрать сетку из стейта (без payload) → `STATE_UPDATE` `{ gridItems }`. Meta — заранее через `STATE_UPDATE`. |
|
|
33
|
+
| `PAGE_ITEMS_GET` | `vne:gallery:page_items_get` | Собрать UI-слот из content (`CHECK` + media); возврат item. Вместо `ITEM_CREATE`. |
|
|
27
34
|
|
|
28
35
|
## Константы
|
|
29
36
|
|
|
@@ -49,16 +56,21 @@ ACCEPT/INTERACT эмитит `CHOOSE` только для выбранного
|
|
|
49
56
|
|
|
50
57
|
## Модули
|
|
51
58
|
|
|
52
|
-
| Модуль
|
|
53
|
-
|
|
|
54
|
-
| `gallery.controller.audio`
|
|
55
|
-
| `gallery.controller`
|
|
56
|
-
| `gallery.controller.
|
|
57
|
-
| `gallery.
|
|
58
|
-
| `gallery.
|
|
59
|
-
| `gallery.controller.
|
|
60
|
-
| `gallery`
|
|
61
|
-
| `gallery.
|
|
59
|
+
| Модуль | Зона ответственности |
|
|
60
|
+
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
61
|
+
| `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`. |
|
|
62
|
+
| `gallery.controller` | SHOW/HIDE; `beforeShow` → `SHOW_BEFORE` + `TAB_SET`; `STATE_UPDATE` / `UPDATE_FAST`; пустой `controls` на `ZINDEX`. |
|
|
63
|
+
| `gallery.controller.bg` | Наследует `@vnejs/module.controller.bg`: `SHOW_BEFORE` → `STATE_UPDATE` `{ bgSrc }`; PRELOAD → warm-cache фона; `MEMORY.CLEARED` при `isShow` → refresh `bgSrc` + `UPDATE_FAST`. |
|
|
64
|
+
| `gallery.controller.preload` | PRELOAD — page 0 первого таба через `PAGE_ITEMS_GET`; `MEMORY.CLEARED` при `isShow` — текущая / соседние страницы + page 0 остальных табов (`getItemsOnPage` / `getMaxPagesCount` на лету). |
|
|
65
|
+
| `gallery.controller.pages` | Наследует `@vnejs/module.controller.pages`: `EVENT_*` → `GALLERY`; `EVENT_PAGE_NEXT`/`PREV` = `GRID_NEXT`/`PREV`; `applyPage` → `STATE_UPDATE` `{ gridIndex, gridsCount }` + `GRID_UPDATE_ITEMS` + `MEMORY.CLEAR`; стейт `pageIndex` / `pagesCount` (пишет tabs). |
|
|
66
|
+
| `gallery.controller.pages.items` | На `PAGE_ITEMS_GET` собирает UI-слот: `CHECK` + media (`MEDIA.LOAD`); возврат item. |
|
|
67
|
+
| `gallery.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `ACCEPT` → `CHOOSE` только если слот открыт (`isOpened`, не stub); зеркалит `STATE_UPDATE` (`grid*`); PUSH/POP на SHOW/HIDE. |
|
|
68
|
+
| `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 позиции не входят). |
|
|
69
|
+
| `gallery.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
|
|
70
|
+
| `gallery.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }`. |
|
|
71
|
+
| `gallery.controller.tabs` | Наследник `ModuleControllerTabs`: `TAB_SET` → `applyTab` + `onTabSet` (`pageIndex: 0`, `pagesCount`, `GRID_CLEAR`, `STATE_UPDATE` `{ gridIndex, gridsCount }`, `GRID_UPDATE_ITEMS`; при `isUpdateView` — `UPDATE_FAST` + `MEMORY.CLEAR`); TAB_PREV/TAB_NEXT → `TAB_SET`. |
|
|
72
|
+
| `gallery` | Обрабатывает OPEN, CHECK, CLEAR. |
|
|
73
|
+
| `gallery.view` | Подмодуль `view` плагина. |
|
|
62
74
|
|
|
63
75
|
## Близкие плагины
|
|
64
76
|
|
|
@@ -68,10 +80,3 @@ ACCEPT/INTERACT эмитит `CHOOSE` только для выбранного
|
|
|
68
80
|
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
|
|
69
81
|
- [storage.md](../core/storage.md) — `STORAGE`: EVENTS.SET, EVENTS.GET, EVENTS.RM_ALL
|
|
70
82
|
- [system.md](../core/system.md) — `SYSTEM`: EVENTS.STARTED
|
|
71
|
-
|
|
72
|
-
### Остальные
|
|
73
|
-
|
|
74
|
-
- [audio.md](../audio/audio.md) — `AUDIO`: EVENTS.GLOBAL_PAUSE, EVENTS.PLAY, EVENTS.STOP, EVENTS.GLOBAL_RESUME, EVENTS.MEDIA_LOAD, EVENTS.VOLUME, EVENTS.VOLUME_CHANGED
|
|
75
|
-
- [music.md](../audio/music.md) — `MUSIC`: SETTINGS.VOLUME
|
|
76
|
-
- [controls.md](../controls/controls.md) — `CONTROLS`: CONST.BUTTONS.BACK, CONST.BUTTONS.MENU, CONST.BUTTONS.GAMEMENU, CONST.BUTTONS.ARROW_UP, CONST.BUTTONS.ARROW_RIGHT, CONST.BUTTONS.ARROW_BOTTOM, CONST.BUTTONS.ACCEPT, CONST.BUTTONS.INTERACT
|
|
77
|
-
- [layer.md](../canvas/layer.md) — `LAYER`: SETTINGS.QUALITY
|
|
@@ -1,25 +1,22 @@
|
|
|
1
1
|
# plugins/views.screens/history/
|
|
2
2
|
|
|
3
|
-
Пакет: `@vnejs/plugins.views.screens.history` · namespace: `
|
|
3
|
+
Пакет: `@vnejs/plugins.views.screens.history` · namespace: `HISTORY_VIEW`
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Экран журнала диалогов. Снапшоты и шаг назад — [scenario/history.md](../scenario/history.md) (`HISTORY`). Этот плагин в `bundles/vn.base`.
|
|
6
6
|
|
|
7
7
|
## События
|
|
8
8
|
|
|
9
|
-
| Ключ | Строка
|
|
10
|
-
| -------------- |
|
|
11
|
-
| `
|
|
12
|
-
| `
|
|
13
|
-
| `
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
| `STATE_UPDATE` | `vne:history:state_update` | Слить partial в стейт контроллера без UPDATE view. |
|
|
21
|
-
| `UPDATE_FAST` | `vne:history:update_fast` | Перерисовать view с `isFast`, стейт не меняет. |
|
|
22
|
-
| `ACCEPT` | `vne:history:accept` | Событие `ACCEPT` namespace плагина. |
|
|
9
|
+
| Ключ | Строка | Смысл |
|
|
10
|
+
| -------------- | ------------------------------- | --------------------------------------------------------------------- |
|
|
11
|
+
| `HIDE` | `vne:history_view:hide` | Скрыть экран. |
|
|
12
|
+
| `SHOW` | `vne:history_view:show` | Показать экран. |
|
|
13
|
+
| `CLICK` | `vne:history_view:click` | Клик по строке. Если `uid` есть в ключах журнала — `HISTORY.LOAD`. |
|
|
14
|
+
| `UPDATE` | `vne:history_view:update` | Перерисовать view. |
|
|
15
|
+
| `STATE_UPDATE` | `vne:history_view:state_update` | Слить partial в стейт контроллера без UPDATE view. |
|
|
16
|
+
| `UPDATE_FAST` | `vne:history_view:update_fast` | Перерисовать view с `isFast`, стейт не меняет. |
|
|
17
|
+
| `ACCEPT` | `vne:history_view:accept` | `ACCEPT` / `INTERACT` → `CLICK` по `currentArrowVerticalItem`. |
|
|
18
|
+
|
|
19
|
+
Строки журнала и шаг назад — `EVENTS.HISTORY.GET` / `KEYS` / `LOAD` / `BACK` / `ADD` (`scenario/history`).
|
|
23
20
|
|
|
24
21
|
## Константы
|
|
25
22
|
|
|
@@ -29,11 +26,10 @@
|
|
|
29
26
|
|
|
30
27
|
| Ключ | Тип | Смысл |
|
|
31
28
|
| ------------ | -------- | ------------------------------------ |
|
|
32
|
-
| `
|
|
33
|
-
| `
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
36
|
-
| `VIEW_PROPS` | `string` | Значение по умолчанию: "VIEW_PROPS". |
|
|
29
|
+
| `ZINDEX` | `number` | Значение по умолчанию: 2000. |
|
|
30
|
+
| `TRANSITION` | `number` | Значение по умолчанию: 300. |
|
|
31
|
+
| `LOC_LABEL` | `string` | Метка локализации view (`history`). |
|
|
32
|
+
| `VIEW_PROPS` | `object` | Раскладка экрана, строк и кнопки закрытия. |
|
|
37
33
|
|
|
38
34
|
## Настройки
|
|
39
35
|
|
|
@@ -43,34 +39,21 @@
|
|
|
43
39
|
|
|
44
40
|
| Модуль | Зона ответственности |
|
|
45
41
|
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
46
|
-
| `history.controller` | SHOW/HIDE/CLICK/STATE_UPDATE/UPDATE_FAST; перед SHOW резолвит тексты строк (`TEXT.REPLACE`). Для `locKey` — через `PARAMS.
|
|
42
|
+
| `history.controller` | SHOW/HIDE/CLICK/STATE_UPDATE/UPDATE_FAST; перед SHOW резолвит тексты строк (`TEXT.REPLACE`). Для `locKey` — через `PARAMS.HISTORY_VIEW.LOC_LABEL` (локализация view), иначе через label сценария. Пустой `controls` на `ZINDEX`, чтобы стопорить слои ниже. |
|
|
47
43
|
| `history.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `ACCEPT` → `CLICK` по `currentArrowVerticalItem`; зеркалит `STATE_UPDATE`; PUSH/POP на SHOW/HIDE. |
|
|
48
44
|
| `history.controller.arrows` | Наследует `@vnejs/module.controller.arrows.vertical`: `ARROW_UP` / `ARROW_BOTTOM` по записям журнала; PUSH/POP controls на SHOW/HIDE; эмитит `STATE_UPDATE` с `{ currentArrowVerticalItem }` и `UPDATE_FAST`. |
|
|
49
45
|
| `history.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
|
|
50
46
|
| `history.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` → `HIDE` с `{ isForce: true }` (`IS_STATE_CLEAR_ENABLED = false`). |
|
|
51
|
-
| `history` | `MEMORY.REG` в `setup`; ADD, GET, LOAD, BACK, …. |
|
|
52
47
|
| `history.view` | Подмодуль `view` плагина. |
|
|
53
48
|
|
|
54
|
-
## Compatibility
|
|
55
|
-
|
|
56
|
-
### `compatibility/scenario.choose/views.screens.history/`
|
|
57
|
-
|
|
58
|
-
Пакет: `@vnejs/compatibility.scenario.choose-with-views.screens.history`
|
|
59
|
-
|
|
60
|
-
На `CHOOSE.OPTION_BEFORE_REG` добавляет в историю запись `{ locKey: "choice" }`. Перевод — ключ `choice` в `history.json` (например «Выбор...»).
|
|
61
|
-
|
|
62
49
|
## Близкие плагины
|
|
63
50
|
|
|
64
51
|
### plugins/core/
|
|
65
52
|
|
|
66
53
|
- [logs.md](../core/logs.md) — `LOGS`: emitLog
|
|
67
|
-
- [memory.md](../core/memory.md) — `MEMORY`: EVENTS.REG, EVENTS.SET, EVENTS.KEYS, EVENTS.GET
|
|
68
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.LABEL_GET
|
|
69
|
-
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR, EVENTS.GET, EVENTS.LOAD
|
|
70
|
-
- [vendors.md](../core/vendors.md) — `VENDORS`: emitClone, EVENTS.UID
|
|
71
54
|
|
|
72
55
|
### Остальные
|
|
73
56
|
|
|
57
|
+
- [scenario/history.md](../scenario/history.md) — `HISTORY`: `GET` / `KEYS` / `LOAD`; запись журнала и `BACK`
|
|
74
58
|
- [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
|
|
75
59
|
- [text.md](../text/text.md) — `TEXT`: EVENTS.REPLACE
|
|
76
|
-
- [choose.md](../scenario/choose.md) — `CHOOSE`: связка через compatibility выше (`OPTION_BEFORE_REG`)
|
|
@@ -6,14 +6,17 @@
|
|
|
6
6
|
|
|
7
7
|
## События
|
|
8
8
|
|
|
9
|
-
| Ключ
|
|
10
|
-
|
|
|
11
|
-
| `SHOW`
|
|
12
|
-
| `
|
|
13
|
-
| `
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
9
|
+
| Ключ | Строка | Смысл |
|
|
10
|
+
| -------------- | ------------------------ | --------------------------------------- |
|
|
11
|
+
| `SHOW` | `vne:intro:show` | Показать UI или слой. |
|
|
12
|
+
| `SHOW_BEFORE` | `vne:intro:show_before` | Хук перед показом: пишет `bgSrc`. |
|
|
13
|
+
| `HIDE` | `vne:intro:hide` | Скрыть UI или слой. |
|
|
14
|
+
| `CLICK` | `vne:intro:click` | Продвинуть сценарий к следующей строке. |
|
|
15
|
+
| `UPDATE` | `vne:intro:update` | Обновить состояние или отображение. |
|
|
16
|
+
| `UPDATE_FAST` | `vne:intro:update_fast` | Перерисовать view с `isFast`. |
|
|
17
|
+
| `SKIP` | `vne:intro:skip` | Продвинуть сценарий к следующей строке. |
|
|
18
|
+
| `INTERACT` | `vne:intro:interact` | Продвинуть сценарий к следующей строке. |
|
|
19
|
+
| `STATE_UPDATE` | `vne:intro:state_update` | Слить partial в стейт. |
|
|
17
20
|
|
|
18
21
|
## Константы
|
|
19
22
|
|
|
@@ -31,11 +34,12 @@
|
|
|
31
34
|
|
|
32
35
|
## Модули
|
|
33
36
|
|
|
34
|
-
| Модуль
|
|
35
|
-
|
|
|
36
|
-
| `intro.controller`
|
|
37
|
-
| `intro`
|
|
38
|
-
| `intro
|
|
37
|
+
| Модуль | Зона ответственности |
|
|
38
|
+
| --------------------- | ---------------------------------------------------------------------------------------- |
|
|
39
|
+
| `intro.controller` | SHOW/HIDE; `beforeShow` → `SHOW_BEFORE`; `STATE_UPDATE` / `UPDATE_FAST`; ANY → INTERACT. |
|
|
40
|
+
| `intro.controller.bg` | Наследует `@vnejs/module.controller.bg`: `SHOW_BEFORE` → `bgSrc`; `start` preload. |
|
|
41
|
+
| `intro` | Связь со сценарием: шаг next после завершения действия. |
|
|
42
|
+
| `intro.view` | Подмодуль `view` плагина. |
|
|
39
43
|
|
|
40
44
|
## Близкие плагины
|
|
41
45
|
|
|
@@ -6,12 +6,15 @@
|
|
|
6
6
|
|
|
7
7
|
## События
|
|
8
8
|
|
|
9
|
-
| Ключ
|
|
10
|
-
|
|
|
11
|
-
| `SHOW`
|
|
12
|
-
| `
|
|
13
|
-
| `
|
|
14
|
-
| `
|
|
9
|
+
| Ключ | Строка | Смысл |
|
|
10
|
+
| -------------- | -------------------------- | ----------------------------------------- |
|
|
11
|
+
| `SHOW` | `vne:loading:show` | Показать UI или слой. |
|
|
12
|
+
| `SHOW_BEFORE` | `vne:loading:show_before` | Хук перед показом: пишет `bgSrc`. |
|
|
13
|
+
| `HIDE` | `vne:loading:hide` | Скрыть UI или слой. |
|
|
14
|
+
| `EMIT` | `vne:loading:emit` | Записать диагностическое сообщение в лог. |
|
|
15
|
+
| `UPDATE` | `vne:loading:update` | Обновить состояние или отображение. |
|
|
16
|
+
| `UPDATE_FAST` | `vne:loading:update_fast` | Перерисовать view с `isFast`. |
|
|
17
|
+
| `STATE_UPDATE` | `vne:loading:state_update` | Слить partial в стейт. |
|
|
15
18
|
|
|
16
19
|
## Константы
|
|
17
20
|
|
|
@@ -29,11 +32,12 @@
|
|
|
29
32
|
|
|
30
33
|
## Модули
|
|
31
34
|
|
|
32
|
-
| Модуль
|
|
33
|
-
|
|
|
34
|
-
| `loading.controller`
|
|
35
|
-
| `loading`
|
|
36
|
-
| `loading
|
|
35
|
+
| Модуль | Зона ответственности |
|
|
36
|
+
| ----------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
|
37
|
+
| `loading.controller` | SHOW/HIDE; `beforeShow` → `SHOW_BEFORE`; `STATE_UPDATE` / `UPDATE_FAST`. |
|
|
38
|
+
| `loading.controller.bg` | Наследует `@vnejs/module.controller.bg`: `SHOW_BEFORE` → `bgSrc`; `start`; `MEMORY.CLEARED` refresh при `isShow`. |
|
|
39
|
+
| `loading` | Точка входа emit: подготовка и запуск process. |
|
|
40
|
+
| `loading.view` | Подмодуль `view` плагина. |
|
|
37
41
|
|
|
38
42
|
## Близкие плагины
|
|
39
43
|
|
|
@@ -8,18 +8,19 @@
|
|
|
8
8
|
|
|
9
9
|
## События
|
|
10
10
|
|
|
11
|
-
| Ключ | Строка | Смысл
|
|
12
|
-
| -------------- | --------------------------- |
|
|
13
|
-
| `HIDE` | `vne:mainmenu:hide` | Скрыть UI или слой.
|
|
14
|
-
| `SHOW` | `vne:mainmenu:show` | Показать UI или слой.
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
18
|
-
| `
|
|
19
|
-
| `
|
|
20
|
-
| `
|
|
21
|
-
| `
|
|
22
|
-
| `
|
|
11
|
+
| Ключ | Строка | Смысл |
|
|
12
|
+
| -------------- | --------------------------- | -------------------------------------------------------------------- |
|
|
13
|
+
| `HIDE` | `vne:mainmenu:hide` | Скрыть UI или слой. |
|
|
14
|
+
| `SHOW` | `vne:mainmenu:show` | Показать UI или слой. |
|
|
15
|
+
| `SHOW_BEFORE` | `vne:mainmenu:show_before` | Хук перед показом: начальный `bgSrc` через `mainmenu.controller.bg`. |
|
|
16
|
+
| `ITEMS` | `vne:mainmenu:items` | Событие `ITEMS` namespace плагина. |
|
|
17
|
+
| `PRELOAD` | `vne:mainmenu:preload` | Предзагрузить метки `PRELOAD_LABELS` и события `PRELOAD_EVENTS`. |
|
|
18
|
+
| `CLICK` | `vne:mainmenu:click` | Событие `CLICK` namespace плагина. |
|
|
19
|
+
| `ACCEPT` | `vne:mainmenu:accept` | Событие `ACCEPT` namespace плагина. |
|
|
20
|
+
| `UPDATE` | `vne:mainmenu:update` | Обновить состояние или отображение. |
|
|
21
|
+
| `STATE_UPDATE` | `vne:mainmenu:state_update` | Слить partial в стейт контроллера без UPDATE view. |
|
|
22
|
+
| `UPDATE_FORCE` | `vne:mainmenu:update_force` | Перерисовать view с `isForce`, стейт не меняет. |
|
|
23
|
+
| `UPDATE_FAST` | `vne:mainmenu:update_fast` | Перерисовать view с `isFast`, стейт не меняет. |
|
|
23
24
|
|
|
24
25
|
## Константы
|
|
25
26
|
|
|
@@ -48,7 +49,8 @@
|
|
|
48
49
|
|
|
49
50
|
| Модуль | Зона ответственности |
|
|
50
51
|
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
51
|
-
| `mainmenu.controller` |
|
|
52
|
+
| `mainmenu.controller` | UPDATE, SHOW, HIDE, STATE_UPDATE, UPDATE_FAST, UPDATE_FORCE; `beforeShow` → `SHOW_BEFORE` + ITEMS. На SHOW пушит пустой `controls` на `ZINDEX`. |
|
|
53
|
+
| `mainmenu.controller.bg` | Наследует `@vnejs/module.controller.bg`: начальный `bgSrc` на `SHOW_BEFORE`; `start` / `STATE.CLEAR` preload. Ротацию не трогает. |
|
|
52
54
|
| `mainmenu.hide` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }`. |
|
|
53
55
|
| `mainmenu.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `ACCEPT` → `CLICK` по `currentArrowVerticalItem`; зеркалит `STATE_UPDATE`; PUSH/POP на SHOW/HIDE. |
|
|
54
56
|
| `mainmenu.controller.arrows` | Наследует `@vnejs/module.controller.arrows.vertical`: `ARROW_UP` / `ARROW_BOTTOM` по видимым пунктам; PUSH/POP controls на SHOW/HIDE; эмитит `STATE_UPDATE` с `{ currentArrowVerticalItem }` и `UPDATE_FAST`. |
|
|
@@ -8,19 +8,26 @@ ACCEPT/INTERACT повторяет клик по слоту: на вкладке
|
|
|
8
8
|
|
|
9
9
|
## События
|
|
10
10
|
|
|
11
|
-
| Ключ
|
|
12
|
-
|
|
|
13
|
-
| `SHOW`
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
18
|
-
| `
|
|
19
|
-
| `
|
|
20
|
-
| `
|
|
21
|
-
| `
|
|
22
|
-
| `
|
|
23
|
-
| `
|
|
11
|
+
| Ключ | Строка | Смысл |
|
|
12
|
+
| ------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
13
|
+
| `SHOW` | `vne:save_view:show` | Показать UI или слой. |
|
|
14
|
+
| `SHOW_BEFORE` | `vne:save_view:show_before` | Хук перед показом: `save.controller.bg` пишет `bgSrc` в стейт. |
|
|
15
|
+
| `HIDE` | `vne:save_view:hide` | Скрыть UI или слой. |
|
|
16
|
+
| `PAGE_SET` | `vne:save_view:page_set` | Абсолютный прыжок пагинации UI (`{ pageIndex }`). |
|
|
17
|
+
| `TAB_SET` | `vne:save_view:tab_set` | Выбрать вкладку save/load/autosave (`{ tab }`). |
|
|
18
|
+
| `CREATE` | `vne:save_view:create` | Создать слот (`{ key, group }`) → `SAVE.CREATE`. |
|
|
19
|
+
| `DELETE` | `vne:save_view:delete` | Удалить слот (`{ key, group }`) → `SAVE.DELETE`. |
|
|
20
|
+
| `LOAD` | `vne:save_view:load` | Загрузить слот (`{ key, group }`) → `SAVE.PRELOAD` / `SAVE.LOAD`. |
|
|
21
|
+
| `UPDATE` | `vne:save_view:update` | Обновить состояние или отображение. |
|
|
22
|
+
| `UPDATE_FAST` | `vne:save_view:update_fast` | Перерисовать view с `isFast`, без смены стейта. |
|
|
23
|
+
| `PRELOAD` | `vne:save_view:preload` | Событие `PRELOAD` namespace плагина. |
|
|
24
|
+
| `ACCEPT` | `vne:save_view:accept` | ACCEPT / INTERACT по выбранному слоту. |
|
|
25
|
+
| `STATE_UPDATE` | `vne:save_view:state_update` | Слить partial в стейт controller/accept/grid без UPDATE view. |
|
|
26
|
+
| `GRID_NEXT` | `vne:save_view:grid_next` | Край сетки вперёд; `save.controller.pages` слушает как `EVENT_PAGE_NEXT` (намеренный мост, без знания сетки в pages). |
|
|
27
|
+
| `GRID_PREV` | `vne:save_view:grid_prev` | Край сетки назад; `save.controller.pages` слушает как `EVENT_PAGE_PREV`. |
|
|
28
|
+
| `GRID_CLEAR` | `vne:save_view:grid_clear` | Сбросить выбор ячейки: `gridRow` / `gridColumn` → `null` (+ `STATE_UPDATE`). |
|
|
29
|
+
| `GRID_UPDATE_ITEMS` | `vne:save_view:grid_update_items` | Пересобрать сетку из стейта (без payload) → `STATE_UPDATE` `{ gridItems }`. Meta (`gridIndex` / `gridsCount` / `tab`) — заранее через `STATE_UPDATE`. |
|
|
30
|
+
| `SLOT_CREATE` | `vne:save_view:slot_create` | Собрать UI-слот (`{ key, group, index }`) → `SAVE.GET` + дата/время; возврат item. |
|
|
24
31
|
|
|
25
32
|
## Константы
|
|
26
33
|
|
|
@@ -39,16 +46,21 @@ ACCEPT/INTERACT повторяет клик по слоту: на вкладке
|
|
|
39
46
|
|
|
40
47
|
## Модули
|
|
41
48
|
|
|
42
|
-
| Модуль
|
|
43
|
-
|
|
|
44
|
-
| `save.controller.audio`
|
|
45
|
-
| `save.controller`
|
|
46
|
-
| `save.controller.
|
|
47
|
-
| `save.
|
|
48
|
-
| `save.
|
|
49
|
-
| `save.controller.
|
|
50
|
-
| `save.controller.
|
|
51
|
-
| `save.view`
|
|
49
|
+
| Модуль | Зона ответственности |
|
|
50
|
+
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
51
|
+
| `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`. |
|
|
52
|
+
| `save.controller` | SHOW/HIDE; `beforeShow` → `SHOW_BEFORE` + `TAB_SET`; `STATE_UPDATE` / `UPDATE_FAST`; пустой `controls` на `ZINDEX`. |
|
|
53
|
+
| `save.controller.bg` | Наследует `@vnejs/module.controller.bg`: `SHOW_BEFORE` → `bgSrc`; PRELOAD / `start`; `MEMORY.CLEARED` — preload и refresh при `isShow`. |
|
|
54
|
+
| `save.controller.actions` | CREATE → `SAVE.CREATE`, DELETE → `SAVE.DELETE`; `group` из payload или `getSaveGroup` (autosave / `pageIndex`); затем `GRID_UPDATE_ITEMS` + `UPDATE_FAST`. |
|
|
55
|
+
| `save.controller.pages` | Наследует `@vnejs/module.controller.pages`: `EVENT_*` → `SAVE_VIEW`; `applyPage` → `STATE_UPDATE` `{ gridIndex, gridsCount }` + `GRID_UPDATE_ITEMS`; `init` пишет `pagesCount`. |
|
|
56
|
+
| `save.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `ACCEPT` → `CREATE` на вкладке save, иначе `LOAD` при `screen`; зеркалит `STATE_UPDATE`; PUSH/POP на SHOW/HIDE. |
|
|
57
|
+
| `save.controller.grid` | Наследует `@vnejs/module.controller.arrows.grid`: четыре стрелки; `isDisableGridChangeVertical = true` (вертикаль не листает страницы); на краю колонок — `GRID_NEXT`/`PREV`; `GRID_CLEAR`; `GRID_UPDATE_ITEMS` → `getGridItems` / `STATE_UPDATE` `{ gridItems }`. |
|
|
58
|
+
| `save.view.slot` | На `SLOT_CREATE` собирает UI-слот: `SAVE.GET` → `screen` / `ts` / `date` / `time` / `locKey`. |
|
|
59
|
+
| `save.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
|
|
60
|
+
| `save.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }`. |
|
|
61
|
+
| `save.controller.tabs` | Наследник `ModuleControllerTabs`: `TAB_SET` → `applyTab` + `onTabSet` (`pageIndex: 0`, `GRID_CLEAR`, `STATE_UPDATE` `{ gridIndex, gridsCount }`, `GRID_UPDATE_ITEMS`, опционально `UPDATE_FAST`); TAB_PREV/TAB_NEXT → `TAB_SET`; `getTabKeys` фильтрует SAVE vs LOAD/AUTOSAVE. |
|
|
62
|
+
| `save.controller.load` | Подмодуль `controller.load` плагина. |
|
|
63
|
+
| `save.view` | Подмодуль `view` плагина. |
|
|
52
64
|
|
|
53
65
|
## Близкие плагины
|
|
54
66
|
|
|
@@ -65,7 +77,7 @@ ACCEPT/INTERACT повторяет клик по слоту: на вкладке
|
|
|
65
77
|
- [audio.md](../audio/audio.md) — `AUDIO`: EVENTS.GLOBAL_PAUSE, EVENTS.PLAY, EVENTS.STOP, EVENTS.GLOBAL_RESUME, EVENTS.MEDIA_LOAD, EVENTS.VOLUME, EVENTS.VOLUME_CHANGED
|
|
66
78
|
- [music.md](../audio/music.md) — `MUSIC`: SETTINGS.VOLUME
|
|
67
79
|
- [confirm.md](./confirm.md) — `CONFIRM`: EVENTS.EMIT
|
|
68
|
-
- [controls.md](../controls/controls.md) — `CONTROLS`: CONST.BUTTONS.BACK, CONST.BUTTONS.MENU, CONST.BUTTONS.GAMEMENU, CONST.BUTTONS.ARROW_UP, CONST.BUTTONS.ARROW_RIGHT, CONST.BUTTONS.ARROW_BOTTOM, CONST.BUTTONS.ACCEPT, CONST.BUTTONS.INTERACT
|
|
80
|
+
- [controls.md](../controls/controls.md) — `CONTROLS`: CONST.BUTTONS.BACK, CONST.BUTTONS.MENU, CONST.BUTTONS.GAMEMENU, CONST.BUTTONS.ARROW_UP, CONST.BUTTONS.ARROW_RIGHT, CONST.BUTTONS.ARROW_BOTTOM, CONST.BUTTONS.ARROW_LEFT, CONST.BUTTONS.ACCEPT, CONST.BUTTONS.INTERACT
|
|
69
81
|
- [loading.md](./loading.md) — `LOADING`: EVENTS.EMIT
|
|
70
82
|
- [locs.md](../text/locs.md) — `LOCS`: EVENTS.GET
|
|
71
83
|
- [save.md](../save/save.md) — `SAVE`: EVENTS.CREATE, EVENTS.DELETE, EVENTS.GET, EVENTS.PRELOAD, EVENTS.LOAD
|
|
@@ -8,14 +8,17 @@ Breaking: раньше namespace был `SETTINGS_DEFAULTS`, события `vne
|
|
|
8
8
|
|
|
9
9
|
## События
|
|
10
10
|
|
|
11
|
-
| Ключ
|
|
12
|
-
|
|
|
13
|
-
| `UPDATE`
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
| Ключ | Строка | Смысл |
|
|
12
|
+
| -------------- | ---------------------------------------- | --------------------------------------- |
|
|
13
|
+
| `UPDATE` | `vne:settings_default_view:update` | Обновить состояние или отображение. |
|
|
14
|
+
| `UPDATE_FAST` | `vne:settings_default_view:update_fast` | Перерисовать view с `isFast`. |
|
|
15
|
+
| `SHOW` | `vne:settings_default_view:show` | Показать UI или слой. |
|
|
16
|
+
| `SHOW_BEFORE` | `vne:settings_default_view:show_before` | Хук перед показом: пишет `bgSrc`. |
|
|
17
|
+
| `HIDE` | `vne:settings_default_view:hide` | Скрыть UI или слой. |
|
|
18
|
+
| `CONFIRM` | `vne:settings_default_view:confirm` | Продвинуть сценарий к следующей строке. |
|
|
19
|
+
| `STATE_UPDATE` | `vne:settings_default_view:state_update` | Слить partial в стейт. |
|
|
20
|
+
|
|
21
|
+
На `SHOW_BEFORE` fields-модуль эмитит `SETTINGS_VIEW.SHOW` с `{ tab: TABS[CONST.SETTINGS_VIEW.DEFAULT_TAB], tabKey: CONST.SETTINGS_VIEW.DEFAULT_TAB, locs }`; на `HIDE` — `SETTINGS_VIEW.HIDE`.
|
|
19
22
|
|
|
20
23
|
## Константы
|
|
21
24
|
|
|
@@ -37,7 +40,9 @@ Breaking: раньше namespace был `SETTINGS_DEFAULTS`, события `vne
|
|
|
37
40
|
|
|
38
41
|
| Модуль | Зона ответственности |
|
|
39
42
|
| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
40
|
-
| `settings.default.controller` | SHOW/HIDE;
|
|
43
|
+
| `settings.default.controller` | SHOW/HIDE; `beforeShow` → `SHOW_BEFORE`; `STATE_UPDATE` / `UPDATE_FAST`. |
|
|
44
|
+
| `settings.default.controller.bg` | Наследует `@vnejs/module.controller.bg`: `SHOW_BEFORE` → `bgSrc`; `MEMORY.CLEARED` при `isShow` → refresh. |
|
|
45
|
+
| `settings.default.controller.fields` | На `SHOW_BEFORE`: `STATE_UPDATE` `{ tab }` + `SETTINGS_VIEW.SHOW` с `CONST.SETTINGS_VIEW.DEFAULT_TAB`. |
|
|
41
46
|
| `settings.default.controller.accept` | Наследует `@vnejs/module.controller.accept`: только `ACCEPT` (`IS_INTERACT_ENABLED = false`) → `CONFIRM` → `INITED`, `HIDE`, `emitNext`; PUSH/POP на SHOW/HIDE. |
|
|
42
47
|
| `settings.default` | `SETTINGS.INIT` INITED в `setup`; `LINE_EXEC` как `$ settings.defaults` → `SHOW`, либо `emitNext` при `skip_if_possible` и `INITED`. |
|
|
43
48
|
| `settings.default.view` | Chrome: title + кнопка Accept. |
|
|
@@ -53,5 +58,5 @@ Breaking: раньше namespace был `SETTINGS_DEFAULTS`, события `vne
|
|
|
53
58
|
|
|
54
59
|
### Остальные
|
|
55
60
|
|
|
56
|
-
- [settings.md](../views/settings.md) — `SETTINGS_VIEW`:
|
|
61
|
+
- [settings.md](../views/settings.md) — `SETTINGS_VIEW`: `CONST.DEFAULT_TAB`, стрелки
|
|
57
62
|
- [controls.md](../controls/controls.md) — `CONTROLS`: CONST.BUTTONS.ACCEPT
|
|
@@ -6,15 +6,18 @@
|
|
|
6
6
|
|
|
7
7
|
## События
|
|
8
8
|
|
|
9
|
-
| Ключ
|
|
10
|
-
|
|
|
11
|
-
| `SHOW`
|
|
12
|
-
| `
|
|
13
|
-
| `
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
| Ключ | Строка | Смысл |
|
|
10
|
+
| -------------- | --------------------------------------- | ----------------------------------------------------------------------------------- |
|
|
11
|
+
| `SHOW` | `vne:settings_screen_view:show` | Показать UI или слой. |
|
|
12
|
+
| `SHOW_BEFORE` | `vne:settings_screen_view:show_before` | Хук перед показом: bg + `settings.screen.controller.fields` → `SETTINGS_VIEW.SHOW`. |
|
|
13
|
+
| `HIDE` | `vne:settings_screen_view:hide` | Скрыть UI или слой. |
|
|
14
|
+
| `UPDATE` | `vne:settings_screen_view:update` | Обновить состояние или отображение. |
|
|
15
|
+
| `UPDATE_FAST` | `vne:settings_screen_view:update_fast` | Перерисовать view с `isFast`, без смены стейта. |
|
|
16
|
+
| `PRELOAD` | `vne:settings_screen_view:preload` | Событие `PRELOAD` namespace плагина. |
|
|
17
|
+
| `TAB_SET` | `vne:settings_screen_view:tab_set` | Выбрать вкладку по ключу из `PARAMS.SETTINGS_VIEW.TABS` (`{ tab: string }`). |
|
|
18
|
+
| `STATE_UPDATE` | `vne:settings_screen_view:state_update` | Слить partial в стейт (в т.ч. `{ tab }` из tabs-модуля). |
|
|
19
|
+
|
|
20
|
+
На `SHOW_BEFORE` fields-модуль эмитит `SETTINGS_VIEW.SHOW` с `{ tab, tabs, tabKey, locs }`; на `TAB_SET` экрана tabs-модуль шлёт `STATE_UPDATE` `{ tab }`, `SETTINGS_VIEW.TAB_SET` и `UPDATE_FAST`; на `HIDE` — `SETTINGS_VIEW.HIDE`.
|
|
18
21
|
|
|
19
22
|
## Константы
|
|
20
23
|
|
|
@@ -36,14 +39,16 @@
|
|
|
36
39
|
|
|
37
40
|
## Модули
|
|
38
41
|
|
|
39
|
-
| Модуль
|
|
40
|
-
|
|
|
41
|
-
| `settings.screen.controller.audio`
|
|
42
|
-
| `settings.screen.controller`
|
|
43
|
-
| `settings.screen.
|
|
44
|
-
| `settings.screen.
|
|
45
|
-
| `settings.screen.
|
|
46
|
-
| `settings.screen.
|
|
42
|
+
| Модуль | Зона ответственности |
|
|
43
|
+
| ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
44
|
+
| `settings.screen.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`. |
|
|
45
|
+
| `settings.screen.controller` | SHOW/HIDE; `beforeShow` → `SHOW_BEFORE`; `STATE_UPDATE` → `updateState`; `UPDATE_FAST`. Пустой `controls` на `ZINDEX`. |
|
|
46
|
+
| `settings.screen.controller.bg` | Наследует `@vnejs/module.controller.bg`: `SHOW_BEFORE` → `bgSrc`; PRELOAD; `MEMORY.CLEARED` — preload и refresh при `isShow`. |
|
|
47
|
+
| `settings.screen.controller.fields` | На `SHOW_BEFORE`: фильтр tabs (`showInSettings`) → `STATE_UPDATE` `{ tabs, tab }` → `SETTINGS_VIEW.SHOW`. |
|
|
48
|
+
| `settings.screen.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
|
|
49
|
+
| `settings.screen.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }`. |
|
|
50
|
+
| `settings.screen.controller.tabs` | Наследник `ModuleControllerTabs`: `TAB_SET` → `applyTab` + `onTabSet` (`SETTINGS_VIEW.TAB_SET` + `UPDATE_FAST`); TAB_PREV/TAB_NEXT → `TAB_SET`; `getTabKeys` по `showInSettings`. |
|
|
51
|
+
| `settings.screen.view` | Chrome экрана (Screen, tabs, cross); поля и example text — в `SETTINGS_VIEW`. |
|
|
47
52
|
|
|
48
53
|
## Близкие плагины
|
|
49
54
|
|
|
@@ -3,14 +3,15 @@
|
|
|
3
3
|
| | |
|
|
4
4
|
| -------------- | ------------------------------------------------- |
|
|
5
5
|
| Тип | `module` (`$`) |
|
|
6
|
-
| Сигнатура | `$ pause`
|
|
7
|
-
| Actions / args |
|
|
6
|
+
| Сигнатура | `$ pause [time]` |
|
|
7
|
+
| Actions / args | необязательный `time` (мс) |
|
|
8
8
|
| Plugin doc | [scenario/pause.md](../plugins/scenario/pause.md) |
|
|
9
9
|
|
|
10
10
|
## Примеры
|
|
11
11
|
|
|
12
12
|
```vne
|
|
13
13
|
$ pause
|
|
14
|
+
$ pause 300
|
|
14
15
|
```
|
|
15
16
|
|
|
16
17
|
Source of truth: `SCENARIO_COMMANDS` в соответствующем `contracts/**/commands.ts`.
|