@multiplekex/shallot 0.1.0 → 0.1.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 (158) hide show
  1. package/package.json +8 -32
  2. package/src/standard/compute/index.ts +36 -0
  3. package/src/standard/render/camera.ts +1 -1
  4. package/dist/core/builder.d.ts +0 -25
  5. package/dist/core/builder.d.ts.map +0 -1
  6. package/dist/core/builder.js +0 -88
  7. package/dist/core/builder.js.map +0 -1
  8. package/dist/core/component.d.ts +0 -29
  9. package/dist/core/component.d.ts.map +0 -1
  10. package/dist/core/component.js +0 -36
  11. package/dist/core/component.js.map +0 -1
  12. package/dist/core/index.d.ts +0 -13
  13. package/dist/core/index.d.ts.map +0 -1
  14. package/dist/core/math.d.ts +0 -32
  15. package/dist/core/math.d.ts.map +0 -1
  16. package/dist/core/math.js +0 -39
  17. package/dist/core/math.js.map +0 -1
  18. package/dist/core/relation.d.ts +0 -16
  19. package/dist/core/relation.d.ts.map +0 -1
  20. package/dist/core/relation.js +0 -32
  21. package/dist/core/relation.js.map +0 -1
  22. package/dist/core/resource.d.ts +0 -9
  23. package/dist/core/resource.d.ts.map +0 -1
  24. package/dist/core/resource.js +0 -12
  25. package/dist/core/resource.js.map +0 -1
  26. package/dist/core/runtime.d.ts +0 -13
  27. package/dist/core/runtime.d.ts.map +0 -1
  28. package/dist/core/runtime.js +0 -118
  29. package/dist/core/runtime.js.map +0 -1
  30. package/dist/core/scheduler.d.ts +0 -47
  31. package/dist/core/scheduler.d.ts.map +0 -1
  32. package/dist/core/scheduler.js +0 -138
  33. package/dist/core/scheduler.js.map +0 -1
  34. package/dist/core/state.d.ts +0 -62
  35. package/dist/core/state.d.ts.map +0 -1
  36. package/dist/core/state.js +0 -185
  37. package/dist/core/state.js.map +0 -1
  38. package/dist/core/strings.d.ts +0 -3
  39. package/dist/core/strings.d.ts.map +0 -1
  40. package/dist/core/strings.js +0 -11
  41. package/dist/core/strings.js.map +0 -1
  42. package/dist/core/types.d.ts +0 -33
  43. package/dist/core/types.d.ts.map +0 -1
  44. package/dist/core/xml.d.ts +0 -42
  45. package/dist/core/xml.d.ts.map +0 -1
  46. package/dist/core/xml.js +0 -349
  47. package/dist/core/xml.js.map +0 -1
  48. package/dist/extras/arrows/index.d.ts +0 -33
  49. package/dist/extras/arrows/index.d.ts.map +0 -1
  50. package/dist/extras/arrows/index.js +0 -288
  51. package/dist/extras/arrows/index.js.map +0 -1
  52. package/dist/extras/index.d.ts +0 -5
  53. package/dist/extras/index.d.ts.map +0 -1
  54. package/dist/extras/index.js +0 -31
  55. package/dist/extras/index.js.map +0 -1
  56. package/dist/extras/lines/index.d.ts +0 -36
  57. package/dist/extras/lines/index.d.ts.map +0 -1
  58. package/dist/extras/lines/index.js +0 -288
  59. package/dist/extras/lines/index.js.map +0 -1
  60. package/dist/extras/orbit/index.d.ts +0 -20
  61. package/dist/extras/orbit/index.d.ts.map +0 -1
  62. package/dist/extras/orbit/index.js +0 -93
  63. package/dist/extras/orbit/index.js.map +0 -1
  64. package/dist/extras/text/index.d.ts +0 -64
  65. package/dist/extras/text/index.d.ts.map +0 -1
  66. package/dist/extras/text/index.js +0 -423
  67. package/dist/extras/text/index.js.map +0 -1
  68. package/dist/index.d.ts +0 -4
  69. package/dist/index.d.ts.map +0 -1
  70. package/dist/index.js +0 -187
  71. package/dist/index.js.map +0 -1
  72. package/dist/rust/transforms/pkg/shallot_transforms.js +0 -107
  73. package/dist/rust/transforms/pkg/shallot_transforms.js.map +0 -1
  74. package/dist/standard/compute/graph.d.ts +0 -37
  75. package/dist/standard/compute/graph.d.ts.map +0 -1
  76. package/dist/standard/compute/graph.js +0 -85
  77. package/dist/standard/compute/graph.js.map +0 -1
  78. package/dist/standard/compute/index.d.ts +0 -21
  79. package/dist/standard/compute/index.d.ts.map +0 -1
  80. package/dist/standard/compute/index.js +0 -81
  81. package/dist/standard/compute/index.js.map +0 -1
  82. package/dist/standard/defaults.d.ts +0 -3
  83. package/dist/standard/defaults.d.ts.map +0 -1
  84. package/dist/standard/defaults.js +0 -18
  85. package/dist/standard/defaults.js.map +0 -1
  86. package/dist/standard/index.d.ts +0 -8
  87. package/dist/standard/index.d.ts.map +0 -1
  88. package/dist/standard/input/index.d.ts +0 -5
  89. package/dist/standard/input/index.d.ts.map +0 -1
  90. package/dist/standard/input/index.js +0 -70
  91. package/dist/standard/input/index.js.map +0 -1
  92. package/dist/standard/loading/index.d.ts +0 -7
  93. package/dist/standard/loading/index.d.ts.map +0 -1
  94. package/dist/standard/loading/index.js +0 -91
  95. package/dist/standard/loading/index.js.map +0 -1
  96. package/dist/standard/render/camera.d.ts +0 -36
  97. package/dist/standard/render/camera.d.ts.map +0 -1
  98. package/dist/standard/render/camera.js +0 -71
  99. package/dist/standard/render/camera.js.map +0 -1
  100. package/dist/standard/render/forward.d.ts +0 -30
  101. package/dist/standard/render/forward.d.ts.map +0 -1
  102. package/dist/standard/render/forward.js +0 -158
  103. package/dist/standard/render/forward.js.map +0 -1
  104. package/dist/standard/render/index.d.ts +0 -22
  105. package/dist/standard/render/index.d.ts.map +0 -1
  106. package/dist/standard/render/index.js +0 -153
  107. package/dist/standard/render/index.js.map +0 -1
  108. package/dist/standard/render/light.d.ts +0 -25
  109. package/dist/standard/render/light.d.ts.map +0 -1
  110. package/dist/standard/render/light.js +0 -48
  111. package/dist/standard/render/light.js.map +0 -1
  112. package/dist/standard/render/mesh/box.d.ts +0 -3
  113. package/dist/standard/render/mesh/box.d.ts.map +0 -1
  114. package/dist/standard/render/mesh/box.js +0 -190
  115. package/dist/standard/render/mesh/box.js.map +0 -1
  116. package/dist/standard/render/mesh/index.d.ts +0 -52
  117. package/dist/standard/render/mesh/index.d.ts.map +0 -1
  118. package/dist/standard/render/mesh/index.js +0 -158
  119. package/dist/standard/render/mesh/index.js.map +0 -1
  120. package/dist/standard/render/mesh/plane.d.ts +0 -3
  121. package/dist/standard/render/mesh/plane.d.ts.map +0 -1
  122. package/dist/standard/render/mesh/plane.js +0 -33
  123. package/dist/standard/render/mesh/plane.js.map +0 -1
  124. package/dist/standard/render/mesh/sphere.d.ts +0 -3
  125. package/dist/standard/render/mesh/sphere.d.ts.map +0 -1
  126. package/dist/standard/render/mesh/sphere.js +0 -25
  127. package/dist/standard/render/mesh/sphere.js.map +0 -1
  128. package/dist/standard/render/postprocess.d.ts +0 -11
  129. package/dist/standard/render/postprocess.d.ts.map +0 -1
  130. package/dist/standard/render/postprocess.js +0 -190
  131. package/dist/standard/render/postprocess.js.map +0 -1
  132. package/dist/standard/render/scene.d.ts +0 -8
  133. package/dist/standard/render/scene.d.ts.map +0 -1
  134. package/dist/standard/render/scene.js +0 -67
  135. package/dist/standard/render/scene.js.map +0 -1
  136. package/dist/standard/transforms/index.d.ts +0 -27
  137. package/dist/standard/transforms/index.d.ts.map +0 -1
  138. package/dist/standard/transforms/index.js +0 -122
  139. package/dist/standard/transforms/index.js.map +0 -1
  140. package/dist/standard/transforms/wasm.d.ts +0 -17
  141. package/dist/standard/transforms/wasm.d.ts.map +0 -1
  142. package/dist/standard/transforms/wasm.js +0 -31
  143. package/dist/standard/transforms/wasm.js.map +0 -1
  144. package/dist/standard/tween/easing.d.ts +0 -5
  145. package/dist/standard/tween/easing.d.ts.map +0 -1
  146. package/dist/standard/tween/easing.js +0 -80
  147. package/dist/standard/tween/easing.js.map +0 -1
  148. package/dist/standard/tween/index.d.ts +0 -4
  149. package/dist/standard/tween/index.d.ts.map +0 -1
  150. package/dist/standard/tween/sequence.d.ts +0 -20
  151. package/dist/standard/tween/sequence.d.ts.map +0 -1
  152. package/dist/standard/tween/sequence.js +0 -95
  153. package/dist/standard/tween/sequence.js.map +0 -1
  154. package/dist/standard/tween/tween.d.ts +0 -28
  155. package/dist/standard/tween/tween.d.ts.map +0 -1
  156. package/dist/standard/tween/tween.js +0 -136
  157. package/dist/standard/tween/tween.js.map +0 -1
  158. package/src/vite-env.d.ts +0 -6
