@safe-engine/pixi 8.1.4 → 8.2.2

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 (162) hide show
  1. package/@types/index.d.ts +2 -0
  2. package/@types/safex.d.ts +168 -0
  3. package/README.md +9 -3
  4. package/dist/app.d.ts +1 -2
  5. package/dist/app.d.ts.map +1 -1
  6. package/dist/app.js +25 -24
  7. package/dist/base/EnhancedComponent.d.ts +25 -0
  8. package/dist/base/EnhancedComponent.d.ts.map +1 -0
  9. package/dist/base/EnhancedComponent.js +26 -0
  10. package/dist/base/gworld.d.ts +8 -0
  11. package/dist/base/gworld.d.ts.map +1 -0
  12. package/dist/base/gworld.js +16 -0
  13. package/dist/base/index.d.ts +4 -0
  14. package/dist/base/index.d.ts.map +1 -0
  15. package/dist/base/index.js +3 -0
  16. package/dist/base/utils.d.ts +6 -0
  17. package/dist/base/utils.d.ts.map +1 -0
  18. package/dist/base/utils.js +3 -0
  19. package/dist/collider/CollideComponent.d.ts +63 -0
  20. package/dist/collider/CollideComponent.d.ts.map +1 -0
  21. package/dist/collider/CollideComponent.js +238 -0
  22. package/dist/collider/CollideSystem.d.ts +26 -0
  23. package/dist/collider/CollideSystem.d.ts.map +1 -0
  24. package/dist/collider/CollideSystem.js +159 -0
  25. package/dist/collider/helper/Intersection.d.ts +7 -0
  26. package/dist/collider/helper/Intersection.d.ts.map +1 -0
  27. package/dist/collider/helper/Intersection.js +111 -0
  28. package/dist/collider/helper/utils.d.ts +3 -0
  29. package/dist/collider/helper/utils.d.ts.map +1 -0
  30. package/dist/collider/helper/utils.js +11 -0
  31. package/dist/collider/index.d.ts +3 -0
  32. package/dist/collider/index.d.ts.map +1 -0
  33. package/dist/collider/index.js +2 -0
  34. package/dist/components/BaseComponent.d.ts +6 -5
  35. package/dist/components/BaseComponent.d.ts.map +1 -1
  36. package/dist/components/BaseComponent.js +7 -9
  37. package/dist/components/NodeComp.d.ts +13 -13
  38. package/dist/components/NodeComp.d.ts.map +1 -1
  39. package/dist/components/NodeComp.js +32 -28
  40. package/dist/components/Scene.d.ts +2 -3
  41. package/dist/components/Scene.d.ts.map +1 -1
  42. package/dist/components/Scene.js +6 -10
  43. package/dist/core/Color.d.ts +1 -0
  44. package/dist/core/Color.d.ts.map +1 -1
  45. package/dist/core/Color.js +3 -6
  46. package/dist/core/LoadingBar.js +10 -15
  47. package/dist/core/NodePool.d.ts +9 -0
  48. package/dist/core/NodePool.d.ts.map +1 -0
  49. package/dist/core/NodePool.js +24 -0
  50. package/dist/core/Size.js +1 -4
  51. package/dist/core/director.d.ts +3 -0
  52. package/dist/core/director.d.ts.map +1 -0
  53. package/dist/core/director.js +7 -0
  54. package/dist/core/math.d.ts +4 -0
  55. package/dist/core/math.d.ts.map +1 -0
  56. package/dist/core/math.js +10 -0
  57. package/dist/dragonbones/DragonBonesComponent.d.ts +17 -0
  58. package/dist/dragonbones/DragonBonesComponent.d.ts.map +1 -0
  59. package/dist/dragonbones/DragonBonesComponent.js +18 -0
  60. package/dist/dragonbones/DragonBonesSystem.d.ts +6 -0
  61. package/dist/dragonbones/DragonBonesSystem.d.ts.map +1 -0
  62. package/dist/dragonbones/DragonBonesSystem.js +29 -0
  63. package/dist/dragonbones/index.d.ts +3 -0
  64. package/dist/dragonbones/index.d.ts.map +1 -0
  65. package/dist/dragonbones/index.js +2 -0
  66. package/dist/{components → gui}/GUIComponent.d.ts +29 -23
  67. package/dist/gui/GUIComponent.d.ts.map +1 -0
  68. package/dist/gui/GUIComponent.js +123 -0
  69. package/dist/{systems → gui}/GUISystem.d.ts +1 -1
  70. package/dist/gui/GUISystem.d.ts.map +1 -0
  71. package/dist/gui/GUISystem.js +100 -0
  72. package/dist/helper/html-text-parser.d.ts +19 -29
  73. package/dist/helper/html-text-parser.d.ts.map +1 -1
  74. package/dist/helper/html-text-parser.js +57 -346
  75. package/dist/helper/utils.d.ts +2 -3
  76. package/dist/helper/utils.d.ts.map +1 -1
  77. package/dist/helper/utils.js +18 -23
  78. package/dist/index.d.ts +16 -6
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +22 -28
  81. package/dist/norender/NoRenderComponent.d.ts +35 -0
  82. package/dist/norender/NoRenderComponent.d.ts.map +1 -0
  83. package/dist/norender/NoRenderComponent.js +53 -0
  84. package/dist/norender/NoRenderSystem.d.ts +5 -0
  85. package/dist/norender/NoRenderSystem.d.ts.map +1 -0
  86. package/dist/norender/NoRenderSystem.js +57 -0
  87. package/dist/planck/PhysicsComponent.d.ts +37 -0
  88. package/dist/planck/PhysicsComponent.d.ts.map +1 -0
  89. package/dist/planck/PhysicsComponent.js +52 -0
  90. package/dist/planck/PhysicsSprite.d.ts +16 -0
  91. package/dist/planck/PhysicsSprite.d.ts.map +1 -0
  92. package/dist/planck/PhysicsSprite.js +31 -0
  93. package/dist/planck/PhysicsSystem.d.ts +20 -0
  94. package/dist/planck/PhysicsSystem.d.ts.map +1 -0
  95. package/dist/planck/PhysicsSystem.js +187 -0
  96. package/dist/planck/index.d.ts +4 -0
  97. package/dist/planck/index.d.ts.map +1 -0
  98. package/dist/planck/index.js +3 -0
  99. package/dist/render/RenderComponent.d.ts +52 -0
  100. package/dist/render/RenderComponent.d.ts.map +1 -0
  101. package/dist/render/RenderComponent.js +104 -0
  102. package/dist/render/RenderSystem.d.ts.map +1 -0
  103. package/dist/render/RenderSystem.js +65 -0
  104. package/dist/spine/SpineComponent.d.ts +10 -0
  105. package/dist/spine/SpineComponent.d.ts.map +1 -0
  106. package/dist/spine/SpineComponent.js +3 -0
  107. package/dist/spine/SpineSystem.d.ts +5 -0
  108. package/dist/spine/SpineSystem.d.ts.map +1 -0
  109. package/dist/spine/SpineSystem.js +25 -0
  110. package/dist/spine/index.d.ts +3 -0
  111. package/dist/spine/index.d.ts.map +1 -0
  112. package/dist/spine/index.js +2 -0
  113. package/dist/spine/lib/BatchableSpineSlot.d.ts +59 -0
  114. package/dist/spine/lib/BatchableSpineSlot.d.ts.map +1 -0
  115. package/dist/spine/lib/BatchableSpineSlot.js +86 -0
  116. package/dist/spine/lib/Spine.d.ts +239 -0
  117. package/dist/spine/lib/Spine.d.ts.map +1 -0
  118. package/dist/spine/lib/Spine.js +628 -0
  119. package/dist/spine/lib/SpineDebugRenderer.d.ts +109 -0
  120. package/dist/spine/lib/SpineDebugRenderer.d.ts.map +1 -0
  121. package/dist/spine/lib/SpineDebugRenderer.js +474 -0
  122. package/dist/spine/lib/SpinePipe.d.ts +49 -0
  123. package/dist/spine/lib/SpinePipe.d.ts.map +1 -0
  124. package/dist/spine/lib/SpinePipe.js +148 -0
  125. package/dist/spine/lib/SpineTexture.d.ts +45 -0
  126. package/dist/spine/lib/SpineTexture.d.ts.map +1 -0
  127. package/dist/spine/lib/SpineTexture.js +114 -0
  128. package/dist/spine/lib/assets/atlasLoader.d.ts +34 -0
  129. package/dist/spine/lib/assets/atlasLoader.d.ts.map +1 -0
  130. package/dist/spine/lib/assets/atlasLoader.js +122 -0
  131. package/dist/spine/lib/assets/skeletonLoader.d.ts +30 -0
  132. package/dist/spine/lib/assets/skeletonLoader.d.ts.map +1 -0
  133. package/dist/spine/lib/assets/skeletonLoader.js +70 -0
  134. package/dist/spine/lib/darktint/DarkTintBatchGeometry.d.ts +33 -0
  135. package/dist/spine/lib/darktint/DarkTintBatchGeometry.d.ts.map +1 -0
  136. package/dist/spine/lib/darktint/DarkTintBatchGeometry.js +84 -0
  137. package/dist/spine/lib/darktint/DarkTintBatcher.d.ts +50 -0
  138. package/dist/spine/lib/darktint/DarkTintBatcher.d.ts.map +1 -0
  139. package/dist/spine/lib/darktint/DarkTintBatcher.js +131 -0
  140. package/dist/spine/lib/darktint/DarkTintShader.d.ts +33 -0
  141. package/dist/spine/lib/darktint/DarkTintShader.d.ts.map +1 -0
  142. package/dist/spine/lib/darktint/DarkTintShader.js +59 -0
  143. package/dist/spine/lib/darktint/darkTintBit.d.ts +51 -0
  144. package/dist/spine/lib/darktint/darkTintBit.d.ts.map +1 -0
  145. package/dist/spine/lib/darktint/darkTintBit.js +75 -0
  146. package/dist/spine/lib/index.d.ts +42 -0
  147. package/dist/spine/lib/index.d.ts.map +1 -0
  148. package/dist/spine/lib/index.js +41 -0
  149. package/dist/spine/lib/require-shim.d.ts +34 -0
  150. package/dist/spine/lib/require-shim.d.ts.map +1 -0
  151. package/dist/spine/lib/require-shim.js +38 -0
  152. package/package.json +12 -9
  153. package/dist/components/GUIComponent.d.ts.map +0 -1
  154. package/dist/components/GUIComponent.js +0 -126
  155. package/dist/components/RenderComponent.d.ts +0 -29
  156. package/dist/components/RenderComponent.d.ts.map +0 -1
  157. package/dist/components/RenderComponent.js +0 -58
  158. package/dist/systems/GUISystem.d.ts.map +0 -1
  159. package/dist/systems/GUISystem.js +0 -90
  160. package/dist/systems/RenderSystem.d.ts.map +0 -1
  161. package/dist/systems/RenderSystem.js +0 -67
  162. /package/dist/{systems → render}/RenderSystem.d.ts +0 -0
