angular-three-soba 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/abstractions/lib/catmull-rom-line.d.ts +148 -148
  2. package/abstractions/lib/edges.d.ts +166 -166
  3. package/abstractions/lib/grid.d.ts +30 -30
  4. package/abstractions/lib/line.d.ts +10 -9
  5. package/abstractions/lib/prism-geometry.d.ts +4 -4
  6. package/abstractions/lib/rounded-box.d.ts +3 -3
  7. package/abstractions/lib/text-3d.d.ts +38 -38
  8. package/abstractions/lib/text.d.ts +2 -3
  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 +42 -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 +188 -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/materials/lib/custom-shader-material.d.ts +3 -3
  109. package/materials/lib/mesh-refraction-material.d.ts +3 -3
  110. package/materials/lib/mesh-transmission-material.d.ts +1 -1
  111. package/misc/lib/computed-attribute.d.ts +5 -5
  112. package/misc/lib/decal.d.ts +5 -5
  113. package/misc/lib/html/html-content.d.ts +6 -6
  114. package/misc/lib/html/html.d.ts +1 -1
  115. package/misc/lib/sampler.d.ts +2 -4
  116. package/package.json +12 -12
  117. package/performances/lib/instances/instances.d.ts +11 -11
  118. package/performances/lib/points/points.d.ts +20 -20
  119. package/performances/lib/segments/segments.d.ts +4 -4
  120. package/shaders/lib/mesh-refraction-material.d.ts +2 -5
  121. package/staging/index.d.ts +2 -1
  122. package/staging/lib/camera-shake.d.ts +0 -1
  123. package/staging/lib/caustics.d.ts +1 -1
  124. package/staging/lib/center.d.ts +2 -2
  125. package/staging/lib/contact-shadows.d.ts +1 -1
  126. package/staging/lib/{environment.d.ts → environment/environment.d.ts} +20 -49
  127. package/staging/lib/environment/inject-environment.d.ts +33 -0
  128. package/staging/lib/lightformer.d.ts +1 -1
  129. package/staging/lib/mask.d.ts +1 -1
  130. package/staging/lib/matcap-texture.d.ts +0 -1
  131. package/staging/lib/normal-texture.d.ts +0 -1
  132. package/staging/lib/render-texture.d.ts +1 -1
  133. package/staging/lib/sky.d.ts +1 -1
  134. package/staging/lib/spot-light.d.ts +2 -2
  135. package/staging/lib/stage.d.ts +7 -6
  136. package/esm2022/staging/lib/environment.mjs +0 -481
@@ -1,6 +1,5 @@
1
- import { afterNextRender, ChangeDetectionStrategy, Component, computed, input, viewChild } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, effect, input, viewChild } from '@angular/core';
2
2
  import { checkNeedsUpdate, getLocalState, omit } from 'angular-three';
3
- import { injectAutoEffect } from 'ngxtension/auto-effect';
4
3
  import { mergeInputs } from 'ngxtension/inject-inputs';
5
4
  import { EdgesGeometry } from 'three';
6
5
  import { NgtsLine } from './line';
