angular-three-soba 2.2.0 → 2.2.1

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 (137) hide show
  1. package/abstractions/lib/catmull-rom-line.d.ts +117 -117
  2. package/abstractions/lib/edges.d.ts +126 -126
  3. package/abstractions/lib/grid.d.ts +15 -15
  4. package/abstractions/lib/line.d.ts +9 -8
  5. package/abstractions/lib/prism-geometry.d.ts +2 -2
  6. package/abstractions/lib/rounded-box.d.ts +3 -3
  7. package/abstractions/lib/text-3d.d.ts +22 -22
  8. package/abstractions/lib/text.d.ts +0 -1
  9. package/cameras/lib/cube-camera.d.ts +2 -2
  10. package/cameras/lib/orthographic-camera.d.ts +7 -8
  11. package/cameras/lib/perspective-camera.d.ts +2 -3
  12. package/controls/lib/camera-controls.d.ts +1 -1
  13. package/controls/lib/orbit-controls.d.ts +1 -1
  14. package/esm2022/abstractions/lib/billboard.mjs +3 -3
  15. package/esm2022/abstractions/lib/catmull-rom-line.mjs +3 -3
  16. package/esm2022/abstractions/lib/cubic-bezier-line.mjs +3 -3
  17. package/esm2022/abstractions/lib/edges.mjs +30 -34
  18. package/esm2022/abstractions/lib/gradient-texture.mjs +3 -3
  19. package/esm2022/abstractions/lib/grid.mjs +3 -3
  20. package/esm2022/abstractions/lib/helper.mjs +18 -20
  21. package/esm2022/abstractions/lib/line.mjs +25 -28
  22. package/esm2022/abstractions/lib/prism-geometry.mjs +3 -3
  23. package/esm2022/abstractions/lib/quadratic-bezier-line.mjs +3 -3
  24. package/esm2022/abstractions/lib/rounded-box.mjs +11 -17
  25. package/esm2022/abstractions/lib/text-3d.mjs +14 -17
  26. package/esm2022/abstractions/lib/text.mjs +11 -16
  27. package/esm2022/cameras/lib/camera-content.mjs +3 -3
  28. package/esm2022/cameras/lib/cube-camera.mjs +18 -27
  29. package/esm2022/cameras/lib/orthographic-camera.mjs +20 -20
  30. package/esm2022/cameras/lib/perspective-camera.mjs +21 -21
  31. package/esm2022/controls/lib/camera-controls.mjs +3 -3
  32. package/esm2022/controls/lib/orbit-controls.mjs +3 -3
  33. package/esm2022/controls/lib/scroll-controls.mjs +124 -130
  34. package/esm2022/gizmos/lib/gizmo-helper/gizmo-helper.mjs +6 -6
  35. package/esm2022/gizmos/lib/gizmo-helper/gizmo-viewcube.mjs +12 -12
  36. package/esm2022/gizmos/lib/gizmo-helper/gizmo-viewport.mjs +9 -9
  37. package/esm2022/gizmos/lib/pivot-controls/axis-arrow.mjs +6 -4
  38. package/esm2022/gizmos/lib/pivot-controls/axis-rotator.mjs +3 -3
  39. package/esm2022/gizmos/lib/pivot-controls/pivot-controls.mjs +44 -47
  40. package/esm2022/gizmos/lib/pivot-controls/plane-slider.mjs +3 -3
  41. package/esm2022/gizmos/lib/pivot-controls/scaling-sphere.mjs +3 -3
  42. package/esm2022/gizmos/lib/transform-controls.mjs +3 -3
  43. package/esm2022/loaders/lib/loader.mjs +3 -3
  44. package/esm2022/materials/lib/custom-shader-material.mjs +8 -12
  45. package/esm2022/materials/lib/mesh-distort-material.mjs +3 -3
  46. package/esm2022/materials/lib/mesh-reflector-material.mjs +11 -15
  47. package/esm2022/materials/lib/mesh-refraction-material.mjs +26 -30
  48. package/esm2022/materials/lib/mesh-transmission-material.mjs +3 -3
  49. package/esm2022/materials/lib/mesh-wobble-material.mjs +3 -3
  50. package/esm2022/materials/lib/point-material.mjs +3 -3
  51. package/esm2022/misc/lib/bake-shadows.mjs +8 -10
  52. package/esm2022/misc/lib/computed-attribute.mjs +15 -19
  53. package/esm2022/misc/lib/decal.mjs +56 -53
  54. package/esm2022/misc/lib/fbo.mjs +10 -10
  55. package/esm2022/misc/lib/html/html-content.mjs +62 -67
  56. package/esm2022/misc/lib/html/html.mjs +3 -3
  57. package/esm2022/misc/lib/intersect.mjs +6 -9
  58. package/esm2022/misc/lib/sampler.mjs +48 -42
  59. package/esm2022/performances/lib/adaptive-dpr.mjs +29 -35
  60. package/esm2022/performances/lib/adaptive-events.mjs +12 -16
  61. package/esm2022/performances/lib/detailed.mjs +14 -18
  62. package/esm2022/performances/lib/instances/instances.mjs +16 -22
  63. package/esm2022/performances/lib/points/points.mjs +19 -25
  64. package/esm2022/performances/lib/segments/segments.mjs +11 -14
  65. package/esm2022/shaders/lib/mesh-refraction-material.mjs +1 -1
  66. package/esm2022/staging/index.mjs +3 -2
  67. package/esm2022/staging/lib/accumulative-shadows.mjs +19 -21
  68. package/esm2022/staging/lib/backdrop.mjs +19 -23
  69. package/esm2022/staging/lib/bb-anchor.mjs +3 -3
  70. package/esm2022/staging/lib/bounds.mjs +39 -43
  71. package/esm2022/staging/lib/camera-shake.mjs +14 -18
  72. package/esm2022/staging/lib/caustics.mjs +24 -28
  73. package/esm2022/staging/lib/center.mjs +28 -32
  74. package/esm2022/staging/lib/contact-shadows.mjs +3 -3
  75. package/esm2022/staging/lib/environment/environment.mjs +338 -0
  76. package/esm2022/staging/lib/environment/inject-environment.mjs +184 -0
  77. package/esm2022/staging/lib/float.mjs +3 -3
  78. package/esm2022/staging/lib/lightformer.mjs +18 -22
  79. package/esm2022/staging/lib/mask.mjs +8 -12
  80. package/esm2022/staging/lib/matcap-texture.mjs +9 -11
  81. package/esm2022/staging/lib/normal-texture.mjs +9 -11
  82. package/esm2022/staging/lib/randomized-lights.mjs +9 -13
  83. package/esm2022/staging/lib/render-texture.mjs +19 -20
  84. package/esm2022/staging/lib/sky.mjs +3 -3
  85. package/esm2022/staging/lib/spot-light.mjs +32 -40
  86. package/esm2022/staging/lib/stage.mjs +13 -17
  87. package/esm2022/stats/lib/stats.mjs +21 -27
  88. package/fesm2022/angular-three-soba-abstractions.mjs +119 -138
  89. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  90. package/fesm2022/angular-three-soba-cameras.mjs +57 -64
  91. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  92. package/fesm2022/angular-three-soba-controls.mjs +129 -135
  93. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  94. package/fesm2022/angular-three-soba-gizmos.mjs +87 -88
  95. package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -1
  96. package/fesm2022/angular-three-soba-loaders.mjs +3 -3
  97. package/fesm2022/angular-three-soba-materials.mjs +52 -62
  98. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  99. package/fesm2022/angular-three-soba-misc.mjs +194 -195
  100. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  101. package/fesm2022/angular-three-soba-performances.mjs +90 -114
  102. package/fesm2022/angular-three-soba-performances.mjs.map +1 -1
  103. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  104. package/fesm2022/angular-three-soba-staging.mjs +427 -430
  105. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  106. package/fesm2022/angular-three-soba-stats.mjs +20 -26
  107. package/fesm2022/angular-three-soba-stats.mjs.map +1 -1
  108. package/gizmos/lib/gizmo-helper/gizmo-viewport.d.ts +1 -1
  109. package/gizmos/lib/pivot-controls/pivot-controls.d.ts +1 -1
  110. package/gizmos/lib/transform-controls.d.ts +2 -2
  111. package/materials/lib/custom-shader-material.d.ts +3 -3
  112. package/materials/lib/mesh-refraction-material.d.ts +2 -2
  113. package/materials/lib/mesh-transmission-material.d.ts +1 -1
  114. package/misc/lib/computed-attribute.d.ts +6 -6
  115. package/misc/lib/decal.d.ts +4 -4
  116. package/misc/lib/html/html-content.d.ts +6 -6
  117. package/misc/lib/sampler.d.ts +2 -4
  118. package/package.json +8 -8
  119. package/performances/lib/instances/instances.d.ts +11 -11
  120. package/performances/lib/points/points.d.ts +19 -19
  121. package/performances/lib/segments/segments.d.ts +4 -4
  122. package/shaders/lib/mesh-refraction-material.d.ts +2 -5
  123. package/staging/index.d.ts +2 -1
  124. package/staging/lib/accumulative-shadows.d.ts +1 -1
  125. package/staging/lib/camera-shake.d.ts +0 -1
  126. package/staging/lib/caustics.d.ts +1 -1
  127. package/staging/lib/contact-shadows.d.ts +1 -1
  128. package/staging/lib/{environment.d.ts → environment/environment.d.ts} +20 -49
  129. package/staging/lib/environment/inject-environment.d.ts +33 -0
  130. package/staging/lib/lightformer.d.ts +1 -1
  131. package/staging/lib/matcap-texture.d.ts +0 -1
  132. package/staging/lib/normal-texture.d.ts +0 -1
  133. package/staging/lib/render-texture.d.ts +1 -1
  134. package/staging/lib/sky.d.ts +1 -1
  135. package/staging/lib/spot-light.d.ts +2 -2
  136. package/staging/lib/stage.d.ts +2 -1
  137. package/esm2022/staging/lib/environment.mjs +0 -481
