@codexo/exojs 0.14.0 → 0.15.0
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 +132 -0
- package/README.md +2 -4
- package/dist/esm/animation/Tween.d.ts.map +1 -1
- package/dist/esm/animation/Tween.js +0 -1
- package/dist/esm/animation/Tween.js.map +1 -1
- package/dist/esm/animation/TweenManager.d.ts +44 -5
- package/dist/esm/animation/TweenManager.d.ts.map +1 -1
- package/dist/esm/animation/TweenManager.js +57 -5
- package/dist/esm/animation/TweenManager.js.map +1 -1
- package/dist/esm/animation/TweenSequencer.d.ts +139 -0
- package/dist/esm/animation/TweenSequencer.d.ts.map +1 -0
- package/dist/esm/animation/TweenSequencer.js +305 -0
- package/dist/esm/animation/TweenSequencer.js.map +1 -0
- package/dist/esm/animation/index.d.ts +1 -0
- package/dist/esm/animation/index.d.ts.map +1 -1
- package/dist/esm/audio/WorkletEffect.d.ts +34 -20
- package/dist/esm/audio/WorkletEffect.d.ts.map +1 -1
- package/dist/esm/audio/WorkletEffect.js +92 -25
- package/dist/esm/audio/WorkletEffect.js.map +1 -1
- package/dist/esm/core/Application.d.ts +43 -5
- package/dist/esm/core/Application.d.ts.map +1 -1
- package/dist/esm/core/Application.js +83 -9
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/BuildInfo.js +2 -2
- package/dist/esm/core/Codec.d.ts +41 -0
- package/dist/esm/core/Codec.d.ts.map +1 -0
- package/dist/esm/core/Codec.js +79 -0
- package/dist/esm/core/Codec.js.map +1 -0
- package/dist/esm/core/FixedTimestep.d.ts +28 -0
- package/dist/esm/core/FixedTimestep.d.ts.map +1 -0
- package/dist/esm/core/FixedTimestep.js +62 -0
- package/dist/esm/core/FixedTimestep.js.map +1 -0
- package/dist/esm/core/Scene.d.ts +14 -0
- package/dist/esm/core/Scene.d.ts.map +1 -1
- package/dist/esm/core/Scene.js +18 -0
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.d.ts +7 -0
- package/dist/esm/core/SceneManager.d.ts.map +1 -1
- package/dist/esm/core/SceneManager.js +20 -4
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +36 -6
- package/dist/esm/core/SceneNode.d.ts.map +1 -1
- package/dist/esm/core/SceneNode.js +63 -11
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/Stage.d.ts +7 -0
- package/dist/esm/core/Stage.d.ts.map +1 -1
- package/dist/esm/core/SystemRegistry.d.ts +5 -0
- package/dist/esm/core/SystemRegistry.d.ts.map +1 -1
- package/dist/esm/core/SystemRegistry.js +10 -0
- package/dist/esm/core/SystemRegistry.js.map +1 -1
- package/dist/esm/core/index.d.ts +4 -0
- package/dist/esm/core/index.d.ts.map +1 -1
- package/dist/esm/core/logging.d.ts +34 -0
- package/dist/esm/core/logging.d.ts.map +1 -0
- package/dist/esm/core/logging.js +59 -0
- package/dist/esm/core/logging.js.map +1 -0
- package/dist/esm/core/serialization/commonFields.d.ts.map +1 -1
- package/dist/esm/core/serialization/commonFields.js +6 -0
- package/dist/esm/core/serialization/commonFields.js.map +1 -1
- package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -1
- package/dist/esm/core/serialization/renderingSerializers.js +14 -5
- package/dist/esm/core/serialization/renderingSerializers.js.map +1 -1
- package/dist/esm/index.js +7 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/Gamepad.d.ts +10 -0
- package/dist/esm/input/Gamepad.d.ts.map +1 -1
- package/dist/esm/input/Gamepad.js +12 -0
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/InputManager.d.ts.map +1 -1
- package/dist/esm/input/InputManager.js +5 -0
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionManager.js +4 -4
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/math/collision-detection.js +1 -1
- package/dist/esm/rendering/BackendTargetPass.d.ts +1 -1
- package/dist/esm/rendering/BackendTargetPass.d.ts.map +1 -1
- package/dist/esm/rendering/CallbackRenderPass.d.ts +14 -10
- package/dist/esm/rendering/CallbackRenderPass.d.ts.map +1 -1
- package/dist/esm/rendering/CallbackRenderPass.js +16 -11
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/DrawContext.d.ts +48 -0
- package/dist/esm/rendering/DrawContext.d.ts.map +1 -0
- package/dist/esm/rendering/PassContext.d.ts +42 -0
- package/dist/esm/rendering/PassContext.d.ts.map +1 -0
- package/dist/esm/rendering/PassContext.js +48 -0
- package/dist/esm/rendering/PassContext.js.map +1 -0
- package/dist/esm/rendering/RenderBackend.d.ts +14 -0
- package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
- package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
- package/dist/esm/rendering/RenderNode.js +2 -2
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderNodePass.d.ts +1 -1
- package/dist/esm/rendering/RenderNodePass.d.ts.map +1 -1
- package/dist/esm/rendering/RenderingContext.d.ts +47 -16
- package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
- package/dist/esm/rendering/RenderingContext.js +134 -36
- package/dist/esm/rendering/RenderingContext.js.map +1 -1
- package/dist/esm/rendering/TransformBuffer.d.ts +23 -0
- package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/TransformBuffer.js +58 -0
- package/dist/esm/rendering/TransformBuffer.js.map +1 -1
- package/dist/esm/rendering/View.d.ts +38 -0
- package/dist/esm/rendering/View.d.ts.map +1 -1
- package/dist/esm/rendering/View.js +37 -0
- package/dist/esm/rendering/View.js.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +9 -2
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/material/MeshMaterial.d.ts +20 -1
- package/dist/esm/rendering/material/MeshMaterial.d.ts.map +1 -1
- package/dist/esm/rendering/material/MeshMaterial.js +17 -0
- package/dist/esm/rendering/material/MeshMaterial.js.map +1 -1
- package/dist/esm/rendering/material/SpriteMaterial.d.ts +20 -1
- package/dist/esm/rendering/material/SpriteMaterial.d.ts.map +1 -1
- package/dist/esm/rendering/material/SpriteMaterial.js +17 -0
- package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -1
- package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderEffectExecutor.js +7 -2
- package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
- package/dist/esm/rendering/plan/RenderInstruction.d.ts +5 -2
- package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanBuilder.js +23 -5
- package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
- package/dist/esm/rendering/plan/RenderScope.d.ts +7 -0
- package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts +10 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.js +30 -9
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/public.d.ts +5 -5
- package/dist/esm/rendering/public.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +56 -19
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.js +121 -31
- package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
- package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
- package/dist/esm/rendering/text/BitmapText.js +2 -0
- package/dist/esm/rendering/text/BitmapText.js.map +1 -1
- package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
- package/dist/esm/rendering/text/HTMLText.js +2 -2
- package/dist/esm/rendering/text/HTMLText.js.map +1 -1
- package/dist/esm/rendering/text/Text.d.ts.map +1 -1
- package/dist/esm/rendering/text/Text.js +2 -0
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/types.d.ts +37 -13
- package/dist/esm/rendering/types.d.ts.map +1 -1
- package/dist/esm/rendering/types.js +37 -13
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts +41 -0
- package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js +222 -0
- package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +34 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +108 -60
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +50 -11
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/text.vert.js +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts +72 -0
- package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js +494 -0
- package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +27 -0
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +157 -60
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js +5 -29
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +2 -0
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +2 -1
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +4 -0
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +3 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +2 -0
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +2 -1
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +8 -0
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +20 -0
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +6 -0
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +4 -1
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +2 -0
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +2 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +2 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +2 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +2 -0
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +3 -2
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +3 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +29 -5
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
- package/dist/esm/resources/Loader.d.ts +13 -0
- package/dist/esm/resources/Loader.d.ts.map +1 -1
- package/dist/esm/resources/Loader.js +67 -7
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/ui/ScrollContainer.d.ts +63 -0
- package/dist/esm/ui/ScrollContainer.d.ts.map +1 -0
- package/dist/esm/ui/ScrollContainer.js +99 -0
- package/dist/esm/ui/ScrollContainer.js.map +1 -0
- package/dist/esm/ui/Tooltip.d.ts +67 -0
- package/dist/esm/ui/Tooltip.d.ts.map +1 -0
- package/dist/esm/ui/Tooltip.js +133 -0
- package/dist/esm/ui/Tooltip.js.map +1 -0
- package/dist/esm/ui/index.d.ts +4 -0
- package/dist/esm/ui/index.d.ts.map +1 -1
- package/dist/exo.esm.js +1 -1
- package/dist/exo.esm.js.map +1 -1
- package/dist/exo.iife.js +45202 -0
- package/dist/exo.iife.js.map +1 -0
- package/dist/exo.iife.min.js +2 -0
- package/dist/exo.iife.min.js.map +1 -0
- package/package.json +15 -3
- package/dist/esm/rendering/Camera.d.ts +0 -34
- package/dist/esm/rendering/Camera.d.ts.map +0 -1
- package/dist/esm/rendering/Camera.js +0 -38
- package/dist/esm/rendering/Camera.js.map +0 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Container } from '../rendering/Container.js';
|
|
2
|
+
import { Widget } from './Widget.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Clipped container that scrolls its content via the mouse wheel.
|
|
6
|
+
*
|
|
7
|
+
* Add child nodes to {@link ScrollContainer.content} rather than to the
|
|
8
|
+
* `ScrollContainer` itself. The content container is offset as the user scrolls,
|
|
9
|
+
* while the outer widget is clipped to its declared `width` × `height`.
|
|
10
|
+
*
|
|
11
|
+
* Mouse-wheel events from the global {@link InputManager} are consumed only
|
|
12
|
+
* when the pointer is within the widget's bounds. The container subscribes to
|
|
13
|
+
* the app's `onMouseWheel` signal when it enters the scene tree, and
|
|
14
|
+
* unsubscribes on detach.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* const scroll = new ScrollContainer({ width: 300, height: 400 });
|
|
19
|
+
* for (let i = 0; i < 20; i++) {
|
|
20
|
+
* scroll.content.addChild(new Label(`Item ${i}`).setPosition(0, i * 30));
|
|
21
|
+
* }
|
|
22
|
+
* scene.ui.addChild(scroll);
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
class ScrollContainer extends Widget {
|
|
26
|
+
/** Add children here — not to the `ScrollContainer` itself. */
|
|
27
|
+
content;
|
|
28
|
+
_direction;
|
|
29
|
+
_scrollX = 0;
|
|
30
|
+
_scrollY = 0;
|
|
31
|
+
_onWheel = (delta) => {
|
|
32
|
+
const pos = this._stage?.app?.input.getPrimaryPointerPosition();
|
|
33
|
+
if (pos === null || pos === undefined) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const bounds = this.getBounds();
|
|
37
|
+
if (!bounds.contains(pos.x, pos.y)) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
this.scrollBy(this._direction !== 'vertical' ? delta.x : 0, this._direction !== 'horizontal' ? delta.y : 0);
|
|
41
|
+
};
|
|
42
|
+
constructor(options) {
|
|
43
|
+
super();
|
|
44
|
+
this._direction = options.direction ?? 'vertical';
|
|
45
|
+
this.content = new Container();
|
|
46
|
+
this.clip = true;
|
|
47
|
+
this.interactive = true;
|
|
48
|
+
this.addChild(this.content);
|
|
49
|
+
this.setSize(options.width, options.height);
|
|
50
|
+
}
|
|
51
|
+
/** Current horizontal scroll position in pixels. */
|
|
52
|
+
get scrollX() {
|
|
53
|
+
return this._scrollX;
|
|
54
|
+
}
|
|
55
|
+
/** Current vertical scroll position in pixels. */
|
|
56
|
+
get scrollY() {
|
|
57
|
+
return this._scrollY;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Scroll by `(dx, dy)` pixels, clamped to the scrollable content range.
|
|
61
|
+
* Positive values scroll right / down; negative values scroll left / up.
|
|
62
|
+
*/
|
|
63
|
+
scrollBy(dx, dy) {
|
|
64
|
+
this.scrollTo(this._scrollX + dx, this._scrollY + dy);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Scroll to an absolute `(x, y)` position in pixels, clamped to the
|
|
68
|
+
* content range so the content never scrolls past its edges.
|
|
69
|
+
*/
|
|
70
|
+
scrollTo(x, y) {
|
|
71
|
+
const contentBounds = this.content.getBounds();
|
|
72
|
+
const maxX = Math.max(0, contentBounds.width - this._uiWidth);
|
|
73
|
+
const maxY = Math.max(0, contentBounds.height - this._uiHeight);
|
|
74
|
+
this._scrollX = Math.max(0, Math.min(x, maxX));
|
|
75
|
+
this._scrollY = Math.max(0, Math.min(y, maxY));
|
|
76
|
+
this.content.setPosition(-this._scrollX, -this._scrollY);
|
|
77
|
+
}
|
|
78
|
+
_relayout() {
|
|
79
|
+
// Re-clamp scroll in case the widget was resized.
|
|
80
|
+
this.scrollTo(this._scrollX, this._scrollY);
|
|
81
|
+
}
|
|
82
|
+
/** @internal — subscribe to the app's wheel signal when entering the scene tree. */
|
|
83
|
+
_setStage(stage) {
|
|
84
|
+
const prevApp = this._stage?.app;
|
|
85
|
+
const nextApp = stage?.app;
|
|
86
|
+
super._setStage(stage);
|
|
87
|
+
if (prevApp !== nextApp) {
|
|
88
|
+
prevApp?.input.onMouseWheel.remove(this._onWheel);
|
|
89
|
+
nextApp?.input.onMouseWheel.add(this._onWheel);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
destroy() {
|
|
93
|
+
this._stage?.app?.input.onMouseWheel.remove(this._onWheel);
|
|
94
|
+
super.destroy();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export { ScrollContainer };
|
|
99
|
+
//# sourceMappingURL=ScrollContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollContainer.js","sources":["../../../../src/ui/ScrollContainer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { RenderNode } from '#rendering/RenderNode';
|
|
2
|
+
/** Options for {@link Tooltip}. */
|
|
3
|
+
export interface TooltipOptions {
|
|
4
|
+
/** Label text to display. */
|
|
5
|
+
text: string;
|
|
6
|
+
/** Horizontal pixel offset from the pointer position. Default `12`. */
|
|
7
|
+
offsetX?: number;
|
|
8
|
+
/** Vertical pixel offset from the pointer position. Default `-28`. */
|
|
9
|
+
offsetY?: number;
|
|
10
|
+
/** Seconds to wait before the tooltip appears. Default `0.3`. */
|
|
11
|
+
delay?: number;
|
|
12
|
+
/** Background fill color as a packed 0xRRGGBB integer. Default `0x222222`. */
|
|
13
|
+
background?: number;
|
|
14
|
+
/** Text color as a packed 0xRRGGBB integer. Default `0xffffff`. */
|
|
15
|
+
textColor?: number;
|
|
16
|
+
/** Inner padding in pixels around the text. Default `6`. */
|
|
17
|
+
padding?: number;
|
|
18
|
+
/** Font size in pixels. Default `12`. */
|
|
19
|
+
fontSize?: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Hover tooltip attached to a {@link RenderNode}. Shows a small text label
|
|
23
|
+
* near the pointer after a short delay when the pointer enters `target`, and
|
|
24
|
+
* hides it immediately on pointer-out.
|
|
25
|
+
*
|
|
26
|
+
* The tooltip node is parented to the nearest {@link UIRoot} ancestor of
|
|
27
|
+
* `target`, so it always renders in screen space above other content.
|
|
28
|
+
*
|
|
29
|
+
* The target must have `interactive = true` for the hover signals to fire.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* button.interactive = true;
|
|
34
|
+
* const tip = new Tooltip(button, { text: 'Click me!' });
|
|
35
|
+
* // Later:
|
|
36
|
+
* tip.destroy();
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare class Tooltip {
|
|
40
|
+
private readonly _target;
|
|
41
|
+
private readonly _offsetX;
|
|
42
|
+
private readonly _offsetY;
|
|
43
|
+
private readonly _delayMs;
|
|
44
|
+
private readonly _background;
|
|
45
|
+
private readonly _textColor;
|
|
46
|
+
private readonly _padding;
|
|
47
|
+
private readonly _fontSize;
|
|
48
|
+
private readonly _text;
|
|
49
|
+
private _node;
|
|
50
|
+
private _timer;
|
|
51
|
+
private readonly _onPointerOver;
|
|
52
|
+
private readonly _onPointerOut;
|
|
53
|
+
constructor(target: RenderNode, options: TooltipOptions);
|
|
54
|
+
/** Remove the tooltip and clean up all listeners. */
|
|
55
|
+
destroy(): void;
|
|
56
|
+
private _scheduleShow;
|
|
57
|
+
private _show;
|
|
58
|
+
private _hide;
|
|
59
|
+
private _removeNode;
|
|
60
|
+
private _cancelTimer;
|
|
61
|
+
/**
|
|
62
|
+
* Walk up the target's parent chain to find the nearest {@link UIRoot}.
|
|
63
|
+
* Returns `null` when the target is not attached to a UI layer.
|
|
64
|
+
*/
|
|
65
|
+
private _findUIRoot;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=Tooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../../src/ui/Tooltip.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAKxD,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,MAAM,CAA8C;IAE5D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE7B;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE5B;gBAEiB,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc;IAe9D,qDAAqD;IAC9C,OAAO,IAAI,IAAI;IAMtB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,KAAK;IAwCb,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,YAAY;IAOpB;;;OAGG;IAEH,OAAO,CAAC,WAAW;CAapB"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Color } from '../core/Color.js';
|
|
2
|
+
import { Container } from '../rendering/Container.js';
|
|
3
|
+
import { Graphics } from '../rendering/primitives/Graphics.js';
|
|
4
|
+
import { Text } from '../rendering/text/Text.js';
|
|
5
|
+
import { UIRoot } from './UIRoot.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Hover tooltip attached to a {@link RenderNode}. Shows a small text label
|
|
9
|
+
* near the pointer after a short delay when the pointer enters `target`, and
|
|
10
|
+
* hides it immediately on pointer-out.
|
|
11
|
+
*
|
|
12
|
+
* The tooltip node is parented to the nearest {@link UIRoot} ancestor of
|
|
13
|
+
* `target`, so it always renders in screen space above other content.
|
|
14
|
+
*
|
|
15
|
+
* The target must have `interactive = true` for the hover signals to fire.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* button.interactive = true;
|
|
20
|
+
* const tip = new Tooltip(button, { text: 'Click me!' });
|
|
21
|
+
* // Later:
|
|
22
|
+
* tip.destroy();
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
class Tooltip {
|
|
26
|
+
_target;
|
|
27
|
+
_offsetX;
|
|
28
|
+
_offsetY;
|
|
29
|
+
_delayMs;
|
|
30
|
+
_background;
|
|
31
|
+
_textColor;
|
|
32
|
+
_padding;
|
|
33
|
+
_fontSize;
|
|
34
|
+
_text;
|
|
35
|
+
_node = null;
|
|
36
|
+
_timer = null;
|
|
37
|
+
_onPointerOver = (event) => {
|
|
38
|
+
this._scheduleShow(event.worldX, event.worldY);
|
|
39
|
+
};
|
|
40
|
+
_onPointerOut = () => {
|
|
41
|
+
this._hide();
|
|
42
|
+
};
|
|
43
|
+
constructor(target, options) {
|
|
44
|
+
this._target = target;
|
|
45
|
+
this._text = options.text;
|
|
46
|
+
this._offsetX = options.offsetX ?? 12;
|
|
47
|
+
this._offsetY = options.offsetY ?? -28;
|
|
48
|
+
this._delayMs = (options.delay ?? 0.3) * 1000;
|
|
49
|
+
this._background = options.background ?? 0x222222;
|
|
50
|
+
this._textColor = options.textColor ?? 0xffffff;
|
|
51
|
+
this._padding = options.padding ?? 6;
|
|
52
|
+
this._fontSize = options.fontSize ?? 12;
|
|
53
|
+
target.onPointerOver.add(this._onPointerOver);
|
|
54
|
+
target.onPointerOut.add(this._onPointerOut);
|
|
55
|
+
}
|
|
56
|
+
/** Remove the tooltip and clean up all listeners. */
|
|
57
|
+
destroy() {
|
|
58
|
+
this._hide();
|
|
59
|
+
this._target.onPointerOver.remove(this._onPointerOver);
|
|
60
|
+
this._target.onPointerOut.remove(this._onPointerOut);
|
|
61
|
+
}
|
|
62
|
+
_scheduleShow(x, y) {
|
|
63
|
+
this._cancelTimer();
|
|
64
|
+
this._timer = setTimeout(() => {
|
|
65
|
+
this._show(x, y);
|
|
66
|
+
}, this._delayMs);
|
|
67
|
+
}
|
|
68
|
+
_show(x, y) {
|
|
69
|
+
// Remove any existing tooltip node first.
|
|
70
|
+
this._removeNode();
|
|
71
|
+
const uiRoot = this._findUIRoot();
|
|
72
|
+
if (uiRoot === null) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const hex = (packed) => {
|
|
76
|
+
return new Color((packed >> 16) & 0xff, (packed >> 8) & 0xff, packed & 0xff, 1);
|
|
77
|
+
};
|
|
78
|
+
const label = new Text(this._text, {
|
|
79
|
+
fillColor: hex(this._textColor),
|
|
80
|
+
fontSize: this._fontSize,
|
|
81
|
+
});
|
|
82
|
+
const labelBounds = label.getLocalBounds();
|
|
83
|
+
const w = labelBounds.width + this._padding * 2;
|
|
84
|
+
const h = labelBounds.height + this._padding * 2;
|
|
85
|
+
const bg = new Graphics();
|
|
86
|
+
bg.fillColor = hex(this._background);
|
|
87
|
+
bg.drawRoundedRectangle(0, 0, w, h, 4);
|
|
88
|
+
label.setPosition(this._padding, this._padding);
|
|
89
|
+
const node = new Container();
|
|
90
|
+
node.addChild(bg);
|
|
91
|
+
node.addChild(label);
|
|
92
|
+
node.setPosition(x + this._offsetX, y + this._offsetY);
|
|
93
|
+
this._node = node;
|
|
94
|
+
uiRoot.addChild(node);
|
|
95
|
+
}
|
|
96
|
+
_hide() {
|
|
97
|
+
this._cancelTimer();
|
|
98
|
+
this._removeNode();
|
|
99
|
+
}
|
|
100
|
+
_removeNode() {
|
|
101
|
+
if (this._node !== null) {
|
|
102
|
+
const p = this._node.parent;
|
|
103
|
+
if (p !== null) {
|
|
104
|
+
p.removeChild(this._node);
|
|
105
|
+
}
|
|
106
|
+
this._node = null;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
_cancelTimer() {
|
|
110
|
+
if (this._timer !== null) {
|
|
111
|
+
clearTimeout(this._timer);
|
|
112
|
+
this._timer = null;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Walk up the target's parent chain to find the nearest {@link UIRoot}.
|
|
117
|
+
* Returns `null` when the target is not attached to a UI layer.
|
|
118
|
+
*/
|
|
119
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- UI is an acronym (cf. HTMLText)
|
|
120
|
+
_findUIRoot() {
|
|
121
|
+
let current = this._target.parent;
|
|
122
|
+
while (current !== null) {
|
|
123
|
+
if (current instanceof UIRoot) {
|
|
124
|
+
return current;
|
|
125
|
+
}
|
|
126
|
+
current = current.parent;
|
|
127
|
+
}
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export { Tooltip };
|
|
133
|
+
//# sourceMappingURL=Tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sources":["../../../../src/ui/Tooltip.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AA6BA;;;;;;;;;;;;;;;;;AAiBG;MACU,OAAO,CAAA;AACD,IAAA,OAAO;AACP,IAAA,QAAQ;AACR,IAAA,QAAQ;AACR,IAAA,QAAQ;AACR,IAAA,WAAW;AACX,IAAA,UAAU;AACV,IAAA,QAAQ;AACR,IAAA,SAAS;AACT,IAAA,KAAK;IAEd,KAAK,GAAqB,IAAI;IAC9B,MAAM,GAAyC,IAAI;AAE1C,IAAA,cAAc,GAAG,CAAC,KAAuB,KAAU;QAClE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;AAChD,IAAA,CAAC;IAEgB,aAAa,GAAG,MAAW;QAC1C,IAAI,CAAC,KAAK,EAAE;AACd,IAAA,CAAC;IAED,WAAA,CAAmB,MAAkB,EAAE,OAAuB,EAAA;AAC5D,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI,IAAI;QAC7C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,QAAQ;QACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ;QAC/C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE;QAEvC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAC7C,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;IAC7C;;IAGO,OAAO,GAAA;QACZ,IAAI,CAAC,KAAK,EAAE;QACZ,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;IACtD;IAEQ,aAAa,CAAC,CAAS,EAAE,CAAS,EAAA;QACxC,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAK;AAC5B,YAAA,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAClB,QAAA,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;IACnB;IAEQ,KAAK,CAAC,CAAS,EAAE,CAAS,EAAA;;QAEhC,IAAI,CAAC,WAAW,EAAE;AAElB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE;AAEjC,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB;QACF;AAEA,QAAA,MAAM,GAAG,GAAG,CAAC,MAAc,KAAW;YACpC,OAAO,IAAI,KAAK,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;AACjF,QAAA,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACjC,YAAA,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,QAAQ,EAAE,IAAI,CAAC,SAAS;AACzB,SAAA,CAAC;AAEF,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE;QAC1C,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC;QAC/C,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC;AAEhD,QAAA,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE;QAEzB,EAAE,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AACpC,QAAA,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAEtC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;AAE/C,QAAA,MAAM,IAAI,GAAG,IAAI,SAAS,EAAE;AAE5B,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AAEtD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IACvB;IAEQ,KAAK,GAAA;QACX,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,WAAW,EAAE;IACpB;IAEQ,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;AACvB,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;AAE3B,YAAA,IAAI,CAAC,KAAK,IAAI,EAAE;AACd,gBAAA,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3B;AAEA,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;QACnB;IACF;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;AACxB,YAAA,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;AACzB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;QACpB;IACF;AAEA;;;AAGG;;IAEK,WAAW,GAAA;AACjB,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;AAEjC,QAAA,OAAO,OAAO,KAAK,IAAI,EAAE;AACvB,YAAA,IAAI,OAAO,YAAY,MAAM,EAAE;AAC7B,gBAAA,OAAO,OAAO;YAChB;AAEA,YAAA,OAAO,GAAG,OAAO,CAAC,MAAM;QAC1B;AAEA,QAAA,OAAO,IAAI;IACb;AACD;;;;"}
|
package/dist/esm/ui/index.d.ts
CHANGED
|
@@ -5,8 +5,12 @@ export type { PanelOptions } from './Panel';
|
|
|
5
5
|
export { Panel } from './Panel';
|
|
6
6
|
export type { ProgressBarOptions } from './ProgressBar';
|
|
7
7
|
export { ProgressBar } from './ProgressBar';
|
|
8
|
+
export type { ScrollContainerOptions, ScrollDirection } from './ScrollContainer';
|
|
9
|
+
export { ScrollContainer } from './ScrollContainer';
|
|
8
10
|
export type { StackDirection, StackOptions } from './Stack';
|
|
9
11
|
export { Stack } from './Stack';
|
|
12
|
+
export type { TooltipOptions } from './Tooltip';
|
|
13
|
+
export { Tooltip } from './Tooltip';
|
|
10
14
|
export { UIRoot } from './UIRoot';
|
|
11
15
|
export type { WidgetAnchor } from './Widget';
|
|
12
16
|
export { Widget } from './Widget';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
|