@@ -16,44 +15,41 @@ export class NgtsEdges {
16
15
  this.lineOptions = computed(() => ({ ...this.parameters(), raycast: () => null }));
17
16
  this.tmpPoints = [0, 0, 0, 1, 0, 0];
18
17
  this.line = viewChild.required(NgtsLine);
19
- const autoEffect = injectAutoEffect();
20
- afterNextRender(() => {
21
- autoEffect(() => {
22
- const line = this.line().lineRef()?.nativeElement;
23
- if (!line)
24
- return;
25
- const lS = getLocalState(line);
26
- if (!lS)
27
- return;
28
- const parent = lS.parent();
29
- if (!parent)
30
- return;
31
- const { geometry: explicitGeometry, threshold } = this.options();
32
- const geometry = explicitGeometry ?? parent.geometry;
33
- if (!geometry)
34
- return;
35
- const cached = this.memoizedGeometry === geometry && this.memoizedThreshold === threshold;
36
- if (cached)
37
- return;
38
- this.memoizedGeometry = geometry;
39
- this.memoizedThreshold = threshold;
40
- const points = new EdgesGeometry(geometry, threshold).attributes['position']
41
- .array;
42
- line.geometry.setPositions(points);
43
- checkNeedsUpdate(line.geometry.attributes['instanceStart']);
44
- checkNeedsUpdate(line.geometry.attributes['instanceEnd']);
45
- line.computeLineDistances();
46
- });
18
+ effect(() => {
19
+ const line = this.line().lineRef()?.nativeElement;
20
+ if (!line)
21
+ return;
22
+ const lS = getLocalState(line);
23
+ if (!lS)
24
+ return;
25
+ const parent = lS.parent();
26
+ if (!parent)
27
+ return;
28
+ const { geometry: explicitGeometry, threshold } = this.options();
29
+ const geometry = explicitGeometry ?? parent.geometry;
30
+ if (!geometry)
31
+ return;
32
+ const cached = this.memoizedGeometry === geometry && this.memoizedThreshold === threshold;
33
+ if (cached)
34
+ return;
35
+ this.memoizedGeometry = geometry;
36
+ this.memoizedThreshold = threshold;
37
+ const points = new EdgesGeometry(geometry, threshold).attributes['position']
38
+ .array;
39
+ line.geometry.setPositions(points);
40
+ checkNeedsUpdate(line.geometry.attributes['instanceStart']);
41
+ checkNeedsUpdate(line.geometry.attributes['instanceEnd']);
42
+ line.computeLineDistances();
47
43
  });
48
44
  }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsEdges, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: NgtsEdges, isStandalone: true, selector: "ngts-edges", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsEdges, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsEdges, isStandalone: true, selector: "ngts-edges", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
51
47
  <ngts-line [points]="tmpPoints" [options]="lineOptions()">
52
48
  <ng-content />
53
49
  </ngts-line>
54
50
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line", inputs: ["points", "options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
55
51
  }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsEdges, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsEdges, decorators: [{
57
53
  type: Component,
58
54
  args: [{
59
55
  selector: 'ngts-edges',
@@ -67,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
67
63
  changeDetection: ChangeDetectionStrategy.OnPush,
68
64
  }]
69
65
  }], ctorParameters: () => [] });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvYWJzdHJhY3Rpb25zL3NyYy9saWIvZWRnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBVyxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBd0QsYUFBYSxFQUFRLE1BQU0sT0FBTyxDQUFDO0FBRWxHLE9BQU8sRUFBNkIsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDOztBQVk3RCxNQUFNLGNBQWMsR0FBcUI7SUFDeEMsU0FBUyxFQUFFLENBQUM7SUFDWixTQUFTLEVBQUUsRUFBRTtDQUNiLENBQUM7QUFhRixNQUFNLE9BQU8sU0FBUztJQVlyQjtRQVhBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEUsZUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFekQsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUUsY0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV6QyxTQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQU1uQyxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3RDLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsYUFBYSxDQUFDO2dCQUNsRCxJQUFJLENBQUMsSUFBSTtvQkFBRSxPQUFPO2dCQUVsQixNQUFNLEVBQUUsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxFQUFFO29CQUFFLE9BQU87Z0JBRWhCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQVUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLE1BQU07b0JBQUUsT0FBTztnQkFFcEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2pFLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUM7Z0JBQ3JELElBQUksQ0FBQyxRQUFRO29CQUFFLE9BQU87Z0JBRXRCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLFNBQVMsQ0FBQztnQkFDMUYsSUFBSSxNQUFNO29CQUFFLE9BQU87Z0JBRW5CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7Z0JBRW5DLE1BQU0sTUFBTSxHQUFJLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFxQjtxQkFDL0YsS0FBcUIsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25DLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7Z0JBQzVELGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7Z0JBQzFELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQTNDVyxTQUFTO2tHQUFULFNBQVMsc1BBT0ssUUFBUSxnRUFmeEI7Ozs7RUFJVCw0REFDUyxRQUFROzsyRkFHTixTQUFTO2tCQVhyQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7O0VBSVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO29CQUNuQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjaGVja05lZWRzVXBkYXRlLCBnZXRMb2NhbFN0YXRlLCBOZ3RNZXNoLCBvbWl0IH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBCdWZmZXJBdHRyaWJ1dGUsIEJ1ZmZlckdlb21ldHJ5LCBDb2xvclJlcHJlc2VudGF0aW9uLCBFZGdlc0dlb21ldHJ5LCBNZXNoIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTGluZU1hdGVyaWFsUGFyYW1ldGVycyB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5pbXBvcnQgeyBOZ3RMaW5lMiwgTmd0TGluZU1hdGVyaWFsLCBOZ3RzTGluZSB9IGZyb20gJy4vbGluZSc7XG5cbmV4cG9ydCB0eXBlIE5ndHNFZGdlc09wdGlvbnMgPSBQYXJ0aWFsPE5ndE1lc2g+ICYge1xuXHR0aHJlc2hvbGQ/OiBudW1iZXI7XG5cdGxpbmVXaWR0aD86IG51bWJlcjtcbn0gJiBPbWl0PExpbmVNYXRlcmlhbFBhcmFtZXRlcnMsICd2ZXJ0ZXhDb2xvcnMnIHwgJ2NvbG9yJz4gJlxuXHRPbWl0PFBhcnRpYWw8Tmd0TGluZTI+LCAnZ2VvbWV0cnknPiAmXG5cdE9taXQ8UGFydGlhbDxOZ3RMaW5lTWF0ZXJpYWw+LCAnY29sb3InIHwgJ3ZlcnRleENvbG9ycyc+ICYge1xuXHRcdGdlb21ldHJ5PzogQnVmZmVyR2VvbWV0cnk7XG5cdFx0Y29sb3I/OiBDb2xvclJlcHJlc2VudGF0aW9uO1xuXHR9O1xuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0c0VkZ2VzT3B0aW9ucyA9IHtcblx0bGluZVdpZHRoOiAxLFxuXHR0aHJlc2hvbGQ6IDE1LFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1lZGdlcycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndHMtbGluZSBbcG9pbnRzXT1cInRtcFBvaW50c1wiIFtvcHRpb25zXT1cImxpbmVPcHRpb25zKClcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3RzLWxpbmU+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RzTGluZV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzRWRnZXMge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHByaXZhdGUgcGFyYW1ldGVycyA9IG9taXQodGhpcy5vcHRpb25zLCBbJ3RocmVzaG9sZCcsICdnZW9tZXRyeSddKTtcblxuXHRwcm90ZWN0ZWQgbGluZU9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiAoeyAuLi50aGlzLnBhcmFtZXRlcnMoKSwgcmF5Y2FzdDogKCkgPT4gbnVsbCB9KSk7XG5cdHByb3RlY3RlZCB0bXBQb2ludHMgPSBbMCwgMCwgMCwgMSwgMCwgMF07XG5cblx0bGluZSA9IHZpZXdDaGlsZC5yZXF1aXJlZChOZ3RzTGluZSk7XG5cblx0cHJpdmF0ZSBtZW1vaXplZEdlb21ldHJ5PzogQnVmZmVyR2VvbWV0cnk7XG5cdHByaXZhdGUgbWVtb2l6ZWRUaHJlc2hvbGQ/OiBudW1iZXI7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0Y29uc3QgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0YXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGxpbmUgPSB0aGlzLmxpbmUoKS5saW5lUmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRcdGlmICghbGluZSkgcmV0dXJuO1xuXG5cdFx0XHRcdGNvbnN0IGxTID0gZ2V0TG9jYWxTdGF0ZShsaW5lKTtcblx0XHRcdFx0aWYgKCFsUykgcmV0dXJuO1xuXG5cdFx0XHRcdGNvbnN0IHBhcmVudCA9IGxTLnBhcmVudCgpIGFzIE1lc2g7XG5cdFx0XHRcdGlmICghcGFyZW50KSByZXR1cm47XG5cblx0XHRcdFx0Y29uc3QgeyBnZW9tZXRyeTogZXhwbGljaXRHZW9tZXRyeSwgdGhyZXNob2xkIH0gPSB0aGlzLm9wdGlvbnMoKTtcblx0XHRcdFx0Y29uc3QgZ2VvbWV0cnkgPSBleHBsaWNpdEdlb21ldHJ5ID8/IHBhcmVudC5nZW9tZXRyeTtcblx0XHRcdFx0aWYgKCFnZW9tZXRyeSkgcmV0dXJuO1xuXG5cdFx0XHRcdGNvbnN0IGNhY2hlZCA9IHRoaXMubWVtb2l6ZWRHZW9tZXRyeSA9PT0gZ2VvbWV0cnkgJiYgdGhpcy5tZW1vaXplZFRocmVzaG9sZCA9PT0gdGhyZXNob2xkO1xuXHRcdFx0XHRpZiAoY2FjaGVkKSByZXR1cm47XG5cblx0XHRcdFx0dGhpcy5tZW1vaXplZEdlb21ldHJ5ID0gZ2VvbWV0cnk7XG5cdFx0XHRcdHRoaXMubWVtb2l6ZWRUaHJlc2hvbGQgPSB0aHJlc2hvbGQ7XG5cblx0XHRcdFx0Y29uc3QgcG9pbnRzID0gKG5ldyBFZGdlc0dlb21ldHJ5KGdlb21ldHJ5LCB0aHJlc2hvbGQpLmF0dHJpYnV0ZXNbJ3Bvc2l0aW9uJ10gYXMgQnVmZmVyQXR0cmlidXRlKVxuXHRcdFx0XHRcdC5hcnJheSBhcyBGbG9hdDMyQXJyYXk7XG5cdFx0XHRcdGxpbmUuZ2VvbWV0cnkuc2V0UG9zaXRpb25zKHBvaW50cyk7XG5cdFx0XHRcdGNoZWNrTmVlZHNVcGRhdGUobGluZS5nZW9tZXRyeS5hdHRyaWJ1dGVzWydpbnN0YW5jZVN0YXJ0J10pO1xuXHRcdFx0XHRjaGVja05lZWRzVXBkYXRlKGxpbmUuZ2VvbWV0cnkuYXR0cmlidXRlc1snaW5zdGFuY2VFbmQnXSk7XG5cdFx0XHRcdGxpbmUuY29tcHV0ZUxpbmVEaXN0YW5jZXMoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvYWJzdHJhY3Rpb25zL3NyYy9saWIvZWRnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBVyxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBd0QsYUFBYSxFQUFRLE1BQU0sT0FBTyxDQUFDO0FBRWxHLE9BQU8sRUFBNkIsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDOztBQVk3RCxNQUFNLGNBQWMsR0FBcUI7SUFDeEMsU0FBUyxFQUFFLENBQUM7SUFDWixTQUFTLEVBQUUsRUFBRTtDQUNiLENBQUM7QUFhRixNQUFNLE9BQU8sU0FBUztJQVlyQjtRQVhBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEUsZUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFekQsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUUsY0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV6QyxTQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQU1uQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLGFBQWEsQ0FBQztZQUNsRCxJQUFJLENBQUMsSUFBSTtnQkFBRSxPQUFPO1lBRWxCLE1BQU0sRUFBRSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsRUFBRTtnQkFBRSxPQUFPO1lBRWhCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQVUsQ0FBQztZQUNuQyxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBRXBCLE1BQU0sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pFLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDckQsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsT0FBTztZQUV0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxTQUFTLENBQUM7WUFDMUYsSUFBSSxNQUFNO2dCQUFFLE9BQU87WUFFbkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztZQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDO1lBRW5DLE1BQU0sTUFBTSxHQUFJLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFxQjtpQkFDL0YsS0FBcUIsQ0FBQztZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQzVELGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQXhDVyxTQUFTO2tHQUFULFNBQVMsc1BBT0ssUUFBUSxnRUFmeEI7Ozs7RUFJVCw0REFDUyxRQUFROzsyRkFHTixTQUFTO2tCQVhyQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7O0VBSVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO29CQUNuQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjaGVja05lZWRzVXBkYXRlLCBnZXRMb2NhbFN0YXRlLCBOZ3RNZXNoLCBvbWl0IH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBCdWZmZXJBdHRyaWJ1dGUsIEJ1ZmZlckdlb21ldHJ5LCBDb2xvclJlcHJlc2VudGF0aW9uLCBFZGdlc0dlb21ldHJ5LCBNZXNoIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTGluZU1hdGVyaWFsUGFyYW1ldGVycyB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5pbXBvcnQgeyBOZ3RMaW5lMiwgTmd0TGluZU1hdGVyaWFsLCBOZ3RzTGluZSB9IGZyb20gJy4vbGluZSc7XG5cbmV4cG9ydCB0eXBlIE5ndHNFZGdlc09wdGlvbnMgPSBQYXJ0aWFsPE5ndE1lc2g+ICYge1xuXHR0aHJlc2hvbGQ/OiBudW1iZXI7XG5cdGxpbmVXaWR0aD86IG51bWJlcjtcbn0gJiBPbWl0PExpbmVNYXRlcmlhbFBhcmFtZXRlcnMsICd2ZXJ0ZXhDb2xvcnMnIHwgJ2NvbG9yJz4gJlxuXHRPbWl0PFBhcnRpYWw8Tmd0TGluZTI+LCAnZ2VvbWV0cnknPiAmXG5cdE9taXQ8UGFydGlhbDxOZ3RMaW5lTWF0ZXJpYWw+LCAnY29sb3InIHwgJ3ZlcnRleENvbG9ycyc+ICYge1xuXHRcdGdlb21ldHJ5PzogQnVmZmVyR2VvbWV0cnk7XG5cdFx0Y29sb3I/OiBDb2xvclJlcHJlc2VudGF0aW9uO1xuXHR9O1xuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0c0VkZ2VzT3B0aW9ucyA9IHtcblx0bGluZVdpZHRoOiAxLFxuXHR0aHJlc2hvbGQ6IDE1LFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1lZGdlcycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndHMtbGluZSBbcG9pbnRzXT1cInRtcFBvaW50c1wiIFtvcHRpb25zXT1cImxpbmVPcHRpb25zKClcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3RzLWxpbmU+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RzTGluZV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzRWRnZXMge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHByaXZhdGUgcGFyYW1ldGVycyA9IG9taXQodGhpcy5vcHRpb25zLCBbJ3RocmVzaG9sZCcsICdnZW9tZXRyeSddKTtcblxuXHRwcm90ZWN0ZWQgbGluZU9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiAoeyAuLi50aGlzLnBhcmFtZXRlcnMoKSwgcmF5Y2FzdDogKCkgPT4gbnVsbCB9KSk7XG5cdHByb3RlY3RlZCB0bXBQb2ludHMgPSBbMCwgMCwgMCwgMSwgMCwgMF07XG5cblx0bGluZSA9IHZpZXdDaGlsZC5yZXF1aXJlZChOZ3RzTGluZSk7XG5cblx0cHJpdmF0ZSBtZW1vaXplZEdlb21ldHJ5PzogQnVmZmVyR2VvbWV0cnk7XG5cdHByaXZhdGUgbWVtb2l6ZWRUaHJlc2hvbGQ/OiBudW1iZXI7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IGxpbmUgPSB0aGlzLmxpbmUoKS5saW5lUmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRpZiAoIWxpbmUpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgbFMgPSBnZXRMb2NhbFN0YXRlKGxpbmUpO1xuXHRcdFx0aWYgKCFsUykgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBwYXJlbnQgPSBsUy5wYXJlbnQoKSBhcyBNZXNoO1xuXHRcdFx0aWYgKCFwYXJlbnQpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgeyBnZW9tZXRyeTogZXhwbGljaXRHZW9tZXRyeSwgdGhyZXNob2xkIH0gPSB0aGlzLm9wdGlvbnMoKTtcblx0XHRcdGNvbnN0IGdlb21ldHJ5ID0gZXhwbGljaXRHZW9tZXRyeSA/PyBwYXJlbnQuZ2VvbWV0cnk7XG5cdFx0XHRpZiAoIWdlb21ldHJ5KSByZXR1cm47XG5cblx0XHRcdGNvbnN0IGNhY2hlZCA9IHRoaXMubWVtb2l6ZWRHZW9tZXRyeSA9PT0gZ2VvbWV0cnkgJiYgdGhpcy5tZW1vaXplZFRocmVzaG9sZCA9PT0gdGhyZXNob2xkO1xuXHRcdFx0aWYgKGNhY2hlZCkgcmV0dXJuO1xuXG5cdFx0XHR0aGlzLm1lbW9pemVkR2VvbWV0cnkgPSBnZW9tZXRyeTtcblx0XHRcdHRoaXMubWVtb2l6ZWRUaHJlc2hvbGQgPSB0aHJlc2hvbGQ7XG5cblx0XHRcdGNvbnN0IHBvaW50cyA9IChuZXcgRWRnZXNHZW9tZXRyeShnZW9tZXRyeSwgdGhyZXNob2xkKS5hdHRyaWJ1dGVzWydwb3NpdGlvbiddIGFzIEJ1ZmZlckF0dHJpYnV0ZSlcblx0XHRcdFx0LmFycmF5IGFzIEZsb2F0MzJBcnJheTtcblx0XHRcdGxpbmUuZ2VvbWV0cnkuc2V0UG9zaXRpb25zKHBvaW50cyk7XG5cdFx0XHRjaGVja05lZWRzVXBkYXRlKGxpbmUuZ2VvbWV0cnkuYXR0cmlidXRlc1snaW5zdGFuY2VTdGFydCddKTtcblx0XHRcdGNoZWNrTmVlZHNVcGRhdGUobGluZS5nZW9tZXRyeS5hdHRyaWJ1dGVzWydpbnN0YW5jZUVuZCddKTtcblx0XHRcdGxpbmUuY29tcHV0ZUxpbmVEaXN0YW5jZXMoKTtcblx0XHR9KTtcblx0fVxufVxuIl19
@@ -56,8 +56,8 @@ export class NgtsGradientTexture {
56
56
  });
57
57
  extend({ CanvasTexture });
