@lightningjs/renderer 2.20.3 → 2.20.4

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 (182) 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/core/Autosizer.d.ts +35 -0
  8. package/dist/src/core/Autosizer.js +198 -0
  9. package/dist/src/core/Autosizer.js.map +1 -0
  10. package/dist/src/core/lib/collectionUtils.d.ts +5 -0
  11. package/dist/src/core/lib/collectionUtils.js +100 -0
  12. package/dist/src/core/lib/collectionUtils.js.map +1 -0
  13. package/dist/src/core/lib/colorCache.d.ts +1 -0
  14. package/dist/src/core/lib/colorCache.js +19 -0
  15. package/dist/src/core/lib/colorCache.js.map +1 -0
  16. package/dist/src/core/lib/colorParser.d.ts +21 -0
  17. package/dist/src/core/lib/colorParser.js +72 -0
  18. package/dist/src/core/lib/colorParser.js.map +1 -0
  19. package/dist/src/core/platforms/Platform.d.ts +42 -0
  20. package/dist/src/core/platforms/Platform.js +22 -0
  21. package/dist/src/core/platforms/Platform.js.map +1 -0
  22. package/dist/src/core/platforms/web/WebPlatform.d.ts +10 -0
  23. package/dist/src/core/platforms/web/WebPlatform.js +87 -0
  24. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
  25. package/dist/src/core/renderers/CoreShaderNode.d.ts +65 -0
  26. package/dist/src/core/renderers/CoreShaderNode.js +115 -0
  27. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -0
  28. package/dist/src/core/renderers/CoreShaderProgram.d.ts +4 -0
  29. package/dist/src/core/renderers/CoreShaderProgram.js +20 -0
  30. package/dist/src/core/renderers/CoreShaderProgram.js.map +1 -0
  31. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +35 -0
  32. package/dist/src/core/renderers/canvas/CanvasRenderer.js +185 -0
  33. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -0
  34. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +21 -0
  35. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +58 -0
  36. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -0
  37. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +17 -0
  38. package/dist/src/core/renderers/canvas/CanvasTexture.js +128 -0
  39. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -0
  40. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +1 -1
  41. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  42. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +14 -0
  43. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +63 -0
  44. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -0
  45. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +22 -0
  46. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +67 -0
  47. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -0
  48. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +67 -0
  49. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +273 -0
  50. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -0
  51. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +45 -0
  52. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +127 -0
  53. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -0
  54. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +136 -0
  55. package/dist/src/core/renderers/webgl/WebGlRenderer.js +576 -0
  56. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -0
  57. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +222 -0
  58. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +331 -0
  59. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -0
  60. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +38 -0
  61. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +230 -0
  62. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -0
  63. package/dist/src/core/shaders/canvas/Border.d.ts +9 -0
  64. package/dist/src/core/shaders/canvas/Border.js +57 -0
  65. package/dist/src/core/shaders/canvas/Border.js.map +1 -0
  66. package/dist/src/core/shaders/canvas/HolePunch.d.ts +7 -0
  67. package/dist/src/core/shaders/canvas/HolePunch.js +38 -0
  68. package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -0
  69. package/dist/src/core/shaders/canvas/LinearGradient.d.ts +10 -0
  70. package/dist/src/core/shaders/canvas/LinearGradient.js +48 -0
  71. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -0
  72. package/dist/src/core/shaders/canvas/RadialGradient.d.ts +11 -0
  73. package/dist/src/core/shaders/canvas/RadialGradient.js +70 -0
  74. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -0
  75. package/dist/src/core/shaders/canvas/Rounded.d.ts +7 -0
  76. package/dist/src/core/shaders/canvas/Rounded.js +33 -0
  77. package/dist/src/core/shaders/canvas/Rounded.js.map +1 -0
  78. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +7 -0
  79. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +43 -0
  80. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -0
  81. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +8 -0
  82. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +41 -0
  83. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -0
  84. package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +7 -0
  85. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +40 -0
  86. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -0
  87. package/dist/src/core/shaders/canvas/Shadow.d.ts +8 -0
  88. package/dist/src/core/shaders/canvas/Shadow.js +31 -0
  89. package/dist/src/core/shaders/canvas/Shadow.js.map +1 -0
  90. package/dist/src/core/shaders/canvas/utils/render.d.ts +5 -0
  91. package/dist/src/core/shaders/canvas/utils/render.js +84 -0
  92. package/dist/src/core/shaders/canvas/utils/render.js.map +1 -0
  93. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +37 -0
  94. package/dist/src/core/shaders/templates/BorderTemplate.js +73 -0
  95. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -0
  96. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +46 -0
  97. package/dist/src/core/shaders/templates/HolePunchTemplate.js +35 -0
  98. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -0
  99. package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +23 -0
  100. package/dist/src/core/shaders/templates/LinearGradientTemplate.js +47 -0
  101. package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +1 -0
  102. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +33 -0
  103. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +49 -0
  104. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -0
  105. package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +29 -0
  106. package/dist/src/core/shaders/templates/RoundedTemplate.js +67 -0
  107. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -0
  108. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +7 -0
  109. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +24 -0
  110. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -0
  111. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +6 -0
  112. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +23 -0
  113. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -0
  114. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +6 -0
  115. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +23 -0
  116. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -0
  117. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +34 -0
  118. package/dist/src/core/shaders/templates/ShadowTemplate.js +66 -0
  119. package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -0
  120. package/dist/src/core/shaders/utils.d.ts +5 -0
  121. package/dist/src/core/shaders/utils.js +41 -0
  122. package/dist/src/core/shaders/utils.js.map +1 -0
  123. package/dist/src/core/shaders/webgl/Border.d.ts +3 -0
  124. package/dist/src/core/shaders/webgl/Border.js +110 -0
  125. package/dist/src/core/shaders/webgl/Border.js.map +1 -0
  126. package/dist/src/core/shaders/webgl/Default.d.ts +2 -0
  127. package/dist/src/core/shaders/webgl/Default.js +85 -0
  128. package/dist/src/core/shaders/webgl/Default.js.map +1 -0
  129. package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +2 -0
  130. package/dist/src/core/shaders/webgl/DefaultBatched.js +104 -0
  131. package/dist/src/core/shaders/webgl/DefaultBatched.js.map +1 -0
  132. package/dist/src/core/shaders/webgl/HolePunch.d.ts +3 -0
  133. package/dist/src/core/shaders/webgl/HolePunch.js +65 -0
  134. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -0
  135. package/dist/src/core/shaders/webgl/LinearGradient.d.ts +3 -0
  136. package/dist/src/core/shaders/webgl/LinearGradient.js +100 -0
  137. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -0
  138. package/dist/src/core/shaders/webgl/RadialGradient.d.ts +3 -0
  139. package/dist/src/core/shaders/webgl/RadialGradient.js +97 -0
  140. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -0
  141. package/dist/src/core/shaders/webgl/Rounded.d.ts +7 -0
  142. package/dist/src/core/shaders/webgl/Rounded.js +88 -0
  143. package/dist/src/core/shaders/webgl/Rounded.js.map +1 -0
  144. package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +3 -0
  145. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +141 -0
  146. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -0
  147. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +3 -0
  148. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +163 -0
  149. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -0
  150. package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +3 -0
  151. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +85 -0
  152. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -0
  153. package/dist/src/core/shaders/webgl/SdfShader.d.ts +30 -0
  154. package/dist/src/core/shaders/webgl/SdfShader.js +106 -0
  155. package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -0
  156. package/dist/src/core/shaders/webgl/Shadow.d.ts +3 -0
  157. package/dist/src/core/shaders/webgl/Shadow.js +110 -0
  158. package/dist/src/core/shaders/webgl/Shadow.js.map +1 -0
  159. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +59 -0
  160. package/dist/src/core/text-rendering/CanvasFontHandler.js +224 -0
  161. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
  162. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +17 -0
  163. package/dist/src/core/text-rendering/CanvasTextRenderer.js +157 -0
  164. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
  165. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +182 -0
  166. package/dist/src/core/text-rendering/SdfFontHandler.js +391 -0
  167. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
  168. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +17 -0
  169. package/dist/src/core/text-rendering/SdfTextRenderer.js +311 -0
  170. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
  171. package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +18 -0
  172. package/dist/src/core/text-rendering/TextLayoutEngine.js +380 -0
  173. package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -0
  174. package/dist/src/core/text-rendering/TextRenderer.d.ts +383 -0
  175. package/dist/src/core/text-rendering/TextRenderer.js +20 -0
  176. package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
  177. package/dist/src/core/text-rendering/Utils.d.ts +30 -0
  178. package/dist/src/core/text-rendering/Utils.js +84 -0
  179. package/dist/src/core/text-rendering/Utils.js.map +1 -0
  180. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  181. package/package.json +1 -1
  182. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +1 -2
