@lightningjs/renderer 2.14.2 → 2.14.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 (310) hide show
  1. package/LICENSE +202 -202
  2. package/NOTICE +3 -3
  3. package/README.md +147 -147
  4. package/dist/src/core/CoreTextNode.js +2 -2
  5. package/dist/src/core/CoreTextNode.js.map +1 -1
  6. package/dist/src/core/CoreTextureManager.d.ts +4 -3
  7. package/dist/src/core/CoreTextureManager.js +33 -23
  8. package/dist/src/core/CoreTextureManager.js.map +1 -1
  9. package/dist/src/core/Stage.js +7 -2
  10. package/dist/src/core/Stage.js.map +1 -1
  11. package/dist/src/core/TextureMemoryManager.d.ts +1 -1
  12. package/dist/src/core/TextureMemoryManager.js +25 -2
  13. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  14. package/dist/src/core/renderers/CoreContextTexture.d.ts +1 -1
  15. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +1 -1
  16. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +7 -6
  17. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -1
  18. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +3 -0
  19. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -1
  20. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +5 -6
  21. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +30 -18
  22. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  23. package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.js +2 -0
  24. package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.js.map +1 -0
  25. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +45 -45
  26. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +61 -61
  27. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +93 -93
  28. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +63 -63
  29. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +62 -62
  30. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
  31. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +6 -6
  32. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +15 -15
  33. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +15 -15
  34. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +15 -15
  35. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +42 -42
  36. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +44 -44
  37. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +3 -3
  38. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +22 -22
  39. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +28 -28
  40. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +10 -10
  41. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +37 -37
  42. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +19 -19
  43. package/dist/src/core/textures/ImageTexture.d.ts +1 -1
  44. package/dist/src/core/textures/ImageTexture.js +1 -1
  45. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  46. package/dist/src/core/textures/Texture.d.ts +4 -0
  47. package/dist/src/core/textures/Texture.js +9 -3
  48. package/dist/src/core/textures/Texture.js.map +1 -1
  49. package/dist/src/main-api/Renderer.js +1 -1
  50. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  51. package/exports/canvas.ts +39 -39
  52. package/exports/index.ts +89 -89
  53. package/exports/inspector.ts +24 -24
  54. package/exports/utils.ts +44 -44
  55. package/exports/webgl.ts +38 -38
  56. package/package.json +1 -1
  57. package/scripts/please-use-pnpm.js +13 -13
  58. package/src/common/CommonTypes.ts +146 -146
  59. package/src/common/EventEmitter.ts +77 -77
  60. package/src/common/IAnimationController.ts +92 -92
  61. package/src/common/IEventEmitter.ts +28 -28
  62. package/src/core/CoreNode.test.ts +202 -202
  63. package/src/core/CoreNode.ts +2468 -2468
  64. package/src/core/CoreShaderManager.ts +292 -292
  65. package/src/core/CoreTextNode.ts +455 -455
  66. package/src/core/CoreTextureManager.ts +561 -558
  67. package/src/core/Stage.ts +748 -743
  68. package/src/core/TextureMemoryManager.ts +431 -404
  69. package/src/core/animations/AnimationManager.ts +38 -38
  70. package/src/core/animations/CoreAnimation.ts +347 -347
  71. package/src/core/animations/CoreAnimationController.ts +166 -166
  72. package/src/core/lib/ContextSpy.ts +41 -41
  73. package/src/core/lib/ImageWorker.ts +280 -280
  74. package/src/core/lib/Matrix3d.ts +244 -244
  75. package/src/core/lib/RenderCoords.ts +86 -86
  76. package/src/core/lib/WebGlContextWrapper.ts +1332 -1332
  77. package/src/core/lib/textureCompression.ts +152 -152
  78. package/src/core/lib/textureSvg.ts +78 -78
  79. package/src/core/lib/utils.ts +384 -384
  80. package/src/core/lib/validateImageBitmap.ts +76 -76
  81. package/src/core/platform.ts +63 -63
  82. package/src/core/renderers/CoreContextTexture.ts +43 -43
  83. package/src/core/renderers/CoreRenderOp.ts +22 -22
  84. package/src/core/renderers/CoreRenderer.ts +115 -115
  85. package/src/core/renderers/CoreShader.ts +41 -41
  86. package/src/core/renderers/canvas/CanvasCoreRenderer.ts +375 -375
  87. package/src/core/renderers/canvas/CanvasCoreTexture.ts +153 -153
  88. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +231 -231
  89. package/src/core/renderers/canvas/internal/ColorUtils.ts +69 -69
  90. package/src/core/renderers/canvas/shaders/UnsupportedShader.ts +48 -48
  91. package/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.ts +91 -86
  92. package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +50 -50
  93. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +313 -301
  94. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +125 -125
  95. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +821 -821
  96. package/src/core/renderers/webgl/WebGlCoreShader.ts +365 -365
  97. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  98. package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -155
  99. package/src/core/renderers/webgl/internal/ShaderUtils.ts +143 -143
  100. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  101. package/src/core/renderers/webgl/shaders/DefaultShader.ts +93 -93
  102. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +132 -132
  103. package/src/core/renderers/webgl/shaders/DynamicShader.ts +580 -580
  104. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +167 -167
  105. package/src/core/renderers/webgl/shaders/SdfShader.ts +204 -204
  106. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +101 -101
  107. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +87 -87
  108. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +101 -101
  109. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +101 -101
  110. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +101 -101
  111. package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +159 -159
  112. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +127 -127
  113. package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +148 -148
  114. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +67 -67
  115. package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +157 -157
  116. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +171 -171
  117. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +168 -168
  118. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +187 -187
  119. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +110 -110
  120. package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +196 -196
  121. package/src/core/text-rendering/TextRenderingUtils.ts +36 -36
  122. package/src/core/text-rendering/TextTextureRendererUtils.ts +263 -263
  123. package/src/core/text-rendering/TrFontManager.ts +183 -183
  124. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +176 -176
  125. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
  126. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
  127. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +171 -171
  128. package/src/core/text-rendering/font-face-types/TrFontFace.ts +187 -187
  129. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +94 -94
  130. package/src/core/text-rendering/font-face-types/utils.ts +39 -39
  131. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +509 -509
  132. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +808 -808
  133. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +853 -853
  134. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
  135. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
  136. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
  137. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
  138. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +117 -117
  139. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
  140. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
  141. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +408 -408
  142. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
  143. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +52 -52
  144. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
  145. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
  146. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
  147. package/src/core/text-rendering/renderers/TextRenderer.ts +557 -557
  148. package/src/core/textures/ColorTexture.ts +102 -102
  149. package/src/core/textures/ImageTexture.ts +400 -399
  150. package/src/core/textures/NoiseTexture.ts +104 -104
  151. package/src/core/textures/RenderTexture.ts +85 -85
  152. package/src/core/textures/SubTexture.ts +205 -205
  153. package/src/core/textures/Texture.ts +376 -367
  154. package/src/core/utils.ts +227 -227
  155. package/src/env.d.ts +7 -7
  156. package/src/main-api/DynamicShaderController.ts +104 -104
  157. package/src/main-api/INode.ts +101 -101
  158. package/src/main-api/Inspector.ts +522 -522
  159. package/src/main-api/Renderer.ts +751 -751
  160. package/src/main-api/ShaderController.ts +80 -80
  161. package/src/main-api/utils.ts +45 -45
  162. package/src/utils.ts +248 -248
  163. package/COPYING +0 -1
  164. package/dist/exports/canvas-shaders.d.ts +0 -10
  165. package/dist/exports/canvas-shaders.js +0 -27
  166. package/dist/exports/canvas-shaders.js.map +0 -1
  167. package/dist/exports/webgl-shaders.d.ts +0 -11
  168. package/dist/exports/webgl-shaders.js +0 -28
  169. package/dist/exports/webgl-shaders.js.map +0 -1
  170. package/dist/src/core/platforms/Platform.d.ts +0 -37
  171. package/dist/src/core/platforms/Platform.js +0 -22
  172. package/dist/src/core/platforms/Platform.js.map +0 -1
  173. package/dist/src/core/platforms/web/WebPlatform.d.ts +0 -9
  174. package/dist/src/core/platforms/web/WebPlatform.js +0 -58
  175. package/dist/src/core/platforms/web/WebPlatform.js.map +0 -1
  176. package/dist/src/core/renderers/CoreShaderNode.d.ts +0 -58
  177. package/dist/src/core/renderers/CoreShaderNode.js +0 -104
  178. package/dist/src/core/renderers/CoreShaderNode.js.map +0 -1
  179. package/dist/src/core/renderers/CoreShaderProgram.d.ts +0 -4
  180. package/dist/src/core/renderers/CoreShaderProgram.js +0 -20
  181. package/dist/src/core/renderers/CoreShaderProgram.js.map +0 -1
  182. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +0 -36
  183. package/dist/src/core/renderers/canvas/CanvasRenderer.js +0 -212
  184. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +0 -1
  185. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +0 -21
  186. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +0 -60
  187. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +0 -1
  188. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +0 -16
  189. package/dist/src/core/renderers/canvas/CanvasTexture.js +0 -124
  190. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +0 -1
  191. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +0 -12
  192. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +0 -55
  193. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +0 -1
  194. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +0 -9
  195. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +0 -38
  196. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +0 -1
  197. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +0 -57
  198. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +0 -227
  199. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +0 -1
  200. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +0 -44
  201. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +0 -118
  202. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +0 -1
  203. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +0 -135
  204. package/dist/src/core/renderers/webgl/WebGlRenderer.js +0 -571
  205. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +0 -1
  206. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +0 -222
  207. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +0 -334
  208. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +0 -1
  209. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +0 -35
  210. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +0 -201
  211. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +0 -1
  212. package/dist/src/core/shaders/canvas/Border.d.ts +0 -9
  213. package/dist/src/core/shaders/canvas/Border.js +0 -57
  214. package/dist/src/core/shaders/canvas/Border.js.map +0 -1
  215. package/dist/src/core/shaders/canvas/HolePunch.d.ts +0 -7
  216. package/dist/src/core/shaders/canvas/HolePunch.js +0 -38
  217. package/dist/src/core/shaders/canvas/HolePunch.js.map +0 -1
  218. package/dist/src/core/shaders/canvas/LinearGradient.d.ts +0 -10
  219. package/dist/src/core/shaders/canvas/LinearGradient.js +0 -46
  220. package/dist/src/core/shaders/canvas/LinearGradient.js.map +0 -1
  221. package/dist/src/core/shaders/canvas/RadialGradient.d.ts +0 -11
  222. package/dist/src/core/shaders/canvas/RadialGradient.js +0 -68
  223. package/dist/src/core/shaders/canvas/RadialGradient.js.map +0 -1
  224. package/dist/src/core/shaders/canvas/Rounded.d.ts +0 -7
  225. package/dist/src/core/shaders/canvas/Rounded.js +0 -33
  226. package/dist/src/core/shaders/canvas/Rounded.js.map +0 -1
  227. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +0 -7
  228. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +0 -41
  229. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +0 -1
  230. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +0 -8
  231. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +0 -39
  232. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +0 -1
  233. package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +0 -7
  234. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +0 -38
  235. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +0 -1
  236. package/dist/src/core/shaders/canvas/Shadow.d.ts +0 -8
  237. package/dist/src/core/shaders/canvas/Shadow.js +0 -31
  238. package/dist/src/core/shaders/canvas/Shadow.js.map +0 -1
  239. package/dist/src/core/shaders/canvas/utils/render.d.ts +0 -5
  240. package/dist/src/core/shaders/canvas/utils/render.js +0 -84
  241. package/dist/src/core/shaders/canvas/utils/render.js.map +0 -1
  242. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +0 -37
  243. package/dist/src/core/shaders/templates/BorderTemplate.js +0 -73
  244. package/dist/src/core/shaders/templates/BorderTemplate.js.map +0 -1
  245. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +0 -46
  246. package/dist/src/core/shaders/templates/HolePunchTemplate.js +0 -35
  247. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +0 -1
  248. package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +0 -23
  249. package/dist/src/core/shaders/templates/LinearGradientTemplate.js +0 -47
  250. package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +0 -1
  251. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +0 -31
  252. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +0 -49
  253. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +0 -1
  254. package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +0 -29
  255. package/dist/src/core/shaders/templates/RoundedTemplate.js +0 -67
  256. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +0 -1
  257. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +0 -7
  258. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +0 -24
  259. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +0 -1
  260. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +0 -6
  261. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +0 -23
  262. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +0 -1
  263. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +0 -6
  264. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +0 -23
  265. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +0 -1
  266. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +0 -34
  267. package/dist/src/core/shaders/templates/ShadowTemplate.js +0 -66
  268. package/dist/src/core/shaders/templates/ShadowTemplate.js.map +0 -1
  269. package/dist/src/core/shaders/templates/shaderUtils.d.ts +0 -5
  270. package/dist/src/core/shaders/templates/shaderUtils.js +0 -41
  271. package/dist/src/core/shaders/templates/shaderUtils.js.map +0 -1
  272. package/dist/src/core/shaders/webgl/Border.d.ts +0 -3
  273. package/dist/src/core/shaders/webgl/Border.js +0 -110
  274. package/dist/src/core/shaders/webgl/Border.js.map +0 -1
  275. package/dist/src/core/shaders/webgl/Default.d.ts +0 -2
  276. package/dist/src/core/shaders/webgl/Default.js +0 -86
  277. package/dist/src/core/shaders/webgl/Default.js.map +0 -1
  278. package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +0 -2
  279. package/dist/src/core/shaders/webgl/DefaultBatched.js +0 -104
  280. package/dist/src/core/shaders/webgl/DefaultBatched.js.map +0 -1
  281. package/dist/src/core/shaders/webgl/HolePunch.d.ts +0 -3
  282. package/dist/src/core/shaders/webgl/HolePunch.js +0 -64
  283. package/dist/src/core/shaders/webgl/HolePunch.js.map +0 -1
  284. package/dist/src/core/shaders/webgl/LinearGradient.d.ts +0 -3
  285. package/dist/src/core/shaders/webgl/LinearGradient.js +0 -75
  286. package/dist/src/core/shaders/webgl/LinearGradient.js.map +0 -1
  287. package/dist/src/core/shaders/webgl/RadialGradient.d.ts +0 -3
  288. package/dist/src/core/shaders/webgl/RadialGradient.js +0 -73
  289. package/dist/src/core/shaders/webgl/RadialGradient.js.map +0 -1
  290. package/dist/src/core/shaders/webgl/Rounded.d.ts +0 -7
  291. package/dist/src/core/shaders/webgl/Rounded.js +0 -86
  292. package/dist/src/core/shaders/webgl/Rounded.js.map +0 -1
  293. package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +0 -3
  294. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +0 -129
  295. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +0 -1
  296. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +0 -3
  297. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +0 -149
  298. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +0 -1
  299. package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +0 -3
  300. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +0 -84
  301. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +0 -1
  302. package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -32
  303. package/dist/src/core/shaders/webgl/SdfShader.js +0 -116
  304. package/dist/src/core/shaders/webgl/SdfShader.js.map +0 -1
  305. package/dist/src/core/shaders/webgl/Shadow.d.ts +0 -3
  306. package/dist/src/core/shaders/webgl/Shadow.js +0 -110
  307. package/dist/src/core/shaders/webgl/Shadow.js.map +0 -1
  308. package/dist/src/core/temp.js +0 -77
  309. package/dist/src/core/temp.js.map +0 -1
  310. /package/dist/src/core/{temp.d.ts → renderers/webgl/WebGlCoreShader.destroy.d.ts} +0 -0
