@lightningjs/renderer 2.20.0 → 2.20.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 (213) hide show
  1. package/dist/exports/canvas-shaders.d.ts +10 -0
  2. package/dist/exports/canvas-shaders.js +27 -0
  3. package/dist/exports/canvas-shaders.js.map +1 -0
  4. package/dist/exports/webgl-shaders.d.ts +11 -0
  5. package/dist/exports/webgl-shaders.js +28 -0
  6. package/dist/exports/webgl-shaders.js.map +1 -0
  7. package/dist/src/common/CommonTypes.d.ts +11 -0
  8. package/dist/src/core/AutosizeManager.d.ts +30 -0
  9. package/dist/src/core/AutosizeManager.js +159 -0
  10. package/dist/src/core/AutosizeManager.js.map +1 -0
  11. package/dist/src/core/Autosizer.d.ts +29 -0
  12. package/dist/src/core/Autosizer.js +177 -0
  13. package/dist/src/core/Autosizer.js.map +1 -0
  14. package/dist/src/core/CoreNode.d.ts +1 -1
  15. package/dist/src/core/CoreNode.js +8 -0
  16. package/dist/src/core/CoreNode.js.map +1 -1
  17. package/dist/src/core/Stage.js +2 -1
  18. package/dist/src/core/Stage.js.map +1 -1
  19. package/dist/src/core/animations/Animation.d.ts +16 -0
  20. package/dist/src/core/animations/Animation.js +111 -0
  21. package/dist/src/core/animations/Animation.js.map +1 -0
  22. package/dist/src/core/animations/CoreTransition.d.ts +24 -0
  23. package/dist/src/core/animations/CoreTransition.js +63 -0
  24. package/dist/src/core/animations/CoreTransition.js.map +1 -0
  25. package/dist/src/core/animations/Playback.d.ts +62 -0
  26. package/dist/src/core/animations/Playback.js +155 -0
  27. package/dist/src/core/animations/Playback.js.map +1 -0
  28. package/dist/src/core/animations/Transition.d.ts +25 -0
  29. package/dist/src/core/animations/Transition.js +63 -0
  30. package/dist/src/core/animations/Transition.js.map +1 -0
  31. package/dist/src/core/animations/utils.d.ts +2 -0
  32. package/dist/src/core/animations/utils.js +137 -0
  33. package/dist/src/core/animations/utils.js.map +1 -0
  34. package/dist/src/core/lib/WebGlContextWrapper.d.ts +5 -5
  35. package/dist/src/core/lib/collectionUtils.d.ts +5 -0
  36. package/dist/src/core/lib/collectionUtils.js +100 -0
  37. package/dist/src/core/lib/collectionUtils.js.map +1 -0
  38. package/dist/src/core/lib/colorCache.d.ts +1 -0
  39. package/dist/src/core/lib/colorCache.js +19 -0
  40. package/dist/src/core/lib/colorCache.js.map +1 -0
  41. package/dist/src/core/lib/colorParser.d.ts +21 -0
  42. package/dist/src/core/lib/colorParser.js +72 -0
  43. package/dist/src/core/lib/colorParser.js.map +1 -0
  44. package/dist/src/core/platforms/Platform.d.ts +42 -0
  45. package/dist/src/core/platforms/Platform.js +22 -0
  46. package/dist/src/core/platforms/Platform.js.map +1 -0
  47. package/dist/src/core/platforms/web/WebPlatform.d.ts +10 -0
  48. package/dist/src/core/platforms/web/WebPlatform.js +87 -0
  49. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
  50. package/dist/src/core/renderers/CoreShaderNode.d.ts +59 -0
  51. package/dist/src/core/renderers/CoreShaderNode.js +113 -0
  52. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -0
  53. package/dist/src/core/renderers/CoreShaderProgram.d.ts +4 -0
  54. package/dist/src/core/renderers/CoreShaderProgram.js +20 -0
  55. package/dist/src/core/renderers/CoreShaderProgram.js.map +1 -0
  56. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +35 -0
  57. package/dist/src/core/renderers/canvas/CanvasRenderer.js +201 -0
  58. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -0
  59. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +21 -0
  60. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +58 -0
  61. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -0
  62. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +17 -0
  63. package/dist/src/core/renderers/canvas/CanvasTexture.js +128 -0
  64. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -0
  65. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +4 -0
  66. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  67. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +14 -0
  68. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +63 -0
  69. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -0
  70. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +22 -0
  71. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +67 -0
  72. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -0
  73. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +67 -0
  74. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +273 -0
  75. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -0
  76. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +44 -0
  77. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +125 -0
  78. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -0
  79. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +136 -0
  80. package/dist/src/core/renderers/webgl/WebGlRenderer.js +569 -0
  81. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -0
  82. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +222 -0
  83. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +331 -0
  84. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -0
  85. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +37 -0
  86. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +218 -0
  87. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -0
  88. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +5 -5
  89. package/dist/src/core/shaders/canvas/Border.d.ts +9 -0
  90. package/dist/src/core/shaders/canvas/Border.js +57 -0
  91. package/dist/src/core/shaders/canvas/Border.js.map +1 -0
  92. package/dist/src/core/shaders/canvas/HolePunch.d.ts +7 -0
  93. package/dist/src/core/shaders/canvas/HolePunch.js +38 -0
  94. package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -0
  95. package/dist/src/core/shaders/canvas/LinearGradient.d.ts +10 -0
  96. package/dist/src/core/shaders/canvas/LinearGradient.js +48 -0
  97. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -0
  98. package/dist/src/core/shaders/canvas/RadialGradient.d.ts +11 -0
  99. package/dist/src/core/shaders/canvas/RadialGradient.js +70 -0
  100. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -0
  101. package/dist/src/core/shaders/canvas/Rounded.d.ts +7 -0
  102. package/dist/src/core/shaders/canvas/Rounded.js +33 -0
  103. package/dist/src/core/shaders/canvas/Rounded.js.map +1 -0
  104. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +7 -0
  105. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +43 -0
  106. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -0
  107. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +8 -0
  108. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +41 -0
  109. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -0
  110. package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +7 -0
  111. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +40 -0
  112. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -0
  113. package/dist/src/core/shaders/canvas/Shadow.d.ts +8 -0
  114. package/dist/src/core/shaders/canvas/Shadow.js +31 -0
  115. package/dist/src/core/shaders/canvas/Shadow.js.map +1 -0
  116. package/dist/src/core/shaders/canvas/utils/render.d.ts +5 -0
  117. package/dist/src/core/shaders/canvas/utils/render.js +84 -0
  118. package/dist/src/core/shaders/canvas/utils/render.js.map +1 -0
  119. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +37 -0
  120. package/dist/src/core/shaders/templates/BorderTemplate.js +73 -0
  121. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -0
  122. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +46 -0
  123. package/dist/src/core/shaders/templates/HolePunchTemplate.js +35 -0
  124. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -0
  125. package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +23 -0
  126. package/dist/src/core/shaders/templates/LinearGradientTemplate.js +47 -0
  127. package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +1 -0
  128. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +33 -0
  129. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +49 -0
  130. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -0
  131. package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +29 -0
  132. package/dist/src/core/shaders/templates/RoundedTemplate.js +67 -0
  133. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -0
  134. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +7 -0
  135. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +24 -0
  136. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -0
  137. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +6 -0
  138. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +23 -0
  139. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -0
  140. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +6 -0
  141. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +23 -0
  142. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -0
  143. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +34 -0
  144. package/dist/src/core/shaders/templates/ShadowTemplate.js +66 -0
  145. package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -0
  146. package/dist/src/core/shaders/utils.d.ts +5 -0
  147. package/dist/src/core/shaders/utils.js +41 -0
  148. package/dist/src/core/shaders/utils.js.map +1 -0
  149. package/dist/src/core/shaders/webgl/Border.d.ts +3 -0
  150. package/dist/src/core/shaders/webgl/Border.js +110 -0
  151. package/dist/src/core/shaders/webgl/Border.js.map +1 -0
  152. package/dist/src/core/shaders/webgl/Default.d.ts +2 -0
  153. package/dist/src/core/shaders/webgl/Default.js +86 -0
  154. package/dist/src/core/shaders/webgl/Default.js.map +1 -0
  155. package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +2 -0
  156. package/dist/src/core/shaders/webgl/DefaultBatched.js +104 -0
  157. package/dist/src/core/shaders/webgl/DefaultBatched.js.map +1 -0
  158. package/dist/src/core/shaders/webgl/HolePunch.d.ts +3 -0
  159. package/dist/src/core/shaders/webgl/HolePunch.js +65 -0
  160. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -0
  161. package/dist/src/core/shaders/webgl/LinearGradient.d.ts +3 -0
  162. package/dist/src/core/shaders/webgl/LinearGradient.js +100 -0
  163. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -0
  164. package/dist/src/core/shaders/webgl/RadialGradient.d.ts +3 -0
  165. package/dist/src/core/shaders/webgl/RadialGradient.js +97 -0
  166. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -0
  167. package/dist/src/core/shaders/webgl/Rounded.d.ts +7 -0
  168. package/dist/src/core/shaders/webgl/Rounded.js +88 -0
  169. package/dist/src/core/shaders/webgl/Rounded.js.map +1 -0
  170. package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +3 -0
  171. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +141 -0
  172. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -0
  173. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +3 -0
  174. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +163 -0
  175. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -0
  176. package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +3 -0
  177. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +85 -0
  178. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -0
  179. package/dist/src/core/shaders/webgl/SdfShader.d.ts +30 -0
  180. package/dist/src/core/shaders/webgl/SdfShader.js +107 -0
  181. package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -0
  182. package/dist/src/core/shaders/webgl/Shadow.d.ts +3 -0
  183. package/dist/src/core/shaders/webgl/Shadow.js +110 -0
  184. package/dist/src/core/shaders/webgl/Shadow.js.map +1 -0
  185. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +59 -0
  186. package/dist/src/core/text-rendering/CanvasFontHandler.js +224 -0
  187. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
  188. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +17 -0
  189. package/dist/src/core/text-rendering/CanvasTextRenderer.js +157 -0
  190. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
  191. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +182 -0
  192. package/dist/src/core/text-rendering/SdfFontHandler.js +391 -0
  193. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
  194. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +17 -0
  195. package/dist/src/core/text-rendering/SdfTextRenderer.js +311 -0
  196. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
  197. package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +18 -0
  198. package/dist/src/core/text-rendering/TextLayoutEngine.js +380 -0
  199. package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -0
  200. package/dist/src/core/text-rendering/TextRenderer.d.ts +383 -0
  201. package/dist/src/core/text-rendering/TextRenderer.js +20 -0
  202. package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
  203. package/dist/src/core/text-rendering/Utils.d.ts +30 -0
  204. package/dist/src/core/text-rendering/Utils.js +84 -0
  205. package/dist/src/core/text-rendering/Utils.js.map +1 -0
  206. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  207. package/package.json +1 -1
  208. package/src/common/CommonTypes.ts +16 -0
  209. package/src/core/CoreNode.test.ts +49 -0
  210. package/src/core/CoreNode.ts +10 -0
  211. package/src/core/Stage.ts +3 -1
  212. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +6 -0
  213. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +5 -5