@@ -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"}
@@ -0,0 +1,35 @@
1
+ import { type CoreNode } from './CoreNode.js';
2
+ import type { Coord } from './lib/utils.js';
3
+ export declare enum AutosizeMode {
4
+ Children = 0,
5
+ Texture = 1
6
+ }
7
+ export declare enum AutosizeUpdateType {
8
+ None = 0,
9
+ Filtered = 1,
10
+ All = 2
11
+ }
12
+ export declare class Autosizer {
13
+ node: CoreNode;
14
+ id: number;
15
+ mode: AutosizeMode;
16
+ updateType: AutosizeUpdateType;
17
+ lastWidth: number;
18
+ lastHeight: number;
19
+ lastHasChanged: boolean;
20
+ flaggedChildren: number[];
21
+ childMap: Map<number, CoreNode>;
22
+ minX: number;
23
+ minY: number;
24
+ maxX: number;
25
+ maxY: number;
26
+ corners: [Coord, Coord, Coord, Coord];
27
+ constructor(node: CoreNode);
28
+ attach(node: CoreNode): void;
29
+ detach(node: CoreNode): void;
30
+ patch(id: number): void;
31
+ setUpdateType(updateType: AutosizeUpdateType): void;
32
+ setMode(mode: AutosizeMode): void;
33
+ update(): void;
34
+ destroy(): void;
35
+ }
@@ -0,0 +1,198 @@
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 AutosizeMode;
21
+ (function (AutosizeMode) {
22
+ AutosizeMode[AutosizeMode["Children"] = 0] = "Children";
23
+ AutosizeMode[AutosizeMode["Texture"] = 1] = "Texture";
24
+ })(AutosizeMode || (AutosizeMode = {}));
25
+ export var AutosizeUpdateType;
26
+ (function (AutosizeUpdateType) {
27
+ AutosizeUpdateType[AutosizeUpdateType["None"] = 0] = "None";
28
+ AutosizeUpdateType[AutosizeUpdateType["Filtered"] = 1] = "Filtered";
29
+ AutosizeUpdateType[AutosizeUpdateType["All"] = 2] = "All";
30
+ })(AutosizeUpdateType || (AutosizeUpdateType = {}));
31
+ const applyDimensions = (node, w, h) => {
32
+ node.props.w = w;
33
+ node.props.h = h;
34
+ node.setUpdateType(UpdateType.Local);
35
+ };
36
+ const getFilteredChildren = (children, childMap) => {
37
+ const filtered = [];
38
+ while (children.length > 0) {
39
+ const id = children.pop();
40
+ const child = childMap.get(id);
41
+ filtered.push(child);
42
+ }
43
+ return filtered;
44
+ };
45
+ let autosizerId = 0;
46
+ export class Autosizer {
47
+ node;
48
+ id = autosizerId++;
49
+ mode = AutosizeMode.Children;
50
+ updateType = AutosizeUpdateType.All;
51
+ lastWidth = 0;
52
+ lastHeight = 0;
53
+ lastHasChanged = false;
54
+ flaggedChildren = [];
55
+ childMap = new Map();
56
+ minX = Infinity;
57
+ minY = Infinity;
58
+ maxX = -Infinity;
59
+ maxY = -Infinity;
60
+ corners = [
61
+ { x: 0, y: 0 },
62
+ { x: 0, y: 0 },
63
+ { x: 0, y: 0 },
64
+ { x: 0, y: 0 },
65
+ ];
66
+ constructor(node) {
67
+ this.node = node;
68
+ if (node.texture !== null) {
69
+ this.mode = AutosizeMode.Texture;
70
+ }
71
+ }
72
+ attach(node) {
73
+ this.childMap.set(node.id, node);
74
+ node.parentAutosizer = this;
75
+ //bubble down to attach to grandchildren
76
+ if (node.children.length > 0 && node.autosizer === null) {
77
+ const children = node.children;
78
+ for (let i = 0; i < children.length; i++) {
79
+ this.attach(children[i]);
80
+ }
81
+ }
82
+ }
83
+ detach(node) {
84
+ if (this.childMap.delete(node.id) === true) {
85
+ node.parentAutosizer = null;
86
+ if (node.children.length > 0 && node.autosizer === null) {
87
+ const children = node.children;
88
+ for (let i = 0; i < children.length; i++) {
89
+ this.detach(children[i]);
90
+ }
91
+ }
92
+ //detached a child, need full update
93
+ this.setUpdateType(AutosizeUpdateType.All);
94
+ }
95
+ }
96
+ patch(id) {
97
+ const entry = this.childMap.get(id);
98
+ if (entry === undefined) {
99
+ return;
100
+ }
101
+ this.flaggedChildren.push(id);
102
+ this.setUpdateType(AutosizeUpdateType.Filtered);
103
+ }
104
+ setUpdateType(updateType) {
105
+ this.updateType |= updateType;
106
+ if (this.node.destroyed === false) {
107
+ this.node.setUpdateType(UpdateType.Autosize);
108
+ }
109
+ }
110
+ setMode(mode) {
111
+ this.mode = mode;
112
+ this.setUpdateType(AutosizeUpdateType.All);
113
+ }
114
+ update() {
115
+ const node = this.node;
116
+ if (this.mode === AutosizeMode.Texture &&
117
+ node.texture !== null &&
118
+ node.texture.dimensions !== null) {
119
+ const { w, h } = node.texture.dimensions;
120
+ if (w !== node.w || h !== node.h) {
121
+ applyDimensions(node, w, h);
122
+ }
123
+ this.lastWidth = w;
124
+ this.lastHeight = h;
125
+ this.updateType = AutosizeUpdateType.None;
126
+ return;
127
+ }
128
+ let filtered = this.updateType === AutosizeUpdateType.Filtered
129
+ ? getFilteredChildren(this.flaggedChildren, this.childMap)
130
+ : Array.from(this.childMap.values());
131
+ if (filtered.length === 0) {
132
+ return;
133
+ }
134
+ const corners = this.corners;
135
+ let minX = this.minX;
136
+ let minY = this.minY;
137
+ let maxX = this.maxX;
138
+ let maxY = this.maxY;
139
+ for (let i = 0; i < filtered.length; i++) {
140
+ const child = filtered[i];
141
+ if (child.isRenderable === false || child.localTransform === undefined) {
142
+ continue;
143
+ }
144
+ const { tx, ty, ta, tb, tc, td } = child.localTransform;
145
+ const w = child.props.w;
146
+ const h = child.props.h;
147
+ const childMinX = tx;
148
+ const childMaxX = tx + w * ta;
149
+ const childMinY = ty;
150
+ const childMaxY = ty + h * td;
151
+ corners[0].x = childMinX;
152
+ corners[0].y = childMinY;
153
+ corners[1].x = childMaxX;
154
+ //no rotation/scale
155
+ if (tb === 0 && tc === 0) {
156
+ corners[1].y = childMinY;
157
+ corners[2].x = childMaxX;
158
+ corners[2].y = childMaxY;
159
+ corners[3].x = childMinX;
160
+ corners[3].y = childMaxY;
161
+ }
162
+ else {
163
+ corners[1].y = tx + w * tc;
164
+ corners[2].x = tx + w * ta + h * tb;
165
+ corners[2].y = ty + w * tc + h * td;
166
+ corners[3].x = tx + h * tb;
167
+ corners[3].y = ty + h * td;
168
+ }
169
+ for (let j = 0; j < 4; j++) {
170
+ const corner = corners[j];
171
+ if (corner.x < minX)
172
+ minX = corner.x;
173
+ if (corner.y < minY)
174
+ minY = corner.y;
175
+ if (corner.x > maxX)
176
+ maxX = corner.x;
177
+ if (corner.y > maxY)
178
+ maxY = corner.y;
179
+ }
180
+ }
181
+ this.updateType = AutosizeUpdateType.None;
182
+ const newWidth = maxX > 0 ? maxX : 0;
183
+ const newHeight = maxY > 0 ? maxY : 0;
184
+ applyDimensions(node, newWidth, newHeight);
185
+ this.lastWidth = newWidth;
186
+ this.lastHeight = newHeight;
187
+ }
188
+ destroy() {
189
+ if (this.childMap.size > 0) {
190
+ for (const child of this.childMap.values()) {
191
+ child.parentAutosizer = null;
192
+ }
193
+ }
194
+ this.childMap.clear();
195
+ this.flaggedChildren.length = 0;
196
+ }
197
+ }
198
+ //# 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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"}
@@ -0,0 +1,5 @@
1
+ import type { CoreNode } from '../CoreNode.js';
2
+ export declare const bucketSortByZIndex: (nodes: CoreNode[], min: number) => void;
3
+ export declare const incrementalRepositionByZIndex: (changedNodes: CoreNode[], nodes: CoreNode[]) => void;
4
+ export declare const findChildIndexById: (node: CoreNode, children: CoreNode[]) => number;
5
+ export declare const removeChild: (node: CoreNode, children: CoreNode[]) => void;
@@ -0,0 +1,100 @@
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
+ //Bucket sort implementation for sorting CoreNode arrays by zIndex
20
+ export const bucketSortByZIndex = (nodes, min) => {
21
+ const buckets = [];
22
+ const bucketIndices = [];
23
+ //distribute nodes into buckets
24
+ for (let i = 0; i < nodes.length; i++) {
25
+ const node = nodes[i];
26
+ const index = node.props.zIndex - min;
27
+ //create bucket if it doesn't exist
28
+ if (buckets[index] === undefined) {
29
+ buckets[index] = [];
30
+ bucketIndices.push(index);
31
+ }
32
+ buckets[index].push(node);
33
+ }
34
+ //sort each bucket using insertion sort
35
+ for (let i = 1; i < bucketIndices.length; i++) {
36
+ const key = bucketIndices[i];
37
+ let j = i - 1;
38
+ while (j >= 0 && bucketIndices[j] > key) {
39
+ bucketIndices[j + 1] = bucketIndices[j];
40
+ j--;
41
+ }
42
+ bucketIndices[j + 1] = key;
43
+ }
44
+ //flatten buckets
45
+ let idx = 0;
46
+ for (let i = 0; i < bucketIndices.length; i++) {
47
+ const bucket = buckets[bucketIndices[i]];
48
+ for (let j = 0; j < bucket.length; j++) {
49
+ nodes[idx++] = bucket[j];
50
+ }
51
+ }
52
+ //clean up
53
+ buckets.length = 0;
54
+ bucketIndices.length = 0;
55
+ };
56
+ export const incrementalRepositionByZIndex = (changedNodes, nodes) => {
57
+ for (let i = 0; i < changedNodes.length; i++) {
58
+ const node = changedNodes[i];
59
+ const currentIndex = findChildIndexById(node, nodes);
60
+ if (currentIndex === -1)
61
+ continue;
62
+ const targetZIndex = node.props.zIndex;
63
+ //binary search for correct insertion position
64
+ let left = 0;
65
+ let right = nodes.length;
66
+ while (left < right) {
67
+ const mid = (left + right) >>> 1;
68
+ if (nodes[mid].props.zIndex <= targetZIndex) {
69
+ left = mid + 1;
70
+ }
71
+ else {
72
+ right = mid;
73
+ }
74
+ }
75
+ //adjust target position if it's after the current position
76
+ const targetIndex = left > currentIndex ? left - 1 : left;
77
+ //only reposition if target is different from current
78
+ if (targetIndex !== currentIndex) {
79
+ nodes.splice(currentIndex, 1);
80
+ nodes.splice(targetIndex, 0, node);
81
+ }
82
+ }
83
+ };
84
+ export const findChildIndexById = (node, children) => {
85
+ for (let i = 0; i < children.length; i++) {
86
+ const child = children[i];
87
+ // @ts-ignore - accessing protected property
88
+ if (child._id === node._id) {
89
+ return i;
90
+ }
91
+ }
92
+ return -1;
93
+ };
94
+ export const removeChild = (node, children) => {
95
+ const index = findChildIndexById(node, children);
96
+ if (index !== -1) {
97
+ children.splice(index, 1);
98
+ }
99
+ };
100
+ //# sourceMappingURL=collectionUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectionUtils.js","sourceRoot":"","sources":["../../../../src/core/lib/collectionUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function normalizeCanvasColor(color: number, isRGBA?: boolean): string;
@@ -0,0 +1,19 @@
1
+ import { parseToAbgrString, parseToRgbaString } from './colorParser.js';
2
+ const parsedArgbColors = new Map();
3
+ const parsedRgbaColors = new Map();
4
+ export function normalizeCanvasColor(color, isRGBA = false) {
5
+ let targetCache = isRGBA === true ? parsedRgbaColors : parsedArgbColors;
6
+ let out = targetCache.get(color);
7
+ if (out !== undefined) {
8
+ return out;
9
+ }
10
+ if (isRGBA === true) {
11
+ out = parseToRgbaString(color);
12
+ }
13
+ else {
14
+ out = parseToAbgrString(color);
15
+ }
16
+ targetCache.set(color, out);
17
+ return out;
18
+ }
19
+ //# sourceMappingURL=colorCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorCache.js","sourceRoot":"","sources":["../../../../src/core/lib/colorCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,gBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC;AACxD,MAAM,gBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC;AAExD,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,SAAkB,KAAK;IACzE,IAAI,WAAW,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACxE,IAAI,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,21 @@
1
+ export interface IParsedColor {
2
+ isWhite: boolean;
3
+ a: number;
4
+ r: number;
5
+ g: number;
6
+ b: number;
7
+ }
8
+ /**
9
+ * Extract color components
10
+ */
11
+ export declare function parseColor(abgr: number): IParsedColor;
12
+ export declare function parseToAbgrString(abgr: number): string;
13
+ export declare function parseToRgbaString(rgba: number): string;
14
+ /**
15
+ * Extract color components
16
+ */
17
+ export declare function parseColorRgba(rgba: number): IParsedColor;
18
+ /**
19
+ * Format a parsed color into a rgba CSS color
20
+ */
21
+ export declare function formatRgba({ a, r, g, b }: IParsedColor): string;
@@ -0,0 +1,72 @@
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
+ const WHITE = {
20
+ isWhite: true,
21
+ a: 1,
22
+ r: 0xff,
23
+ g: 0xff,
24
+ b: 0xff,
25
+ };
26
+ /**
27
+ * Extract color components
28
+ */
29
+ export function parseColor(abgr) {
30
+ if (abgr === 0xffffffff) {
31
+ return WHITE;
32
+ }
33
+ const a = ((abgr >>> 24) & 0xff) / 255;
34
+ const b = (abgr >>> 16) & 0xff & 0xff;
35
+ const g = (abgr >>> 8) & 0xff & 0xff;
36
+ const r = abgr & 0xff & 0xff;
37
+ return { isWhite: false, a, r, g, b };
38
+ }
39
+ export function parseToAbgrString(abgr) {
40
+ const a = ((abgr >>> 24) & 0xff) / 255;
41
+ const b = (abgr >>> 16) & 0xff & 0xff;
42
+ const g = (abgr >>> 8) & 0xff & 0xff;
43
+ const r = abgr & 0xff & 0xff;
44
+ return `rgba(${r},${g},${b},${a})`;
45
+ }
46
+ export function parseToRgbaString(rgba) {
47
+ const r = (rgba >>> 24) & 0xff;
48
+ const g = (rgba >>> 16) & 0xff & 0xff;
49
+ const b = (rgba >>> 8) & 0xff & 0xff;
50
+ const a = (rgba & 0xff & 0xff) / 255;
51
+ return `rgba(${r},${g},${b},${a})`;
52
+ }
53
+ /**
54
+ * Extract color components
55
+ */
56
+ export function parseColorRgba(rgba) {
57
+ if (rgba === 0xffffffff) {
58
+ return WHITE;
59
+ }
60
+ const r = (rgba >>> 24) & 0xff;
61
+ const g = (rgba >>> 16) & 0xff & 0xff;
62
+ const b = (rgba >>> 8) & 0xff & 0xff;
63
+ const a = (rgba & 0xff & 0xff) / 255;
64
+ return { isWhite: false, r, g, b, a };
65
+ }
66
+ /**
67
+ * Format a parsed color into a rgba CSS color
68
+ */
69
+ export function formatRgba({ a, r, g, b }) {
70
+ return `rgba(${r},${g},${b},${a})`;
71
+ }
72
+ //# sourceMappingURL=colorParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorParser.js","sourceRoot":"","sources":["../../../../src/core/lib/colorParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { type Stage } from '../Stage.js';
2
+ export declare abstract class Platform {
3
+ /**
4
+ * Creates a new canvas element.
5
+ * @returns The created HTMLCanvasElement.
6
+ */
7
+ abstract createCanvas(): HTMLCanvasElement;
8
+ /**
9
+ * Get a DOM element by ID
10
+ * @returns The DOM element (or null)
11
+ */
12
+ abstract getElementById(id: string): HTMLElement | null;
13
+ /**
14
+ * Starts the main rendering loop, calling the provided update function every frame.
15
+ * @param Stage - The stage for rendering
16
+ */
17
+ abstract startLoop(stage: Stage): void;
18
+ /**
19
+ * Abstracted createImageBitmap method.
20
+ * @param blob - The image source to create the ImageBitmap from.
21
+ * @param sxOrOptions - The source rectangle x coordinate or ImageBitmapOptions.
22
+ * @param sy - The source rectangle y coordinate.
23
+ * @param sw - The source rectangle width.
24
+ * @param sh - The source rectangle height.
25
+ * @param options - The ImageBitmapOptions.
26
+ * @returns A promise that resolves with the created ImageBitmap.
27
+ */
28
+ abstract createImageBitmap(blob: ImageBitmapSource): Promise<ImageBitmap>;
29
+ abstract createImageBitmap(blob: ImageBitmapSource, options: ImageBitmapOptions): Promise<ImageBitmap>;
30
+ abstract createImageBitmap(blob: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number): Promise<ImageBitmap>;
31
+ abstract createImageBitmap(blob: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options: ImageBitmapOptions): Promise<ImageBitmap>;
32
+ /**
33
+ * Retrieves the current timestamp.
34
+ * @returns The current timestamp.
35
+ */
36
+ abstract getTimeStamp(): number;
37
+ /**
38
+ * Adds a FontFace to the platforms FontFaceSet
39
+ * @param font - The FontFace to add
40
+ */
41
+ abstract addFont(font: FontFace): void;
42
+ }
@@ -0,0 +1,22 @@
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 {} from '../Stage.js';
20
+ export class Platform {
21
+ }
22
+ //# sourceMappingURL=Platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Platform.js","sourceRoot":"","sources":["../../../../src/core/platforms/Platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAc,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAgB,QAAQ;CA6D7B"}