@rpgjs/client 5.0.0-beta.1 → 5.0.0-beta.11

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 (245) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/LICENSE +19 -0
  3. package/dist/Game/AnimationManager.d.ts +1 -1
  4. package/dist/Game/AnimationManager.js +18 -9
  5. package/dist/Game/AnimationManager.js.map +1 -1
  6. package/dist/Game/AnimationManager.spec.d.ts +1 -0
  7. package/dist/Game/Event.js.map +1 -1
  8. package/dist/Game/Map.d.ts +9 -1
  9. package/dist/Game/Map.js +63 -5
  10. package/dist/Game/Map.js.map +1 -1
  11. package/dist/Game/Object.d.ts +47 -15
  12. package/dist/Game/Object.js +82 -38
  13. package/dist/Game/Object.js.map +1 -1
  14. package/dist/Game/Player.js.map +1 -1
  15. package/dist/Game/ProjectileManager.d.ts +89 -0
  16. package/dist/Game/ProjectileManager.js +179 -0
  17. package/dist/Game/ProjectileManager.js.map +1 -0
  18. package/dist/Game/ProjectileManager.spec.d.ts +1 -0
  19. package/dist/Gui/Gui.d.ts +17 -4
  20. package/dist/Gui/Gui.js +78 -48
  21. package/dist/Gui/Gui.js.map +1 -1
  22. package/dist/Gui/Gui.spec.d.ts +1 -0
  23. package/dist/Gui/NotificationManager.js.map +1 -1
  24. package/dist/Resource.js +1 -1
  25. package/dist/Resource.js.map +1 -1
  26. package/dist/RpgClient.d.ts +110 -15
  27. package/dist/RpgClientEngine.d.ts +86 -10
  28. package/dist/RpgClientEngine.js +306 -49
  29. package/dist/RpgClientEngine.js.map +1 -1
  30. package/dist/Sound.js.map +1 -1
  31. package/dist/_virtual/{_@oxc-project_runtime@0.122.0 → _@oxc-project_runtime@0.130.0}/helpers/decorate.js +1 -1
  32. package/dist/_virtual/{_@oxc-project_runtime@0.122.0 → _@oxc-project_runtime@0.130.0}/helpers/decorateMetadata.js +1 -1
  33. package/dist/components/animations/animation.ce.js +4 -5
  34. package/dist/components/animations/animation.ce.js.map +1 -1
  35. package/dist/components/animations/hit.ce.js +19 -25
  36. package/dist/components/animations/hit.ce.js.map +1 -1
  37. package/dist/components/animations/index.js +4 -4
  38. package/dist/components/animations/index.js.map +1 -1
  39. package/dist/components/character.ce.js +422 -240
  40. package/dist/components/character.ce.js.map +1 -1
  41. package/dist/components/dynamics/bar.ce.js +97 -0
  42. package/dist/components/dynamics/bar.ce.js.map +1 -0
  43. package/dist/components/dynamics/image.ce.js +24 -0
  44. package/dist/components/dynamics/image.ce.js.map +1 -0
  45. package/dist/components/dynamics/parse-value.d.ts +3 -0
  46. package/dist/components/dynamics/parse-value.js +54 -35
  47. package/dist/components/dynamics/parse-value.js.map +1 -1
  48. package/dist/components/dynamics/parse-value.spec.d.ts +1 -0
  49. package/dist/components/dynamics/shape-utils.d.ts +16 -0
  50. package/dist/components/dynamics/shape-utils.js +73 -0
  51. package/dist/components/dynamics/shape-utils.js.map +1 -0
  52. package/dist/components/dynamics/shape-utils.spec.d.ts +1 -0
  53. package/dist/components/dynamics/shape.ce.js +84 -0
  54. package/dist/components/dynamics/shape.ce.js.map +1 -0
  55. package/dist/components/dynamics/text.ce.js +34 -56
  56. package/dist/components/dynamics/text.ce.js.map +1 -1
  57. package/dist/components/gui/box.ce.js +6 -8
  58. package/dist/components/gui/box.ce.js.map +1 -1
  59. package/dist/components/gui/dialogbox/index.ce.js +56 -62
  60. package/dist/components/gui/dialogbox/index.ce.js.map +1 -1
  61. package/dist/components/gui/gameover.ce.js +42 -65
  62. package/dist/components/gui/gameover.ce.js.map +1 -1
  63. package/dist/components/gui/hud/hud.ce.js +21 -30
  64. package/dist/components/gui/hud/hud.ce.js.map +1 -1
  65. package/dist/components/gui/menu/equip-menu.ce.js +112 -165
  66. package/dist/components/gui/menu/equip-menu.ce.js.map +1 -1
  67. package/dist/components/gui/menu/exit-menu.ce.js +8 -6
  68. package/dist/components/gui/menu/exit-menu.ce.js.map +1 -1
  69. package/dist/components/gui/menu/items-menu.ce.js +52 -69
  70. package/dist/components/gui/menu/items-menu.ce.js.map +1 -1
  71. package/dist/components/gui/menu/main-menu.ce.js +75 -92
  72. package/dist/components/gui/menu/main-menu.ce.js.map +1 -1
  73. package/dist/components/gui/menu/options-menu.ce.js +5 -4
  74. package/dist/components/gui/menu/options-menu.ce.js.map +1 -1
  75. package/dist/components/gui/menu/skills-menu.ce.js +12 -17
  76. package/dist/components/gui/menu/skills-menu.ce.js.map +1 -1
  77. package/dist/components/gui/mobile/index.js +2 -2
  78. package/dist/components/gui/mobile/index.js.map +1 -1
  79. package/dist/components/gui/mobile/mobile.ce.js +5 -4
  80. package/dist/components/gui/mobile/mobile.ce.js.map +1 -1
  81. package/dist/components/gui/notification/notification.ce.js +22 -24
  82. package/dist/components/gui/notification/notification.ce.js.map +1 -1
  83. package/dist/components/gui/save-load.ce.js +72 -249
  84. package/dist/components/gui/save-load.ce.js.map +1 -1
  85. package/dist/components/gui/shop/shop.ce.js +90 -127
  86. package/dist/components/gui/shop/shop.ce.js.map +1 -1
  87. package/dist/components/gui/title-screen.ce.js +45 -70
  88. package/dist/components/gui/title-screen.ce.js.map +1 -1
  89. package/dist/components/index.d.ts +2 -1
  90. package/dist/components/index.js +1 -0
  91. package/dist/components/player-components-utils.d.ts +67 -0
  92. package/dist/components/player-components-utils.js +162 -0
  93. package/dist/components/player-components-utils.js.map +1 -0
  94. package/dist/components/player-components-utils.spec.d.ts +1 -0
  95. package/dist/components/player-components.ce.js +189 -0
  96. package/dist/components/player-components.ce.js.map +1 -0
  97. package/dist/components/prebuilt/hp-bar.ce.js +42 -44
  98. package/dist/components/prebuilt/hp-bar.ce.js.map +1 -1
  99. package/dist/components/prebuilt/light-halo.ce.js +36 -59
  100. package/dist/components/prebuilt/light-halo.ce.js.map +1 -1
  101. package/dist/components/scenes/canvas.ce.js +165 -21
  102. package/dist/components/scenes/canvas.ce.js.map +1 -1
  103. package/dist/components/scenes/draw-map.ce.js +25 -32
  104. package/dist/components/scenes/draw-map.ce.js.map +1 -1
  105. package/dist/components/scenes/event-layer.ce.js +9 -8
  106. package/dist/components/scenes/event-layer.ce.js.map +1 -1
  107. package/dist/core/inject.js +1 -1
  108. package/dist/core/inject.js.map +1 -1
  109. package/dist/core/setup.js +1 -1
  110. package/dist/core/setup.js.map +1 -1
  111. package/dist/decorators/spritesheet.d.ts +1 -0
  112. package/dist/decorators/spritesheet.js +11 -0
  113. package/dist/decorators/spritesheet.js.map +1 -0
  114. package/dist/index.d.ts +4 -0
  115. package/dist/index.js +26 -21
  116. package/dist/module.js +15 -1
  117. package/dist/module.js.map +1 -1
  118. package/dist/node_modules/.pnpm/{@signe_di@2.9.0 → @signe_di@3.0.1}/node_modules/@signe/di/dist/index.js +7 -117
  119. package/dist/node_modules/.pnpm/@signe_di@3.0.1/node_modules/@signe/di/dist/index.js.map +1 -0
  120. package/dist/node_modules/.pnpm/@signe_reactive@3.0.1/node_modules/@signe/reactive/dist/index.js +239 -0
  121. package/dist/node_modules/.pnpm/@signe_reactive@3.0.1/node_modules/@signe/reactive/dist/index.js.map +1 -0
  122. package/dist/node_modules/.pnpm/@signe_room@3.0.1/node_modules/@signe/room/dist/chunk-EUXUH3YW.js +13 -0
  123. package/dist/node_modules/.pnpm/@signe_room@3.0.1/node_modules/@signe/room/dist/chunk-EUXUH3YW.js.map +1 -0
  124. package/dist/node_modules/.pnpm/@signe_room@3.0.1/node_modules/@signe/room/dist/index.js +696 -0
  125. package/dist/node_modules/.pnpm/@signe_room@3.0.1/node_modules/@signe/room/dist/index.js.map +1 -0
  126. package/dist/node_modules/.pnpm/@signe_sync@3.0.1/node_modules/@signe/sync/dist/client/index.js +44 -0
  127. package/dist/node_modules/.pnpm/@signe_sync@3.0.1/node_modules/@signe/sync/dist/client/index.js.map +1 -0
  128. package/dist/node_modules/.pnpm/{@signe_sync@2.9.0 → @signe_sync@3.0.1}/node_modules/@signe/sync/dist/index.js +57 -141
  129. package/dist/node_modules/.pnpm/@signe_sync@3.0.1/node_modules/@signe/sync/dist/index.js.map +1 -0
  130. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-HAC622V3.js.map +1 -1
  131. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-S74YV6PU.js.map +1 -1
  132. package/dist/node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/index.js +27 -27
  133. package/dist/node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/index.js.map +1 -1
  134. package/dist/presets/animation.js.map +1 -1
  135. package/dist/presets/faceset.js.map +1 -1
  136. package/dist/presets/icon.js.map +1 -1
  137. package/dist/presets/index.js.map +1 -1
  138. package/dist/presets/lpc.js.map +1 -1
  139. package/dist/presets/rmspritesheet.js.map +1 -1
  140. package/dist/services/AbstractSocket.js.map +1 -1
  141. package/dist/services/actionInput.d.ts +12 -0
  142. package/dist/services/actionInput.js +27 -0
  143. package/dist/services/actionInput.js.map +1 -0
  144. package/dist/services/actionInput.spec.d.ts +1 -0
  145. package/dist/services/keyboardControls.js.map +1 -1
  146. package/dist/services/loadMap.d.ts +6 -0
  147. package/dist/services/loadMap.js +1 -1
  148. package/dist/services/loadMap.js.map +1 -1
  149. package/dist/services/mmorpg-connection.d.ts +5 -0
  150. package/dist/services/mmorpg-connection.js +50 -0
  151. package/dist/services/mmorpg-connection.js.map +1 -0
  152. package/dist/services/mmorpg-connection.spec.d.ts +1 -0
  153. package/dist/services/mmorpg.d.ts +10 -4
  154. package/dist/services/mmorpg.js +56 -33
  155. package/dist/services/mmorpg.js.map +1 -1
  156. package/dist/services/pointerContext.d.ts +11 -0
  157. package/dist/services/pointerContext.js +48 -0
  158. package/dist/services/pointerContext.js.map +1 -0
  159. package/dist/services/pointerContext.spec.d.ts +1 -0
  160. package/dist/services/save.js.map +1 -1
  161. package/dist/services/save.spec.d.ts +1 -0
  162. package/dist/services/standalone-message.d.ts +1 -0
  163. package/dist/services/standalone-message.js +9 -0
  164. package/dist/services/standalone-message.js.map +1 -0
  165. package/dist/services/standalone.js +4 -3
  166. package/dist/services/standalone.js.map +1 -1
  167. package/dist/services/standalone.spec.d.ts +1 -0
  168. package/dist/utils/getEntityProp.js +4 -3
  169. package/dist/utils/getEntityProp.js.map +1 -1
  170. package/dist/utils/getEntityProp.spec.d.ts +1 -0
  171. package/dist/utils/readPropValue.d.ts +2 -0
  172. package/dist/utils/readPropValue.js +13 -0
  173. package/dist/utils/readPropValue.js.map +1 -0
  174. package/package.json +13 -14
  175. package/src/Game/AnimationManager.spec.ts +30 -0
  176. package/src/Game/AnimationManager.ts +22 -10
  177. package/src/Game/Map.ts +91 -2
  178. package/src/Game/Object.ts +148 -69
  179. package/src/Game/ProjectileManager.spec.ts +338 -0
  180. package/src/Game/ProjectileManager.ts +324 -0
  181. package/src/Gui/Gui.spec.ts +273 -0
  182. package/src/Gui/Gui.ts +105 -50
  183. package/src/Resource.ts +1 -2
  184. package/src/RpgClient.ts +125 -17
  185. package/src/RpgClientEngine.ts +457 -87
  186. package/src/components/character.ce +441 -32
  187. package/src/components/dynamics/bar.ce +88 -0
  188. package/src/components/dynamics/image.ce +21 -0
  189. package/src/components/dynamics/parse-value.spec.ts +83 -0
  190. package/src/components/dynamics/parse-value.ts +111 -37
  191. package/src/components/dynamics/shape-utils.spec.ts +46 -0
  192. package/src/components/dynamics/shape-utils.ts +61 -0
  193. package/src/components/dynamics/shape.ce +90 -0
  194. package/src/components/dynamics/text.ce +35 -149
  195. package/src/components/gui/dialogbox/index.ce +18 -8
  196. package/src/components/gui/gameover.ce +2 -1
  197. package/src/components/gui/menu/equip-menu.ce +2 -1
  198. package/src/components/gui/menu/exit-menu.ce +2 -1
  199. package/src/components/gui/menu/items-menu.ce +3 -2
  200. package/src/components/gui/menu/main-menu.ce +2 -1
  201. package/src/components/gui/save-load.ce +2 -1
  202. package/src/components/gui/shop/shop.ce +3 -2
  203. package/src/components/gui/title-screen.ce +2 -1
  204. package/src/components/index.ts +2 -1
  205. package/src/components/player-components-utils.spec.ts +109 -0
  206. package/src/components/player-components-utils.ts +205 -0
  207. package/src/components/player-components.ce +222 -0
  208. package/src/components/prebuilt/hp-bar.ce +4 -3
  209. package/src/components/prebuilt/light-halo.ce +2 -2
  210. package/src/components/scenes/canvas.ce +175 -8
  211. package/src/components/scenes/draw-map.ce +18 -17
  212. package/src/components/scenes/event-layer.ce +1 -2
  213. package/src/core/setup.ts +2 -2
  214. package/src/decorators/spritesheet.ts +8 -0
  215. package/src/index.ts +4 -0
  216. package/src/module.ts +18 -1
  217. package/src/services/actionInput.spec.ts +101 -0
  218. package/src/services/actionInput.ts +53 -0
  219. package/src/services/loadMap.ts +2 -0
  220. package/src/services/mmorpg-connection.spec.ts +99 -0
  221. package/src/services/mmorpg-connection.ts +69 -0
  222. package/src/services/mmorpg.ts +68 -36
  223. package/src/services/pointerContext.spec.ts +36 -0
  224. package/src/services/pointerContext.ts +84 -0
  225. package/src/services/save.spec.ts +127 -0
  226. package/src/services/standalone-message.ts +7 -0
  227. package/src/services/standalone.spec.ts +34 -0
  228. package/src/services/standalone.ts +3 -2
  229. package/src/utils/getEntityProp.spec.ts +96 -0
  230. package/src/utils/getEntityProp.ts +4 -3
  231. package/src/utils/readPropValue.ts +16 -0
  232. package/dist/node_modules/.pnpm/@signe_di@2.9.0/node_modules/@signe/di/dist/index.js.map +0 -1
  233. package/dist/node_modules/.pnpm/@signe_reactive@2.8.3/node_modules/@signe/reactive/dist/index.js +0 -457
  234. package/dist/node_modules/.pnpm/@signe_reactive@2.8.3/node_modules/@signe/reactive/dist/index.js.map +0 -1
  235. package/dist/node_modules/.pnpm/@signe_reactive@2.9.0/node_modules/@signe/reactive/dist/index.js +0 -463
  236. package/dist/node_modules/.pnpm/@signe_reactive@2.9.0/node_modules/@signe/reactive/dist/index.js.map +0 -1
  237. package/dist/node_modules/.pnpm/@signe_room@2.9.0/node_modules/@signe/room/dist/index.js +0 -2191
  238. package/dist/node_modules/.pnpm/@signe_room@2.9.0/node_modules/@signe/room/dist/index.js.map +0 -1
  239. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/chunk-7QVYU63E.js +0 -10
  240. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/chunk-7QVYU63E.js.map +0 -1
  241. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/client/index.js +0 -91
  242. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/client/index.js.map +0 -1
  243. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/index.js.map +0 -1
  244. package/dist/node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.js +0 -14
  245. package/dist/node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { inject } from "../../core/inject.js";
