@datamoc/mw_games 0.4.1 → 0.4.3
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/README.md +2 -2
- package/dist/actors/ItemStatusEffect.d.ts +1 -1
- package/dist/actors/ItemStatusEffect.d.ts.map +1 -1
- package/dist/actors/ItemStatusEffect.js +2 -11
- package/dist/actors/ItemStatusEffect.js.map +1 -1
- package/dist/actors/StatusEffect.d.ts +11 -0
- package/dist/actors/StatusEffect.d.ts.map +1 -1
- package/dist/actors/StatusEffect.js +21 -8
- package/dist/actors/StatusEffect.js.map +1 -1
- package/dist/assets/binary.d.ts +52 -0
- package/dist/assets/binary.d.ts.map +1 -0
- package/dist/assets/binary.js +57 -0
- package/dist/assets/binary.js.map +1 -0
- package/dist/assets/index.d.ts +10 -5
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +9 -5
- package/dist/assets/index.js.map +1 -1
- package/dist/board/Army.d.ts +75 -0
- package/dist/board/Army.d.ts.map +1 -1
- package/dist/board/Army.js +75 -0
- package/dist/board/Army.js.map +1 -1
- package/dist/board/Classics.d.ts +297 -1
- package/dist/board/Classics.d.ts.map +1 -1
- package/dist/board/Classics.js +297 -1
- package/dist/board/Classics.js.map +1 -1
- package/dist/board/Engine.d.ts +23 -0
- package/dist/board/Engine.d.ts.map +1 -1
- package/dist/board/Engine.js +23 -0
- package/dist/board/Engine.js.map +1 -1
- package/dist/board/FogOfWar.d.ts +20 -0
- package/dist/board/FogOfWar.d.ts.map +1 -1
- package/dist/board/FogOfWar.js +20 -0
- package/dist/board/FogOfWar.js.map +1 -1
- package/dist/board/Tactics.d.ts +158 -1
- package/dist/board/Tactics.d.ts.map +1 -1
- package/dist/board/Tactics.js +125 -1
- package/dist/board/Tactics.js.map +1 -1
- package/dist/board/chess.d.ts +87 -3
- package/dist/board/chess.d.ts.map +1 -1
- package/dist/board/chess.js +96 -4
- package/dist/board/chess.js.map +1 -1
- package/dist/core/HttpTransport.d.ts +1 -1
- package/dist/core/HttpTransport.js +1 -1
- package/dist/core/News.d.ts +6 -13
- package/dist/core/News.d.ts.map +1 -1
- package/dist/core/News.js +10 -23
- package/dist/core/News.js.map +1 -1
- package/dist/core/RunHistory.d.ts +1 -2
- package/dist/core/RunHistory.d.ts.map +1 -1
- package/dist/core/RunHistory.js +5 -6
- package/dist/core/RunHistory.js.map +1 -1
- package/dist/core/Stats.d.ts +1 -2
- package/dist/core/Stats.d.ts.map +1 -1
- package/dist/core/Stats.js +5 -6
- package/dist/core/Stats.js.map +1 -1
- package/dist/core/StoredValue.d.ts +21 -0
- package/dist/core/StoredValue.d.ts.map +1 -0
- package/dist/core/StoredValue.js +28 -0
- package/dist/core/StoredValue.js.map +1 -0
- package/dist/i18n/Content.d.ts +151 -0
- package/dist/i18n/Content.d.ts.map +1 -0
- package/dist/i18n/Content.js +219 -0
- package/dist/i18n/Content.js.map +1 -0
- package/dist/i18n/index.d.ts +35 -3
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +88 -6
- package/dist/i18n/index.js.map +1 -1
- package/dist/mw_games.global.js +90 -90
- package/dist/roguelike/Level.d.ts +10 -0
- package/dist/roguelike/Level.d.ts.map +1 -1
- package/dist/roguelike/Level.js +57 -17
- package/dist/roguelike/Level.js.map +1 -1
- package/dist/roguelike/Pathfinder.js +19 -19
- package/dist/roguelike/Pathfinder.js.map +1 -1
- package/dist/roguelike/Placement.d.ts +62 -0
- package/dist/roguelike/Placement.d.ts.map +1 -0
- package/dist/roguelike/Placement.js +79 -0
- package/dist/roguelike/Placement.js.map +1 -0
- package/dist/roguelike/index.d.ts +2 -0
- package/dist/roguelike/index.d.ts.map +1 -1
- package/dist/roguelike/index.js +1 -0
- package/dist/roguelike/index.js.map +1 -1
- package/dist/rpg/FreeMover.d.ts +1 -1
- package/dist/rpg/FreeMover.d.ts.map +1 -1
- package/dist/rpg/FreeMover.js +3 -6
- package/dist/rpg/FreeMover.js.map +1 -1
- package/dist/rpg/GridMover.d.ts +1 -1
- package/dist/rpg/GridMover.d.ts.map +1 -1
- package/dist/rpg/GridMover.js +3 -6
- package/dist/rpg/GridMover.js.map +1 -1
- package/dist/rpg/MovableSprite.d.ts +6 -0
- package/dist/rpg/MovableSprite.d.ts.map +1 -1
- package/dist/rpg/MovableSprite.js +9 -1
- package/dist/rpg/MovableSprite.js.map +1 -1
- package/dist/three-d/Models.d.ts +38 -1
- package/dist/three-d/Models.d.ts.map +1 -1
- package/dist/three-d/Models.js +66 -3
- package/dist/three-d/Models.js.map +1 -1
- package/dist/two-d/render/ActorAnimator.d.ts +32 -0
- package/dist/two-d/render/ActorAnimator.d.ts.map +1 -1
- package/dist/two-d/render/ActorAnimator.js +21 -0
- package/dist/two-d/render/ActorAnimator.js.map +1 -1
- package/dist/two-d/render/AnimatedSprite.d.ts +24 -4
- package/dist/two-d/render/AnimatedSprite.d.ts.map +1 -1
- package/dist/two-d/render/AnimatedSprite.js +24 -4
- package/dist/two-d/render/AnimatedSprite.js.map +1 -1
- package/dist/two-d/render/Autotile.d.ts +33 -1
- package/dist/two-d/render/Autotile.d.ts.map +1 -1
- package/dist/two-d/render/Autotile.js +33 -1
- package/dist/two-d/render/Autotile.js.map +1 -1
- package/dist/two-d/render/Camera.d.ts +53 -1
- package/dist/two-d/render/Camera.d.ts.map +1 -1
- package/dist/two-d/render/Camera.js +36 -1
- package/dist/two-d/render/Camera.js.map +1 -1
- package/dist/two-d/render/Capabilities.d.ts +33 -0
- package/dist/two-d/render/Capabilities.d.ts.map +1 -1
- package/dist/two-d/render/Capabilities.js +33 -0
- package/dist/two-d/render/Capabilities.js.map +1 -1
- package/dist/two-d/render/ColorBlindness.d.ts +23 -0
- package/dist/two-d/render/ColorBlindness.d.ts.map +1 -1
- package/dist/two-d/render/ColorBlindness.js +23 -4
- package/dist/two-d/render/ColorBlindness.js.map +1 -1
- package/dist/two-d/render/ColorTransformBatcher.d.ts +67 -1
- package/dist/two-d/render/ColorTransformBatcher.d.ts.map +1 -1
- package/dist/two-d/render/ColorTransformBatcher.js +57 -1
- package/dist/two-d/render/ColorTransformBatcher.js.map +1 -1
- package/dist/two-d/render/LayeredSprite.d.ts +19 -0
- package/dist/two-d/render/LayeredSprite.d.ts.map +1 -1
- package/dist/two-d/render/LayeredSprite.js +19 -0
- package/dist/two-d/render/LayeredSprite.js.map +1 -1
- package/dist/two-d/render/Minimap.d.ts +25 -1
- package/dist/two-d/render/Minimap.d.ts.map +1 -1
- package/dist/two-d/render/Minimap.js +25 -1
- package/dist/two-d/render/Minimap.js.map +1 -1
- package/dist/two-d/render/Particles.d.ts +26 -2
- package/dist/two-d/render/Particles.d.ts.map +1 -1
- package/dist/two-d/render/Particles.js +23 -0
- package/dist/two-d/render/Particles.js.map +1 -1
- package/dist/two-d/render/Projectile.d.ts +14 -0
- package/dist/two-d/render/Projectile.d.ts.map +1 -1
- package/dist/two-d/render/Projectile.js +14 -0
- package/dist/two-d/render/Projectile.js.map +1 -1
- package/dist/two-d/render/ScreenEffects.d.ts +15 -0
- package/dist/two-d/render/ScreenEffects.d.ts.map +1 -1
- package/dist/two-d/render/ScreenEffects.js +15 -0
- package/dist/two-d/render/ScreenEffects.js.map +1 -1
- package/dist/two-d/render/Shape2D.d.ts +58 -1
- package/dist/two-d/render/Shape2D.d.ts.map +1 -1
- package/dist/two-d/render/Shape2D.js +58 -1
- package/dist/two-d/render/Shape2D.js.map +1 -1
- package/dist/two-d/render/StatusVisuals.d.ts +22 -0
- package/dist/two-d/render/StatusVisuals.d.ts.map +1 -1
- package/dist/two-d/render/StatusVisuals.js +22 -0
- package/dist/two-d/render/StatusVisuals.js.map +1 -1
- package/dist/two-d/render/TileMap.d.ts +65 -3
- package/dist/two-d/render/TileMap.d.ts.map +1 -1
- package/dist/two-d/render/TileMap.js +65 -3
- package/dist/two-d/render/TileMap.js.map +1 -1
- package/dist/two-d/render/TiledMap.d.ts +9 -3
- package/dist/two-d/render/TiledMap.d.ts.map +1 -1
- package/dist/two-d/render/TiledMap.js +9 -3
- package/dist/two-d/render/TiledMap.js.map +1 -1
- package/dist/two-d/render/TintedSprite.d.ts +9 -2
- package/dist/two-d/render/TintedSprite.d.ts.map +1 -1
- package/dist/two-d/render/TintedSprite.js +9 -2
- package/dist/two-d/render/TintedSprite.js.map +1 -1
- package/dist/two-d/render/Types2D.d.ts +14 -2
- package/dist/two-d/render/Types2D.d.ts.map +1 -1
- package/dist/two-d/render/Types2D.js +14 -2
- package/dist/two-d/render/Types2D.js.map +1 -1
- package/dist/two-d/render/Viewport.d.ts +22 -0
- package/dist/two-d/render/Viewport.d.ts.map +1 -1
- package/dist/two-d/render/Viewport.js +22 -0
- package/dist/two-d/render/Viewport.js.map +1 -1
- package/dist/two-d/ui/Bar.d.ts +16 -3
- package/dist/two-d/ui/Bar.d.ts.map +1 -1
- package/dist/two-d/ui/Bar.js +16 -1
- package/dist/two-d/ui/Bar.js.map +1 -1
- package/dist/two-d/ui/BitmapLabel.d.ts +26 -10
- package/dist/two-d/ui/BitmapLabel.d.ts.map +1 -1
- package/dist/two-d/ui/BitmapLabel.js +26 -3
- package/dist/two-d/ui/BitmapLabel.js.map +1 -1
- package/dist/two-d/ui/Button.d.ts +15 -0
- package/dist/two-d/ui/Button.d.ts.map +1 -1
- package/dist/two-d/ui/Button.js +15 -0
- package/dist/two-d/ui/Button.js.map +1 -1
- package/dist/two-d/ui/FloatingText.d.ts +15 -0
- package/dist/two-d/ui/FloatingText.d.ts.map +1 -1
- package/dist/two-d/ui/FloatingText.js +15 -0
- package/dist/two-d/ui/FloatingText.js.map +1 -1
- package/dist/two-d/ui/HelpScreen.d.ts +16 -0
- package/dist/two-d/ui/HelpScreen.d.ts.map +1 -1
- package/dist/two-d/ui/HelpScreen.js +23 -3
- package/dist/two-d/ui/HelpScreen.js.map +1 -1
- package/dist/two-d/ui/IconGrid.d.ts +27 -3
- package/dist/two-d/ui/IconGrid.d.ts.map +1 -1
- package/dist/two-d/ui/IconGrid.js +71 -55
- package/dist/two-d/ui/IconGrid.js.map +1 -1
- package/dist/two-d/ui/Label.d.ts +12 -8
- package/dist/two-d/ui/Label.d.ts.map +1 -1
- package/dist/two-d/ui/Label.js +14 -3
- package/dist/two-d/ui/Label.js.map +1 -1
- package/dist/two-d/ui/ListView.d.ts +22 -4
- package/dist/two-d/ui/ListView.d.ts.map +1 -1
- package/dist/two-d/ui/ListView.js +44 -43
- package/dist/two-d/ui/ListView.js.map +1 -1
- package/dist/two-d/ui/LoadingScreen.d.ts +24 -1
- package/dist/two-d/ui/LoadingScreen.d.ts.map +1 -1
- package/dist/two-d/ui/LoadingScreen.js +24 -1
- package/dist/two-d/ui/LoadingScreen.js.map +1 -1
- package/dist/two-d/ui/MessageBox.d.ts +21 -2
- package/dist/two-d/ui/MessageBox.d.ts.map +1 -1
- package/dist/two-d/ui/MessageBox.js +19 -0
- package/dist/two-d/ui/MessageBox.js.map +1 -1
- package/dist/two-d/ui/NinePatch.d.ts +12 -0
- package/dist/two-d/ui/NinePatch.d.ts.map +1 -1
- package/dist/two-d/ui/NinePatch.js +12 -0
- package/dist/two-d/ui/NinePatch.js.map +1 -1
- package/dist/two-d/ui/RebindScreen.d.ts +15 -0
- package/dist/two-d/ui/RebindScreen.d.ts.map +1 -1
- package/dist/two-d/ui/RebindScreen.js +15 -0
- package/dist/two-d/ui/RebindScreen.js.map +1 -1
- package/dist/two-d/ui/SelectionModel.d.ts +50 -0
- package/dist/two-d/ui/SelectionModel.d.ts.map +1 -0
- package/dist/two-d/ui/SelectionModel.js +73 -0
- package/dist/two-d/ui/SelectionModel.js.map +1 -0
- package/dist/two-d/ui/StatsScreen.d.ts +15 -0
- package/dist/two-d/ui/StatsScreen.d.ts.map +1 -1
- package/dist/two-d/ui/StatsScreen.js +15 -0
- package/dist/two-d/ui/StatsScreen.js.map +1 -1
- package/dist/two-d/ui/Toast.d.ts +12 -0
- package/dist/two-d/ui/Toast.d.ts.map +1 -1
- package/dist/two-d/ui/Toast.js +12 -0
- package/dist/two-d/ui/Toast.js.map +1 -1
- package/dist/two-d/ui/Tooltip.d.ts +14 -0
- package/dist/two-d/ui/Tooltip.d.ts.map +1 -1
- package/dist/two-d/ui/Tooltip.js +14 -0
- package/dist/two-d/ui/Tooltip.js.map +1 -1
- package/dist/two-d/ui/VerticalLabel.d.ts +18 -0
- package/dist/two-d/ui/VerticalLabel.d.ts.map +1 -1
- package/dist/two-d/ui/VerticalLabel.js +18 -0
- package/dist/two-d/ui/VerticalLabel.js.map +1 -1
- package/dist/two-d/ui/Window.d.ts +12 -0
- package/dist/two-d/ui/Window.d.ts.map +1 -1
- package/dist/two-d/ui/Window.js +12 -0
- package/dist/two-d/ui/Window.js.map +1 -1
- package/dist/two-d/ui/theme.d.ts +45 -1
- package/dist/two-d/ui/theme.d.ts.map +1 -1
- package/dist/two-d/ui/theme.js +45 -1
- package/dist/two-d/ui/theme.js.map +1 -1
- package/dist/two-d/ui/themedText.d.ts +20 -0
- package/dist/two-d/ui/themedText.d.ts.map +1 -0
- package/dist/two-d/ui/themedText.js +9 -0
- package/dist/two-d/ui/themedText.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +11 -2
- package/tools/compile-resources.mjs +1 -1
- package/tools/compress-dist.d.mts +16 -0
- package/tools/compress-dist.mjs +116 -0
package/dist/two-d/ui/Bar.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Container
|
|
1
|
+
import { Container } from 'pixi.js';
|
|
2
|
+
import type { Texture2D } from '../render/Types2D.ts';
|
|
2
3
|
export interface BarOptions {
|
|
3
4
|
width: number;
|
|
4
5
|
height: number;
|
|
@@ -8,9 +9,9 @@ export interface BarOptions {
|
|
|
8
9
|
value?: number;
|
|
9
10
|
max?: number;
|
|
10
11
|
/** the fill's own art, stretched to the filled width; a plain colour rect (the default) when omitted */
|
|
11
|
-
fillTexture?:
|
|
12
|
+
fillTexture?: Texture2D;
|
|
12
13
|
/** the track's own art; a plain colour rect (the theme's panel fill) when omitted */
|
|
13
|
-
backgroundTexture?:
|
|
14
|
+
backgroundTexture?: Texture2D;
|
|
14
15
|
/**
|
|
15
16
|
* Rounds the filled width up to the next whole pixel instead of a fractional one, so a
|
|
16
17
|
* sliver of value (1 hp of 300, say) never rounds down to nothing. Off by default, since
|
|
@@ -25,6 +26,18 @@ export interface BarOptions {
|
|
|
25
26
|
* Closer to a small, focused primitive than a general-purpose progress-bar widget: it draws
|
|
26
27
|
* a background track and a foreground fill sized to `value / max`, and nothing else. Colour
|
|
27
28
|
* follows the theme the way `Label` does, unless a game gives one of its own.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* import { Bar } from '@datamoc/mw_games/two-d/ui';
|
|
33
|
+
*
|
|
34
|
+
* const hp = new Bar({ width: 120, height: 8, color: 0xcc3333, value: 30, max: 30 });
|
|
35
|
+
*
|
|
36
|
+
* hp.setValue(18, 30); // took damage
|
|
37
|
+
* console.log(hp.value); // 0.6
|
|
38
|
+
*
|
|
39
|
+
* hp.resize(160, 8); // the window around it grew
|
|
40
|
+
* ```
|
|
28
41
|
*/
|
|
29
42
|
export declare class Bar extends Container {
|
|
30
43
|
private track;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bar.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/Bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,
|
|
1
|
+
{"version":3,"file":"Bar.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/Bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAEf,gHAAgH;IAChH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,wGAAwG;IACxG,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAE9B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,GAAI,SAAQ,SAAS;IACjC,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,IAAI,CAAkB;IAE9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IAEzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD,YAAY,OAAO,EAAE,UAAU,EAiB9B;IAED,+BAA+B;IAC/B,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,IAAI,CAGrC;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI1C;IAED,OAAO,CAAC,IAAI;IA2BH,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAGpE;CACD"}
|
package/dist/two-d/ui/Bar.js
CHANGED
|
@@ -6,6 +6,18 @@ import { theme, themeChanged } from './theme.js';
|
|
|
6
6
|
* Closer to a small, focused primitive than a general-purpose progress-bar widget: it draws
|
|
7
7
|
* a background track and a foreground fill sized to `value / max`, and nothing else. Colour
|
|
8
8
|
* follows the theme the way `Label` does, unless a game gives one of its own.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { Bar } from '@datamoc/mw_games/two-d/ui';
|
|
13
|
+
*
|
|
14
|
+
* const hp = new Bar({ width: 120, height: 8, color: 0xcc3333, value: 30, max: 30 });
|
|
15
|
+
*
|
|
16
|
+
* hp.setValue(18, 30); // took damage
|
|
17
|
+
* console.log(hp.value); // 0.6
|
|
18
|
+
*
|
|
19
|
+
* hp.resize(160, 8); // the window around it grew
|
|
20
|
+
* ```
|
|
9
21
|
*/
|
|
10
22
|
export class Bar extends Container {
|
|
11
23
|
constructor(options) {
|
|
@@ -49,7 +61,10 @@ export class Bar extends Container {
|
|
|
49
61
|
if (this.fraction > 0) {
|
|
50
62
|
const rawWidth = this.width_ * this.fraction;
|
|
51
63
|
const width = this.roundUpToPixel ? Math.ceil(rawWidth) : rawWidth;
|
|
52
|
-
|
|
64
|
+
//rtl fills from the reading-start edge, which is the right one, rather than always
|
|
65
|
+
//growing from x=0 the way a ltr bar (health, mana, a loading bar) reads naturally
|
|
66
|
+
const x = t.direction === 'rtl' ? this.width_ - width : 0;
|
|
67
|
+
this.fill.rect(x, 0, width, this.height_);
|
|
53
68
|
//an explicit colour tints art the same way it recolours a flat fill; an
|
|
54
69
|
//untinted texture is left to its own colours when none was given
|
|
55
70
|
this.fill.fill(this.fillTexture
|
package/dist/two-d/ui/Bar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bar.js","sourceRoot":"","sources":["../../../src/two-d/ui/Bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"Bar.js","sourceRoot":"","sources":["../../../src/two-d/ui/Bar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
import { BitmapText } from 'pixi.js';
|
|
2
2
|
import type { TextStyleOptions } from 'pixi.js';
|
|
3
3
|
import { type Theme } from './theme.ts';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
size?: number;
|
|
8
|
-
/** wraps at this width in pixels; omit for a single unwrapped line */
|
|
9
|
-
wrapWidth?: number;
|
|
10
|
-
align?: 'left' | 'center' | 'right';
|
|
11
|
-
bold?: boolean;
|
|
12
|
-
}
|
|
4
|
+
import { type ThemedTextOptions } from './themedText.ts';
|
|
5
|
+
/** today exactly the shared themed-text fields; a distinct name so bitmap-specific options have somewhere to land later */
|
|
6
|
+
export type BitmapLabelOptions = ThemedTextOptions;
|
|
13
7
|
/**
|
|
14
8
|
* A piece of text baked into a glyph-atlas texture instead of rasterised fresh on every
|
|
15
9
|
* change, the way `Label` (a thin wrapper over Pixi's `Text`) does. `Label`'s own doc
|
|
@@ -22,6 +16,15 @@ export interface BitmapLabelOptions {
|
|
|
22
16
|
* family/size/colour/weight combination is used (see `BitmapText`'s "Dynamic Bitmap Fonts"
|
|
23
17
|
* behaviour) - nothing here downloads or ships a font file, keeping this the same
|
|
24
18
|
* generated-not-borrowed shape as every other asset in this project.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { BitmapLabel } from '@datamoc/mw_games/two-d/ui';
|
|
23
|
+
*
|
|
24
|
+
* const fps = new BitmapLabel({ text: '60 fps', size: 12 });
|
|
25
|
+
*
|
|
26
|
+
* fps.setText('59 fps'); // updated every frame, cheaply, unlike Label
|
|
27
|
+
* ```
|
|
25
28
|
*/
|
|
26
29
|
export declare class BitmapLabel extends BitmapText {
|
|
27
30
|
private readonly opts;
|
|
@@ -37,6 +40,19 @@ export declare class BitmapLabel extends BitmapText {
|
|
|
37
40
|
private restyle;
|
|
38
41
|
destroy(options?: Parameters<BitmapText['destroy']>[0]): void;
|
|
39
42
|
}
|
|
40
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* the pure style-mapping `BitmapLabel` builds its underlying `BitmapText` style from, exported
|
|
45
|
+
* for testing without constructing a `BitmapText` (which needs a real DOM `document`, unlike
|
|
46
|
+
* `Text`)
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```ts
|
|
50
|
+
* import { bitmapLabelStyle } from '@datamoc/mw_games/two-d/ui';
|
|
51
|
+
* import { defaultTheme } from '@datamoc/mw_games/two-d/ui';
|
|
52
|
+
*
|
|
53
|
+
* const style = bitmapLabelStyle({ text: 'Score', bold: true }, defaultTheme);
|
|
54
|
+
* console.log(style.fontWeight); // 'bold'
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
41
57
|
export declare function bitmapLabelStyle(opts: BitmapLabelOptions, t: Theme): TextStyleOptions;
|
|
42
58
|
//# sourceMappingURL=BitmapLabel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BitmapLabel.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/BitmapLabel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAuB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"BitmapLabel.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/BitmapLabel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAuB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAqC,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE5F,2HAA2H;AAC3H,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,WAAY,SAAQ,UAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAE/D,YAAY,OAAO,GAAE,kBAAkB,GAAG,MAAW,EAWpD;IAED,uEAAuE;IACvE,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE3B;IAED;;;;OAIG;IACH,OAAO,CAAC,OAAO;IAIN,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAGrE;CACD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,KAAK,GAAG,gBAAgB,CAWrF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BitmapText } from 'pixi.js';
|
|
2
2
|
import { theme, themeChanged } from './theme.js';
|
|
3
|
+
import { normalizeTextOptions, themedAlign } from './themedText.js';
|
|
3
4
|
/**
|
|
4
5
|
* A piece of text baked into a glyph-atlas texture instead of rasterised fresh on every
|
|
5
6
|
* change, the way `Label` (a thin wrapper over Pixi's `Text`) does. `Label`'s own doc
|
|
@@ -12,10 +13,19 @@ import { theme, themeChanged } from './theme.js';
|
|
|
12
13
|
* family/size/colour/weight combination is used (see `BitmapText`'s "Dynamic Bitmap Fonts"
|
|
13
14
|
* behaviour) - nothing here downloads or ships a font file, keeping this the same
|
|
14
15
|
* generated-not-borrowed shape as every other asset in this project.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { BitmapLabel } from '@datamoc/mw_games/two-d/ui';
|
|
20
|
+
*
|
|
21
|
+
* const fps = new BitmapLabel({ text: '60 fps', size: 12 });
|
|
22
|
+
*
|
|
23
|
+
* fps.setText('59 fps'); // updated every frame, cheaply, unlike Label
|
|
24
|
+
* ```
|
|
15
25
|
*/
|
|
16
26
|
export class BitmapLabel extends BitmapText {
|
|
17
27
|
constructor(options = {}) {
|
|
18
|
-
const opts =
|
|
28
|
+
const opts = normalizeTextOptions(options);
|
|
19
29
|
const t = theme();
|
|
20
30
|
super({
|
|
21
31
|
text: opts.text ?? '',
|
|
@@ -43,14 +53,27 @@ export class BitmapLabel extends BitmapText {
|
|
|
43
53
|
super.destroy(options);
|
|
44
54
|
}
|
|
45
55
|
}
|
|
46
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
* the pure style-mapping `BitmapLabel` builds its underlying `BitmapText` style from, exported
|
|
58
|
+
* for testing without constructing a `BitmapText` (which needs a real DOM `document`, unlike
|
|
59
|
+
* `Text`)
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* import { bitmapLabelStyle } from '@datamoc/mw_games/two-d/ui';
|
|
64
|
+
* import { defaultTheme } from '@datamoc/mw_games/two-d/ui';
|
|
65
|
+
*
|
|
66
|
+
* const style = bitmapLabelStyle({ text: 'Score', bold: true }, defaultTheme);
|
|
67
|
+
* console.log(style.fontWeight); // 'bold'
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
47
70
|
export function bitmapLabelStyle(opts, t) {
|
|
48
71
|
return {
|
|
49
72
|
fontFamily: t.font.family,
|
|
50
73
|
fontSize: opts.size ?? t.font.size,
|
|
51
74
|
fontWeight: opts.bold ? 'bold' : 'normal',
|
|
52
75
|
fill: opts.color ?? t.color.text,
|
|
53
|
-
align: opts
|
|
76
|
+
align: themedAlign(opts, t),
|
|
54
77
|
wordWrap: opts.wrapWidth !== undefined,
|
|
55
78
|
wordWrapWidth: opts.wrapWidth ?? 0,
|
|
56
79
|
breakWords: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BitmapLabel.js","sourceRoot":"","sources":["../../../src/two-d/ui/BitmapLabel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"BitmapLabel.js","sourceRoot":"","sources":["../../../src/two-d/ui/BitmapLabel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAA0B,MAAM,iBAAiB,CAAC;AAK5F;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,WAAY,SAAQ,UAAU;IAI1C,YAAY,OAAO,GAAgC,EAAE;QACpD,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;QAElB,KAAK,CAAC;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;YACrB,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;SAChC,CAAC,CAAC;QATa,kBAAa,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAW9D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAED,uEAAuE;IACvE,OAAO,CAAC,KAAa;QACpB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;YAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACK,OAAO,CAAC,CAAQ;QACvB,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAEQ,OAAO,CAAC,OAA8C;QAC9D,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;CACD;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAwB,EAAE,CAAQ;IAClE,OAAO;QACN,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM;QACzB,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI;QAClC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;QACzC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI;QAChC,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3B,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,SAAS;QACtC,aAAa,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC;QAClC,UAAU,EAAE,IAAI;KAChB,CAAC;AACH,CAAC"}
|
|
@@ -38,6 +38,21 @@ export interface ButtonOptions {
|
|
|
38
38
|
*
|
|
39
39
|
* `icon` alone (no `text`) is the icon-only button a title screen commonly reaches for -
|
|
40
40
|
* rankings, badges, settings - where a caption would only repeat what the icon already says.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* import { Button } from '@datamoc/mw_games/two-d/ui';
|
|
45
|
+
*
|
|
46
|
+
* const start = new Button({
|
|
47
|
+
* width: 160,
|
|
48
|
+
* height: 32,
|
|
49
|
+
* text: 'Start',
|
|
50
|
+
* onClick: () => console.log('start pressed'),
|
|
51
|
+
* });
|
|
52
|
+
*
|
|
53
|
+
* start.setDisabled(true); // greys it out and stops pointer events
|
|
54
|
+
* console.log(start.disabled); // true
|
|
55
|
+
* ```
|
|
41
56
|
*/
|
|
42
57
|
export declare class Button extends Container {
|
|
43
58
|
readonly onClick: Signal<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/Button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAEpE,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACnC,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAEf;uDACmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,wFAAwF;IACxF,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,uEAAuE;IACvE,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0LAA0L;IAC1L,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8HAA8H;IAC9H,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAGD
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/Button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAEpE,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACnC,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAEf;uDACmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,wFAAwF;IACxF,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,uEAAuE;IACvE,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0LAA0L;IAC1L,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8HAA8H;IAC9H,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAGD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,MAAO,SAAQ,SAAS;IACpC,QAAQ,CAAC,OAAO,eAAsB;IACtC,QAAQ,CAAC,OAAO,eAAsB;IACtC,QAAQ,CAAC,SAAS,eAAsB;IAExC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,IAAI,CAAmB;IAE/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,SAAS,CAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD,YAAY,OAAO,EAAE,aAAa,EA8CjC;IAED,wGAAwG;IACxG,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAM/B;;gFAE4E;IAC5E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI1C;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAWtC;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAGnC;IAED,OAAO,CAAC,QAAQ;IAQhB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,IAAI;IA+BH,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAGpE;CACD"}
|
package/dist/two-d/ui/Button.js
CHANGED
|
@@ -12,6 +12,21 @@ import { theme, themeChanged } from './theme.js';
|
|
|
12
12
|
*
|
|
13
13
|
* `icon` alone (no `text`) is the icon-only button a title screen commonly reaches for -
|
|
14
14
|
* rankings, badges, settings - where a caption would only repeat what the icon already says.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { Button } from '@datamoc/mw_games/two-d/ui';
|
|
19
|
+
*
|
|
20
|
+
* const start = new Button({
|
|
21
|
+
* width: 160,
|
|
22
|
+
* height: 32,
|
|
23
|
+
* text: 'Start',
|
|
24
|
+
* onClick: () => console.log('start pressed'),
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* start.setDisabled(true); // greys it out and stops pointer events
|
|
28
|
+
* console.log(start.disabled); // true
|
|
29
|
+
* ```
|
|
15
30
|
*/
|
|
16
31
|
export class Button extends Container {
|
|
17
32
|
constructor(options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/two-d/ui/Button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAyB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAqB,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAoC7D
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/two-d/ui/Button.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,21 @@ export interface FloatingTextOptions {
|
|
|
13
13
|
* `Label`'s job of a static, positioned string. This is animation over a label, timed rather
|
|
14
14
|
* than laid out - a game positions one instance per pop-up at the world point it should
|
|
15
15
|
* appear over, then drives it with `update(dt)` the same way `core.Spawner` is `dt`-driven.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { FloatingText } from '@datamoc/mw_games/two-d/ui';
|
|
20
|
+
* import type { Container2D } from '@datamoc/mw_games/two-d/render';
|
|
21
|
+
*
|
|
22
|
+
* declare const worldLayer: Container2D;
|
|
23
|
+
*
|
|
24
|
+
* const popup = new FloatingText({ text: '-12', color: 0xff4444 });
|
|
25
|
+
* popup.position.set(64, 96);
|
|
26
|
+
* worldLayer.addChild(popup);
|
|
27
|
+
*
|
|
28
|
+
* popup.update(0.5); // advance the rise/fade by half a second
|
|
29
|
+
* if (popup.finished) console.log('already removed and destroyed itself');
|
|
30
|
+
* ```
|
|
16
31
|
*/
|
|
17
32
|
export declare class FloatingText extends Container {
|
|
18
33
|
private readonly duration;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatingText.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/FloatingText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED
|
|
1
|
+
{"version":3,"file":"FloatingText.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/FloatingText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,YAAa,SAAQ,SAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,IAAI,CAAS;IAErB,YAAY,OAAO,EAAE,mBAAmB,EASvC;IAED,+FAA+F;IAC/F,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,gGAAgG;IAChG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAavB;CACD"}
|
|
@@ -5,6 +5,21 @@ import { Label } from './Label.js';
|
|
|
5
5
|
* `Label`'s job of a static, positioned string. This is animation over a label, timed rather
|
|
6
6
|
* than laid out - a game positions one instance per pop-up at the world point it should
|
|
7
7
|
* appear over, then drives it with `update(dt)` the same way `core.Spawner` is `dt`-driven.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { FloatingText } from '@datamoc/mw_games/two-d/ui';
|
|
12
|
+
* import type { Container2D } from '@datamoc/mw_games/two-d/render';
|
|
13
|
+
*
|
|
14
|
+
* declare const worldLayer: Container2D;
|
|
15
|
+
*
|
|
16
|
+
* const popup = new FloatingText({ text: '-12', color: 0xff4444 });
|
|
17
|
+
* popup.position.set(64, 96);
|
|
18
|
+
* worldLayer.addChild(popup);
|
|
19
|
+
*
|
|
20
|
+
* popup.update(0.5); // advance the rise/fade by half a second
|
|
21
|
+
* if (popup.finished) console.log('already removed and destroyed itself');
|
|
22
|
+
* ```
|
|
8
23
|
*/
|
|
9
24
|
export class FloatingText extends Container {
|
|
10
25
|
constructor(options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatingText.js","sourceRoot":"","sources":["../../../src/two-d/ui/FloatingText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAcnC
|
|
1
|
+
{"version":3,"file":"FloatingText.js","sourceRoot":"","sources":["../../../src/two-d/ui/FloatingText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAcnC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,YAAa,SAAQ,SAAS;IAM1C,YAAY,OAA4B;QACvC,KAAK,EAAE,CAAC;QAJD,YAAO,GAAG,CAAC,CAAC;QACZ,SAAI,GAAG,KAAK,CAAC;QAKpB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAE/B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1F,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,+FAA+F;IAC/F,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,gGAAgG;IAChG,MAAM,CAAC,EAAU;QAChB,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO;QAEtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAEnB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;CACD"}
|
|
@@ -16,6 +16,22 @@ export interface HelpScreenOptions {
|
|
|
16
16
|
* highlighted, over the same `ListView`/`Label` a game already builds every other menu
|
|
17
17
|
* from - a recipe, not a new primitive, the way `RebindScreen` composes `ListView` rather
|
|
18
18
|
* than inventing its own row widget.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { HelpScreen } from '@datamoc/mw_games/two-d/ui';
|
|
23
|
+
*
|
|
24
|
+
* const help = new HelpScreen({
|
|
25
|
+
* width: 320,
|
|
26
|
+
* height: 200,
|
|
27
|
+
* topics: [
|
|
28
|
+
* { title: 'Movement', body: 'Arrow keys or WASD to move.' },
|
|
29
|
+
* { title: 'Combat', body: 'Walk into an enemy to attack it.' },
|
|
30
|
+
* ],
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* help.handleAction('down'); // highlights "Combat" and shows its body
|
|
34
|
+
* ```
|
|
19
35
|
*/
|
|
20
36
|
export declare class HelpScreen extends Container {
|
|
21
37
|
private list;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HelpScreen.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/HelpScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKlD,MAAM,WAAW,SAAS;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IAE7B,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED
|
|
1
|
+
{"version":3,"file":"HelpScreen.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/HelpScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKlD,MAAM,WAAW,SAAS;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IAE7B,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,UAAW,SAAQ,SAAS;IACxC,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,MAAM,CAAuB;IAErC,YAAY,OAAO,EAAE,iBAAiB,EAyBrC;IAED,OAAO,CAAC,QAAQ;IAIhB,6CAA6C;IAC7C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEpC;CACD"}
|
|
@@ -7,13 +7,32 @@ import { theme } from './theme.js';
|
|
|
7
7
|
* highlighted, over the same `ListView`/`Label` a game already builds every other menu
|
|
8
8
|
* from - a recipe, not a new primitive, the way `RebindScreen` composes `ListView` rather
|
|
9
9
|
* than inventing its own row widget.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { HelpScreen } from '@datamoc/mw_games/two-d/ui';
|
|
14
|
+
*
|
|
15
|
+
* const help = new HelpScreen({
|
|
16
|
+
* width: 320,
|
|
17
|
+
* height: 200,
|
|
18
|
+
* topics: [
|
|
19
|
+
* { title: 'Movement', body: 'Arrow keys or WASD to move.' },
|
|
20
|
+
* { title: 'Combat', body: 'Walk into an enemy to attack it.' },
|
|
21
|
+
* ],
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* help.handleAction('down'); // highlights "Combat" and shows its body
|
|
25
|
+
* ```
|
|
10
26
|
*/
|
|
11
27
|
export class HelpScreen extends Container {
|
|
12
28
|
constructor(options) {
|
|
13
29
|
super();
|
|
14
30
|
this.topics = options.topics;
|
|
15
31
|
const listWidth = options.listWidth ?? Math.floor(options.width / 3);
|
|
16
|
-
const
|
|
32
|
+
const bodyWidth = options.width - listWidth - theme().spacing;
|
|
33
|
+
//rtl mirrors which pane sits on which side - the topic list stays reading-start,
|
|
34
|
+
//which is the right edge in rtl, with the body filling the reading-end side
|
|
35
|
+
const rtl = theme().direction === 'rtl';
|
|
17
36
|
this.list = new ListView({
|
|
18
37
|
width: listWidth,
|
|
19
38
|
height: options.height,
|
|
@@ -21,9 +40,10 @@ export class HelpScreen extends Container {
|
|
|
21
40
|
onHighlight: (_item, index) => this.showBody(index),
|
|
22
41
|
onSelect: (_item, index) => this.showBody(index),
|
|
23
42
|
});
|
|
43
|
+
this.list.x = rtl ? options.width - listWidth : 0;
|
|
24
44
|
this.addChild(this.list);
|
|
25
|
-
this.body = new Label({ wrapWidth:
|
|
26
|
-
this.body.x =
|
|
45
|
+
this.body = new Label({ wrapWidth: bodyWidth });
|
|
46
|
+
this.body.x = rtl ? 0 : listWidth + theme().spacing;
|
|
27
47
|
this.addChild(this.body);
|
|
28
48
|
if (this.topics.length > 0)
|
|
29
49
|
this.showBody(this.list.selectedIndex);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HelpScreen.js","sourceRoot":"","sources":["../../../src/two-d/ui/HelpScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAgBnC
|
|
1
|
+
{"version":3,"file":"HelpScreen.js","sourceRoot":"","sources":["../../../src/two-d/ui/HelpScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAgBnC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,UAAW,SAAQ,SAAS;IAKxC,YAAY,OAA0B;QACrC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,EAAE,CAAC,OAAO,CAAC;QAC9D,iFAAiF;QACjF,4EAA4E;QAC5E,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC,SAAS,KAAK,KAAK,CAAC;QAExC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC;YACxB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1D,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,EAAE,CAAC,OAAO,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpE,CAAC;IAEO,QAAQ,CAAC,KAAa;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,6CAA6C;IAC7C,YAAY,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;CACD"}
|
|
@@ -40,9 +40,32 @@ export interface IconGridOptions {
|
|
|
40
40
|
* none of the drag-threshold and global-pointer-tracking fragility an actually-followed ghost
|
|
41
41
|
* sprite would - and unlike a live drag, every step of it is a plain method call a test can
|
|
42
42
|
* drive without simulating pointer events at all.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* import { IconGrid } from '@datamoc/mw_games/two-d/ui';
|
|
47
|
+
* import { Shape2D } from '@datamoc/mw_games/two-d/render';
|
|
48
|
+
*
|
|
49
|
+
* const potionIcon = new Shape2D().rect(0, 0, 16, 16).fill(0x66cc66);
|
|
50
|
+
* const swordIcon = new Shape2D().rect(0, 0, 16, 16).fill(0xcccccc);
|
|
51
|
+
*
|
|
52
|
+
* const bag = new IconGrid({
|
|
53
|
+
* width: 160,
|
|
54
|
+
* height: 80,
|
|
55
|
+
* columns: 4,
|
|
56
|
+
* items: [
|
|
57
|
+
* { icon: potionIcon, quantity: 3 },
|
|
58
|
+
* { icon: swordIcon },
|
|
59
|
+
* ],
|
|
60
|
+
* onSelect: (item, index) => console.log('used', index, item.value),
|
|
61
|
+
* });
|
|
62
|
+
*
|
|
63
|
+
* bag.handleAction('right'); // moves the highlight to the sword
|
|
64
|
+
* bag.handleAction('confirm'); // fires onSelect for the highlighted cell
|
|
65
|
+
* ```
|
|
43
66
|
*/
|
|
44
67
|
export declare class IconGrid extends Container {
|
|
45
|
-
private
|
|
68
|
+
private readonly selection;
|
|
46
69
|
private cells;
|
|
47
70
|
private cellsLayer;
|
|
48
71
|
private highlight;
|
|
@@ -53,7 +76,6 @@ export declare class IconGrid extends Container {
|
|
|
53
76
|
private columns;
|
|
54
77
|
private cellSize;
|
|
55
78
|
private longPressDuration;
|
|
56
|
-
private index;
|
|
57
79
|
private scrollRow;
|
|
58
80
|
/** the cell a first tap picked up, awaiting a second tap to swap with */
|
|
59
81
|
private pickedUp;
|
|
@@ -67,9 +89,11 @@ export declare class IconGrid extends Container {
|
|
|
67
89
|
* Recolours quantity badges in place rather than through `setItems`: an item's `icon` is
|
|
68
90
|
* a `Container` the caller owns, and `setItems`'s teardown destroys a cell's children on
|
|
69
91
|
* the way out (see `swapCells`'s own doc comment) - routing a restyle through it would
|
|
70
|
-
* destroy the very icons still referenced by
|
|
92
|
+
* destroy the very icons still referenced by the selection's items.
|
|
71
93
|
*/
|
|
72
94
|
private readonly themeListener;
|
|
95
|
+
/** a column's x, mirrored under `theme().direction === 'rtl'` so column 0 sits at the reading-start edge */
|
|
96
|
+
private columnX;
|
|
73
97
|
constructor(options: IconGridOptions);
|
|
74
98
|
destroy(options?: Parameters<Container['destroy']>[0]): void;
|
|
75
99
|
private drawMask;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconGrid.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/IconGrid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"IconGrid.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/IconGrid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,YAAY;IAC5B,kDAAkD;IAClD,IAAI,EAAE,WAAW,CAAC;IAElB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,kEAAkE;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAEf,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAEhB,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IAEvB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1D,iFAAiF;IACjF,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1D,iFAAiF;IACjF,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,QAAS,SAAQ,SAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGvB;IACH,OAAO,CAAC,KAAK,CAAmB;IAEhC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,KAAK,CAAkB;IAE/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,SAAS,CAAK;IAEtB,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAuB;IAEvC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,UAAU,CAAK;IAEvB,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/D,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAClE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAClE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAEjE;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAa5B;IAEF,4GAA4G;IAC5G,OAAO,CAAC,OAAO;IAKf,YAAY,OAAO,EAAE,eAAe,EA+BnC;IAEQ,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAGpE;IAED,OAAO,CAAC,QAAQ;IAIhB,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,QAAQ,IAAI,YAAY,GAAG,IAAI,CAElC;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,CA8CpC;IAED,OAAO,CAAC,WAAW;IAOnB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAK1C;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAWvB;IAED,6EAA6E;IAC7E,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAmB3B;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;IAejB,oFAAoF;IACpF,YAAY,IAAI,IAAI,CAGnB;IAED;;;;;OAKG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAWpC;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE1B;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,6CAA6C;IAC7C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAmBpC;IAED,+DAA+D;IAC/D,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,OAAO;CA4Bf"}
|