@@ -0,0 +1,184 @@
1
+ import { computed, effect, signal, untracked } from '@angular/core';
2
+ import { GainMapLoader, HDRJPGLoader } from '@monogrid/gainmap-js';
3
+ import { injectLoader, injectStore, pick } from 'angular-three';
4
+ import { LinearEncoding, sRGBEncoding } from 'angular-three-soba/misc';
5
+ import { assertInjector } from 'ngxtension/assert-injector';
6
+ import { CubeReflectionMapping, CubeTexture, CubeTextureLoader, EquirectangularReflectionMapping, } from 'three';
7
+ import { EXRLoader, RGBELoader } from 'three-stdlib';
8
+ export const ENVIRONMENT_PRESETS = {
9
+ apartment: 'lebombo_1k.hdr',
10
+ city: 'potsdamer_platz_1k.hdr',
11
+ dawn: 'kiara_1_dawn_1k.hdr',
12
+ forest: 'forest_slope_1k.hdr',
13
+ lobby: 'st_fagans_interior_1k.hdr',
14
+ night: 'dikhololo_night_1k.hdr',
15
+ park: 'rooitou_park_1k.hdr',
16
+ studio: 'studio_small_03_1k.hdr',
17
+ sunset: 'venice_sunset_1k.hdr',
18
+ warehouse: 'empty_warehouse_01_1k.hdr',
19
+ };
20
+ const CUBEMAP_ROOT = 'https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/';
21
+ const defaultFiles = ['/px.png', '/nx.png', '/py.png', '/ny.png', '/pz.png', '/nz.png'];
22
+ export function injectEnvironment(options = () => ({}), { injector } = {}) {
23
+ return assertInjector(injectEnvironment, injector, () => {
24
+ const adjustedOptions = computed(() => {
25
+ const { preset, extensions, encoding, ...rest } = options();
26
+ let { files, path } = rest;
27
+ if (files == null) {
28
+ files = defaultFiles;
29
+ }
30
+ if (path == null) {
31
+ path = '';
32
+ }
33
+ if (preset) {
34
+ validatePreset(preset);
35
+ files = ENVIRONMENT_PRESETS[preset];
36
+ path = CUBEMAP_ROOT;
37
+ }
38
+ return { files, preset, encoding, path, extensions };
39
+ });
40
+ const files = pick(adjustedOptions, 'files');
41
+ const multiFile = computed(() => Array.isArray(files()));
42
+ const resultOptions = computed(() => getExtension(files()));
43
+ const extension = pick(resultOptions, 'extension');
44
+ const loader = computed(() => getLoader(extension()));
45
+ const store = injectStore();
46
+ const gl = store.select('gl');
47
+ const texture = signal(null);
48
+ effect(() => {
49
+ const [_extension, _multiFile, _files] = [untracked(extension), untracked(multiFile), files()];
50
+ if (_extension !== 'webp' && _extension !== 'jpg' && _extension !== 'jpeg')
51
+ return;
52
+ gl().domElement.addEventListener('webglcontextlost', () => {
53
+ // @ts-expect-error - files is correctly passed
54
+ injectLoader.clear(multiFile ? [_files] : _files);
55
+ }, { once: true });
56
+ });
57
+ const result = injectLoader(loader,
58
+ // @ts-expect-error - ensure the files is an array
59
+ () => {
60
+ const { files } = adjustedOptions();
61
+ return Array.isArray(files) ? [files] : files;
62
+ }, {
63
+ extensions: (loader) => {
64
+ const { extensions, path } = adjustedOptions();
65
+ const { extension } = resultOptions();
66
+ if (extension === 'webp' || extension === 'jpg' || extension === 'jpeg') {
67
+ // @ts-expect-error - Gainmap requires a renderer
68
+ loader.setRenderer(gl());
69
+ }
70
+ loader.setPath?.(path);
71
+ if (extensions)
72
+ extensions(loader);
73
+ },
74
+ });
75
+ effect(() => {
76
+ const loaderResult = result();
77
+ if (!loaderResult)
78
+ return;
79
+ untracked(() => {
80
+ const { extension, isCubeMap } = resultOptions();
81
+ const _multiFile = multiFile();
82
+ const { encoding } = adjustedOptions();
83
+ // @ts-expect-error - ensure textureResult is a Texture or CubeTexture
84
+ let textureResult = (_multiFile ? loaderResult[0] : loaderResult);
85
+ // NOTE: racing condition, we can skip this
86
+ // we just said above that if multiFile is false, it is a single Texture
87
+ if (!_multiFile && Array.isArray(textureResult) && textureResult[0] instanceof CubeTexture) {
88
+ return;
89
+ }
90
+ if (!(textureResult instanceof CubeTexture) &&
91
+ (extension === 'jpg' || extension === 'jpeg' || extension === 'webp')) {
92
+ textureResult = textureResult.renderTarget?.texture;
93
+ }
94
+ textureResult.mapping = isCubeMap ? CubeReflectionMapping : EquirectangularReflectionMapping;
95
+ if ('colorSpace' in textureResult)
96
+ textureResult.colorSpace = encoding ?? (isCubeMap ? 'srgb' : 'srgb-linear');
97
+ else
98
+ textureResult.encoding = encoding ?? (isCubeMap ? sRGBEncoding : LinearEncoding);
99
+ texture.set(textureResult);
100
+ });
101
+ });
102
+ return texture.asReadonly();
103
+ });
104
+ }
105
+ injectEnvironment.preload = (options = () => ({})) => {
106
+ const _options = options();
107
+ let { files, path } = _options;
108
+ const { preset, extensions } = _options;
109
+ if (files == null) {
110
+ files = defaultFiles;
111
+ }
112
+ if (path == null) {
113
+ path = '';
114
+ }
115
+ if (preset) {
116
+ validatePreset(preset);
117
+ files = ENVIRONMENT_PRESETS[preset];
118
+ path = CUBEMAP_ROOT;
119
+ }
120
+ const { extension } = getExtension(files);
121
+ if (extension === 'webp' || extension === 'jpg' || extension === 'jpeg') {
122
+ throw new Error('injectEnvironment: Preloading gainmaps is not supported');
123
+ }
124
+ const loader = getLoader(extension);
125
+ if (!loader)
126
+ throw new Error('injectEnvironment: Unrecognized file extension: ' + files);
127
+ injectLoader.preload(() => loader,
128
+ // @ts-expect-error - files is correctly passed
129
+ () => (Array.isArray(files) ? [files] : files), (loader) => {
130
+ loader.setPath?.(path);
131
+ if (extensions)
132
+ extensions(loader);
133
+ });
134
+ };
135
+ injectEnvironment.clear = (clearOptions) => {
136
+ const options = { files: defaultFiles, ...clearOptions };
137
+ let { files } = options;
138
+ const preset = options.preset;
139
+ if (preset) {
140
+ validatePreset(preset);
141
+ files = ENVIRONMENT_PRESETS[preset];
142
+ }
143
+ injectLoader.clear(files);
144
+ };
145
+ function validatePreset(preset) {
146
+ if (!(preset in ENVIRONMENT_PRESETS))
147
+ throw new Error('Preset must be one of: ' + Object.keys(ENVIRONMENT_PRESETS).join(', '));
148
+ }
149
+ function getExtension(files) {
150
+ const isCubeMap = Array.isArray(files) && files.length === 6;
151
+ const isGainmap = Array.isArray(files) && files.length === 3 && files.some((file) => file.endsWith('json'));
152
+ const firstEntry = Array.isArray(files) ? files[0] : files;
153
+ // Everything else
154
+ const extension = isCubeMap
155
+ ? 'cube'
156
+ : isGainmap
157
+ ? 'webp'
158
+ : firstEntry.startsWith('data:application/exr')
159
+ ? 'exr'
160
+ : firstEntry.startsWith('data:application/hdr')
161
+ ? 'hdr'
162
+ : firstEntry.startsWith('data:image/jpeg')
163
+ ? 'jpg'
164
+ : firstEntry.split('.').pop()?.split('?')?.shift()?.toLowerCase();
165
+ return { extension, isCubeMap, isGainmap };
166
+ }
167
+ function getLoader(extension) {
168
+ const loader = extension === 'cube'
169
+ ? CubeTextureLoader
170
+ : extension === 'hdr'
171
+ ? RGBELoader
172
+ : extension === 'exr'
173
+ ? EXRLoader
174
+ : extension === 'jpg' || extension === 'jpeg'
175
+ ? HDRJPGLoader
176
+ : extension === 'webp'
177
+ ? GainMapLoader
178
+ : null;
179
+ if (!loader) {
180
+ throw new Error('injectEnvironment: Unrecognized file extension: ' + extension);
181
+ }
182
+ return loader;
183
+ }
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LWVudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL2xpYi9lbnZpcm9ubWVudC9pbmplY3QtZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQVksTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBbUIsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUNOLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLGdDQUFnQyxHQUdoQyxNQUFNLE9BQU8sQ0FBQztBQUNmLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXJELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQ2xDLFNBQVMsRUFBRSxnQkFBZ0I7SUFDM0IsSUFBSSxFQUFFLHdCQUF3QjtJQUM5QixJQUFJLEVBQUUscUJBQXFCO0lBQzNCLE1BQU0sRUFBRSxxQkFBcUI7SUFDN0IsS0FBSyxFQUFFLDJCQUEyQjtJQUNsQyxLQUFLLEVBQUUsd0JBQXdCO0lBQy9CLElBQUksRUFBRSxxQkFBcUI7SUFDM0IsTUFBTSxFQUFFLHdCQUF3QjtJQUNoQyxNQUFNLEVBQUUsc0JBQXNCO0lBQzlCLFNBQVMsRUFBRSwyQkFBMkI7Q0FDdEMsQ0FBQztBQUlGLE1BQU0sWUFBWSxHQUFHLDJGQUEyRixDQUFDO0FBVWpI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LFNBQVMsS0FBSyxLQUFLLElBQUksU0FBUyxLQUFLLE1BQU07b0JBQzVDLENBQUMsQ0FBRSxZQUF5QztvQkFDNUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxNQUFNO3dCQUNyQixDQUFDLENBQUUsYUFBMEM7d0JBQzdDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFYixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDYixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxPQUFPLE1BQXVCLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBlZmZlY3QsIEluamVjdG9yLCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR2Fpbk1hcExvYWRlciwgSERSSlBHTG9hZGVyIH0gZnJvbSAnQG1vbm9ncmlkL2dhaW5tYXAtanMnO1xuaW1wb3J0IHsgaW5qZWN0TG9hZGVyLCBpbmplY3RTdG9yZSwgcGljayB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgTGluZWFyRW5jb2RpbmcsIHNSR0JFbmNvZGluZywgVGV4dHVyZUVuY29kaW5nIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL21pc2MnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQge1xuXHRDdWJlUmVmbGVjdGlvbk1hcHBpbmcsXG5cdEN1YmVUZXh0dXJlLFxuXHRDdWJlVGV4dHVyZUxvYWRlcixcblx0RXF1aXJlY3Rhbmd1bGFyUmVmbGVjdGlvbk1hcHBpbmcsXG5cdExvYWRlcixcblx0VGV4dHVyZSxcbn0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRVhSTG9hZGVyLCBSR0JFTG9hZGVyIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuZXhwb3J0IGNvbnN0IEVOVklST05NRU5UX1BSRVNFVFMgPSB7XG5cdGFwYXJ0bWVudDogJ2xlYm9tYm9fMWsuaGRyJyxcblx0Y2l0eTogJ3BvdHNkYW1lcl9wbGF0el8xay5oZHInLFxuXHRkYXduOiAna2lhcmFfMV9kYXduXzFrLmhkcicsXG5cdGZvcmVzdDogJ2ZvcmVzdF9zbG9wZV8xay5oZHInLFxuXHRsb2JieTogJ3N0X2ZhZ2Fuc19pbnRlcmlvcl8xay5oZHInLFxuXHRuaWdodDogJ2Rpa2hvbG9sb19uaWdodF8xay5oZHInLFxuXHRwYXJrOiAncm9vaXRvdV9wYXJrXzFrLmhkcicsXG5cdHN0dWRpbzogJ3N0dWRpb19zbWFsbF8wM18xay5oZHInLFxuXHRzdW5zZXQ6ICd2ZW5pY2Vfc3Vuc2V0XzFrLmhkcicsXG5cdHdhcmVob3VzZTogJ2VtcHR5X3dhcmVob3VzZV8wMV8xay5oZHInLFxufTtcblxuZXhwb3J0IHR5cGUgTmd0c0Vudmlyb25tZW50UHJlc2V0cyA9IGtleW9mIHR5cGVvZiBFTlZJUk9OTUVOVF9QUkVTRVRTO1xuXG5jb25zdCBDVUJFTUFQX1JPT1QgPSAnaHR0cHM6Ly9yYXcuZ2l0aGFjay5jb20vcG1uZHJzL2RyZWktYXNzZXRzLzQ1NjA2MGEyNmJiZWI4ZmRmNzkzMjZmMjI0YjZkOTliOGJjY2U3MzYvaGRyaS8nO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNJbmplY3RFbnZpcm9ubWVudE9wdGlvbnMge1xuXHRmaWxlczogc3RyaW5nIHwgc3RyaW5nW107XG5cdHBhdGg6IHN0cmluZztcblx0cHJlc2V0PzogTmd0c0Vudmlyb25tZW50UHJlc2V0cztcblx0ZXh0ZW5zaW9ucz86IChsb2FkZXI6IExvYWRlcikgPT4gdm9pZDtcblx0ZW5jb2Rpbmc/OiBUZXh0dXJlRW5jb2Rpbmc7XG59XG5cbmNvbnN0IGRlZmF1bHRGaWxlcyA9IFsnL3B4LnBuZycsICcvbngucG5nJywgJy9weS5wbmcnLCAnL255LnBuZycsICcvcHoucG5nJywgJy9uei5wbmcnXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEVudmlyb25tZW50KFxuXHRvcHRpb25zOiAoKSA9PiBQYXJ0aWFsPE5ndHNJbmplY3RFbnZpcm9ubWVudE9wdGlvbnM+ID0gKCkgPT4gKHt9KSxcblx0eyBpbmplY3RvciB9OiB7IGluamVjdG9yPzogSW5qZWN0b3IgfSA9IHt9LFxuKSB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RFbnZpcm9ubWVudCwgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBhZGp1c3RlZE9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRjb25zdCB7IHByZXNldCwgZXh0ZW5zaW9ucywgZW5jb2RpbmcsIC4uLnJlc3QgfSA9IG9wdGlvbnMoKTtcblx0XHRcdGxldCB7IGZpbGVzLCBwYXRoIH0gPSByZXN0O1xuXG5cdFx0XHRpZiAoZmlsZXMgPT0gbnVsbCkge1xuXHRcdFx0XHRmaWxlcyA9IGRlZmF1bHRGaWxlcztcblx0XHRcdH1cblxuXHRcdFx0aWYgKHBhdGggPT0gbnVsbCkge1xuXHRcdFx0XHRwYXRoID0gJyc7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChwcmVzZXQpIHtcblx0XHRcdFx0dmFsaWRhdGVQcmVzZXQocHJlc2V0KTtcblx0XHRcdFx0ZmlsZXMgPSBFTlZJUk9OTUVOVF9QUkVTRVRTW3ByZXNldF07XG5cdFx0XHRcdHBhdGggPSBDVUJFTUFQX1JPT1Q7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiB7IGZpbGVzLCBwcmVzZXQsIGVuY29kaW5nLCBwYXRoLCBleHRlbnNpb25zIH07XG5cdFx0fSk7XG5cblx0XHRjb25zdCBmaWxlcyA9IHBpY2soYWRqdXN0ZWRPcHRpb25zLCAnZmlsZXMnKTtcblx0XHRjb25zdCBtdWx0aUZpbGUgPSBjb21wdXRlZCgoKSA9PiBBcnJheS5pc0FycmF5KGZpbGVzKCkpKTtcblx0XHRjb25zdCByZXN1bHRPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4gZ2V0RXh0ZW5zaW9uKGZpbGVzKCkpKTtcblx0XHRjb25zdCBleHRlbnNpb24gPSBwaWNrKHJlc3VsdE9wdGlvbnMsICdleHRlbnNpb24nKTtcblx0XHRjb25zdCBsb2FkZXIgPSBjb21wdXRlZCgoKSA9PiBnZXRMb2FkZXIoZXh0ZW5zaW9uKCkpKTtcblxuXHRcdGNvbnN0IHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0XHRjb25zdCBnbCA9IHN0b3JlLnNlbGVjdCgnZ2wnKTtcblxuXHRcdGNvbnN0IHRleHR1cmUgPSBzaWduYWw8VGV4dHVyZSB8IEN1YmVUZXh0dXJlIHwgbnVsbD4obnVsbCk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW19leHRlbnNpb24sIF9tdWx0aUZpbGUsIF9maWxlc10gPSBbdW50cmFja2VkKGV4dGVuc2lvbiksIHVudHJhY2tlZChtdWx0aUZpbGUpLCBmaWxlcygpXTtcblxuXHRcdFx0aWYgKF9leHRlbnNpb24gIT09ICd3ZWJwJyAmJiBfZXh0ZW5zaW9uICE9PSAnanBnJyAmJiBfZXh0ZW5zaW9uICE9PSAnanBlZycpIHJldHVybjtcblxuXHRcdFx0Z2woKS5kb21FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG5cdFx0XHRcdCd3ZWJnbGNvbnRleHRsb3N0Jyxcblx0XHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgLSBmaWxlcyBpcyBjb3JyZWN0bHkgcGFzc2VkXG5cdFx0XHRcdFx0aW5qZWN0TG9hZGVyLmNsZWFyKG11bHRpRmlsZSA/IFtfZmlsZXNdIDogX2ZpbGVzKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0eyBvbmNlOiB0cnVlIH0sXG5cdFx0XHQpO1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgcmVzdWx0ID0gaW5qZWN0TG9hZGVyKFxuXHRcdFx0bG9hZGVyLFxuXHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIGVuc3VyZSB0aGUgZmlsZXMgaXMgYW4gYXJyYXlcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3QgeyBmaWxlcyB9ID0gYWRqdXN0ZWRPcHRpb25zKCk7XG5cdFx0XHRcdHJldHVybiBBcnJheS5pc0FycmF5KGZpbGVzKSA/IFtmaWxlc10gOiBmaWxlcztcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGV4dGVuc2lvbnM6IChsb2FkZXIpID0+IHtcblx0XHRcdFx0XHRjb25zdCB7IGV4dGVuc2lvbnMsIHBhdGggfSA9IGFkanVzdGVkT3B0aW9ucygpO1xuXHRcdFx0XHRcdGNvbnN0IHsgZXh0ZW5zaW9uIH0gPSByZXN1bHRPcHRpb25zKCk7XG5cdFx0XHRcdFx0aWYgKGV4dGVuc2lvbiA9PT0gJ3dlYnAnIHx8IGV4dGVuc2lvbiA9PT0gJ2pwZycgfHwgZXh0ZW5zaW9uID09PSAnanBlZycpIHtcblx0XHRcdFx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgLSBHYWlubWFwIHJlcXVpcmVzIGEgcmVuZGVyZXJcblx0XHRcdFx0XHRcdGxvYWRlci5zZXRSZW5kZXJlcihnbCgpKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRsb2FkZXIuc2V0UGF0aD8uKHBhdGgpO1xuXHRcdFx0XHRcdGlmIChleHRlbnNpb25zKSBleHRlbnNpb25zKGxvYWRlcik7XG5cdFx0XHRcdH0sXG5cdFx0XHR9LFxuXHRcdCk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgbG9hZGVyUmVzdWx0ID0gcmVzdWx0KCk7XG5cdFx0XHRpZiAoIWxvYWRlclJlc3VsdCkgcmV0dXJuO1xuXG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCB7IGV4dGVuc2lvbiwgaXNDdWJlTWFwIH0gPSByZXN1bHRPcHRpb25zKCk7XG5cdFx0XHRcdGNvbnN0IF9tdWx0aUZpbGUgPSBtdWx0aUZpbGUoKTtcblx0XHRcdFx0Y29uc3QgeyBlbmNvZGluZyB9ID0gYWRqdXN0ZWRPcHRpb25zKCk7XG5cblx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIGVuc3VyZSB0ZXh0dXJlUmVzdWx0IGlzIGEgVGV4dHVyZSBvciBDdWJlVGV4dHVyZVxuXHRcdFx0XHRsZXQgdGV4dHVyZVJlc3VsdCA9IChfbXVsdGlGaWxlID8gbG9hZGVyUmVzdWx0WzBdIDogbG9hZGVyUmVzdWx0KSBhcyBUZXh0dXJlIHwgQ3ViZVRleHR1cmU7XG5cblx0XHRcdFx0Ly8gTk9URTogcmFjaW5nIGNvbmRpdGlvbiwgd2UgY2FuIHNraXAgdGhpc1xuXHRcdFx0XHQvLyAgd2UganVzdCBzYWlkIGFib3ZlIHRoYXQgaWYgbXVsdGlGaWxlIGlzIGZhbHNlLCBpdCBpcyBhIHNpbmdsZSBUZXh0dXJlXG5cdFx0XHRcdGlmICghX211bHRpRmlsZSAmJiBBcnJheS5pc0FycmF5KHRleHR1cmVSZXN1bHQpICYmIHRleHR1cmVSZXN1bHRbMF0gaW5zdGFuY2VvZiBDdWJlVGV4dHVyZSkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHQhKHRleHR1cmVSZXN1bHQgaW5zdGFuY2VvZiBDdWJlVGV4dHVyZSkgJiZcblx0XHRcdFx0XHQoZXh0ZW5zaW9uID09PSAnanBnJyB8fCBleHRlbnNpb24gPT09ICdqcGVnJyB8fCBleHRlbnNpb24gPT09ICd3ZWJwJylcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0dGV4dHVyZVJlc3VsdCA9ICh0ZXh0dXJlUmVzdWx0IGFzIGFueSkucmVuZGVyVGFyZ2V0Py50ZXh0dXJlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGV4dHVyZVJlc3VsdC5tYXBwaW5nID0gaXNDdWJlTWFwID8gQ3ViZVJlZmxlY3Rpb25NYXBwaW5nIDogRXF1aXJlY3Rhbmd1bGFyUmVmbGVjdGlvbk1hcHBpbmc7XG5cblx0XHRcdFx0aWYgKCdjb2xvclNwYWNlJyBpbiB0ZXh0dXJlUmVzdWx0KVxuXHRcdFx0XHRcdCh0ZXh0dXJlUmVzdWx0IGFzIGFueSkuY29sb3JTcGFjZSA9IGVuY29kaW5nID8/IChpc0N1YmVNYXAgPyAnc3JnYicgOiAnc3JnYi1saW5lYXInKTtcblx0XHRcdFx0ZWxzZSAodGV4dHVyZVJlc3VsdCBhcyBhbnkpLmVuY29kaW5nID0gZW5jb2RpbmcgPz8gKGlzQ3ViZU1hcCA/IHNSR0JFbmNvZGluZyA6IExpbmVhckVuY29kaW5nKTtcblxuXHRcdFx0XHR0ZXh0dXJlLnNldCh0ZXh0dXJlUmVzdWx0KTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHRleHR1cmUuYXNSZWFkb25seSgpO1xuXHR9KTtcbn1cblxuaW5qZWN0RW52aXJvbm1lbnQucHJlbG9hZCA9IChvcHRpb25zOiAoKSA9PiBQYXJ0aWFsPE5ndHNJbmplY3RFbnZpcm9ubWVudE9wdGlvbnM+ID0gKCkgPT4gKHt9KSkgPT4ge1xuXHRjb25zdCBfb3B0aW9ucyA9IG9wdGlvbnMoKTtcblx0bGV0IHsgZmlsZXMsIHBhdGggfSA9IF9vcHRpb25zO1xuXHRjb25zdCB7IHByZXNldCwgZXh0ZW5zaW9ucyB9ID0gX29wdGlvbnM7XG5cblx0aWYgKGZpbGVzID09IG51bGwpIHtcblx0XHRmaWxlcyA9IGRlZmF1bHRGaWxlcztcblx0fVxuXG5cdGlmIChwYXRoID09IG51bGwpIHtcblx0XHRwYXRoID0gJyc7XG5cdH1cblxuXHRpZiAocHJlc2V0KSB7XG5cdFx0dmFsaWRhdGVQcmVzZXQocHJlc2V0KTtcblx0XHRmaWxlcyA9IEVOVklST05NRU5UX1BSRVNFVFNbcHJlc2V0XTtcblx0XHRwYXRoID0gQ1VCRU1BUF9ST09UO1xuXHR9XG5cblx0Y29uc3QgeyBleHRlbnNpb24gfSA9IGdldEV4dGVuc2lvbihmaWxlcyk7XG5cblx0aWYgKGV4dGVuc2lvbiA9PT0gJ3dlYnAnIHx8IGV4dGVuc2lvbiA9PT0gJ2pwZycgfHwgZXh0ZW5zaW9uID09PSAnanBlZycpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ2luamVjdEVudmlyb25tZW50OiBQcmVsb2FkaW5nIGdhaW5tYXBzIGlzIG5vdCBzdXBwb3J0ZWQnKTtcblx0fVxuXG5cdGNvbnN0IGxvYWRlciA9IGdldExvYWRlcihleHRlbnNpb24pO1xuXHRpZiAoIWxvYWRlcikgdGhyb3cgbmV3IEVycm9yKCdpbmplY3RFbnZpcm9ubWVudDogVW5yZWNvZ25pemVkIGZpbGUgZXh0ZW5zaW9uOiAnICsgZmlsZXMpO1xuXG5cdGluamVjdExvYWRlci5wcmVsb2FkKFxuXHRcdCgpID0+IGxvYWRlcixcblx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gZmlsZXMgaXMgY29ycmVjdGx5IHBhc3NlZFxuXHRcdCgpID0+IChBcnJheS5pc0FycmF5KGZpbGVzKSA/IFtmaWxlc10gOiBmaWxlcyksXG5cdFx0KGxvYWRlcikgPT4ge1xuXHRcdFx0bG9hZGVyLnNldFBhdGg/LihwYXRoKTtcblx0XHRcdGlmIChleHRlbnNpb25zKSBleHRlbnNpb25zKGxvYWRlcik7XG5cdFx0fSxcblx0KTtcbn07XG5cbmluamVjdEVudmlyb25tZW50LmNsZWFyID0gKGNsZWFyT3B0aW9uczogeyBmaWxlcz86IHN0cmluZyB8IHN0cmluZ1tdOyBwcmVzZXQ/OiBOZ3RzRW52aXJvbm1lbnRQcmVzZXRzIH0pID0+IHtcblx0Y29uc3Qgb3B0aW9ucyA9IHsgZmlsZXM6IGRlZmF1bHRGaWxlcywgLi4uY2xlYXJPcHRpb25zIH07XG5cdGxldCB7IGZpbGVzIH0gPSBvcHRpb25zO1xuXHRjb25zdCBwcmVzZXQgPSBvcHRpb25zLnByZXNldDtcblxuXHRpZiAocHJlc2V0KSB7XG5cdFx0dmFsaWRhdGVQcmVzZXQocHJlc2V0KTtcblx0XHRmaWxlcyA9IEVOVklST05NRU5UX1BSRVNFVFNbcHJlc2V0XTtcblx0fVxuXG5cdGluamVjdExvYWRlci5jbGVhcihmaWxlcyk7XG59O1xuXG5mdW5jdGlvbiB2YWxpZGF0ZVByZXNldChwcmVzZXQ6IHN0cmluZykge1xuXHRpZiAoIShwcmVzZXQgaW4gRU5WSVJPTk1FTlRfUFJFU0VUUykpXG5cdFx0dGhyb3cgbmV3IEVycm9yKCdQcmVzZXQgbXVzdCBiZSBvbmUgb2Y6ICcgKyBPYmplY3Qua2V5cyhFTlZJUk9OTUVOVF9QUkVTRVRTKS5qb2luKCcsICcpKTtcbn1cblxuZnVuY3Rpb24gZ2V0RXh0ZW5zaW9uKGZpbGVzOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuXHRjb25zdCBpc0N1YmVNYXAgPSBBcnJheS5pc0FycmF5KGZpbGVzKSAmJiBmaWxlcy5sZW5ndGggPT09IDY7XG5cdGNvbnN0IGlzR2Fpbm1hcCA9IEFycmF5LmlzQXJyYXkoZmlsZXMpICYmIGZpbGVzLmxlbmd0aCA9PT0gMyAmJiBmaWxlcy5zb21lKChmaWxlKSA9PiBmaWxlLmVuZHNXaXRoKCdqc29uJykpO1xuXHRjb25zdCBmaXJzdEVudHJ5ID0gQXJyYXkuaXNBcnJheShmaWxlcykgPyBmaWxlc1swXSA6IGZpbGVzO1xuXG5cdC8vIEV2ZXJ5dGhpbmcgZWxzZVxuXHRjb25zdCBleHRlbnNpb246IHN0cmluZyB8IGZhbHNlIHwgdW5kZWZpbmVkID0gaXNDdWJlTWFwXG5cdFx0PyAnY3ViZSdcblx0XHQ6IGlzR2Fpbm1hcFxuXHRcdFx0PyAnd2VicCdcblx0XHRcdDogZmlyc3RFbnRyeS5zdGFydHNXaXRoKCdkYXRhOmFwcGxpY2F0aW9uL2V4cicpXG5cdFx0XHRcdD8gJ2V4cidcblx0XHRcdFx0OiBmaXJzdEVudHJ5LnN0YXJ0c1dpdGgoJ2RhdGE6YXBwbGljYXRpb24vaGRyJylcblx0XHRcdFx0XHQ/ICdoZHInXG5cdFx0XHRcdFx0OiBmaXJzdEVudHJ5LnN0YXJ0c1dpdGgoJ2RhdGE6aW1hZ2UvanBlZycpXG5cdFx0XHRcdFx0XHQ/ICdqcGcnXG5cdFx0XHRcdFx0XHQ6IGZpcnN0RW50cnkuc3BsaXQoJy4nKS5wb3AoKT8uc3BsaXQoJz8nKT8uc2hpZnQoKT8udG9Mb3dlckNhc2UoKTtcblxuXHRyZXR1cm4geyBleHRlbnNpb24sIGlzQ3ViZU1hcCwgaXNHYWlubWFwIH07XG59XG5cbmZ1bmN0aW9uIGdldExvYWRlcihleHRlbnNpb246IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuXHRjb25zdCBsb2FkZXIgPVxuXHRcdGV4dGVuc2lvbiA9PT0gJ2N1YmUnXG5cdFx0XHQ/IEN1YmVUZXh0dXJlTG9hZGVyXG5cdFx0XHQ6IGV4dGVuc2lvbiA9PT0gJ2hkcidcblx0XHRcdFx0PyBSR0JFTG9hZGVyXG5cdFx0XHRcdDogZXh0ZW5zaW9uID09PSAnZXhyJ1xuXHRcdFx0XHRcdD8gRVhSTG9hZGVyXG5cdFx0XHRcdFx0OiBleHRlbnNpb24gPT09ICdqcGcnIHx8IGV4dGVuc2lvbiA9PT0gJ2pwZWcnXG5cdFx0XHRcdFx0XHQ/IChIRFJKUEdMb2FkZXIgYXMgdW5rbm93biBhcyB0eXBlb2YgTG9hZGVyKVxuXHRcdFx0XHRcdFx0OiBleHRlbnNpb24gPT09ICd3ZWJwJ1xuXHRcdFx0XHRcdFx0XHQ/IChHYWluTWFwTG9hZGVyIGFzIHVua25vd24gYXMgdHlwZW9mIExvYWRlcilcblx0XHRcdFx0XHRcdFx0OiBudWxsO1xuXG5cdGlmICghbG9hZGVyKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdpbmplY3RFbnZpcm9ubWVudDogVW5yZWNvZ25pemVkIGZpbGUgZXh0ZW5zaW9uOiAnICsgZXh0ZW5zaW9uKTtcblx0fVxuXG5cdHJldHVybiBsb2FkZXIgYXMgdHlwZW9mIExvYWRlcjtcbn1cbiJdfQ==
@@ -42,8 +42,8 @@ export class NgtsFloat {
42
42
  container.updateMatrix();
43
43
  });