@@ -1,49 +1,49 @@
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
-
20
- import { expect, describe, it } from 'vitest';
21
- import { measureText } from './measureText.js';
22
- import sdfData from 'test/mockdata/Ubuntu-Bold.msdf.json';
23
- import {
24
- SdfFontShaper,
25
- type SdfFontData,
26
- } from '../../../font-face-types/SdfTrFontFace/internal/SdfFontShaper.js';
27
-
28
- const glyphMap = new Map<number, SdfFontData['chars'][0]>();
29
- sdfData.chars.forEach((glyph) => {
30
- glyphMap.set(glyph.id, glyph);
31
- });
32
-
33
- describe('measureText', () => {
34
- it('should measure text width', () => {
35
- const PERIOD_WIDTH = 10.332;
36
- const shaper = new SdfFontShaper(
37
- sdfData as unknown as SdfFontData,
38
- glyphMap,
39
- );
40
- expect(measureText('', { letterSpacing: 0 }, shaper)).toBe(0);
41
- expect(measureText('.', { letterSpacing: 0 }, shaper)).toBe(PERIOD_WIDTH);
42
- expect(measureText('..', { letterSpacing: 0 }, shaper)).toBeCloseTo(
43
- PERIOD_WIDTH * 2,
44
- );
45
- expect(measureText('..', { letterSpacing: 5 }, shaper)).toBeCloseTo(
46
- PERIOD_WIDTH * 2 + 5,
47
- );
48
- });
49
- });
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
+
20
+ import { expect, describe, it } from 'vitest';
21
+ import { measureText } from './measureText.js';
22
+ import sdfData from 'test/mockdata/Ubuntu-Bold.msdf.json';
23
+ import {
24
+ SdfFontShaper,
25
+ type SdfFontData,
26
+ } from '../../../font-face-types/SdfTrFontFace/internal/SdfFontShaper.js';
27
+
28
+ const glyphMap = new Map<number, SdfFontData['chars'][0]>();
29
+ sdfData.chars.forEach((glyph) => {
30
+ glyphMap.set(glyph.id, glyph);
31
+ });
32
+
33
+ describe('measureText', () => {
34
+ it('should measure text width', () => {
35
+ const PERIOD_WIDTH = 10.332;
36
+ const shaper = new SdfFontShaper(
37
+ sdfData as unknown as SdfFontData,
38
+ glyphMap,
39
+ );
40
+ expect(measureText('', { letterSpacing: 0 }, shaper)).toBe(0);
41
+ expect(measureText('.', { letterSpacing: 0 }, shaper)).toBe(PERIOD_WIDTH);
42
+ expect(measureText('..', { letterSpacing: 0 }, shaper)).toBeCloseTo(
43
+ PERIOD_WIDTH * 2,
44
+ );
45
+ expect(measureText('..', { letterSpacing: 5 }, shaper)).toBeCloseTo(
46
+ PERIOD_WIDTH * 2 + 5,
47
+ );
48
+ });
49
+ });
@@ -1,52 +1,52 @@
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
-
20
- import type {
21
- FontShaper,
22
- FontShaperProps,
23
- } from '../../../font-face-types/SdfTrFontFace/internal/FontShaper.js';
24
- import { PeekableIterator } from './PeekableGenerator.js';
25
- import { getUnicodeCodepoints } from './getUnicodeCodepoints.js';
26
-
27
- /**
28
- * Measures a single-line of text width ignoring any unmapped glyphs including line breaks
29
- *
30
- * @param text
31
- * @param shaperProps
32
- * @param shaper
33
- * @returns
34
- */
35
- export function measureText(
36
- text: string,
37
- shaperProps: FontShaperProps,
38
- shaper: FontShaper,
39
- ): number {
40
- const glyphs = shaper.shapeText(
41
- shaperProps,
42
- new PeekableIterator(getUnicodeCodepoints(text, 0), 0),
43
- );
44
- let width = 0;
45
- for (const glyph of glyphs) {
46
- if (glyph.mapped && glyph.codepoint !== 8203) {
47
- // Skip ZWSP (\u200B)
48
- width += glyph.xAdvance;
49
- }
50
- }
51
- return width;
52
- }
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
+
20
+ import type {
21
+ FontShaper,
22
+ FontShaperProps,
23
+ } from '../../../font-face-types/SdfTrFontFace/internal/FontShaper.js';
24
+ import { PeekableIterator } from './PeekableGenerator.js';
25
+ import { getUnicodeCodepoints } from './getUnicodeCodepoints.js';
26
+
27
+ /**
28
+ * Measures a single-line of text width ignoring any unmapped glyphs including line breaks
29
+ *
30
+ * @param text
31
+ * @param shaperProps
32
+ * @param shaper
33
+ * @returns
34
+ */
35
+ export function measureText(
36
+ text: string,
37
+ shaperProps: FontShaperProps,
38
+ shaper: FontShaper,
39
+ ): number {
40
+ const glyphs = shaper.shapeText(
41
+ shaperProps,
42
+ new PeekableIterator(getUnicodeCodepoints(text, 0), 0),
43
+ );
44
+ let width = 0;
45
+ for (const glyph of glyphs) {
46
+ if (glyph.mapped && glyph.codepoint !== 8203) {
47
+ // Skip ZWSP (\u200B)
48
+ width += glyph.xAdvance;
49
+ }
50
+ }
51
+ return width;
52
+ }
@@ -1,205 +1,205 @@
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
-
20
- import { expect, describe, it } from 'vitest';
21
- import { setRenderWindow, type SdfRenderWindow } from './setRenderWindow.js';
22
-
23
- function makeRenderWindow(): SdfRenderWindow {
24
- return {
25
- screen: { x1: 0, y1: 0, x2: 0, y2: 0 },
26
- sdf: { x1: 0, y1: 0, x2: 0, y2: 0 },
27
- firstLineIdx: 0,
28
- numLines: 0,
29
- valid: false,
30
- };
31
- }
32
-
33
- describe('setRenderWindow', () => {
34
- it('should return a empty window when visibleWindow is empty', () => {
35
- const rw = makeRenderWindow();
36
- setRenderWindow(rw, 0, 0, 0, 10, 0, { x1: 0, y1: 0, x2: 0, y2: 0 }, 1);
37
- expect(rw).toEqual({
38
- screen: { x1: 0, y1: 0, x2: 0, y2: 0 },
39
- sdf: { x1: 0, y1: 0, x2: 0, y2: 0 },
40
- firstLineIdx: 0,
41
- numLines: 0,
42
- valid: true,
43
- });
44
-
45
- setRenderWindow(
46
- rw,
47
- 0,
48
- 0,
49
- 0,
50
- 20,
51
- 0,
52
- { x1: 100, y1: 100, x2: 100, y2: 100 },
53
- 2,
54
- );
55
- expect(rw).toEqual({
56
- screen: { x1: 0, y1: 0, x2: 0, y2: 0 },
57
- sdf: { x1: 0, y1: 0, x2: 0, y2: 0 },
58
- firstLineIdx: 0,
59
- numLines: 0,
60
- valid: true,
61
- });
62
-
63
- setRenderWindow(
64
- rw,
65
- 100,
66
- 200,
67
- 300,
68
- 10,
69
- 30,
70
- { x1: 0, y1: 0, x2: 0, y2: 0 },
71
- 1,
72
- );
73
- expect(rw).toEqual({
74
- screen: { x1: 0, y1: 0, x2: 0, y2: 0 },
75
- sdf: { x1: 0, y1: 0, x2: 0, y2: 0 },
76
- firstLineIdx: 0,
77
- numLines: 0,
78
- valid: true,
79
- });
80
- setRenderWindow(
81
- rw,
82
- 400,
83
- 500,
84
- 100,
85
- 20,
86
- 40,
87
- {
88
- x1: 100,
89
- y1: 100,
90
- x2: 100,
91
- y2: 100,
92
- },
93
- 1,
94
- ),
95
- expect(rw).toEqual({
96
- screen: { x1: 0, y1: 0, x2: 0, y2: 0 },
97
- sdf: { x1: 0, y1: 0, x2: 0, y2: 0 },
98
- firstLineIdx: 0,
99
- numLines: 0,
100
- valid: true,
101
- });
102
- });
103
-
104
- it('should return a window with no margin around the visible area if lineHeight and/or bufferMargin set are zero', () => {
105
- const rw = makeRenderWindow();
106
-
107
- setRenderWindow(rw, 0, 0, 0, 10, 0, { x1: 0, y1: 0, x2: 100, y2: 100 }, 1),
108
- expect(rw).toEqual({
109
- screen: { x1: 0, y1: 0, x2: 100, y2: 100 },
110
- sdf: { x1: 0, y1: 0, x2: 100, y2: 100 },
111
- firstLineIdx: 0,
112
- numLines: 10,
113
- valid: true,
114
- });
115
-
116
- setRenderWindow(rw, 0, 0, 0, 10, 0, { x1: 0, y1: 0, x2: 200, y2: 205 }, 2);
117
- expect(rw).toEqual({
118
- screen: { x1: 0, y1: 0, x2: 200, y2: 210 },
119
- sdf: { x1: 0, y1: 0, x2: 100, y2: 105 },
120
- firstLineIdx: 0,
121
- numLines: 21,
122
- valid: true,
123
- });
124
- });
125
-
126
- it('should return a window with a margin around the visible area (if boundsMargin set)', () => {
127
- const rw = makeRenderWindow();
128
-
129
- setRenderWindow(
130
- rw,
131
- 0,
132
- 0,
133
- 0,
134
- 10,
135
- 100,
136
- { x1: 0, y1: 0, x2: 100, y2: 100 },
137
- 1,
138
- ),
139
- expect(rw).toEqual({
140
- screen: { x1: 0, y1: -100, x2: 100, y2: 200 },
141
- sdf: { x1: 0, y1: -100, x2: 100, y2: 200 },
142
- firstLineIdx: -10,
143
- numLines: 30,
144
- valid: true,
145
- });
146
-
147
- setRenderWindow(
148
- rw,
149
- 0,
150
- 0,
151
- 0,
152
- 10,
153
- 200,
154
- { x1: 0, y1: 0, x2: 200, y2: 200 },
155
- 1,
156
- );
157
- expect(rw).toEqual({
158
- screen: { x1: 0, y1: -200, x2: 200, y2: 400 },
159
- sdf: { x1: 0, y1: -200, x2: 200, y2: 400 },
160
- firstLineIdx: -20,
161
- numLines: 60,
162
- valid: true,
163
- });
164
- });
165
-
166
- it('should return a window scrolled to scrollY when set', () => {
167
- const rw = makeRenderWindow();
168
-
169
- setRenderWindow(
170
- rw,
171
- 0,
172
- 0,
173
- 100,
174
- 10,
175
- 100,
176
- { x1: 0, y1: 0, x2: 100, y2: 100 },
177
- 1,
178
- ),
179
- expect(rw).toEqual({
180
- screen: { x1: 0, y1: 0, x2: 100, y2: 300 },
181
- sdf: { x1: 0, y1: 0, x2: 100, y2: 300 },
182
- firstLineIdx: 0,
183
- numLines: 30,
184
- valid: true,
185
- });
186
-
187
- setRenderWindow(
188
- rw,
189
- 0,
190
- 0,
191
- 105,
192
- 10,
193
- 100,
194
- { x1: 0, y1: 0, x2: 100, y2: 100 },
195
- 1,
196
- ),
197
- expect(rw).toEqual({
198
- screen: { x1: 0, y1: 0, x2: 100, y2: 310 },
199
- sdf: { x1: 0, y1: 0, x2: 100, y2: 310 },
200
- firstLineIdx: 0,
201
- numLines: 31,
202
- valid: true,
203
- });
204
- });
205
- });
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
+
20
+ import { expect, describe, it } from 'vitest';
21
+ import { setRenderWindow, type SdfRenderWindow } from './setRenderWindow.js';
22
+
23
+ function makeRenderWindow(): SdfRenderWindow {
24
+ return {
25
+ screen: { x1: 0, y1: 0, x2: 0, y2: 0 },
26
+ sdf: { x1: 0, y1: 0, x2: 0, y2: 0 },
27
+ firstLineIdx: 0,
28
+ numLines: 0,
29
+ valid: false,
30
+ };
31
+ }
32
+
33
+ describe('setRenderWindow', () => {
34
+ it('should return a empty window when visibleWindow is empty', () => {
35
+ const rw = makeRenderWindow();
36
+ setRenderWindow(rw, 0, 0, 0, 10, 0, { x1: 0, y1: 0, x2: 0, y2: 0 }, 1);
37
+ expect(rw).toEqual({
38
+ screen: { x1: 0, y1: 0, x2: 0, y2: 0 },
39
+ sdf: { x1: 0, y1: 0, x2: 0, y2: 0 },
40
+ firstLineIdx: 0,
41
+ numLines: 0,
42
+ valid: true,
43
+ });
44
+
45
+ setRenderWindow(
46
+ rw,
47
+ 0,
48
+ 0,
49
+ 0,
50
+ 20,
51
+ 0,
52
+ { x1: 100, y1: 100, x2: 100, y2: 100 },
53
+ 2,
54
+ );
55
+ expect(rw).toEqual({
56
+ screen: { x1: 0, y1: 0, x2: 0, y2: 0 },
57
+ sdf: { x1: 0, y1: 0, x2: 0, y2: 0 },
58
+ firstLineIdx: 0,
59
+ numLines: 0,
60
+ valid: true,
61
+ });
62
+
63
+ setRenderWindow(
64
+ rw,
65
+ 100,
66
+ 200,
67
+ 300,
68
+ 10,
69
+ 30,
70
+ { x1: 0, y1: 0, x2: 0, y2: 0 },
71
+ 1,
72
+ );
73
+ expect(rw).toEqual({
74
+ screen: { x1: 0, y1: 0, x2: 0, y2: 0 },
75
+ sdf: { x1: 0, y1: 0, x2: 0, y2: 0 },
76
+ firstLineIdx: 0,
77
+ numLines: 0,
78
+ valid: true,
79
+ });
80
+ setRenderWindow(
81
+ rw,
82
+ 400,
83
+ 500,
84
+ 100,
85
+ 20,
86
+ 40,
87
+ {
88
+ x1: 100,
89
+ y1: 100,
90
+ x2: 100,
91
+ y2: 100,
92
+ },
93
+ 1,
94
+ ),
95
+ expect(rw).toEqual({
96
+ screen: { x1: 0, y1: 0, x2: 0, y2: 0 },
97
+ sdf: { x1: 0, y1: 0, x2: 0, y2: 0 },
98
+ firstLineIdx: 0,
99
+ numLines: 0,
100
+ valid: true,
101
+ });
102
+ });
103
+
104
+ it('should return a window with no margin around the visible area if lineHeight and/or bufferMargin set are zero', () => {
105
+ const rw = makeRenderWindow();
106
+
107
+ setRenderWindow(rw, 0, 0, 0, 10, 0, { x1: 0, y1: 0, x2: 100, y2: 100 }, 1),
108
+ expect(rw).toEqual({
109
+ screen: { x1: 0, y1: 0, x2: 100, y2: 100 },
110
+ sdf: { x1: 0, y1: 0, x2: 100, y2: 100 },
111
+ firstLineIdx: 0,
112
+ numLines: 10,
113
+ valid: true,
114
+ });
115
+
116
+ setRenderWindow(rw, 0, 0, 0, 10, 0, { x1: 0, y1: 0, x2: 200, y2: 205 }, 2);
117
+ expect(rw).toEqual({
118
+ screen: { x1: 0, y1: 0, x2: 200, y2: 210 },
119
+ sdf: { x1: 0, y1: 0, x2: 100, y2: 105 },
120
+ firstLineIdx: 0,
121
+ numLines: 21,
122
+ valid: true,
123
+ });
124
+ });
125
+
126
+ it('should return a window with a margin around the visible area (if boundsMargin set)', () => {
127
+ const rw = makeRenderWindow();
128
+
129
+ setRenderWindow(
130
+ rw,
131
+ 0,
132
+ 0,
133
+ 0,
134
+ 10,
135
+ 100,
136
+ { x1: 0, y1: 0, x2: 100, y2: 100 },
137
+ 1,
138
+ ),
139
+ expect(rw).toEqual({
140
+ screen: { x1: 0, y1: -100, x2: 100, y2: 200 },
141
+ sdf: { x1: 0, y1: -100, x2: 100, y2: 200 },
142
+ firstLineIdx: -10,
143
+ numLines: 30,
144
+ valid: true,
145
+ });
146
+
147
+ setRenderWindow(
148
+ rw,
149
+ 0,
150
+ 0,
151
+ 0,
152
+ 10,
153
+ 200,
154
+ { x1: 0, y1: 0, x2: 200, y2: 200 },
155
+ 1,
156
+ );
157
+ expect(rw).toEqual({
158
+ screen: { x1: 0, y1: -200, x2: 200, y2: 400 },
159
+ sdf: { x1: 0, y1: -200, x2: 200, y2: 400 },
160
+ firstLineIdx: -20,
161
+ numLines: 60,
162
+ valid: true,
163
+ });
164
+ });
165
+
166
+ it('should return a window scrolled to scrollY when set', () => {
167
+ const rw = makeRenderWindow();
168
+
169
+ setRenderWindow(
170
+ rw,
171
+ 0,
172
+ 0,
173
+ 100,
174
+ 10,
175
+ 100,
176
+ { x1: 0, y1: 0, x2: 100, y2: 100 },
177
+ 1,
178
+ ),
179
+ expect(rw).toEqual({
180
+ screen: { x1: 0, y1: 0, x2: 100, y2: 300 },
181
+ sdf: { x1: 0, y1: 0, x2: 100, y2: 300 },
182
+ firstLineIdx: 0,
183
+ numLines: 30,
184
+ valid: true,
185
+ });
186
+
187
+ setRenderWindow(
188
+ rw,
189
+ 0,
190
+ 0,
191
+ 105,
192
+ 10,
193
+ 100,
194
+ { x1: 0, y1: 0, x2: 100, y2: 100 },
195
+ 1,
196
+ ),
197
+ expect(rw).toEqual({
198
+ screen: { x1: 0, y1: 0, x2: 100, y2: 310 },
199
+ sdf: { x1: 0, y1: 0, x2: 100, y2: 310 },
200
+ firstLineIdx: 0,
201
+ numLines: 31,
202
+ valid: true,
203
+ });
204
+ });
205
+ });