@@ -1 +0,0 @@
1
- {"version":3,"file":"easing.js","sources":["../../../src/standard/tween/easing.ts"],"sourcesContent":["export type EasingFn = (t: number) => number;\n\nconst linear: EasingFn = (t) => t;\n\nconst easeInQuad: EasingFn = (t) => t * t;\nconst easeOutQuad: EasingFn = (t) => t * (2 - t);\nconst easeInOutQuad: EasingFn = (t) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t);\n\nconst easeInCubic: EasingFn = (t) => t * t * t;\nconst easeOutCubic: EasingFn = (t) => --t * t * t + 1;\nconst easeInOutCubic: EasingFn = (t) =>\n t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;\n\nconst easeInQuart: EasingFn = (t) => t * t * t * t;\nconst easeOutQuart: EasingFn = (t) => 1 - --t * t * t * t;\nconst easeInOutQuart: EasingFn = (t) => (t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t);\n\nconst easeInQuint: EasingFn = (t) => t * t * t * t * t;\nconst easeOutQuint: EasingFn = (t) => 1 + --t * t * t * t * t;\nconst easeInOutQuint: EasingFn = (t) =>\n t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * --t * t * t * t * t;\n\nconst easeInSine: EasingFn = (t) => 1 - Math.cos((t * Math.PI) / 2);\nconst easeOutSine: EasingFn = (t) => Math.sin((t * Math.PI) / 2);\nconst easeInOutSine: EasingFn = (t) => -(Math.cos(Math.PI * t) - 1) / 2;\n\nconst easeInExpo: EasingFn = (t) => (t === 0 ? 0 : Math.pow(2, 10 * t - 10));\nconst easeOutExpo: EasingFn = (t) => (t === 1 ? 1 : 1 - Math.pow(2, -10 * t));\nconst easeInOutExpo: EasingFn = (t) =>\n t === 0\n ? 0\n : t === 1\n ? 1\n : t < 0.5\n ? Math.pow(2, 20 * t - 10) / 2\n : (2 - Math.pow(2, -20 * t + 10)) / 2;\n\nconst easeInCirc: EasingFn = (t) => 1 - Math.sqrt(1 - t * t);\nconst easeOutCirc: EasingFn = (t) => Math.sqrt(1 - --t * t);\nconst easeInOutCirc: EasingFn = (t) =>\n t < 0.5\n ? (1 - Math.sqrt(1 - 4 * t * t)) / 2\n : (Math.sqrt(1 - (-2 * t + 2) * (-2 * t + 2)) + 1) / 2;\n\nconst easeInBack: EasingFn = (t) => {\n const c = 1.70158;\n return (c + 1) * t * t * t - c * t * t;\n};\nconst easeOutBack: EasingFn = (t) => {\n const c = 1.70158;\n return 1 + (c + 1) * Math.pow(t - 1, 3) + c * Math.pow(t - 1, 2);\n};\nconst easeInOutBack: EasingFn = (t) => {\n const c = 1.70158 * 1.525;\n return t < 0.5\n ? (Math.pow(2 * t, 2) * ((c + 1) * 2 * t - c)) / 2\n : (Math.pow(2 * t - 2, 2) * ((c + 1) * (t * 2 - 2) + c) + 2) / 2;\n};\n\nconst easeInElastic: EasingFn = (t) =>\n t === 0\n ? 0\n : t === 1\n ? 1\n : -Math.pow(2, 10 * t - 10) * Math.sin((t * 10 - 10.75) * ((2 * Math.PI) / 3));\nconst easeOutElastic: EasingFn = (t) =>\n t === 0\n ? 0\n : t === 1\n ? 1\n : Math.pow(2, -10 * t) * Math.sin((t * 10 - 0.75) * ((2 * Math.PI) / 3)) + 1;\nconst easeInOutElastic: EasingFn = (t) =>\n t === 0\n ? 0\n : t === 1\n ? 1\n : t < 0.5\n ? -(Math.pow(2, 20 * t - 10) * Math.sin((20 * t - 11.125) * ((2 * Math.PI) / 4.5))) / 2\n : (Math.pow(2, -20 * t + 10) * Math.sin((20 * t - 11.125) * ((2 * Math.PI) / 4.5))) /\n 2 +\n 1;\n\nconst easeOutBounce: EasingFn = (t) => {\n const n1 = 7.5625;\n const d1 = 2.75;\n if (t < 1 / d1) return n1 * t * t;\n if (t < 2 / d1) return n1 * (t -= 1.5 / d1) * t + 0.75;\n if (t < 2.5 / d1) return n1 * (t -= 2.25 / d1) * t + 0.9375;\n return n1 * (t -= 2.625 / d1) * t + 0.984375;\n};\nconst easeInBounce: EasingFn = (t) => 1 - easeOutBounce(1 - t);\nconst easeInOutBounce: EasingFn = (t) =>\n t < 0.5 ? (1 - easeOutBounce(1 - 2 * t)) / 2 : (1 + easeOutBounce(2 * t - 1)) / 2;\n\nexport const EASING_FUNCTIONS: readonly EasingFn[] = [\n linear,\n easeInQuad,\n easeOutQuad,\n easeInOutQuad,\n easeInCubic,\n easeOutCubic,\n easeInOutCubic,\n easeInQuart,\n easeOutQuart,\n easeInOutQuart,\n easeInQuint,\n easeOutQuint,\n easeInOutQuint,\n easeInSine,\n easeOutSine,\n easeInOutSine,\n easeInExpo,\n easeOutExpo,\n easeInOutExpo,\n easeInCirc,\n easeOutCirc,\n easeInOutCirc,\n easeInBack,\n easeOutBack,\n easeInOutBack,\n easeInElastic,\n easeOutElastic,\n easeInOutElastic,\n easeInBounce,\n easeOutBounce,\n easeInOutBounce,\n] as const;\n\nconst EASING_INDEX: Record<string, number> = {\n linear: 0,\n \"ease-in-quad\": 1,\n \"ease-out-quad\": 2,\n \"ease-in-out-quad\": 3,\n \"ease-in-cubic\": 4,\n \"ease-out-cubic\": 5,\n \"ease-in-out-cubic\": 6,\n \"ease-in-quart\": 7,\n \"ease-out-quart\": 8,\n \"ease-in-out-quart\": 9,\n \"ease-in-quint\": 10,\n \"ease-out-quint\": 11,\n \"ease-in-out-quint\": 12,\n \"ease-in-sine\": 13,\n \"ease-out-sine\": 14,\n \"ease-in-out-sine\": 15,\n \"ease-in-expo\": 16,\n \"ease-out-expo\": 17,\n \"ease-in-out-expo\": 18,\n \"ease-in-circ\": 19,\n \"ease-out-circ\": 20,\n \"ease-in-out-circ\": 21,\n \"ease-in-back\": 22,\n \"ease-out-back\": 23,\n \"ease-in-out-back\": 24,\n \"ease-in-elastic\": 25,\n \"ease-out-elastic\": 26,\n \"ease-in-out-elastic\": 27,\n \"ease-in-bounce\": 28,\n \"ease-out-bounce\": 29,\n \"ease-in-out-bounce\": 30,\n};\n\nexport function getEasingIndex(name: string): number {\n return EASING_INDEX[name] ?? 0;\n}\n\nexport function getEasing(index: number): EasingFn {\n return EASING_FUNCTIONS[index] ?? linear;\n}\n"],"names":["linear","t","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInBack","easeOutBack","easeInOutBack","c","easeInElastic","easeOutElastic","easeInOutElastic","easeOutBounce","easeInBounce","easeInOutBounce","EASING_FUNCTIONS","EASING_INDEX","getEasingIndex","name","getEasing","index"],"mappings":"AAEA,MAAMA,IAAmB,CAACC,MAAMA,GAE1BC,IAAuB,CAACD,MAAMA,IAAIA,GAClCE,IAAwB,CAACF,MAAMA,KAAK,IAAIA,IACxCG,IAA0B,CAACH,MAAOA,IAAI,MAAM,IAAIA,IAAIA,IAAI,MAAM,IAAI,IAAIA,KAAKA,GAE3EI,IAAwB,CAACJ,MAAMA,IAAIA,IAAIA,GACvCK,IAAyB,CAACL,MAAM,EAAEA,IAAIA,IAAIA,IAAI,GAC9CM,IAA2B,CAACN,MAC9BA,IAAI,MAAM,IAAIA,IAAIA,IAAIA,KAAKA,IAAI,MAAM,IAAIA,IAAI,MAAM,IAAIA,IAAI,KAAK,GAE9DO,IAAwB,CAACP,MAAMA,IAAIA,IAAIA,IAAIA,GAC3CQ,IAAyB,CAACR,MAAM,IAAI,EAAEA,IAAIA,IAAIA,IAAIA,GAClDS,IAA2B,CAACT,MAAOA,IAAI,MAAM,IAAIA,IAAIA,IAAIA,IAAIA,IAAI,IAAI,IAAI,EAAEA,IAAIA,IAAIA,IAAIA,GAEvFU,IAAwB,CAACV,MAAMA,IAAIA,IAAIA,IAAIA,IAAIA,GAC/CW,IAAyB,CAACX,MAAM,IAAI,EAAEA,IAAIA,IAAIA,IAAIA,IAAIA,GACtDY,IAA2B,CAACZ,MAC9BA,IAAI,MAAM,KAAKA,IAAIA,IAAIA,IAAIA,IAAIA,IAAI,IAAI,KAAK,EAAEA,IAAIA,IAAIA,IAAIA,IAAIA,GAE5Da,IAAuB,CAACb,MAAM,IAAI,KAAK,IAAKA,IAAI,KAAK,KAAM,CAAC,GAC5Dc,IAAwB,CAACd,MAAM,KAAK,IAAKA,IAAI,KAAK,KAAM,CAAC,GACzDe,IAA0B,CAACf,MAAM,EAAE,KAAK,IAAI,KAAK,KAAKA,CAAC,IAAI,KAAK,GAEhEgB,IAAuB,CAAChB,MAAOA,MAAM,IAAI,IAAI,KAAK,IAAI,GAAG,KAAKA,IAAI,EAAE,GACpEiB,IAAwB,CAACjB,MAAOA,MAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG,MAAMA,CAAC,GACrEkB,IAA0B,CAAClB,MAC7BA,MAAM,IACA,IACAA,MAAM,IACJ,IACAA,IAAI,MACF,KAAK,IAAI,GAAG,KAAKA,IAAI,EAAE,IAAI,KAC1B,IAAI,KAAK,IAAI,GAAG,MAAMA,IAAI,EAAE,KAAK,GAE1CmB,IAAuB,CAACnB,MAAM,IAAI,KAAK,KAAK,IAAIA,IAAIA,CAAC,GACrDoB,IAAwB,CAACpB,MAAM,KAAK,KAAK,IAAI,EAAEA,IAAIA,CAAC,GACpDqB,IAA0B,CAACrB,MAC7BA,IAAI,OACG,IAAI,KAAK,KAAK,IAAI,IAAIA,IAAIA,CAAC,KAAK,KAChC,KAAK,KAAK,KAAK,KAAKA,IAAI,MAAM,KAAKA,IAAI,EAAE,IAAI,KAAK,GAEvDsB,IAAuB,CAACtB,MAElB,UAASA,IAAIA,IAAIA,IAAI,UAAIA,IAAIA,GAEnCuB,IAAwB,CAACvB,MAEpB,IAAK,UAAS,KAAK,IAAIA,IAAI,GAAG,CAAC,IAAI,UAAI,KAAK,IAAIA,IAAI,GAAG,CAAC,GAE7DwB,IAA0B,CAACxB,MAAM;AACnC,QAAMyB,IAAI;AACV,SAAOzB,IAAI,MACJ,KAAK,IAAI,IAAIA,GAAG,CAAC,MAAMyB,IAAI,KAAK,IAAIzB,IAAIyB,KAAM,KAC9C,KAAK,IAAI,IAAIzB,IAAI,GAAG,CAAC,MAAMyB,IAAI,MAAMzB,IAAI,IAAI,KAAKyB,KAAK,KAAK;AACvE,GAEMC,IAA0B,CAAC1B,MAC7BA,MAAM,IACA,IACAA,MAAM,IACJ,IACA,CAAC,KAAK,IAAI,GAAG,KAAKA,IAAI,EAAE,IAAI,KAAK,KAAKA,IAAI,KAAK,UAAW,IAAI,KAAK,KAAM,EAAE,GACjF2B,IAA2B,CAAC3B,MAC9BA,MAAM,IACA,IACAA,MAAM,IACJ,IACA,KAAK,IAAI,GAAG,MAAMA,CAAC,IAAI,KAAK,KAAKA,IAAI,KAAK,SAAU,IAAI,KAAK,KAAM,EAAE,IAAI,GAC/E4B,IAA6B,CAAC5B,MAChCA,MAAM,IACA,IACAA,MAAM,IACJ,IACAA,IAAI,MACF,EAAE,KAAK,IAAI,GAAG,KAAKA,IAAI,EAAE,IAAI,KAAK,KAAK,KAAKA,IAAI,WAAY,IAAI,KAAK,KAAM,IAAI,KAAK,IACnF,KAAK,IAAI,GAAG,MAAMA,IAAI,EAAE,IAAI,KAAK,KAAK,KAAKA,IAAI,WAAY,IAAI,KAAK,KAAM,IAAI,IAC3E,IACJ,GAER6B,IAA0B,CAAC7B,MAGzBA,IAAI,sBAAe,SAAKA,IAAIA,IAC5BA,IAAI,qBAAe,UAAMA,KAAK,sBAAYA,IAAI,OAC9CA,IAAI,qBAAiB,UAAMA,KAAK,sBAAaA,IAAI,SAC9C,UAAMA,KAAK,sBAAcA,IAAI,UAElC8B,IAAyB,CAAC9B,MAAM,IAAI6B,EAAc,IAAI7B,CAAC,GACvD+B,IAA4B,CAAC/B,MAC/BA,IAAI,OAAO,IAAI6B,EAAc,IAAI,IAAI7B,CAAC,KAAK,KAAK,IAAI6B,EAAc,IAAI7B,IAAI,CAAC,KAAK,GAEvEgC,IAAwC;AAAA,EACjDjC;AAAA,EACAE;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAE;AAAA,EACAC;AAAA,EACAC;AAAA,EACAE;AAAA,EACAD;AAAA,EACAE;AACJ,GAEME,IAAuC;AAAA,EACzC,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,EACvB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,sBAAsB;AAC1B;AAEO,SAASC,EAAeC,GAAsB;AACjD,SAAOF,EAAaE,CAAI,KAAK;AACjC;AAEO,SAASC,EAAUC,GAAyB;AAC/C,SAAOL,EAAiBK,CAAK,KAAKtC;AACtC;"}
@@ -1,4 +0,0 @@
1
- export { Tween, TweenState, TweenTarget, TweenSystem, TweenPlugin, createTween, type TweenOptions, } from './tween';
2
- export { Sequence, SequenceState, Pause, computeTweenDelays, finalizeSequences } from './sequence';
3
- export { EASING_FUNCTIONS, getEasing, getEasingIndex, type EasingFn } from './easing';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/standard/tween/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,KAAK,YAAY,GACpB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnG,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC"}
@@ -1,20 +0,0 @@
1
- import { State, ParseContext } from '../../core';
2
- export declare const Pause: {
3
- duration: number[];
4
- };
5
- export declare const SequenceState: {
6
- readonly IDLE: 0;
7
- readonly PLAYING: 1;
8
- readonly COMPLETE: 2;
9
- };
10
- export declare const Sequence: {
11
- state: number[];
12
- elapsed: number[];
13
- };
14
- export declare function finalizeSequences(_state: State, _context: ParseContext): void;
15
- export declare function computeTweenDelays(state: State, seqEid: number): void;
16
- declare function ensureSequencesResolved(state: State): void;
17
- declare function checkSequenceCompletion(state: State): void;
18
- export declare function updateSequences(state: State, dt: number): void;
19
- export { ensureSequencesResolved, checkSequenceCompletion };
20
- //# sourceMappingURL=sequence.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../../../src/standard/tween/sequence.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AASpE,eAAO,MAAM,KAAK;cACE,MAAM,EAAE;CAC3B,CAAC;AAMF,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAEX,eAAO,MAAM,QAAQ;WACJ,MAAM,EAAE;aACN,MAAM,EAAE;CAC1B,CAAC;AASF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAG;AAWjF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAWrE;AAiDD,iBAAS,uBAAuB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAMnD;AAED,iBAAS,uBAAuB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAmBnD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAE9D;AAED,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,CAAC"}
@@ -1,95 +0,0 @@
1
- import { Pair as f } from "bitecs";
2
- import { setTraits as h } from "../../core/component.js";
3
- import "../../core/builder.js";
4
- import { ChildOf as p } from "../../core/relation.js";
5
- import "../../core/math.js";
6
- import "fast-xml-parser";
7
- import { Tween as n, TweenState as a, ensureResolved as T, captureFromValue as C } from "./tween.js";
8
- const L = (e, t) => e - t, P = (e, t) => e.endTime - t.endTime, d = [], l = [], E = {
9
- duration: []
10
- };
11
- h(E, {
12
- defaults: () => ({ duration: 0.5 })
13
- });
14
- const u = {
15
- IDLE: 0,
16
- PLAYING: 1,
17
- COMPLETE: 2
18
- }, r = {
19
- state: [],
20
- elapsed: []
21
- };
22
- h(r, {
23
- defaults: () => ({
24
- state: u.IDLE,
25
- elapsed: 0
26
- })
27
- });
28
- function Y(e, t) {
29
- }
30
- function S(e, t) {
31
- d.length = 0;
32
- for (const o of e.query([f(p.relation, t)]))
33
- d.push(o);
34
- return d.sort(L), d;
35
- }
36
- function g(e, t) {
37
- const o = S(e, t);
38
- let i = 0;
39
- for (const s of o)
40
- e.hasComponent(s, E) ? i += E.duration[s] ?? 0 : e.hasComponent(s, n) && (n.delay[s] = i);
41
- }
42
- function I(e, t) {
43
- for (const o of e.query([r])) {
44
- if (r.state[o] !== u.PLAYING) continue;
45
- const i = r.elapsed[o] ?? 0, s = i + t;
46
- r.elapsed[o] = s;
47
- for (const c of e.query([f(p.relation, o), n])) {
48
- if (n.state[c] !== a.IDLE) continue;
49
- const m = n.delay[c] ?? 0, q = s >= m, y = i >= m;
50
- q && (C(e, c), n.state[c] = a.PLAYING, n.elapsed[c] = y ? 0 : s - m - t);
51
- }
52
- }
53
- }
54
- function O(e, t) {
55
- l.length = 0;
56
- for (const o of e.query([f(p.relation, t), n])) {
57
- if (n.state[o] === a.COMPLETE && n.elapsed[o] >= n.duration[o])
58
- continue;
59
- const i = n.delay[o] ?? 0, s = n.duration[o] ?? 0;
60
- l.push({ eid: o, endTime: i + s });
61
- }
62
- l.sort(P);
63
- for (const { eid: o } of l)
64
- n.state[o] = a.COMPLETE, T(e, o);
65
- }
66
- function B(e) {
67
- for (const t of e.query([r]))
68
- r.state[t] === u.COMPLETE && O(e, t);
69
- }
70
- function R(e) {
71
- for (const t of e.query([r])) {
72
- if (r.state[t] !== u.PLAYING) continue;
73
- let o = !0, i = !1;
74
- for (const s of e.query([f(p.relation, t), n]))
75
- if (i = !0, n.state[s] !== a.COMPLETE) {
76
- o = !1;
77
- break;
78
- }
79
- i && o && (r.state[t] = u.COMPLETE);
80
- }
81
- }
82
- function b(e, t) {
83
- I(e, t);
84
- }
85
- export {
86
- E as Pause,
87
- r as Sequence,
88
- u as SequenceState,
89
- R as checkSequenceCompletion,
90
- g as computeTweenDelays,
91
- B as ensureSequencesResolved,
92
- Y as finalizeSequences,
93
- b as updateSequences
94
- };
95
- //# sourceMappingURL=sequence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sequence.js","sources":["../../../src/standard/tween/sequence.ts"],"sourcesContent":["import { Pair } from \"bitecs\";\nimport { setTraits } from \"../../core/component\";\nimport { ChildOf, type State, type ParseContext } from \"../../core\";\nimport { Tween, TweenState, ensureResolved, captureFromValue } from \"./tween\";\n\nconst compareNumbers = (a: number, b: number) => a - b;\nconst compareByEndTime = (a: { endTime: number }, b: { endTime: number }) => a.endTime - b.endTime;\n\nconst childrenBuffer: number[] = [];\nconst tweensBuffer: { eid: number; endTime: number }[] = [];\n\nexport const Pause = {\n duration: [] as number[],\n};\n\nsetTraits(Pause, {\n defaults: () => ({ duration: 0.5 }),\n});\n\nexport const SequenceState = {\n IDLE: 0,\n PLAYING: 1,\n COMPLETE: 2,\n} as const;\n\nexport const Sequence = {\n state: [] as number[],\n elapsed: [] as number[],\n};\n\nsetTraits(Sequence, {\n defaults: () => ({\n state: SequenceState.IDLE,\n elapsed: 0,\n }),\n});\n\nexport function finalizeSequences(_state: State, _context: ParseContext): void {}\n\nfunction getChildrenSorted(state: State, parentEid: number): number[] {\n childrenBuffer.length = 0;\n for (const childEid of state.query([Pair(ChildOf.relation, parentEid)])) {\n childrenBuffer.push(childEid);\n }\n childrenBuffer.sort(compareNumbers);\n return childrenBuffer;\n}\n\nexport function computeTweenDelays(state: State, seqEid: number): void {\n const children = getChildrenSorted(state, seqEid);\n let cumulativeDelay = 0;\n\n for (const childEid of children) {\n if (state.hasComponent(childEid, Pause)) {\n cumulativeDelay += Pause.duration[childEid] ?? 0;\n } else if (state.hasComponent(childEid, Tween)) {\n Tween.delay[childEid] = cumulativeDelay;\n }\n }\n}\n\nfunction updateSequencePlayheads(state: State, dt: number): void {\n for (const seqEid of state.query([Sequence])) {\n if (Sequence.state[seqEid] !== SequenceState.PLAYING) continue;\n\n const prevElapsed = Sequence.elapsed[seqEid] ?? 0;\n const elapsed = prevElapsed + dt;\n Sequence.elapsed[seqEid] = elapsed;\n\n for (const childEid of state.query([Pair(ChildOf.relation, seqEid), Tween])) {\n if (Tween.state[childEid] !== TweenState.IDLE) continue;\n\n const delay = Tween.delay[childEid] ?? 0;\n const shouldStart = elapsed >= delay;\n const wasStarted = prevElapsed >= delay;\n\n if (shouldStart) {\n captureFromValue(state, childEid);\n Tween.state[childEid] = TweenState.PLAYING;\n Tween.elapsed[childEid] = wasStarted ? 0 : elapsed - delay - dt;\n }\n }\n }\n}\n\nfunction ensureSequenceResolved(state: State, seqEid: number): void {\n tweensBuffer.length = 0;\n\n for (const childEid of state.query([Pair(ChildOf.relation, seqEid), Tween])) {\n if (\n Tween.state[childEid] === TweenState.COMPLETE &&\n Tween.elapsed[childEid] >= Tween.duration[childEid]\n ) {\n continue;\n }\n const delay = Tween.delay[childEid] ?? 0;\n const duration = Tween.duration[childEid] ?? 0;\n tweensBuffer.push({ eid: childEid, endTime: delay + duration });\n }\n\n tweensBuffer.sort(compareByEndTime);\n\n for (const { eid } of tweensBuffer) {\n Tween.state[eid] = TweenState.COMPLETE;\n ensureResolved(state, eid);\n }\n}\n\nfunction ensureSequencesResolved(state: State): void {\n for (const seqEid of state.query([Sequence])) {\n if (Sequence.state[seqEid] === SequenceState.COMPLETE) {\n ensureSequenceResolved(state, seqEid);\n }\n }\n}\n\nfunction checkSequenceCompletion(state: State): void {\n for (const seqEid of state.query([Sequence])) {\n if (Sequence.state[seqEid] !== SequenceState.PLAYING) continue;\n\n let allComplete = true;\n let hasChildren = false;\n\n for (const childEid of state.query([Pair(ChildOf.relation, seqEid), Tween])) {\n hasChildren = true;\n if (Tween.state[childEid] !== TweenState.COMPLETE) {\n allComplete = false;\n break;\n }\n }\n\n if (hasChildren && allComplete) {\n Sequence.state[seqEid] = SequenceState.COMPLETE;\n }\n }\n}\n\nexport function updateSequences(state: State, dt: number): void {\n updateSequencePlayheads(state, dt);\n}\n\nexport { ensureSequencesResolved, checkSequenceCompletion };\n"],"names":["compareNumbers","a","b","compareByEndTime","childrenBuffer","tweensBuffer","Pause","setTraits","SequenceState","Sequence","finalizeSequences","_state","_context","getChildrenSorted","state","parentEid","childEid","Pair","ChildOf","computeTweenDelays","seqEid","children","cumulativeDelay","Tween","updateSequencePlayheads","dt","prevElapsed","elapsed","TweenState","delay","shouldStart","wasStarted","captureFromValue","ensureSequenceResolved","duration","eid","ensureResolved","ensureSequencesResolved","checkSequenceCompletion","allComplete","hasChildren","updateSequences"],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- import { State, System, ParseContext, Plugin } from '../../core';
2
- export declare const TweenState: {
3
- readonly IDLE: 0;
4
- readonly PLAYING: 1;
5
- readonly COMPLETE: 2;
6
- };
7
- export declare const Tween: {
8
- state: number[];
9
- from: number[];
10
- to: number[];
11
- duration: number[];
12
- elapsed: number[];
13
- delay: number[];
14
- easingIndex: number[];
15
- };
16
- export declare const TweenTarget: import('../..').RelationDef;
17
- export declare function finalizePendingTweens(state: State, context: ParseContext): void;
18
- export declare function captureFromValue(state: State, tweenEid: number): void;
19
- export declare function ensureResolved(state: State, tweenEid: number): void;
20
- export interface TweenOptions {
21
- readonly to: number;
22
- readonly duration?: number;
23
- readonly easing?: string;
24
- }
25
- export declare function createTween(state: State, targetEid: number, fieldPath: string, options: TweenOptions): number | null;
26
- export declare const TweenSystem: System;
27
- export declare const TweenPlugin: Plugin;
28
- //# sourceMappingURL=tween.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tween.d.ts","sourceRoot":"","sources":["../../../src/standard/tween/tween.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,MAAM,EACd,MAAM,YAAY,CAAC;AA0BpB,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAEX,eAAO,MAAM,KAAK;WACD,MAAM,EAAE;UACT,MAAM,EAAE;QACV,MAAM,EAAE;cACF,MAAM,EAAE;aACT,MAAM,EAAE;WACV,MAAM,EAAE;iBACF,MAAM,EAAE;CAC9B,CAAC;AA4BF,eAAO,MAAM,WAAW,6BAEtB,CAAC;AAgDH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAgB/E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAOrE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAenE;AA2CD,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,WAAW,CACvB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACtB,MAAM,GAAG,IAAI,CAqBf;AAED,eAAO,MAAM,WAAW,EAAE,MAWzB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAOzB,CAAC"}
@@ -1,136 +0,0 @@
1
- import "bitecs";
2
- import { setTraits as y } from "../../core/component.js";
3
- import "../../core/builder.js";
4
- import { defineRelation as E } from "../../core/relation.js";
5
- import "../../core/math.js";
6
- import { registerPostLoadHook as P } from "../../core/xml.js";
7
- import { getEasingIndex as g, getEasing as x } from "./easing.js";
8
- import { Pause as I, Sequence as w, ensureSequencesResolved as b, updateSequences as v, checkSequenceCompletion as A } from "./sequence.js";
9
- function L(n) {
10
- if (n._value) {
11
- const o = {};
12
- for (const e of n._value.split(";")) {
13
- const t = e.indexOf(":");
14
- if (t === -1) continue;
15
- const i = e.slice(0, t).trim(), s = e.slice(t + 1).trim();
16
- i && s && (o[i] = s);
17
- }
18
- return o;
19
- }
20
- return n;
21
- }
22
- const c = {
23
- IDLE: 0,
24
- PLAYING: 1,
25
- COMPLETE: 2
26
- }, r = {
27
- state: [],
28
- from: [],
29
- to: [],
30
- duration: [],
31
- elapsed: [],
32
- delay: [],
33
- easingIndex: []
34
- };
35
- y(r, {
36
- defaults: () => ({
37
- state: c.IDLE,
38
- from: 0,
39
- to: 0,
40
- duration: 1,
41
- elapsed: 0,
42
- delay: 0,
43
- easingIndex: 0
44
- }),
45
- adapter: (n, o, e) => {
46
- const t = L(n), i = {};
47
- return t.duration && (i.duration = parseFloat(t.duration)), t.delay && (i.delay = parseFloat(t.delay)), t.easing && (i.easingIndex = g(t.easing)), t.target && S(o, e, t, e.currentEid), i;
48
- }
49
- });
50
- const a = E("tween-target", {
51
- exclusive: !0
52
- });
53
- function R(n) {
54
- if (!n.startsWith("@")) return null;
55
- const o = n.slice(1), e = o.indexOf(".");
56
- if (e === -1) return null;
57
- const t = o.slice(0, e), i = o.slice(e + 1), s = i.lastIndexOf(".");
58
- return s === -1 ? null : {
59
- entity: t,
60
- component: i.slice(0, s),
61
- field: i.slice(s + 1)
62
- };
63
- }
64
- let d = [];
65
- function S(n, o, e, t) {
66
- d.push({
67
- tweenEid: t,
68
- target: e.target,
69
- to: e.to
70
- });
71
- }
72
- function h(n, o) {
73
- for (const e of d) {
74
- const t = R(e.target);
75
- if (!t) continue;
76
- const i = o.getEntityByName(t.entity);
77
- i === null || !n.bindFieldAccessor(e.tweenEid, t.component, t.field) || (n.addRelation(e.tweenEid, a, i), r.to[e.tweenEid] = parseFloat(e.to));
78
- }
79
- d = [];
80
- }
81
- function B(n, o) {
82
- const e = n.getFirstRelationTarget(o, a), t = n.getFieldAccessor(o);
83
- t && e >= 0 && (r.from[o] = t.get(e) ?? 0);
84
- }
85
- function O(n, o) {
86
- const e = r.elapsed[o], t = r.duration[o];
87
- if (e >= t) return;
88
- const i = n.getFirstRelationTarget(o, a), s = n.getFieldAccessor(o);
89
- s && i >= 0 && (r.from[o] = s.get(i) ?? 0, s.set(i, r.to[o])), r.elapsed[o] = t;
90
- }
91
- function q(n, o) {
92
- for (const e of n.query([r])) {
93
- const t = r.state[e];
94
- if (t === c.COMPLETE) {
95
- O(n, e);
96
- continue;
97
- }
98
- if (t !== c.PLAYING) continue;
99
- const i = n.getFirstRelationTarget(e, a), s = n.getFieldAccessor(e);
100
- r.elapsed[e] === 0 && s && i >= 0 && (r.from[e] = s.get(i) ?? 0), r.elapsed[e] += o;
101
- const l = r.elapsed[e], p = r.duration[e], u = Math.min(l / p, 1), m = x(r.easingIndex[e])(u), f = r.from[e], T = r.to[e], F = f + (T - f) * m;
102
- s && i >= 0 && s.set(i, F), u >= 1 && (r.state[e] = c.COMPLETE);
103
- }
104
- }
105
- function H(n, o, e, t) {
106
- const i = n.resolveFieldPath(e);
107
- if (!i) return null;
108
- const s = n.addEntity();
109
- return n.addComponent(s, r), n.bindFieldAccessor(s, i.component, i.field) ? (n.addRelation(s, a, o), r.to[s] = t.to, r.duration[s] = t.duration ?? 1, r.elapsed[s] = 0, r.easingIndex[s] = g(t.easing ?? "linear"), s) : (n.removeEntity(s), null);
110
- }
111
- const C = {
112
- group: "simulation",
113
- update(n) {
114
- const o = n.time.deltaTime;
115
- b(n), v(n, o), q(n, o), A(n);
116
- }
117
- }, V = {
118
- systems: [C],
119
- components: { Tween: r, Sequence: w, Pause: I },
120
- relations: [a],
121
- initialize() {
122
- P(h);
123
- }
124
- };
125
- export {
126
- r as Tween,
127
- V as TweenPlugin,
128
- c as TweenState,
129
- C as TweenSystem,
130
- a as TweenTarget,
131
- B as captureFromValue,
132
- H as createTween,
133
- O as ensureResolved,
134
- h as finalizePendingTweens
135
- };
136
- //# sourceMappingURL=tween.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tween.js","sources":["../../../src/standard/tween/tween.ts"],"sourcesContent":["import {\n defineRelation,\n registerPostLoadHook,\n type State,\n type System,\n type ParseContext,\n type Plugin,\n} from \"../../core\";\nimport { setTraits } from \"../../core/component\";\nimport { getEasingIndex, getEasing } from \"./easing\";\nimport {\n Sequence,\n Pause,\n updateSequences,\n ensureSequencesResolved,\n checkSequenceCompletion,\n} from \"./sequence\";\n\nfunction parseTweenAttrs(attrs: Record<string, string>): Record<string, string> {\n if (attrs._value) {\n const parsed: Record<string, string> = {};\n for (const part of attrs._value.split(\";\")) {\n const colonIdx = part.indexOf(\":\");\n if (colonIdx === -1) continue;\n const key = part.slice(0, colonIdx).trim();\n const value = part.slice(colonIdx + 1).trim();\n if (key && value) parsed[key] = value;\n }\n return parsed;\n }\n return attrs;\n}\n\nexport const TweenState = {\n IDLE: 0,\n PLAYING: 1,\n COMPLETE: 2,\n} as const;\n\nexport const Tween = {\n state: [] as number[],\n from: [] as number[],\n to: [] as number[],\n duration: [] as number[],\n elapsed: [] as number[],\n delay: [] as number[],\n easingIndex: [] as number[],\n};\n\nsetTraits(Tween, {\n defaults: () => ({\n state: TweenState.IDLE,\n from: 0,\n to: 0,\n duration: 1,\n elapsed: 0,\n delay: 0,\n easingIndex: 0,\n }),\n adapter: (attrs: Record<string, string>, state: State, context: ParseContext) => {\n const parsed = parseTweenAttrs(attrs);\n const result: Record<string, number> = {};\n\n if (parsed.duration) result.duration = parseFloat(parsed.duration);\n if (parsed.delay) result.delay = parseFloat(parsed.delay);\n if (parsed.easing) result.easingIndex = getEasingIndex(parsed.easing);\n\n if (parsed.target) {\n setupTweenFromXml(state, context, parsed, context.currentEid);\n }\n\n return result;\n },\n});\n\nexport const TweenTarget = defineRelation(\"tween-target\", {\n exclusive: true,\n});\n\ninterface ParsedTargetPath {\n readonly entity: string;\n readonly component: string;\n readonly field: string;\n}\n\nfunction parseTargetPath(path: string): ParsedTargetPath | null {\n if (!path.startsWith(\"@\")) return null;\n\n const rest = path.slice(1);\n const firstDot = rest.indexOf(\".\");\n if (firstDot === -1) return null;\n\n const entity = rest.slice(0, firstDot);\n const fieldPath = rest.slice(firstDot + 1);\n const dotIndex = fieldPath.lastIndexOf(\".\");\n if (dotIndex === -1) return null;\n\n return {\n entity,\n component: fieldPath.slice(0, dotIndex),\n field: fieldPath.slice(dotIndex + 1),\n };\n}\n\ninterface PendingTween {\n readonly tweenEid: number;\n readonly target: string;\n readonly to: string;\n}\n\nlet pendingXmlTweens: PendingTween[] = [];\n\nfunction setupTweenFromXml(\n _state: State,\n _context: ParseContext,\n attrs: Record<string, string>,\n tweenEid: number\n): void {\n pendingXmlTweens.push({\n tweenEid,\n target: attrs.target,\n to: attrs.to,\n });\n}\n\nexport function finalizePendingTweens(state: State, context: ParseContext): void {\n for (const pending of pendingXmlTweens) {\n const parsed = parseTargetPath(pending.target);\n if (!parsed) continue;\n\n const targetEid = context.getEntityByName(parsed.entity);\n if (targetEid === null) continue;\n\n const binding = state.bindFieldAccessor(pending.tweenEid, parsed.component, parsed.field);\n if (!binding) continue;\n\n state.addRelation(pending.tweenEid, TweenTarget, targetEid);\n\n Tween.to[pending.tweenEid] = parseFloat(pending.to);\n }\n pendingXmlTweens = [];\n}\n\nexport function captureFromValue(state: State, tweenEid: number): void {\n const targetEid = state.getFirstRelationTarget(tweenEid, TweenTarget);\n const binding = state.getFieldAccessor(tweenEid);\n\n if (binding && targetEid >= 0) {\n Tween.from[tweenEid] = binding.get(targetEid) ?? 0;\n }\n}\n\nexport function ensureResolved(state: State, tweenEid: number): void {\n const elapsed = Tween.elapsed[tweenEid];\n const duration = Tween.duration[tweenEid];\n\n if (elapsed >= duration) return;\n\n const targetEid = state.getFirstRelationTarget(tweenEid, TweenTarget);\n const binding = state.getFieldAccessor(tweenEid);\n\n if (binding && targetEid >= 0) {\n Tween.from[tweenEid] = binding.get(targetEid) ?? 0;\n binding.set(targetEid, Tween.to[tweenEid]);\n }\n\n Tween.elapsed[tweenEid] = duration;\n}\n\nfunction updateTweens(state: State, dt: number): void {\n for (const tweenEid of state.query([Tween])) {\n const tweenState = Tween.state[tweenEid];\n\n if (tweenState === TweenState.COMPLETE) {\n ensureResolved(state, tweenEid);\n continue;\n }\n\n if (tweenState !== TweenState.PLAYING) continue;\n\n const targetEid = state.getFirstRelationTarget(tweenEid, TweenTarget);\n const binding = state.getFieldAccessor(tweenEid);\n\n if (Tween.elapsed[tweenEid] === 0 && binding && targetEid >= 0) {\n Tween.from[tweenEid] = binding.get(targetEid) ?? 0;\n }\n\n Tween.elapsed[tweenEid] += dt;\n\n const elapsed = Tween.elapsed[tweenEid];\n const duration = Tween.duration[tweenEid];\n const rawProgress = Math.min(elapsed / duration, 1);\n\n const easingFn = getEasing(Tween.easingIndex[tweenEid]);\n const easedProgress = easingFn(rawProgress);\n\n const from = Tween.from[tweenEid];\n const to = Tween.to[tweenEid];\n const value = from + (to - from) * easedProgress;\n\n if (binding && targetEid >= 0) {\n binding.set(targetEid, value);\n }\n\n if (rawProgress >= 1) {\n Tween.state[tweenEid] = TweenState.COMPLETE;\n }\n }\n}\n\nexport interface TweenOptions {\n readonly to: number;\n readonly duration?: number;\n readonly easing?: string;\n}\n\nexport function createTween(\n state: State,\n targetEid: number,\n fieldPath: string,\n options: TweenOptions\n): number | null {\n const parsed = state.resolveFieldPath(fieldPath);\n if (!parsed) return null;\n\n const tweenEid = state.addEntity();\n state.addComponent(tweenEid, Tween);\n\n const binding = state.bindFieldAccessor(tweenEid, parsed.component, parsed.field);\n if (!binding) {\n state.removeEntity(tweenEid);\n return null;\n }\n\n state.addRelation(tweenEid, TweenTarget, targetEid);\n\n Tween.to[tweenEid] = options.to;\n Tween.duration[tweenEid] = options.duration ?? 1;\n Tween.elapsed[tweenEid] = 0;\n Tween.easingIndex[tweenEid] = getEasingIndex(options.easing ?? \"linear\");\n\n return tweenEid;\n}\n\nexport const TweenSystem: System = {\n group: \"simulation\",\n\n update(state: State) {\n const dt = state.time.deltaTime;\n\n ensureSequencesResolved(state);\n updateSequences(state, dt);\n updateTweens(state, dt);\n checkSequenceCompletion(state);\n },\n};\n\nexport const TweenPlugin: Plugin = {\n systems: [TweenSystem],\n components: { Tween, Sequence, Pause },\n relations: [TweenTarget],\n initialize() {\n registerPostLoadHook(finalizePendingTweens);\n },\n};\n"],"names":["parseTweenAttrs","attrs","parsed","part","colonIdx","key","value","TweenState","Tween","setTraits","state","context","result","getEasingIndex","setupTweenFromXml","TweenTarget","defineRelation","parseTargetPath","path","rest","firstDot","entity","fieldPath","dotIndex","pendingXmlTweens","_state","_context","tweenEid","finalizePendingTweens","pending","targetEid","captureFromValue","binding","ensureResolved","elapsed","duration","updateTweens","dt","tweenState","rawProgress","easedProgress","getEasing","from","to","createTween","options","TweenSystem","ensureSequencesResolved","updateSequences","checkSequenceCompletion","TweenPlugin","Sequence","Pause","registerPostLoadHook"],"mappings":"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"}
package/src/vite-env.d.ts DELETED
@@ -1,6 +0,0 @@
1
- /// <reference types="vite/client" />
2
-
3
- declare module "*.wasm?url" {
4
- const url: string;
5
- export default url;
6
- }