58
58
  }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsGradientTexture, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: NgtsGradientTexture, isStandalone: true, selector: "ngts-gradient-texture", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, stops: { classPropertyName: "stops", publicName: "stops", isSignal: true, isRequired: true, transformFunction: null }, colors: { classPropertyName: "colors", publicName: "colors", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsGradientTexture, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.4", type: NgtsGradientTexture, isStandalone: true, selector: "ngts-gradient-texture", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, stops: { classPropertyName: "stops", publicName: "stops", isSignal: true, isRequired: true, transformFunction: null }, colors: { classPropertyName: "colors", publicName: "colors", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
61
61
  <ngt-canvas-texture
62
62
  *args="[canvas()]"
63
63
  [attach]="attach()"
@@ -68,7 +68,7 @@ export class NgtsGradientTexture {
68
68
  </ngt-canvas-texture>
69
69
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
70
70
  }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsGradientTexture, decorators: [{
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsGradientTexture, decorators: [{
72
72
  type: Component,
73
73
  args: [{
74
74
  selector: 'ngts-gradient-texture',
@@ -70,8 +70,8 @@ export class NgtsGrid {
70
70
  worldPlanePosition.value.set(0, 0, 0).applyMatrix4(mesh.matrixWorld);
71
71
  });
72
72
  }
73
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
74
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: NgtsGrid, isStandalone: true, selector: "ngts-grid", inputs: { 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: `
73
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
74
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsGrid, isStandalone: true, selector: "ngts-grid", inputs: { 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: `
75
75
  <ngt-mesh #mesh [frustumCulled]="false" [parameters]="parameters()">
76
76
  <ngt-plane-geometry *args="planeArgs()" />
77
77
  <ngt-grid-material [transparent]="true" [side]="side()" [parameters]="uniforms()">
@@ -81,7 +81,7 @@ export class NgtsGrid {
81
81
  </ngt-mesh>
82
82
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
83
83
  }
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsGrid, decorators: [{
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsGrid, decorators: [{
85
85
  type: Component,
86
86
  args: [{
87
87
  selector: 'ngts-grid',
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, input, signal, untracked, viewChild, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, input, viewChild, } from '@angular/core';
2
2
  import { extend, getLocalState, injectBeforeRender, injectStore, resolveRef } from 'angular-three';
3
3
  import { assertInjector } from 'ngxtension/assert-injector';
4
4
  import { Object3D } from 'three';
@@ -7,27 +7,25 @@ export function injectHelper(object, helperConstructor, { injector, args = () =>
7
7
  return assertInjector(injectHelper, injector, () => {
8
8
  const store = injectStore();
9
9
  const scene = store.select('scene');
10
- const helper = signal(null);
11
- effect((onCleanup) => {
12
- let currentHelper = undefined;
10
+ const helper = computed(() => {
13
11
  const maybeObject3D = object();
14
12
  if (!maybeObject3D)
15
- return;
13
+ return null;
16
14
  const object3D = resolveRef(maybeObject3D);
17
15
  if (!object3D)
18
- return;
19
- currentHelper = new (helperConstructor())(object3D, ...args());
16
+ return null;
17
+ const currentHelper = new (helperConstructor())(object3D, ...args());
18
+ currentHelper.traverse((child) => (child.raycast = () => null));
19
+ return currentHelper;
20
+ });
21
+ effect((onCleanup) => {
22
+ const currentHelper = helper();
20
23
  if (!currentHelper)
21
24
  return;
22
- untracked(() => {
23
- helper.set(currentHelper);
24
- });
25
- // Prevent the helpers from blocking rays
26
- currentHelper.traverse((child) => (child.raycast = () => null));
27
- scene().add(currentHelper);
25
+ const _scene = scene();
26
+ _scene.add(currentHelper);
28
27
  onCleanup(() => {
29
- helper.set(null);
30
- scene().remove(currentHelper);
28
+ _scene.remove(currentHelper);
31
29
  currentHelper.dispose?.();
32
30
  });
33
31
  });
@@ -36,7 +34,7 @@ export function injectHelper(object, helperConstructor, { injector, args = () =>
36
34
  if (currentHelper)
37
35
  currentHelper.update();
38
36
  });
39
- return helper.asReadonly();
37
+ return helper;
40
38
  });
41
39
  }
42
40
  export class NgtsHelper {
@@ -56,12 +54,12 @@ export class NgtsHelper {
56
54
  this.helper = injectHelper(this.parent, this.type, { args: this.options });
57
55
  extend({ Object3D });
58
56
  }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsHelper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: NgtsHelper, isStandalone: true, selector: "ngts-helper", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "helperRef", first: true, predicate: ["helper"], descendants: true, isSignal: true }], ngImport: i0, template: `
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsHelper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsHelper, isStandalone: true, selector: "ngts-helper", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "helperRef", first: true, predicate: ["helper"], descendants: true, isSignal: true }], ngImport: i0, template: `
61
59
  <ngt-object3D #helper />
62
60
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
63
61
  }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsHelper, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsHelper, decorators: [{
65
63
  type: Component,
66
64
  args: [{
67
65
  standalone: true,
@@ -73,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
73
71
  changeDetection: ChangeDetectionStrategy.OnPush,
74
72
  }]
75
73
  }], ctorParameters: () => [] });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL2hlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLE1BQU0sRUFHTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFJakMsTUFBTSxVQUFVLFlBQVksQ0FJM0IsTUFBZ0UsRUFDaEUsaUJBQXFDLEVBQ3JDLEVBQ0MsUUFBUSxFQUNSLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFnRSxNQUNhLEVBQUU7SUFFN0YsT0FBTyxjQUFjLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDbEQsTUFBTSxLQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDNUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVwQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQXlCLElBQUksQ0FBQyxDQUFDO1FBRXBELE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLElBQUksYUFBYSxHQUFnQyxTQUFTLENBQUM7WUFDM0QsTUFBTSxhQUFhLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLGFBQWE7Z0JBQUUsT0FBTztZQUUzQixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsT0FBTztZQUV0QixhQUFhLEdBQUcsS0FBSyxpQkFBaUIsRUFBVSxFQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLGFBQWE7Z0JBQUUsT0FBTztZQUUzQixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7WUFFSCx5Q0FBeUM7WUFDekMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDaEUsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRTNCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakIsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUM5QixhQUFhLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsa0JBQWtCLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sYUFBYSxHQUFHLE1BQU0sRUFBRSxDQUFDO1lBQy9CLElBQUksYUFBYTtnQkFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM1QixDQUFDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFXRCxNQUFNLE9BQU8sVUFBVTtJQWtCdEI7UUFqQkEsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWdCLENBQUM7UUFDdEMsWUFBTyxHQUFHLEtBQUssQ0FDZCxFQUFnRSxDQUNoRSxDQUFDO1FBRUYsY0FBUyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQXVCLFFBQVEsQ0FBQyxDQUFDO1FBRXZELFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzlCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUM7WUFDOUMsSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTztZQUNwQixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLFVBQVU7Z0JBQUUsT0FBTztZQUN4QixPQUFPLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVILFdBQU0sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBR3JFLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQzs4R0FwQlcsVUFBVTtrR0FBVixVQUFVLDBiQU5aOztFQUVUOzsyRkFJVyxVQUFVO2tCQVR0QixTQUFTO21CQUFDO29CQUNWLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRjb21wdXRlZCxcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0ZWZmZWN0LFxuXHRFbGVtZW50UmVmLFxuXHRJbmplY3Rvcixcblx0aW5wdXQsXG5cdHNpZ25hbCxcblx0dW50cmFja2VkLFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBnZXRMb2NhbFN0YXRlLCBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdFN0b3JlLCByZXNvbHZlUmVmIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCB7IE9iamVjdDNEIH0gZnJvbSAndGhyZWUnO1xuXG50eXBlIEhlbHBlckFyZ3M8VD4gPSBUIGV4dGVuZHMgW2luZmVyIF8sIC4uLmluZmVyIFJdID8gUiA6IG5ldmVyO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SGVscGVyPFxuXHRUQ29uc3RydWN0b3IgZXh0ZW5kcyBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBPYmplY3QzRCxcblx0VEhlbHBlckluc3RhbmNlIGV4dGVuZHMgSW5zdGFuY2VUeXBlPFRDb25zdHJ1Y3Rvcj4gJiB7IHVwZGF0ZTogKCkgPT4gdm9pZDsgZGlzcG9zZTogKCkgPT4gdm9pZCB9LFxuPihcblx0b2JqZWN0OiAoKSA9PiBFbGVtZW50UmVmPE9iamVjdDNEPiB8IE9iamVjdDNEIHwgdW5kZWZpbmVkIHwgbnVsbCxcblx0aGVscGVyQ29uc3RydWN0b3I6ICgpID0+IFRDb25zdHJ1Y3Rvcixcblx0e1xuXHRcdGluamVjdG9yLFxuXHRcdGFyZ3MgPSAoKSA9PiBbXSBhcyB1bmtub3duIGFzIEhlbHBlckFyZ3M8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPFRDb25zdHJ1Y3Rvcj4+LFxuXHR9OiB7IGluamVjdG9yPzogSW5qZWN0b3I7IGFyZ3M/OiAoKSA9PiBIZWxwZXJBcmdzPENvbnN0cnVjdG9yUGFyYW1ldGVyczxUQ29uc3RydWN0b3I+PiB9ID0ge30sXG4pIHtcblx0cmV0dXJuIGFzc2VydEluamVjdG9yKGluamVjdEhlbHBlciwgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdFx0Y29uc3Qgc2NlbmUgPSBzdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cblx0XHRjb25zdCBoZWxwZXIgPSBzaWduYWw8VEhlbHBlckluc3RhbmNlIHwgbnVsbD4obnVsbCk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0bGV0IGN1cnJlbnRIZWxwZXI6IFRIZWxwZXJJbnN0YW5jZSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblx0XHRcdGNvbnN0IG1heWJlT2JqZWN0M0QgPSBvYmplY3QoKTtcblx0XHRcdGlmICghbWF5YmVPYmplY3QzRCkgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBvYmplY3QzRCA9IHJlc29sdmVSZWYobWF5YmVPYmplY3QzRCk7XG5cdFx0XHRpZiAoIW9iamVjdDNEKSByZXR1cm47XG5cblx0XHRcdGN1cnJlbnRIZWxwZXIgPSBuZXcgKGhlbHBlckNvbnN0cnVjdG9yKCkgYXMgYW55KShvYmplY3QzRCwgLi4uYXJncygpKTtcblx0XHRcdGlmICghY3VycmVudEhlbHBlcikgcmV0dXJuO1xuXG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRoZWxwZXIuc2V0KGN1cnJlbnRIZWxwZXIpO1xuXHRcdFx0fSk7XG5cblx0XHRcdC8vIFByZXZlbnQgdGhlIGhlbHBlcnMgZnJvbSBibG9ja2luZyByYXlzXG5cdFx0XHRjdXJyZW50SGVscGVyLnRyYXZlcnNlKChjaGlsZCkgPT4gKGNoaWxkLnJheWNhc3QgPSAoKSA9PiBudWxsKSk7XG5cdFx0XHRzY2VuZSgpLmFkZChjdXJyZW50SGVscGVyKTtcblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0aGVscGVyLnNldChudWxsKTtcblx0XHRcdFx0c2NlbmUoKS5yZW1vdmUoY3VycmVudEhlbHBlcik7XG5cdFx0XHRcdGN1cnJlbnRIZWxwZXIuZGlzcG9zZT8uKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGluamVjdEJlZm9yZVJlbmRlcigoKSA9PiB7XG5cdFx0XHRjb25zdCBjdXJyZW50SGVscGVyID0gaGVscGVyKCk7XG5cdFx0XHRpZiAoY3VycmVudEhlbHBlcikgY3VycmVudEhlbHBlci51cGRhdGUoKTtcblx0XHR9KTtcblxuXHRcdHJldHVybiBoZWxwZXIuYXNSZWFkb25seSgpO1xuXHR9KTtcbn1cblxuQENvbXBvbmVudCh7XG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNlbGVjdG9yOiAnbmd0cy1oZWxwZXInLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3Qtb2JqZWN0M0QgI2hlbHBlciAvPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzSGVscGVyPFRDb25zdHJ1Y3RvciBleHRlbmRzIG5ldyAoLi4uYXJnczogYW55W10pID0+IE9iamVjdDNEPiB7XG5cdHR5cGUgPSBpbnB1dC5yZXF1aXJlZDxUQ29uc3RydWN0b3I+KCk7XG5cdG9wdGlvbnMgPSBpbnB1dDxIZWxwZXJBcmdzPENvbnN0cnVjdG9yUGFyYW1ldGVyczxUQ29uc3RydWN0b3I+Pj4oXG5cdFx0W10gYXMgdW5rbm93biBhcyBIZWxwZXJBcmdzPENvbnN0cnVjdG9yUGFyYW1ldGVyczxUQ29uc3RydWN0b3I+Pixcblx0KTtcblxuXHRoZWxwZXJSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxPYmplY3QzRD4+KCdoZWxwZXInKTtcblxuXHRwcml2YXRlIHBhcmVudCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBoZWxwZXIgPSB0aGlzLmhlbHBlclJlZigpLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0aWYgKCFoZWxwZXIpIHJldHVybjtcblx0XHRjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShoZWxwZXIpO1xuXHRcdGlmICghbG9jYWxTdGF0ZSkgcmV0dXJuO1xuXHRcdHJldHVybiBsb2NhbFN0YXRlLnBhcmVudCgpO1xuXHR9KTtcblxuXHRoZWxwZXIgPSBpbmplY3RIZWxwZXIodGhpcy5wYXJlbnQsIHRoaXMudHlwZSwgeyBhcmdzOiB0aGlzLm9wdGlvbnMgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgT2JqZWN0M0QgfSk7XG5cdH1cbn1cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL2hlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLE1BQU0sRUFHTixLQUFLLEVBQ0wsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7O0FBSWpDLE1BQU0sVUFBVSxZQUFZLENBSTNCLE1BQWdFLEVBQ2hFLGlCQUFxQyxFQUNyQyxFQUNDLFFBQVEsRUFDUixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBZ0UsTUFDYSxFQUFFO0lBRTdGLE9BQU8sY0FBYyxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ2xELE1BQU0sS0FBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQzVCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFcEMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM1QixNQUFNLGFBQWEsR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsYUFBYTtnQkFBRSxPQUFPLElBQUksQ0FBQztZQUVoQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFFM0IsTUFBTSxhQUFhLEdBQW9CLEtBQUssaUJBQWlCLEVBQVUsRUFBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzdGLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLE9BQU8sYUFBYSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxhQUFhLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLGFBQWE7Z0JBQUUsT0FBTztZQUUzQixNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUV2QixNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRTFCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDN0IsYUFBYSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILGtCQUFrQixDQUFDLEdBQUcsRUFBRTtZQUN2QixNQUFNLGFBQWEsR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUMvQixJQUFJLGFBQWE7Z0JBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFXRCxNQUFNLE9BQU8sVUFBVTtJQWtCdEI7UUFqQkEsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWdCLENBQUM7UUFDdEMsWUFBTyxHQUFHLEtBQUssQ0FDZCxFQUFnRSxDQUNoRSxDQUFDO1FBRUYsY0FBUyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQXVCLFFBQVEsQ0FBQyxDQUFDO1FBRXZELFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzlCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUM7WUFDOUMsSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTztZQUNwQixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLFVBQVU7Z0JBQUUsT0FBTztZQUN4QixPQUFPLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVILFdBQU0sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBR3JFLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQzs4R0FwQlcsVUFBVTtrR0FBVixVQUFVLDBiQU5aOztFQUVUOzsyRkFJVyxVQUFVO2tCQVR0QixTQUFTO21CQUFDO29CQUNWLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRjb21wdXRlZCxcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0ZWZmZWN0LFxuXHRFbGVtZW50UmVmLFxuXHRJbmplY3Rvcixcblx0aW5wdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIGdldExvY2FsU3RhdGUsIGluamVjdEJlZm9yZVJlbmRlciwgaW5qZWN0U3RvcmUsIHJlc29sdmVSZWYgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHsgT2JqZWN0M0QgfSBmcm9tICd0aHJlZSc7XG5cbnR5cGUgSGVscGVyQXJnczxUPiA9IFQgZXh0ZW5kcyBbaW5mZXIgXywgLi4uaW5mZXIgUl0gPyBSIDogbmV2ZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RIZWxwZXI8XG5cdFRDb25zdHJ1Y3RvciBleHRlbmRzIG5ldyAoLi4uYXJnczogYW55W10pID0+IE9iamVjdDNELFxuXHRUSGVscGVySW5zdGFuY2UgZXh0ZW5kcyBJbnN0YW5jZVR5cGU8VENvbnN0cnVjdG9yPiAmIHsgdXBkYXRlOiAoKSA9PiB2b2lkOyBkaXNwb3NlOiAoKSA9PiB2b2lkIH0sXG4+KFxuXHRvYmplY3Q6ICgpID0+IEVsZW1lbnRSZWY8T2JqZWN0M0Q+IHwgT2JqZWN0M0QgfCB1bmRlZmluZWQgfCBudWxsLFxuXHRoZWxwZXJDb25zdHJ1Y3RvcjogKCkgPT4gVENvbnN0cnVjdG9yLFxuXHR7XG5cdFx0aW5qZWN0b3IsXG5cdFx0YXJncyA9ICgpID0+IFtdIGFzIHVua25vd24gYXMgSGVscGVyQXJnczxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VENvbnN0cnVjdG9yPj4sXG5cdH06IHsgaW5qZWN0b3I/OiBJbmplY3RvcjsgYXJncz86ICgpID0+IEhlbHBlckFyZ3M8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPFRDb25zdHJ1Y3Rvcj4+IH0gPSB7fSxcbikge1xuXHRyZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0SGVscGVyLCBpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0XHRjb25zdCBzY2VuZSA9IHN0b3JlLnNlbGVjdCgnc2NlbmUnKTtcblxuXHRcdGNvbnN0IGhlbHBlciA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGNvbnN0IG1heWJlT2JqZWN0M0QgPSBvYmplY3QoKTtcblx0XHRcdGlmICghbWF5YmVPYmplY3QzRCkgcmV0dXJuIG51bGw7XG5cblx0XHRcdGNvbnN0IG9iamVjdDNEID0gcmVzb2x2ZVJlZihtYXliZU9iamVjdDNEKTtcblx0XHRcdGlmICghb2JqZWN0M0QpIHJldHVybiBudWxsO1xuXG5cdFx0XHRjb25zdCBjdXJyZW50SGVscGVyOiBUSGVscGVySW5zdGFuY2UgPSBuZXcgKGhlbHBlckNvbnN0cnVjdG9yKCkgYXMgYW55KShvYmplY3QzRCwgLi4uYXJncygpKTtcblx0XHRcdGN1cnJlbnRIZWxwZXIudHJhdmVyc2UoKGNoaWxkKSA9PiAoY2hpbGQucmF5Y2FzdCA9ICgpID0+IG51bGwpKTtcblx0XHRcdHJldHVybiBjdXJyZW50SGVscGVyO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGN1cnJlbnRIZWxwZXIgPSBoZWxwZXIoKTtcblx0XHRcdGlmICghY3VycmVudEhlbHBlcikgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBfc2NlbmUgPSBzY2VuZSgpO1xuXG5cdFx0XHRfc2NlbmUuYWRkKGN1cnJlbnRIZWxwZXIpO1xuXG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRfc2NlbmUucmVtb3ZlKGN1cnJlbnRIZWxwZXIpO1xuXHRcdFx0XHRjdXJyZW50SGVscGVyLmRpc3Bvc2U/LigpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3RCZWZvcmVSZW5kZXIoKCkgPT4ge1xuXHRcdFx0Y29uc3QgY3VycmVudEhlbHBlciA9IGhlbHBlcigpO1xuXHRcdFx0aWYgKGN1cnJlbnRIZWxwZXIpIGN1cnJlbnRIZWxwZXIudXBkYXRlKCk7XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gaGVscGVyO1xuXHR9KTtcbn1cblxuQENvbXBvbmVudCh7XG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNlbGVjdG9yOiAnbmd0cy1oZWxwZXInLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3Qtb2JqZWN0M0QgI2hlbHBlciAvPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzSGVscGVyPFRDb25zdHJ1Y3RvciBleHRlbmRzIG5ldyAoLi4uYXJnczogYW55W10pID0+IE9iamVjdDNEPiB7XG5cdHR5cGUgPSBpbnB1dC5yZXF1aXJlZDxUQ29uc3RydWN0b3I+KCk7XG5cdG9wdGlvbnMgPSBpbnB1dDxIZWxwZXJBcmdzPENvbnN0cnVjdG9yUGFyYW1ldGVyczxUQ29uc3RydWN0b3I+Pj4oXG5cdFx0W10gYXMgdW5rbm93biBhcyBIZWxwZXJBcmdzPENvbnN0cnVjdG9yUGFyYW1ldGVyczxUQ29uc3RydWN0b3I+Pixcblx0KTtcblxuXHRoZWxwZXJSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxPYmplY3QzRD4+KCdoZWxwZXInKTtcblxuXHRwcml2YXRlIHBhcmVudCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBoZWxwZXIgPSB0aGlzLmhlbHBlclJlZigpLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0aWYgKCFoZWxwZXIpIHJldHVybjtcblx0XHRjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShoZWxwZXIpO1xuXHRcdGlmICghbG9jYWxTdGF0ZSkgcmV0dXJuO1xuXHRcdHJldHVybiBsb2NhbFN0YXRlLnBhcmVudCgpO1xuXHR9KTtcblxuXHRoZWxwZXIgPSBpbmplY3RIZWxwZXIodGhpcy5wYXJlbnQsIHRoaXMudHlwZSwgeyBhcmdzOiB0aGlzLm9wdGlvbnMgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgT2JqZWN0M0QgfSk7XG5cdH1cbn1cbiJdfQ==
@@ -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 { checkNeedsUpdate, injectStore, NgtArgs, omit, pick } from 'angular-three';
3
- import { injectAutoEffect } from 'ngxtension/auto-effect';
4
3
  import { mergeInputs } from 'ngxtension/inject-inputs';
5
4
  import { Color, Vector2, Vector3, Vector4 } from 'three';
6
5
  import { Line2, LineGeometry, LineMaterial, LineSegments2, LineSegmentsGeometry, } from 'three-stdlib';
@@ -26,12 +25,13 @@ export class NgtsLine {
26
25
  this.vertexColors = pick(this.options, 'vertexColors');
27
26
  this.dashed = pick(this.options, 'dashed');
28
27
  this.color = pick(this.options, 'color');
29
- this.lineWidth = pick(this.options, 'lineWidth');
30
- this.linewidth = pick(this.options, 'linewidth');
31
28
  this.vertex = computed(() => Boolean(this.vertexColors()));
32
29
  this.resolution = computed(() => [this.size().width, this.size().height]);
30
+ this.lineWidth = pick(this.options, 'lineWidth');
31
+ this.linewidth = pick(this.options, 'linewidth');
33
32
  this.line2 = computed(() => (this.segments() ? new LineSegments2() : new Line2()));
34
33
  this.lineMaterial = new LineMaterial();
34
+ this.actualLineWidth = computed(() => this.linewidth() ?? this.lineWidth() ?? 1);
35
35
  this.itemSize = computed(() => (this.vertexColors()?.[0]?.length === 4 ? 4 : 3));
36
36
  this.lineGeometry = computed(() => {
37
37
  const geom = this.segments() ? new LineSegmentsGeometry() : new LineGeometry();
@@ -56,29 +56,26 @@ export class NgtsLine {
56
56
  }
57
57
  return geom;
58
58
  });
59
- const autoEffect = injectAutoEffect();
60
- afterNextRender(() => {
61
- autoEffect(() => {
62
- const [lineMaterial, dashed] = [this.lineMaterial, this.dashed()];
63
- if (dashed) {
64
- lineMaterial.defines['USE_DASH'] = '';
65
- }
66
- else {
67
- delete lineMaterial.defines['USE_DASH'];
68
- }
69
- checkNeedsUpdate(lineMaterial);
70
- });
71
- autoEffect(() => {
72
- const [lineGeometry, lineMaterial] = [this.lineGeometry(), this.lineMaterial];
73
- return () => {
74
- lineGeometry.dispose();
75
- lineMaterial.dispose();
76
- };
59
+ effect(() => {
60
+ const [lineMaterial, dashed] = [this.lineMaterial, this.dashed()];
61
+ if (dashed) {
62
+ lineMaterial.defines['USE_DASH'] = '';
63
+ }
64
+ else {
65
+ delete lineMaterial.defines['USE_DASH'];
66
+ }
67
+ checkNeedsUpdate(lineMaterial);
68
+ });
69
+ effect((onCleanup) => {
70
+ const [lineGeometry, lineMaterial] = [this.lineGeometry(), this.lineMaterial];
71
+ onCleanup(() => {
72
+ lineGeometry.dispose();
73
+ lineMaterial.dispose();
77
74
  });
78
75
  });
79
76
  }
80
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
81
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: NgtsLine, isStandalone: true, selector: "ngts-line", inputs: { points: { classPropertyName: "points", publicName: "points", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lineRef", first: true, predicate: ["line"], descendants: true, isSignal: true }], ngImport: i0, template: `
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
78
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsLine, isStandalone: true, selector: "ngts-line", inputs: { points: { classPropertyName: "points", publicName: "points", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lineRef", first: true, predicate: ["line"], descendants: true, isSignal: true }], ngImport: i0, template: `
82
79
  <ngt-primitive *args="[line2()]" #line [parameters]="parameters()">
83
80
  <ngt-primitive *args="[lineGeometry()]" attach="geometry" (attached)="onGeometryAttached($any($event))" />
84
81
  <ngt-primitive
@@ -87,7 +84,7 @@ export class NgtsLine {
87
84
  [color]="color()"
88
85
  [vertexColors]="vertex()"
89
86
  [resolution]="resolution()"
90
- [linewidth]="linewidth() ?? lineWidth() ?? 1"
87
+ [linewidth]="actualLineWidth()"
91
88
  [dashed]="dashed()"
92
89
  [transparent]="itemSize() === 4"
93
90
  [parameters]="parameters()"
@@ -96,7 +93,7 @@ export class NgtsLine {
96
93
  </ngt-primitive>
97
94
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
98
95
  }
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsLine, decorators: [{
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsLine, decorators: [{
100
97
  type: Component,
101
98
  args: [{
102
99
  selector: 'ngts-line',
@@ -110,7 +107,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
110
107
  [color]="color()"
111
108
  [vertexColors]="vertex()"
112
109
  [resolution]="resolution()"
113
- [linewidth]="linewidth() ?? lineWidth() ?? 1"
110
+ [linewidth]="actualLineWidth()"
114
111
  [dashed]="dashed()"
115
112
  [transparent]="itemSize() === 4"
116
113
  [parameters]="parameters()"
@@ -123,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
123
120
  imports: [NgtArgs],
124
121
  }]
125
122
  }], ctorParameters: () => [] });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9hYnN0cmFjdGlvbnMvc3JjL2xpYi9saW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1Isc0JBQXNCLEVBRXRCLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBa0IsT0FBTyxFQUFtQixJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUF1QixPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5RSxPQUFPLEVBQ04sS0FBSyxFQUNMLFlBQVksRUFDWixZQUFZLEVBRVosYUFBYSxFQUNiLG9CQUFvQixHQUNwQixNQUFNLGNBQWMsQ0FBQzs7QUFrQnRCLE1BQU0sY0FBYyxHQUFvQjtJQUN2QyxTQUFTLEVBQUUsQ0FBQztJQUNaLFFBQVEsRUFBRSxLQUFLO0lBQ2YsS0FBSyxFQUFFLFFBQVE7Q0FDZixDQUFDO0FBMEJGLE1BQU0sT0FBTyxRQUFRO0lBcURwQixpR0FBaUc7SUFDakcsa0JBQWtCLENBQUMsRUFBRSxNQUFNLEVBQXVEO1FBQ2pGLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRDtRQXpEQSxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBbUYsQ0FBQztRQUMzRyxZQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFD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QUFVLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ3ZDLENBQUM7cUJBQU0sQ0FBQztvQkFDUCxPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7Z0JBQ0QsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQUM7WUFFSCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNmLE1BQU0sQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUM5RSxPQUFPLEdBQUcsRUFBRTtvQkFDWCxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ3ZCLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBaEZXLFFBQVE7a0dBQVIsUUFBUSwwYkFyQlY7Ozs7Ozs7Ozs7Ozs7Ozs7RUFnQlQsNERBR1MsT0FBTzs7MkZBRUwsUUFBUTtrQkF4QnBCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7RUFnQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRjb21wdXRlZCxcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0RWxlbWVudFJlZixcblx0aW5wdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjaGVja05lZWRzVXBkYXRlLCBpbmplY3RTdG9yZSwgTmd0QWZ0ZXJBdHRhY2gsIE5ndEFyZ3MsIE5ndE9iamVjdDNETm9kZSwgb21pdCwgcGljayB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgQ29sb3IsIENvbG9yUmVwcmVzZW50YXRpb24sIFZlY3RvcjIsIFZlY3RvcjMsIFZlY3RvcjQgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQge1xuXHRMaW5lMixcblx0TGluZUdlb21ldHJ5LFxuXHRMaW5lTWF0ZXJpYWwsXG5cdExpbmVNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdExpbmVTZWdtZW50czIsXG5cdExpbmVTZWdtZW50c0dlb21ldHJ5LFxufSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5leHBvcnQgdHlwZSBOZ3RMaW5lMiA9IE5ndE9iamVjdDNETm9kZTxMaW5lMiwgdHlwZW9mIExpbmUyPjtcbmV4cG9ydCB0eXBlIE5ndExpbmVNYXRlcmlhbCA9IE5ndE9iamVjdDNETm9kZTxMaW5lTWF0ZXJpYWwsIFtMaW5lTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5cbmV4cG9ydCB0eXBlIE5ndHNMaW5lT3B0aW9ucyA9IE9taXQ8TGluZU1hdGVyaWFsUGFyYW1ldGVycywgJ3ZlcnRleENvbG9ycycgfCAnY29sb3InPiAmXG5cdE9taXQ8UGFydGlhbDxOZ3RMaW5lMj4sICdfX25ndF9hcmdzX18nPiAmXG5cdE9taXQ8UGFydGlhbDxOZ3RMaW5lTWF0ZXJpYWw+LCAnY29sb3InIHwgJ3ZlcnRleENvbG9ycycgfCAnX19uZ3RfYXJnc19fJz4gJiB7XG5cdFx0LyoqIEFycmF5IG9mIGNvbG9ycywgWzAsIDAsIDBdICovXG5cdFx0dmVydGV4Q29sb3JzPzogQXJyYXk8Q29sb3JSZXByZXNlbnRhdGlvbiB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdPjtcblx0XHQvKiogTGluZSB3aWR0aCwgMSAqL1xuXHRcdGxpbmVXaWR0aDogbnVtYmVyO1xuXHRcdC8qKiBTZWdtZW50cywgZmFsc2UgKi9cblx0XHRzZWdtZW50czogYm9vbGVhbjtcblx0XHQvKiogQ29sb3IgKi9cblx0XHRjb2xvcj86IENvbG9yUmVwcmVzZW50YXRpb247XG5cdH07XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RzTGluZU9wdGlvbnMgPSB7XG5cdGxpbmVXaWR0aDogMSxcblx0c2VnbWVudHM6IGZhbHNlLFxuXHRjb2xvcjogMHhmZmZmZmYsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWxpbmUnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2xpbmUyKCldXCIgI2xpbmUgW3BhcmFtZXRlcnNdPVwicGFyYW1ldGVycygpXCI+XG5cdFx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltsaW5lR2VvbWV0cnkoKV1cIiBhdHRhY2g9XCJnZW9tZXRyeVwiIChhdHRhY2hlZCk9XCJvbkdlb21ldHJ5QXR0YWNoZWQoJGFueSgkZXZlbnQpKVwiIC8+XG5cdFx0XHQ8bmd0LXByaW1pdGl2ZVxuXHRcdFx0XHQqYXJncz1cIltsaW5lTWF0ZXJpYWxdXCJcblx0XHRcdFx0YXR0YWNoPVwibWF0ZXJpYWxcIlxuXHRcdFx0XHRbY29sb3JdPVwiY29sb3IoKVwiXG5cdFx0XHRcdFt2ZXJ0ZXhDb2xvcnNdPVwidmVydGV4KClcIlxuXHRcdFx0XHRbcmVzb2x1dGlvbl09XCJyZXNvbHV0aW9uKClcIlxuXHRcdFx0XHRbbGluZXdpZHRoXT1cImxpbmV3aWR0aCgpID8/IGxpbmVXaWR0aCgpID8/IDFcIlxuXHRcdFx0XHRbZGFzaGVkXT1cImRhc2hlZCgpXCJcblx0XHRcdFx0W3RyYW5zcGFyZW50XT1cIml0ZW1TaXplKCkgPT09IDRcIlxuXHRcdFx0XHRbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzKClcIlxuXHRcdFx0Lz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtcHJpbWl0aXZlPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNMaW5lIHtcblx0cG9pbnRzID0gaW5wdXQucmVxdWlyZWQ8QXJyYXk8VmVjdG9yMyB8IFZlY3RvcjIgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gfCBbbnVtYmVyLCBudW1iZXJdIHwgbnVtYmVyPj4oKTtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXHRwYXJhbWV0ZXJzID0gb21pdCh0aGlzLm9wdGlvbnMsIFsnY29sb3InLCAndmVydGV4Q29sb3JzJywgJ2xpbmVXaWR0aCcsICdzZWdtZW50cycsICdsaW5ld2lkdGgnLCAnZGFzaGVkJ10pO1xuXG5cdGxpbmVSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxMaW5lMiB8IExpbmVTZWdtZW50czI+PignbGluZScpO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIHNpemUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnc2l6ZScpO1xuXG5cdHByaXZhdGUgc2VnbWVudHMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3NlZ21lbnRzJyk7XG5cdHByaXZhdGUgdmVydGV4Q29sb3JzID0gcGljayh0aGlzLm9wdGlvbnMsICd2ZXJ0ZXhDb2xvcnMnKTtcblxuXHRkYXNoZWQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2Rhc2hlZCcpO1xuXHRjb2xvciA9IHBpY2sodGhpcy5vcHRpb25zLCAnY29sb3InKTtcblx0bGluZVdpZHRoID0gcGljayh0aGlzLm9wdGlvbnMsICdsaW5lV2lkdGgnKTtcblx0bGluZXdpZHRoID0gcGljayh0aGlzLm9wdGlvbnMsICdsaW5ld2lkdGgnKTtcblx0dmVydGV4ID0gY29tcHV0ZWQoKCkgPT4gQm9vbGVhbih0aGlzLnZlcnRleENvbG9ycygpKSk7XG5cdHJlc29sdXRpb24gPSBjb21wdXRlZCgoKSA9PiBbdGhpcy5zaXplKCkud2lkdGgsIHRoaXMuc2l6ZSgpLmhlaWdodF0pO1xuXG5cdGxpbmUyID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuc2VnbWVudHMoKSA/IG5ldyBMaW5lU2VnbWVudHMyKCkgOiBuZXcgTGluZTIoKSkpO1xuXHRsaW5lTWF0ZXJpYWwgPSBuZXcgTGluZU1hdGVyaWFsKCk7XG5cblx0aXRlbVNpemUgPSBjb21wdXRlZCgoKSA9PiAoKHRoaXMudmVydGV4Q29sb3JzKCk/LlswXSBhcyBudW1iZXJbXSB8IHVuZGVmaW5lZCk/Lmxlbmd0aCA9PT0gNCA/IDQgOiAzKSk7XG5cblx0bGluZUdlb21ldHJ5ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IGdlb20gPSB0aGlzLnNlZ21lbnRzKCkgPyBuZXcgTGluZVNlZ21lbnRzR2VvbWV0cnkoKSA6IG5ldyBMaW5lR2VvbWV0cnkoKTtcblx0XHRjb25zdCBwVmFsdWVzID0gdGhpcy5wb2ludHMoKS5tYXAoKHApID0+IHtcblx0XHRcdGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KHApO1xuXHRcdFx0cmV0dXJuIHAgaW5zdGFuY2VvZiBWZWN0b3IzIHx8IHAgaW5zdGFuY2VvZiBWZWN0b3I0XG5cdFx0XHRcdD8gW3AueCwgcC55LCBwLnpdXG5cdFx0XHRcdDogcCBpbnN0YW5jZW9mIFZlY3RvcjJcblx0XHRcdFx0XHQ/IFtwLngsIHAueSwgMF1cblx0XHRcdFx0XHQ6IGlzQXJyYXkgJiYgcC5sZW5ndGggPT09IDNcblx0XHRcdFx0XHRcdD8gW3BbMF0sIHBbMV0sIHBbMl1dXG5cdFx0XHRcdFx0XHQ6IGlzQXJyYXkgJiYgcC5sZW5ndGggPT09IDJcblx0XHRcdFx0XHRcdFx0PyBbcFswXSwgcFsxXSwgMF1cblx0XHRcdFx0XHRcdFx0OiBwO1xuXHRcdH0pO1xuXG5cdFx0Z2VvbS5zZXRQb3NpdGlvbnMocFZhbHVlcy5mbGF0KCkpO1xuXG5cdFx0Y29uc3QgdmVydGV4Q29sb3JzID0gdGhpcy52ZXJ0ZXhDb2xvcnMoKTtcblxuXHRcdGlmICh2ZXJ0ZXhDb2xvcnMpIHtcblx0XHRcdGNvbnN0IGNWYWx1ZXMgPSB2ZXJ0ZXhDb2xvcnMubWFwKChjKSA9PiAoYyBpbnN0YW5jZW9mIENvbG9yID8gYy50b0FycmF5KCkgOiBjKSk7XG5cdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gZmxhdCgpIGlzbid0IGRlZmluZWRcblx0XHRcdGdlb20uc2V0Q29sb3JzKGNWYWx1ZXMuZmxhdCgpLCB0aGlzLml0ZW1TaXplKCkpO1xuXHRcdH1cblxuXHRcdHJldHVybiBnZW9tO1xuXHR9KTtcblxuXHQvLyBOT1RFOiB1c2UgYXR0YWNoZWQgZXZlbnQgdG8gY2FsbCBjb21wdXRlTGluZURpc3RhbmNlcyB0byBlbnN1cmUgdGhlIGdlb21ldHJ5IGhhcyBiZWVuIGF0dGFjaGVkXG5cdG9uR2VvbWV0cnlBdHRhY2hlZCh7IHBhcmVudCB9OiBOZ3RBZnRlckF0dGFjaDxMaW5lR2VvbWV0cnksIExpbmUyIHwgTGluZVNlZ21lbnRzMj4pIHtcblx0XHRwYXJlbnQuY29tcHV0ZUxpbmVEaXN0YW5jZXMoKTtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGNvbnN0IGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0YXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IFtsaW5lTWF0ZXJpYWwsIGRhc2hlZF0gPSBbdGhpcy5saW5lTWF0ZXJpYWwsIHRoaXMuZGFzaGVkKCldO1xuXHRcdFx0XHRpZiAoZGFzaGVkKSB7XG5cdFx0XHRcdFx0bGluZU1hdGVyaWFsLmRlZmluZXNbJ1VTRV9EQVNIJ10gPSAnJztcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRkZWxldGUgbGluZU1hdGVyaWFsLmRlZmluZXNbJ1VTRV9EQVNIJ107XG5cdFx0XHRcdH1cblx0XHRcdFx0Y2hlY2tOZWVkc1VwZGF0ZShsaW5lTWF0ZXJpYWwpO1xuXHRcdFx0fSk7XG5cblx0XHRcdGF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBbbGluZUdlb21ldHJ5LCBsaW5lTWF0ZXJpYWxdID0gW3RoaXMubGluZUdlb21ldHJ5KCksIHRoaXMubGluZU1hdGVyaWFsXTtcblx0XHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0XHRsaW5lR2VvbWV0cnkuZGlzcG9zZSgpO1xuXHRcdFx0XHRcdGxpbmVNYXRlcmlhbC5kaXNwb3NlKCk7XG5cdFx0XHRcdH07XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuIl19
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9hYnN0cmFjdGlvbnMvc3JjL2xpYi9saW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixzQkFBc0IsRUFDdEIsTUFBTSxFQUVOLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBa0IsT0FBTyxFQUFtQixJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUF1QixPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5RSxPQUFPLEVBQ04sS0FBSyxFQUNMLFlBQVksRUFDWixZQUFZLEVBRVosYUFBYSxFQUNiLG9CQUFvQixHQUNwQixNQUFNLGNBQWMsQ0FBQzs7QUFrQnRCLE1BQU0sY0FBYyxHQUFvQjtJQUN2QyxTQUFTLEVBQUUsQ0FBQztJQUNaLFFBQVEsRUFBRSxLQUFLO0lBQ2YsS0FBSyxFQUFFLFFBQVE7Q0FDZixDQUFDO0FBMEJGLE1BQU0sT0FBTyxRQUFRO0lBdURwQixpR0FBaUc7SUFDakcsa0JBQWtCLENBQUMsRUFBRSxNQUFNLEVBQXVEO1FBQ2pGLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRDtRQTNEQSxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBbUYsQ0FBQztRQUMzRyxZQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLGVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUUzRyxZQUFPLEdBQUcsU0FBUyxDQUFvQyxNQUFNLENBQUMsQ0FBQztRQUV2RCxVQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDdEIsU0FBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpDLGFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMxQyxpQkFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRWhELFdBQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN0QyxVQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RCxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUV2RSxjQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDNUMsY0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRXBELFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlFLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4QixvQkFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzVFLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQTBCLEVBQUUsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWhILGlCQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM1QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUMvRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3ZDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLE9BQU8sQ0FBQyxZQUFZLE9BQU8sSUFBSSxDQUFDLFlBQVksT0FBTztvQkFDbEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2pCLENBQUMsQ0FBQyxDQUFDLFlBQVksT0FBTzt3QkFDckIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDZixDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQzs0QkFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQ3BCLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO2dDQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQ0FDakIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNULENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUVsQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFekMsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDbEIsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hGLDBDQUEwQztnQkFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDakQsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7UUFRRixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDbEUsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWixZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN2QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7WUFDRCxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzlFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN2QixZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBOUVXLFFBQVE7a0dBQVIsUUFBUSwwYkFyQlY7Ozs7Ozs7Ozs7Ozs7Ozs7RUFnQlQsNERBR1MsT0FBTzs7MkZBRUwsUUFBUTtrQkF4QnBCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7RUFnQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdGVmZmVjdCxcblx0RWxlbWVudFJlZixcblx0aW5wdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjaGVja05lZWRzVXBkYXRlLCBpbmplY3RTdG9yZSwgTmd0QWZ0ZXJBdHRhY2gsIE5ndEFyZ3MsIE5ndE9iamVjdDNETm9kZSwgb21pdCwgcGljayB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgQ29sb3IsIENvbG9yUmVwcmVzZW50YXRpb24sIFZlY3RvcjIsIFZlY3RvcjMsIFZlY3RvcjQgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQge1xuXHRMaW5lMixcblx0TGluZUdlb21ldHJ5LFxuXHRMaW5lTWF0ZXJpYWwsXG5cdExpbmVNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdExpbmVTZWdtZW50czIsXG5cdExpbmVTZWdtZW50c0dlb21ldHJ5LFxufSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5leHBvcnQgdHlwZSBOZ3RMaW5lMiA9IE5ndE9iamVjdDNETm9kZTxMaW5lMiwgdHlwZW9mIExpbmUyPjtcbmV4cG9ydCB0eXBlIE5ndExpbmVNYXRlcmlhbCA9IE5ndE9iamVjdDNETm9kZTxMaW5lTWF0ZXJpYWwsIFtMaW5lTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5cbmV4cG9ydCB0eXBlIE5ndHNMaW5lT3B0aW9ucyA9IE9taXQ8TGluZU1hdGVyaWFsUGFyYW1ldGVycywgJ3ZlcnRleENvbG9ycycgfCAnY29sb3InPiAmXG5cdE9taXQ8UGFydGlhbDxOZ3RMaW5lMj4sICdfX25ndF9hcmdzX18nPiAmXG5cdE9taXQ8UGFydGlhbDxOZ3RMaW5lTWF0ZXJpYWw+LCAnY29sb3InIHwgJ3ZlcnRleENvbG9ycycgfCAnX19uZ3RfYXJnc19fJz4gJiB7XG5cdFx0LyoqIEFycmF5IG9mIGNvbG9ycywgWzAsIDAsIDBdICovXG5cdFx0dmVydGV4Q29sb3JzPzogQXJyYXk8Q29sb3JSZXByZXNlbnRhdGlvbiB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdPjtcblx0XHQvKiogTGluZSB3aWR0aCwgMSAqL1xuXHRcdGxpbmVXaWR0aDogbnVtYmVyO1xuXHRcdC8qKiBTZWdtZW50cywgZmFsc2UgKi9cblx0XHRzZWdtZW50czogYm9vbGVhbjtcblx0XHQvKiogQ29sb3IgKi9cblx0XHRjb2xvcj86IENvbG9yUmVwcmVzZW50YXRpb247XG5cdH07XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RzTGluZU9wdGlvbnMgPSB7XG5cdGxpbmVXaWR0aDogMSxcblx0c2VnbWVudHM6IGZhbHNlLFxuXHRjb2xvcjogMHhmZmZmZmYsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWxpbmUnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2xpbmUyKCldXCIgI2xpbmUgW3BhcmFtZXRlcnNdPVwicGFyYW1ldGVycygpXCI+XG5cdFx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltsaW5lR2VvbWV0cnkoKV1cIiBhdHRhY2g9XCJnZW9tZXRyeVwiIChhdHRhY2hlZCk9XCJvbkdlb21ldHJ5QXR0YWNoZWQoJGFueSgkZXZlbnQpKVwiIC8+XG5cdFx0XHQ8bmd0LXByaW1pdGl2ZVxuXHRcdFx0XHQqYXJncz1cIltsaW5lTWF0ZXJpYWxdXCJcblx0XHRcdFx0YXR0YWNoPVwibWF0ZXJpYWxcIlxuXHRcdFx0XHRbY29sb3JdPVwiY29sb3IoKVwiXG5cdFx0XHRcdFt2ZXJ0ZXhDb2xvcnNdPVwidmVydGV4KClcIlxuXHRcdFx0XHRbcmVzb2x1dGlvbl09XCJyZXNvbHV0aW9uKClcIlxuXHRcdFx0XHRbbGluZXdpZHRoXT1cImFjdHVhbExpbmVXaWR0aCgpXCJcblx0XHRcdFx0W2Rhc2hlZF09XCJkYXNoZWQoKVwiXG5cdFx0XHRcdFt0cmFuc3BhcmVudF09XCJpdGVtU2l6ZSgpID09PSA0XCJcblx0XHRcdFx0W3BhcmFtZXRlcnNdPVwicGFyYW1ldGVycygpXCJcblx0XHRcdC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXByaW1pdGl2ZT5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzTGluZSB7XG5cdHBvaW50cyA9IGlucHV0LnJlcXVpcmVkPEFycmF5PFZlY3RvcjMgfCBWZWN0b3IyIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdIHwgW251bWJlciwgbnVtYmVyXSB8IG51bWJlcj4+KCk7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblx0cGFyYW1ldGVycyA9IG9taXQodGhpcy5vcHRpb25zLCBbJ2NvbG9yJywgJ3ZlcnRleENvbG9ycycsICdsaW5lV2lkdGgnLCAnc2VnbWVudHMnLCAnbGluZXdpZHRoJywgJ2Rhc2hlZCddKTtcblxuXHRsaW5lUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8TGluZTIgfCBMaW5lU2VnbWVudHMyPj4oJ2xpbmUnKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0cHJpdmF0ZSBzaXplID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NpemUnKTtcblxuXHRwcml2YXRlIHNlZ21lbnRzID0gcGljayh0aGlzLm9wdGlvbnMsICdzZWdtZW50cycpO1xuXHRwcml2YXRlIHZlcnRleENvbG9ycyA9IHBpY2sodGhpcy5vcHRpb25zLCAndmVydGV4Q29sb3JzJyk7XG5cblx0cHJvdGVjdGVkIGRhc2hlZCA9IHBpY2sodGhpcy5vcHRpb25zLCAnZGFzaGVkJyk7XG5cdHByb3RlY3RlZCBjb2xvciA9IHBpY2sodGhpcy5vcHRpb25zLCAnY29sb3InKTtcblx0cHJvdGVjdGVkIHZlcnRleCA9IGNvbXB1dGVkKCgpID0+IEJvb2xlYW4odGhpcy52ZXJ0ZXhDb2xvcnMoKSkpO1xuXHRwcm90ZWN0ZWQgcmVzb2x1dGlvbiA9IGNvbXB1dGVkKCgpID0+IFt0aGlzLnNpemUoKS53aWR0aCwgdGhpcy5zaXplKCkuaGVpZ2h0XSk7XG5cblx0cHJpdmF0ZSBsaW5lV2lkdGggPSBwaWNrKHRoaXMub3B0aW9ucywgJ2xpbmVXaWR0aCcpO1xuXHRwcml2YXRlIGxpbmV3aWR0aCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbGluZXdpZHRoJyk7XG5cblx0bGluZTIgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5zZWdtZW50cygpID8gbmV3IExpbmVTZWdtZW50czIoKSA6IG5ldyBMaW5lMigpKSk7XG5cdGxpbmVNYXRlcmlhbCA9IG5ldyBMaW5lTWF0ZXJpYWwoKTtcblxuXHRwcm90ZWN0ZWQgYWN0dWFsTGluZVdpZHRoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5saW5ld2lkdGgoKSA/PyB0aGlzLmxpbmVXaWR0aCgpID8/IDEpO1xuXHRwcm90ZWN0ZWQgaXRlbVNpemUgPSBjb21wdXRlZCgoKSA9PiAoKHRoaXMudmVydGV4Q29sb3JzKCk/LlswXSBhcyBudW1iZXJbXSB8IHVuZGVmaW5lZCk/Lmxlbmd0aCA9PT0gNCA/IDQgOiAzKSk7XG5cblx0bGluZUdlb21ldHJ5ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IGdlb20gPSB0aGlzLnNlZ21lbnRzKCkgPyBuZXcgTGluZVNlZ21lbnRzR2VvbWV0cnkoKSA6IG5ldyBMaW5lR2VvbWV0cnkoKTtcblx0XHRjb25zdCBwVmFsdWVzID0gdGhpcy5wb2ludHMoKS5tYXAoKHApID0+IHtcblx0XHRcdGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KHApO1xuXHRcdFx0cmV0dXJuIHAgaW5zdGFuY2VvZiBWZWN0b3IzIHx8IHAgaW5zdGFuY2VvZiBWZWN0b3I0XG5cdFx0XHRcdD8gW3AueCwgcC55LCBwLnpdXG5cdFx0XHRcdDogcCBpbnN0YW5jZW9mIFZlY3RvcjJcblx0XHRcdFx0XHQ/IFtwLngsIHAueSwgMF1cblx0XHRcdFx0XHQ6IGlzQXJyYXkgJiYgcC5sZW5ndGggPT09IDNcblx0XHRcdFx0XHRcdD8gW3BbMF0sIHBbMV0sIHBbMl1dXG5cdFx0XHRcdFx0XHQ6IGlzQXJyYXkgJiYgcC5sZW5ndGggPT09IDJcblx0XHRcdFx0XHRcdFx0PyBbcFswXSwgcFsxXSwgMF1cblx0XHRcdFx0XHRcdFx0OiBwO1xuXHRcdH0pO1xuXG5cdFx0Z2VvbS5zZXRQb3NpdGlvbnMocFZhbHVlcy5mbGF0KCkpO1xuXG5cdFx0Y29uc3QgdmVydGV4Q29sb3JzID0gdGhpcy52ZXJ0ZXhDb2xvcnMoKTtcblxuXHRcdGlmICh2ZXJ0ZXhDb2xvcnMpIHtcblx0XHRcdGNvbnN0IGNWYWx1ZXMgPSB2ZXJ0ZXhDb2xvcnMubWFwKChjKSA9PiAoYyBpbnN0YW5jZW9mIENvbG9yID8gYy50b0FycmF5KCkgOiBjKSk7XG5cdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gZmxhdCgpIGlzbid0IGRlZmluZWRcblx0XHRcdGdlb20uc2V0Q29sb3JzKGNWYWx1ZXMuZmxhdCgpLCB0aGlzLml0ZW1TaXplKCkpO1xuXHRcdH1cblxuXHRcdHJldHVybiBnZW9tO1xuXHR9KTtcblxuXHQvLyBOT1RFOiB1c2UgYXR0YWNoZWQgZXZlbnQgdG8gY2FsbCBjb21wdXRlTGluZURpc3RhbmNlcyB0byBlbnN1cmUgdGhlIGdlb21ldHJ5IGhhcyBiZWVuIGF0dGFjaGVkXG5cdG9uR2VvbWV0cnlBdHRhY2hlZCh7IHBhcmVudCB9OiBOZ3RBZnRlckF0dGFjaDxMaW5lR2VvbWV0cnksIExpbmUyIHwgTGluZVNlZ21lbnRzMj4pIHtcblx0XHRwYXJlbnQuY29tcHV0ZUxpbmVEaXN0YW5jZXMoKTtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbbGluZU1hdGVyaWFsLCBkYXNoZWRdID0gW3RoaXMubGluZU1hdGVyaWFsLCB0aGlzLmRhc2hlZCgpXTtcblx0XHRcdGlmIChkYXNoZWQpIHtcblx0XHRcdFx0bGluZU1hdGVyaWFsLmRlZmluZXNbJ1VTRV9EQVNIJ10gPSAnJztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGRlbGV0ZSBsaW5lTWF0ZXJpYWwuZGVmaW5lc1snVVNFX0RBU0gnXTtcblx0XHRcdH1cblx0XHRcdGNoZWNrTmVlZHNVcGRhdGUobGluZU1hdGVyaWFsKTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBbbGluZUdlb21ldHJ5LCBsaW5lTWF0ZXJpYWxdID0gW3RoaXMubGluZUdlb21ldHJ5KCksIHRoaXMubGluZU1hdGVyaWFsXTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdGxpbmVHZW9tZXRyeS5kaXNwb3NlKCk7XG5cdFx0XHRcdGxpbmVNYXRlcmlhbC5kaXNwb3NlKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuIl19
@@ -21,14 +21,14 @@ export class NgtsPrismGeometry {
21
21
  this.geometryRef = viewChild('geometry');
22
22
  extend({ ExtrudeGeometry });
23
23
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsPrismGeometry, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: NgtsPrismGeometry, isStandalone: true, selector: "ngts-prism-geometry", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, vertices: { classPropertyName: "vertices", publicName: "vertices", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "geometryRef", first: true, predicate: ["geometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPrismGeometry, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsPrismGeometry, isStandalone: true, selector: "ngts-prism-geometry", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, vertices: { classPropertyName: "vertices", publicName: "vertices", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "geometryRef", first: true, predicate: ["geometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
26
26
  <ngt-extrude-geometry #geometry *args="[shape(), parameters()]" [attach]="attach()">
27
27
  <ng-content />
28
28
  </ngt-extrude-geometry>
29
29
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsPrismGeometry, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPrismGeometry, decorators: [{
32
32
  type: Component,
33
33
  args: [{
34
34
  selector: 'ngts-prism-geometry',
@@ -49,14 +49,14 @@ export class NgtsQuadraticBezierLine {
49
49
  }
50
50
  return this.curve.getPoints(segments);
51
51
  }
52
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsQuadraticBezierLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
53
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: NgtsQuadraticBezierLine, isStandalone: true, selector: "ngts-quadratic-bezier-line", inputs: { start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: false, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: false, transformFunction: null }, mid: { classPropertyName: "mid", publicName: "mid", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsQuadraticBezierLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsQuadraticBezierLine, isStandalone: true, selector: "ngts-quadratic-bezier-line", inputs: { start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: false, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: false, transformFunction: null }, mid: { classPropertyName: "mid", publicName: "mid", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
54
54
  <ngts-line [points]="points()" [options]="parameters()">
55
55
  <ng-content />
56
56
  </ngts-line>
57
57
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line", inputs: ["points", "options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
58
58
  }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsQuadraticBezierLine, decorators: [{
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsQuadraticBezierLine, decorators: [{
60
60
  type: Component,
61
61
  args: [{
62
62
  selector: 'ngts-quadratic-bezier-line',
@@ -1,6 +1,5 @@
1
- import { afterNextRender, ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, input, untracked, viewChild, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, input, untracked, viewChild, } from '@angular/core';
2
2
  import { extend, NgtArgs, omit, pick } from 'angular-three';
3
- import { injectAutoEffect } from 'ngxtension/auto-effect';
4
3
  import { mergeInputs } from 'ngxtension/inject-inputs';
5
4
  import { ExtrudeGeometry, Mesh, Shape } from 'three';
6
5
  import { toCreasedNormals } from 'three-stdlib';
@@ -71,28 +70,23 @@ export class NgtsRoundedBox {
71
70
  };
72
71
  });
73
72
  extend({ ExtrudeGeometry, Mesh });
74
- const autoEffect = injectAutoEffect();
75
- afterNextRender(() => {
76
- autoEffect(() => {
77
- const geometry = this.geometryRef()?.nativeElement;
78
- if (!geometry)
79
- return;
80
- this.shape();
81
- this.params();
82
- geometry.center();
83
- toCreasedNormals(geometry, untracked(this.creaseAngle));
84
- });
73
+ effect(() => {
74
+ const geometry = this.geometryRef()?.nativeElement;
75
+ if (!geometry)
76
+ return;
77
+ geometry.center();
78
+ toCreasedNormals(geometry, untracked(this.creaseAngle));
85
79
  });
86
80
  }
87
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsRoundedBox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: NgtsRoundedBox, isStandalone: true, selector: "ngts-rounded-box", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }, { propertyName: "geometryRef", first: true, predicate: ["geometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
81
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsRoundedBox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
82
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsRoundedBox, isStandalone: true, selector: "ngts-rounded-box", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }, { propertyName: "geometryRef", first: true, predicate: ["geometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
89
83
  <ngt-mesh #mesh [parameters]="parameters()">
90
84
  <ngt-extrude-geometry #geometry *args="[shape(), params()]" />
91
85
  <ng-content />
92
86
  </ngt-mesh>
93
87
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
94
88
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsRoundedBox, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsRoundedBox, decorators: [{
96
90
  type: Component,
97
91
  args: [{
98
92
  selector: 'ngts-rounded-box',
@@ -108,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
108
102
  imports: [NgtArgs],
109
103
  }]
110
104
  }], ctorParameters: () => [] });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91bmRlZC1ib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvYWJzdHJhY3Rpb25zL3NyYy9saWIvcm91bmRlZC1ib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixzQkFBc0IsRUFFdEIsS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQVcsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFaEQsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDO0FBRXBCLFNBQVMsV0FBVyxDQUFDLEtBQWEsRUFBRSxNQUFjLEVBQUUsT0FBZTtJQUNsRSxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQzFCLE1BQU0sTUFBTSxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDN0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRCxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUs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QWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdEVsZW1lbnRSZWYsXG5cdGlucHV0LFxuXHR1bnRyYWNrZWQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIE5ndEFyZ3MsIE5ndE1lc2gsIG9taXQsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEV4dHJ1ZGVHZW9tZXRyeSwgTWVzaCwgU2hhcGUgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyB0b0NyZWFzZWROb3JtYWxzIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuY29uc3QgZXBzID0gMC4wMDAwMTtcblxuZnVuY3Rpb24gY3JlYXRlU2hhcGUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHJhZGl1czA6IG51bWJlcikge1xuXHRjb25zdCBzaGFwZSA9IG5ldyBTaGFwZSgpO1xuXHRjb25zdCByYWRpdXMgPSByYWRpdXMwIC0gZXBzO1xuXHRzaGFwZS5hYnNhcmMoZXBzLCBlcHMsIGVwcywgLU1hdGguUEkgLyAyLCAtTWF0aC5QSSwgdHJ1ZSk7XG5cdHNoYXBlLmFic2FyYyhlcHMsIGhlaWdodCAtIHJhZGl1cyAqIDIsIGVwcywgTWF0aC5QSSwgTWF0aC5QSSAvIDIsIHRydWUpO1xuXHRzaGFwZS5hYnNhcmMod2lkdGggLSByYWRpdXMgKiAyLCBoZWlnaHQgLSByYWRpdXMgKiAyLCBlcHMsIE1hdGguUEkgLyAyLCAwLCB0cnVlKTtcblx0c2hhcGUuYWJzYXJjKHdpZHRoIC0gcmFkaXVzICogMiwgZXBzLCBlcHMsIDAsIC1NYXRoLlBJIC8gMiwgdHJ1ZSk7XG5cdHJldHVybiBzaGFwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzUm91bmRlZEJveE9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPE5ndE1lc2g+IHtcblx0d2lkdGg6IG51bWJlcjtcblx0aGVpZ2h0OiBudW1iZXI7XG5cdGRlcHRoOiBudW1iZXI7XG5cdHJhZGl1czogbnVtYmVyO1xuXHRzbW9vdGhuZXNzOiBudW1iZXI7XG5cdGJldmVsU2VnbWVudHM6IG51bWJlcjtcblx0c3RlcHM6IG51bWJlcjtcblx0Y3JlYXNlQW5nbGU6IG51bWJlcjtcbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHNSb3VuZGVkQm94T3B0aW9ucyA9IHtcblx0d2lkdGg6IDEsXG5cdGhlaWdodDogMSxcblx0ZGVwdGg6IDEsXG5cdHJhZGl1czogMC4wNSxcblx0c21vb3RobmVzczogNCxcblx0YmV2ZWxTZWdtZW50czogNCxcblx0Y3JlYXNlQW5nbGU6IDAuNCxcblx0c3RlcHM6IDEsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLXJvdW5kZWQtYm94Jyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LW1lc2ggI21lc2ggW3BhcmFtZXRlcnNdPVwicGFyYW1ldGVycygpXCI+XG5cdFx0XHQ8bmd0LWV4dHJ1ZGUtZ2VvbWV0cnkgI2dlb21ldHJ5ICphcmdzPVwiW3NoYXBlKCksIHBhcmFtcygpXVwiIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LW1lc2g+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1JvdW5kZWRCb3gge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgW1xuXHRcdCd3aWR0aCcsXG5cdFx0J2hlaWdodCcsXG5cdFx0J2RlcHRoJyxcblx0XHQncmFkaXVzJyxcblx0XHQnc21vb3RobmVzcycsXG5cdFx0J2JldmVsU2VnbWVudHMnLFxuXHRcdCdzdGVwcycsXG5cdFx0J2NyZWFzZUFuZ2xlJyxcblx0XSk7XG5cblx0cHJpdmF0ZSB3aWR0aCA9IHBpY2sodGhpcy5vcHRpb25zLCAnd2lkdGgnKTtcblx0cHJpdmF0ZSBoZWlnaHQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2hlaWdodCcpO1xuXHRwcml2YXRlIGRlcHRoID0gcGljayh0aGlzLm9wdGlvbnMsICdkZXB0aCcpO1xuXHRwcml2YXRlIHJhZGl1cyA9IHBpY2sodGhpcy5vcHRpb25zLCAncmFkaXVzJyk7XG5cdHByaXZhdGUgc21vb3RobmVzcyA9IHBpY2sodGhpcy5vcHRpb25zLCAnc21vb3RobmVzcycpO1xuXHRwcml2YXRlIGJldmVsU2VnbWVudHMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2JldmVsU2VnbWVudHMnKTtcblx0cHJpdmF0ZSBzdGVwcyA9IHBpY2sodGhpcy5vcHRpb25zLCAnc3RlcHMnKTtcblx0cHJpdmF0ZSBjcmVhc2VBbmdsZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnY3JlYXNlQW5nbGUnKTtcblxuXHRtZXNoUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8TWVzaD4+KCdtZXNoJyk7XG5cdGdlb21ldHJ5UmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8RXh0cnVkZUdlb21ldHJ5Pj4oJ2dlb21ldHJ5Jyk7XG5cblx0c2hhcGUgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgW3dpZHRoLCBoZWlnaHQsIHJhZGl1c10gPSBbdGhpcy53aWR0aCgpLCB0aGlzLmhlaWdodCgpLCB0aGlzLnJhZGl1cygpXTtcblx0XHRyZXR1cm4gY3JlYXRlU2hhcGUod2lkdGgsIGhlaWdodCwgcmFkaXVzKTtcblx0fSk7XG5cdHBhcmFtcyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbZGVwdGgsIHJhZGl1cywgc21vb3RobmVzcywgYmV2ZWxTZWdtZW50cywgc3RlcHNdID0gW1xuXHRcdFx0dGhpcy5kZXB0aCgpLFxuXHRcdFx0dGhpcy5yYWRpdXMoKSxcblx0XHRcdHRoaXMuc21vb3RobmVzcygpLFxuXHRcdFx0dW50cmFja2VkKHRoaXMuYmV2ZWxTZWdtZW50cyksXG5cdFx0XHR1bnRyYWNrZWQodGhpcy5zdGVwcyksXG5cdFx0XTtcblxuXHRcdHJldHVybiB7XG5cdFx0XHRkZXB0aDogZGVwdGggLSByYWRpdXMgKiAyLFxuXHRcdFx0YmV2ZWxFbmFibGVkOiB0cnVlLFxuXHRcdFx0YmV2ZWxTZWdtZW50czogYmV2ZWxTZWdtZW50cyAqIDIsXG5cdFx0XHRzdGVwcyxcblx0XHRcdGJldmVsU2l6ZTogcmFkaXVzIC0gZXBzLFxuXHRcdFx0YmV2ZWxUaGlja25lc3M6IHJhZGl1cyxcblx0XHRcdGN1cnZlU2VnbWVudHM6IHNtb290aG5lc3MsXG5cdFx0fTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgRXh0cnVkZUdlb21ldHJ5LCBNZXNoIH0pO1xuXG5cdFx0Y29uc3QgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0YXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGdlb21ldHJ5ID0gdGhpcy5nZW9tZXRyeVJlZigpPy5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRpZiAoIWdlb21ldHJ5KSByZXR1cm47XG5cblx0XHRcdFx0dGhpcy5zaGFwZSgpO1xuXHRcdFx0XHR0aGlzLnBhcmFtcygpO1xuXG5cdFx0XHRcdGdlb21ldHJ5LmNlbnRlcigpO1xuXHRcdFx0XHR0b0NyZWFzZWROb3JtYWxzKGdlb21ldHJ5LCB1bnRyYWNrZWQodGhpcy5jcmVhc2VBbmdsZSkpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91bmRlZC1ib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvYWJzdHJhY3Rpb25zL3NyYy9saWIvcm91bmRlZC1ib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBRU4sS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQVcsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFaEQsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDO0FBRXBCLFNBQVMsV0FBVyxDQUFDLEtBQWEsRUFBRSxNQUFjLEVBQUUsT0FBZTtJQUNsRSxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQzFCLE1BQU0sTUFBTSxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDN0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRCxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMs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ZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRlZmZlY3QsXG5cdEVsZW1lbnRSZWYsXG5cdGlucHV0LFxuXHR1bnRyYWNrZWQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIE5ndEFyZ3MsIE5ndE1lc2gsIG9taXQsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEV4dHJ1ZGVHZW9tZXRyeSwgTWVzaCwgU2hhcGUgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyB0b0NyZWFzZWROb3JtYWxzIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuY29uc3QgZXBzID0gMC4wMDAwMTtcblxuZnVuY3Rpb24gY3JlYXRlU2hhcGUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHJhZGl1czA6IG51bWJlcikge1xuXHRjb25zdCBzaGFwZSA9IG5ldyBTaGFwZSgpO1xuXHRjb25zdCByYWRpdXMgPSByYWRpdXMwIC0gZXBzO1xuXHRzaGFwZS5hYnNhcmMoZXBzLCBlcHMsIGVwcywgLU1hdGguUEkgLyAyLCAtTWF0aC5QSSwgdHJ1ZSk7XG5cdHNoYXBlLmFic2FyYyhlcHMsIGhlaWdodCAtIHJhZGl1cyAqIDIsIGVwcywgTWF0aC5QSSwgTWF0aC5QSSAvIDIsIHRydWUpO1xuXHRzaGFwZS5hYnNhcmMod2lkdGggLSByYWRpdXMgKiAyLCBoZWlnaHQgLSByYWRpdXMgKiAyLCBlcHMsIE1hdGguUEkgLyAyLCAwLCB0cnVlKTtcblx0c2hhcGUuYWJzYXJjKHdpZHRoIC0gcmFkaXVzICogMiwgZXBzLCBlcHMsIDAsIC1NYXRoLlBJIC8gMiwgdHJ1ZSk7XG5cdHJldHVybiBzaGFwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzUm91bmRlZEJveE9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPE5ndE1lc2g+IHtcblx0d2lkdGg6IG51bWJlcjtcblx0aGVpZ2h0OiBudW1iZXI7XG5cdGRlcHRoOiBudW1iZXI7XG5cdHJhZGl1czogbnVtYmVyO1xuXHRzbW9vdGhuZXNzOiBudW1iZXI7XG5cdGJldmVsU2VnbWVudHM6IG51bWJlcjtcblx0c3RlcHM6IG51bWJlcjtcblx0Y3JlYXNlQW5nbGU6IG51bWJlcjtcbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHNSb3VuZGVkQm94T3B0aW9ucyA9IHtcblx0d2lkdGg6IDEsXG5cdGhlaWdodDogMSxcblx0ZGVwdGg6IDEsXG5cdHJhZGl1czogMC4wNSxcblx0c21vb3RobmVzczogNCxcblx0YmV2ZWxTZWdtZW50czogNCxcblx0Y3JlYXNlQW5nbGU6IDAuNCxcblx0c3RlcHM6IDEsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLXJvdW5kZWQtYm94Jyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LW1lc2ggI21lc2ggW3BhcmFtZXRlcnNdPVwicGFyYW1ldGVycygpXCI+XG5cdFx0XHQ8bmd0LWV4dHJ1ZGUtZ2VvbWV0cnkgI2dlb21ldHJ5ICphcmdzPVwiW3NoYXBlKCksIHBhcmFtcygpXVwiIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LW1lc2g+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1JvdW5kZWRCb3gge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgW1xuXHRcdCd3aWR0aCcsXG5cdFx0J2hlaWdodCcsXG5cdFx0J2RlcHRoJyxcblx0XHQncmFkaXVzJyxcblx0XHQnc21vb3RobmVzcycsXG5cdFx0J2JldmVsU2VnbWVudHMnLFxuXHRcdCdzdGVwcycsXG5cdFx0J2NyZWFzZUFuZ2xlJyxcblx0XSk7XG5cblx0cHJpdmF0ZSB3aWR0aCA9IHBpY2sodGhpcy5vcHRpb25zLCAnd2lkdGgnKTtcblx0cHJpdmF0ZSBoZWlnaHQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2hlaWdodCcpO1xuXHRwcml2YXRlIGRlcHRoID0gcGljayh0aGlzLm9wdGlvbnMsICdkZXB0aCcpO1xuXHRwcml2YXRlIHJhZGl1cyA9IHBpY2sodGhpcy5vcHRpb25zLCAncmFkaXVzJyk7XG5cdHByaXZhdGUgc21vb3RobmVzcyA9IHBpY2sodGhpcy5vcHRpb25zLCAnc21vb3RobmVzcycpO1xuXHRwcml2YXRlIGJldmVsU2VnbWVudHMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2JldmVsU2VnbWVudHMnKTtcblx0cHJpdmF0ZSBzdGVwcyA9IHBpY2sodGhpcy5vcHRpb25zLCAnc3RlcHMnKTtcblx0cHJpdmF0ZSBjcmVhc2VBbmdsZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnY3JlYXNlQW5nbGUnKTtcblxuXHRtZXNoUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8TWVzaD4+KCdtZXNoJyk7XG5cdGdlb21ldHJ5UmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8RXh0cnVkZUdlb21ldHJ5Pj4oJ2dlb21ldHJ5Jyk7XG5cblx0cHJvdGVjdGVkIHNoYXBlID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFt3aWR0aCwgaGVpZ2h0LCByYWRpdXNdID0gW3RoaXMud2lkdGgoKSwgdGhpcy5oZWlnaHQoKSwgdGhpcy5yYWRpdXMoKV07XG5cdFx0cmV0dXJuIGNyZWF0ZVNoYXBlKHdpZHRoLCBoZWlnaHQsIHJhZGl1cyk7XG5cdH0pO1xuXHRwcm90ZWN0ZWQgcGFyYW1zID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFtkZXB0aCwgcmFkaXVzLCBzbW9vdGhuZXNzLCBiZXZlbFNlZ21lbnRzLCBzdGVwc10gPSBbXG5cdFx0XHR0aGlzLmRlcHRoKCksXG5cdFx0XHR0aGlzLnJhZGl1cygpLFxuXHRcdFx0dGhpcy5zbW9vdGhuZXNzKCksXG5cdFx0XHR1bnRyYWNrZWQodGhpcy5iZXZlbFNlZ21lbnRzKSxcblx0XHRcdHVudHJhY2tlZCh0aGlzLnN0ZXBzKSxcblx0XHRdO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdGRlcHRoOiBkZXB0aCAtIHJhZGl1cyAqIDIsXG5cdFx0XHRiZXZlbEVuYWJsZWQ6IHRydWUsXG5cdFx0XHRiZXZlbFNlZ21lbnRzOiBiZXZlbFNlZ21lbnRzICogMixcblx0XHRcdHN0ZXBzLFxuXHRcdFx0YmV2ZWxTaXplOiByYWRpdXMgLSBlcHMsXG5cdFx0XHRiZXZlbFRoaWNrbmVzczogcmFkaXVzLFxuXHRcdFx0Y3VydmVTZWdtZW50czogc21vb3RobmVzcyxcblx0XHR9O1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBFeHRydWRlR2VvbWV0cnksIE1lc2ggfSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgZ2VvbWV0cnkgPSB0aGlzLmdlb21ldHJ5UmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRpZiAoIWdlb21ldHJ5KSByZXR1cm47XG5cblx0XHRcdGdlb21ldHJ5LmNlbnRlcigpO1xuXHRcdFx0dG9DcmVhc2VkTm9ybWFscyhnZW9tZXRyeSwgdW50cmFja2VkKHRoaXMuY3JlYXNlQW5nbGUpKTtcblx0XHR9KTtcblx0fVxufVxuIl19