angular-three 0.0.2 → 0.0.3

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 (388) hide show
  1. package/attributes/README.md +3 -0
  2. package/attributes/index.d.ts +22 -0
  3. package/attributes/lib/buffer-attribute/buffer-attribute.d.ts +8 -0
  4. package/attributes/lib/color-attribute/color-attribute.d.ts +8 -0
  5. package/attributes/lib/float16-buffer-attribute/float16-buffer-attribute.d.ts +8 -0
  6. package/attributes/lib/float32-buffer-attribute/float32-buffer-attribute.d.ts +8 -0
  7. package/attributes/lib/float64-buffer-attribute/float64-buffer-attribute.d.ts +8 -0
  8. package/attributes/lib/fog-attribute/fog-attribute.d.ts +8 -0
  9. package/attributes/lib/fog-exp2-attribute/fog-exp2-attribute.d.ts +8 -0
  10. package/attributes/lib/instanced-buffer-attribute/instanced-buffer-attribute.d.ts +8 -0
  11. package/attributes/lib/int16-buffer-attribute/int16-buffer-attribute.d.ts +8 -0
  12. package/attributes/lib/int32-buffer-attribute/int32-buffer-attribute.d.ts +8 -0
  13. package/attributes/lib/int8-buffer-attribute/int8-buffer-attribute.d.ts +8 -0
  14. package/attributes/lib/interleaved-buffer-attribute/interleaved-buffer-attribute.d.ts +8 -0
  15. package/attributes/lib/matrix3-attribute/matrix3-attribute.d.ts +8 -0
  16. package/attributes/lib/matrix4-attribute/matrix4-attribute.d.ts +8 -0
  17. package/attributes/lib/uint16-buffer-attribute/uint16-buffer-attribute.d.ts +8 -0
  18. package/attributes/lib/uint32-buffer-attribute/uint32-buffer-attribute.d.ts +8 -0
  19. package/attributes/lib/uint8-buffer-attribute/uint8-buffer-attribute.d.ts +8 -0
  20. package/attributes/lib/uint8-clamped-buffer-attribute/uint8-clamped-buffer-attribute.d.ts +8 -0
  21. package/attributes/lib/value-attribute/value-attribute.d.ts +8 -0
  22. package/attributes/lib/vector2-attribute/vector2-attribute.d.ts +8 -0
  23. package/attributes/lib/vector3-attribute/vector3-attribute.d.ts +8 -0
  24. package/attributes/lib/vector4-attribute/vector4-attribute.d.ts +8 -0
  25. package/audios/README.md +3 -0
  26. package/audios/index.d.ts +3 -0
  27. package/audios/lib/audio/audio.d.ts +49 -0
  28. package/audios/lib/audio-listener/audio-listener.d.ts +35 -0
  29. package/audios/lib/positional-audio/positional-audio.d.ts +49 -0
  30. package/cameras/README.md +3 -0
  31. package/cameras/index.d.ts +5 -0
  32. package/cameras/lib/array-camera/array-camera.d.ts +56 -0
  33. package/cameras/lib/cube-camera/cube-camera.d.ts +36 -0
  34. package/cameras/lib/orthographic-camera/orthographic-camera.d.ts +54 -0
  35. package/cameras/lib/perspective-camera/perspective-camera.d.ts +55 -0
  36. package/cameras/lib/stereo-camera/stereo-camera.d.ts +42 -0
  37. package/esm2020/attributes/angular-three-attributes.mjs +5 -0
  38. package/esm2020/attributes/index.mjs +24 -0
  39. package/esm2020/attributes/lib/buffer-attribute/buffer-attribute.mjs +25 -0
  40. package/esm2020/attributes/lib/color-attribute/color-attribute.mjs +25 -0
  41. package/esm2020/attributes/lib/float16-buffer-attribute/float16-buffer-attribute.mjs +25 -0
  42. package/esm2020/attributes/lib/float32-buffer-attribute/float32-buffer-attribute.mjs +25 -0
  43. package/esm2020/attributes/lib/float64-buffer-attribute/float64-buffer-attribute.mjs +25 -0
  44. package/esm2020/attributes/lib/fog-attribute/fog-attribute.mjs +25 -0
  45. package/esm2020/attributes/lib/fog-exp2-attribute/fog-exp2-attribute.mjs +25 -0
  46. package/esm2020/attributes/lib/instanced-buffer-attribute/instanced-buffer-attribute.mjs +25 -0
  47. package/esm2020/attributes/lib/int16-buffer-attribute/int16-buffer-attribute.mjs +25 -0
  48. package/esm2020/attributes/lib/int32-buffer-attribute/int32-buffer-attribute.mjs +25 -0
  49. package/esm2020/attributes/lib/int8-buffer-attribute/int8-buffer-attribute.mjs +25 -0
  50. package/esm2020/attributes/lib/interleaved-buffer-attribute/interleaved-buffer-attribute.mjs +29 -0
  51. package/esm2020/attributes/lib/matrix3-attribute/matrix3-attribute.mjs +25 -0
  52. package/esm2020/attributes/lib/matrix4-attribute/matrix4-attribute.mjs +25 -0
  53. package/esm2020/attributes/lib/uint16-buffer-attribute/uint16-buffer-attribute.mjs +25 -0
  54. package/esm2020/attributes/lib/uint32-buffer-attribute/uint32-buffer-attribute.mjs +25 -0
  55. package/esm2020/attributes/lib/uint8-buffer-attribute/uint8-buffer-attribute.mjs +25 -0
  56. package/esm2020/attributes/lib/uint8-clamped-buffer-attribute/uint8-clamped-buffer-attribute.mjs +25 -0
  57. package/esm2020/attributes/lib/value-attribute/value-attribute.mjs +27 -0
  58. package/esm2020/attributes/lib/vector2-attribute/vector2-attribute.mjs +25 -0
  59. package/esm2020/attributes/lib/vector3-attribute/vector3-attribute.mjs +25 -0
  60. package/esm2020/attributes/lib/vector4-attribute/vector4-attribute.mjs +25 -0
  61. package/esm2020/audios/angular-three-audios.mjs +5 -0
  62. package/esm2020/audios/index.mjs +5 -0
  63. package/esm2020/audios/lib/audio/audio.mjs +68 -0
  64. package/esm2020/audios/lib/audio-listener/audio-listener.mjs +65 -0
  65. package/esm2020/audios/lib/positional-audio/positional-audio.mjs +68 -0
  66. package/esm2020/cameras/angular-three-cameras.mjs +5 -0
  67. package/esm2020/cameras/index.mjs +7 -0
  68. package/esm2020/cameras/lib/array-camera/array-camera.mjs +67 -0
  69. package/esm2020/cameras/lib/cube-camera/cube-camera.mjs +55 -0
  70. package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +65 -0
  71. package/esm2020/cameras/lib/perspective-camera/perspective-camera.mjs +66 -0
  72. package/esm2020/cameras/lib/stereo-camera/stereo-camera.mjs +61 -0
  73. package/esm2020/geometries/angular-three-geometries.mjs +5 -0
  74. package/esm2020/geometries/index.mjs +25 -0
  75. package/esm2020/geometries/lib/box-geometry/box-geometry.mjs +25 -0
  76. package/esm2020/geometries/lib/buffer-geometry/buffer-geometry.mjs +25 -0
  77. package/esm2020/geometries/lib/capsule-geometry/capsule-geometry.mjs +25 -0
  78. package/esm2020/geometries/lib/circle-geometry/circle-geometry.mjs +25 -0
  79. package/esm2020/geometries/lib/cone-geometry/cone-geometry.mjs +25 -0
  80. package/esm2020/geometries/lib/cylinder-geometry/cylinder-geometry.mjs +25 -0
  81. package/esm2020/geometries/lib/dodecahedron-geometry/dodecahedron-geometry.mjs +25 -0
  82. package/esm2020/geometries/lib/edges-geometry/edges-geometry.mjs +25 -0
  83. package/esm2020/geometries/lib/extrude-geometry/extrude-geometry.mjs +25 -0
  84. package/esm2020/geometries/lib/icosahedron-geometry/icosahedron-geometry.mjs +25 -0
  85. package/esm2020/geometries/lib/instanced-buffer-geometry/instanced-buffer-geometry.mjs +25 -0
  86. package/esm2020/geometries/lib/lathe-geometry/lathe-geometry.mjs +25 -0
  87. package/esm2020/geometries/lib/octahedron-geometry/octahedron-geometry.mjs +25 -0
  88. package/esm2020/geometries/lib/plane-geometry/plane-geometry.mjs +25 -0
  89. package/esm2020/geometries/lib/polyhedron-geometry/polyhedron-geometry.mjs +25 -0
  90. package/esm2020/geometries/lib/ring-geometry/ring-geometry.mjs +25 -0
  91. package/esm2020/geometries/lib/shape-geometry/shape-geometry.mjs +25 -0
  92. package/esm2020/geometries/lib/sphere-geometry/sphere-geometry.mjs +25 -0
  93. package/esm2020/geometries/lib/tetrahedron-geometry/tetrahedron-geometry.mjs +25 -0
  94. package/esm2020/geometries/lib/torus-geometry/torus-geometry.mjs +25 -0
  95. package/esm2020/geometries/lib/torus-knot-geometry/torus-knot-geometry.mjs +25 -0
  96. package/esm2020/geometries/lib/tube-geometry/tube-geometry.mjs +25 -0
  97. package/esm2020/geometries/lib/wireframe-geometry/wireframe-geometry.mjs +25 -0
  98. package/esm2020/helpers/angular-three-helpers.mjs +5 -0
  99. package/esm2020/helpers/index.mjs +15 -0
  100. package/esm2020/helpers/lib/arrow-helper/arrow-helper.mjs +25 -0
  101. package/esm2020/helpers/lib/axes-helper/axes-helper.mjs +25 -0
  102. package/esm2020/helpers/lib/box-helper/box-helper.mjs +35 -0
  103. package/esm2020/helpers/lib/box3-helper/box3-helper.mjs +35 -0
  104. package/esm2020/helpers/lib/camera-helper/camera-helper.mjs +35 -0
  105. package/esm2020/helpers/lib/directional-light-helper/directional-light-helper.mjs +35 -0
  106. package/esm2020/helpers/lib/grid-helper/grid-helper.mjs +25 -0
  107. package/esm2020/helpers/lib/hemisphere-light-helper/hemisphere-light-helper.mjs +35 -0
  108. package/esm2020/helpers/lib/plane-helper/plane-helper.mjs +35 -0
  109. package/esm2020/helpers/lib/point-light-helper/point-light-helper.mjs +35 -0
  110. package/esm2020/helpers/lib/polar-grid-helper/polar-grid-helper.mjs +25 -0
  111. package/esm2020/helpers/lib/skeleton-helper/skeleton-helper.mjs +35 -0
  112. package/esm2020/helpers/lib/spot-light-helper/spot-light-helper.mjs +35 -0
  113. package/esm2020/index.mjs +12 -2
  114. package/esm2020/lib/canvas.mjs +227 -0
  115. package/esm2020/lib/di/resize.mjs +19 -0
  116. package/esm2020/lib/di/window.mjs +13 -0
  117. package/esm2020/lib/directives/args.mjs +30 -0
  118. package/esm2020/lib/events.mjs +53 -0
  119. package/esm2020/lib/instance.mjs +358 -0
  120. package/esm2020/lib/ref.mjs +15 -0
  121. package/esm2020/lib/services/loader.mjs +45 -0
  122. package/esm2020/lib/services/resize.mjs +127 -0
  123. package/esm2020/lib/stores/component-store.mjs +137 -0
  124. package/esm2020/lib/stores/store.mjs +433 -0
  125. package/esm2020/lib/types.mjs +2 -0
  126. package/esm2020/lib/utils/apply-props.mjs +135 -0
  127. package/esm2020/lib/utils/build-graph.mjs +15 -0
  128. package/esm2020/lib/utils/camera.mjs +28 -0
  129. package/esm2020/lib/utils/capitalize.mjs +4 -0
  130. package/esm2020/lib/utils/check-update.mjs +22 -0
  131. package/esm2020/lib/utils/events.mjs +353 -0
  132. package/esm2020/lib/utils/get-instance-local-state.mjs +6 -0
  133. package/esm2020/lib/utils/inject.mjs +18 -0
  134. package/esm2020/lib/utils/instance.mjs +35 -0
  135. package/esm2020/lib/utils/is.mjs +54 -0
  136. package/esm2020/lib/utils/loop.mjs +139 -0
  137. package/esm2020/lib/utils/make.mjs +30 -0
  138. package/esm2020/lib/utils/mutate.mjs +24 -0
  139. package/esm2020/lib/utils/proxy.mjs +99 -0
  140. package/esm2020/lib/utils/renderer.mjs +15 -0
  141. package/esm2020/lights/angular-three-lights.mjs +5 -0
  142. package/esm2020/lights/index.mjs +11 -0
  143. package/esm2020/lights/lib/ambient-light/ambient-light.mjs +68 -0
  144. package/esm2020/lights/lib/ambient-light-probe/ambient-light-probe.mjs +69 -0
  145. package/esm2020/lights/lib/directional-light/directional-light.mjs +69 -0
  146. package/esm2020/lights/lib/hemisphere-light/hemisphere-light.mjs +70 -0
  147. package/esm2020/lights/lib/hemisphere-light-probe/hemisphere-light-probe.mjs +71 -0
  148. package/esm2020/lights/lib/light-probe/light-probe.mjs +69 -0
  149. package/esm2020/lights/lib/point-light/point-light.mjs +71 -0
  150. package/esm2020/lights/lib/rect-area-light/rect-area-light.mjs +71 -0
  151. package/esm2020/lights/lib/spot-light/spot-light.mjs +74 -0
  152. package/esm2020/materials/angular-three-materials.mjs +5 -0
  153. package/esm2020/materials/index.mjs +19 -0
  154. package/esm2020/materials/lib/line-basic-material/line-basic-material.mjs +76 -0
  155. package/esm2020/materials/lib/line-dashed-material/line-dashed-material.mjs +79 -0
  156. package/esm2020/materials/lib/mesh-basic-material/mesh-basic-material.mjs +88 -0
  157. package/esm2020/materials/lib/mesh-depth-material/mesh-depth-material.mjs +79 -0
  158. package/esm2020/materials/lib/mesh-distance-material/mesh-distance-material.mjs +79 -0
  159. package/esm2020/materials/lib/mesh-lambert-material/mesh-lambert-material.mjs +99 -0
  160. package/esm2020/materials/lib/mesh-matcap-material/mesh-matcap-material.mjs +85 -0
  161. package/esm2020/materials/lib/mesh-normal-material/mesh-normal-material.mjs +82 -0
  162. package/esm2020/materials/lib/mesh-phong-material/mesh-phong-material.mjs +102 -0
  163. package/esm2020/materials/lib/mesh-physical-material/mesh-physical-material.mjs +118 -0
  164. package/esm2020/materials/lib/mesh-standard-material/mesh-standard-material.mjs +99 -0
  165. package/esm2020/materials/lib/mesh-toon-material/mesh-toon-material.mjs +95 -0
  166. package/esm2020/materials/lib/points-material/points-material.mjs +77 -0
  167. package/esm2020/materials/lib/raw-shader-material/raw-shader-material.mjs +82 -0
  168. package/esm2020/materials/lib/shader-material/shader-material.mjs +82 -0
  169. package/esm2020/materials/lib/shadow-material/shadow-material.mjs +73 -0
  170. package/esm2020/materials/lib/sprite-material/sprite-material.mjs +77 -0
  171. package/esm2020/objects/angular-three-objects.mjs +5 -0
  172. package/esm2020/objects/index.mjs +14 -0
  173. package/esm2020/objects/lib/bone/bone.mjs +54 -0
  174. package/esm2020/objects/lib/group/group.mjs +54 -0
  175. package/esm2020/objects/lib/instanced-mesh/instanced-mesh.mjs +63 -0
  176. package/esm2020/objects/lib/line/line.mjs +58 -0
  177. package/esm2020/objects/lib/line-loop/line-loop.mjs +58 -0
  178. package/esm2020/objects/lib/line-segments/line-segments.mjs +58 -0
  179. package/esm2020/objects/lib/lod/lod.mjs +57 -0
  180. package/esm2020/objects/lib/mesh/mesh.mjs +58 -0
  181. package/esm2020/objects/lib/points/points.mjs +58 -0
  182. package/esm2020/objects/lib/skeleton/skeleton.mjs +49 -0
  183. package/esm2020/objects/lib/skinned-mesh/skinned-mesh.mjs +62 -0
  184. package/esm2020/objects/lib/sprite/sprite.mjs +57 -0
  185. package/esm2020/primitives/angular-three-primitives.mjs +5 -0
  186. package/esm2020/primitives/index.mjs +3 -0
  187. package/esm2020/primitives/lib/object-primitive/object-primitive.mjs +54 -0
  188. package/esm2020/primitives/lib/primitive/primitive.mjs +37 -0
  189. package/esm2020/stats/angular-three-stats.mjs +5 -0
  190. package/esm2020/stats/index.mjs +2 -0
  191. package/esm2020/stats/lib/stats/stats.mjs +54 -0
  192. package/esm2020/textures/angular-three-textures.mjs +5 -0
  193. package/esm2020/textures/index.mjs +12 -0
  194. package/esm2020/textures/lib/canvas-texture/canvas-texture.mjs +25 -0
  195. package/esm2020/textures/lib/compressed-array-texture/compressed-array-texture.mjs +25 -0
  196. package/esm2020/textures/lib/compressed-texture/compressed-texture.mjs +25 -0
  197. package/esm2020/textures/lib/cube-texture/cube-texture.mjs +25 -0
  198. package/esm2020/textures/lib/data-array-texture/data-array-texture.mjs +25 -0
  199. package/esm2020/textures/lib/data-texture/data-texture.mjs +25 -0
  200. package/esm2020/textures/lib/data3-dtexture/data3-dtexture.mjs +25 -0
  201. package/esm2020/textures/lib/depth-texture/depth-texture.mjs +25 -0
  202. package/esm2020/textures/lib/framebuffer-texture/framebuffer-texture.mjs +25 -0
  203. package/esm2020/textures/lib/video-texture/video-texture.mjs +25 -0
  204. package/fesm2015/angular-three-attributes.mjs +462 -0
  205. package/fesm2015/angular-three-attributes.mjs.map +1 -0
  206. package/fesm2015/angular-three-audios.mjs +200 -0
  207. package/fesm2015/angular-three-audios.mjs.map +1 -0
  208. package/fesm2015/angular-three-cameras.mjs +304 -0
  209. package/fesm2015/angular-three-cameras.mjs.map +1 -0
  210. package/fesm2015/angular-three-geometries.mjs +475 -0
  211. package/fesm2015/angular-three-geometries.mjs.map +1 -0
  212. package/fesm2015/angular-three-helpers.mjs +365 -0
  213. package/fesm2015/angular-three-helpers.mjs.map +1 -0
  214. package/fesm2015/angular-three-lights.mjs +602 -0
  215. package/fesm2015/angular-three-lights.mjs.map +1 -0
  216. package/fesm2015/angular-three-materials.mjs +1402 -0
  217. package/fesm2015/angular-three-materials.mjs.map +1 -0
  218. package/fesm2015/angular-three-objects.mjs +641 -0
  219. package/fesm2015/angular-three-objects.mjs.map +1 -0
  220. package/fesm2015/angular-three-primitives.mjs +95 -0
  221. package/fesm2015/angular-three-primitives.mjs.map +1 -0
  222. package/fesm2015/angular-three-stats.mjs +62 -0
  223. package/fesm2015/angular-three-stats.mjs.map +1 -0
  224. package/fesm2015/angular-three-textures.mjs +215 -0
  225. package/fesm2015/angular-three-textures.mjs.map +1 -0
  226. package/fesm2015/angular-three.mjs +2327 -10
  227. package/fesm2015/angular-three.mjs.map +1 -1
  228. package/fesm2020/angular-three-attributes.mjs +462 -0
  229. package/fesm2020/angular-three-attributes.mjs.map +1 -0
  230. package/fesm2020/angular-three-audios.mjs +200 -0
  231. package/fesm2020/angular-three-audios.mjs.map +1 -0
  232. package/fesm2020/angular-three-cameras.mjs +304 -0
  233. package/fesm2020/angular-three-cameras.mjs.map +1 -0
  234. package/fesm2020/angular-three-geometries.mjs +475 -0
  235. package/fesm2020/angular-three-geometries.mjs.map +1 -0
  236. package/fesm2020/angular-three-helpers.mjs +365 -0
  237. package/fesm2020/angular-three-helpers.mjs.map +1 -0
  238. package/fesm2020/angular-three-lights.mjs +602 -0
  239. package/fesm2020/angular-three-lights.mjs.map +1 -0
  240. package/fesm2020/angular-three-materials.mjs +1402 -0
  241. package/fesm2020/angular-three-materials.mjs.map +1 -0
  242. package/fesm2020/angular-three-objects.mjs +641 -0
  243. package/fesm2020/angular-three-objects.mjs.map +1 -0
  244. package/fesm2020/angular-three-primitives.mjs +95 -0
  245. package/fesm2020/angular-three-primitives.mjs.map +1 -0
  246. package/fesm2020/angular-three-stats.mjs +62 -0
  247. package/fesm2020/angular-three-stats.mjs.map +1 -0
  248. package/fesm2020/angular-three-textures.mjs +215 -0
  249. package/fesm2020/angular-three-textures.mjs.map +1 -0
  250. package/fesm2020/angular-three.mjs +2344 -10
  251. package/fesm2020/angular-three.mjs.map +1 -1
  252. package/geometries/README.md +3 -0
  253. package/geometries/index.d.ts +23 -0
  254. package/geometries/lib/box-geometry/box-geometry.d.ts +8 -0
  255. package/geometries/lib/buffer-geometry/buffer-geometry.d.ts +8 -0
  256. package/geometries/lib/capsule-geometry/capsule-geometry.d.ts +8 -0
  257. package/geometries/lib/circle-geometry/circle-geometry.d.ts +8 -0
  258. package/geometries/lib/cone-geometry/cone-geometry.d.ts +8 -0
  259. package/geometries/lib/cylinder-geometry/cylinder-geometry.d.ts +8 -0
  260. package/geometries/lib/dodecahedron-geometry/dodecahedron-geometry.d.ts +8 -0
  261. package/geometries/lib/edges-geometry/edges-geometry.d.ts +8 -0
  262. package/geometries/lib/extrude-geometry/extrude-geometry.d.ts +8 -0
  263. package/geometries/lib/icosahedron-geometry/icosahedron-geometry.d.ts +8 -0
  264. package/geometries/lib/instanced-buffer-geometry/instanced-buffer-geometry.d.ts +8 -0
  265. package/geometries/lib/lathe-geometry/lathe-geometry.d.ts +8 -0
  266. package/geometries/lib/octahedron-geometry/octahedron-geometry.d.ts +8 -0
  267. package/geometries/lib/plane-geometry/plane-geometry.d.ts +8 -0
  268. package/geometries/lib/polyhedron-geometry/polyhedron-geometry.d.ts +8 -0
  269. package/geometries/lib/ring-geometry/ring-geometry.d.ts +8 -0
  270. package/geometries/lib/shape-geometry/shape-geometry.d.ts +8 -0
  271. package/geometries/lib/sphere-geometry/sphere-geometry.d.ts +8 -0
  272. package/geometries/lib/tetrahedron-geometry/tetrahedron-geometry.d.ts +8 -0
  273. package/geometries/lib/torus-geometry/torus-geometry.d.ts +8 -0
  274. package/geometries/lib/torus-knot-geometry/torus-knot-geometry.d.ts +8 -0
  275. package/geometries/lib/tube-geometry/tube-geometry.d.ts +8 -0
  276. package/geometries/lib/wireframe-geometry/wireframe-geometry.d.ts +8 -0
  277. package/helpers/README.md +3 -0
  278. package/helpers/index.d.ts +13 -0
  279. package/helpers/lib/arrow-helper/arrow-helper.d.ts +8 -0
  280. package/helpers/lib/axes-helper/axes-helper.d.ts +8 -0
  281. package/helpers/lib/box-helper/box-helper.d.ts +8 -0
  282. package/helpers/lib/box3-helper/box3-helper.d.ts +8 -0
  283. package/helpers/lib/camera-helper/camera-helper.d.ts +8 -0
  284. package/helpers/lib/directional-light-helper/directional-light-helper.d.ts +8 -0
  285. package/helpers/lib/grid-helper/grid-helper.d.ts +8 -0
  286. package/helpers/lib/hemisphere-light-helper/hemisphere-light-helper.d.ts +8 -0
  287. package/helpers/lib/plane-helper/plane-helper.d.ts +8 -0
  288. package/helpers/lib/point-light-helper/point-light-helper.d.ts +8 -0
  289. package/helpers/lib/polar-grid-helper/polar-grid-helper.d.ts +8 -0
  290. package/helpers/lib/skeleton-helper/skeleton-helper.d.ts +8 -0
  291. package/helpers/lib/spot-light-helper/spot-light-helper.d.ts +8 -0
  292. package/index.d.ts +11 -1
  293. package/lib/canvas.d.ts +46 -0
  294. package/lib/di/resize.d.ts +12 -0
  295. package/lib/di/window.d.ts +1 -0
  296. package/lib/directives/args.d.ts +19 -0
  297. package/lib/events.d.ts +2 -0
  298. package/lib/instance.d.ts +81 -0
  299. package/lib/ref.d.ts +5 -0
  300. package/lib/services/loader.d.ts +11 -0
  301. package/lib/services/resize.d.ts +19 -0
  302. package/lib/stores/component-store.d.ts +69 -0
  303. package/lib/stores/store.d.ts +32 -0
  304. package/lib/types.d.ts +358 -0
  305. package/lib/utils/apply-props.d.ts +6 -0
  306. package/lib/utils/build-graph.d.ts +3 -0
  307. package/lib/utils/camera.d.ts +4 -0
  308. package/lib/utils/capitalize.d.ts +1 -0
  309. package/lib/utils/check-update.d.ts +2 -0
  310. package/lib/utils/events.d.ts +6 -0
  311. package/lib/utils/get-instance-local-state.d.ts +2 -0
  312. package/lib/utils/inject.d.ts +9 -0
  313. package/lib/utils/instance.d.ts +4 -0
  314. package/lib/utils/is.d.ts +21 -0
  315. package/lib/utils/loop.d.ts +32 -0
  316. package/lib/utils/make.d.ts +4 -0
  317. package/lib/utils/mutate.d.ts +2 -0
  318. package/lib/utils/proxy.d.ts +7 -0
  319. package/lib/utils/renderer.d.ts +3 -0
  320. package/lights/README.md +3 -0
  321. package/lights/index.d.ts +9 -0
  322. package/lights/lib/ambient-light/ambient-light.d.ts +49 -0
  323. package/lights/lib/ambient-light-probe/ambient-light-probe.d.ts +50 -0
  324. package/lights/lib/directional-light/directional-light.d.ts +50 -0
  325. package/lights/lib/hemisphere-light/hemisphere-light.d.ts +51 -0
  326. package/lights/lib/hemisphere-light-probe/hemisphere-light-probe.d.ts +52 -0
  327. package/lights/lib/light-probe/light-probe.d.ts +50 -0
  328. package/lights/lib/point-light/point-light.d.ts +52 -0
  329. package/lights/lib/rect-area-light/rect-area-light.d.ts +52 -0
  330. package/lights/lib/spot-light/spot-light.d.ts +55 -0
  331. package/materials/README.md +3 -0
  332. package/materials/index.d.ts +17 -0
  333. package/materials/lib/line-basic-material/line-basic-material.d.ts +55 -0
  334. package/materials/lib/line-dashed-material/line-dashed-material.d.ts +58 -0
  335. package/materials/lib/mesh-basic-material/mesh-basic-material.d.ts +67 -0
  336. package/materials/lib/mesh-depth-material/mesh-depth-material.d.ts +58 -0
  337. package/materials/lib/mesh-distance-material/mesh-distance-material.d.ts +58 -0
  338. package/materials/lib/mesh-lambert-material/mesh-lambert-material.d.ts +78 -0
  339. package/materials/lib/mesh-matcap-material/mesh-matcap-material.d.ts +64 -0
  340. package/materials/lib/mesh-normal-material/mesh-normal-material.d.ts +61 -0
  341. package/materials/lib/mesh-phong-material/mesh-phong-material.d.ts +81 -0
  342. package/materials/lib/mesh-physical-material/mesh-physical-material.d.ts +97 -0
  343. package/materials/lib/mesh-standard-material/mesh-standard-material.d.ts +78 -0
  344. package/materials/lib/mesh-toon-material/mesh-toon-material.d.ts +74 -0
  345. package/materials/lib/points-material/points-material.d.ts +56 -0
  346. package/materials/lib/raw-shader-material/raw-shader-material.d.ts +68 -0
  347. package/materials/lib/shader-material/shader-material.d.ts +68 -0
  348. package/materials/lib/shadow-material/shadow-material.d.ts +52 -0
  349. package/materials/lib/sprite-material/sprite-material.d.ts +56 -0
  350. package/objects/README.md +3 -0
  351. package/objects/index.d.ts +12 -0
  352. package/objects/lib/bone/bone.d.ts +35 -0
  353. package/objects/lib/group/group.d.ts +35 -0
  354. package/objects/lib/instanced-mesh/instanced-mesh.d.ts +44 -0
  355. package/objects/lib/line/line.d.ts +41 -0
  356. package/objects/lib/line-loop/line-loop.d.ts +41 -0
  357. package/objects/lib/line-segments/line-segments.d.ts +41 -0
  358. package/objects/lib/lod/lod.d.ts +41 -0
  359. package/objects/lib/mesh/mesh.d.ts +41 -0
  360. package/objects/lib/points/points.d.ts +41 -0
  361. package/objects/lib/skeleton/skeleton.d.ts +17 -0
  362. package/objects/lib/skinned-mesh/skinned-mesh.d.ts +45 -0
  363. package/objects/lib/sprite/sprite.d.ts +38 -0
  364. package/package.json +93 -2
  365. package/primitives/README.md +3 -0
  366. package/primitives/index.d.ts +2 -0
  367. package/primitives/lib/object-primitive/object-primitive.d.ts +35 -0
  368. package/primitives/lib/primitive/primitive.d.ts +10 -0
  369. package/schematics/src/generators/init/generator.d.ts +1 -1
  370. package/schematics/src/generators/init/generator.js +4 -4
  371. package/schematics/src/generators/init/generator.js.map +1 -1
  372. package/stats/README.md +3 -0
  373. package/stats/index.d.ts +1 -0
  374. package/stats/lib/stats/stats.d.ts +16 -0
  375. package/textures/README.md +3 -0
  376. package/textures/index.d.ts +10 -0
  377. package/textures/lib/canvas-texture/canvas-texture.d.ts +8 -0
  378. package/textures/lib/compressed-array-texture/compressed-array-texture.d.ts +8 -0
  379. package/textures/lib/compressed-texture/compressed-texture.d.ts +8 -0
  380. package/textures/lib/cube-texture/cube-texture.d.ts +8 -0
  381. package/textures/lib/data-array-texture/data-array-texture.d.ts +8 -0
  382. package/textures/lib/data-texture/data-texture.d.ts +8 -0
  383. package/textures/lib/data3-dtexture/data3-dtexture.d.ts +8 -0
  384. package/textures/lib/depth-texture/depth-texture.d.ts +8 -0
  385. package/textures/lib/framebuffer-texture/framebuffer-texture.d.ts +8 -0
  386. package/textures/lib/video-texture/video-texture.d.ts +8 -0
  387. package/esm2020/lib/angular-three.module.mjs +0 -15
  388. package/lib/angular-three.module.d.ts +0 -7