44
44
  }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsFloat, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: NgtsFloat, isStandalone: true, selector: "ngts-float", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "floatRef", first: true, predicate: ["float"], descendants: true, isSignal: true }], ngImport: i0, template: `
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsFloat, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsFloat, isStandalone: true, selector: "ngts-float", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "floatRef", first: true, predicate: ["float"], descendants: true, isSignal: true }], ngImport: i0, template: `
47
47
  <ngt-group [parameters]="parameters()">
48
48
  <ngt-group #float [matrixAutoUpdate]="false">
49
49
  <ng-content />
@@ -51,7 +51,7 @@ export class NgtsFloat {
51
51
  </ngt-group>
52
52
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
53
53
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsFloat, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsFloat, decorators: [{
55
55
  type: Component,
56
56
  args: [{
57
57
  selector: 'ngts-float',
@@ -1,6 +1,5 @@
1
- import { afterNextRender, ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, input, viewChild, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, input, viewChild, } from '@angular/core';
2
2
  import { applyProps, extend, NgtArgs, omit, pick, vector3 } from 'angular-three';
3
- import { injectAutoEffect } from 'ngxtension/auto-effect';
4
3
  import { mergeInputs } from 'ngxtension/inject-inputs';
5
4
  import { DoubleSide, Mesh, MeshBasicMaterial, PlaneGeometry, RingGeometry } from 'three';
6
5
  import * as i0 from "@angular/core";
@@ -30,26 +29,23 @@ export class NgtsLightformer {
30
29
  this.meshRef = viewChild.required('mesh');
31
30
  this.defaultMaterialRef = viewChild('defaultMaterial');
32
31
  extend({ Mesh, MeshBasicMaterial, RingGeometry, PlaneGeometry });
33
- const autoEffect = injectAutoEffect();
34
- afterNextRender(() => {
35
- autoEffect(() => {
36
- const material = this.defaultMaterialRef()?.nativeElement;
37
- if (material) {
38
- applyProps(material, { color: this.color() });
39
- material.color.multiplyScalar(this.intensity());
40
- }
41
- });
42
- autoEffect(() => {
43
- const target = this.target();
44
- if (!target)
45
- return;
46
- const mesh = this.meshRef().nativeElement;
47
- mesh.lookAt(target);
48
- });
32
+ effect(() => {
33
+ const material = this.defaultMaterialRef()?.nativeElement;
34
+ if (!material)
35
+ return;
36
+ applyProps(material, { color: this.color() });
37
+ material.color.multiplyScalar(this.intensity());
38
+ });
39
+ effect(() => {
40
+ const target = this.target();
41
+ if (!target)
42
+ return;
43
+ const mesh = this.meshRef().nativeElement;
44
+ mesh.lookAt(target);
49
45
  });
50
46
  }
51
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsLightformer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
52
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: NgtsLightformer, isStandalone: true, selector: "ngts-lightformer", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }, { propertyName: "defaultMaterialRef", first: true, predicate: ["defaultMaterial"], descendants: true, isSignal: true }], ngImport: i0, template: `
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsLightformer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtsLightformer, isStandalone: true, selector: "ngts-lightformer", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }, { propertyName: "defaultMaterialRef", first: true, predicate: ["defaultMaterial"], descendants: true, isSignal: true }], ngImport: i0, template: `
53
49
  <ngt-mesh #mesh [scale]="fixedScale()" [parameters]="parameters()">
54
50
  <ng-content select="[data-lightformer-geometry]">
55
51
  @switch (form()) {
@@ -72,7 +68,7 @@ export class NgtsLightformer {
72
68
  </ngt-mesh>
73
69
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
70
  }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsLightformer, decorators: [{
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsLightformer, decorators: [{
76
72
  type: Component,
77
73
  args: [{
78
74
  selector: 'ngts-lightformer',
@@ -104,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
104
100
  imports: [NgtArgs],
105
101
  }]
106
102
  }], ctorParameters: () => [] });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRmb3JtZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL2xpZ2h0Zm9ybWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1Isc0JBQXNCLEVBRXRCLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUF1QixJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBVyxNQUFNLE9BQU8sQ0FBQzs7QUFZbEcsTUFBTSxjQUFjLEdBQTZEO0lBQ2hGLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsQ0FBQztJQUNSLFNBQVMsRUFBRSxDQUFDO0NBQ1osQ0FBQztBQStCRixNQUFNLE9BQU8sZUFBZTtJQXFCM0I7UUFwQkEsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQUVsQixZQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLGVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxF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aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRjb21wdXRlZCxcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0RWxlbWVudFJlZixcblx0aW5wdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhcHBseVByb3BzLCBleHRlbmQsIE5ndEFyZ3MsIE5ndE1lc2gsIE5ndFZlY3RvcjMsIG9taXQsIHBpY2ssIHZlY3RvcjMgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IERvdWJsZVNpZGUsIE1lc2gsIE1lc2hCYXNpY01hdGVyaWFsLCBQbGFuZUdlb21ldHJ5LCBSaW5nR2VvbWV0cnksIFRleHR1cmUgfSBmcm9tICd0aHJlZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c0xpZ2h0Zm9ybWVyT3B0aW9ucyB7XG5cdG1hcD86IFRleHR1cmU7XG5cdHRvbmVNYXBwZWQ6IGJvb2xlYW47XG5cdGNvbG9yOiBzdHJpbmc7XG5cdGZvcm06ICdjaXJjbGUnIHwgJ3JpbmcnIHwgJ3JlY3QnO1xuXHRzY2FsZTogbnVtYmVyIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdIHwgW251bWJlciwgbnVtYmVyXTtcblx0aW50ZW5zaXR5OiBudW1iZXI7XG5cdHRhcmdldD86IE5ndFZlY3RvcjM7XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBQYXJ0aWFsPE9taXQ8Tmd0TWVzaCwgJ3NjYWxlJz4+ICYgTmd0c0xpZ2h0Zm9ybWVyT3B0aW9ucyA9IHtcblx0dG9uZU1hcHBlZDogZmFsc2UsXG5cdGNvbG9yOiAnd2hpdGUnLFxuXHRmb3JtOiAncmVjdCcsXG5cdHNjYWxlOiAxLFxuXHRpbnRlbnNpdHk6IDEsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWxpZ2h0Zm9ybWVyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LW1lc2ggI21lc2ggW3NjYWxlXT1cImZpeGVkU2NhbGUoKVwiIFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnMoKVwiPlxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2RhdGEtbGlnaHRmb3JtZXItZ2VvbWV0cnldXCI+XG5cdFx0XHRcdEBzd2l0Y2ggKGZvcm0oKSkge1xuXHRcdFx0XHRcdEBjYXNlICgnY2lyY2xlJykge1xuXHRcdFx0XHRcdFx0PG5ndC1yaW5nLWdlb21ldHJ5ICphcmdzPVwiWzAsIDEsIDY0XVwiIC8+XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdEBjYXNlICgncmluZycpIHtcblx0XHRcdFx0XHRcdDxuZ3QtcmluZy1nZW9tZXRyeSAqYXJncz1cIlswLjUsIDEsIDY0XVwiIC8+XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdEBjYXNlICgncmVjdCcpIHtcblx0XHRcdFx0XHRcdDxuZ3QtcGxhbmUtZ2VvbWV0cnkgLz5cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdDwvbmctY29udGVudD5cblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltkYXRhLWxpZ2h0Zm9ybWVyLW1hdGVyaWFsXVwiPlxuXHRcdFx0XHQ8bmd0LW1lc2gtYmFzaWMtbWF0ZXJpYWwgI2RlZmF1bHRNYXRlcmlhbCBbdG9uZU1hcHBlZF09XCJ0b25lTWFwcGVkKClcIiBbbWFwXT1cIm1hcCgpXCIgW3NpZGVdPVwic2lkZVwiIC8+XG5cdFx0XHQ8L25nLWNvbnRlbnQ+XG5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtbWVzaD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzTGlnaHRmb3JtZXIge1xuXHRzaWRlID0gRG91YmxlU2lkZTtcblxuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgWydtYXAnLCAndG9uZU1hcHBlZCcsICdjb2xvcicsICdmb3JtJywgJ3NjYWxlJywgJ2ludGVuc2l0eScsICd0YXJnZXQnXSk7XG5cblx0cHJpdmF0ZSBpbnRlbnNpdHkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2ludGVuc2l0eScpO1xuXHRwcml2YXRlIGNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICdjb2xvcicpO1xuXHRwcml2YXRlIHRhcmdldCA9IHZlY3RvcjModGhpcy5vcHRpb25zLCAndGFyZ2V0JywgdHJ1ZSk7XG5cdHByaXZhdGUgc2NhbGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3NjYWxlJyk7XG5cdGZpeGVkU2NhbGUgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3Qgc2NhbGUgPSB0aGlzLnNjYWxlKCk7XG5cdFx0cmV0dXJuIEFycmF5LmlzQXJyYXkoc2NhbGUpICYmIHNjYWxlLmxlbmd0aCA9PT0gMiA/IFtzY2FsZVswXSwgc2NhbGVbMV0sIDFdIDogc2NhbGU7XG5cdH0pO1xuXHRmb3JtID0gcGljayh0aGlzLm9wdGlvbnMsICdmb3JtJyk7XG5cdHRvbmVNYXBwZWQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3RvbmVNYXBwZWQnKTtcblx0bWFwID0gcGljayh0aGlzLm9wdGlvbnMsICdtYXAnKTtcblxuXHRtZXNoUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8TWVzaD4+KCdtZXNoJyk7XG5cdGRlZmF1bHRNYXRlcmlhbFJlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPE1lc2hCYXNpY01hdGVyaWFsPj4oJ2RlZmF1bHRNYXRlcmlhbCcpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IE1lc2gsIE1lc2hCYXNpY01hdGVyaWFsLCBSaW5nR2VvbWV0cnksIFBsYW5lR2VvbWV0cnkgfSk7XG5cblx0XHRjb25zdCBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBtYXRlcmlhbCA9IHRoaXMuZGVmYXVsdE1hdGVyaWFsUmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRcdGlmIChtYXRlcmlhbCkge1xuXHRcdFx0XHRcdGFwcGx5UHJvcHMobWF0ZXJpYWwsIHsgY29sb3I6IHRoaXMuY29sb3IoKSB9KTtcblx0XHRcdFx0XHRtYXRlcmlhbC5jb2xvci5tdWx0aXBseVNjYWxhcih0aGlzLmludGVuc2l0eSgpKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHRcdGF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCB0YXJnZXQgPSB0aGlzLnRhcmdldCgpO1xuXHRcdFx0XHRpZiAoIXRhcmdldCkgcmV0dXJuO1xuXHRcdFx0XHRjb25zdCBtZXNoID0gdGhpcy5tZXNoUmVmKCkubmF0aXZlRWxlbWVudDtcblx0XHRcdFx0bWVzaC5sb29rQXQodGFyZ2V0KTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRmb3JtZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL2xpZ2h0Zm9ybWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixzQkFBc0IsRUFDdEIsTUFBTSxFQUVOLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUF1QixJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBVyxNQUFNLE9BQU8sQ0FBQzs7QUFZbEcsTUFBTSxjQUFjLEdBQTZEO0lBQ2hGLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsQ0FBQztJQUNSLFNBQVMsRUFBRSxDQUFDO0NBQ1osQ0FBQztBQStCRixNQUFNLE9BQU8sZUFBZTtJQXFCM0I7UUFwQkEsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQUVsQixZQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLGVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFaEcsY0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzVDLFVBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNwQyxXQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9DLFVBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNyRixDQUFDLENBQUMsQ0FBQztRQUNILFNBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsQyxlQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUMsUUFBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWhDLFlBQU8sR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFtQixNQUFNLENBQUMsQ0FBQztRQUN2RCx1QkFBa0IsR0FBRyxTQUFTLENBQWdDLGlCQUFpQixDQUFDLENBQUM7UUFHaEYsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBRWpFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxhQUFhLENBQUM7WUFDMUQsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsT0FBTztZQUV0QixVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU87WUFFcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0F2Q1csZUFBZTtrR0FBZixlQUFlLCtiQTFCakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXFCVCw0REFHUyxPQUFPOzsyRkFFTCxlQUFlO2tCQTdCM0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFxQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdGVmZmVjdCxcblx0RWxlbWVudFJlZixcblx0aW5wdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhcHBseVByb3BzLCBleHRlbmQsIE5ndEFyZ3MsIE5ndE1lc2gsIE5ndFZlY3RvcjMsIG9taXQsIHBpY2ssIHZlY3RvcjMgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IERvdWJsZVNpZGUsIE1lc2gsIE1lc2hCYXNpY01hdGVyaWFsLCBQbGFuZUdlb21ldHJ5LCBSaW5nR2VvbWV0cnksIFRleHR1cmUgfSBmcm9tICd0aHJlZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c0xpZ2h0Zm9ybWVyT3B0aW9ucyB7XG5cdG1hcD86IFRleHR1cmU7XG5cdHRvbmVNYXBwZWQ6IGJvb2xlYW47XG5cdGNvbG9yOiBzdHJpbmc7XG5cdGZvcm06ICdjaXJjbGUnIHwgJ3JpbmcnIHwgJ3JlY3QnO1xuXHRzY2FsZTogbnVtYmVyIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdIHwgW251bWJlciwgbnVtYmVyXTtcblx0aW50ZW5zaXR5OiBudW1iZXI7XG5cdHRhcmdldD86IE5ndFZlY3RvcjM7XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBQYXJ0aWFsPE9taXQ8Tmd0TWVzaCwgJ3NjYWxlJz4+ICYgTmd0c0xpZ2h0Zm9ybWVyT3B0aW9ucyA9IHtcblx0dG9uZU1hcHBlZDogZmFsc2UsXG5cdGNvbG9yOiAnd2hpdGUnLFxuXHRmb3JtOiAncmVjdCcsXG5cdHNjYWxlOiAxLFxuXHRpbnRlbnNpdHk6IDEsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWxpZ2h0Zm9ybWVyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LW1lc2ggI21lc2ggW3NjYWxlXT1cImZpeGVkU2NhbGUoKVwiIFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnMoKVwiPlxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2RhdGEtbGlnaHRmb3JtZXItZ2VvbWV0cnldXCI+XG5cdFx0XHRcdEBzd2l0Y2ggKGZvcm0oKSkge1xuXHRcdFx0XHRcdEBjYXNlICgnY2lyY2xlJykge1xuXHRcdFx0XHRcdFx0PG5ndC1yaW5nLWdlb21ldHJ5ICphcmdzPVwiWzAsIDEsIDY0XVwiIC8+XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdEBjYXNlICgncmluZycpIHtcblx0XHRcdFx0XHRcdDxuZ3QtcmluZy1nZW9tZXRyeSAqYXJncz1cIlswLjUsIDEsIDY0XVwiIC8+XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdEBjYXNlICgncmVjdCcpIHtcblx0XHRcdFx0XHRcdDxuZ3QtcGxhbmUtZ2VvbWV0cnkgLz5cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdDwvbmctY29udGVudD5cblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltkYXRhLWxpZ2h0Zm9ybWVyLW1hdGVyaWFsXVwiPlxuXHRcdFx0XHQ8bmd0LW1lc2gtYmFzaWMtbWF0ZXJpYWwgI2RlZmF1bHRNYXRlcmlhbCBbdG9uZU1hcHBlZF09XCJ0b25lTWFwcGVkKClcIiBbbWFwXT1cIm1hcCgpXCIgW3NpZGVdPVwic2lkZVwiIC8+XG5cdFx0XHQ8L25nLWNvbnRlbnQ+XG5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtbWVzaD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzTGlnaHRmb3JtZXIge1xuXHRzaWRlID0gRG91YmxlU2lkZTtcblxuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgWydtYXAnLCAndG9uZU1hcHBlZCcsICdjb2xvcicsICdmb3JtJywgJ3NjYWxlJywgJ2ludGVuc2l0eScsICd0YXJnZXQnXSk7XG5cblx0cHJpdmF0ZSBpbnRlbnNpdHkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2ludGVuc2l0eScpO1xuXHRwcml2YXRlIGNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICdjb2xvcicpO1xuXHRwcml2YXRlIHRhcmdldCA9IHZlY3RvcjModGhpcy5vcHRpb25zLCAndGFyZ2V0JywgdHJ1ZSk7XG5cdHByaXZhdGUgc2NhbGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3NjYWxlJyk7XG5cdGZpeGVkU2NhbGUgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3Qgc2NhbGUgPSB0aGlzLnNjYWxlKCk7XG5cdFx0cmV0dXJuIEFycmF5LmlzQXJyYXkoc2NhbGUpICYmIHNjYWxlLmxlbmd0aCA9PT0gMiA/IFtzY2FsZVswXSwgc2NhbGVbMV0sIDFdIDogc2NhbGU7XG5cdH0pO1xuXHRmb3JtID0gcGljayh0aGlzLm9wdGlvbnMsICdmb3JtJyk7XG5cdHRvbmVNYXBwZWQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3RvbmVNYXBwZWQnKTtcblx0bWFwID0gcGljayh0aGlzLm9wdGlvbnMsICdtYXAnKTtcblxuXHRtZXNoUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8TWVzaD4+KCdtZXNoJyk7XG5cdGRlZmF1bHRNYXRlcmlhbFJlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPE1lc2hCYXNpY01hdGVyaWFsPj4oJ2RlZmF1bHRNYXRlcmlhbCcpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IE1lc2gsIE1lc2hCYXNpY01hdGVyaWFsLCBSaW5nR2VvbWV0cnksIFBsYW5lR2VvbWV0cnkgfSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgbWF0ZXJpYWwgPSB0aGlzLmRlZmF1bHRNYXRlcmlhbFJlZigpPy5uYXRpdmVFbGVtZW50O1xuXHRcdFx0aWYgKCFtYXRlcmlhbCkgcmV0dXJuO1xuXG5cdFx0XHRhcHBseVByb3BzKG1hdGVyaWFsLCB7IGNvbG9yOiB0aGlzLmNvbG9yKCkgfSk7XG5cdFx0XHRtYXRlcmlhbC5jb2xvci5tdWx0aXBseVNjYWxhcih0aGlzLmludGVuc2l0eSgpKTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCB0YXJnZXQgPSB0aGlzLnRhcmdldCgpO1xuXHRcdFx0aWYgKCF0YXJnZXQpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgbWVzaCA9IHRoaXMubWVzaFJlZigpLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRtZXNoLmxvb2tBdCh0YXJnZXQpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -1,7 +1,6 @@
1
- import { afterNextRender, ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, input, numberAttribute, viewChild, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, input, numberAttribute, viewChild, } from '@angular/core';
2
2
  import { extend, omit, pick } from 'angular-three';
3
3
  import { assertInjector } from 'ngxtension/assert-injector';
4
- import { injectAutoEffect } from 'ngxtension/auto-effect';
5
4
  import { mergeInputs } from 'ngxtension/inject-inputs';
6
5
  import { AlwaysStencilFunc, EqualStencilFunc, KeepStencilOp, Mesh, NotEqualStencilFunc, ReplaceStencilOp, } from 'three';
7
6
  import * as i0 from "@angular/core";
@@ -31,22 +30,19 @@ export class NgtsMask {
31
30
  };
32
31
  });
33
32
  extend({ Mesh });
34
- const autoEffect = injectAutoEffect();
35
- afterNextRender(() => {
36
- autoEffect(() => {
37
- const [mesh, spread] = [this.meshRef().nativeElement, this.spread()];
38
- Object.assign(mesh.material, spread);
39
- });
33
+ effect(() => {
34
+ const [mesh, spread] = [this.meshRef().nativeElement, this.spread()];
35
+ Object.assign(mesh.material, spread);
40
36
  });
41
37
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsMask, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: NgtsMask, isStandalone: true, selector: "ngts-mask", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsMask, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsMask, isStandalone: true, selector: "ngts-mask", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
44
40
  <ngt-mesh #mesh [renderOrder]="-id()" [parameters]="parameters()">
45
41
  <ng-content />
46
42
  </ngt-mesh>
47
43
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
48
44
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsMask, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsMask, decorators: [{
50
46
  type: Component,
51
47
  args: [{
52
48
  selector: 'ngts-mask',
@@ -75,4 +71,4 @@ export function injectMask(id, inverse = () => false, { injector } = {}) {
75
71
  });
76
72
  });
77
73
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9zdGFnaW5nL3NyYy9saWIvbWFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUd0QixLQUFLLEVBQ0wsZUFBZSxFQUNmLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFXLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQ04saUJBQWlCLEVBRWpCLGdCQUFnQixFQUNoQixhQUFhLEVBRWIsSUFBSSxFQUNKLG1CQUFtQixFQUNuQixnQkFBZ0IsR0FDaEIsTUFBTSxPQUFPLENBQUM7O0FBT2YsTUFBTSxjQUFjLEdBQW9CO0lBQ3ZDLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFVBQVUsRUFBRSxLQUFLO0NBQ2pCLENBQUM7QUFhRixNQUFNLE9BQU8sUUFBUTtJQXdCcEI7UUF2QkEsT0FBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUM5QyxZQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTVFLGVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBRTlELFlBQU8sR0FBRyxTQUFTLENBQUMsUUFBUSxDQUE2QyxNQUFNLENBQUMsQ0FBQztRQUV6RSxlQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUMsZUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzlDLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzlCLE1BQU0sQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN2RixPQUFPO2dCQUNOLFVBQVU7Z0JBQ1YsVUFBVTtnQkFDVixZQUFZLEVBQUUsSUFBSTtnQkFDbEIsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsV0FBVyxFQUFFLGlCQUFpQjtnQkFDOUIsV0FBVyxFQUFFLGdCQUFnQjtnQkFDN0IsWUFBWSxFQUFFLGdCQUFnQjtnQkFDOUIsWUFBWSxFQUFFLGdCQUFnQjthQUM5QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFHRixNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFFdEMsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNwQixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNmLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBbkNXLFFBQVE7a0dBQVIsUUFBUSwrYUFSVjs7OztFQUlUOzsyRkFJVyxRQUFRO2tCQVhwQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxXQUFXO29CQUNyQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7O0VBSVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQzs7QUF1Q0QsTUFBTSxVQUFVLFVBQVUsQ0FDekIsRUFBZ0IsRUFDaEIsVUFBeUIsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUNwQyxFQUFFLFFBQVEsS0FBOEIsRUFBRTtJQUUxQyxPQUFPLGNBQWMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNoRCxPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDMUMsT0FBTztnQkFDTixZQUFZLEVBQUUsSUFBSTtnQkFDbEIsVUFBVSxFQUFFLEdBQUc7Z0JBQ2YsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLGdCQUFnQjtnQkFDOUQsV0FBVyxFQUFFLGFBQWE7Z0JBQzFCLFlBQVksRUFBRSxhQUFhO2dCQUMzQixZQUFZLEVBQUUsYUFBYTthQUMzQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRhZnRlck5leHRSZW5kZXIsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRFbGVtZW50UmVmLFxuXHRJbmplY3Rvcixcblx0aW5wdXQsXG5cdG51bWJlckF0dHJpYnV0ZSxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgTmd0TWVzaCwgb21pdCwgcGljayB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQge1xuXHRBbHdheXNTdGVuY2lsRnVuYyxcblx0QnVmZmVyR2VvbWV0cnksXG5cdEVxdWFsU3RlbmNpbEZ1bmMsXG5cdEtlZXBTdGVuY2lsT3AsXG5cdE1hdGVyaWFsLFxuXHRNZXNoLFxuXHROb3RFcXVhbFN0ZW5jaWxGdW5jLFxuXHRSZXBsYWNlU3RlbmNpbE9wLFxufSBmcm9tICd0aHJlZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c01hc2tPcHRpb25zIGV4dGVuZHMgUGFydGlhbDxOZ3RNZXNoPiB7XG5cdGNvbG9yV3JpdGU6IGJvb2xlYW47XG5cdGRlcHRoV3JpdGU6IGJvb2xlYW47XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RzTWFza09wdGlvbnMgPSB7XG5cdGNvbG9yV3JpdGU6IGZhbHNlLFxuXHRkZXB0aFdyaXRlOiBmYWxzZSxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtbWFzaycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1tZXNoICNtZXNoIFtyZW5kZXJPcmRlcl09XCItaWQoKVwiIFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnMoKVwiPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1tZXNoPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzTWFzayB7XG5cdGlkID0gaW5wdXQoMSwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgWydjb2xvcldyaXRlJywgJ2RlcHRoV3JpdGUnXSk7XG5cblx0bWVzaFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPE1lc2g8QnVmZmVyR2VvbWV0cnksIE1hdGVyaWFsPj4+KCdtZXNoJyk7XG5cblx0cHJpdmF0ZSBjb2xvcldyaXRlID0gcGljayh0aGlzLm9wdGlvbnMsICdjb2xvcldyaXRlJyk7XG5cdHByaXZhdGUgZGVwdGhXcml0ZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnZGVwdGhXcml0ZScpO1xuXHRwcml2YXRlIHNwcmVhZCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbaWQsIGNvbG9yV3JpdGUsIGRlcHRoV3JpdGVdID0gW3RoaXMuaWQoKSwgdGhpcy5jb2xvcldyaXRlKCksIHRoaXMuZGVwdGhXcml0ZSgpXTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Y29sb3JXcml0ZSxcblx0XHRcdGRlcHRoV3JpdGUsXG5cdFx0XHRzdGVuY2lsV3JpdGU6IHRydWUsXG5cdFx0XHRzdGVuY2lsUmVmOiBpZCxcblx0XHRcdHN0ZW5jaWxGdW5jOiBBbHdheXNTdGVuY2lsRnVuYyxcblx0XHRcdHN0ZW5jaWxGYWlsOiBSZXBsYWNlU3RlbmNpbE9wLFxuXHRcdFx0c3RlbmNpbFpGYWlsOiBSZXBsYWNlU3RlbmNpbE9wLFxuXHRcdFx0c3RlbmNpbFpQYXNzOiBSZXBsYWNlU3RlbmNpbE9wLFxuXHRcdH07XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IE1lc2ggfSk7XG5cblx0XHRjb25zdCBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBbbWVzaCwgc3ByZWFkXSA9IFt0aGlzLm1lc2hSZWYoKS5uYXRpdmVFbGVtZW50LCB0aGlzLnNwcmVhZCgpXTtcblx0XHRcdFx0T2JqZWN0LmFzc2lnbihtZXNoLm1hdGVyaWFsLCBzcHJlYWQpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE1hc2soXG5cdGlkOiAoKSA9PiBudW1iZXIsXG5cdGludmVyc2U6ICgpID0+IGJvb2xlYW4gPSAoKSA9PiBmYWxzZSxcblx0eyBpbmplY3RvciB9OiB7IGluamVjdG9yPzogSW5qZWN0b3IgfSA9IHt9LFxuKSB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RNYXNrLCBpbmplY3RvciwgKCkgPT4ge1xuXHRcdHJldHVybiBjb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbX2lkLCBfaW52ZXJzZV0gPSBbaWQoKSwgaW52ZXJzZSgpXTtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHN0ZW5jaWxXcml0ZTogdHJ1ZSxcblx0XHRcdFx0c3RlbmNpbFJlZjogX2lkLFxuXHRcdFx0XHRzdGVuY2lsRnVuYzogX2ludmVyc2UgPyBOb3RFcXVhbFN0ZW5jaWxGdW5jIDogRXF1YWxTdGVuY2lsRnVuYyxcblx0XHRcdFx0c3RlbmNpbEZhaWw6IEtlZXBTdGVuY2lsT3AsXG5cdFx0XHRcdHN0ZW5jaWxaRmFpbDogS2VlcFN0ZW5jaWxPcCxcblx0XHRcdFx0c3RlbmNpbFpQYXNzOiBLZWVwU3RlbmNpbE9wLFxuXHRcdFx0fTtcblx0XHR9KTtcblx0fSk7XG59XG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9zdGFnaW5nL3NyYy9saWIvbWFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLE1BQU0sRUFHTixLQUFLLEVBQ0wsZUFBZSxFQUNmLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFXLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQ04saUJBQWlCLEVBRWpCLGdCQUFnQixFQUNoQixhQUFhLEVBRWIsSUFBSSxFQUNKLG1CQUFtQixFQUNuQixnQkFBZ0IsR0FDaEIsTUFBTSxPQUFPLENBQUM7O0FBT2YsTUFBTSxjQUFjLEdBQW9CO0lBQ3ZDLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFVBQVUsRUFBRSxLQUFLO0NBQ2pCLENBQUM7QUFhRixNQUFNLE9BQU8sUUFBUTtJQXdCcEI7UUF2QkEsT0FBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUM5QyxZQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTVFLGVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBRTlELFlBQU8sR0FBRyxTQUFTLENBQUMsUUFBUSxDQUE2QyxNQUFNLENBQUMsQ0FBQztRQUV6RSxlQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUMsZUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzlDLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzlCLE1BQU0sQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN2RixPQUFPO2dCQUNOLFVBQVU7Z0JBQ1YsVUFBVTtnQkFDVixZQUFZLEVBQUUsSUFBSTtnQkFDbEIsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsV0FBVyxFQUFFLGlCQUFpQjtnQkFDOUIsV0FBVyxFQUFFLGdCQUFnQjtnQkFDN0IsWUFBWSxFQUFFLGdCQUFnQjtnQkFDOUIsWUFBWSxFQUFFLGdCQUFnQjthQUM5QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFHRixNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNyRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQS9CVyxRQUFRO2tHQUFSLFFBQVEsK2FBUlY7Ozs7RUFJVDs7MkZBSVcsUUFBUTtrQkFYcEIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0M7O0FBbUNELE1BQU0sVUFBVSxVQUFVLENBQ3pCLEVBQWdCLEVBQ2hCLFVBQXlCLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFDcEMsRUFBRSxRQUFRLEtBQThCLEVBQUU7SUFFMUMsT0FBTyxjQUFjLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDaEQsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3BCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLE9BQU87Z0JBQ04sWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFVBQVUsRUFBRSxHQUFHO2dCQUNmLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0I7Z0JBQzlELFdBQVcsRUFBRSxhQUFhO2dCQUMxQixZQUFZLEVBQUUsYUFBYTtnQkFDM0IsWUFBWSxFQUFFLGFBQWE7YUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdGVmZmVjdCxcblx0RWxlbWVudFJlZixcblx0SW5qZWN0b3IsXG5cdGlucHV0LFxuXHRudW1iZXJBdHRyaWJ1dGUsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIE5ndE1lc2gsIG9taXQsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHtcblx0QWx3YXlzU3RlbmNpbEZ1bmMsXG5cdEJ1ZmZlckdlb21ldHJ5LFxuXHRFcXVhbFN0ZW5jaWxGdW5jLFxuXHRLZWVwU3RlbmNpbE9wLFxuXHRNYXRlcmlhbCxcblx0TWVzaCxcblx0Tm90RXF1YWxTdGVuY2lsRnVuYyxcblx0UmVwbGFjZVN0ZW5jaWxPcCxcbn0gZnJvbSAndGhyZWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNNYXNrT3B0aW9ucyBleHRlbmRzIFBhcnRpYWw8Tmd0TWVzaD4ge1xuXHRjb2xvcldyaXRlOiBib29sZWFuO1xuXHRkZXB0aFdyaXRlOiBib29sZWFuO1xufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0c01hc2tPcHRpb25zID0ge1xuXHRjb2xvcldyaXRlOiBmYWxzZSxcblx0ZGVwdGhXcml0ZTogZmFsc2UsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLW1hc2snLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtbWVzaCAjbWVzaCBbcmVuZGVyT3JkZXJdPVwiLWlkKClcIiBbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzKClcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtbWVzaD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c01hc2sge1xuXHRpZCA9IGlucHV0KDEsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblxuXHRwYXJhbWV0ZXJzID0gb21pdCh0aGlzLm9wdGlvbnMsIFsnY29sb3JXcml0ZScsICdkZXB0aFdyaXRlJ10pO1xuXG5cdG1lc2hSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxNZXNoPEJ1ZmZlckdlb21ldHJ5LCBNYXRlcmlhbD4+PignbWVzaCcpO1xuXG5cdHByaXZhdGUgY29sb3JXcml0ZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnY29sb3JXcml0ZScpO1xuXHRwcml2YXRlIGRlcHRoV3JpdGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2RlcHRoV3JpdGUnKTtcblx0cHJpdmF0ZSBzcHJlYWQgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgW2lkLCBjb2xvcldyaXRlLCBkZXB0aFdyaXRlXSA9IFt0aGlzLmlkKCksIHRoaXMuY29sb3JXcml0ZSgpLCB0aGlzLmRlcHRoV3JpdGUoKV07XG5cdFx0cmV0dXJuIHtcblx0XHRcdGNvbG9yV3JpdGUsXG5cdFx0XHRkZXB0aFdyaXRlLFxuXHRcdFx0c3RlbmNpbFdyaXRlOiB0cnVlLFxuXHRcdFx0c3RlbmNpbFJlZjogaWQsXG5cdFx0XHRzdGVuY2lsRnVuYzogQWx3YXlzU3RlbmNpbEZ1bmMsXG5cdFx0XHRzdGVuY2lsRmFpbDogUmVwbGFjZVN0ZW5jaWxPcCxcblx0XHRcdHN0ZW5jaWxaRmFpbDogUmVwbGFjZVN0ZW5jaWxPcCxcblx0XHRcdHN0ZW5jaWxaUGFzczogUmVwbGFjZVN0ZW5jaWxPcCxcblx0XHR9O1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBNZXNoIH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IFttZXNoLCBzcHJlYWRdID0gW3RoaXMubWVzaFJlZigpLm5hdGl2ZUVsZW1lbnQsIHRoaXMuc3ByZWFkKCldO1xuXHRcdFx0T2JqZWN0LmFzc2lnbihtZXNoLm1hdGVyaWFsLCBzcHJlYWQpO1xuXHRcdH0pO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RNYXNrKFxuXHRpZDogKCkgPT4gbnVtYmVyLFxuXHRpbnZlcnNlOiAoKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2UsXG5cdHsgaW5qZWN0b3IgfTogeyBpbmplY3Rvcj86IEluamVjdG9yIH0gPSB7fSxcbikge1xuXHRyZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0TWFzaywgaW5qZWN0b3IsICgpID0+IHtcblx0XHRyZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW19pZCwgX2ludmVyc2VdID0gW2lkKCksIGludmVyc2UoKV07XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRzdGVuY2lsV3JpdGU6IHRydWUsXG5cdFx0XHRcdHN0ZW5jaWxSZWY6IF9pZCxcblx0XHRcdFx0c3RlbmNpbEZ1bmM6IF9pbnZlcnNlID8gTm90RXF1YWxTdGVuY2lsRnVuYyA6IEVxdWFsU3RlbmNpbEZ1bmMsXG5cdFx0XHRcdHN0ZW5jaWxGYWlsOiBLZWVwU3RlbmNpbE9wLFxuXHRcdFx0XHRzdGVuY2lsWkZhaWw6IEtlZXBTdGVuY2lsT3AsXG5cdFx0XHRcdHN0ZW5jaWxaUGFzczogS2VlcFN0ZW5jaWxPcCxcblx0XHRcdH07XG5cdFx0fSk7XG5cdH0pO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { DestroyRef, Directive, Injector, TemplateRef, ViewContainerRef, afterNextRender, computed, inject, input, output, signal, untracked, } from '@angular/core';
1
+ import { DestroyRef, Directive, TemplateRef, ViewContainerRef, afterNextRender, computed, inject, input, output, signal, untracked, } from '@angular/core';
2
2
  import { injectTexture } from 'angular-three-soba/loaders';
3
3
  import { assertInjector } from 'ngxtension/assert-injector';
4
4
  import * as i0 from "@angular/core";
@@ -48,17 +48,15 @@ export class NgtsMatcapTexture {
48
48
  constructor() {
49
49
  this.matcapTexture = input();
50
50
  this.matcapTextureLoaded = output();
51
- this.injector = inject(Injector);
52
51
  this.template = inject(TemplateRef);
53
52
  this.vcr = inject(ViewContainerRef);
54
53
  this.id = computed(() => this.matcapTexture()?.id ?? 0);
55
54
  this.format = computed(() => this.matcapTexture()?.format ?? 1024);
55
+ const { texture } = injectMatcapTexture(this.id, {
56
+ format: this.format,
57
+ onLoad: this.matcapTextureLoaded.emit.bind(this.matcapTextureLoaded),
58
+ });
56
59
  afterNextRender(() => {
57
- const { texture } = injectMatcapTexture(this.id, {
58
- format: this.format,
59
- onLoad: this.matcapTextureLoaded.emit.bind(this.matcapTextureLoaded),
60
- injector: this.injector,
61
- });
62
60
  untracked(() => {
63
61
  this.ref = this.vcr.createEmbeddedView(this.template, { $implicit: texture });
64
62
  this.ref.detectChanges();
@@ -71,11 +69,11 @@ export class NgtsMatcapTexture {
71
69
  static ngTemplateContextGuard(_, ctx) {
72
70
  return true;
73
71
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsMatcapTexture, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
75
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.0", type: NgtsMatcapTexture, isStandalone: true, selector: "ng-template[matcapTexture]", inputs: { matcapTexture: { classPropertyName: "matcapTexture", publicName: "matcapTexture", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { matcapTextureLoaded: "matcapTextureLoaded" }, ngImport: i0 }); }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsMatcapTexture, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
73
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtsMatcapTexture, isStandalone: true, selector: "ng-template[matcapTexture]", inputs: { matcapTexture: { classPropertyName: "matcapTexture", publicName: "matcapTexture", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { matcapTextureLoaded: "matcapTextureLoaded" }, ngImport: i0 }); }
76
74
  }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsMatcapTexture, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsMatcapTexture, decorators: [{
78
76
  type: Directive,
79
77
  args: [{ selector: 'ng-template[matcapTexture]', standalone: true }]
80
78
  }], ctorParameters: () => [] });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2FwLXRleHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL21hdGNhcC10ZXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUVULFFBQVEsRUFFUixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUc1RCxTQUFTLGVBQWUsQ0FBQyxNQUFjO0lBQ3RDLFFBQVEsTUFBTSxFQUFFLENBQUM7UUFDaEIsS0FBSyxFQUFFO1lBQ04sT0FBTyxPQUFPLENBQUM7UUFDaEIsS0FBSyxHQUFHO1lBQ1AsT0FBTyxRQUFRLENBQUM7UUFDakIsS0FBSyxHQUFHO1lBQ1AsT0FBTyxRQUFRLENBQUM7UUFDakIsS0FBSyxHQUFHO1lBQ1AsT0FBTyxRQUFRLENBQUM7UUFDakI7WUFDQyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxRQUFRLEdBQUcsb0VBQW9FLENBQUM7QUFDdEYsTUFBTSxXQUFXLEdBQUcsd0ZBQXdGLENBQUM7QUFFN0csTUFBTSxVQUFVLG1CQUFtQixDQUNsQyxLQUE0QixHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQ25DLEVBQ0MsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDbkIsTUFBTSxFQUNOLFFBQVEsTUFDa0YsRUFBRTtJQUU3RixPQUFPLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ3pELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBeUIsRUFBRSxDQUFDLENBQUM7UUFFdEQsS0FBSyxDQUFDLFFBQVEsQ0FBQzthQUNiLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3pCLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2QsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUVKLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFaEUsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM5QixNQUFNLE9BQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUNyQixJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNqQyxPQUFPLE9BQU8sQ0FBQztZQUNoQixDQUFDO1lBRUQsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDakMsT0FBTyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QixDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDYixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxJQUFJLGNBQWMsRUFBRSxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxXQUFXLElBQUksTUFBTSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXZFLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRXJELE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNoRCxDQUFDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFRRCxNQUFNLE9BQU8saUJBQWlCO0lBYTdCO1FBWkEsa0JBQWEsR0FBRyxLQUFLLEVBQTRCLENBQUM7UUFDbEQsd0JBQW1CLEdBQUcsTUFBTSxFQUFhLENBQUM7UUFFbEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixhQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9CLFFBQUcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUUvQixPQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkQsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDO1FBS3JFLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7Z0JBQ2hELE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztnQkFDcEUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQ3ZCLENBQUMsQ0FBQztZQUVILFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDOUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBb0IsRUFBRSxHQUFZO1FBQy9ELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQzs4R0FsQ1csaUJBQWlCO2tHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsNEJBQTRCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdERlc3Ryb3lSZWYsXG5cdERpcmVjdGl2ZSxcblx0RW1iZWRkZWRWaWV3UmVmLFxuXHRJbmplY3Rvcixcblx0U2lnbmFsLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NvbnRhaW5lclJlZixcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRjb21wdXRlZCxcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0b3V0cHV0LFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RUZXh0dXJlIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL2xvYWRlcnMnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQgeyBUZXh0dXJlIH0gZnJvbSAndGhyZWUnO1xuXG5mdW5jdGlvbiBnZXRGb3JtYXRTdHJpbmcoZm9ybWF0OiBudW1iZXIpIHtcblx0c3dpdGNoIChmb3JtYXQpIHtcblx0XHRjYXNlIDY0OlxuXHRcdFx0cmV0dXJuICctNjRweCc7XG5cdFx0Y2FzZSAxMjg6XG5cdFx0XHRyZXR1cm4gJy0xMjhweCc7XG5cdFx0Y2FzZSAyNTY6XG5cdFx0XHRyZXR1cm4gJy0yNTZweCc7XG5cdFx0Y2FzZSA1MTI6XG5cdFx0XHRyZXR1cm4gJy01MTJweCc7XG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJldHVybiAnJztcblx0fVxufVxuXG5jb25zdCBMSVNUX1VSTCA9ICdodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvcG1uZHJzL2RyZWktYXNzZXRzQG1hc3Rlci9tYXRjYXBzLmpzb24nO1xuY29uc3QgTUFUQ0FQX1JPT1QgPSAnaHR0cHM6Ly9yYXdjZG4uZ2l0aGFjay5jb20vZW1tZWxsZXBwaS9tYXRjYXBzLzliMzZjY2FhZjBhMjQ4ODFhMzkwNjJkMDU1NjZjOWU5MmJlNGFhMGQnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0TWF0Y2FwVGV4dHVyZShcblx0aWQ6ICgpID0+IG51bWJlciB8IHN0cmluZyA9ICgpID0+IDAsXG5cdHtcblx0XHRmb3JtYXQgPSAoKSA9PiAxMDI0LFxuXHRcdG9uTG9hZCxcblx0XHRpbmplY3Rvcixcblx0fTogeyBmb3JtYXQ/OiAoKSA9PiBudW1iZXI7IG9uTG9hZD86ICh0ZXh0dXJlOiBUZXh0dXJlW10pID0+IHZvaWQ7IGluamVjdG9yPzogSW5qZWN0b3IgfSA9IHt9LFxuKSB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RNYXRjYXBUZXh0dXJlLCBpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IG1hdGNhcExpc3QgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oe30pO1xuXG5cdFx0ZmV0Y2goTElTVF9VUkwpXG5cdFx0XHQudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxuXHRcdFx0LnRoZW4oKGxpc3QpID0+IHtcblx0XHRcdFx0bWF0Y2FwTGlzdC5zZXQobGlzdCk7XG5cdFx0XHR9KTtcblxuXHRcdGNvbnN0IERFRkFVTFRfTUFUQ0FQID0gY29tcHV0ZWQoKCkgPT4gbWF0Y2FwTGlzdCgpWzBdKTtcblx0XHRjb25zdCBudW1Ub3QgPSBjb21wdXRlZCgoKSA9PiBPYmplY3Qua2V5cyhtYXRjYXBMaXN0KCkpLmxlbmd0aCk7XG5cblx0XHRjb25zdCBmaWxlSGFzaCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGNvbnN0IGlkVmFsdWUgPSBpZCgpO1xuXHRcdFx0aWYgKHR5cGVvZiBpZFZhbHVlID09PSAnc3RyaW5nJykge1xuXHRcdFx0XHRyZXR1cm4gaWRWYWx1ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHR5cGVvZiBpZFZhbHVlID09PSAnbnVtYmVyJykge1xuXHRcdFx0XHRyZXR1cm4gbWF0Y2FwTGlzdCgpW2lkVmFsdWVdO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9KTtcblxuXHRcdGNvbnN0IGZpbGVOYW1lID0gY29tcHV0ZWQoKCkgPT4gYCR7ZmlsZUhhc2goKSB8fCBERUZBVUxUX01BVENBUCgpfSR7Z2V0Rm9ybWF0U3RyaW5nKGZvcm1hdCgpKX0ucG5nYCk7XG5cdFx0Y29uc3QgdXJsID0gY29tcHV0ZWQoKCkgPT4gYCR7TUFUQ0FQX1JPT1R9LyR7Zm9ybWF0KCl9LyR7ZmlsZU5hbWUoKX1gKTtcblxuXHRcdGNvbnN0IG1hdGNhcFRleHR1cmUgPSBpbmplY3RUZXh0dXJlKHVybCwgeyBvbkxvYWQgfSk7XG5cblx0XHRyZXR1cm4geyB1cmwsIHRleHR1cmU6IG1hdGNhcFRleHR1cmUsIG51bVRvdCB9O1xuXHR9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzTWF0Y2FwVGV4dHVyZU9wdGlvbnMge1xuXHRpZD86IG51bWJlciB8IHN0cmluZztcblx0Zm9ybWF0PzogbnVtYmVyO1xufVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVttYXRjYXBUZXh0dXJlXScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBOZ3RzTWF0Y2FwVGV4dHVyZSB7XG5cdG1hdGNhcFRleHR1cmUgPSBpbnB1dDxOZ3RzTWF0Y2FwVGV4dHVyZU9wdGlvbnM+KCk7XG5cdG1hdGNhcFRleHR1cmVMb2FkZWQgPSBvdXRwdXQ8VGV4dHVyZVtdPigpO1xuXG5cdHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXHRwcml2YXRlIHRlbXBsYXRlID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcblx0cHJpdmF0ZSB2Y3IgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cblx0cHJpdmF0ZSBpZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMubWF0Y2FwVGV4dHVyZSgpPy5pZCA/PyAwKTtcblx0cHJpdmF0ZSBmb3JtYXQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1hdGNhcFRleHR1cmUoKT8uZm9ybWF0ID8/IDEwMjQpO1xuXG5cdHByaXZhdGUgcmVmPzogRW1iZWRkZWRWaWV3UmVmPHsgJGltcGxpY2l0OiBTaWduYWw8VGV4dHVyZSB8IG51bGw+IH0+O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHRjb25zdCB7IHRleHR1cmUgfSA9IGluamVjdE1hdGNhcFRleHR1cmUodGhpcy5pZCwge1xuXHRcdFx0XHRmb3JtYXQ6IHRoaXMuZm9ybWF0LFxuXHRcdFx0XHRvbkxvYWQ6IHRoaXMubWF0Y2FwVGV4dHVyZUxvYWRlZC5lbWl0LmJpbmQodGhpcy5tYXRjYXBUZXh0dXJlTG9hZGVkKSxcblx0XHRcdFx0aW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG5cdFx0XHR9KTtcblxuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0dGhpcy5yZWYgPSB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSwgeyAkaW1wbGljaXQ6IHRleHR1cmUgfSk7XG5cdFx0XHRcdHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHR0aGlzLnJlZj8uZGVzdHJveSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoXzogTmd0c01hdGNhcFRleHR1cmUsIGN0eDogdW5rbm93bik6IGN0eCBpcyB7ICRpbXBsaWNpdDogU2lnbmFsPFRleHR1cmUgfCBudWxsPiB9IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2FwLXRleHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL21hdGNhcC10ZXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUlULFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRzVELFNBQVMsZUFBZSxDQUFDLE1BQWM7SUFDdEMsUUFBUSxNQUFNLEVBQUUsQ0FBQztRQUNoQixLQUFLLEVBQUU7WUFDTixPQUFPLE9BQU8sQ0FBQztRQUNoQixLQUFLLEdBQUc7WUFDUCxPQUFPLFFBQVEsQ0FBQztRQUNqQixLQUFLLEdBQUc7WUFDUCxPQUFPLFFBQVEsQ0FBQztRQUNqQixLQUFLLEdBQUc7WUFDUCxPQUFPLFFBQVEsQ0FBQztRQUNqQjtZQUNDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztBQUNGLENBQUM7QUFFRCxNQUFNLFFBQVEsR0FBRyxvRUFBb0UsQ0FBQztBQUN0RixNQUFNLFdBQVcsR0FBRyx3RkFBd0YsQ0FBQztBQUU3RyxNQUFNLFVBQVUsbUJBQW1CLENBQ2xDLEtBQTRCLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFDbkMsRUFDQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUNuQixNQUFNLEVBQ04sUUFBUSxNQUNrRixFQUFFO0lBRTdGLE9BQU8sY0FBYyxDQUFDLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDekQsTUFBTSxVQUFVLEdBQUcsTUFBTSxD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RSxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNqQyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFvQixFQUFFLEdBQVk7UUFDL0QsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDOzhHQWhDVyxpQkFBaUI7a0dBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSw0QkFBNEIsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0RGVzdHJveVJlZixcblx0RGlyZWN0aXZlLFxuXHRFbWJlZGRlZFZpZXdSZWYsXG5cdEluamVjdG9yLFxuXHRTaWduYWwsXG5cdFRlbXBsYXRlUmVmLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGNvbXB1dGVkLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHRvdXRwdXQsXG5cdHNpZ25hbCxcblx0dW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdFRleHR1cmUgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvbG9hZGVycyc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCB7IFRleHR1cmUgfSBmcm9tICd0aHJlZSc7XG5cbmZ1bmN0aW9uIGdldEZvcm1hdFN0cmluZyhmb3JtYXQ6IG51bWJlcikge1xuXHRzd2l0Y2ggKGZvcm1hdCkge1xuXHRcdGNhc2UgNjQ6XG5cdFx0XHRyZXR1cm4gJy02NHB4Jztcblx0XHRjYXNlIDEyODpcblx0XHRcdHJldHVybiAnLTEyOHB4Jztcblx0XHRjYXNlIDI1Njpcblx0XHRcdHJldHVybiAnLTI1NnB4Jztcblx0XHRjYXNlIDUxMjpcblx0XHRcdHJldHVybiAnLTUxMnB4Jztcblx0XHRkZWZhdWx0OlxuXHRcdFx0cmV0dXJuICcnO1xuXHR9XG59XG5cbmNvbnN0IExJU1RfVVJMID0gJ2h0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9naC9wbW5kcnMvZHJlaS1hc3NldHNAbWFzdGVyL21hdGNhcHMuanNvbic7XG5jb25zdCBNQVRDQVBfUk9PVCA9ICdodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9lbW1lbGxlcHBpL21hdGNhcHMvOWIzNmNjYWFmMGEyNDg4MWEzOTA2MmQwNTU2NmM5ZTkyYmU0YWEwZCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RNYXRjYXBUZXh0dXJlKFxuXHRpZDogKCkgPT4gbnVtYmVyIHwgc3RyaW5nID0gKCkgPT4gMCxcblx0e1xuXHRcdGZvcm1hdCA9ICgpID0+IDEwMjQsXG5cdFx0b25Mb2FkLFxuXHRcdGluamVjdG9yLFxuXHR9OiB7IGZvcm1hdD86ICgpID0+IG51bWJlcjsgb25Mb2FkPzogKHRleHR1cmU6IFRleHR1cmVbXSkgPT4gdm9pZDsgaW5qZWN0b3I/OiBJbmplY3RvciB9ID0ge30sXG4pIHtcblx0cmV0dXJuIGFzc2VydEluamVjdG9yKGluamVjdE1hdGNhcFRleHR1cmUsIGluamVjdG9yLCAoKSA9PiB7XG5cdFx0Y29uc3QgbWF0Y2FwTGlzdCA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pih7fSk7XG5cblx0XHRmZXRjaChMSVNUX1VSTClcblx0XHRcdC50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpXG5cdFx0XHQudGhlbigobGlzdCkgPT4ge1xuXHRcdFx0XHRtYXRjYXBMaXN0LnNldChsaXN0KTtcblx0XHRcdH0pO1xuXG5cdFx0Y29uc3QgREVGQVVMVF9NQVRDQVAgPSBjb21wdXRlZCgoKSA9PiBtYXRjYXBMaXN0KClbMF0pO1xuXHRcdGNvbnN0IG51bVRvdCA9IGNvbXB1dGVkKCgpID0+IE9iamVjdC5rZXlzKG1hdGNhcExpc3QoKSkubGVuZ3RoKTtcblxuXHRcdGNvbnN0IGZpbGVIYXNoID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0Y29uc3QgaWRWYWx1ZSA9IGlkKCk7XG5cdFx0XHRpZiAodHlwZW9mIGlkVmFsdWUgPT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdHJldHVybiBpZFZhbHVlO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAodHlwZW9mIGlkVmFsdWUgPT09ICdudW1iZXInKSB7XG5cdFx0XHRcdHJldHVybiBtYXRjYXBMaXN0KClbaWRWYWx1ZV07XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgZmlsZU5hbWUgPSBjb21wdXRlZCgoKSA9PiBgJHtmaWxlSGFzaCgpIHx8IERFRkFVTFRfTUFUQ0FQKCl9JHtnZXRGb3JtYXRTdHJpbmcoZm9ybWF0KCkpfS5wbmdgKTtcblx0XHRjb25zdCB1cmwgPSBjb21wdXRlZCgoKSA9PiBgJHtNQVRDQVBfUk9PVH0vJHtmb3JtYXQoKX0vJHtmaWxlTmFtZSgpfWApO1xuXG5cdFx0Y29uc3QgbWF0Y2FwVGV4dHVyZSA9IGluamVjdFRleHR1cmUodXJsLCB7IG9uTG9hZCB9KTtcblxuXHRcdHJldHVybiB7IHVybCwgdGV4dHVyZTogbWF0Y2FwVGV4dHVyZSwgbnVtVG90IH07XG5cdH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNNYXRjYXBUZXh0dXJlT3B0aW9ucyB7XG5cdGlkPzogbnVtYmVyIHwgc3RyaW5nO1xuXHRmb3JtYXQ/OiBudW1iZXI7XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW21hdGNhcFRleHR1cmVdJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndHNNYXRjYXBUZXh0dXJlIHtcblx0bWF0Y2FwVGV4dHVyZSA9IGlucHV0PE5ndHNNYXRjYXBUZXh0dXJlT3B0aW9ucz4oKTtcblx0bWF0Y2FwVGV4dHVyZUxvYWRlZCA9IG91dHB1dDxUZXh0dXJlW10+KCk7XG5cblx0cHJpdmF0ZSB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG5cdHByaXZhdGUgdmNyID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG5cdHByaXZhdGUgaWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1hdGNhcFRleHR1cmUoKT8uaWQgPz8gMCk7XG5cdHByaXZhdGUgZm9ybWF0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tYXRjYXBUZXh0dXJlKCk/LmZvcm1hdCA/PyAxMDI0KTtcblxuXHRwcml2YXRlIHJlZj86IEVtYmVkZGVkVmlld1JlZjx7ICRpbXBsaWNpdDogU2lnbmFsPFRleHR1cmUgfCBudWxsPiB9PjtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRjb25zdCB7IHRleHR1cmUgfSA9IGluamVjdE1hdGNhcFRleHR1cmUodGhpcy5pZCwge1xuXHRcdFx0Zm9ybWF0OiB0aGlzLmZvcm1hdCxcblx0XHRcdG9uTG9hZDogdGhpcy5tYXRjYXBUZXh0dXJlTG9hZGVkLmVtaXQuYmluZCh0aGlzLm1hdGNhcFRleHR1cmVMb2FkZWQpLFxuXHRcdH0pO1xuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMucmVmID0gdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGUsIHsgJGltcGxpY2l0OiB0ZXh0dXJlIH0pO1xuXHRcdFx0XHR0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuXHRcdFx0dGhpcy5yZWY/LmRlc3Ryb3koKTtcblx0XHR9KTtcblx0fVxuXG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF86IE5ndHNNYXRjYXBUZXh0dXJlLCBjdHg6IHVua25vd24pOiBjdHggaXMgeyAkaW1wbGljaXQ6IFNpZ25hbDxUZXh0dXJlIHwgbnVsbD4gfSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { DestroyRef, Directive, Injector, TemplateRef, ViewContainerRef, afterNextRender, computed, effect, inject, input, output, signal, untracked, } from '@angular/core';
1
+ import { DestroyRef, Directive, TemplateRef, ViewContainerRef, afterNextRender, computed, effect, inject, input, output, signal, untracked, } from '@angular/core';
2
2
  import { injectTexture } from 'angular-three-soba/loaders';
3
3
  import { assertInjector } from 'ngxtension/assert-injector';
4
4
  import { RepeatWrapping, Vector2 } from 'three';
@@ -45,7 +45,6 @@ export class NgtsNormalTexture {
45
45
  constructor() {
46
46
  this.normalTexture = input();
47
47
  this.normalTextureLoaded = output();
48
- this.injector = inject(Injector);
49
48
  this.template = inject(TemplateRef);
50
49
  this.vcr = inject(ViewContainerRef);
51
50
  this.id = computed(() => this.normalTexture()?.id ?? 0);
@@ -53,12 +52,11 @@ export class NgtsNormalTexture {
53
52
  const { id: _, ...settings } = this.normalTexture() || {};
54
53
  return settings;
55
54
  });
55
+ const { texture } = injectNormalTexture(this.id, {
56
+ settings: this.settings,
57
+ onLoad: this.normalTextureLoaded.emit.bind(this.normalTextureLoaded),
58
+ });
56
59
  afterNextRender(() => {
57
- const { texture } = injectNormalTexture(this.id, {
58
- settings: this.settings,
59
- onLoad: this.normalTextureLoaded.emit.bind(this.normalTextureLoaded),
60
- injector: this.injector,
61
- });
62
60
  untracked(() => {
63
61
  this.ref = this.vcr.createEmbeddedView(this.template, { $implicit: texture });
64
62
  this.ref.detectChanges();
@@ -71,11 +69,11 @@ export class NgtsNormalTexture {
71
69
  static ngTemplateContextGuard(_, ctx) {
72
70
  return true;
73
71
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsNormalTexture, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
75
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.0", type: NgtsNormalTexture, isStandalone: true, selector: "ng-template[normalTexture]", inputs: { normalTexture: { classPropertyName: "normalTexture", publicName: "normalTexture", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { normalTextureLoaded: "normalTextureLoaded" }, ngImport: i0 }); }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsNormalTexture, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
73
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtsNormalTexture, isStandalone: true, selector: "ng-template[normalTexture]", inputs: { normalTexture: { classPropertyName: "normalTexture", publicName: "normalTexture", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { normalTextureLoaded: "normalTextureLoaded" }, ngImport: i0 }); }
76
74
  }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsNormalTexture, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsNormalTexture, decorators: [{
78
76
  type: Directive,
79
77
  args: [{ selector: 'ng-template[normalTexture]', standalone: true }]
80
78
  }], ctorParameters: () => [] });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsLXRleHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL25vcm1hbC10ZXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUVULFFBQVEsRUFFUixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFXLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFekQsTUFBTSxXQUFXLEdBQUcsd0ZBQXdGLENBQUM7QUFDN0csTUFBTSxRQUFRLEdBQUcsNEVBQTRFLENBQUM7QUFROUYsTUFBTSxVQUFVLG1CQUFtQixDQUNsQyxLQUE0QixHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQ25DLEVBQ0MsUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQ3JCLE1BQU0sRUFDTixRQUFRLEdBQ29HO0lBRTdHLE9BQU8sY0FBYyxDQUFDLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDekQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUF5QixFQUFFLENBQUMsQ0FBQztRQUV0RCxLQUFLLENBQUMsUUFBUSxDQUFDO2FBQ2IsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDekIsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDZCxVQUFVLENBQUMsR0FB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QztZQUMxRCxPQUFPLFFBQVEsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztRQUtGLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7Z0JBQ2hELFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsTUFBTSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztnQkFDcEUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQ3ZCLENBQUMsQ0FBQztZQUVILFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDOUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBb0IsRUFBRSxHQUFZO1FBQy9ELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQzs4R0FyQ1csaUJBQWlCO2tHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsNEJBQTRCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdERlc3Ryb3lSZWYsXG5cdERpcmVjdGl2ZSxcblx0RW1iZWRkZWRWaWV3UmVmLFxuXHRJbmplY3Rvcixcblx0U2lnbmFsLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NvbnRhaW5lclJlZixcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRjb21wdXRlZCxcblx0ZWZmZWN0LFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHRvdXRwdXQsXG5cdHNpZ25hbCxcblx0dW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdFRleHR1cmUgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvbG9hZGVycyc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCB7IFJlcGVhdFdyYXBwaW5nLCBUZXh0dXJlLCBWZWN0b3IyIH0gZnJvbSAndGhyZWUnO1xuXG5jb25zdCBOT1JNQUxfUk9PVCA9ICdodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9wbW5kcnMvZHJlaS1hc3NldHMvN2EzMTA0OTk3ZTE1NzZmODM0NzI4Mjk4MTViMDA4ODBkODhiMzJmYic7XG5jb25zdCBMSVNUX1VSTCA9ICdodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvcG1uZHJzL2RyZWktYXNzZXRzQG1hc3Rlci9ub3JtYWxzL25vcm1hbHMuanNvbic7XG5cbmludGVyZmFjZSBOZ3RzTm9ybWFsVGV4dHVyZVNldHRpbmdzIHtcblx0cmVwZWF0PzogbnVtYmVyW107XG5cdGFuaXNvdHJvcHk/OiBudW1iZXI7XG5cdG9mZnNldD86IG51bWJlcltdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Tm9ybWFsVGV4dHVyZShcblx0aWQ6ICgpID0+IHN0cmluZyB8IG51bWJlciA9ICgpID0+IDAsXG5cdHtcblx0XHRzZXR0aW5ncyA9ICgpID0+ICh7fSksXG5cdFx0b25Mb2FkLFxuXHRcdGluamVjdG9yLFxuXHR9OiB7IHNldHRpbmdzPzogKCkgPT4gTmd0c05vcm1hbFRleHR1cmVTZXR0aW5nczsgb25Mb2FkPzogKHRleHR1cmU6IFRleHR1cmVbXSkgPT4gdm9pZDsgaW5qZWN0b3I/OiBJbmplY3RvciB9LFxuKSB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3ROb3JtYWxUZXh0dXJlLCBpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IG5vcm1hbExpc3QgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oe30pO1xuXG5cdFx0ZmV0Y2goTElTVF9VUkwpXG5cdFx0XHQudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxuXHRcdFx0LnRoZW4oKGxpc3QpID0+IHtcblx0XHRcdFx0bm9ybWFsTGlzdC5zZXQobGlzdCk7XG5cdFx0XHR9KTtcblxuXHRcdGNvbnN0IERFRkFVTFRfTk9STUFMID0gY29tcHV0ZWQoKCkgPT4gbm9ybWFsTGlzdCgpWzBdKTtcblx0XHRjb25zdCBudW1Ub3QgPSBjb21wdXRlZCgoKSA9PiBPYmplY3Qua2V5cyhub3JtYWxMaXN0KCkpLmxlbmd0aCk7XG5cblx0XHRjb25zdCBmaWxlSGFzaCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGNvbnN0IGlkVmFsdWUgPSBpZCgpO1xuXHRcdFx0aWYgKHR5cGVvZiBpZFZhbHVlID09PSAnc3RyaW5nJykge1xuXHRcdFx0XHRyZXR1cm4gaWRWYWx1ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHR5cGVvZiBpZFZhbHVlID09PSAnbnVtYmVyJykge1xuXHRcdFx0XHRyZXR1cm4gbm9ybWFsTGlzdCgpW2lkVmFsdWVdO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9KTtcblxuXHRcdGNvbnN0IGltYWdlTmFtZSA9IGNvbXB1dGVkKCgpID0+IGZpbGVIYXNoKCkgfHwgREVGQVVMVF9OT1JNQUwoKSk7XG5cdFx0Y29uc3QgdXJsID0gY29tcHV0ZWQoKCkgPT4gYCR7Tk9STUFMX1JPT1R9L25vcm1hbHMvJHtpbWFnZU5hbWUoKX1gKTtcblxuXHRcdGNvbnN0IG5vcm1hbFRleHR1cmUgPSBpbmplY3RUZXh0dXJlKHVybCwgeyBvbkxvYWQgfSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgdGV4dHVyZSA9IG5vcm1hbFRleHR1cmUoKTtcblx0XHRcdGlmICghdGV4dHVyZSkgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCB7IGFuaXNvdHJvcHkgPSAxLCByZXBlYXQgPSBbMSwgMV0sIG9mZnNldCA9IFswLCAwXSB9ID0gc2V0dGluZ3MoKTtcblx0XHRcdHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gUmVwZWF0V3JhcHBpbmc7XG5cdFx0XHR0ZXh0dXJlLnJlcGVhdCA9IG5ldyBWZWN0b3IyKHJlcGVhdFswXSwgcmVwZWF0WzFdKTtcblx0XHRcdHRleHR1cmUub2Zmc2V0ID0gbmV3IFZlY3RvcjIob2Zmc2V0WzBdLCBvZmZzZXRbMV0pO1xuXHRcdFx0dGV4dHVyZS5hbmlzb3Ryb3B5ID0gYW5pc290cm9weTtcblx0XHR9KTtcblxuXHRcdHJldHVybiB7IHVybCwgdGV4dHVyZTogbm9ybWFsVGV4dHVyZSwgbnVtVG90IH07XG5cdH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNOb3JtYWxUZXh0dXJlT3B0aW9ucyBleHRlbmRzIE5ndHNOb3JtYWxUZXh0dXJlU2V0dGluZ3Mge1xuXHRpZD86IG51bWJlciB8IHN0cmluZztcbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbbm9ybWFsVGV4dHVyZV0nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0c05vcm1hbFRleHR1cmUge1xuXHRub3JtYWxUZXh0dXJlID0gaW5wdXQ8Tmd0c05vcm1hbFRleHR1cmVPcHRpb25zPigpO1xuXHRub3JtYWxUZXh0dXJlTG9hZGVkID0gb3V0cHV0PFRleHR1cmVbXT4oKTtcblxuXHRwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblx0cHJpdmF0ZSB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG5cdHByaXZhdGUgdmNyID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG5cdHByaXZhdGUgaWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm5vcm1hbFRleHR1cmUoKT8uaWQgPz8gMCk7XG5cdHByaXZhdGUgc2V0dGluZ3MgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgeyBpZDogXywgLi4uc2V0dGluZ3MgfSA9IHRoaXMubm9ybWFsVGV4dHVyZSgpIHx8IHt9O1xuXHRcdHJldHVybiBzZXR0aW5ncztcblx0fSk7XG5cblx0cHJpdmF0ZSByZWY/OiBFbWJlZGRlZFZpZXdSZWY8eyAkaW1wbGljaXQ6IFNpZ25hbDxUZXh0dXJlIHwgbnVsbD4gfT47XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGNvbnN0IHsgdGV4dHVyZSB9ID0gaW5qZWN0Tm9ybWFsVGV4dHVyZSh0aGlzLmlkLCB7XG5cdFx0XHRcdHNldHRpbmdzOiB0aGlzLnNldHRpbmdzLFxuXHRcdFx0XHRvbkxvYWQ6IHRoaXMubm9ybWFsVGV4dHVyZUxvYWRlZC5lbWl0LmJpbmQodGhpcy5ub3JtYWxUZXh0dXJlTG9hZGVkKSxcblx0XHRcdFx0aW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG5cdFx0XHR9KTtcblxuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0dGhpcy5yZWYgPSB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSwgeyAkaW1wbGljaXQ6IHRleHR1cmUgfSk7XG5cdFx0XHRcdHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHR0aGlzLnJlZj8uZGVzdHJveSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoXzogTmd0c05vcm1hbFRleHR1cmUsIGN0eDogdW5rbm93bik6IGN0eCBpcyB7ICRpbXBsaWNpdDogU2lnbmFsPFRleHR1cmUgfCBudWxsPiB9IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsLXRleHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL25vcm1hbC10ZXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUlULFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQVcsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDOztBQUV6RCxNQUFNLFdBQVcsR0FBRyx3RkFBd0YsQ0FBQztBQUM3RyxNQUFNLFFBQVEsR0FBRyw0RUFBNEUsQ0FBQztBQVE5RixNQUFNLFVBQVUsbUJBQW1CLENBQ2xDLEtBQTRCLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFDbkMsRUFDQyxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDckIsTUFBTSxFQUNOLFFBQVEsR0FDb0c7SUFFN0csT0FBTyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUN6RCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQXlCLEVBQUUsQ0FBQyxDQUFDO1FBRXRELEtBQUssQ0FBQyxRQUFRLENBQUM7YUFDYixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUN6QixJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNkLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFB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TSxFQUFFLE9BQU8sRUFBRSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDaEQsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7U0FDcEUsQ0FBQyxDQUFDO1FBRUgsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNwQixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQzlFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQW9CLEVBQUUsR0FBWTtRQUMvRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7OEdBbkNXLGlCQUFpQjtrR0FBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUQ3QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLDRCQUE0QixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHREZXN0cm95UmVmLFxuXHREaXJlY3RpdmUsXG5cdEVtYmVkZGVkVmlld1JlZixcblx0SW5qZWN0b3IsXG5cdFNpZ25hbCxcblx0VGVtcGxhdGVSZWYsXG5cdFZpZXdDb250YWluZXJSZWYsXG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Y29tcHV0ZWQsXG5cdGVmZmVjdCxcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0b3V0cHV0LFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RUZXh0dXJlIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL2xvYWRlcnMnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQgeyBSZXBlYXRXcmFwcGluZywgVGV4dHVyZSwgVmVjdG9yMiB9IGZyb20gJ3RocmVlJztcblxuY29uc3QgTk9STUFMX1JPT1QgPSAnaHR0cHM6Ly9yYXdjZG4uZ2l0aGFjay5jb20vcG1uZHJzL2RyZWktYXNzZXRzLzdhMzEwNDk5N2UxNTc2ZjgzNDcyODI5ODE1YjAwODgwZDg4YjMyZmInO1xuY29uc3QgTElTVF9VUkwgPSAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3BtbmRycy9kcmVpLWFzc2V0c0BtYXN0ZXIvbm9ybWFscy9ub3JtYWxzLmpzb24nO1xuXG5pbnRlcmZhY2UgTmd0c05vcm1hbFRleHR1cmVTZXR0aW5ncyB7XG5cdHJlcGVhdD86IG51bWJlcltdO1xuXHRhbmlzb3Ryb3B5PzogbnVtYmVyO1xuXHRvZmZzZXQ/OiBudW1iZXJbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5vcm1hbFRleHR1cmUoXG5cdGlkOiAoKSA9PiBzdHJpbmcgfCBudW1iZXIgPSAoKSA9PiAwLFxuXHR7XG5cdFx0c2V0dGluZ3MgPSAoKSA9PiAoe30pLFxuXHRcdG9uTG9hZCxcblx0XHRpbmplY3Rvcixcblx0fTogeyBzZXR0aW5ncz86ICgpID0+IE5ndHNOb3JtYWxUZXh0dXJlU2V0dGluZ3M7IG9uTG9hZD86ICh0ZXh0dXJlOiBUZXh0dXJlW10pID0+IHZvaWQ7IGluamVjdG9yPzogSW5qZWN0b3IgfSxcbikge1xuXHRyZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0Tm9ybWFsVGV4dHVyZSwgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBub3JtYWxMaXN0ID0gc2lnbmFsPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KHt9KTtcblxuXHRcdGZldGNoKExJU1RfVVJMKVxuXHRcdFx0LnRoZW4oKHJlcykgPT4gcmVzLmpzb24oKSlcblx0XHRcdC50aGVuKChsaXN0KSA9PiB7XG5cdFx0XHRcdG5vcm1hbExpc3Quc2V0KGxpc3QpO1xuXHRcdFx0fSk7XG5cblx0XHRjb25zdCBERUZBVUxUX05PUk1BTCA9IGNvbXB1dGVkKCgpID0+IG5vcm1hbExpc3QoKVswXSk7XG5cdFx0Y29uc3QgbnVtVG90ID0gY29tcHV0ZWQoKCkgPT4gT2JqZWN0LmtleXMobm9ybWFsTGlzdCgpKS5sZW5ndGgpO1xuXG5cdFx0Y29uc3QgZmlsZUhhc2ggPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRjb25zdCBpZFZhbHVlID0gaWQoKTtcblx0XHRcdGlmICh0eXBlb2YgaWRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0cmV0dXJuIGlkVmFsdWU7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0eXBlb2YgaWRWYWx1ZSA9PT0gJ251bWJlcicpIHtcblx0XHRcdFx0cmV0dXJuIG5vcm1hbExpc3QoKVtpZFZhbHVlXTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fSk7XG5cblx0XHRjb25zdCBpbWFnZU5hbWUgPSBjb21wdXRlZCgoKSA9PiBmaWxlSGFzaCgpIHx8IERFRkFVTFRfTk9STUFMKCkpO1xuXHRcdGNvbnN0IHVybCA9IGNvbXB1dGVkKCgpID0+IGAke05PUk1BTF9ST09UfS9ub3JtYWxzLyR7aW1hZ2VOYW1lKCl9YCk7XG5cblx0XHRjb25zdCBub3JtYWxUZXh0dXJlID0gaW5qZWN0VGV4dHVyZSh1cmwsIHsgb25Mb2FkIH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IHRleHR1cmUgPSBub3JtYWxUZXh0dXJlKCk7XG5cdFx0XHRpZiAoIXRleHR1cmUpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgeyBhbmlzb3Ryb3B5ID0gMSwgcmVwZWF0ID0gWzEsIDFdLCBvZmZzZXQgPSBbMCwgMF0gfSA9IHNldHRpbmdzKCk7XG5cdFx0XHR0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFJlcGVhdFdyYXBwaW5nO1xuXHRcdFx0dGV4dHVyZS5yZXBlYXQgPSBuZXcgVmVjdG9yMihyZXBlYXRbMF0sIHJlcGVhdFsxXSk7XG5cdFx0XHR0ZXh0dXJlLm9mZnNldCA9IG5ldyBWZWN0b3IyKG9mZnNldFswXSwgb2Zmc2V0WzFdKTtcblx0XHRcdHRleHR1cmUuYW5pc290cm9weSA9IGFuaXNvdHJvcHk7XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4geyB1cmwsIHRleHR1cmU6IG5vcm1hbFRleHR1cmUsIG51bVRvdCB9O1xuXHR9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzTm9ybWFsVGV4dHVyZU9wdGlvbnMgZXh0ZW5kcyBOZ3RzTm9ybWFsVGV4dHVyZVNldHRpbmdzIHtcblx0aWQ/OiBudW1iZXIgfCBzdHJpbmc7XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW25vcm1hbFRleHR1cmVdJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndHNOb3JtYWxUZXh0dXJlIHtcblx0bm9ybWFsVGV4dHVyZSA9IGlucHV0PE5ndHNOb3JtYWxUZXh0dXJlT3B0aW9ucz4oKTtcblx0bm9ybWFsVGV4dHVyZUxvYWRlZCA9IG91dHB1dDxUZXh0dXJlW10+KCk7XG5cblx0cHJpdmF0ZSB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG5cdHByaXZhdGUgdmNyID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG5cdHByaXZhdGUgaWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm5vcm1hbFRleHR1cmUoKT8uaWQgPz8gMCk7XG5cdHByaXZhdGUgc2V0dGluZ3MgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgeyBpZDogXywgLi4uc2V0dGluZ3MgfSA9IHRoaXMubm9ybWFsVGV4dHVyZSgpIHx8IHt9O1xuXHRcdHJldHVybiBzZXR0aW5ncztcblx0fSk7XG5cblx0cHJpdmF0ZSByZWY/OiBFbWJlZGRlZFZpZXdSZWY8eyAkaW1wbGljaXQ6IFNpZ25hbDxUZXh0dXJlIHwgbnVsbD4gfT47XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0Y29uc3QgeyB0ZXh0dXJlIH0gPSBpbmplY3ROb3JtYWxUZXh0dXJlKHRoaXMuaWQsIHtcblx0XHRcdHNldHRpbmdzOiB0aGlzLnNldHRpbmdzLFxuXHRcdFx0b25Mb2FkOiB0aGlzLm5vcm1hbFRleHR1cmVMb2FkZWQuZW1pdC5iaW5kKHRoaXMubm9ybWFsVGV4dHVyZUxvYWRlZCksXG5cdFx0fSk7XG5cblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0dGhpcy5yZWYgPSB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSwgeyAkaW1wbGljaXQ6IHRleHR1cmUgfSk7XG5cdFx0XHRcdHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHR0aGlzLnJlZj8uZGVzdHJveSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoXzogTmd0c05vcm1hbFRleHR1cmUsIGN0eDogdW5rbm93bik6IGN0eCBpcyB7ICRpbXBsaWNpdDogU2lnbmFsPFRleHR1cmUgfCBudWxsPiB9IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuIl19