etro 0.13.0 → 0.14.0

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 (275) hide show
  1. package/.github/workflows/nodejs.yml +4 -0
  2. package/.github/workflows/shipjs-trigger.yml +2 -1
  3. package/.husky/pre-commit +1 -1
  4. package/AGENTS.md +106 -0
  5. package/CHANGELOG.md +17 -0
  6. package/CONTRIBUTING.md +5 -5
  7. package/README.md +7 -12
  8. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/index.html +50 -50
  9. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/custom-array.ts.html +11 -11
  10. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/base.ts.html +57 -9
  11. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/brightness.ts.html +1 -1
  12. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/channels.ts.html +1 -1
  13. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/chroma-key.ts.html +1 -1
  14. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/contrast.ts.html +1 -1
  15. package/coverage/{Firefox 118.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/elliptical-mask.ts.html +1 -1
  16. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/gaussian-blur.ts.html +1 -1
  17. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/grayscale.ts.html +1 -1
  18. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/index.html +21 -21
  19. package/coverage/{Firefox 118.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/index.ts.html +1 -1
  20. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/pixelate.ts.html +1 -1
  21. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/shader.ts.html +3 -3
  22. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/stack.ts.html +1 -1
  23. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/transform.ts.html +1 -1
  24. package/coverage/{Firefox 118.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/visual.ts.html +1 -1
  25. package/coverage/{Firefox 118.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/etro.ts.html +1 -1
  26. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/event.ts.html +29 -29
  27. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/index.html +20 -20
  28. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/index.ts.html +1 -1
  29. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/audio-source.ts.html +47 -47
  30. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/audio.ts.html +4 -4
  31. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/base.ts.html +88 -34
  32. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/image.ts.html +1 -1
  33. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/index.html +20 -20
  34. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/index.ts.html +1 -1
  35. package/coverage/{Firefox 121.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/text.ts.html +1 -1
  36. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/video.ts.html +1 -1
  37. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/visual-source.ts.html +1 -1
  38. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/visual.ts.html +10 -10
  39. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/movie/effects.ts.html +4 -4
  40. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/movie/index.html +19 -19
  41. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/movie/index.ts.html +1 -1
  42. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/movie/layers.ts.html +5 -5
  43. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/movie/movie.ts.html +467 -128
  44. package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/util.ts.html +380 -68
  45. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/index.html +161 -0
  46. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/custom-array.ts.html +34 -34
  47. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/base.ts.html +92 -44
  48. package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/brightness.ts.html +17 -17
  49. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/channels.ts.html +17 -17
  50. package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/chroma-key.ts.html +21 -21
  51. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/contrast.ts.html +17 -17
  52. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/elliptical-mask.ts.html +1 -1
  53. package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/gaussian-blur.ts.html +98 -98
  54. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/grayscale.ts.html +13 -13
  55. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/index.html +311 -0
  56. package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/index.ts.html +1 -1
  57. package/coverage/{Firefox 121.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/pixelate.ts.html +24 -24
  58. package/coverage/{Firefox 121.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/shader.ts.html +369 -369
  59. package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/stack.ts.html +46 -46
  60. package/coverage/{Firefox 121.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/transform.ts.html +104 -104
  61. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/visual.ts.html +1 -1
  62. package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Firefox 151.0 (Mac OS 10.15)}/html/src/etro.ts.html +1 -1
  63. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/event.ts.html +60 -60
  64. package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/index.html +42 -42
  65. package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/index.ts.html +1 -1
  66. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/audio-source.ts.html +50 -50
  67. package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/audio.ts.html +4 -4
  68. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/base.ts.html +95 -41
  69. package/coverage/{Firefox 121.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/image.ts.html +14 -14
  70. package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/index.html +51 -51
  71. package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/index.ts.html +1 -1
  72. package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/text.ts.html +1 -1
  73. package/coverage/{Firefox 121.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/video.ts.html +1 -1
  74. package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/visual-source.ts.html +58 -58
  75. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/visual.ts.html +84 -84
  76. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/movie/effects.ts.html +13 -13
  77. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/movie/index.html +28 -28
  78. package/coverage/{Firefox 121.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/movie/index.ts.html +1 -1
  79. package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/movie/layers.ts.html +5 -5
  80. package/coverage/{Firefox 121.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/movie/movie.ts.html +605 -266
  81. package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/util.ts.html +408 -69
  82. package/dist/custom-array.d.ts +10 -10
  83. package/dist/effect/base.d.ts +61 -60
  84. package/dist/effect/brightness.d.ts +16 -16
  85. package/dist/effect/channels.d.ts +23 -23
  86. package/dist/effect/chroma-key.d.ts +23 -23
  87. package/dist/effect/contrast.d.ts +15 -15
  88. package/dist/effect/elliptical-mask.d.ts +31 -31
  89. package/dist/effect/gaussian-blur.d.ts +60 -60
  90. package/dist/effect/grayscale.d.ts +7 -7
  91. package/dist/effect/index.d.ts +16 -16
  92. package/dist/effect/pixelate.d.ts +18 -18
  93. package/dist/effect/shader.d.ts +109 -109
  94. package/dist/effect/stack.d.ts +27 -27
  95. package/dist/effect/transform.d.ts +73 -73
  96. package/dist/effect/visual.d.ts +17 -17
  97. package/dist/etro-cjs.js +3583 -3553
  98. package/dist/etro-iife.js +3583 -3553
  99. package/dist/etro.d.ts +7 -7
  100. package/dist/event.d.ts +40 -40
  101. package/dist/index.d.ts +6 -6
  102. package/dist/layer/audio-source.d.ts +28 -28
  103. package/dist/layer/audio.d.ts +27 -27
  104. package/dist/layer/base.d.ts +129 -128
  105. package/dist/layer/image.d.ts +20 -20
  106. package/dist/layer/index.d.ts +11 -11
  107. package/dist/layer/text.d.ts +78 -78
  108. package/dist/layer/video.d.ts +23 -23
  109. package/dist/layer/visual-source.d.ts +47 -47
  110. package/dist/layer/visual.d.ts +62 -62
  111. package/dist/movie/effects.d.ts +6 -6
  112. package/dist/movie/index.d.ts +1 -1
  113. package/dist/movie/layers.d.ts +6 -6
  114. package/dist/movie/movie.d.ts +280 -278
  115. package/dist/object.d.ts +19 -19
  116. package/dist/util.d.ts +128 -123
  117. package/karma.conf.js +61 -3
  118. package/package.json +13 -15
  119. package/ship.config.js +9 -11
  120. package/src/effect/base.ts +16 -0
  121. package/src/layer/base.ts +19 -1
  122. package/src/movie/movie.ts +116 -3
  123. package/src/util.ts +104 -0
  124. package/tsconfig.json +3 -2
  125. package/.husky/commit-msg +0 -4
  126. package/.husky/prepare-commit-msg +0 -11
  127. package/commitlint.config.ts +0 -39
  128. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/index.html +0 -176
  129. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/custom-array.ts.html +0 -214
  130. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/base.ts.html +0 -433
  131. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/brightness.ts.html +0 -214
  132. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/channels.ts.html +0 -235
  133. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/contrast.ts.html +0 -211
  134. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/elliptical-mask.ts.html +0 -310
  135. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/grayscale.ts.html +0 -187
  136. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/index.html +0 -311
  137. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/pixelate.ts.html +0 -259
  138. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/shader.ts.html +0 -1774
  139. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/stack.ts.html +0 -358
  140. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/transform.ts.html +0 -685
  141. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/visual.ts.html +0 -148
  142. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/event.ts.html +0 -691
  143. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/index.html +0 -176
  144. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/index.ts.html +0 -109
  145. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/audio-source.ts.html +0 -835
  146. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/base.ts.html +0 -772
  147. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/image.ts.html +0 -181
  148. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/index.html +0 -236
  149. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/video.ts.html +0 -211
  150. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/visual-source.ts.html +0 -721
  151. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/visual.ts.html +0 -760
  152. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/movie/effects.ts.html +0 -163
  153. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/movie/index.html +0 -161
  154. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/movie/index.ts.html +0 -88
  155. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/movie/layers.ts.html +0 -163
  156. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/movie/movie.ts.html +0 -2692
  157. package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/util.ts.html +0 -1426
  158. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/index.html +0 -176
  159. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/custom-array.ts.html +0 -214
  160. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/base.ts.html +0 -433
  161. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/channels.ts.html +0 -235
  162. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/chroma-key.ts.html +0 -331
  163. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/contrast.ts.html +0 -211
  164. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/gaussian-blur.ts.html +0 -796
  165. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/grayscale.ts.html +0 -187
  166. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/index.html +0 -311
  167. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/pixelate.ts.html +0 -259
  168. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/shader.ts.html +0 -1948
  169. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/transform.ts.html +0 -685
  170. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/event.ts.html +0 -691
  171. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/audio-source.ts.html +0 -835
  172. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/audio.ts.html +0 -241
  173. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/base.ts.html +0 -772
  174. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/image.ts.html +0 -181
  175. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/index.ts.html +0 -124
  176. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/text.ts.html +0 -658
  177. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/video.ts.html +0 -211
  178. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/visual.ts.html +0 -760
  179. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/movie/effects.ts.html +0 -163
  180. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/movie/index.html +0 -161
  181. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/movie/index.ts.html +0 -88
  182. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/movie/layers.ts.html +0 -163
  183. package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/movie/movie.ts.html +0 -2692
  184. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/base.css +0 -224
  185. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/block-navigation.js +0 -87
  186. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/favicon.png +0 -0
  187. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/index.html +0 -176
  188. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/prettify.css +0 -1
  189. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/prettify.js +0 -2
  190. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/sort-arrow-sprite.png +0 -0
  191. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/sorter.js +0 -196
  192. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/brightness.ts.html +0 -214
  193. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/chroma-key.ts.html +0 -331
  194. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/gaussian-blur.ts.html +0 -790
  195. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/index.html +0 -311
  196. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/index.ts.html +0 -154
  197. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/pixelate.ts.html +0 -259
  198. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/shader.ts.html +0 -1948
  199. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/stack.ts.html +0 -358
  200. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/transform.ts.html +0 -685
  201. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/etro.ts.html +0 -163
  202. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/index.html +0 -176
  203. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/image.ts.html +0 -181
  204. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/index.html +0 -236
  205. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/text.ts.html +0 -658
  206. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/visual-source.ts.html +0 -721
  207. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/movie/movie.ts.html +0 -2692
  208. package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/util.ts.html +0 -1426
  209. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/base.css +0 -224
  210. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/block-navigation.js +0 -87
  211. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/favicon.png +0 -0
  212. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/index.html +0 -176
  213. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/prettify.css +0 -1
  214. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/prettify.js +0 -2
  215. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/sort-arrow-sprite.png +0 -0
  216. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/sorter.js +0 -196
  217. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/custom-array.ts.html +0 -214
  218. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/base.ts.html +0 -433
  219. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/brightness.ts.html +0 -214
  220. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/channels.ts.html +0 -235
  221. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/chroma-key.ts.html +0 -331
  222. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/contrast.ts.html +0 -211
  223. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/elliptical-mask.ts.html +0 -310
  224. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/gaussian-blur.ts.html +0 -796
  225. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/grayscale.ts.html +0 -187
  226. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/index.html +0 -311
  227. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/index.ts.html +0 -154
  228. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/stack.ts.html +0 -358
  229. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/visual.ts.html +0 -148
  230. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/etro.ts.html +0 -163
  231. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/event.ts.html +0 -691
  232. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/index.html +0 -176
  233. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/index.ts.html +0 -109
  234. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/audio-source.ts.html +0 -835
  235. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/audio.ts.html +0 -241
  236. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/base.ts.html +0 -772
  237. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/index.html +0 -236
  238. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/index.ts.html +0 -124
  239. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/visual-source.ts.html +0 -721
  240. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/visual.ts.html +0 -760
  241. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/movie/effects.ts.html +0 -163
  242. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/movie/index.html +0 -161
  243. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/movie/layers.ts.html +0 -163
  244. package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/util.ts.html +0 -1453
  245. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/base.css +0 -224
  246. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/block-navigation.js +0 -87
  247. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/favicon.png +0 -0
  248. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/prettify.css +0 -1
  249. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/prettify.js +0 -2
  250. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/sort-arrow-sprite.png +0 -0
  251. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/sorter.js +0 -196
  252. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/elliptical-mask.ts.html +0 -310
  253. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/index.ts.html +0 -154
  254. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/visual.ts.html +0 -148
  255. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/etro.ts.html +0 -163
  256. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/index.ts.html +0 -109
  257. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/audio.ts.html +0 -241
  258. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/index.ts.html +0 -124
  259. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/text.ts.html +0 -658
  260. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/video.ts.html +0 -211
  261. package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/movie/index.ts.html +0 -88
  262. /package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/base.css +0 -0
  263. /package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/block-navigation.js +0 -0
  264. /package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/favicon.png +0 -0
  265. /package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/prettify.css +0 -0
  266. /package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/prettify.js +0 -0
  267. /package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/sort-arrow-sprite.png +0 -0
  268. /package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/sorter.js +0 -0
  269. /package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/base.css +0 -0
  270. /package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/block-navigation.js +0 -0
  271. /package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/favicon.png +0 -0
  272. /package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/prettify.css +0 -0
  273. /package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/prettify.js +0 -0
  274. /package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/sort-arrow-sprite.png +0 -0
  275. /package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/sorter.js +0 -0
@@ -1,1453 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/util.ts</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../prettify.css" />
9
- <link rel="stylesheet" href="../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> util.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">55.78% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>106/190</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">41.44% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>46/111</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">72.72% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>16/22</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">58.04% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>101/174</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line medium'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a>
398
- <a name='L333'></a><a href='#L333'>333</a>
399
- <a name='L334'></a><a href='#L334'>334</a>
400
- <a name='L335'></a><a href='#L335'>335</a>
401
- <a name='L336'></a><a href='#L336'>336</a>
402
- <a name='L337'></a><a href='#L337'>337</a>
403
- <a name='L338'></a><a href='#L338'>338</a>
404
- <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a>
406
- <a name='L341'></a><a href='#L341'>341</a>
407
- <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a>
409
- <a name='L344'></a><a href='#L344'>344</a>
410
- <a name='L345'></a><a href='#L345'>345</a>
411
- <a name='L346'></a><a href='#L346'>346</a>
412
- <a name='L347'></a><a href='#L347'>347</a>
413
- <a name='L348'></a><a href='#L348'>348</a>
414
- <a name='L349'></a><a href='#L349'>349</a>
415
- <a name='L350'></a><a href='#L350'>350</a>
416
- <a name='L351'></a><a href='#L351'>351</a>
417
- <a name='L352'></a><a href='#L352'>352</a>
418
- <a name='L353'></a><a href='#L353'>353</a>
419
- <a name='L354'></a><a href='#L354'>354</a>
420
- <a name='L355'></a><a href='#L355'>355</a>
421
- <a name='L356'></a><a href='#L356'>356</a>
422
- <a name='L357'></a><a href='#L357'>357</a>
423
- <a name='L358'></a><a href='#L358'>358</a>
424
- <a name='L359'></a><a href='#L359'>359</a>
425
- <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a>
427
- <a name='L362'></a><a href='#L362'>362</a>
428
- <a name='L363'></a><a href='#L363'>363</a>
429
- <a name='L364'></a><a href='#L364'>364</a>
430
- <a name='L365'></a><a href='#L365'>365</a>
431
- <a name='L366'></a><a href='#L366'>366</a>
432
- <a name='L367'></a><a href='#L367'>367</a>
433
- <a name='L368'></a><a href='#L368'>368</a>
434
- <a name='L369'></a><a href='#L369'>369</a>
435
- <a name='L370'></a><a href='#L370'>370</a>
436
- <a name='L371'></a><a href='#L371'>371</a>
437
- <a name='L372'></a><a href='#L372'>372</a>
438
- <a name='L373'></a><a href='#L373'>373</a>
439
- <a name='L374'></a><a href='#L374'>374</a>
440
- <a name='L375'></a><a href='#L375'>375</a>
441
- <a name='L376'></a><a href='#L376'>376</a>
442
- <a name='L377'></a><a href='#L377'>377</a>
443
- <a name='L378'></a><a href='#L378'>378</a>
444
- <a name='L379'></a><a href='#L379'>379</a>
445
- <a name='L380'></a><a href='#L380'>380</a>
446
- <a name='L381'></a><a href='#L381'>381</a>
447
- <a name='L382'></a><a href='#L382'>382</a>
448
- <a name='L383'></a><a href='#L383'>383</a>
449
- <a name='L384'></a><a href='#L384'>384</a>
450
- <a name='L385'></a><a href='#L385'>385</a>
451
- <a name='L386'></a><a href='#L386'>386</a>
452
- <a name='L387'></a><a href='#L387'>387</a>
453
- <a name='L388'></a><a href='#L388'>388</a>
454
- <a name='L389'></a><a href='#L389'>389</a>
455
- <a name='L390'></a><a href='#L390'>390</a>
456
- <a name='L391'></a><a href='#L391'>391</a>
457
- <a name='L392'></a><a href='#L392'>392</a>
458
- <a name='L393'></a><a href='#L393'>393</a>
459
- <a name='L394'></a><a href='#L394'>394</a>
460
- <a name='L395'></a><a href='#L395'>395</a>
461
- <a name='L396'></a><a href='#L396'>396</a>
462
- <a name='L397'></a><a href='#L397'>397</a>
463
- <a name='L398'></a><a href='#L398'>398</a>
464
- <a name='L399'></a><a href='#L399'>399</a>
465
- <a name='L400'></a><a href='#L400'>400</a>
466
- <a name='L401'></a><a href='#L401'>401</a>
467
- <a name='L402'></a><a href='#L402'>402</a>
468
- <a name='L403'></a><a href='#L403'>403</a>
469
- <a name='L404'></a><a href='#L404'>404</a>
470
- <a name='L405'></a><a href='#L405'>405</a>
471
- <a name='L406'></a><a href='#L406'>406</a>
472
- <a name='L407'></a><a href='#L407'>407</a>
473
- <a name='L408'></a><a href='#L408'>408</a>
474
- <a name='L409'></a><a href='#L409'>409</a>
475
- <a name='L410'></a><a href='#L410'>410</a>
476
- <a name='L411'></a><a href='#L411'>411</a>
477
- <a name='L412'></a><a href='#L412'>412</a>
478
- <a name='L413'></a><a href='#L413'>413</a>
479
- <a name='L414'></a><a href='#L414'>414</a>
480
- <a name='L415'></a><a href='#L415'>415</a>
481
- <a name='L416'></a><a href='#L416'>416</a>
482
- <a name='L417'></a><a href='#L417'>417</a>
483
- <a name='L418'></a><a href='#L418'>418</a>
484
- <a name='L419'></a><a href='#L419'>419</a>
485
- <a name='L420'></a><a href='#L420'>420</a>
486
- <a name='L421'></a><a href='#L421'>421</a>
487
- <a name='L422'></a><a href='#L422'>422</a>
488
- <a name='L423'></a><a href='#L423'>423</a>
489
- <a name='L424'></a><a href='#L424'>424</a>
490
- <a name='L425'></a><a href='#L425'>425</a>
491
- <a name='L426'></a><a href='#L426'>426</a>
492
- <a name='L427'></a><a href='#L427'>427</a>
493
- <a name='L428'></a><a href='#L428'>428</a>
494
- <a name='L429'></a><a href='#L429'>429</a>
495
- <a name='L430'></a><a href='#L430'>430</a>
496
- <a name='L431'></a><a href='#L431'>431</a>
497
- <a name='L432'></a><a href='#L432'>432</a>
498
- <a name='L433'></a><a href='#L433'>433</a>
499
- <a name='L434'></a><a href='#L434'>434</a>
500
- <a name='L435'></a><a href='#L435'>435</a>
501
- <a name='L436'></a><a href='#L436'>436</a>
502
- <a name='L437'></a><a href='#L437'>437</a>
503
- <a name='L438'></a><a href='#L438'>438</a>
504
- <a name='L439'></a><a href='#L439'>439</a>
505
- <a name='L440'></a><a href='#L440'>440</a>
506
- <a name='L441'></a><a href='#L441'>441</a>
507
- <a name='L442'></a><a href='#L442'>442</a>
508
- <a name='L443'></a><a href='#L443'>443</a>
509
- <a name='L444'></a><a href='#L444'>444</a>
510
- <a name='L445'></a><a href='#L445'>445</a>
511
- <a name='L446'></a><a href='#L446'>446</a>
512
- <a name='L447'></a><a href='#L447'>447</a>
513
- <a name='L448'></a><a href='#L448'>448</a>
514
- <a name='L449'></a><a href='#L449'>449</a>
515
- <a name='L450'></a><a href='#L450'>450</a>
516
- <a name='L451'></a><a href='#L451'>451</a>
517
- <a name='L452'></a><a href='#L452'>452</a>
518
- <a name='L453'></a><a href='#L453'>453</a>
519
- <a name='L454'></a><a href='#L454'>454</a>
520
- <a name='L455'></a><a href='#L455'>455</a>
521
- <a name='L456'></a><a href='#L456'>456</a>
522
- <a name='L457'></a><a href='#L457'>457</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
523
- <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-neutral">&nbsp;</span>
525
- <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-neutral">&nbsp;</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-neutral">&nbsp;</span>
533
- <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-neutral">&nbsp;</span>
535
- <span class="cline-any cline-neutral">&nbsp;</span>
536
- <span class="cline-any cline-yes">1578x</span>
537
- <span class="cline-any cline-yes">4116x</span>
538
- <span class="cline-any cline-yes">4116x</span>
539
- <span class="cline-any cline-yes">990x</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-yes">3126x</span>
543
- <span class="cline-any cline-neutral">&nbsp;</span>
544
- <span class="cline-any cline-yes">588x</span>
545
- <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-neutral">&nbsp;</span>
549
- <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-neutral">&nbsp;</span>
552
- <span class="cline-any cline-neutral">&nbsp;</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-neutral">&nbsp;</span>
556
- <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-neutral">&nbsp;</span>
558
- <span class="cline-any cline-yes">1x</span>
559
- <span class="cline-any cline-yes">176x</span>
560
- <span class="cline-any cline-neutral">&nbsp;</span>
561
- <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-yes">176x</span>
563
- <span class="cline-any cline-neutral">&nbsp;</span>
564
- <span class="cline-any cline-yes">320x</span>
565
- <span class="cline-any cline-no">&nbsp;</span>
566
- <span class="cline-any cline-neutral">&nbsp;</span>
567
- <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-neutral">&nbsp;</span>
570
- <span class="cline-any cline-yes">176x</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-yes">176x</span>
574
- <span class="cline-any cline-yes">1578x</span>
575
- <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-yes">1578x</span>
577
- <span class="cline-any cline-yes">816x</span>
578
- <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-neutral">&nbsp;</span>
580
- <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-yes">1x</span>
584
- <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-neutral">&nbsp;</span>
586
- <span class="cline-any cline-yes">13471x</span>
587
- <span class="cline-any cline-yes">1890x</span>
588
- <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-yes">13471x</span>
591
- <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-neutral">&nbsp;</span>
593
- <span class="cline-any cline-yes">13471x</span>
594
- <span class="cline-any cline-yes">3741x</span>
595
- <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-yes">13471x</span>
598
- <span class="cline-any cline-neutral">&nbsp;</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-yes">13471x</span>
601
- <span class="cline-any cline-yes">13471x</span>
602
- <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-neutral">&nbsp;</span>
604
- <span class="cline-any cline-yes">19510x</span>
605
- <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-neutral">&nbsp;</span>
609
- <span class="cline-any cline-yes">6039x</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-yes">1x</span>
612
- <span class="cline-any cline-yes">1878x</span>
613
- <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-neutral">&nbsp;</span>
621
- <span class="cline-any cline-neutral">&nbsp;</span>
622
- <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-neutral">&nbsp;</span>
626
- <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-neutral">&nbsp;</span>
629
- <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-yes">1x</span>
632
- <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-yes">4x</span>
637
- <span class="cline-any cline-yes">1x</span>
638
- <span class="cline-any cline-yes">1x</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-yes">1x</span>
642
- <span class="cline-any cline-no">&nbsp;</span>
643
- <span class="cline-any cline-no">&nbsp;</span>
644
- <span class="cline-any cline-neutral">&nbsp;</span>
645
- <span class="cline-any cline-neutral">&nbsp;</span>
646
- <span class="cline-any cline-yes">1x</span>
647
- <span class="cline-any cline-yes">1x</span>
648
- <span class="cline-any cline-no">&nbsp;</span>
649
- <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
- <span class="cline-any cline-yes">1x</span>
652
- <span class="cline-any cline-no">&nbsp;</span>
653
- <span class="cline-any cline-neutral">&nbsp;</span>
654
- <span class="cline-any cline-neutral">&nbsp;</span>
655
- <span class="cline-any cline-yes">1x</span>
656
- <span class="cline-any cline-yes">1x</span>
657
- <span class="cline-any cline-no">&nbsp;</span>
658
- <span class="cline-any cline-neutral">&nbsp;</span>
659
- <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-neutral">&nbsp;</span>
661
- <span class="cline-any cline-yes">1x</span>
662
- <span class="cline-any cline-yes">1x</span>
663
- <span class="cline-any cline-yes">1x</span>
664
- <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-yes">1x</span>
666
- <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-neutral">&nbsp;</span>
668
- <span class="cline-any cline-yes">1x</span>
669
- <span class="cline-any cline-yes">1x</span>
670
- <span class="cline-any cline-yes">1x</span>
671
- <span class="cline-any cline-yes">1x</span>
672
- <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-neutral">&nbsp;</span>
674
- <span class="cline-any cline-yes">1x</span>
675
- <span class="cline-any cline-no">&nbsp;</span>
676
- <span class="cline-any cline-yes">1x</span>
677
- <span class="cline-any cline-no">&nbsp;</span>
678
- <span class="cline-any cline-neutral">&nbsp;</span>
679
- <span class="cline-any cline-neutral">&nbsp;</span>
680
- <span class="cline-any cline-yes">1x</span>
681
- <span class="cline-any cline-yes">1x</span>
682
- <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-neutral">&nbsp;</span>
684
- <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-neutral">&nbsp;</span>
687
- <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-neutral">&nbsp;</span>
689
- <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-no">&nbsp;</span>
691
- <span class="cline-any cline-neutral">&nbsp;</span>
692
- <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-yes">1x</span>
695
- <span class="cline-any cline-neutral">&nbsp;</span>
696
- <span class="cline-any cline-neutral">&nbsp;</span>
697
- <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-neutral">&nbsp;</span>
701
- <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-neutral">&nbsp;</span>
703
- <span class="cline-any cline-neutral">&nbsp;</span>
704
- <span class="cline-any cline-neutral">&nbsp;</span>
705
- <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-neutral">&nbsp;</span>
707
- <span class="cline-any cline-neutral">&nbsp;</span>
708
- <span class="cline-any cline-neutral">&nbsp;</span>
709
- <span class="cline-any cline-neutral">&nbsp;</span>
710
- <span class="cline-any cline-neutral">&nbsp;</span>
711
- <span class="cline-any cline-neutral">&nbsp;</span>
712
- <span class="cline-any cline-neutral">&nbsp;</span>
713
- <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-yes">1x</span>
715
- <span class="cline-any cline-yes">19510x</span>
716
- <span class="cline-any cline-yes">6039x</span>
717
- <span class="cline-any cline-neutral">&nbsp;</span>
718
- <span class="cline-any cline-neutral">&nbsp;</span>
719
- <span class="cline-any cline-neutral">&nbsp;</span>
720
- <span class="cline-any cline-yes">13471x</span>
721
- <span class="cline-any cline-yes">13471x</span>
722
- <span class="cline-any cline-yes">13471x</span>
723
- <span class="cline-any cline-no">&nbsp;</span>
724
- <span class="cline-any cline-neutral">&nbsp;</span>
725
- <span class="cline-any cline-neutral">&nbsp;</span>
726
- <span class="cline-any cline-neutral">&nbsp;</span>
727
- <span class="cline-any cline-yes">13471x</span>
728
- <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-neutral">&nbsp;</span>
730
- <span class="cline-any cline-yes">13471x</span>
731
- <span class="cline-any cline-yes">1x</span>
732
- <span class="cline-any cline-yes">13470x</span>
733
- <span class="cline-any cline-no">&nbsp;</span>
734
- <span class="cline-any cline-neutral">&nbsp;</span>
735
- <span class="cline-any cline-neutral">&nbsp;</span>
736
- <span class="cline-any cline-yes">13470x</span>
737
- <span class="cline-any cline-neutral">&nbsp;</span>
738
- <span class="cline-any cline-neutral">&nbsp;</span>
739
- <span class="cline-any cline-yes">13471x</span>
740
- <span class="cline-any cline-neutral">&nbsp;</span>
741
- <span class="cline-any cline-neutral">&nbsp;</span>
742
- <span class="cline-any cline-neutral">&nbsp;</span>
743
- <span class="cline-any cline-neutral">&nbsp;</span>
744
- <span class="cline-any cline-neutral">&nbsp;</span>
745
- <span class="cline-any cline-neutral">&nbsp;</span>
746
- <span class="cline-any cline-neutral">&nbsp;</span>
747
- <span class="cline-any cline-neutral">&nbsp;</span>
748
- <span class="cline-any cline-neutral">&nbsp;</span>
749
- <span class="cline-any cline-neutral">&nbsp;</span>
750
- <span class="cline-any cline-yes">1x</span>
751
- <span class="cline-any cline-yes">11x</span>
752
- <span class="cline-any cline-no">&nbsp;</span>
753
- <span class="cline-any cline-neutral">&nbsp;</span>
754
- <span class="cline-any cline-neutral">&nbsp;</span>
755
- <span class="cline-any cline-yes">11x</span>
756
- <span class="cline-any cline-neutral">&nbsp;</span>
757
- <span class="cline-any cline-no">&nbsp;</span>
758
- <span class="cline-any cline-neutral">&nbsp;</span>
759
- <span class="cline-any cline-neutral">&nbsp;</span>
760
- <span class="cline-any cline-yes">11x</span>
761
- <span class="cline-any cline-neutral">&nbsp;</span>
762
- <span class="cline-any cline-yes">2x</span>
763
- <span class="cline-any cline-no">&nbsp;</span>
764
- <span class="cline-any cline-neutral">&nbsp;</span>
765
- <span class="cline-any cline-neutral">&nbsp;</span>
766
- <span class="cline-any cline-neutral">&nbsp;</span>
767
- <span class="cline-any cline-yes">2x</span>
768
- <span class="cline-any cline-neutral">&nbsp;</span>
769
- <span class="cline-any cline-yes">2x</span>
770
- <span class="cline-any cline-yes">2x</span>
771
- <span class="cline-any cline-yes">10x</span>
772
- <span class="cline-any cline-neutral">&nbsp;</span>
773
- <span class="cline-any cline-yes">10x</span>
774
- <span class="cline-any cline-no">&nbsp;</span>
775
- <span class="cline-any cline-neutral">&nbsp;</span>
776
- <span class="cline-any cline-neutral">&nbsp;</span>
777
- <span class="cline-any cline-yes">10x</span>
778
- <span class="cline-any cline-neutral">&nbsp;</span>
779
- <span class="cline-any cline-yes">2x</span>
780
- <span class="cline-any cline-neutral">&nbsp;</span>
781
- <span class="cline-any cline-yes">9x</span>
782
- <span class="cline-any cline-neutral">&nbsp;</span>
783
- <span class="cline-any cline-neutral">&nbsp;</span>
784
- <span class="cline-any cline-yes">1x</span>
785
- <span class="cline-any cline-no">&nbsp;</span>
786
- <span class="cline-any cline-no">&nbsp;</span>
787
- <span class="cline-any cline-neutral">&nbsp;</span>
788
- <span class="cline-any cline-neutral">&nbsp;</span>
789
- <span class="cline-any cline-no">&nbsp;</span>
790
- <span class="cline-any cline-neutral">&nbsp;</span>
791
- <span class="cline-any cline-no">&nbsp;</span>
792
- <span class="cline-any cline-neutral">&nbsp;</span>
793
- <span class="cline-any cline-neutral">&nbsp;</span>
794
- <span class="cline-any cline-no">&nbsp;</span>
795
- <span class="cline-any cline-no">&nbsp;</span>
796
- <span class="cline-any cline-no">&nbsp;</span>
797
- <span class="cline-any cline-neutral">&nbsp;</span>
798
- <span class="cline-any cline-neutral">&nbsp;</span>
799
- <span class="cline-any cline-neutral">&nbsp;</span>
800
- <span class="cline-any cline-no">&nbsp;</span>
801
- <span class="cline-any cline-neutral">&nbsp;</span>
802
- <span class="cline-any cline-no">&nbsp;</span>
803
- <span class="cline-any cline-no">&nbsp;</span>
804
- <span class="cline-any cline-no">&nbsp;</span>
805
- <span class="cline-any cline-neutral">&nbsp;</span>
806
- <span class="cline-any cline-no">&nbsp;</span>
807
- <span class="cline-any cline-no">&nbsp;</span>
808
- <span class="cline-any cline-neutral">&nbsp;</span>
809
- <span class="cline-any cline-neutral">&nbsp;</span>
810
- <span class="cline-any cline-no">&nbsp;</span>
811
- <span class="cline-any cline-neutral">&nbsp;</span>
812
- <span class="cline-any cline-no">&nbsp;</span>
813
- <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-no">&nbsp;</span>
815
- <span class="cline-any cline-no">&nbsp;</span>
816
- <span class="cline-any cline-neutral">&nbsp;</span>
817
- <span class="cline-any cline-neutral">&nbsp;</span>
818
- <span class="cline-any cline-neutral">&nbsp;</span>
819
- <span class="cline-any cline-neutral">&nbsp;</span>
820
- <span class="cline-any cline-neutral">&nbsp;</span>
821
- <span class="cline-any cline-yes">1x</span>
822
- <span class="cline-any cline-neutral">&nbsp;</span>
823
- <span class="cline-any cline-neutral">&nbsp;</span>
824
- <span class="cline-any cline-neutral">&nbsp;</span>
825
- <span class="cline-any cline-neutral">&nbsp;</span>
826
- <span class="cline-any cline-neutral">&nbsp;</span>
827
- <span class="cline-any cline-neutral">&nbsp;</span>
828
- <span class="cline-any cline-neutral">&nbsp;</span>
829
- <span class="cline-any cline-neutral">&nbsp;</span>
830
- <span class="cline-any cline-neutral">&nbsp;</span>
831
- <span class="cline-any cline-neutral">&nbsp;</span>
832
- <span class="cline-any cline-neutral">&nbsp;</span>
833
- <span class="cline-any cline-yes">118x</span>
834
- <span class="cline-any cline-yes">97x</span>
835
- <span class="cline-any cline-yes">97x</span>
836
- <span class="cline-any cline-yes">97x</span>
837
- <span class="cline-any cline-yes">97x</span>
838
- <span class="cline-any cline-neutral">&nbsp;</span>
839
- <span class="cline-any cline-neutral">&nbsp;</span>
840
- <span class="cline-any cline-neutral">&nbsp;</span>
841
- <span class="cline-any cline-neutral">&nbsp;</span>
842
- <span class="cline-any cline-neutral">&nbsp;</span>
843
- <span class="cline-any cline-yes">1x</span>
844
- <span class="cline-any cline-yes">1859x</span>
845
- <span class="cline-any cline-neutral">&nbsp;</span>
846
- <span class="cline-any cline-yes">1x</span>
847
- <span class="cline-any cline-neutral">&nbsp;</span>
848
- <span class="cline-any cline-yes">1x</span>
849
- <span class="cline-any cline-yes">1x</span>
850
- <span class="cline-any cline-yes">1x</span>
851
- <span class="cline-any cline-neutral">&nbsp;</span>
852
- <span class="cline-any cline-neutral">&nbsp;</span>
853
- <span class="cline-any cline-neutral">&nbsp;</span>
854
- <span class="cline-any cline-neutral">&nbsp;</span>
855
- <span class="cline-any cline-neutral">&nbsp;</span>
856
- <span class="cline-any cline-yes">1x</span>
857
- <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-neutral">&nbsp;</span>
859
- <span class="cline-any cline-yes">76x</span>
860
- <span class="cline-any cline-yes">76x</span>
861
- <span class="cline-any cline-yes">76x</span>
862
- <span class="cline-any cline-yes">76x</span>
863
- <span class="cline-any cline-yes">76x</span>
864
- <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-neutral">&nbsp;</span>
866
- <span class="cline-any cline-neutral">&nbsp;</span>
867
- <span class="cline-any cline-neutral">&nbsp;</span>
868
- <span class="cline-any cline-neutral">&nbsp;</span>
869
- <span class="cline-any cline-yes">1x</span>
870
- <span class="cline-any cline-neutral">&nbsp;</span>
871
- <span class="cline-any cline-neutral">&nbsp;</span>
872
- <span class="cline-any cline-neutral">&nbsp;</span>
873
- <span class="cline-any cline-neutral">&nbsp;</span>
874
- <span class="cline-any cline-neutral">&nbsp;</span>
875
- <span class="cline-any cline-neutral">&nbsp;</span>
876
- <span class="cline-any cline-neutral">&nbsp;</span>
877
- <span class="cline-any cline-neutral">&nbsp;</span>
878
- <span class="cline-any cline-neutral">&nbsp;</span>
879
- <span class="cline-any cline-neutral">&nbsp;</span>
880
- <span class="cline-any cline-neutral">&nbsp;</span>
881
- <span class="cline-any cline-neutral">&nbsp;</span>
882
- <span class="cline-any cline-neutral">&nbsp;</span>
883
- <span class="cline-any cline-neutral">&nbsp;</span>
884
- <span class="cline-any cline-no">&nbsp;</span>
885
- <span class="cline-any cline-no">&nbsp;</span>
886
- <span class="cline-any cline-no">&nbsp;</span>
887
- <span class="cline-any cline-no">&nbsp;</span>
888
- <span class="cline-any cline-no">&nbsp;</span>
889
- <span class="cline-any cline-no">&nbsp;</span>
890
- <span class="cline-any cline-no">&nbsp;</span>
891
- <span class="cline-any cline-no">&nbsp;</span>
892
- <span class="cline-any cline-no">&nbsp;</span>
893
- <span class="cline-any cline-no">&nbsp;</span>
894
- <span class="cline-any cline-neutral">&nbsp;</span>
895
- <span class="cline-any cline-neutral">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-neutral">&nbsp;</span>
898
- <span class="cline-any cline-neutral">&nbsp;</span>
899
- <span class="cline-any cline-neutral">&nbsp;</span>
900
- <span class="cline-any cline-yes">1x</span>
901
- <span class="cline-any cline-no">&nbsp;</span>
902
- <span class="cline-any cline-no">&nbsp;</span>
903
- <span class="cline-any cline-no">&nbsp;</span>
904
- <span class="cline-any cline-neutral">&nbsp;</span>
905
- <span class="cline-any cline-no">&nbsp;</span>
906
- <span class="cline-any cline-no">&nbsp;</span>
907
- <span class="cline-any cline-neutral">&nbsp;</span>
908
- <span class="cline-any cline-no">&nbsp;</span>
909
- <span class="cline-any cline-no">&nbsp;</span>
910
- <span class="cline-any cline-neutral">&nbsp;</span>
911
- <span class="cline-any cline-no">&nbsp;</span>
912
- <span class="cline-any cline-no">&nbsp;</span>
913
- <span class="cline-any cline-neutral">&nbsp;</span>
914
- <span class="cline-any cline-no">&nbsp;</span>
915
- <span class="cline-any cline-no">&nbsp;</span>
916
- <span class="cline-any cline-no">&nbsp;</span>
917
- <span class="cline-any cline-neutral">&nbsp;</span>
918
- <span class="cline-any cline-no">&nbsp;</span>
919
- <span class="cline-any cline-neutral">&nbsp;</span>
920
- <span class="cline-any cline-no">&nbsp;</span>
921
- <span class="cline-any cline-neutral">&nbsp;</span>
922
- <span class="cline-any cline-yes">1x</span>
923
- <span class="cline-any cline-neutral">&nbsp;</span>
924
- <span class="cline-any cline-yes">1x</span>
925
- <span class="cline-any cline-neutral">&nbsp;</span>
926
- <span class="cline-any cline-neutral">&nbsp;</span>
927
- <span class="cline-any cline-neutral">&nbsp;</span>
928
- <span class="cline-any cline-neutral">&nbsp;</span>
929
- <span class="cline-any cline-neutral">&nbsp;</span>
930
- <span class="cline-any cline-neutral">&nbsp;</span>
931
- <span class="cline-any cline-yes">1x</span>
932
- <span class="cline-any cline-neutral">&nbsp;</span>
933
- <span class="cline-any cline-no">&nbsp;</span>
934
- <span class="cline-any cline-neutral">&nbsp;</span>
935
- <span class="cline-any cline-no">&nbsp;</span>
936
- <span class="cline-any cline-no">&nbsp;</span>
937
- <span class="cline-any cline-no">&nbsp;</span>
938
- <span class="cline-any cline-neutral">&nbsp;</span>
939
- <span class="cline-any cline-no">&nbsp;</span>
940
- <span class="cline-any cline-no">&nbsp;</span>
941
- <span class="cline-any cline-no">&nbsp;</span>
942
- <span class="cline-any cline-neutral">&nbsp;</span>
943
- <span class="cline-any cline-neutral">&nbsp;</span>
944
- <span class="cline-any cline-neutral">&nbsp;</span>
945
- <span class="cline-any cline-neutral">&nbsp;</span>
946
- <span class="cline-any cline-neutral">&nbsp;</span>
947
- <span class="cline-any cline-neutral">&nbsp;</span>
948
- <span class="cline-any cline-neutral">&nbsp;</span>
949
- <span class="cline-any cline-neutral">&nbsp;</span>
950
- <span class="cline-any cline-neutral">&nbsp;</span>
951
- <span class="cline-any cline-neutral">&nbsp;</span>
952
- <span class="cline-any cline-neutral">&nbsp;</span>
953
- <span class="cline-any cline-neutral">&nbsp;</span>
954
- <span class="cline-any cline-neutral">&nbsp;</span>
955
- <span class="cline-any cline-yes">1x</span>
956
- <span class="cline-any cline-neutral">&nbsp;</span>
957
- <span class="cline-any cline-neutral">&nbsp;</span>
958
- <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-neutral">&nbsp;</span>
960
- <span class="cline-any cline-neutral">&nbsp;</span>
961
- <span class="cline-any cline-neutral">&nbsp;</span>
962
- <span class="cline-any cline-neutral">&nbsp;</span>
963
- <span class="cline-any cline-no">&nbsp;</span>
964
- <span class="cline-any cline-neutral">&nbsp;</span>
965
- <span class="cline-any cline-no">&nbsp;</span>
966
- <span class="cline-any cline-no">&nbsp;</span>
967
- <span class="cline-any cline-no">&nbsp;</span>
968
- <span class="cline-any cline-no">&nbsp;</span>
969
- <span class="cline-any cline-no">&nbsp;</span>
970
- <span class="cline-any cline-no">&nbsp;</span>
971
- <span class="cline-any cline-no">&nbsp;</span>
972
- <span class="cline-any cline-neutral">&nbsp;</span>
973
- <span class="cline-any cline-neutral">&nbsp;</span>
974
- <span class="cline-any cline-no">&nbsp;</span>
975
- <span class="cline-any cline-no">&nbsp;</span>
976
- <span class="cline-any cline-neutral">&nbsp;</span>
977
- <span class="cline-any cline-neutral">&nbsp;</span>
978
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
979
- * @module util
980
- */
981
- &nbsp;
982
- import EtroObject from './object'
983
- import { Movie } from './movie'
984
- &nbsp;
985
- /**
986
- * Gets the first matching property descriptor in the prototype chain, or
987
- * undefined.
988
- * @param obj
989
- * @param name
990
- */
991
- function getPropertyDescriptor (obj: unknown, name: string | number | symbol): PropertyDescriptor {
992
- do {
993
- const propDesc = Object.getOwnPropertyDescriptor(obj, name)
994
- if (propDesc) {
995
- return propDesc
996
- }
997
- &nbsp;
998
- obj = Object.getPrototypeOf(obj)
999
- } while (obj)
1000
- return undefined
1001
- }
1002
- &nbsp;
1003
- /**
1004
- * Merges `options` with `defaultOptions`, and then copies the properties with
1005
- * the keys in `defaultOptions` from the merged object to `destObj`.
1006
- *
1007
- * @deprecated Each option should be copied individually, and the default value
1008
- * should be set in the constructor. See
1009
- * {@link https://github.com/etro-js/etro/issues/131} for more info.
1010
- *
1011
- * @return
1012
- */
1013
- // TODO: Make methods like getDefaultOptions private
1014
- export function applyOptions (options: object, destObj: EtroObject): void { // eslint-disable-line @typescript-eslint/ban-types
1015
- const defaultOptions = destObj.getDefaultOptions()
1016
- &nbsp;
1017
- // Validate; make sure `keys` doesn't have any extraneous items
1018
- for (const option in options) {
1019
- // eslint-disable-next-line no-prototype-builtins
1020
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!defaultOptions.hasOwnProperty(option)) {
1021
- <span class="cstat-no" title="statement not covered" > throw new Error("Invalid option: '" + option + "'")</span>
1022
- }
1023
- }
1024
- &nbsp;
1025
- // Merge options and defaultOptions
1026
- options = { ...defaultOptions, ...options }
1027
- &nbsp;
1028
- // Copy options
1029
- for (const option in options) {
1030
- const propDesc = getPropertyDescriptor(destObj, option)
1031
- // Update the property as long as the property has not been set (unless if it has a setter)
1032
- if (!propDesc || propDesc.set) {
1033
- destObj[option] = options[option]
1034
- }
1035
- }
1036
- }
1037
- &nbsp;
1038
- // This must be cleared at the start of each frame
1039
- const valCache = new WeakMap()
1040
- function cacheValue (element: EtroObject, path: string, value: unknown) {
1041
- // Initiate movie cache
1042
- if (!valCache.has(element.movie)) {
1043
- valCache.set(element.movie, new WeakMap())
1044
- }
1045
- &nbsp;
1046
- const movieCache = valCache.get(element.movie)
1047
- &nbsp;
1048
- // Initiate element cache
1049
- if (!movieCache.has(element)) {
1050
- movieCache.set(element, {})
1051
- }
1052
- &nbsp;
1053
- const elementCache = movieCache.get(element)
1054
- &nbsp;
1055
- // Cache the value
1056
- elementCache[path] = value
1057
- return value
1058
- }
1059
- function hasCachedValue (element, path) {
1060
- return valCache.has(element.movie) &amp;&amp;
1061
- valCache.get(element.movie).has(element) &amp;&amp;
1062
- path in valCache.get(element.movie).get(element)
1063
- }
1064
- function getCachedValue (element, path) {
1065
- return valCache.get(element.movie).get(element)[path]
1066
- }
1067
- export function clearCachedValues (movie: Movie): void {
1068
- valCache.delete(movie)
1069
- }
1070
- &nbsp;
1071
- type Interpolate = &lt;U = number | object&gt;(
1072
- startValue: U,
1073
- endValue: U,
1074
- percentProgress: number,
1075
- interpolationKeys: string[]
1076
- ) =&gt; U
1077
- &nbsp;
1078
- /**
1079
- * A keyframe set.
1080
- *
1081
- * Usage:
1082
- * ```js
1083
- new etro.KeyFrame([time1, value1, interpolation1], [time2, value2])`
1084
- * ```
1085
- * TypeScript users need to specify the type of the value as a type parameter.
1086
- */
1087
- export class KeyFrame&lt;T&gt; {
1088
- value: (number|T|Interpolate)[][]
1089
- /** Keys to interpolate, or all keys if undefined */
1090
- interpolationKeys: string[]
1091
- &nbsp;
1092
- constructor (...value: (number|T)[][]) {
1093
- this.value = value
1094
- this.interpolationKeys = []
1095
- }
1096
- &nbsp;
1097
- <span class="fstat-no" title="function not covered" > withKeys </span>(keys: string[]): KeyFrame&lt;T&gt; {
1098
- <span class="cstat-no" title="statement not covered" > this.interpolationKeys = keys</span>
1099
- <span class="cstat-no" title="statement not covered" > return this</span>
1100
- }
1101
- &nbsp;
1102
- evaluate (time: number): T {
1103
- <span class="missing-if-branch" title="if path not taken" >I</span>if (this.value.length === 0) {
1104
- <span class="cstat-no" title="statement not covered" > throw new Error('Empty keyframe')</span>
1105
- }
1106
- &nbsp;
1107
- <span class="missing-if-branch" title="if path not taken" >I</span>if (time === undefined) {
1108
- <span class="cstat-no" title="statement not covered" > throw new Error('|time| is undefined or null')</span>
1109
- }
1110
- &nbsp;
1111
- const firstTime: number = this.value[0][0] as number
1112
- <span class="missing-if-branch" title="if path not taken" >I</span>if (time &lt; firstTime) {
1113
- <span class="cstat-no" title="statement not covered" > throw new Error('No keyframe point before |time|')</span>
1114
- }
1115
- &nbsp;
1116
- // I think reduce are slow to do per-frame (or more)?
1117
- for (let i = 0; i &lt; this.value.length; i++) {
1118
- const startTime = this.value[i][0] as number
1119
- const startValue = this.value[i][1] as T
1120
- const interpolate =
1121
- this.value[i].length === 3
1122
- ? (<span class="branch-0 cbranch-no" title="branch not covered" >this.value[i][2] as Interpolate)</span>
1123
- : linearInterp
1124
- <span class="missing-if-branch" title="else path not taken" >E</span>if (i + 1 &lt; this.value.length) {
1125
- const endTime = this.value[i + 1][0] as number
1126
- const endValue = this.value[i + 1][1] as T
1127
- <span class="missing-if-branch" title="else path not taken" >E</span>if (startTime &lt;= time &amp;&amp; time &lt; endTime) {
1128
- // No need for endValue if it is flat interpolation
1129
- // TODO: support custom interpolation for 'other' types?
1130
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!(typeof startValue === 'number' || typeof endValue === 'object')) {
1131
- <span class="cstat-no" title="statement not covered" > return startValue</span>
1132
- } else <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof startValue !== typeof endValue) {
1133
- <span class="cstat-no" title="statement not covered" > throw new Error('Type mismatch in keyframe values')</span>
1134
- } else {
1135
- // Interpolate
1136
- const percentProgress = (time - startTime) / (endTime - startTime)
1137
- return interpolate(
1138
- startValue as unknown as (number | object), // eslint-disable-line @typescript-eslint/ban-types
1139
- endValue as unknown as (number | object), // eslint-disable-line @typescript-eslint/ban-types
1140
- percentProgress, this.interpolationKeys
1141
- ) as unknown as T
1142
- }
1143
- }
1144
- } else {
1145
- // Repeat last value forever
1146
- <span class="cstat-no" title="statement not covered" > return startValue</span>
1147
- }
1148
- }
1149
- }
1150
- }
1151
- &nbsp;
1152
- /** A dynamic property. Supports simple values, keyframes and functions */
1153
- export type Dynamic&lt;T&gt; = T | KeyFrame&lt;T&gt; | ((element: EtroObject, time: number) =&gt; T)
1154
- &nbsp;
1155
- /**
1156
- * Computes a property.
1157
- *
1158
- * @param element - the etro object to which the property belongs to
1159
- * @param path - the dot-separated path to a property on `element`
1160
- * @param time - time to calculate keyframes for, if necessary
1161
- *
1162
- * Note that only values used in keyframes that are numbers or objects
1163
- * (including arrays) are interpolated. All other values are taken sequentially
1164
- * with no interpolation. JavaScript will convert parsed colors, if created
1165
- * correctly, to their string representations when assigned to a
1166
- * CanvasRenderingContext2D property.
1167
- */
1168
- // TODO: Is this function efficient?
1169
- // TODO: Update doc @params to allow for keyframes
1170
- export function val (element: EtroObject, path: string, time: number): any { // eslint-disable-line @typescript-eslint/no-explicit-any
1171
- if (hasCachedValue(element, path)) {
1172
- return getCachedValue(element, path)
1173
- }
1174
- &nbsp;
1175
- // Get property of element at path
1176
- const pathParts = path.split('.')
1177
- let property = element[pathParts.shift()]
1178
- while (pathParts.length &gt; 0) {
1179
- <span class="cstat-no" title="statement not covered" > property = property[pathParts.shift()]</span>
1180
- }
1181
- &nbsp;
1182
- // Property filter function
1183
- const process = element.propertyFilters[path]
1184
- &nbsp;
1185
- let value
1186
- if (property instanceof KeyFrame) {
1187
- value = property.evaluate(time)
1188
- } else <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof property === 'function') {
1189
- <span class="cstat-no" title="statement not covered" > value = property(element, time)</span>
1190
- } else {
1191
- // Simple value
1192
- value = property
1193
- }
1194
- &nbsp;
1195
- return cacheValue(element, path, process ? process.call(element, value) : value)
1196
- }
1197
- &nbsp;
1198
- /* export function floorInterp(x1, x2, t, objectKeys) {
1199
- // https://stackoverflow.com/a/25835337/3783155 (TODO: preserve getters/setters, etc?)
1200
- return !objectKeys ? x1 : objectKeys.reduce((a, x) =&gt; {
1201
- if (x1.hasOwnProperty(x)) a[x] = o[x]; // ignore x2
1202
- return a;
1203
- }, Object.create(Object.getPrototypeOf(x1)));
1204
- } */
1205
- &nbsp;
1206
- export function linearInterp (x1: number | object, x2: number | object, t: number, objectKeys?: string[]): number | object { // eslint-disable-line @typescript-eslint/ban-types
1207
- <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof x1 !== typeof x2) {
1208
- <span class="cstat-no" title="statement not covered" > throw new Error('Type mismatch')</span>
1209
- }
1210
- &nbsp;
1211
- <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof x1 !== 'number' &amp;&amp; typeof x1 !== 'object') {
1212
- // Flat interpolation (floor)
1213
- <span class="cstat-no" title="statement not covered" > return x1</span>
1214
- }
1215
- &nbsp;
1216
- if (typeof x1 === 'object') { // to work with objects (including arrays)
1217
- // TODO: make this code DRY
1218
- <span class="missing-if-branch" title="if path not taken" >I</span>if (Object.getPrototypeOf(x1) !== Object.getPrototypeOf(x2)) {
1219
- <span class="cstat-no" title="statement not covered" > throw new Error('Prototype mismatch')</span>
1220
- }
1221
- &nbsp;
1222
- // Preserve prototype of objects
1223
- const int = Object.create(Object.getPrototypeOf(x1))
1224
- // Take the intersection of properties
1225
- const keys = Object.keys(x1) || <span class="branch-1 cbranch-no" title="branch not covered" >objectKeys </span>// TODO: reverse operands
1226
- for (let i = 0; i &lt; keys.length; i++) {
1227
- const key = keys[i]
1228
- // eslint-disable-next-line no-prototype-builtins
1229
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!x1.hasOwnProperty(key) || !x2.hasOwnProperty(key)) {
1230
- <span class="cstat-no" title="statement not covered" > continue</span>
1231
- }
1232
- &nbsp;
1233
- int[key] = linearInterp(x1[key], x2[key], t)
1234
- }
1235
- return int
1236
- }
1237
- return (1 - t) * x1 + t * (x2 as number)
1238
- }
1239
- &nbsp;
1240
- export function <span class="fstat-no" title="function not covered" >cosineInterp </span>(x1: number | object, x2: number | object, t: number, objectKeys?: string[]): number | object { // eslint-disable-line @typescript-eslint/ban-types
1241
- <span class="cstat-no" title="statement not covered" > if (typeof x1 !== typeof x2) {</span>
1242
- <span class="cstat-no" title="statement not covered" > throw new Error('Type mismatch')</span>
1243
- }
1244
- &nbsp;
1245
- <span class="cstat-no" title="statement not covered" > if (typeof x1 !== 'number' &amp;&amp; typeof x1 !== 'object') {</span>
1246
- // Flat interpolation (floor)
1247
- <span class="cstat-no" title="statement not covered" > return x1</span>
1248
- }
1249
- &nbsp;
1250
- <span class="cstat-no" title="statement not covered" > if (typeof x1 === 'object' &amp;&amp; typeof x2 === 'object') { // to work with objects (including arrays)</span>
1251
- <span class="cstat-no" title="statement not covered" > if (Object.getPrototypeOf(x1) !== Object.getPrototypeOf(x2)) {</span>
1252
- <span class="cstat-no" title="statement not covered" > throw new Error('Prototype mismatch')</span>
1253
- }
1254
- &nbsp;
1255
- // Preserve prototype of objects
1256
- const int = <span class="cstat-no" title="statement not covered" >Object.create(Object.getPrototypeOf(x1))</span>
1257
- // Take the intersection of properties
1258
- const keys = <span class="cstat-no" title="statement not covered" >Object.keys(x1) || objectKeys</span>
1259
- <span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i &lt; keys.length; i++) {</span>
1260
- const key = <span class="cstat-no" title="statement not covered" >keys[i]</span>
1261
- // eslint-disable-next-line no-prototype-builtins
1262
- <span class="cstat-no" title="statement not covered" > if (!x1.hasOwnProperty(key) || !x2.hasOwnProperty(key)) {</span>
1263
- <span class="cstat-no" title="statement not covered" > continue</span>
1264
- }
1265
- &nbsp;
1266
- <span class="cstat-no" title="statement not covered" > int[key] = cosineInterp(x1[key], x2[key], t)</span>
1267
- }
1268
- <span class="cstat-no" title="statement not covered" > return int</span>
1269
- }
1270
- const cos = <span class="cstat-no" title="statement not covered" >Math.cos(Math.PI / 2 * t)</span>
1271
- <span class="cstat-no" title="statement not covered" > return cos * (x1 as number) + (1 - cos) * (x2 as number)</span>
1272
- }
1273
- &nbsp;
1274
- /**
1275
- * An RGBA color, for proper interpolation and shader effects
1276
- */
1277
- export class Color {
1278
- r: number
1279
- g: number
1280
- b: number
1281
- a: number
1282
- &nbsp;
1283
- /**
1284
- * @param r
1285
- * @param g
1286
- * @param b
1287
- * @param a
1288
- */
1289
- constructor (r: number, g: number, b: number, a = 1.0) {
1290
- this.r = r
1291
- this.g = g
1292
- this.b = b
1293
- this.a = a
1294
- }
1295
- &nbsp;
1296
- /**
1297
- * Converts to a CSS color
1298
- */
1299
- toString (): string {
1300
- return `rgba(${this.r}, ${this.g}, ${this.b}, ${this.a})`
1301
- }
1302
- }
1303
- &nbsp;
1304
- const parseColorCanvas = document.createElement('canvas')
1305
- parseColorCanvas.width = parseColorCanvas.height = 1
1306
- const parseColorCtx = parseColorCanvas.getContext('2d')
1307
- /**
1308
- * Converts a CSS color string to a {@link Color} object representation.
1309
- * @param str
1310
- * @return the parsed color
1311
- */
1312
- export function parseColor (str: string): Color {
1313
- // TODO - find a better way to deal with the fact that invalid values of "col"
1314
- // are ignored.
1315
- parseColorCtx.clearRect(0, 0, 1, 1)
1316
- parseColorCtx.fillStyle = str
1317
- parseColorCtx.fillRect(0, 0, 1, 1)
1318
- const data = parseColorCtx.getImageData(0, 0, 1, 1).data
1319
- return new Color(data[0], data[1], data[2], data[3] / 255)
1320
- }
1321
- &nbsp;
1322
- /**
1323
- * A font, for proper interpolation
1324
- */
1325
- export class Font {
1326
- size: number
1327
- sizeUnit: string
1328
- family: string
1329
- style: string
1330
- variant: string
1331
- weight: string
1332
- stretch: string
1333
- lineHeight: string
1334
- &nbsp;
1335
- /**
1336
- * @param size
1337
- * @param family
1338
- * @param sizeUnit
1339
- */
1340
- <span class="fstat-no" title="function not covered" > constructor (s</span>ize: number, sizeUnit: string, family: string, <span class="cstat-no" title="statement not covered" >style = 'normal', <span class="cstat-no" title="statement not covered" >v</span>ariant = 'normal',</span>
1341
- <span class="cstat-no" title="statement not covered" > weight = 'normal', <span class="cstat-no" title="statement not covered" >s</span>tretch = 'normal', <span class="cstat-no" title="statement not covered" >l</span>ineHeight = 'normal') {</span>
1342
- <span class="cstat-no" title="statement not covered" > this.size = size</span>
1343
- <span class="cstat-no" title="statement not covered" > this.sizeUnit = sizeUnit</span>
1344
- <span class="cstat-no" title="statement not covered" > this.family = family</span>
1345
- <span class="cstat-no" title="statement not covered" > this.style = style</span>
1346
- <span class="cstat-no" title="statement not covered" > this.variant = variant</span>
1347
- <span class="cstat-no" title="statement not covered" > this.weight = weight</span>
1348
- <span class="cstat-no" title="statement not covered" > this.stretch = stretch</span>
1349
- <span class="cstat-no" title="statement not covered" > this.lineHeight = lineHeight</span>
1350
- }
1351
- &nbsp;
1352
- /**
1353
- * Converts to CSS font syntax
1354
- * @see https://developer.mozilla.org/en-US/docs/Web/CSS/font
1355
- */
1356
- <span class="fstat-no" title="function not covered" > toString </span>(): string {
1357
- let s = <span class="cstat-no" title="statement not covered" >''</span>
1358
- <span class="cstat-no" title="statement not covered" > if (this.style !== 'normal') {</span>
1359
- <span class="cstat-no" title="statement not covered" > s += this.style + ' '</span>
1360
- }
1361
- <span class="cstat-no" title="statement not covered" > if (this.variant !== 'normal') {</span>
1362
- <span class="cstat-no" title="statement not covered" > s += this.variant + ' '</span>
1363
- }
1364
- <span class="cstat-no" title="statement not covered" > if (this.weight !== 'normal') {</span>
1365
- <span class="cstat-no" title="statement not covered" > s += this.weight + ' '</span>
1366
- }
1367
- <span class="cstat-no" title="statement not covered" > if (this.stretch !== 'normal') {</span>
1368
- <span class="cstat-no" title="statement not covered" > s += this.stretch + ' '</span>
1369
- }
1370
- <span class="cstat-no" title="statement not covered" > s += `${this.size}${this.sizeUnit} `</span>
1371
- <span class="cstat-no" title="statement not covered" > if (this.lineHeight !== 'normal') {</span>
1372
- <span class="cstat-no" title="statement not covered" > s += this.lineHeight + ' '</span>
1373
- }
1374
- <span class="cstat-no" title="statement not covered" > s += this.family</span>
1375
- &nbsp;
1376
- <span class="cstat-no" title="statement not covered" > return s</span>
1377
- }
1378
- }
1379
- &nbsp;
1380
- const parseFontEl = document.createElement('div')
1381
- /**
1382
- * Converts a CSS font string to a {@link Font} object
1383
- * representation.
1384
- * @param str
1385
- * @return the parsed font
1386
- */
1387
- export function <span class="fstat-no" title="function not covered" >parseFont </span>(str: string): Font {
1388
- // Assign css string to html element
1389
- <span class="cstat-no" title="statement not covered" > parseFontEl.setAttribute('style', `font: ${str}`)</span>
1390
- const {
1391
- fontSize<span class="cstat-no" title="statement not covered" >, f</span>ontFamily<span class="cstat-no" title="statement not covered" >, f</span>ontStyle<span class="cstat-no" title="statement not covered" >, f</span>ontVariant<span class="cstat-no" title="statement not covered" >, f</span>ontWeight<span class="cstat-no" title="statement not covered" >, l</span>ineHeight<span class="cstat-no" title="statement not covered" ></span>
1392
- } = <span class="cstat-no" title="statement not covered" >parseFontEl.style</span>
1393
- <span class="cstat-no" title="statement not covered" > parseFontEl.removeAttribute('style')</span>
1394
- &nbsp;
1395
- const size = <span class="cstat-no" title="statement not covered" >parseFloat(fontSize)</span>
1396
- const sizeUnit = <span class="cstat-no" title="statement not covered" >fontSize.substring(size.toString().length)</span>
1397
- <span class="cstat-no" title="statement not covered" > return new Font(size, sizeUnit, fontFamily, fontStyle, fontVariant, fontWeight, lineHeight)</span>
1398
- }
1399
- &nbsp;
1400
- /**
1401
- * @param mapper
1402
- * @param canvas
1403
- * @param ctx
1404
- * @param x
1405
- * @param y
1406
- * @param width
1407
- * @param height
1408
- * @param flush
1409
- * @deprecated Use {@link effect.Shader} instead
1410
- */
1411
- export function <span class="fstat-no" title="function not covered" >mapPixels </span>(
1412
- mapper: (pixels: Uint8ClampedArray, i: number) =&gt; void,
1413
- canvas: HTMLCanvasElement,
1414
- ctx: CanvasRenderingContext2D,
1415
- x: number,
1416
- y: number,
1417
- width: number,
1418
- height: number,
1419
- <span class="cstat-no" title="statement not covered" > flush = true</span>
1420
- ): void {
1421
- <span class="cstat-no" title="statement not covered" > x = x || 0</span>
1422
- <span class="cstat-no" title="statement not covered" > y = y || 0</span>
1423
- <span class="cstat-no" title="statement not covered" > width = width || canvas.width</span>
1424
- <span class="cstat-no" title="statement not covered" > height = height || canvas.height</span>
1425
- const frame = <span class="cstat-no" title="statement not covered" >ctx.getImageData(x, y, width, height)</span>
1426
- <span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0,</span> l = <span class="cstat-no" title="statement not covered" >frame.data.length;</span> i &lt; l; i += 4) {</span>
1427
- <span class="cstat-no" title="statement not covered" > mapper(frame.data, i)</span>
1428
- }
1429
- &nbsp;
1430
- <span class="cstat-no" title="statement not covered" > if (flush) {</span>
1431
- <span class="cstat-no" title="statement not covered" > ctx.putImageData(frame, x, y)</span>
1432
- }
1433
- }
1434
- &nbsp;</pre></td></tr></table></pre>
1435
-
1436
- <div class='push'></div><!-- for sticky footer -->
1437
- </div><!-- /wrapper -->
1438
- <div class='footer quiet pad2 space-top1 center small'>
1439
- Code coverage generated by
1440
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1441
- at 2026-03-18T01:44:31.770Z
1442
- </div>
1443
- <script src="../prettify.js"></script>
1444
- <script>
1445
- window.onload = function () {
1446
- prettyPrint();
1447
- };
1448
- </script>
1449
- <script src="../sorter.js"></script>
1450
- <script src="../block-navigation.js"></script>
1451
- </body>
1452
- </html>
1453
-