@@ -0,0 +1,227 @@
1
+ import { AsyncPipe, NgIf, NgTemplateOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, HostBinding, inject, Input, NgZone, Output, TemplateRef, ViewChild, } from '@angular/core';
3
+ import { createPointerEvents } from './events';
4
+ import { provideInstanceRef } from './instance';
5
+ import { NgtResize } from './services/resize';
6
+ import { NgtComponentStore } from './stores/component-store';
7
+ import { NgtStore, rootStateMap } from './stores/store';
8
+ import { NgtLoader } from './services/loader';
9
+ import * as i0 from "@angular/core";
10
+ export class NgtCanvasContainer {
11
+ constructor() {
12
+ this.resize = inject(NgtResize);
13
+ }
14
+ }
15
+ NgtCanvasContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtCanvasContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
+ NgtCanvasContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: NgtCanvasContainer, isStandalone: true, selector: "ngt-canvas-container", outputs: { resize: "resize" }, providers: [NgtResize], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{display:block;height:100%;width:100%}\n"] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtCanvasContainer, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'ngt-canvas-container', standalone: true, template: '<ng-content></ng-content>', providers: [NgtResize], styles: [":host{display:block;height:100%;width:100%}\n"] }]
20
+ }], propDecorators: { resize: [{
21
+ type: Output
22
+ }] } });
23
+ export class NgtCanvas extends NgtComponentStore {
24
+ constructor() {
25
+ super(...arguments);
26
+ this.hostClass = true;
27
+ this.created = new EventEmitter();
28
+ this.canvasPointerMissed = new EventEmitter();
29
+ this.zone = inject(NgZone);
30
+ this.loader = inject(NgtLoader);
31
+ this.store = inject(NgtStore, { self: true });
32
+ this.host = inject(ElementRef);
33
+ }
34
+ get pointerEvents() {
35
+ return this.read((s) => s.eventSource) !== this.host.nativeElement ? 'none' : 'auto';
36
+ }
37
+ set linear(linear) {
38
+ this.write({ linear });
39
+ }
40
+ set legacy(legacy) {
41
+ this.write({ legacy });
42
+ }
43
+ set flat(flat) {
44
+ this.write({ flat });
45
+ }
46
+ set orthographic(orthographic) {
47
+ this.write({ orthographic });
48
+ }
49
+ set frameloop(frameloop) {
50
+ this.write({ frameloop });
51
+ }
52
+ set dpr(dpr) {
53
+ this.write({ dpr });
54
+ }
55
+ set raycaster(raycaster) {
56
+ this.write({ raycaster });
57
+ }
58
+ set shadows(shadows) {
59
+ this.write({
60
+ shadows: typeof shadows === 'object' ? shadows : shadows,
61
+ });
62
+ }
63
+ set camera(camera) {
64
+ this.write({ camera });
65
+ }
66
+ set gl(gl) {
67
+ this.write({ gl });
68
+ }
69
+ set eventSource(eventSource) {
70
+ this.write({ eventSource });
71
+ }
72
+ set eventPrefix(eventPrefix) {
73
+ this.write({ eventPrefix });
74
+ }
75
+ set lookAt(lookAt) {
76
+ this.write({ lookAt });
77
+ }
78
+ set performance(performance) {
79
+ this.write({ performance });
80
+ }
81
+ get sceneRef() {
82
+ return this.store.read((s) => s.sceneRef);
83
+ }
84
+ get isConfigured() {
85
+ return this.store.isConfigured;
86
+ }
87
+ initialize() {
88
+ super.initialize();
89
+ this.write({
90
+ shadows: false,
91
+ linear: false,
92
+ flat: false,
93
+ legacy: false,
94
+ orthographic: false,
95
+ frameloop: 'always',
96
+ dpr: [1, 2],
97
+ events: createPointerEvents,
98
+ });
99
+ }
100
+ ngOnInit() {
101
+ this.zone.runOutsideAngular(() => {
102
+ if (!this.eventSource) {
103
+ this.eventSource = this.host.nativeElement;
104
+ }
105
+ if (this.canvasPointerMissed.observed) {
106
+ // update pointerMissed event
107
+ this.store.write({
108
+ onPointerMissed: (event) => {
109
+ // go back into angular zone
110
+ this.zone.run(() => {
111
+ this.canvasPointerMissed.emit(event);
112
+ });
113
+ },
114
+ });
115
+ }
116
+ // set rootStateMap
117
+ rootStateMap.set(this.glCanvas.nativeElement, this.store.read);
118
+ // setup canvas state
119
+ this.store.init();
120
+ this.store.onReady(() => {
121
+ const state = this.store.read();
122
+ const inputs = this.read();
123
+ // canvas is ready
124
+ this.store.write((s) => ({ internal: { ...s.internal, active: true } }));
125
+ // Connect to eventsource
126
+ state.events.connect?.(inputs.eventSource instanceof ElementRef ? inputs.eventSource.nativeElement : inputs.eventSource);
127
+ // Set up compute function
128
+ if (inputs.eventPrefix) {
129
+ state.setEvents({
130
+ compute: (event, stateGetter) => {
131
+ const innerState = stateGetter();
132
+ const x = event[(inputs.eventPrefix + 'X')];
133
+ const y = event[(inputs.eventPrefix + 'Y')];
134
+ innerState.pointer.set((x / innerState.size.width) * 2 - 1, -(y / innerState.size.height) * 2 + 1);
135
+ innerState.raycaster.setFromCamera(innerState.pointer, innerState.camera);
136
+ },
137
+ });
138
+ }
139
+ if (this.created.observed) {
140
+ this.zone.run(() => {
141
+ this.created.emit(this.store.read());
142
+ });
143
+ }
144
+ });
145
+ });
146
+ }
147
+ onResize(resizeResult) {
148
+ this.zone.runOutsideAngular(() => {
149
+ const { width, height } = resizeResult;
150
+ if (width > 0 && height > 0) {
151
+ if (!this.store.isInit) {
152
+ this.store.init();
153
+ }
154
+ this.store.configure(this.read(), this.glCanvas.nativeElement);
155
+ }
156
+ });
157
+ }
158
+ ngOnDestroy() {
159
+ this.loader.destroy();
160
+ super.ngOnDestroy();
161
+ }
162
+ }
163
+ NgtCanvas.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtCanvas, deps: null, target: i0.ɵɵFactoryTarget.Component });
164
+ NgtCanvas.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: NgtCanvas, isStandalone: true, selector: "ngt-canvas", inputs: { linear: "linear", legacy: "legacy", flat: "flat", orthographic: "orthographic", frameloop: "frameloop", dpr: "dpr", raycaster: "raycaster", shadows: "shadows", camera: "camera", gl: "gl", eventSource: "eventSource", eventPrefix: "eventPrefix", lookAt: "lookAt", performance: "performance" }, outputs: { created: "created", canvasPointerMissed: "canvasPointerMissed" }, host: { properties: { "class.ngt-canvas": "this.hostClass", "style.pointerEvents": "this.pointerEvents" } }, providers: [NgtStore, provideInstanceRef(NgtCanvas, (canvas) => canvas.sceneRef)], queries: [{ propertyName: "canvasContent", first: true, predicate: TemplateRef, descendants: true, static: true }], viewQueries: [{ propertyName: "glCanvas", first: true, predicate: ["glCanvas"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
165
+ <ngt-canvas-container (resize)="onResize($event)">
166
+ <canvas #glCanvas style="display: block">
167
+ <ng-container *ngIf="isConfigured" [ngTemplateOutlet]="canvasContent"></ng-container>
168
+ <ng-content></ng-content>
169
+ </canvas>
170
+ </ngt-canvas-container>
171
+ `, isInline: true, styles: [":host{display:block;position:relative;width:100%;height:100%;overflow:hidden}\n"], dependencies: [{ kind: "component", type: NgtCanvasContainer, selector: "ngt-canvas-container", outputs: ["resize"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtCanvas, decorators: [{
173
+ type: Component,
174
+ args: [{ selector: 'ngt-canvas', standalone: true, template: `
175
+ <ngt-canvas-container (resize)="onResize($event)">
176
+ <canvas #glCanvas style="display: block">
177
+ <ng-container *ngIf="isConfigured" [ngTemplateOutlet]="canvasContent"></ng-container>
178
+ <ng-content></ng-content>
179
+ </canvas>
180
+ </ngt-canvas-container>
181
+ `, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgtCanvasContainer, NgIf, NgTemplateOutlet, AsyncPipe], providers: [NgtStore, provideInstanceRef(NgtCanvas, (canvas) => canvas.sceneRef)], styles: [":host{display:block;position:relative;width:100%;height:100%;overflow:hidden}\n"] }]
182
+ }], propDecorators: { hostClass: [{
183
+ type: HostBinding,
184
+ args: ['class.ngt-canvas']
185
+ }], pointerEvents: [{
186
+ type: HostBinding,
187
+ args: ['style.pointerEvents']
188
+ }], linear: [{
189
+ type: Input
190
+ }], legacy: [{
191
+ type: Input
192
+ }], flat: [{
193
+ type: Input
194
+ }], orthographic: [{
195
+ type: Input
196
+ }], frameloop: [{
197
+ type: Input
198
+ }], dpr: [{
199
+ type: Input
200
+ }], raycaster: [{
201
+ type: Input
202
+ }], shadows: [{
203
+ type: Input
204
+ }], camera: [{
205
+ type: Input
206
+ }], gl: [{
207
+ type: Input
208
+ }], eventSource: [{
209
+ type: Input
210
+ }], eventPrefix: [{
211
+ type: Input
212
+ }], lookAt: [{
213
+ type: Input
214
+ }], performance: [{
215
+ type: Input
216
+ }], created: [{
217
+ type: Output
218
+ }], canvasPointerMissed: [{
219
+ type: Output
220
+ }], glCanvas: [{
221
+ type: ViewChild,
222
+ args: ['glCanvas', { static: true }]
223
+ }], canvasContent: [{
224
+ type: ContentChild,
225
+ args: [TemplateRef, { static: true }]
226
+ }] } });
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci10aHJlZS9zcmMvbGliL2NhbnZhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFHTixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQW1CLE1BQU0sbUJBQW1CLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBaUI5QyxNQUFNLE9BQU8sa0JBQWtCO0lBZi9CO1FBZ0JjLFdBQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFnQyxDQUFDO0tBQ3ZFOzsrR0FGWSxrQkFBa0I7bUdBQWxCLGtCQUFrQixrR0FYaEIsQ0FBQyxTQUFTLENBQUMsMEJBRFosMkJBQTJCOzJGQVk1QixrQkFBa0I7a0JBZjlCLFNBQVM7K0JBQ0ksc0JBQXNCLGNBQ3BCLElBQUksWUFDTiwyQkFBMkIsYUFDMUIsQ0FBQyxTQUFTLENBQUM7OEJBWVosTUFBTTtzQkFBZixNQUFNOztBQTZCWCxNQUFNLE9BQU8sU0FBVSxT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O3NCQUFkLEtBQUs7Z0JBSU8sV0FBVztzQkFBdkIsS0FBSztnQkFJTyxXQUFXO3NCQUF2QixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sV0FBVztzQkFBdkIsS0FBSztnQkFJSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFHUCxRQUFRO3NCQURQLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJdkMsYUFBYTtzQkFEWixZQUFZO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGNyZWF0ZVBvaW50ZXJFdmVudHMgfSBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgeyBwcm92aWRlSW5zdGFuY2VSZWYgfSBmcm9tICcuL2luc3RhbmNlJztcbmltcG9ydCB7IE5ndFJlc2l6ZSwgTmd0UmVzaXplUmVzdWx0IH0gZnJvbSAnLi9zZXJ2aWNlcy9yZXNpemUnO1xuaW1wb3J0IHsgTmd0Q29tcG9uZW50U3RvcmUgfSBmcm9tICcuL3N0b3Jlcy9jb21wb25lbnQtc3RvcmUnO1xuaW1wb3J0IHsgTmd0U3RvcmUsIHJvb3RTdGF0ZU1hcCB9IGZyb20gJy4vc3RvcmVzL3N0b3JlJztcbmltcG9ydCB0eXBlIHsgTmd0Q2FudmFzSW5wdXRzLCBOZ3REb21FdmVudCwgTmd0RHByLCBOZ3RPYnNlcnZhYmxlSW5wdXQsIE5ndFZlY3RvcjMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IE5ndExvYWRlciB9IGZyb20gJy4vc2VydmljZXMvbG9hZGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtY2FudmFzLWNvbnRhaW5lcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAgIHByb3ZpZGVyczogW05ndFJlc2l6ZV0sXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0Q2FudmFzQ29udGFpbmVyIHtcbiAgICBAT3V0cHV0KCkgcmVzaXplID0gaW5qZWN0KE5ndFJlc2l6ZSkgYXMgT2JzZXJ2YWJsZTxOZ3RSZXNpemVSZXN1bHQ+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1jYW52YXMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1jYW52YXMtY29udGFpbmVyIChyZXNpemUpPVwib25SZXNpemUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGNhbnZhcyAjZ2xDYW52YXMgc3R5bGU9XCJkaXNwbGF5OiBibG9ja1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0NvbmZpZ3VyZWRcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJjYW52YXNDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPC9jYW52YXM+XG4gICAgICAgIDwvbmd0LWNhbnZhcy1jb250YWluZXI+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxuICAgIGltcG9ydHM6IFtOZ3RDYW52YXNDb250YWluZXIsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIEFzeW5jUGlwZV0sXG4gICAgcHJvdmlkZXJzOiBbTmd0U3RvcmUsIHByb3ZpZGVJbnN0YW5jZVJlZihOZ3RDYW52YXMsIChjYW52YXMpID0+IGNhbnZhcy5zY2VuZVJlZildLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RDYW52YXMgZXh0ZW5kcyBOZ3RDb21wb25lbnRTdG9yZTxOZ3RDYW52YXNJbnB1dHM+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3Mubmd0LWNhbnZhcycpIHJlYWRvbmx5IGhvc3RDbGFzcyA9IHRydWU7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLnBvaW50ZXJFdmVudHMnKSBnZXQgcG9pbnRlckV2ZW50cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZCgocykgPT4gcy5ldmVudFNvdXJjZSkgIT09IHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50ID8gJ25vbmUnIDogJ2F1dG8nO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsaW5lYXIobGluZWFyOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Ym9vbGVhbj4pIHtcbiAgICAgICAgdGhpcy53cml0ZSh7IGxpbmVhciB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbGVnYWN5KGxlZ2FjeTogTmd0T2JzZXJ2YWJsZUlucHV0PGJvb2xlYW4+KSB7XG4gICAgICAgIHRoaXMud3JpdGUoeyBsZWdhY3kgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGZsYXQoZmxhdDogTmd0T2JzZXJ2YWJsZUlucHV0PGJvb2xlYW4+KSB7XG4gICAgICAgIHRoaXMud3JpdGUoeyBmbGF0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBvcnRob2dyYXBoaWMob3J0aG9ncmFwaGljOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Ym9vbGVhbj4pIHtcbiAgICAgICAgdGhpcy53cml0ZSh7IG9ydGhvZ3JhcGhpYyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZnJhbWVsb29wKGZyYW1lbG9vcDogTmd0T2JzZXJ2YWJsZUlucHV0PCdhbHdheXMnIHwgJ2RlbWFuZCcgfCAnbmV2ZXInPikge1xuICAgICAgICB0aGlzLndyaXRlKHsgZnJhbWVsb29wIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkcHIoZHByOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Tmd0RHByPikge1xuICAgICAgICB0aGlzLndyaXRlKHsgZHByIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCByYXljYXN0ZXIocmF5Y2FzdGVyOiBQYXJ0aWFsPFRIUkVFLlJheWNhc3Rlcj4pIHtcbiAgICAgICAgdGhpcy53cml0ZSh7IHJheWNhc3RlciB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2hhZG93cyhzaGFkb3dzOiBib29sZWFuIHwgUGFydGlhbDxUSFJFRS5XZWJHTFNoYWRvd01hcD4pIHtcbiAgICAgICAgdGhpcy53cml0ZSh7XG4gICAgICAgICAgICBzaGFkb3dzOiB0eXBlb2Ygc2hhZG93cyA9PT0gJ29iamVjdCcgPyAoc2hhZG93cyBhcyBQYXJ0aWFsPFRIUkVFLldlYkdMU2hhZG93TWFwPikgOiBzaGFkb3dzLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgY2FtZXJhKGNhbWVyYTogTmd0Q2FudmFzSW5wdXRzWydjYW1lcmEnXSkge1xuICAgICAgICB0aGlzLndyaXRlKHsgY2FtZXJhIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBnbChnbDogTmd0Q2FudmFzSW5wdXRzWydnbCddKSB7XG4gICAgICAgIHRoaXMud3JpdGUoeyBnbCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZXZlbnRTb3VyY2UoZXZlbnRTb3VyY2U6IE5ndENhbnZhc0lucHV0c1snZXZlbnRTb3VyY2UnXSkge1xuICAgICAgICB0aGlzLndyaXRlKHsgZXZlbnRTb3VyY2UgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGV2ZW50UHJlZml4KGV2ZW50UHJlZml4OiBOZ3RDYW52YXNJbnB1dHNbJ2V2ZW50UHJlZml4J10pIHtcbiAgICAgICAgdGhpcy53cml0ZSh7IGV2ZW50UHJlZml4IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsb29rQXQobG9va0F0OiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Tmd0VmVjdG9yMz4pIHtcbiAgICAgICAgdGhpcy53cml0ZSh7IGxvb2tBdCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgcGVyZm9ybWFuY2UocGVyZm9ybWFuY2U6IE5ndENhbnZhc0lucHV0c1sncGVyZm9ybWFuY2UnXSkge1xuICAgICAgICB0aGlzLndyaXRlKHsgcGVyZm9ybWFuY2UgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGNhbnZhc1BvaW50ZXJNaXNzZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkKCdnbENhbnZhcycsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgZ2xDYW52YXMhOiBFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50PjtcblxuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgY2FudmFzQ29udGVudCE6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2FkZXIgPSBpbmplY3QoTmd0TG9hZGVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlID0gaW5qZWN0KE5ndFN0b3JlLCB7IHNlbGY6IHRydWUgfSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGhvc3QgPSBpbmplY3QoRWxlbWVudFJlZikgYXMgRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBnZXQgc2NlbmVSZWYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlLnJlYWQoKHMpID0+IHMuc2NlbmVSZWYpO1xuICAgIH1cblxuICAgIGdldCBpc0NvbmZpZ3VyZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlLmlzQ29uZmlndXJlZDtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCkge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMud3JpdGUoe1xuICAgICAgICAgICAgc2hhZG93czogZmFsc2UsXG4gICAgICAgICAgICBsaW5lYXI6IGZhbHNlLFxuICAgICAgICAgICAgZmxhdDogZmFsc2UsXG4gICAgICAgICAgICBsZWdhY3k6IGZhbHNlLFxuICAgICAgICAgICAgb3J0aG9ncmFwaGljOiBmYWxzZSxcbiAgICAgICAgICAgIGZyYW1lbG9vcDogJ2Fsd2F5cycsXG4gICAgICAgICAgICBkcHI6IFsxLCAyXSxcbiAgICAgICAgICAgIGV2ZW50czogY3JlYXRlUG9pbnRlckV2ZW50cyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZXZlbnRTb3VyY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50U291cmNlID0gdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNhbnZhc1BvaW50ZXJNaXNzZWQub2JzZXJ2ZWQpIHtcbiAgICAgICAgICAgICAgICAvLyB1cGRhdGUgcG9pbnRlck1pc3NlZCBldmVudFxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUud3JpdGUoe1xuICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJNaXNzZWQ6IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ28gYmFjayBpbnRvIGFuZ3VsYXIgem9uZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW52YXNQb2ludGVyTWlzc2VkLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIHNldCByb290U3RhdGVNYXBcbiAgICAgICAgICAgIHJvb3RTdGF0ZU1hcC5zZXQodGhpcy5nbENhbnZhcy5uYXRpdmVFbGVtZW50LCB0aGlzLnN0b3JlLnJlYWQpO1xuXG4gICAgICAgICAgICAvLyBzZXR1cCBjYW52YXMgc3RhdGVcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuaW5pdCgpO1xuXG4gICAgICAgICAgICB0aGlzLnN0b3JlLm9uUmVhZHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdG9yZS5yZWFkKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5wdXRzID0gdGhpcy5yZWFkKCk7XG5cbiAgICAgICAgICAgICAgICAvLyBjYW52YXMgaXMgcmVhZHlcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLndyaXRlKChzKSA9PiAoeyBpbnRlcm5hbDogeyAuLi5zLmludGVybmFsLCBhY3RpdmU6IHRydWUgfSB9KSk7XG5cbiAgICAgICAgICAgICAgICAvLyBDb25uZWN0IHRvIGV2ZW50c291cmNlXG4gICAgICAgICAgICAgICAgc3RhdGUuZXZlbnRzLmNvbm5lY3Q/LihcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRzLmV2ZW50U291cmNlIGluc3RhbmNlb2YgRWxlbWVudFJlZiA/IGlucHV0cy5ldmVudFNvdXJjZS5uYXRpdmVFbGVtZW50IDogaW5wdXRzLmV2ZW50U291cmNlXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIC8vIFNldCB1cCBjb21wdXRlIGZ1bmN0aW9uXG4gICAgICAgICAgICAgICAgaWYgKGlucHV0cy5ldmVudFByZWZpeCkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRFdmVudHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcHV0ZTogKGV2ZW50LCBzdGF0ZUdldHRlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlubmVyU3RhdGUgPSBzdGF0ZUdldHRlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHggPSBldmVudFsoaW5wdXRzLmV2ZW50UHJlZml4ICsgJ1gnKSBhcyBrZXlvZiBOZ3REb21FdmVudF0gYXMgbnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHkgPSBldmVudFsoaW5wdXRzLmV2ZW50UHJlZml4ICsgJ1knKSBhcyBrZXlvZiBOZ3REb21FdmVudF0gYXMgbnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubmVyU3RhdGUucG9pbnRlci5zZXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4IC8gaW5uZXJTdGF0ZS5zaXplLndpZHRoKSAqIDIgLSAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKHkgLyBpbm5lclN0YXRlLnNpemUuaGVpZ2h0KSAqIDIgKyAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbm5lclN0YXRlLnJheWNhc3Rlci5zZXRGcm9tQ2FtZXJhKGlubmVyU3RhdGUucG9pbnRlciwgaW5uZXJTdGF0ZS5jYW1lcmEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3JlYXRlZC5vYnNlcnZlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlZC5lbWl0KHRoaXMuc3RvcmUucmVhZCgpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uUmVzaXplKHJlc2l6ZVJlc3VsdDogTmd0UmVzaXplUmVzdWx0KSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHJlc2l6ZVJlc3VsdDtcbiAgICAgICAgICAgIGlmICh3aWR0aCA+IDAgJiYgaGVpZ2h0ID4gMCkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zdG9yZS5pc0luaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5pbml0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuY29uZmlndXJlKHRoaXMucmVhZCgpLCB0aGlzLmdsQ2FudmFzLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5sb2FkZXIuZGVzdHJveSgpO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { createInjection } from '../utils/inject';
2
+ import { injectWindow } from './window';
3
+ export const defaultResizeOptions = {
4
+ box: 'content-box',
5
+ scroll: false,
6
+ offsetSize: false,
7
+ debounce: { scroll: 50, resize: 0 },
8
+ };
9
+ export const [injectResizeOptions, provideResizeOptions] = createInjection('ngtResize Options', {
10
+ defaultValueOrFactory: defaultResizeOptions,
11
+ provideValueFactory: (value) => ({ ...defaultResizeOptions, ...value }),
12
+ });
13
+ export const [injectResizeObserverSupport] = createInjection('Resize Observer API support', {
14
+ defaultValueOrFactory: () => {
15
+ const window = injectWindow();
16
+ return 'ResizeObserver' in window && window['ResizeObserver'] != null;
17
+ },
18
+ });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci10aHJlZS9zcmMvbGliL2RpL3Jlc2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQVN4QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBcUI7SUFDbEQsR0FBRyxFQUFFLGFBQWE7SUFDbEIsTUFBTSxFQUFFLEtBQUs7SUFDYixVQUFVLEVBQUUsS0FBSztJQUNqQixRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUU7Q0FDdEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsb0JBQW9CLENBQUMsR0FBRyxlQUFlLENBQW1CLG1CQUFtQixFQUFFO0lBQzlHLHFCQUFxQixFQUFFLG9CQUFvQjtJQUMzQyxtQkFBbUIsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsb0JBQW9CLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztDQUMxRSxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxDQUFDLDJCQUEyQixDQUFDLEdBQUcsZUFBZSxDQUFVLDZCQUE2QixFQUFFO0lBQ2pHLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtRQUN4QixNQUFNLE1BQU0sR0FBRyxZQUFZLEVBQUUsQ0FBQztRQUM5QixPQUFPLGdCQUFnQixJQUFJLE1BQU0sSUFBSyxNQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDbkYsQ0FBQztDQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUluamVjdGlvbiB9IGZyb20gJy4uL3V0aWxzL2luamVjdCc7XG5pbXBvcnQgeyBpbmplY3RXaW5kb3cgfSBmcm9tICcuL3dpbmRvdyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0UmVzaXplT3B0aW9ucyB7XG4gICAgYm94OiBSZXNpemVPYnNlcnZlckJveE9wdGlvbnM7XG4gICAgZGVib3VuY2U6IG51bWJlciB8IHsgc2Nyb2xsOiBudW1iZXI7IHJlc2l6ZTogbnVtYmVyIH07XG4gICAgc2Nyb2xsOiBib29sZWFuO1xuICAgIG9mZnNldFNpemU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0UmVzaXplT3B0aW9uczogTmd0UmVzaXplT3B0aW9ucyA9IHtcbiAgICBib3g6ICdjb250ZW50LWJveCcsXG4gICAgc2Nyb2xsOiBmYWxzZSxcbiAgICBvZmZzZXRTaXplOiBmYWxzZSxcbiAgICBkZWJvdW5jZTogeyBzY3JvbGw6IDUwLCByZXNpemU6IDAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBbaW5qZWN0UmVzaXplT3B0aW9ucywgcHJvdmlkZVJlc2l6ZU9wdGlvbnNdID0gY3JlYXRlSW5qZWN0aW9uPE5ndFJlc2l6ZU9wdGlvbnM+KCduZ3RSZXNpemUgT3B0aW9ucycsIHtcbiAgICBkZWZhdWx0VmFsdWVPckZhY3Rvcnk6IGRlZmF1bHRSZXNpemVPcHRpb25zLFxuICAgIHByb3ZpZGVWYWx1ZUZhY3Rvcnk6ICh2YWx1ZSkgPT4gKHsgLi4uZGVmYXVsdFJlc2l6ZU9wdGlvbnMsIC4uLnZhbHVlIH0pLFxufSk7XG5cbmV4cG9ydCBjb25zdCBbaW5qZWN0UmVzaXplT2JzZXJ2ZXJTdXBwb3J0XSA9IGNyZWF0ZUluamVjdGlvbjxib29sZWFuPignUmVzaXplIE9ic2VydmVyIEFQSSBzdXBwb3J0Jywge1xuICAgIGRlZmF1bHRWYWx1ZU9yRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICBjb25zdCB3aW5kb3cgPSBpbmplY3RXaW5kb3coKTtcbiAgICAgICAgcmV0dXJuICdSZXNpemVPYnNlcnZlcicgaW4gd2luZG93ICYmICh3aW5kb3cgYXMgYW55KVsnUmVzaXplT2JzZXJ2ZXInXSAhPSBudWxsO1xuICAgIH0sXG59KTtcbiJdfQ==
@@ -0,0 +1,13 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { inject } from '@angular/core';
3
+ import { createInjection } from '../utils/inject';
4
+ export const [injectWindow] = createInjection('window', {
5
+ defaultValueOrFactory: () => {
6
+ const { defaultView } = inject(DOCUMENT);
7
+ if (!defaultView) {
8
+ throw `window is not available!`;
9
+ }
10
+ return defaultView;
11
+ },
12
+ });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci10aHJlZS9zcmMvbGliL2RpL3dpbmRvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxlQUFlLENBQTZCLFFBQVEsRUFBRTtJQUNoRixxQkFBcUIsRUFBRSxHQUFHLEVBQUU7UUFDeEIsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2QsTUFBTSwwQkFBMEIsQ0FBQztTQUNwQztRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZUluamVjdGlvbiB9IGZyb20gJy4uL3V0aWxzL2luamVjdCc7XG5cbmV4cG9ydCBjb25zdCBbaW5qZWN0V2luZG93XSA9IGNyZWF0ZUluamVjdGlvbjxXaW5kb3cgJiB0eXBlb2YgZ2xvYmFsVGhpcz4oJ3dpbmRvdycsIHtcbiAgICBkZWZhdWx0VmFsdWVPckZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3QgeyBkZWZhdWx0VmlldyB9ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgICAgICBpZiAoIWRlZmF1bHRWaWV3KSB7XG4gICAgICAgICAgICB0aHJvdyBgd2luZG93IGlzIG5vdCBhdmFpbGFibGUhYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkZWZhdWx0VmlldztcbiAgICB9LFxufSk7XG4iXX0=
@@ -0,0 +1,30 @@
1
+ import { Directive, inject, InjectionToken, Injector, Input, TemplateRef, ViewContainerRef, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export const NGT_ARGS = new InjectionToken('NgtArgs');
4
+ export function injectArgs(options = {}) {
5
+ return inject(NGT_ARGS, options);
6
+ }
7
+ export class NgtArgs {
8
+ constructor() {
9
+ this.templateRef = inject(TemplateRef);
10
+ this.vcr = inject(ViewContainerRef);
11
+ }
12
+ set args(args) {
13
+ if (this.view) {
14
+ this.view.destroy();
15
+ }
16
+ this.view = this.vcr.createEmbeddedView(this.templateRef, {}, { injector: Injector.create({ providers: [{ provide: NGT_ARGS, useValue: args }] }) });
17
+ }
18
+ }
19
+ NgtArgs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtArgs, deps: [], target: i0.ɵɵFactoryTarget.Directive });
20
+ NgtArgs.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: NgtArgs, isStandalone: true, selector: "[args]", inputs: { args: "args" }, ngImport: i0 });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtArgs, decorators: [{
22
+ type: Directive,
23
+ args: [{
24
+ selector: '[args]',
25
+ standalone: true,
26
+ }]
27
+ }], propDecorators: { args: [{
28
+ type: Input
29
+ }] } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi9kaXJlY3RpdmVzL2FyZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxNQUFNLEVBQ04sY0FBYyxFQUVkLFFBQVEsRUFDUixLQUFLLEVBQ0wsV0FBVyxFQUNYLGdCQUFnQixHQUNuQixNQUFNLGVBQWUsQ0FBQzs7QUFHdkIsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksY0FBYyxDQUFZLFNBQVMsQ0FBQyxDQUFDO0FBU2pFLE1BQU0sVUFBVSxVQUFVLENBQXdDLFVBQXlCLEVBQUU7SUFDekYsT0FBTyxNQUFNLENBQStCLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBTUQsTUFBTSxPQUFPLE9BQU87SUFKcEI7UUFLcUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEMsUUFBRyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBZW5EO0lBWEcsSUFBYSxJQUFJLENBQUMsSUFBZTtRQUM3QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3ZCO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUNuQyxJQUFJLENBQUMsV0FBVyxFQUNoQixFQUFFLEVBQ0YsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FDeEYsQ0FBQztJQUNOLENBQUM7O29HQWhCUSxPQUFPO3dGQUFQLE9BQU87MkZBQVAsT0FBTztrQkFKbkIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsUUFBUTtvQkFDbEIsVUFBVSxFQUFFLElBQUk7aUJBQ25COzhCQU9nQixJQUFJO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRW1iZWRkZWRWaWV3UmVmLFxuICAgIGluamVjdCxcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBJbmplY3RPcHRpb25zLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QW55Q3RvciB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IE5HVF9BUkdTID0gbmV3IEluamVjdGlvblRva2VuPHVua25vd25bXT4oJ05ndEFyZ3MnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEFyZ3M8VEN0b3IgZXh0ZW5kcyBOZ3RBbnlDdG9yID0gTmd0QW55Q3Rvcj4oKTogQ29uc3RydWN0b3JQYXJhbWV0ZXJzPFRDdG9yPjtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RBcmdzPFRDdG9yIGV4dGVuZHMgTmd0QW55Q3RvciA9IE5ndEFueUN0b3I+KFxuICAgIG9wdGlvbnM6IEluamVjdE9wdGlvbnMgJiB7IG9wdGlvbmFsPzogZmFsc2UgfVxuKTogQ29uc3RydWN0b3JQYXJhbWV0ZXJzPFRDdG9yPjtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RBcmdzPFRDdG9yIGV4dGVuZHMgTmd0QW55Q3RvciA9IE5ndEFueUN0b3I+KFxuICAgIG9wdGlvbnM6IEluamVjdE9wdGlvbnMgJiB7IG9wdGlvbmFsPzogdHJ1ZSB9XG4pOiBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VEN0b3I+IHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RBcmdzPFRDdG9yIGV4dGVuZHMgTmd0QW55Q3RvciA9IE5ndEFueUN0b3I+KG9wdGlvbnM6IEluamVjdE9wdGlvbnMgPSB7fSkge1xuICAgIHJldHVybiBpbmplY3Q8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPFRDdG9yPj4oTkdUX0FSR1MsIG9wdGlvbnMpO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1thcmdzXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0QXJncyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSB2Y3IgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgICBwcml2YXRlIHZpZXc/OiBFbWJlZGRlZFZpZXdSZWY8YW55PjtcblxuICAgIEBJbnB1dCgpIHNldCBhcmdzKGFyZ3M6IHVua25vd25bXSkge1xuICAgICAgICBpZiAodGhpcy52aWV3KSB7XG4gICAgICAgICAgICB0aGlzLnZpZXcuZGVzdHJveSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52aWV3ID0gdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KFxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZVJlZixcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgeyBpbmplY3RvcjogSW5qZWN0b3IuY3JlYXRlKHsgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR1RfQVJHUywgdXNlVmFsdWU6IGFyZ3MgfV0gfSkgfVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,53 @@
1
+ import { createEvents } from './utils/events';
2
+ const DOM_EVENTS = {
3
+ click: false,
4
+ contextmenu: false,
5
+ dblclick: false,
6
+ wheel: false,
7
+ pointerdown: true,
8
+ pointerup: true,
9
+ pointerleave: true,
10
+ pointermove: true,
11
+ pointercancel: true,
12
+ lostpointercapture: true,
13
+ };
14
+ export function createPointerEvents(stateFactory) {
15
+ const { handlePointer } = createEvents(stateFactory);
16
+ return {
17
+ priority: 1,
18
+ enabled: true,
19
+ compute: (event, rootFactory) => {
20
+ const state = rootFactory();
21
+ // https://github.com/pmndrs/react-three-fiber/pull/782
22
+ // Events trigger outside of canvas when moved, use offsetX/Y by default and allow overrides
23
+ state.pointer.set((event.offsetX / state.size.width) * 2 - 1, -(event.offsetY / state.size.height) * 2 + 1);
24
+ state.raycaster.setFromCamera(state.pointer, state.camera);
25
+ },
26
+ connected: undefined,
27
+ handlers: Object.keys(DOM_EVENTS).reduce((handlers, supportedEventName) => {
28
+ handlers[supportedEventName] = handlePointer(supportedEventName);
29
+ return handlers;
30
+ }, {}),
31
+ connect: (target) => {
32
+ const state = stateFactory();
33
+ state.events.disconnect?.();
34
+ state.setEvents({ connected: target });
35
+ Object.entries(state.events.handlers ?? {}).forEach(([eventName, eventHandler]) => {
36
+ const passive = DOM_EVENTS[eventName];
37
+ target.addEventListener(eventName, eventHandler, { passive });
38
+ });
39
+ },
40
+ disconnect: () => {
41
+ const { events, setEvents } = stateFactory();
42
+ if (events.connected) {
43
+ Object.entries(events.handlers ?? {}).forEach(([eventName, eventHandler]) => {
44
+ if (events.connected instanceof HTMLElement) {
45
+ events.connected.removeEventListener(eventName, eventHandler);
46
+ }
47
+ });
48
+ setEvents({ connected: undefined });
49
+ }
50
+ },
51
+ };
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci10aHJlZS9zcmMvbGliL2V2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsTUFBTSxVQUFVLEdBQUc7SUFDZixLQUFLLEVBQUUsS0FBSztJQUNaLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsS0FBSyxFQUFFLEtBQUs7SUFDWixXQUFXLEVBQUUsSUFBSTtJQUNqQixTQUFTLEVBQUUsSUFBSTtJQUNmLFlBQVksRUFBRSxJQUFJO0lBQ2xCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGtCQUFrQixFQUFFLElBQUk7Q0FDbEIsQ0FBQztBQUVYLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxZQUE2QjtJQUM3RCxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRXJELE9BQU87UUFDSCxRQUFRLEVBQUUsQ0FBQztRQUNYLE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxFQUFFLENBQUMsS0FBa0IsRUFBRSxXQUE0QixFQUFFLEVBQUU7WUFDMUQsTUFBTSxLQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7WUFDNUIsdURBQXVEO1lBQ3ZELDRGQUE0RjtZQUM1RixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzVHLEtBQUssQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxTQUFTLEVBQUUsU0FBUztRQUNwQixRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFzQixFQUFFLGtCQUFrQixFQUFFLEVBQUU7WUFDcEYsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDakUsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQyxFQUFFLEVBQUUsQ0FBYztRQUNuQixPQUFPLEVBQUUsQ0FBQyxNQUFtQixFQUFFLEVBQUU7WUFDN0IsTUFBTSxLQUFLLEdBQUcsWUFBWSxFQUFFLENBQUM7WUFDN0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBRTVCLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUV2QyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FDL0MsQ0FBQyxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQTBCLEVBQUUsRUFBRTtnQkFDbkQsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFNBQW9DLENBQUMsQ0FBQztnQkFDakUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ2xFLENBQUMsQ0FDSixDQUFDO1FBQ04sQ0FBQztRQUNELFVBQVUsRUFBRSxHQUFHLEVBQUU7WUFDYixNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFDO1lBQzdDLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtnQkFDbEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBMEIsRUFBRSxFQUFFO29CQUNqRyxJQUFJLE1BQU0sQ0FBQyxTQUFTLFlBQVksV0FBVyxFQUFFO3dCQUN6QyxNQUFNLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztxQkFDakU7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsU0FBUyxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7YUFDdkM7UUFDTCxDQUFDO0tBQ0osQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE5ndEFueVJlY29yZCwgTmd0RG9tRXZlbnQsIE5ndEV2ZW50TWFuYWdlciwgTmd0RXZlbnRzLCBOZ3RTdGF0ZUZhY3RvcnkgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGNyZWF0ZUV2ZW50cyB9IGZyb20gJy4vdXRpbHMvZXZlbnRzJztcblxuY29uc3QgRE9NX0VWRU5UUyA9IHtcbiAgICBjbGljazogZmFsc2UsXG4gICAgY29udGV4dG1lbnU6IGZhbHNlLFxuICAgIGRibGNsaWNrOiBmYWxzZSxcbiAgICB3aGVlbDogZmFsc2UsIC8vIHBhc3NpdmUgd2hlZWwgZXJyb3JzIHdpdGggT3JiaXRDb250cm9sc1xuICAgIHBvaW50ZXJkb3duOiB0cnVlLFxuICAgIHBvaW50ZXJ1cDogdHJ1ZSxcbiAgICBwb2ludGVybGVhdmU6IHRydWUsXG4gICAgcG9pbnRlcm1vdmU6IHRydWUsXG4gICAgcG9pbnRlcmNhbmNlbDogdHJ1ZSxcbiAgICBsb3N0cG9pbnRlcmNhcHR1cmU6IHRydWUsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUG9pbnRlckV2ZW50cyhzdGF0ZUZhY3Rvcnk6IE5ndFN0YXRlRmFjdG9yeSk6IE5ndEV2ZW50TWFuYWdlcjxIVE1MRWxlbWVudD4ge1xuICAgIGNvbnN0IHsgaGFuZGxlUG9pbnRlciB9ID0gY3JlYXRlRXZlbnRzKHN0YXRlRmFjdG9yeSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBwcmlvcml0eTogMSxcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgY29tcHV0ZTogKGV2ZW50OiBOZ3REb21FdmVudCwgcm9vdEZhY3Rvcnk6IE5ndFN0YXRlRmFjdG9yeSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSByb290RmFjdG9yeSgpO1xuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3BtbmRycy9yZWFjdC10aHJlZS1maWJlci9wdWxsLzc4MlxuICAgICAgICAgICAgLy8gRXZlbnRzIHRyaWdnZXIgb3V0c2lkZSBvZiBjYW52YXMgd2hlbiBtb3ZlZCwgdXNlIG9mZnNldFgvWSBieSBkZWZhdWx0IGFuZCBhbGxvdyBvdmVycmlkZXNcbiAgICAgICAgICAgIHN0YXRlLnBvaW50ZXIuc2V0KChldmVudC5vZmZzZXRYIC8gc3RhdGUuc2l6ZS53aWR0aCkgKiAyIC0gMSwgLShldmVudC5vZmZzZXRZIC8gc3RhdGUuc2l6ZS5oZWlnaHQpICogMiArIDEpO1xuICAgICAgICAgICAgc3RhdGUucmF5Y2FzdGVyLnNldEZyb21DYW1lcmEoc3RhdGUucG9pbnRlciwgc3RhdGUuY2FtZXJhKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29ubmVjdGVkOiB1bmRlZmluZWQsXG4gICAgICAgIGhhbmRsZXJzOiBPYmplY3Qua2V5cyhET01fRVZFTlRTKS5yZWR1Y2UoKGhhbmRsZXJzOiBOZ3RBbnlSZWNvcmQsIHN1cHBvcnRlZEV2ZW50TmFtZSkgPT4ge1xuICAgICAgICAgICAgaGFuZGxlcnNbc3VwcG9ydGVkRXZlbnROYW1lXSA9IGhhbmRsZVBvaW50ZXIoc3VwcG9ydGVkRXZlbnROYW1lKTtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGVycztcbiAgICAgICAgfSwge30pIGFzIE5ndEV2ZW50cyxcbiAgICAgICAgY29ubmVjdDogKHRhcmdldDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gc3RhdGVGYWN0b3J5KCk7XG4gICAgICAgICAgICBzdGF0ZS5ldmVudHMuZGlzY29ubmVjdD8uKCk7XG5cbiAgICAgICAgICAgIHN0YXRlLnNldEV2ZW50cyh7IGNvbm5lY3RlZDogdGFyZ2V0IH0pO1xuXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhzdGF0ZS5ldmVudHMuaGFuZGxlcnMgPz8ge30pLmZvckVhY2goXG4gICAgICAgICAgICAgICAgKFtldmVudE5hbWUsIGV2ZW50SGFuZGxlcl06IFtzdHJpbmcsIEV2ZW50TGlzdGVuZXJdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhc3NpdmUgPSBET01fRVZFTlRTW2V2ZW50TmFtZSBhcyBrZXlvZiB0eXBlb2YgRE9NX0VWRU5UU107XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZXZlbnRIYW5kbGVyLCB7IHBhc3NpdmUgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGlzY29ubmVjdDogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBldmVudHMsIHNldEV2ZW50cyB9ID0gc3RhdGVGYWN0b3J5KCk7XG4gICAgICAgICAgICBpZiAoZXZlbnRzLmNvbm5lY3RlZCkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGV2ZW50cy5oYW5kbGVycyA/PyB7fSkuZm9yRWFjaCgoW2V2ZW50TmFtZSwgZXZlbnRIYW5kbGVyXTogW3N0cmluZywgRXZlbnRMaXN0ZW5lcl0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50cy5jb25uZWN0ZWQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRzLmNvbm5lY3RlZC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZXZlbnRIYW5kbGVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgc2V0RXZlbnRzKHsgY29ubmVjdGVkOiB1bmRlZmluZWQgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcbn1cbiJdfQ==