2
+ import { getKeyboardControlBind } from "../../services/actionInput.js";
2
3
  import { RpgGui } from "../../Gui/Gui.js";
3
4
  import { RpgClientEngine } from "../../RpgClientEngine.js";
4
5
  import { DOMContainer, DOMElement, Navigation, computed, cond, effect, h, loop, signal, useDefineProps, useProps } from "canvasengine";
@@ -7,81 +8,55 @@ import { PrebuiltGui } from "@rpgjs/common";
7
8
  function component($$props) {
8
9
  useProps($$props);
9
10
  const defineProps = useDefineProps($$props);
10
- var __assign = this && this.__assign || function() {
11
- __assign = Object.assign || function(t) {
12
- for (var s, i = 1, n = arguments.length; i < n; i++) {
13
- s = arguments[i];
14
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
15
- }
16
- return t;
17
- };
18
- return __assign.apply(this, arguments);
19
- };
20
- var engine = inject(RpgClientEngine);
21
- var guiService = inject(RpgGui);
22
- var keyboardControls = engine.globalConfig.keyboardControls;
23
- var _a = defineProps({
24
- entries: { default: function() {
25
- return [];
26
- } },
27
- saveLoad: { default: function() {
28
- return {};
29
- } },
11
+ const engine = inject(RpgClientEngine);
12
+ const guiService = inject(RpgGui);
13
+ const keyboardControls = engine.globalConfig.keyboardControls;
14
+ const { entries, title, subtitle, saveLoad, localActions, onInteraction } = defineProps({
15
+ entries: { default: () => [] },
16
+ saveLoad: { default: () => ({}) },
30
17
  localActions: { default: false }
31
- }), entries = _a.entries, title = _a.title, subtitle = _a.subtitle, saveLoad = _a.saveLoad, localActions = _a.localActions, onInteraction = _a.onInteraction;
32
- var defaultEntries = [{
18
+ });
19
+ const defaultEntries = [{
33
20
  id: "title",
34
21
  label: "Title Screen"
35
22
  }, {
36
23
  id: "load",
37
24
  label: "Load Game"
38
25
  }];
39
- var resolveProp = function(value) {
40
- return typeof value === "function" ? value() : value;
41
- };
42
- var titleText = computed(function() {
43
- return resolveProp(title) || "Game Over";
44
- });
45
- var subtitleText = computed(function() {
46
- return resolveProp(subtitle) || "";
47
- });
48
- var localActionsEnabled = computed(function() {
49
- return resolveProp(localActions) === true;
50
- });
51
- var entryList = computed(function() {
52
- var list = resolveProp(entries);
26
+ const resolveProp = (value) => typeof value === "function" ? value() : value;
27
+ const titleText = computed(() => resolveProp(title) || "Game Over");
28
+ const subtitleText = computed(() => resolveProp(subtitle) || "");
29
+ const localActionsEnabled = computed(() => resolveProp(localActions) === true);
30
+ const entryList = computed(() => {
31
+ const list = resolveProp(entries);
53
32
  if (Array.isArray(list) && list.length) return list;
54
33
  return defaultEntries;
55
34
  });
56
- var isEntryDisabled = function(entry) {
35
+ const isEntryDisabled = (entry) => {
57
36
  if (!entry) return true;
58
37
  if (entry.disabled) return true;
59
38
  if (entry.enabled === false) return true;
60
39
  return false;
61
40
  };
62
- var selectedEntry = signal(0);
63
- var selectableIndexes = computed(function() {
64
- return entryList().map(function(entry, index) {
65
- return isEntryDisabled(entry) ? null : index;
66
- }).filter(function(value) {
67
- return value !== null;
68
- });
41
+ const selectedEntry = signal(0);
42
+ const selectableIndexes = computed(() => {
43
+ return entryList().map((entry, index) => isEntryDisabled(entry) ? null : index).filter((value) => value !== null);
69
44
  });
70
- effect(function() {
71
- var available = selectableIndexes();
45
+ effect(() => {
46
+ const available = selectableIndexes();
72
47
  if (!available.length) return;
73
- var current = selectedEntry();
48
+ const current = selectedEntry();
74
49
  if (!available.includes(current)) selectedEntry.set(available[0]);
75
50
  });
76
- var moveSelection = function(delta) {
77
- var available = selectableIndexes();
51
+ const moveSelection = (delta) => {
52
+ const available = selectableIndexes();
78
53
  if (!available.length) return;
79
- var current = selectedEntry();
80
- var nextIndex = (Math.max(0, available.indexOf(current)) + delta + available.length) % available.length;
54
+ const current = selectedEntry();
55
+ const nextIndex = (Math.max(0, available.indexOf(current)) + delta + available.length) % available.length;
81
56
  selectedEntry.set(available[nextIndex]);
82
57
  };
83
- var triggerSelect = function(index) {
84
- var entry = entryList()[index];
58
+ const triggerSelect = (index) => {
59
+ const entry = entryList()[index];
85
60
  if (!entry || isEntryDisabled(entry)) return;
86
61
  if (localActionsEnabled()) {
87
62
  if (entry.id === "title") {
@@ -89,16 +64,17 @@ function component($$props) {
89
64
  guiService.display(PrebuiltGui.TitleScreen);
90
65
  }
91
66
  if (entry.id === "load") {
92
- var config = resolveProp(saveLoad) || {};
93
- var slots = Array.isArray(config.slots) ? config.slots : [
67
+ const config = resolveProp(saveLoad) || {};
68
+ const slots = Array.isArray(config.slots) ? config.slots : [
94
69
  null,
95
70
  null,
96
71
  null
97
72
  ];
98
- guiService.display(PrebuiltGui.Save, __assign(__assign({}, config), {
73
+ guiService.display(PrebuiltGui.Save, {
74
+ ...config,
99
75
  mode: config.mode || "load",
100
76
  slots
101
- }));
77
+ });
102
78
  }
103
79
  }
104
80
  if (onInteraction) onInteraction("select", {
@@ -113,12 +89,12 @@ function component($$props) {
113
89
  triggerSelect(index);
114
90
  };
115
91
  }
116
- var controls = signal({
92
+ const controls = signal({
117
93
  up: {
118
94
  repeat: true,
119
95
  bind: keyboardControls.up,
120
96
  throttle: 150,
121
- keyDown: function() {
97
+ keyDown() {
122
98
  moveSelection(-1);
123
99
  }
124
100
  },
@@ -126,13 +102,13 @@ function component($$props) {
126
102
  repeat: true,
127
103
  bind: keyboardControls.down,
128
104
  throttle: 150,
129
- keyDown: function() {
105
+ keyDown() {
130
106
  moveSelection(1);
131
107
  }
132
108
  },
133
109
  action: {
134
- bind: keyboardControls.action,
135
- keyDown: function() {
110
+ bind: getKeyboardControlBind(keyboardControls.action),
111
+ keyDown() {
136
112
  triggerSelect(selectedEntry());
137
113
  }
138
114
  },
@@ -164,7 +140,7 @@ function component($$props) {
164
140
  element: "div",
165
141
  attrs: { class: "rpg-ui-gameover-title" },
166
142
  textContent: computed(() => titleText())
167
- }), cond(subtitleText(), () => h(DOMElement, {
143
+ }), cond(computed(() => subtitleText()), () => h(DOMElement, {
168
144
  element: "div",
169
145
  attrs: { class: "rpg-ui-gameover-subtitle" },
170
146
  textContent: computed(() => subtitleText())
@@ -175,7 +151,7 @@ function component($$props) {
175
151
  }, h(DOMElement, {
176
152
  element: "div",
177
153
  attrs: { class: "rpg-ui-menu rpg-ui-gameover-menu rpg-anim-slide-up" }
178
- }, loop(entryList(), (entry, index) => h(DOMElement, {
154
+ }, loop(computed(() => entryList()), (entry, index) => h(DOMElement, {
179
155
  element: "div",
180
156
  attrs: {
181
157
  class: ["rpg-ui-menu-item", computed(() => ({ disabled: isEntryDisabled(entry) }))],
@@ -187,7 +163,8 @@ function component($$props) {
187
163
  }))))
188
164
  ]));
189
165
  }
166
+ var __ce_component = component;
190
167
  //#endregion
191
- export { component as default };
168
+ export { __ce_component as default };
192
169
 
193
170
  //# sourceMappingURL=gameover.ce.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gameover.ce.js","names":[],"sources":["../../../src/components/gui/gameover.ce"],"sourcesContent":["<DOMContainer width=\"100%\" height=\"100%\">\n <div class=\"rpg-ui-gameover-screen rpg-anim-fade-in\">\n <div class=\"rpg-ui-gameover-splatter rpg-ui-gameover-splatter-left\"></div>\n <div class=\"rpg-ui-gameover-splatter rpg-ui-gameover-splatter-right\"></div>\n <div class=\"rpg-ui-gameover-splatter rpg-ui-gameover-splatter-center\"></div>\n <div class=\"rpg-ui-gameover-header rpg-anim-shake\">\n <div class=\"rpg-ui-gameover-title\">{titleText()}</div>\n @if (subtitleText()) {\n <div class=\"rpg-ui-gameover-subtitle\">{subtitleText()}</div>\n }\n </div>\n <Navigation tabindex={selectedEntry} controls={controls}>\n <div class=\"rpg-ui-menu rpg-ui-gameover-menu rpg-anim-slide-up\">\n @for ((entry,index) of entryList()) {\n <div\n class=\"rpg-ui-menu-item\"\n class={{disabled: isEntryDisabled(entry)}}\n data-selected={selectedEntry() === index ? \"true\" : \"false\"}\n tabindex={index}\n click={selectEntry(index)}\n >{entry.label}</div>\n }\n </div>\n </Navigation>\n </div>\n</DOMContainer>\n\n<script>\n import { signal, computed, effect } from \"canvasengine\";\n import { PrebuiltGui } from \"@rpgjs/common\";\n import { inject } from \"../../core/inject\";\n import { RpgClientEngine } from \"../../RpgClientEngine\";\n import { RpgGui } from \"../../Gui/Gui\";\n\n const engine = inject(RpgClientEngine);\n const guiService = inject(RpgGui);\n const keyboardControls = engine.globalConfig.keyboardControls;\n\n const { entries, title, subtitle, saveLoad, localActions, onInteraction } = defineProps({\n entries: {\n default: () => []\n },\n saveLoad: {\n default: () => ({})\n },\n localActions: {\n default: false\n }\n });\n\n const defaultEntries = [\n { id: \"title\", label: \"Title Screen\" },\n { id: \"load\", label: \"Load Game\" }\n ];\n\n const resolveProp = (value) => typeof value === \"function\" ? value() : value;\n const titleText = computed(() => resolveProp(title) || \"Game Over\");\n const subtitleText = computed(() => resolveProp(subtitle) || \"\");\n const localActionsEnabled = computed(() => resolveProp(localActions) === true);\n\n const entryList = computed(() => {\n const list = resolveProp(entries);\n if (Array.isArray(list) && list.length) return list;\n return defaultEntries;\n });\n\n const isEntryDisabled = (entry) => {\n if (!entry) return true;\n if (entry.disabled) return true;\n if (entry.enabled === false) return true;\n return false;\n };\n\n const selectedEntry = signal(0);\n const selectableIndexes = computed(() => {\n const list = entryList();\n return list\n .map((entry, index) => (isEntryDisabled(entry) ? null : index))\n .filter((value) => value !== null);\n });\n\n effect(() => {\n const available = selectableIndexes();\n if (!available.length) return;\n const current = selectedEntry();\n if (!available.includes(current)) {\n selectedEntry.set(available[0]);\n }\n });\n\n const moveSelection = (delta) => {\n const available = selectableIndexes();\n if (!available.length) return;\n const current = selectedEntry();\n const currentIndex = Math.max(0, available.indexOf(current));\n const nextIndex = (currentIndex + delta + available.length) % available.length;\n selectedEntry.set(available[nextIndex]);\n };\n\n const triggerSelect = (index) => {\n const list = entryList();\n const entry = list[index];\n if (!entry || isEntryDisabled(entry)) return;\n if (localActionsEnabled()) {\n if (entry.id === \"title\") {\n guiService.hide(PrebuiltGui.Gameover);\n guiService.display(PrebuiltGui.TitleScreen);\n }\n if (entry.id === \"load\") {\n const config = resolveProp(saveLoad) || {};\n const slots = Array.isArray(config.slots) ? config.slots : [null, null, null];\n guiService.display(PrebuiltGui.Save, {\n ...config,\n mode: config.mode || \"load\",\n slots\n });\n }\n }\n if (onInteraction) {\n onInteraction(\"select\", { id: entry.id, index, entry });\n }\n };\n\n function selectEntry(index) {\n return function() {\n selectedEntry.set(index);\n triggerSelect(index);\n };\n }\n\n const controls = signal({\n up: {\n repeat: true,\n bind: keyboardControls.up,\n throttle: 150,\n keyDown() {\n moveSelection(-1);\n }\n },\n down: {\n repeat: true,\n bind: keyboardControls.down,\n throttle: 150,\n keyDown() {\n moveSelection(1);\n }\n },\n action: {\n bind: keyboardControls.action,\n keyDown() {\n triggerSelect(selectedEntry());\n }\n },\n gamepad: {\n enabled: true\n }\n });\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"gameover.ce.js","names":[],"sources":["../../../src/components/gui/gameover.ce"],"sourcesContent":["<DOMContainer width=\"100%\" height=\"100%\">\n <div class=\"rpg-ui-gameover-screen rpg-anim-fade-in\">\n <div class=\"rpg-ui-gameover-splatter rpg-ui-gameover-splatter-left\"></div>\n <div class=\"rpg-ui-gameover-splatter rpg-ui-gameover-splatter-right\"></div>\n <div class=\"rpg-ui-gameover-splatter rpg-ui-gameover-splatter-center\"></div>\n <div class=\"rpg-ui-gameover-header rpg-anim-shake\">\n <div class=\"rpg-ui-gameover-title\">{titleText()}</div>\n @if (subtitleText()) {\n <div class=\"rpg-ui-gameover-subtitle\">{subtitleText()}</div>\n }\n </div>\n <Navigation tabindex={selectedEntry} controls={controls}>\n <div class=\"rpg-ui-menu rpg-ui-gameover-menu rpg-anim-slide-up\">\n @for ((entry,index) of entryList()) {\n <div\n class=\"rpg-ui-menu-item\"\n class={{disabled: isEntryDisabled(entry)}}\n data-selected={selectedEntry() === index ? \"true\" : \"false\"}\n tabindex={index}\n click={selectEntry(index)}\n >{entry.label}</div>\n }\n </div>\n </Navigation>\n </div>\n</DOMContainer>\n\n<script>\n import { signal, computed, effect } from \"canvasengine\";\n import { PrebuiltGui } from \"@rpgjs/common\";\n import { inject } from \"../../core/inject\";\n import { RpgClientEngine } from \"../../RpgClientEngine\";\n import { RpgGui } from \"../../Gui/Gui\";\n import { getKeyboardControlBind } from \"../../services/actionInput\";\n\n const engine = inject(RpgClientEngine);\n const guiService = inject(RpgGui);\n const keyboardControls = engine.globalConfig.keyboardControls;\n\n const { entries, title, subtitle, saveLoad, localActions, onInteraction } = defineProps({\n entries: {\n default: () => []\n },\n saveLoad: {\n default: () => ({})\n },\n localActions: {\n default: false\n }\n });\n\n const defaultEntries = [\n { id: \"title\", label: \"Title Screen\" },\n { id: \"load\", label: \"Load Game\" }\n ];\n\n const resolveProp = (value) => typeof value === \"function\" ? value() : value;\n const titleText = computed(() => resolveProp(title) || \"Game Over\");\n const subtitleText = computed(() => resolveProp(subtitle) || \"\");\n const localActionsEnabled = computed(() => resolveProp(localActions) === true);\n\n const entryList = computed(() => {\n const list = resolveProp(entries);\n if (Array.isArray(list) && list.length) return list;\n return defaultEntries;\n });\n\n const isEntryDisabled = (entry) => {\n if (!entry) return true;\n if (entry.disabled) return true;\n if (entry.enabled === false) return true;\n return false;\n };\n\n const selectedEntry = signal(0);\n const selectableIndexes = computed(() => {\n const list = entryList();\n return list\n .map((entry, index) => (isEntryDisabled(entry) ? null : index))\n .filter((value) => value !== null);\n });\n\n effect(() => {\n const available = selectableIndexes();\n if (!available.length) return;\n const current = selectedEntry();\n if (!available.includes(current)) {\n selectedEntry.set(available[0]);\n }\n });\n\n const moveSelection = (delta) => {\n const available = selectableIndexes();\n if (!available.length) return;\n const current = selectedEntry();\n const currentIndex = Math.max(0, available.indexOf(current));\n const nextIndex = (currentIndex + delta + available.length) % available.length;\n selectedEntry.set(available[nextIndex]);\n };\n\n const triggerSelect = (index) => {\n const list = entryList();\n const entry = list[index];\n if (!entry || isEntryDisabled(entry)) return;\n if (localActionsEnabled()) {\n if (entry.id === \"title\") {\n guiService.hide(PrebuiltGui.Gameover);\n guiService.display(PrebuiltGui.TitleScreen);\n }\n if (entry.id === \"load\") {\n const config = resolveProp(saveLoad) || {};\n const slots = Array.isArray(config.slots) ? config.slots : [null, null, null];\n guiService.display(PrebuiltGui.Save, {\n ...config,\n mode: config.mode || \"load\",\n slots\n });\n }\n }\n if (onInteraction) {\n onInteraction(\"select\", { id: entry.id, index, entry });\n }\n };\n\n function selectEntry(index) {\n return function() {\n selectedEntry.set(index);\n triggerSelect(index);\n };\n }\n\n const controls = signal({\n up: {\n repeat: true,\n bind: keyboardControls.up,\n throttle: 150,\n keyDown() {\n moveSelection(-1);\n }\n },\n down: {\n repeat: true,\n bind: keyboardControls.down,\n throttle: 150,\n keyDown() {\n moveSelection(1);\n }\n },\n action: {\n bind: getKeyboardControlBind(keyboardControls.action),\n keyDown() {\n triggerSelect(selectedEntry());\n }\n },\n gamepad: {\n enabled: true\n }\n });\n</script>\n"],"mappings":"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"}
@@ -6,44 +6,34 @@ import { DOMContainer, DOMElement, DOMSprite, computed, cond, h, useDefineProps,
6
6
  function component($$props) {
7
7
  useProps($$props);
8
8
  const defineProps = useDefineProps($$props);
9
- var engine = inject(RpgClientEngine);
10
- var currentPlayer = engine.scene.currentPlayer;
11
- var data = defineProps().data;
12
- data().faceset;
13
- var resolveProp = function(value) {
14
- return typeof value === "function" ? value() : value;
15
- };
16
- var face = computed(function() {
17
- return resolveProp(data().faceset);
18
- });
19
- var hasFace = computed(function() {
20
- var value = face();
9
+ const engine = inject(RpgClientEngine);
10
+ const currentPlayer = engine.scene.currentPlayer;
11
+ const { data } = defineProps();
12
+ const { faceset } = data();
13
+ const resolveProp = (value) => typeof value === "function" ? value() : value;
14
+ const face = computed(() => resolveProp(data().faceset));
15
+ const hasFace = computed(() => {
16
+ const value = face();
21
17
  return !!(value && value.id);
22
18
  });
23
- var faceSheet = function(faceValue) {
24
- return {
25
- definition: engine.getSpriteSheet(faceValue.id),
26
- playing: faceValue.expression || "default"
27
- };
28
- };
29
- var hp = getEntityProp(currentPlayer, "hp");
30
- var hpMax = getEntityProp(currentPlayer, "params.maxHp");
31
- var percentHp = computed(function() {
32
- return hp() / hpMax() * 100 + "%";
33
- });
34
- var sp = getEntityProp(currentPlayer, "sp");
35
- var spMax = getEntityProp(currentPlayer, "params.maxSp");
36
- var percentSp = computed(function() {
37
- return sp() / spMax() * 100 + "%";
19
+ const faceSheet = (faceValue) => ({
20
+ definition: engine.getSpriteSheet(faceValue.id),
21
+ playing: faceValue.expression || "default"
38
22
  });
39
- var level = getEntityProp(currentPlayer, "level");
23
+ const hp = getEntityProp(currentPlayer, "hp");
24
+ const hpMax = getEntityProp(currentPlayer, "params.maxHp");
25
+ const percentHp = computed(() => hp() / hpMax() * 100 + "%");
26
+ const sp = getEntityProp(currentPlayer, "sp");
27
+ const spMax = getEntityProp(currentPlayer, "params.maxSp");
28
+ const percentSp = computed(() => sp() / spMax() * 100 + "%");
29
+ const level = getEntityProp(currentPlayer, "level");
40
30
  return h(DOMContainer, null, h(DOMElement, {
41
31
  element: "div",
42
32
  attrs: { class: "rpg-hud" }
43
33
  }, [h(DOMElement, {
44
34
  element: "div",
45
35
  attrs: { class: "rpg-avatar" }
46
- }, [cond(hasFace(), () => h(DOMElement, {
36
+ }, [cond(computed(() => hasFace()), () => h(DOMElement, {
47
37
  element: "div",
48
38
  attrs: { class: "rpg-avatar-face" }
49
39
  }, h(DOMSprite, {
@@ -86,7 +76,8 @@ function component($$props) {
86
76
  }
87
77
  })])])]));
88
78
  }
79
+ var __ce_component = component;
89
80
  //#endregion
90
- export { component as default };
81
+ export { __ce_component as default };
91
82
 
92
83
  //# sourceMappingURL=hud.ce.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hud.ce.js","names":[],"sources":["../../../../src/components/gui/hud/hud.ce"],"sourcesContent":["<DOMContainer>\n <div class=\"rpg-hud\">\n <div class=\"rpg-avatar\">\n @if (hasFace()) {\n <div class=\"rpg-avatar-face\">\n <DOMSprite \n sheet={faceSheet(face())} \n width={64} \n height={64} \n objectFit=\"contain\" \n />\n </div>\n }\n <div class=\"rpg-avatar-level\">{{ level() }}</div>\n </div>\n <div class=\"rpg-status-bars\">\n <div class=\"rpg-bar-container\">\n <span class=\"rpg-bar-text\">HP {{ hp() }}/{{ hpMax() }}</span>\n <div class=\"rpg-bar-fill health\" style={{width: percentHp}}></div>\n </div>\n <div class=\"rpg-bar-container\">\n <span class=\"rpg-bar-text\">SP {{ sp() }}/{{ spMax() }}</span>\n <div class=\"rpg-bar-fill mana\" style={{width: percentSp}}></div>\n </div>\n </div>\n </div>\n</DOMContainer>\n\n<script>\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n import { computed } from \"canvasengine\";\n import { getEntityProp } from \"../../../utils/getEntityProp\";\n\n const engine = inject(RpgClientEngine)\n const currentPlayer = engine.scene.currentPlayer\n const { data } = defineProps();\n const { faceset } = data();\n\n const resolveProp = (value) => typeof value === \"function\" ? value() : value;\n const face = computed(() => resolveProp(data().faceset));\n\n const hasFace = computed(() => {\n const value = face();\n return !!(value && value.id);\n });\n const faceSheet = (faceValue) => ({\n definition: engine.getSpriteSheet(faceValue.id),\n playing: faceValue.expression || \"default\",\n });\n const hp = getEntityProp(currentPlayer, \"hp\")\n const hpMax = getEntityProp(currentPlayer, \"params.maxHp\")\n const percentHp = computed(() => (hp() / hpMax() * 100) + '%')\n\n const sp = getEntityProp(currentPlayer, \"sp\")\n const spMax = getEntityProp(currentPlayer, \"params.maxSp\")\n const percentSp = computed(() => (sp() / spMax() * 100) + '%')\n\n const level = getEntityProp(currentPlayer, \"level\")\n</script>\n \n"],"mappings":";;;;;AAWM,SAAe,UAAA,SAAA;AACT,UAAA,QAAA;CACJ,MAAK,cAAe,eAAe,QAAQ;CAC3C,IAAE,SAAG,OAAA,gBAAA;CACb,IAAI,gBAAgB,OAAI,MAAO;CAC/B,IAAI,OAAO,aAAa,CAAA;AACV,OAAG,CAAI;CACrB,IAAI,cAAa,SAAW,OAAO;AAAC,SAAK,OAAQ,UAAQ,aAAiB,OAAO,GAAA;;CACjF,IAAI,OAAO,SAAM,WAAA;AAAA,SAAA,YAAA,MAAA,CAAA,QAAA;GAAA;CACjB,IAAI,UAAS,SAAU,WAAS;EAC5B,IAAI,QAAQ,MAAM;AAClB,SAAO,CAAC,EAAE,SAAO,MAAO;GAC1B;CACF,IAAI,YAAS,SAAA,WAAA;AAAA,SAAA;GACT,YAAK,OAAA,eAAA,UAAA,GAAA;GACP,SAAA,UAAY,cAAA;;;CAEd,IAAC,KAAM,cAAA,eAAA,KAAA;CACP,IAAI,QAAQ,cAAc,eAAe,eAAQ;CACjD,IAAI,YAAS,SAAA,WAAwB;AAAE,SAAO,IAAA,GAAA,OAAe,GAAC,MAAA;GAAA;CAC9D,IAAI,KAAA,cAAmB,eAAO,KAAa;CAC3C,IAAI,QAAQ,cAAc,eAAe,eAAS;;;;CAElD,IAAI,QAAM,cAAgB,eAAe,QAAA;AAErC,QADM,EAAA,cAAuB,MAAM,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,WAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,cAAA;EAAA,EAAA,CAAA,KAAA,SAAA,QAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,mBAAA;EAAA,EAAA,EAAA,WAAA;EAAA,OAAA,eAAA,UAAA,MAAA,CAAA,CAAA;EAAA,OAAA;EAAA,QAAA;EAAA,WAAA;EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,oBAAA;EAAA,aAAA,eAAA,OAAA,CAAA;EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,mBAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,qBAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,gBAAA;EAAA,aAAA,eAAA,QAAA,IAAA,GAAA,MAAA,OAAA,CAAA;EAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA;GAAA,OAAA;GAAA,OAAA,EAAA,OAAA,WAAA;GAAA;EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,qBAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,gBAAA;EAAA,aAAA,eAAA,QAAA,IAAA,GAAA,MAAA,OAAA,CAAA;EAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA;GAAA,OAAA;GAAA,OAAA,EAAA,OAAA,WAAA;GAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"hud.ce.js","names":[],"sources":["../../../../src/components/gui/hud/hud.ce"],"sourcesContent":["<DOMContainer>\n <div class=\"rpg-hud\">\n <div class=\"rpg-avatar\">\n @if (hasFace()) {\n <div class=\"rpg-avatar-face\">\n <DOMSprite \n sheet={faceSheet(face())} \n width={64} \n height={64} \n objectFit=\"contain\" \n />\n </div>\n }\n <div class=\"rpg-avatar-level\">{{ level() }}</div>\n </div>\n <div class=\"rpg-status-bars\">\n <div class=\"rpg-bar-container\">\n <span class=\"rpg-bar-text\">HP {{ hp() }}/{{ hpMax() }}</span>\n <div class=\"rpg-bar-fill health\" style={{width: percentHp}}></div>\n </div>\n <div class=\"rpg-bar-container\">\n <span class=\"rpg-bar-text\">SP {{ sp() }}/{{ spMax() }}</span>\n <div class=\"rpg-bar-fill mana\" style={{width: percentSp}}></div>\n </div>\n </div>\n </div>\n</DOMContainer>\n\n<script>\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n import { computed } from \"canvasengine\";\n import { getEntityProp } from \"../../../utils/getEntityProp\";\n\n const engine = inject(RpgClientEngine)\n const currentPlayer = engine.scene.currentPlayer\n const { data } = defineProps();\n const { faceset } = data();\n\n const resolveProp = (value) => typeof value === \"function\" ? value() : value;\n const face = computed(() => resolveProp(data().faceset));\n\n const hasFace = computed(() => {\n const value = face();\n return !!(value && value.id);\n });\n const faceSheet = (faceValue) => ({\n definition: engine.getSpriteSheet(faceValue.id),\n playing: faceValue.expression || \"default\",\n });\n const hp = getEntityProp(currentPlayer, \"hp\")\n const hpMax = getEntityProp(currentPlayer, \"params.maxHp\")\n const percentHp = computed(() => (hp() / hpMax() * 100) + '%')\n\n const sp = getEntityProp(currentPlayer, \"sp\")\n const spMax = getEntityProp(currentPlayer, \"params.maxSp\")\n const percentSp = computed(() => (sp() / spMax() * 100) + '%')\n\n const level = getEntityProp(currentPlayer, \"level\")\n</script>\n \n"],"mappings":";;;;;AAWM,SAAS,UAAM,SAAA;CACT,SAAA,OAAA;CACJ,MAAK,cAAe,eAAe,OAAO;CAC1C,MAAK,SAAA,OAAA,eAAA;CACb,MAAM,gBAAc,OAAI,MAAW;CACnC,MAAM,EAAE,SAAS,YAAW;CAC5B,MAAM,EAAE,YAAS,KAAK;CACtB,MAAM,eAAe,UAAU,OAAK,UAAY,aAAS,MAAO,IAAA;CAChE,MAAM,OAAO,eAAI,YAAA,KAAA,EAAA,OAAA,CAAA;CACjB,MAAM,UAAU,eAAe;EAC3B,MAAM,QAAO,KAAK;EAClB,OAAO,CAAC,EAAE,SAAO,MAAO;CAC5B,CAAC;CACD,MAAM,aAAO,eAAA;EACT,YAAK,OAAA,eAAA,UAAA,EAAA;EACP,SAAA,UAAY,cAAA;;CAEd,MAAC,KAAM,cAAA,eAAA,IAAA;CACP,MAAI,QAAS,cAAe,eAAc,cAAO;CACjD,MAAI,YAAS,eAAkB,GAAM,IAAI,MAAK,IAAA,MAAA,GAAe;CAC7D,MAAI,KAAO,cAAa,eAAM,IAAa;CAC3C,MAAI,QAAS,cAAe,eAAe,cAAO;;CAElD,MAAI,QAAM,cAAgB,eAAe,OAAA;CAErC,OADM,EAAA,cAAuB,MAAM,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,UAAA;CAAA,GAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,aAAA;CAAA,GAAA,CAAA,KAAA,eAAA,QAAA,CAAA,SAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,kBAAA;CAAA,GAAA,EAAA,WAAA;EAAA,OAAA,eAAA,UAAA,KAAA,CAAA,CAAA;EAAA,OAAA;EAAA,QAAA;EAAA,WAAA;CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,mBAAA;EAAA,aAAA,eAAA,MAAA,CAAA;CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,kBAAA;CAAA,GAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,oBAAA;CAAA,GAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,eAAA;EAAA,aAAA,eAAA,QAAA,GAAA,IAAA,MAAA,MAAA,CAAA;CAAA,CAAA,GAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA;GAAA,OAAA;GAAA,OAAA,EAAA,OAAA,UAAA;EAAA;CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,oBAAA;CAAA,GAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,eAAA;EAAA,aAAA,eAAA,QAAA,GAAA,IAAA,MAAA,MAAA,CAAA;CAAA,CAAA,GAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA;GAAA,OAAA;GAAA,OAAA,EAAA,OAAA,UAAA;EAAA;CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpB;AACf;AAEA,IAAM,iBAAe"}