@@ -0,0 +1,10 @@
1
+ export * from '../src/core/renderers/canvas/CanvasShaderNode.js';
2
+ export { Rounded } from '../src/core/shaders/canvas/Rounded.js';
3
+ export { RoundedWithBorder } from '../src/core/shaders/canvas/RoundedWithBorder.js';
4
+ export { RoundedWithBorderAndShadow } from '../src/core/shaders/canvas/RoundedWithBorderAndShadow.js';
5
+ export { RoundedWithShadow } from '../src/core/shaders/canvas/RoundedWithShadow.js';
6
+ export { Border } from '../src/core/shaders/canvas/Border.js';
7
+ export { Shadow } from '../src/core/shaders/canvas/Shadow.js';
8
+ export { HolePunch } from '../src/core/shaders/canvas/HolePunch.js';
9
+ export { LinearGradient } from '../src/core/shaders/canvas/LinearGradient.js';
10
+ export { RadialGradient } from '../src/core/shaders/canvas/RadialGradient.js';
@@ -0,0 +1,27 @@
1
+ /*
2
+ * Copyright 2023 Comcast Cable Communications Management, LLC
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ *
15
+ * SPDX-License-Identifier: Apache-2.0
16
+ */
17
+ export * from '../src/core/renderers/canvas/CanvasShaderNode.js';
18
+ export { Rounded } from '../src/core/shaders/canvas/Rounded.js';
19
+ export { RoundedWithBorder } from '../src/core/shaders/canvas/RoundedWithBorder.js';
20
+ export { RoundedWithBorderAndShadow } from '../src/core/shaders/canvas/RoundedWithBorderAndShadow.js';
21
+ export { RoundedWithShadow } from '../src/core/shaders/canvas/RoundedWithShadow.js';
22
+ export { Border } from '../src/core/shaders/canvas/Border.js';
23
+ export { Shadow } from '../src/core/shaders/canvas/Shadow.js';
24
+ export { HolePunch } from '../src/core/shaders/canvas/HolePunch.js';
25
+ export { LinearGradient } from '../src/core/shaders/canvas/LinearGradient.js';
26
+ export { RadialGradient } from '../src/core/shaders/canvas/RadialGradient.js';
27
+ //# sourceMappingURL=canvas-shaders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-shaders.js","sourceRoot":"","sources":["../../exports/canvas-shaders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,kDAAkD,CAAC;AAEjE,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,0DAA0D,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC"}
@@ -0,0 +1,11 @@
1
+ export * from '../src/core/renderers/webgl/WebGlShaderNode.js';
2
+ export { Rounded } from '../src/core/shaders/webgl/Rounded.js';
3
+ export { RoundedWithBorder } from '../src/core/shaders/webgl/RoundedWithBorder.js';
4
+ export { RoundedWithBorderAndShadow } from '../src/core/shaders/webgl/RoundedWithBorderAndShadow.js';
5
+ export { RoundedWithShadow } from '../src/core/shaders/webgl/RoundedWithShadow.js';
6
+ export { Border } from '../src/core/shaders/webgl/Border.js';
7
+ export { Shadow } from '../src/core/shaders/webgl/Shadow.js';
8
+ export { HolePunch } from '../src/core/shaders/webgl/HolePunch.js';
9
+ export { LinearGradient } from '../src/core/shaders/webgl/LinearGradient.js';
10
+ export { RadialGradient } from '../src/core/shaders/webgl/RadialGradient.js';
11
+ export { Default } from '../src/core/shaders/webgl/Default.js';
@@ -0,0 +1,28 @@
1
+ /*
2
+ * Copyright 2023 Comcast Cable Communications Management, LLC
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ *
15
+ * SPDX-License-Identifier: Apache-2.0
16
+ */
17
+ export * from '../src/core/renderers/webgl/WebGlShaderNode.js';
18
+ export { Rounded } from '../src/core/shaders/webgl/Rounded.js';
19
+ export { RoundedWithBorder } from '../src/core/shaders/webgl/RoundedWithBorder.js';
20
+ export { RoundedWithBorderAndShadow } from '../src/core/shaders/webgl/RoundedWithBorderAndShadow.js';
21
+ export { RoundedWithShadow } from '../src/core/shaders/webgl/RoundedWithShadow.js';
22
+ export { Border } from '../src/core/shaders/webgl/Border.js';
23
+ export { Shadow } from '../src/core/shaders/webgl/Shadow.js';
24
+ export { HolePunch } from '../src/core/shaders/webgl/HolePunch.js';
25
+ export { LinearGradient } from '../src/core/shaders/webgl/LinearGradient.js';
26
+ export { RadialGradient } from '../src/core/shaders/webgl/RadialGradient.js';
27
+ export { Default } from '../src/core/shaders/webgl/Default.js';
28
+ //# sourceMappingURL=webgl-shaders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-shaders.js","sourceRoot":"","sources":["../../exports/webgl-shaders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,cAAc,gDAAgD,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC"}
@@ -52,6 +52,13 @@ export type NodeTextureFailedPayload = {
52
52
  export type NodeTextureFreedPayload = {
53
53
  type: 'texture';
54
54
  };
55
+ /**
56
+ * Payload for when node renderable status changes
57
+ */
58
+ export type NodeRenderablePayload = {
59
+ type: 'renderable';
60
+ isRenderable: boolean;
61
+ };
55
62
  /**
56
63
  * Combined type for all failed payloads
57
64
  */
@@ -64,6 +71,10 @@ export type NodeLoadedEventHandler = (target: any, payload: NodeLoadedPayload) =
64
71
  * Event handler for when the texture/text of a node has failed to load
65
72
  */
66
73
  export type NodeFailedEventHandler = (target: any, payload: NodeFailedPayload) => void;
74
+ /**
75
+ * Event handler for when the renderable status of a node changes
76
+ */
77
+ export type NodeRenderableEventHandler = (target: any, payload: NodeRenderablePayload) => void;
67
78
  export type NodeRenderStatePayload = {
68
79
  type: 'renderState';
69
80
  payload: CoreNodeRenderState;
@@ -0,0 +1,30 @@
1
+ import { type CoreNode } from './CoreNode.js';
2
+ import type { Coord } from './lib/utils.js';
3
+ export declare enum AutosizeUpdateType {
4
+ None = 0,
5
+ Filtered = 1,
6
+ All = 2
7
+ }
8
+ export declare class Autosizer {
9
+ node: CoreNode;
10
+ updateType: AutosizeUpdateType;
11
+ isEnabled: boolean;
12
+ lastWidth: number;
13
+ lastHeight: number;
14
+ lastHasChanged: boolean;
15
+ flaggedChildren: CoreNode[];
16
+ childMap: Map<number, CoreNode>;
17
+ minX: number;
18
+ minY: number;
19
+ maxX: number;
20
+ maxY: number;
21
+ corners: [Coord, Coord, Coord, Coord];
22
+ constructor(node: CoreNode);
23
+ enable(): void;
24
+ disable(): void;
25
+ attach(node: CoreNode): void;
26
+ detach(node: CoreNode): void;
27
+ patch(node: CoreNode): void;
28
+ setUpdateType(updateType: AutosizeUpdateType): void;
29
+ update(): void;
30
+ }
@@ -0,0 +1,159 @@
1
+ /*
2
+ * If not stated otherwise in this file or this component's LICENSE file the
3
+ * following copyright and licenses apply:
4
+ *
5
+ * Copyright 2023 Comcast Cable Communications Management, LLC.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ import { UpdateType } from './CoreNode.js';
20
+ export var AutosizeUpdateType;
21
+ (function (AutosizeUpdateType) {
22
+ AutosizeUpdateType[AutosizeUpdateType["None"] = 0] = "None";
23
+ AutosizeUpdateType[AutosizeUpdateType["Filtered"] = 1] = "Filtered";
24
+ AutosizeUpdateType[AutosizeUpdateType["All"] = 2] = "All";
25
+ })(AutosizeUpdateType || (AutosizeUpdateType = {}));
26
+ export class Autosizer {
27
+ node;
28
+ updateType = AutosizeUpdateType.All;
29
+ isEnabled = true;
30
+ lastWidth = 0;
31
+ lastHeight = 0;
32
+ lastHasChanged = false;
33
+ flaggedChildren = [];
34
+ childMap = new Map();
35
+ minX = Infinity;
36
+ minY = Infinity;
37
+ maxX = -Infinity;
38
+ maxY = -Infinity;
39
+ corners = [
40
+ { x: 0, y: 0 },
41
+ { x: 0, y: 0 },
42
+ { x: 0, y: 0 },
43
+ { x: 0, y: 0 },
44
+ ];
45
+ constructor(node) {
46
+ this.node = node;
47
+ }
48
+ enable() {
49
+ this.isEnabled = true;
50
+ }
51
+ disable() {
52
+ this.isEnabled = false;
53
+ }
54
+ attach(node) {
55
+ this.childMap.set(node.id, node);
56
+ node.parentAutosizer = this;
57
+ //bubble down to attach to grandchildren
58
+ if (node.children.length > 0 && node.autosizer === null) {
59
+ const children = node.children;
60
+ for (let i = 0; i < children.length; i++) {
61
+ this.attach(children[i]);
62
+ }
63
+ }
64
+ }
65
+ detach(node) {
66
+ if (this.childMap.delete(node.id) === true) {
67
+ node.parentAutosizer = null;
68
+ if (node.children.length > 0 && node.autosizer === null) {
69
+ const children = node.children;
70
+ for (let i = 0; i < children.length; i++) {
71
+ this.detach(children[i]);
72
+ }
73
+ }
74
+ else {
75
+ this.setUpdateType(AutosizeUpdateType.All);
76
+ }
77
+ }
78
+ }
79
+ patch(node) {
80
+ this.flaggedChildren.push(node);
81
+ const entry = this.childMap.get(node.id);
82
+ this.setUpdateType(AutosizeUpdateType.Filtered);
83
+ if (entry === undefined) {
84
+ this.attach(node);
85
+ }
86
+ }
87
+ setUpdateType(updateType) {
88
+ this.updateType = updateType;
89
+ this.node.setUpdateType(UpdateType.Autosize);
90
+ }
91
+ update() {
92
+ const node = this.node;
93
+ if (node.texture !== null && node.texture.dimensions !== null) {
94
+ node.w = node.texture.dimensions.w;
95
+ node.h = node.texture.dimensions.h;
96
+ return;
97
+ }
98
+ let filtered = this.updateType === AutosizeUpdateType.Filtered ? this.flaggedChildren : Array.from(this.childMap.values());
99
+ if (filtered.length === 0) {
100
+ return;
101
+ }
102
+ const corners = this.corners;
103
+ let minX = this.minX;
104
+ let minY = this.minY;
105
+ let maxX = this.maxX;
106
+ let maxY = this.maxY;
107
+ for (let i = 0; i < filtered.length; i++) {
108
+ const child = filtered[i];
109
+ if (child.isRenderable === false || child.localTransform === undefined) {
110
+ continue;
111
+ }
112
+ const { tx, ty, ta, tb, tc, td } = child.localTransform;
113
+ const w = child.props.w;
114
+ const h = child.props.h;
115
+ const childMinX = tx;
116
+ const childMaxX = tx + w * ta;
117
+ const childMinY = ty;
118
+ const childMaxY = ty + h * td;
119
+ corners[0].x = childMinX;
120
+ corners[0].y = childMinY;
121
+ corners[1].x = childMaxX;
122
+ //no rotation/scale
123
+ if (tb === 0 && tc === 0) {
124
+ corners[1].y = childMinY;
125
+ corners[2].x = childMaxX;
126
+ corners[2].y = childMaxY;
127
+ corners[3].x = childMinX;
128
+ corners[3].y = childMaxY;
129
+ }
130
+ else {
131
+ corners[1].y = tx + w * tc;
132
+ corners[2].x = tx + w * ta + h * tb;
133
+ corners[2].y = ty + w * tc + h * td;
134
+ corners[3].x = tx + h * tb;
135
+ corners[3].y = ty + h * td;
136
+ }
137
+ for (let j = 0; j < 4; j++) {
138
+ const corner = corners[j];
139
+ if (corner.x < minX)
140
+ minX = corner.x;
141
+ if (corner.y < minY)
142
+ minY = corner.y;
143
+ if (corner.x > maxX)
144
+ maxX = corner.x;
145
+ if (corner.y > maxY)
146
+ maxY = corner.y;
147
+ }
148
+ }
149
+ this.flaggedChildren.length = 0;
150
+ this.updateType = AutosizeUpdateType.None;
151
+ const newWidth = maxX > 0 ? maxX : 0;
152
+ const newHeight = maxY > 0 ? maxY : 0;
153
+ this.lastWidth = newWidth;
154
+ this.lastHeight = newHeight;
155
+ this.node.w = newWidth;
156
+ this.node.h = newHeight;
157
+ }
158
+ }
159
+ //# sourceMappingURL=AutosizeManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutosizeManager.js","sourceRoot":"","sources":["../../../src/core/AutosizeManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { type CoreNode } from './CoreNode.js';
2
+ import type { Coord } from './lib/utils.js';
3
+ export declare enum AutosizeUpdateType {
4
+ None = 0,
5
+ Filtered = 1,
6
+ All = 2
7
+ }
8
+ export declare class Autosizer {
9
+ node: CoreNode;
10
+ id: number;
11
+ updateType: AutosizeUpdateType;
12
+ lastWidth: number;
13
+ lastHeight: number;
14
+ lastHasChanged: boolean;
15
+ flaggedChildren: CoreNode[];
16
+ childMap: Map<number, CoreNode>;
17
+ minX: number;
18
+ minY: number;
19
+ maxX: number;
20
+ maxY: number;
21
+ corners: [Coord, Coord, Coord, Coord];
22
+ constructor(node: CoreNode);
23
+ attach(node: CoreNode): void;
24
+ detach(node: CoreNode): void;
25
+ patch(node: CoreNode): void;
26
+ setUpdateType(updateType: AutosizeUpdateType): void;
27
+ update(carryOver?: boolean): void;
28
+ destroy(): void;
29
+ }
@@ -0,0 +1,177 @@
1
+ /*
2
+ * If not stated otherwise in this file or this component's LICENSE file the
3
+ * following copyright and licenses apply:
4
+ *
5
+ * Copyright 2023 Comcast Cable Communications Management, LLC.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ import { UpdateType } from './CoreNode.js';
20
+ export var AutosizeUpdateType;
21
+ (function (AutosizeUpdateType) {
22
+ AutosizeUpdateType[AutosizeUpdateType["None"] = 0] = "None";
23
+ AutosizeUpdateType[AutosizeUpdateType["Filtered"] = 1] = "Filtered";
24
+ AutosizeUpdateType[AutosizeUpdateType["All"] = 2] = "All";
25
+ })(AutosizeUpdateType || (AutosizeUpdateType = {}));
26
+ const applyDimensions = (node, carryOver, w, h) => {
27
+ if (carryOver === true) {
28
+ node.w = w;
29
+ node.h = h;
30
+ return;
31
+ }
32
+ node.props.w = w;
33
+ node.props.h = h;
34
+ };
35
+ let autosizerId = 0;
36
+ export class Autosizer {
37
+ node;
38
+ id = autosizerId++;
39
+ updateType = AutosizeUpdateType.All;
40
+ lastWidth = 0;
41
+ lastHeight = 0;
42
+ lastHasChanged = false;
43
+ flaggedChildren = [];
44
+ childMap = new Map();
45
+ minX = Infinity;
46
+ minY = Infinity;
47
+ maxX = -Infinity;
48
+ maxY = -Infinity;
49
+ corners = [
50
+ { x: 0, y: 0 },
51
+ { x: 0, y: 0 },
52
+ { x: 0, y: 0 },
53
+ { x: 0, y: 0 },
54
+ ];
55
+ constructor(node) {
56
+ this.node = node;
57
+ }
58
+ attach(node) {
59
+ this.childMap.set(node.id, node);
60
+ node.parentAutosizer = this;
61
+ //bubble down to attach to grandchildren
62
+ if (node.children.length > 0 && node.autosizer === null) {
63
+ const children = node.children;
64
+ for (let i = 0; i < children.length; i++) {
65
+ this.attach(children[i]);
66
+ }
67
+ }
68
+ }
69
+ detach(node) {
70
+ if (this.childMap.delete(node.id) === true) {
71
+ node.parentAutosizer = null;
72
+ if (node.children.length > 0 && node.autosizer === null) {
73
+ const children = node.children;
74
+ for (let i = 0; i < children.length; i++) {
75
+ this.detach(children[i]);
76
+ }
77
+ }
78
+ //detached a child, need full update
79
+ this.setUpdateType(AutosizeUpdateType.All);
80
+ }
81
+ }
82
+ patch(node) {
83
+ const entry = this.childMap.get(node.id);
84
+ if (entry === undefined) {
85
+ return;
86
+ }
87
+ this.flaggedChildren.push(node);
88
+ this.setUpdateType(AutosizeUpdateType.Filtered);
89
+ }
90
+ setUpdateType(updateType) {
91
+ this.updateType |= updateType;
92
+ queueMicrotask(() => {
93
+ this.node.setUpdateType(UpdateType.Autosize);
94
+ });
95
+ }
96
+ update(carryOver = false) {
97
+ const node = this.node;
98
+ if (node.texture !== null && node.texture.dimensions !== null) {
99
+ const { w, h } = node.texture.dimensions;
100
+ applyDimensions(node, carryOver, w, h);
101
+ this.lastWidth = w;
102
+ this.lastHeight = h;
103
+ this.updateType = AutosizeUpdateType.None;
104
+ return;
105
+ }
106
+ let filtered = this.updateType === AutosizeUpdateType.Filtered
107
+ ? this.flaggedChildren
108
+ : Array.from(this.childMap.values());
109
+ if (filtered.length === 0) {
110
+ return;
111
+ }
112
+ const corners = this.corners;
113
+ let minX = this.minX;
114
+ let minY = this.minY;
115
+ let maxX = this.maxX;
116
+ let maxY = this.maxY;
117
+ for (let i = 0; i < filtered.length; i++) {
118
+ const child = filtered[i];
119
+ if (child.isRenderable === false || child.localTransform === undefined) {
120
+ continue;
121
+ }
122
+ const { tx, ty, ta, tb, tc, td } = child.localTransform;
123
+ const w = child.props.w;
124
+ const h = child.props.h;
125
+ const childMinX = tx;
126
+ const childMaxX = tx + w * ta;
127
+ const childMinY = ty;
128
+ const childMaxY = ty + h * td;
129
+ corners[0].x = childMinX;
130
+ corners[0].y = childMinY;
131
+ corners[1].x = childMaxX;
132
+ //no rotation/scale
133
+ if (tb === 0 && tc === 0) {
134
+ corners[1].y = childMinY;
135
+ corners[2].x = childMaxX;
136
+ corners[2].y = childMaxY;
137
+ corners[3].x = childMinX;
138
+ corners[3].y = childMaxY;
139
+ }
140
+ else {
141
+ corners[1].y = tx + w * tc;
142
+ corners[2].x = tx + w * ta + h * tb;
143
+ corners[2].y = ty + w * tc + h * td;
144
+ corners[3].x = tx + h * tb;
145
+ corners[3].y = ty + h * td;
146
+ }
147
+ for (let j = 0; j < 4; j++) {
148
+ const corner = corners[j];
149
+ if (corner.x < minX)
150
+ minX = corner.x;
151
+ if (corner.y < minY)
152
+ minY = corner.y;
153
+ if (corner.x > maxX)
154
+ maxX = corner.x;
155
+ if (corner.y > maxY)
156
+ maxY = corner.y;
157
+ }
158
+ }
159
+ this.flaggedChildren.length = 0;
160
+ this.updateType = AutosizeUpdateType.None;
161
+ const newWidth = maxX > 0 ? maxX : 0;
162
+ const newHeight = maxY > 0 ? maxY : 0;
163
+ applyDimensions(node, carryOver, newWidth, newHeight);
164
+ this.lastWidth = newWidth;
165
+ this.lastHeight = newHeight;
166
+ }
167
+ destroy() {
168
+ if (this.childMap.size > 0) {
169
+ for (const child of this.childMap.values()) {
170
+ child.parentAutosizer = null;
171
+ }
172
+ }
173
+ this.childMap.clear();
174
+ this.flaggedChildren.length = 0;
175
+ }
176
+ }
177
+ //# sourceMappingURL=Autosizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Autosizer.js","sourceRoot":"","sources":["../../../src/core/Autosizer.ts"],"names":[],"mappings":"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"}
@@ -831,7 +831,7 @@ export declare class CoreNode extends EventEmitter {
831
831
  get src(): string | null;
832
832
  set src(imageUrl: string | null);
833
833
  set imageType(type: 'regular' | 'compressed' | 'svg' | null);
834
- get imageType(): 'regular' | 'compressed' | 'svg' | null;
834
+ get imageType(): "regular" | "compressed" | "svg" | null;
835
835
  get srcHeight(): number | undefined;
836
836
  set srcHeight(value: number);
837
837
  get srcWidth(): number | undefined;
@@ -764,7 +764,15 @@ export class CoreNode extends EventEmitter {
764
764
  * @param isRenderable - The new renderable state
765
765
  */
766
766
  setRenderable(isRenderable) {
767
+ const previousIsRenderable = this.isRenderable;
767
768
  this.isRenderable = isRenderable;
769
+ // Emit event if renderable status has changed
770
+ if (previousIsRenderable !== isRenderable) {
771
+ this.emit('renderable', {
772
+ type: 'renderable',
773
+ isRenderable,
774
+ });
775
+ }
768
776
  }
769
777
  /**
770
778
  * Changes the renderable state of the node.