@@ -0,0 +1,65 @@
1
+ import { EventTypes } from 'entityx-ts';
2
+ import { Container, Graphics, Sprite } from 'pixi.js';
3
+ import { NodeComp } from '..';
4
+ import { LoadingBar } from '../core/LoadingBar';
5
+ import { GraphicsRender, MaskRender, NodeRender, SpriteRender } from './RenderComponent';
6
+ export var SpriteTypes;
7
+ (function (SpriteTypes) {
8
+ SpriteTypes[SpriteTypes["SIMPLE"] = 0] = "SIMPLE";
9
+ SpriteTypes[SpriteTypes["SLICED"] = 1] = "SLICED";
10
+ SpriteTypes[SpriteTypes["TILED"] = 2] = "TILED";
11
+ SpriteTypes[SpriteTypes["FILLED"] = 3] = "FILLED";
12
+ SpriteTypes[SpriteTypes["MESH"] = 4] = "MESH";
13
+ SpriteTypes[SpriteTypes["ANIMATION"] = 5] = "ANIMATION";
14
+ })(SpriteTypes || (SpriteTypes = {}));
15
+ export class RenderSystem {
16
+ configure(event_manager) {
17
+ event_manager.subscribe(EventTypes.ComponentAdded, NodeRender, ({ entity }) => {
18
+ const nodeRenderComp = entity.getComponent(NodeRender);
19
+ const node = new Container();
20
+ nodeRenderComp.node = entity.assign(new NodeComp(node, entity));
21
+ });
22
+ event_manager.subscribe(EventTypes.ComponentAdded, SpriteRender, ({ entity, component }) => {
23
+ const { spriteFrame, type, fillType, fillRange, fillCenter } = component;
24
+ // console.log('SpriteRender ComponentAdded', component)
25
+ const node = Sprite.from(spriteFrame);
26
+ if (type === SpriteTypes.FILLED) {
27
+ // console.log('fillType', fillType)
28
+ const loadingBar = new LoadingBar(fillType, node);
29
+ if (fillRange)
30
+ loadingBar.progress = fillRange;
31
+ if (fillCenter)
32
+ loadingBar.fillCenter = fillCenter;
33
+ component.loadingBar = loadingBar;
34
+ // node.setMidpoint(fillCenter)
35
+ }
36
+ // node.texture.rotate = 8
37
+ component.node = entity.assign(new NodeComp(node, entity));
38
+ // component.node.anchorX = 0.5
39
+ // component.node.anchorY = 0.5
40
+ });
41
+ event_manager.subscribe(EventTypes.ComponentAdded, MaskRender, ({ component }) => {
42
+ console.log('MaskRender', component);
43
+ // const { type, segments, inverted } = maskComp
44
+ // const node = new cc.ClippingNode()
45
+ // node.setInverted(inverted)
46
+ // maskComp.node = ett.assign(new NodeComp(node, ett))
47
+ });
48
+ event_manager.subscribe(EventTypes.ComponentAdded, GraphicsRender, ({ entity, component }) => {
49
+ const { lineWidth, strokeColor, fillColor } = component;
50
+ // console.log('GraphicsRender', component);
51
+ const node = new Graphics();
52
+ node.fill(fillColor);
53
+ // node.fillStyle = fillColor
54
+ node.stroke(strokeColor);
55
+ node.width = lineWidth;
56
+ component.node = entity.assign(new NodeComp(node, entity));
57
+ // node.drawCircle(0, 0, 100)
58
+ });
59
+ event_manager.subscribe(EventTypes.ComponentRemoved, NodeComp, ({ component }) => {
60
+ if (component) {
61
+ component.instance.removeFromParent();
62
+ }
63
+ });
64
+ }
65
+ }
@@ -0,0 +1,10 @@
1
+ import { SpineData, SpineSkeletonProps } from "../../@types/safex";
2
+ import { ComponentX } from "../components/BaseComponent";
3
+ export declare class SpineSkeleton extends ComponentX<SpineSkeletonProps> {
4
+ data: SpineData;
5
+ skin: string;
6
+ animation: string;
7
+ loop: boolean;
8
+ timeScale: number;
9
+ }
10
+ //# sourceMappingURL=SpineComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpineComponent.d.ts","sourceRoot":"","sources":["../../src/spine/SpineComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAExD,qBAAa,aAAc,SAAQ,UAAU,CAAC,kBAAkB,CAAC;IAC/D,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB"}
@@ -0,0 +1,3 @@
1
+ import { ComponentX } from "../components/BaseComponent";
2
+ export class SpineSkeleton extends ComponentX {
3
+ }
@@ -0,0 +1,5 @@
1
+ import { EventManager, System } from 'entityx-ts';
2
+ export declare class SpineSystem implements System {
3
+ configure(event_manager: EventManager): void;
4
+ }
5
+ //# sourceMappingURL=SpineSystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpineSystem.d.ts","sourceRoot":"","sources":["../../src/spine/SpineSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,EAAE,MAAM,YAAY,CAAA;AAM7D,qBAAa,WAAY,YAAW,MAAM;IACxC,SAAS,CAAC,aAAa,EAAE,YAAY;CAsBtC"}
@@ -0,0 +1,25 @@
1
+ import { EventTypes } from 'entityx-ts';
2
+ import { Spine } from './lib';
3
+ import { NodeComp } from '../components/NodeComp';
4
+ import { SpineSkeleton } from './SpineComponent';
5
+ export class SpineSystem {
6
+ configure(event_manager) {
7
+ event_manager.subscribe(EventTypes.ComponentAdded, SpineSkeleton, ({ entity, component }) => {
8
+ // console.log('SpineSkeleton', component)
9
+ // const spine = entity.getComponent(SpineSkeleton)
10
+ const { data, skin, animation, loop, timeScale } = component;
11
+ const node = Spine.from(data);
12
+ // node.skeleton.scaleY = -1
13
+ if (skin) {
14
+ node.skeleton.setSkinByName(skin);
15
+ }
16
+ if (animation) {
17
+ node.state.setAnimation(0, animation, loop);
18
+ }
19
+ if (timeScale) {
20
+ node.state.timeScale = timeScale;
21
+ }
22
+ component.node = entity.assign(new NodeComp(node, entity));
23
+ });
24
+ }
25
+ }
@@ -0,0 +1,3 @@
1
+ export * from './SpineComponent';
2
+ export * from './SpineSystem';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/spine/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './SpineComponent';
2
+ export * from './SpineSystem';
@@ -0,0 +1,59 @@
1
+ /** ****************************************************************************
2
+ * Spine Runtimes License Agreement
3
+ * Last updated July 28, 2023. Replaces all prior versions.
4
+ *
5
+ * Copyright (c) 2013-2023, Esoteric Software LLC
6
+ *
7
+ * Integration of the Spine Runtimes into software or otherwise creating
8
+ * derivative works of the Spine Runtimes is permitted under the terms and
9
+ * conditions of Section 2 of the Spine Editor License Agreement:
10
+ * http://esotericsoftware.com/spine-editor-license
11
+ *
12
+ * Otherwise, it is permitted to integrate the Spine Runtimes into software or
13
+ * otherwise create derivative works of the Spine Runtimes (collectively,
14
+ * "Products"), provided that each user of the Products must obtain their own
15
+ * Spine Editor license and redistribution of the Products in any form must
16
+ * include this license and copyright notice.
17
+ *
18
+ * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
19
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
22
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
24
+ * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
25
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
27
+ * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
+ *****************************************************************************/
29
+ import { AttachmentCacheData, Spine } from './Spine.js';
30
+ import type { Batch, Batcher, BLEND_MODES, DefaultBatchableMeshElement, Matrix, Texture, Topology } from 'pixi.js';
31
+ export declare class BatchableSpineSlot implements DefaultBatchableMeshElement {
32
+ indexOffset: number;
33
+ attributeOffset: number;
34
+ indexSize: number;
35
+ attributeSize: number;
36
+ batcherName: string;
37
+ topology: Topology;
38
+ readonly packAsQuad = false;
39
+ renderable: Spine;
40
+ positions: Float32Array;
41
+ indices: number[] | Uint16Array;
42
+ uvs: Float32Array;
43
+ roundPixels: 0 | 1;
44
+ data: AttachmentCacheData;
45
+ blendMode: BLEND_MODES;
46
+ darkTint: number;
47
+ texture: Texture;
48
+ transform: Matrix;
49
+ _textureId: number;
50
+ _attributeStart: number;
51
+ _indexStart: number;
52
+ _batcher: Batcher;
53
+ _batch: Batch;
54
+ get color(): number;
55
+ get darkColor(): number;
56
+ get groupTransform(): Matrix;
57
+ setData(renderable: Spine, data: AttachmentCacheData, blendMode: BLEND_MODES, roundPixels: 0 | 1): void;
58
+ }
59
+ //# sourceMappingURL=BatchableSpineSlot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BatchableSpineSlot.d.ts","sourceRoot":"","sources":["../../../src/spine/lib/BatchableSpineSlot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;+EA2B+E;AAE/E,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnH,qBAAa,kBAAmB,YAAW,2BAA2B;IACrE,WAAW,SAAK;IAChB,eAAe,SAAK;IAEpB,SAAS,EAAG,MAAM,CAAC;IACnB,aAAa,EAAG,MAAM,CAAC;IAEvB,WAAW,SAAc;IAEzB,QAAQ,EAAE,QAAQ,CAAmB;IAErC,QAAQ,CAAC,UAAU,SAAS;IAE5B,UAAU,EAAG,KAAK,CAAC;IAEnB,SAAS,EAAG,YAAY,CAAC;IACzB,OAAO,EAAG,MAAM,EAAE,GAAG,WAAW,CAAC;IACjC,GAAG,EAAG,YAAY,CAAC;IAEnB,WAAW,EAAG,CAAC,GAAG,CAAC,CAAC;IACpB,IAAI,EAAG,mBAAmB,CAAC;IAC3B,SAAS,EAAG,WAAW,CAAC;IAExB,QAAQ,EAAG,MAAM,CAAC;IAElB,OAAO,EAAG,OAAO,CAAC;IAElB,SAAS,EAAG,MAAM,CAAC;IAGnB,UAAU,EAAG,MAAM,CAAC;IACpB,eAAe,EAAG,MAAM,CAAC;IACzB,WAAW,EAAG,MAAM,CAAC;IACrB,QAAQ,EAAG,OAAO,CAAC;IACnB,MAAM,EAAG,KAAK,CAAC;IAGf,IAAI,KAAK,WAyBR;IAED,IAAI,SAAS,WAGZ;IAED,IAAI,cAAc,WAA8C;IAEhE,OAAO,CACN,UAAU,EAAE,KAAK,EACjB,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,WAAW,EACtB,WAAW,EAAE,CAAC,GAAG,CAAC;CA6BnB"}
@@ -0,0 +1,86 @@
1
+ /** ****************************************************************************
2
+ * Spine Runtimes License Agreement
3
+ * Last updated July 28, 2023. Replaces all prior versions.
4
+ *
5
+ * Copyright (c) 2013-2023, Esoteric Software LLC
6
+ *
7
+ * Integration of the Spine Runtimes into software or otherwise creating
8
+ * derivative works of the Spine Runtimes is permitted under the terms and
9
+ * conditions of Section 2 of the Spine Editor License Agreement:
10
+ * http://esotericsoftware.com/spine-editor-license
11
+ *
12
+ * Otherwise, it is permitted to integrate the Spine Runtimes into software or
13
+ * otherwise create derivative works of the Spine Runtimes (collectively,
14
+ * "Products"), provided that each user of the Products must obtain their own
15
+ * Spine Editor license and redistribution of the Products in any form must
16
+ * include this license and copyright notice.
17
+ *
18
+ * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
19
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
22
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
24
+ * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
25
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
27
+ * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
+ *****************************************************************************/
29
+ export class BatchableSpineSlot {
30
+ constructor() {
31
+ this.indexOffset = 0;
32
+ this.attributeOffset = 0;
33
+ this.batcherName = 'darkTint';
34
+ this.topology = 'triangle-list';
35
+ this.packAsQuad = false;
36
+ }
37
+ get color() {
38
+ const slotColor = this.data.color;
39
+ const parentColor = this.renderable.groupColor;
40
+ const parentAlpha = this.renderable.groupAlpha;
41
+ let abgr;
42
+ const mixedA = (slotColor.a * parentAlpha) * 255;
43
+ if (parentColor !== 0xFFFFFF) {
44
+ const parentB = (parentColor >> 16) & 0xFF;
45
+ const parentG = (parentColor >> 8) & 0xFF;
46
+ const parentR = parentColor & 0xFF;
47
+ const mixedR = (slotColor.r * parentR);
48
+ const mixedG = (slotColor.g * parentG);
49
+ const mixedB = (slotColor.b * parentB);
50
+ abgr = ((mixedA) << 24) | (mixedB << 16) | (mixedG << 8) | mixedR;
51
+ }
52
+ else {
53
+ abgr = ((mixedA) << 24) | ((slotColor.b * 255) << 16) | ((slotColor.g * 255) << 8) | (slotColor.r * 255);
54
+ }
55
+ return abgr;
56
+ }
57
+ get darkColor() {
58
+ const darkColor = this.data.darkColor;
59
+ return ((darkColor.b * 255) << 16) | ((darkColor.g * 255) << 8) | (darkColor.r * 255);
60
+ }
61
+ get groupTransform() { return this.renderable.groupTransform; }
62
+ setData(renderable, data, blendMode, roundPixels) {
63
+ this.renderable = renderable;
64
+ this.transform = renderable.groupTransform;
65
+ this.data = data;
66
+ if (data.clipped) {
67
+ const clippedData = data.clippedData;
68
+ this.indexSize = clippedData.indicesCount;
69
+ this.attributeSize = clippedData.vertexCount;
70
+ this.positions = clippedData.vertices;
71
+ this.indices = clippedData.indices;
72
+ this.uvs = clippedData.uvs;
73
+ }
74
+ else {
75
+ this.indexSize = data.indices.length;
76
+ this.attributeSize = data.vertices.length / 2;
77
+ this.positions = data.vertices;
78
+ this.indices = data.indices;
79
+ this.uvs = data.uvs;
80
+ }
81
+ this.texture = data.texture;
82
+ this.roundPixels = roundPixels;
83
+ this.blendMode = blendMode;
84
+ this.batcherName = data.darkTint ? 'darkTint' : 'default';
85
+ }
86
+ }
@@ -0,0 +1,239 @@
1
+ /** ****************************************************************************
2
+ * Spine Runtimes License Agreement
3
+ * Last updated July 28, 2023. Replaces all prior versions.
4
+ *
5
+ * Copyright (c) 2013-2023, Esoteric Software LLC
6
+ *
7
+ * Integration of the Spine Runtimes into software or otherwise creating
8
+ * derivative works of the Spine Runtimes is permitted under the terms and
9
+ * conditions of Section 2 of the Spine Editor License Agreement:
10
+ * http://esotericsoftware.com/spine-editor-license
11
+ *
12
+ * Otherwise, it is permitted to integrate the Spine Runtimes into software or
13
+ * otherwise create derivative works of the Spine Runtimes (collectively,
14
+ * "Products"), provided that each user of the Products must obtain their own
15
+ * Spine Editor license and redistribution of the Products in any form must
16
+ * include this license and copyright notice.
17
+ *
18
+ * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
19
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
22
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
24
+ * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
25
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
27
+ * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
+ *****************************************************************************/
29
+ import { Bounds, Container, ContainerOptions, DestroyOptions, PointData, Texture, ViewContainer } from 'pixi.js';
30
+ import { ISpineDebugRenderer } from './SpineDebugRenderer.js';
31
+ import { AnimationState, Bone, Color, MeshAttachment, RegionAttachment, Skeleton, SkeletonBounds, SkeletonData, Slot, TrackEntry } from '@esotericsoftware/spine-core';
32
+ /**
33
+ * Options to create a {@link Spine} using {@link Spine.from}.
34
+ */
35
+ export interface SpineFromOptions {
36
+ /** the asset name for the skeleton `.skel` or `.json` file previously loaded into the Assets */
37
+ skeleton: string;
38
+ /** the asset name for the atlas file previously loaded into the Assets */
39
+ atlas: string;
40
+ /** The value passed to the skeleton reader. If omitted, 1 is passed. See {@link SkeletonBinary.scale} for details. */
41
+ scale?: number;
42
+ /** Set the {@link Spine.autoUpdate} value. If omitted, it is set to `true`. */
43
+ autoUpdate?: boolean;
44
+ /**
45
+ * If `true`, use the dark tint renderer to render the skeleton
46
+ * If `false`, use the default pixi renderer to render the skeleton
47
+ * If `undefined`, use the dark tint renderer if at least one slot has tint black
48
+ */
49
+ darkTint?: boolean;
50
+ }
51
+ export interface SpineOptions extends ContainerOptions {
52
+ /** the {@link SkeletonData} used to instantiate the skeleton */
53
+ skeletonData: SkeletonData;
54
+ /** See {@link SpineFromOptions.autoUpdate}. */
55
+ autoUpdate?: boolean;
56
+ /** See {@link SpineFromOptions.darkTint}. */
57
+ darkTint?: boolean;
58
+ }
59
+ /**
60
+ * AnimationStateListener {@link https://en.esotericsoftware.com/spine-api-reference#AnimationStateListener events} exposed for Pixi.
61
+ */
62
+ export interface SpineEvents {
63
+ complete: [trackEntry: TrackEntry];
64
+ dispose: [trackEntry: TrackEntry];
65
+ end: [trackEntry: TrackEntry];
66
+ event: [trackEntry: TrackEntry, event: Event];
67
+ interrupt: [trackEntry: TrackEntry];
68
+ start: [trackEntry: TrackEntry];
69
+ }
70
+ export interface AttachmentCacheData {
71
+ id: string;
72
+ clipped: boolean;
73
+ vertices: Float32Array;
74
+ uvs: Float32Array;
75
+ indices: number[];
76
+ color: Color;
77
+ darkColor: Color;
78
+ darkTint: boolean;
79
+ skipRender: boolean;
80
+ texture: Texture;
81
+ clippedData?: {
82
+ vertices: Float32Array;
83
+ uvs: Float32Array;
84
+ indices: Uint16Array;
85
+ vertexCount: number;
86
+ indicesCount: number;
87
+ };
88
+ }
89
+ /**
90
+ * The class to instantiate a {@link Spine} game object in Pixi.
91
+ * The static method {@link Spine.from} should be used to instantiate a Spine game object.
92
+ */
93
+ export declare class Spine extends ViewContainer {
94
+ batched: boolean;
95
+ buildId: number;
96
+ readonly renderPipeId = "spine";
97
+ _didSpineUpdate: boolean;
98
+ beforeUpdateWorldTransforms: (object: Spine) => void;
99
+ afterUpdateWorldTransforms: (object: Spine) => void;
100
+ /** The skeleton for this Spine game object. */
101
+ skeleton: Skeleton;
102
+ /** The animation state for this Spine game object. */
103
+ state: AnimationState;
104
+ skeletonBounds?: SkeletonBounds;
105
+ private darkTint;
106
+ private _debug?;
107
+ readonly _slotsObject: Record<string, {
108
+ slot: Slot;
109
+ container: Container;
110
+ } | null>;
111
+ private clippingSlotToPixiMasks;
112
+ private getSlotFromRef;
113
+ spineAttachmentsDirty: boolean;
114
+ spineTexturesDirty: boolean;
115
+ private _lastAttachments;
116
+ private _stateChanged;
117
+ private attachmentCacheData;
118
+ get debug(): ISpineDebugRenderer | undefined;
119
+ /** Pass a {@link SpineDebugRenderer} or create your own {@link ISpineDebugRenderer} to render bones, meshes, ...
120
+ * @example spineGO.debug = new SpineDebugRenderer();
121
+ */
122
+ set debug(value: ISpineDebugRenderer | undefined);
123
+ private _autoUpdate;
124
+ get autoUpdate(): boolean;
125
+ /** When `true`, the Spine AnimationState and the Skeleton will be automatically updated using the {@link Ticker.shared} instance. */
126
+ set autoUpdate(value: boolean);
127
+ private hasNeverUpdated;
128
+ constructor(options: SpineOptions | SkeletonData);
129
+ /** If {@link Spine.autoUpdate} is `false`, this method allows to update the AnimationState and the Skeleton with the given delta. */
130
+ update(dt: number): void;
131
+ protected internalUpdate(_deltaFrame: any, deltaSeconds?: number): void;
132
+ get bounds(): Bounds;
133
+ /**
134
+ * Set the position of the bone given in input through a {@link IPointData}.
135
+ * @param bone: the bone name or the bone instance to set the position
136
+ * @param outPos: the new position of the bone.
137
+ * @throws {Error}: if the given bone is not found in the skeleton, an error is thrown
138
+ */
139
+ setBonePosition(bone: string | Bone, position: PointData): void;
140
+ /**
141
+ * Return the position of the bone given in input into an {@link IPointData}.
142
+ * @param bone: the bone name or the bone instance to get the position from
143
+ * @param outPos: an optional {@link IPointData} to use to return the bone position, rathern than instantiating a new object.
144
+ * @returns {IPointData | undefined}: the position of the bone, or undefined if no matching bone is found in the skeleton
145
+ */
146
+ getBonePosition(bone: string | Bone, outPos?: PointData): PointData | undefined;
147
+ /**
148
+ * Advance the state and skeleton by the given time, then update slot objects too.
149
+ * The container transform is not updated.
150
+ *
151
+ * @param time the time at which to set the state
152
+ */
153
+ private _updateAndApplyState;
154
+ /**
155
+ * - validates the attachments - to flag if the attachments have changed this state
156
+ * - transforms the attachments - to update the vertices of the attachments based on the new positions
157
+ * @internal
158
+ */
159
+ _validateAndTransformAttachments(): void;
160
+ private validateAttachments;
161
+ private updateAndSetPixiMask;
162
+ private currentClippingSlot;
163
+ private transformAttachments;
164
+ private updateClippingData;
165
+ /**
166
+ * ensure that attached containers map correctly to their slots
167
+ * along with their position, rotation, scale, and visibility.
168
+ */
169
+ private updateSlotObjects;
170
+ private updateSlotObject;
171
+ /** @internal */
172
+ _getCachedData(slot: Slot, attachment: RegionAttachment | MeshAttachment): AttachmentCacheData;
173
+ private initCachedData;
174
+ protected onViewUpdate(): void;
175
+ /**
176
+ * Attaches a PixiJS container to a specified slot. This will map the world transform of the slots bone
177
+ * to the attached container. A container can only be attached to one slot at a time.
178
+ *
179
+ * @param container - The container to attach to the slot
180
+ * @param slotRef - The slot id or slot to attach to
181
+ */
182
+ addSlotObject(slot: number | string | Slot, container: Container): void;
183
+ /**
184
+ * Removes a PixiJS container from the slot it is attached to.
185
+ *
186
+ * @param container - The container to detach from the slot
187
+ * @param slotOrContainer - The container, slot id or slot to detach from
188
+ */
189
+ removeSlotObject(slotOrContainer: number | string | Slot | Container): void;
190
+ /**
191
+ * Returns a container attached to a slot, or undefined if no container is attached.
192
+ *
193
+ * @param slotRef - The slot id or slot to get the attachment from
194
+ * @returns - The container attached to the slot
195
+ */
196
+ getSlotObject(slot: number | string | Slot): Container<import("pixi.js").ContainerChild>;
197
+ protected updateBounds(): void;
198
+ /** @internal */
199
+ addBounds(bounds: Bounds): void;
200
+ /**
201
+ * Destroys this sprite renderable and optionally its texture.
202
+ * @param options - Options parameter. A boolean will act as if all options
203
+ * have been set to that value
204
+ * @param {boolean} [options.texture=false] - Should it destroy the current texture of the renderable as well
205
+ * @param {boolean} [options.textureSource=false] - Should it destroy the textureSource of the renderable as well
206
+ */
207
+ destroy(options?: DestroyOptions): void;
208
+ /** Converts a point from the skeleton coordinate system to the Pixi world coordinate system. */
209
+ skeletonToPixiWorldCoordinates(point: {
210
+ x: number;
211
+ y: number;
212
+ }): void;
213
+ /** Converts a point from the Pixi world coordinate system to the skeleton coordinate system. */
214
+ pixiWorldCoordinatesToSkeleton(point: {
215
+ x: number;
216
+ y: number;
217
+ }): void;
218
+ /** Converts a point from the Pixi world coordinate system to the bone's local coordinate system. */
219
+ pixiWorldCoordinatesToBone(point: {
220
+ x: number;
221
+ y: number;
222
+ }, bone: Bone): void;
223
+ /**
224
+ * Use this method to instantiate a Spine game object.
225
+ * Before instantiating a Spine game object, the skeleton (`.skel` or `.json`) and the atlas text files must be loaded into the Assets. For example:
226
+ * ```
227
+ * PIXI.Assets.add("sackData", "./assets/sack-pro.skel");
228
+ * PIXI.Assets.add("sackAtlas", "./assets/sack-pma.atlas");
229
+ * await PIXI.Assets.load(["sackData", "sackAtlas"]);
230
+ * ```
231
+ * Once a Spine game object is created, its skeleton data is cached into {@link Cache} using the key:
232
+ * `${skeletonAssetName}-${atlasAssetName}-${options?.scale ?? 1}`
233
+ *
234
+ * @param options - Options to configure the Spine game object. See {@link SpineFromOptions}
235
+ * @returns {Spine} The Spine game object instantiated
236
+ */
237
+ static from({ skeleton, atlas, scale, darkTint, autoUpdate }: SpineFromOptions): Spine;
238
+ }
239
+ //# sourceMappingURL=Spine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spine.d.ts","sourceRoot":"","sources":["../../../src/spine/lib/Spine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;+EA2B+E;AAE/E,OAAO,EAEN,MAAM,EAEN,SAAS,EACT,gBAAgB,EAEhB,cAAc,EAGd,SAAS,EACT,OAAO,EAEP,aAAa,EACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACN,cAAc,EAId,IAAI,EAEJ,KAAK,EACL,cAAc,EAGd,gBAAgB,EAChB,QAAQ,EAER,cAAc,EAEd,YAAY,EAEZ,IAAI,EAEJ,UAAU,EAEV,MAAM,8BAA8B,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,gGAAgG;IAChG,QAAQ,EAAE,MAAM,CAAC;IAEjB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IAEd,uHAAuH;IACvH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAQD,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACrD,gEAAgE;IAChE,YAAY,EAAE,YAAY,CAAC;IAE3B,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAClC,GAAG,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC9B,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9C,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACpC,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,GAAG,EAAE,YAAY,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,KAAK,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE;QACb,QAAQ,EAAE,YAAY,CAAC;QACvB,GAAG,EAAE,YAAY,CAAC;QAClB,OAAO,EAAE,WAAW,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACrB,CAAC;CACF;AAWD;;;GAGG;AACH,qBAAa,KAAM,SAAQ,aAAa;IAEhC,OAAO,UAAQ;IACf,OAAO,SAAK;IACnB,SAAyB,YAAY,WAAW;IACzC,eAAe,UAAS;IAExB,2BAA2B,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,IAAI,CAAoB;IACxE,0BAA0B,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,IAAI,CAAoB;IAG9E,+CAA+C;IACxC,QAAQ,EAAE,QAAQ,CAAC;IAC1B,sDAAsD;IAC/C,KAAK,EAAE,cAAc,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAEvC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAC,CAA8C;IAE7D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC,CAAuB;IACzG,OAAO,CAAC,uBAAuB,CAAwD;IAEvF,OAAO,CAAC,cAAc;IAYf,qBAAqB,UAAQ;IAC7B,kBAAkB,UAAQ;IAEjC,OAAO,CAAC,gBAAgB,CAAoB;IAE5C,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,mBAAmB,CAA6C;IAExE,IAAW,KAAK,IAAK,mBAAmB,GAAG,SAAS,CAEnD;IAED;;OAEG;IACH,IAAW,KAAK,CAAE,KAAK,EAAE,mBAAmB,GAAG,SAAS,EAQvD;IAED,OAAO,CAAC,WAAW,CAAQ;IAE3B,IAAW,UAAU,IAAK,OAAO,CAEhC;IACD,qIAAqI;IACrI,IAAW,UAAU,CAAE,KAAK,EAAE,OAAO,EAQpC;IAED,OAAO,CAAC,eAAe,CAAQ;gBAClB,OAAO,EAAE,YAAY,GAAG,YAAY;IA2BjD,qIAAqI;IAC9H,MAAM,CAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAIhC,SAAS,CAAC,cAAc,CAAE,WAAW,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAMxE,IAAa,MAAM,WAMlB;IAED;;;;;OAKG;IACI,eAAe,CAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI;IAsBvE;;;;;OAKG;IACI,eAAe,CAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS;IAuBvF;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAuB5B;;;;OAIG;IACH,gCAAgC;IAShC,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,oBAAoB;IAyD5B,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,oBAAoB;IA4E5B,OAAO,CAAC,kBAAkB;IAqE1B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,gBAAgB;IAmBxB,gBAAgB;IAChB,cAAc,CAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,GAAG,cAAc,GAAG,mBAAmB;IAI/F,OAAO,CAAC,cAAc;IAuCtB,SAAS,CAAC,YAAY;IAiBtB;;;;;;OAMG;IACI,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,SAAS;IAuBxE;;;;;OAKG;IACI,gBAAgB,CAAE,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS;IA2B5E;;;;;OAKG;IACI,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMlD,SAAS,CAAC,YAAY;IAyCtB,gBAAgB;IAChB,SAAS,CAAE,MAAM,EAAE,MAAM;IAIzB;;;;;;OAMG;IACa,OAAO,CAAE,OAAO,GAAE,cAAsB;IAaxD,gGAAgG;IACzF,8BAA8B,CAAE,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;IAItE,gGAAgG;IACzF,8BAA8B,CAAE,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;IAItE,oGAAoG;IAC7F,0BAA0B,CAAE,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,EAAE,IAAI;IAU9E;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,IAAI,CAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAS,EAAE,QAAQ,EAAE,UAAiB,EAAE,EAAE,gBAAgB;CA0B1F"}