angular-three-soba 2.3.0 → 2.4.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 (96) hide show
  1. package/LICENSE +21 -0
  2. package/abstractions/lib/catmull-rom-line.d.ts +5 -5
  3. package/abstractions/lib/edges.d.ts +7 -7
  4. package/abstractions/lib/grid.d.ts +3 -3
  5. package/abstractions/lib/text-3d.d.ts +3 -3
  6. package/esm2022/abstractions/lib/billboard.mjs +3 -3
  7. package/esm2022/abstractions/lib/catmull-rom-line.mjs +3 -3
  8. package/esm2022/abstractions/lib/cubic-bezier-line.mjs +3 -3
  9. package/esm2022/abstractions/lib/edges.mjs +3 -3
  10. package/esm2022/abstractions/lib/gradient-texture.mjs +3 -3
  11. package/esm2022/abstractions/lib/grid.mjs +3 -3
  12. package/esm2022/abstractions/lib/helper.mjs +3 -3
  13. package/esm2022/abstractions/lib/line.mjs +3 -3
  14. package/esm2022/abstractions/lib/prism-geometry.mjs +3 -3
  15. package/esm2022/abstractions/lib/quadratic-bezier-line.mjs +3 -3
  16. package/esm2022/abstractions/lib/rounded-box.mjs +3 -3
  17. package/esm2022/abstractions/lib/text-3d.mjs +3 -3
  18. package/esm2022/abstractions/lib/text.mjs +3 -3
  19. package/esm2022/cameras/lib/camera-content.mjs +3 -3
  20. package/esm2022/cameras/lib/cube-camera.mjs +3 -3
  21. package/esm2022/cameras/lib/orthographic-camera.mjs +3 -3
  22. package/esm2022/cameras/lib/perspective-camera.mjs +3 -3
  23. package/esm2022/controls/lib/camera-controls.mjs +3 -3
  24. package/esm2022/controls/lib/orbit-controls.mjs +3 -3
  25. package/esm2022/controls/lib/scroll-controls.mjs +9 -9
  26. package/esm2022/gizmos/lib/gizmo-helper/gizmo-helper.mjs +6 -6
  27. package/esm2022/gizmos/lib/gizmo-helper/gizmo-viewcube.mjs +21 -21
  28. package/esm2022/gizmos/lib/gizmo-helper/gizmo-viewport.mjs +9 -9
  29. package/esm2022/gizmos/lib/pivot-controls/axis-arrow.mjs +3 -3
  30. package/esm2022/gizmos/lib/pivot-controls/axis-rotator.mjs +3 -3
  31. package/esm2022/gizmos/lib/pivot-controls/pivot-controls.mjs +3 -3
  32. package/esm2022/gizmos/lib/pivot-controls/plane-slider.mjs +3 -3
  33. package/esm2022/gizmos/lib/pivot-controls/scaling-sphere.mjs +3 -3
  34. package/esm2022/gizmos/lib/transform-controls.mjs +3 -3
  35. package/esm2022/loaders/lib/loader.mjs +3 -3
  36. package/esm2022/materials/lib/custom-shader-material.mjs +3 -3
  37. package/esm2022/materials/lib/mesh-distort-material.mjs +3 -3
  38. package/esm2022/materials/lib/mesh-reflector-material.mjs +3 -3
  39. package/esm2022/materials/lib/mesh-refraction-material.mjs +3 -3
  40. package/esm2022/materials/lib/mesh-transmission-material.mjs +4 -4
  41. package/esm2022/materials/lib/mesh-wobble-material.mjs +3 -3
  42. package/esm2022/materials/lib/point-material.mjs +3 -3
  43. package/esm2022/misc/lib/bake-shadows.mjs +3 -3
  44. package/esm2022/misc/lib/computed-attribute.mjs +3 -3
  45. package/esm2022/misc/lib/decal.mjs +3 -3
  46. package/esm2022/misc/lib/fbo.mjs +3 -3
  47. package/esm2022/misc/lib/html/html-content.mjs +3 -3
  48. package/esm2022/misc/lib/html/html.mjs +3 -3
  49. package/esm2022/misc/lib/intersect.mjs +3 -3
  50. package/esm2022/misc/lib/sampler.mjs +3 -3
  51. package/esm2022/performances/lib/adaptive-dpr.mjs +3 -3
  52. package/esm2022/performances/lib/adaptive-events.mjs +3 -3
  53. package/esm2022/performances/lib/detailed.mjs +3 -3
  54. package/esm2022/performances/lib/instances/instances.mjs +6 -6
  55. package/esm2022/performances/lib/points/points.mjs +9 -9
  56. package/esm2022/performances/lib/segments/segments.mjs +6 -6
  57. package/esm2022/staging/lib/accumulative-shadows.mjs +3 -3
  58. package/esm2022/staging/lib/backdrop.mjs +3 -3
  59. package/esm2022/staging/lib/bb-anchor.mjs +3 -3
  60. package/esm2022/staging/lib/bounds.mjs +3 -3
  61. package/esm2022/staging/lib/camera-shake.mjs +3 -3
  62. package/esm2022/staging/lib/caustics.mjs +3 -3
  63. package/esm2022/staging/lib/center.mjs +3 -3
  64. package/esm2022/staging/lib/contact-shadows.mjs +3 -3
  65. package/esm2022/staging/lib/environment/environment.mjs +15 -15
  66. package/esm2022/staging/lib/float.mjs +3 -3
  67. package/esm2022/staging/lib/lightformer.mjs +3 -3
  68. package/esm2022/staging/lib/mask.mjs +3 -3
  69. package/esm2022/staging/lib/matcap-texture.mjs +3 -3
  70. package/esm2022/staging/lib/normal-texture.mjs +3 -3
  71. package/esm2022/staging/lib/randomized-lights.mjs +3 -3
  72. package/esm2022/staging/lib/render-texture.mjs +9 -9
  73. package/esm2022/staging/lib/sky.mjs +3 -3
  74. package/esm2022/staging/lib/spot-light.mjs +15 -15
  75. package/esm2022/staging/lib/stage.mjs +6 -6
  76. package/esm2022/stats/lib/stats.mjs +3 -3
  77. package/fesm2022/angular-three-soba-abstractions.mjs +39 -39
  78. package/fesm2022/angular-three-soba-cameras.mjs +12 -12
  79. package/fesm2022/angular-three-soba-controls.mjs +15 -15
  80. package/fesm2022/angular-three-soba-gizmos.mjs +53 -53
  81. package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -1
  82. package/fesm2022/angular-three-soba-loaders.mjs +3 -3
  83. package/fesm2022/angular-three-soba-materials.mjs +21 -21
  84. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  85. package/fesm2022/angular-three-soba-misc.mjs +24 -24
  86. package/fesm2022/angular-three-soba-performances.mjs +30 -30
  87. package/fesm2022/angular-three-soba-staging.mjs +90 -90
  88. package/fesm2022/angular-three-soba-stats.mjs +3 -3
  89. package/gizmos/lib/gizmo-helper/gizmo-viewcube.d.ts +5 -5
  90. package/materials/lib/custom-shader-material.d.ts +2 -2
  91. package/materials/lib/mesh-transmission-material.d.ts +2 -3
  92. package/misc/lib/computed-attribute.d.ts +0 -4
  93. package/package.json +15 -15
  94. package/staging/lib/center.d.ts +4 -4
  95. package/staging/lib/lightformer.d.ts +3 -3
  96. package/staging/lib/stage.d.ts +3 -3
@@ -4,10 +4,10 @@ export class NgtsCameraContent {
4
4
  static ngTemplateContextGuard(_, ctx) {
5
5
  return true;
6
6
  }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsCameraContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: NgtsCameraContent, isStandalone: true, selector: "ng-template[cameraContent]", ngImport: i0 }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsCameraContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgtsCameraContent, isStandalone: true, selector: "ng-template[cameraContent]", ngImport: i0 }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsCameraContent, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsCameraContent, decorators: [{
11
11
  type: Directive,
12
12
  args: [{ standalone: true, selector: 'ng-template[cameraContent]' }]
13
13
  }] });
@@ -71,8 +71,8 @@ export class NgtsCubeCamera {
71
71
  }
72
72
  });
73
73
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsCubeCamera, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsCubeCamera, isStandalone: true, selector: "ngts-cube-camera", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "cameraContent", first: true, predicate: NgtsCameraContent, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsCubeCamera, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsCubeCamera, isStandalone: true, selector: "ngts-cube-camera", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "cameraContent", first: true, predicate: NgtsCameraContent, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
76
76
  <ngt-group [parameters]="parameters()">
77
77
  <ngt-primitive *args="[camera()]" />
78
78
  <ngt-group #group>
@@ -81,7 +81,7 @@ export class NgtsCubeCamera {
81
81
  </ngt-group>
82
82
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
83
83
  }
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsCubeCamera, decorators: [{
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsCubeCamera, decorators: [{
85
85
  type: Component,
86
86
  args: [{
87
87
  selector: 'ngts-cube-camera',
@@ -84,8 +84,8 @@ export class NgtsOrthographicCamera {
84
84
  }
85
85
  });
86
86
  }
87
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsOrthographicCamera, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsOrthographicCamera, isStandalone: true, selector: "ngts-orthographic-camera", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, isSignal: true }, { propertyName: "cameraContent", first: true, predicate: NgtsCameraContent, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "cameraRef", first: true, predicate: ["camera"], descendants: true, isSignal: true }, { propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
87
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsOrthographicCamera, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsOrthographicCamera, isStandalone: true, selector: "ngts-orthographic-camera", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, isSignal: true }, { propertyName: "cameraContent", first: true, predicate: NgtsCameraContent, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "cameraRef", first: true, predicate: ["camera"], descendants: true, isSignal: true }, { propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
89
89
  <ngt-orthographic-camera
90
90
  #camera
91
91
  [left]="left()"
@@ -102,7 +102,7 @@ export class NgtsOrthographicCamera {
102
102
  </ngt-group>
103
103
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
104
104
  }
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsOrthographicCamera, decorators: [{
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsOrthographicCamera, decorators: [{
106
106
  type: Component,
107
107
  args: [{
108
108
  selector: 'ngts-orthographic-camera',
@@ -71,8 +71,8 @@ export class NgtsPerspectiveCamera {
71
71
  }
72
72
  });
73
73
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPerspectiveCamera, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsPerspectiveCamera, isStandalone: true, selector: "ngts-perspective-camera", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, isSignal: true }, { propertyName: "cameraContent", first: true, predicate: NgtsCameraContent, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "cameraRef", first: true, predicate: ["camera"], descendants: true, isSignal: true }, { propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsPerspectiveCamera, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsPerspectiveCamera, isStandalone: true, selector: "ngts-perspective-camera", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, isSignal: true }, { propertyName: "cameraContent", first: true, predicate: NgtsCameraContent, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "cameraRef", first: true, predicate: ["camera"], descendants: true, isSignal: true }, { propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
76
76
  <ngt-perspective-camera #camera [parameters]="parameters()">
77
77
  <ng-container [ngTemplateOutlet]="content() ?? null" />
78
78
  </ngt-perspective-camera>
@@ -82,7 +82,7 @@ export class NgtsPerspectiveCamera {
82
82
  </ngt-group>
83
83
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
84
84
  }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPerspectiveCamera, decorators: [{
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsPerspectiveCamera, decorators: [{
86
86
  type: Component,
87
87
  args: [{
88
88
  selector: 'ngts-perspective-camera',
@@ -102,14 +102,14 @@ export class NgtsCameraControls {
102
102
  }
103
103
  });
104
104
  }
105
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsCameraControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
106
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.4", type: NgtsCameraControls, isStandalone: true, selector: "ngts-camera-controls", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed", started: "started", ended: "ended" }, ngImport: i0, template: `
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsCameraControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
106
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: NgtsCameraControls, isStandalone: true, selector: "ngts-camera-controls", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed", started: "started", ended: "ended" }, ngImport: i0, template: `
107
107
  <ngt-primitive *args="[controls()]" [parameters]="parameters()">
108
108
  <ng-content />
109
109
  </ngt-primitive>
110
110
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
111
111
  }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsCameraControls, decorators: [{
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsCameraControls, decorators: [{
113
113
  type: Component,
114
114
  args: [{
115
115
  selector: 'ngts-camera-controls',
@@ -108,14 +108,14 @@ export class NgtsOrbitControls {
108
108
  });
109
109
  });
110
110
  }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.4", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed", started: "started", ended: "ended" }, ngImport: i0, template: `
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
112
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed", started: "started", ended: "ended" }, ngImport: i0, template: `
113
113
  <ngt-primitive *args="[controls()]" [parameters]="parameters()" [enableDamping]="enableDamping()">
114
114
  <ng-content />
115
115
  </ngt-primitive>
116
116
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
117
117
  }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsOrbitControls, decorators: [{
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsOrbitControls, decorators: [{
119
119
  type: Component,
120
120
  args: [{
121
121
  selector: 'ngts-orbit-controls',
@@ -195,12 +195,12 @@ export class NgtsScrollControls {
195
195
  const end = start + distance + margin * 2;
196
196
  return this.offset >= start && this.offset <= end;
197
197
  }
198
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsScrollControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
199
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.4", type: NgtsScrollControls, isStandalone: true, selector: "ngts-scroll-controls", inputs: { progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { progress: "progressChange" }, ngImport: i0, template: `
198
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsScrollControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
199
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: NgtsScrollControls, isStandalone: true, selector: "ngts-scroll-controls", inputs: { progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { progress: "progressChange" }, ngImport: i0, template: `
200
200
  <ng-content />
201
201
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
202
202
  }
203
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsScrollControls, decorators: [{
203
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsScrollControls, decorators: [{
204
204
  type: Component,
205
205
  args: [{
206
206
  selector: 'ngts-scroll-controls',
@@ -227,10 +227,10 @@ export class NgtsScrollCanvas {
227
227
  : this.viewport().height * (this.scrollControls.pages() - 1) * this.scrollControls.offset;
228
228
  });
229
229
  }
230
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsScrollCanvas, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
231
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: NgtsScrollCanvas, isStandalone: true, selector: "ngt-group[ngtsScrollCanvas]", ngImport: i0 }); }
230
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsScrollCanvas, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
231
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgtsScrollCanvas, isStandalone: true, selector: "ngt-group[ngtsScrollCanvas]", ngImport: i0 }); }
232
232
  }
233
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsScrollCanvas, decorators: [{
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsScrollCanvas, decorators: [{
234
234
  type: Directive,
235
235
  args: [{ selector: 'ngt-group[ngtsScrollCanvas]', standalone: true }]
236
236
  }], ctorParameters: () => [] });
@@ -247,10 +247,10 @@ export class NgtsScrollHtml extends NgtHTML {
247
247
  }
248
248
  });
249
249
  }
250
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsScrollHtml, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
251
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: NgtsScrollHtml, isStandalone: true, selector: "div[ngtsScrollHTML]", host: { styleAttribute: "position: absolute; top: 0; left: 0; will-change: transform;" }, providers: [provideHTMLDomElement([NgtsScrollControls], (scrollControls) => scrollControls.fixed)], usesInheritance: true, ngImport: i0 }); }
250
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsScrollHtml, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
251
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgtsScrollHtml, isStandalone: true, selector: "div[ngtsScrollHTML]", host: { styleAttribute: "position: absolute; top: 0; left: 0; will-change: transform;" }, providers: [provideHTMLDomElement([NgtsScrollControls], (scrollControls) => scrollControls.fixed)], usesInheritance: true, ngImport: i0 }); }
252
252
  }
253
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsScrollHtml, decorators: [{
253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsScrollHtml, decorators: [{
254
254
  type: Directive,
255
255
  args: [{
256
256
  selector: 'div[ngtsScrollHTML]',
@@ -15,10 +15,10 @@ export class NgtsGizmoHelperContent {
15
15
  static ngTemplateContextGuard(_, ctx) {
16
16
  return true;
17
17
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsGizmoHelperContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
19
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: NgtsGizmoHelperContent, isStandalone: true, selector: "ng-template[gizmoHelperContent]", ngImport: i0 }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsGizmoHelperContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
19
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgtsGizmoHelperContent, isStandalone: true, selector: "ng-template[gizmoHelperContent]", ngImport: i0 }); }
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsGizmoHelperContent, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsGizmoHelperContent, decorators: [{
22
22
  type: Directive,
23
23
  args: [{ selector: 'ng-template[gizmoHelperContent]', standalone: true }]
24
24
  }] });
@@ -134,8 +134,8 @@ export class NgtsGizmoHelper {
134
134
  isCameraControls(controls) {
135
135
  return 'getTarget' in controls;
136
136
  }
137
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsGizmoHelper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
138
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsGizmoHelper, isStandalone: true, selector: "ngts-gizmo-helper", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { update: "update" }, queries: [{ propertyName: "content", first: true, predicate: NgtsGizmoHelperContent, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "gizmoRef", first: true, predicate: ["gizmo"], descendants: true, isSignal: true }, { propertyName: "virtualCameraRef", first: true, predicate: NgtsOrthographicCamera, descendants: true, isSignal: true }], ngImport: i0, template: `
137
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsGizmoHelper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsGizmoHelper, isStandalone: true, selector: "ngts-gizmo-helper", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { update: "update" }, queries: [{ propertyName: "content", first: true, predicate: NgtsGizmoHelperContent, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "gizmoRef", first: true, predicate: ["gizmo"], descendants: true, isSignal: true }, { propertyName: "virtualCameraRef", first: true, predicate: NgtsOrthographicCamera, descendants: true, isSignal: true }], ngImport: i0, template: `
139
139
  <ngt-portal
140
140
  [container]="scene"
141
141
  [autoRender]="true"
@@ -155,7 +155,7 @@ export class NgtsGizmoHelper {
155
155
  </ngt-portal>
156
156
  `, isInline: true, dependencies: [{ kind: "component", type: NgtPortal, selector: "ngt-portal", inputs: ["container", "state", "autoRender", "autoRenderPriority"] }, { kind: "directive", type: NgtPortalContent, selector: "ng-template[portalContent]" }, { kind: "component", type: NgtsOrthographicCamera, selector: "ngts-orthographic-camera", inputs: ["options"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
157
157
  }
158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsGizmoHelper, decorators: [{
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsGizmoHelper, decorators: [{
159
159
  type: Component,
160
160
  args: [{
161
161
  selector: 'ngts-gizmo-helper',
@@ -60,8 +60,8 @@ export class FaceMaterial {
60
60
  });
61
61
  extend({ MeshBasicMaterial });
62
62
  }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FaceMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
64
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.4", type: FaceMaterial, isStandalone: true, selector: "viewcube-face-material", inputs: { hover: { classPropertyName: "hover", publicName: "hover", isSignal: true, isRequired: true, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FaceMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: FaceMaterial, isStandalone: true, selector: "viewcube-face-material", inputs: { hover: { classPropertyName: "hover", publicName: "hover", isSignal: true, isRequired: true, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
65
65
  <ngt-mesh-basic-material
66
66
  [attach]="['material', index()]"
67
67
  [map]="texture()"
@@ -71,7 +71,7 @@ export class FaceMaterial {
71
71
  />
72
72
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
73
73
  }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FaceMaterial, decorators: [{
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FaceMaterial, decorators: [{
75
75
  type: Component,
76
76
  args: [{
77
77
  selector: 'viewcube-face-material',
@@ -108,11 +108,11 @@ export class FaceCube {
108
108
  this.gizmoHelper.tweenCamera(event.face.normal);
109
109
  }
110
110
  }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FaceCube, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: FaceCube, isStandalone: true, selector: "viewcube-face-cube", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, onClick: { classPropertyName: "onClick", publicName: "onClick", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FaceCube, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
112
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: FaceCube, isStandalone: true, selector: "viewcube-face-cube", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, onClick: { classPropertyName: "onClick", publicName: "onClick", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
113
113
  <ngt-mesh
114
- (pointerout)="$event.stopPropagation(); hover.set(-1)"
115
- (pointermove)="$event.stopPropagation(); hover.set(Math.floor($any($event).faceIndex / 2))"
114
+ (pointerout)="$any($event).stopPropagation(); hover.set(-1)"
115
+ (pointermove)="$any($event).stopPropagation(); hover.set(Math.floor($any($event).faceIndex / 2))"
116
116
  (click)="internalOnClick($any($event))"
117
117
  >
118
118
  <ngt-box-geometry />
@@ -122,15 +122,15 @@ export class FaceCube {
122
122
  </ngt-mesh>
123
123
  `, isInline: true, dependencies: [{ kind: "component", type: FaceMaterial, selector: "viewcube-face-material", inputs: ["hover", "index", "options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
124
124
  }
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FaceCube, decorators: [{
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FaceCube, decorators: [{
126
126
  type: Component,
127
127
  args: [{
128
128
  selector: 'viewcube-face-cube',
129
129
  standalone: true,
130
130
  template: `
131
131
  <ngt-mesh
132
- (pointerout)="$event.stopPropagation(); hover.set(-1)"
133
- (pointermove)="$event.stopPropagation(); hover.set(Math.floor($any($event).faceIndex / 2))"
132
+ (pointerout)="$any($event).stopPropagation(); hover.set(-1)"
133
+ (pointermove)="$any($event).stopPropagation(); hover.set(Math.floor($any($event).faceIndex / 2))"
134
134
  (click)="internalOnClick($any($event))"
135
135
  >
136
136
  <ngt-box-geometry />
@@ -170,13 +170,13 @@ export class EdgeCube {
170
170
  this.gizmoHelper.tweenCamera(this.position());
171
171
  }
172
172
  }
173
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: EdgeCube, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
174
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.4", type: EdgeCube, isStandalone: true, selector: "viewcube-edge-cube", inputs: { dimensions: { classPropertyName: "dimensions", publicName: "dimensions", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null }, hoverColor: { classPropertyName: "hoverColor", publicName: "hoverColor", isSignal: true, isRequired: false, transformFunction: null }, onClick: { classPropertyName: "onClick", publicName: "onClick", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
173
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EdgeCube, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
174
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: EdgeCube, isStandalone: true, selector: "viewcube-edge-cube", inputs: { dimensions: { classPropertyName: "dimensions", publicName: "dimensions", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null }, hoverColor: { classPropertyName: "hoverColor", publicName: "hoverColor", isSignal: true, isRequired: false, transformFunction: null }, onClick: { classPropertyName: "onClick", publicName: "onClick", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
175
175
  <ngt-mesh
176
176
  [scale]="1.01"
177
177
  [position]="position()"
178
- (pointerout)="$event.stopPropagation(); hover.set(false)"
179
- (pointerover)="$event.stopPropagation(); hover.set(true)"
178
+ (pointerout)="$any($event).stopPropagation(); hover.set(false)"
179
+ (pointerover)="$any($event).stopPropagation(); hover.set(true)"
180
180
  (click)="internalOnClick($any($event))"
181
181
  >
182
182
  <ngt-mesh-basic-material [transparent]="true" [opacity]="0.6" [color]="color()" [visible]="hover()" />
@@ -184,7 +184,7 @@ export class EdgeCube {
184
184
  </ngt-mesh>
185
185
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
186
186
  }
187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: EdgeCube, decorators: [{
187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EdgeCube, decorators: [{
188
188
  type: Component,
189
189
  args: [{
190
190
  selector: 'viewcube-edge-cube',
@@ -193,8 +193,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
193
193
  <ngt-mesh
194
194
  [scale]="1.01"
195
195
  [position]="position()"
196
- (pointerout)="$event.stopPropagation(); hover.set(false)"
197
- (pointerover)="$event.stopPropagation(); hover.set(true)"
196
+ (pointerout)="$any($event).stopPropagation(); hover.set(false)"
197
+ (pointerover)="$any($event).stopPropagation(); hover.set(true)"
198
198
  (click)="internalOnClick($any($event))"
199
199
  >
200
200
  <ngt-mesh-basic-material [transparent]="true" [opacity]="0.6" [color]="color()" [visible]="hover()" />
@@ -247,8 +247,8 @@ export class NgtsGizmoViewcube {
247
247
  makePositionVector(xyz) {
248
248
  return new Vector3(...xyz).multiplyScalar(0.38);
249
249
  }
250
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsGizmoViewcube, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
251
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtsGizmoViewcube, isStandalone: true, selector: "ngts-gizmo-viewcube", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click" }, ngImport: i0, template: `
250
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsGizmoViewcube, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
251
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: NgtsGizmoViewcube, isStandalone: true, selector: "ngts-gizmo-viewcube", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click" }, ngImport: i0, template: `
252
252
  <ngt-group [scale]="60">
253
253
  <viewcube-face-cube [options]="options()" [onClick]="onClick" />
254
254
  @for (edge of edges; track $index) {
@@ -270,7 +270,7 @@ export class NgtsGizmoViewcube {
270
270
  </ngt-group>
271
271
  `, isInline: true, dependencies: [{ kind: "component", type: FaceCube, selector: "viewcube-face-cube", inputs: ["options", "onClick"] }, { kind: "component", type: EdgeCube, selector: "viewcube-edge-cube", inputs: ["dimensions", "position", "hoverColor", "onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
272
272
  }
273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsGizmoViewcube, decorators: [{
273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsGizmoViewcube, decorators: [{
274
274
  type: Component,
275
275
  args: [{
276
276
  selector: 'ngts-gizmo-viewcube',
@@ -301,4 +301,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
301
301
  imports: [FaceCube, EdgeCube],
302
302
  }]
303
303
  }], ctorParameters: () => [] });
304
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8tdmlld2N1YmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvZ2l6bW9zL3NyYy9saWIvZ2l6bW8taGVscGVyL2dpem1vLXZpZXdjdWJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ04sTUFBTSxFQUNOLFVBQVUsRUFDVixXQUFXLEVBQ1gsV0FBVyxFQUNYLE9BQU8sRUFHUCxJQUFJLEdBQ0osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFJakQsTUFBTSxNQUFNLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDaEYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBWXpFLE1BQU0sMEJBQTBCLEdBQWtCO0lBQ2pELElBQUksRUFBRSxtQ0FBbUM7SUFDekMsS0FBSyxFQUFFLFlBQVk7SUFDbkIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFF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aUI7a0JBNUI3QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBb0JUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztpQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRjb21wdXRlZCxcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0b3V0cHV0LFxuXHRzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0ZXh0ZW5kLFxuXHRnZXRFbWl0dGVyLFxuXHRoYXNMaXN0ZW5lcixcblx0aW5qZWN0U3RvcmUsXG5cdE5ndEFyZ3MsXG5cdE5ndEV2ZW50SGFuZGxlcnMsXG5cdE5ndFRocmVlRXZlbnQsXG5cdHBpY2ssXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgQm94R2VvbWV0cnksIENhbnZhc1RleHR1cmUsIEdyb3VwLCBNZXNoLCBNZXNoQmFzaWNNYXRlcmlhbCwgVmVjdG9yMyB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHNHaXptb0hlbHBlciB9IGZyb20gJy4vZ2l6bW8taGVscGVyJztcblxudHlwZSBYWVogPSBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG5cbmNvbnN0IGNvbG9ycyA9IHsgYmc6ICcjZjBmMGYwJywgaG92ZXI6ICcjOTk5JywgdGV4dDogJ2JsYWNrJywgc3Ryb2tlOiAnYmxhY2snIH07XG5jb25zdCBkZWZhdWx0RmFjZXMgPSBbJ1JpZ2h0JywgJ0xlZnQnLCAnVG9wJywgJ0JvdHRvbScsICdGcm9udCcsICdCYWNrJ107XG5cbmludGVyZmFjZSBDb21tb25PcHRpb25zIHtcblx0Zm9udDogc3RyaW5nO1xuXHRvcGFjaXR5OiBudW1iZXI7XG5cdGNvbG9yOiBzdHJpbmc7XG5cdGhvdmVyQ29sb3I6IHN0cmluZztcblx0dGV4dENvbG9yOiBzdHJpbmc7XG5cdHN0cm9rZUNvbG9yOiBzdHJpbmc7XG5cdGZhY2VzOiBzdHJpbmdbXTtcbn1cblxuY29uc3QgZGVmYXVsdEZhY2VNYXRlcmlhbE9wdGlvbnM6IENvbW1vbk9wdGlvbnMgPSB7XG5cdGZvbnQ6ICcyMHB4IEludGVyIHZhciwgQXJpYWwsIHNhbnMtc2VyaWYnLFxuXHRmYWNlczogZGVmYXVsdEZhY2VzLFxuXHRjb2xvcjogY29sb3JzLmJnLFxuXHRob3ZlckNvbG9yOiBjb2xvcnMuaG92ZXIsXG5cdHRleHRDb2xvcjogY29sb3JzLnRleHQsXG5cdHN0cm9rZUNvbG9yOiBjb2xvcnMuc3Ryb2tlLFxuXHRvcGFjaXR5OiAxLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAndmlld2N1YmUtZmFjZS1tYXRlcmlhbCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1tZXNoLWJhc2ljLW1hdGVyaWFsXG5cdFx0XHRbYXR0YWNoXT1cIlsnbWF0ZXJpYWwnLCBpbmRleCgpXVwiXG5cdFx0XHRbbWFwXT1cInRleHR1cmUoKVwiXG5cdFx0XHRbY29sb3JdPVwibWF0ZXJpYWxDb2xvcigpXCJcblx0XHRcdFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcblx0XHRcdFtvcGFjaXR5XT1cIm9wYWNpdHkoKVwiXG5cdFx0Lz5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRmFjZU1hdGVyaWFsIHtcblx0aG92ZXIgPSBpbnB1dC5yZXF1aXJlZDxib29sZWFuPigpO1xuXHRpbmRleCA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRGYWNlTWF0ZXJpYWxPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdEZhY2VNYXRlcmlhbE9wdGlvbnMpIH0pO1xuXG5cdHByaXZhdGUgZmFjZXMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2ZhY2VzJyk7XG5cdHByaXZhdGUgZm9udCA9IHBpY2sodGhpcy5vcHRpb25zLCAnZm9udCcpO1xuXHRwcml2YXRlIGNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICdjb2xvcicpO1xuXHRwcml2YXRlIHRleHRDb2xvciA9IHBpY2sodGhpcy5vcHRpb25zLCAndGV4dENvbG9yJyk7XG5cdHByaXZhdGUgc3Ryb2tlQ29sb3IgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3N0cm9rZUNvbG9yJyk7XG5cdHByaXZhdGUgaG92ZXJDb2xvciA9IHBpY2sodGhpcy5vcHRpb25zLCAnaG92ZXJDb2xvcicpO1xuXG5cdHByaXZhdGUgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0cHJpdmF0ZSBnbCA9IHRoaXMuc3RvcmUuc2VsZWN0KCdnbCcpO1xuXG5cdHByb3RlY3RlZCBvcGFjaXR5ID0gcGljayh0aGlzLm9wdGlvbnMsICdvcGFjaXR5Jyk7XG5cdHByb3RlY3RlZCBtYXRlcmlhbENvbG9yID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuaG92ZXIoKSA/IHRoaXMuaG92ZXJDb2xvcigpIDogJ3doaXRlJykpO1xuXHRwcm90ZWN0ZWQgdGV4dHVyZSA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbaW5kZXgsIGZhY2VzLCBmb250LCBjb2xvciwgdGV4dENvbG9yLCBzdHJva2VDb2xvciwgZ2xdID0gW1xuXHRcdFx0dGhpcy5pbmRleCgpLFxuXHRcdFx0dGhpcy5mYWNlcygpLFxuXHRcdFx0dGhpcy5mb250KCksXG5cdFx0XHR0aGlzLmNvbG9yKCksXG5cdFx0XHR0aGlzLnRleHRDb2xvcigpLFxuXHRcdFx0dGhpcy5zdHJva2VDb2xvcigpLFxuXHRcdFx0dGhpcy5nbCgpLFxuXHRcdF07XG5cblx0XHRjb25zdCBjYW52YXMgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuXHRcdGNhbnZhcy53aWR0aCA9IDEyODtcblx0XHRjYW52YXMuaGVpZ2h0ID0gMTI4O1xuXG5cdFx0Y29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpITtcblx0XHRjb250ZXh0LmZpbGxTdHlsZSA9IGNvbG9yO1xuXHRcdGNvbnRleHQuZmlsbFJlY3QoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcblx0XHRjb250ZXh0LnN0cm9rZVN0eWxlID0gc3Ryb2tlQ29sb3I7XG5cdFx0Y29udGV4dC5zdHJva2VSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cdFx0Y29udGV4dC5mb250ID0gZm9udDtcblx0XHRjb250ZXh0LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuXHRcdGNvbnRleHQuZmlsbFN0eWxlID0gdGV4dENvbG9yO1xuXHRcdGNvbnRleHQuZmlsbFRleHQoZmFjZXNbaW5kZXhdLnRvVXBwZXJDYXNlKCksIDY0LCA3Nik7XG5cblx0XHRjb25zdCB0ZXh0dXJlID0gbmV3IENhbnZhc1RleHR1cmUoY2FudmFzKTtcblx0XHR0ZXh0dXJlLmFuaXNvdHJvcHkgPSBnbC5jYXBhYmlsaXRpZXMuZ2V0TWF4QW5pc290cm9weSgpIHx8IDE7XG5cblx0XHRyZXR1cm4gdGV4dHVyZTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgTWVzaEJhc2ljTWF0ZXJpYWwgfSk7XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAndmlld2N1YmUtZmFjZS1jdWJlJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LW1lc2hcblx0XHRcdChwb2ludGVyb3V0KT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaG92ZXIuc2V0KC0xKVwiXG5cdFx0XHQocG9pbnRlcm1vdmUpPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBob3Zlci5zZXQoTWF0aC5mbG9vcigkYW55KCRldmVudCkuZmFjZUluZGV4IC8gMikpXCJcblx0XHRcdChjbGljayk9XCJpbnRlcm5hbE9uQ2xpY2soJGFueSgkZXZlbnQpKVwiXG5cdFx0PlxuXHRcdFx0PG5ndC1ib3gtZ2VvbWV0cnkgLz5cblx0XHRcdEBmb3IgKGZhY2Ugb2YgY291bnQ7IHRyYWNrICRpbmRleCkge1xuXHRcdFx0XHQ8dmlld2N1YmUtZmFjZS1tYXRlcmlhbCBbaW5kZXhdPVwiJGluZGV4XCIgW2hvdmVyXT1cImhvdmVyKCkgPT09ICRpbmRleFwiIFtvcHRpb25zXT1cIm9wdGlvbnMoKVwiIC8+XG5cdFx0XHR9XG5cdFx0PC9uZ3QtbWVzaD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW0ZhY2VNYXRlcmlhbF0sXG59KVxuZXhwb3J0IGNsYXNzIEZhY2VDdWJlIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIFBhcnRpYWw8Q29tbW9uT3B0aW9ucz4pO1xuXHRvbkNsaWNrID0gaW5wdXQ8Tmd0RXZlbnRIYW5kbGVyc1snY2xpY2snXT4oKTtcblxuXHRwcml2YXRlIGdpem1vSGVscGVyID0gaW5qZWN0KE5ndHNHaXptb0hlbHBlcik7XG5cblx0cHJvdGVjdGVkIGhvdmVyID0gc2lnbmFsKC0xKTtcblx0cHJvdGVjdGVkIGNvdW50ID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogNiB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBNZXNoLCBCb3hHZW9tZXRyeSB9KTtcblx0fVxuXG5cdGludGVybmFsT25DbGljayhldmVudDogTmd0VGhyZWVFdmVudDxNb3VzZUV2ZW50Pikge1xuXHRcdGNvbnN0IG9uQ2xpY2sgPSB0aGlzLm9uQ2xpY2soKTtcblx0XHRpZiAob25DbGljaykgb25DbGljayhldmVudCk7XG5cdFx0ZWxzZSB7XG5cdFx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHRcdHRoaXMuZ2l6bW9IZWxwZXIudHdlZW5DYW1lcmEoZXZlbnQuZmFjZSEubm9ybWFsKTtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgTWF0aCA9IE1hdGg7XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ3ZpZXdjdWJlLWVkZ2UtY3ViZScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1tZXNoXG5cdFx0XHRbc2NhbGVdPVwiMS4wMVwiXG5cdFx0XHRbcG9zaXRpb25dPVwicG9zaXRpb24oKVwiXG5cdFx0XHQocG9pbnRlcm91dCk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGhvdmVyLnNldChmYWxzZSlcIlxuXHRcdFx0KHBvaW50ZXJvdmVyKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaG92ZXIuc2V0KHRydWUpXCJcblx0XHRcdChjbGljayk9XCJpbnRlcm5hbE9uQ2xpY2soJGFueSgkZXZlbnQpKVwiXG5cdFx0PlxuXHRcdFx0PG5ndC1tZXNoLWJhc2ljLW1hdGVyaWFsIFt0cmFuc3BhcmVudF09XCJ0cnVlXCIgW29wYWNpdHldPVwiMC42XCIgW2NvbG9yXT1cImNvbG9yKClcIiBbdmlzaWJsZV09XCJob3ZlcigpXCIgLz5cblx0XHRcdDxuZ3QtYm94LWdlb21ldHJ5ICphcmdzPVwiZGltZW5zaW9ucygpXCIgLz5cblx0XHQ8L25ndC1tZXNoPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG59KVxuZXhwb3J0IGNsYXNzIEVkZ2VDdWJlIHtcblx0ZGltZW5zaW9ucyA9IGlucHV0LnJlcXVpcmVkPFhZWj4oKTtcblx0cG9zaXRpb24gPSBpbnB1dC5yZXF1aXJlZDxWZWN0b3IzPigpO1xuXHRob3ZlckNvbG9yID0gaW5wdXQoY29sb3JzLmhvdmVyLCB7XG5cdFx0dHJhbnNmb3JtOiAodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xuXHRcdFx0aWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiBjb2xvcnMuaG92ZXI7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fSxcblx0fSk7XG5cdG9uQ2xpY2sgPSBpbnB1dDxOZ3RFdmVudEhhbmRsZXJzWydjbGljayddPigpO1xuXG5cdHByaXZhdGUgZ2l6bW9IZWxwZXIgPSBpbmplY3QoTmd0c0dpem1vSGVscGVyKTtcblxuXHRwcm90ZWN0ZWQgaG92ZXIgPSBzaWduYWwoZmFsc2UpO1xuXHRwcm90ZWN0ZWQgY29sb3IgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5ob3ZlcigpID8gdGhpcy5ob3ZlckNvbG9yKCkgOiAnd2hpdGUnKSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgTWVzaCwgQm94R2VvbWV0cnksIE1lc2hCYXNpY01hdGVyaWFsIH0pO1xuXHR9XG5cblx0aW50ZXJuYWxPbkNsaWNrKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PE1vdXNlRXZlbnQ+KSB7XG5cdFx0Y29uc3Qgb25DbGljayA9IHRoaXMub25DbGljaygpO1xuXHRcdGlmIChvbkNsaWNrKSBvbkNsaWNrKGV2ZW50KTtcblx0XHRlbHNlIHtcblx0XHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdFx0dGhpcy5naXptb0hlbHBlci50d2VlbkNhbWVyYSh0aGlzLnBvc2l0aW9uKCkpO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgdHlwZSBOZ3RzR2l6bW9WaWV3Y3ViZU9wdGlvbnMgPSBQYXJ0aWFsPENvbW1vbk9wdGlvbnM+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWdpem1vLXZpZXdjdWJlJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWdyb3VwIFtzY2FsZV09XCI2MFwiPlxuXHRcdFx0PHZpZXdjdWJlLWZhY2UtY3ViZSBbb3B0aW9uc109XCJvcHRpb25zKClcIiBbb25DbGlja109XCJvbkNsaWNrXCIgLz5cblx0XHRcdEBmb3IgKGVkZ2Ugb2YgZWRnZXM7IHRyYWNrICRpbmRleCkge1xuXHRcdFx0XHQ8dmlld2N1YmUtZWRnZS1jdWJlXG5cdFx0XHRcdFx0W3Bvc2l0aW9uXT1cImVkZ2VcIlxuXHRcdFx0XHRcdFtkaW1lbnNpb25zXT1cImVkZ2VEaW1lbnNpb25zWyRpbmRleF1cIlxuXHRcdFx0XHRcdFtvbkNsaWNrXT1cIm9uQ2xpY2tcIlxuXHRcdFx0XHRcdFtob3ZlckNvbG9yXT1cImhvdmVyQ29sb3IoKVwiXG5cdFx0XHRcdC8+XG5cdFx0XHR9XG5cdFx0XHRAZm9yIChjb3JuZXIgb2YgY29ybmVyczsgdHJhY2sgJGluZGV4KSB7XG5cdFx0XHRcdDx2aWV3Y3ViZS1lZGdlLWN1YmVcblx0XHRcdFx0XHRbcG9zaXRpb25dPVwiY29ybmVyXCJcblx0XHRcdFx0XHRbZGltZW5zaW9uc109XCJjb3JuZXJEaW1lbnNpb25zXCJcblx0XHRcdFx0XHRbb25DbGlja109XCJvbkNsaWNrXCJcblx0XHRcdFx0XHRbaG92ZXJDb2xvcl09XCJob3ZlckNvbG9yKClcIlxuXHRcdFx0XHQvPlxuXHRcdFx0fVxuXHRcdDwvbmd0LWdyb3VwPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbRmFjZUN1YmUsIEVkZ2VDdWJlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0dpem1vVmlld2N1YmUge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgTmd0c0dpem1vVmlld2N1YmVPcHRpb25zKTtcblx0Y2xpY2sgPSBvdXRwdXQ8Tmd0VGhyZWVFdmVudDxNb3VzZUV2ZW50Pj4oKTtcblxuXHRwcm90ZWN0ZWQgaG92ZXJDb2xvciA9IHBpY2sodGhpcy5vcHRpb25zLCAnaG92ZXJDb2xvcicpO1xuXG5cdHByb3RlY3RlZCBjb3JuZXJzOiBWZWN0b3IzW10gPSBbXG5cdFx0WzEsIDEsIDFdLFxuXHRcdFsxLCAxLCAtMV0sXG5cdFx0WzEsIC0xLCAxXSxcblx0XHRbMSwgLTEsIC0xXSxcblx0XHRbLTEsIDEsIDFdLFxuXHRcdFstMSwgMSwgLTFdLFxuXHRcdFstMSwgLTEsIDFdLFxuXHRcdFstMSwgLTEsIC0xXSxcblx0XS5tYXAodGhpcy5tYWtlUG9zaXRpb25WZWN0b3IpO1xuXHRwcm90ZWN0ZWQgY29ybmVyRGltZW5zaW9uczogWFlaID0gWzAuMjUsIDAuMjUsIDAuMjVdO1xuXHRwcm90ZWN0ZWQgZWRnZXM6IFZlY3RvcjNbXSA9IFtcblx0XHRbMSwgMSwgMF0sXG5cdFx0WzEsIDAsIDFdLFxuXHRcdFsxLCAwLCAtMV0sXG5cdFx0WzEsIC0xLCAwXSxcblx0XHRbMCwgMSwgMV0sXG5cdFx0WzAsIDEsIC0xXSxcblx0XHRbMCwgLTEsIDFdLFxuXHRcdFswLCAtMSwgLTFdLFxuXHRcdFstMSwgMSwgMF0sXG5cdFx0Wy0xLCAwLCAxXSxcblx0XHRbLTEsIDAsIC0xXSxcblx0XHRbLTEsIC0xLCAwXSxcblx0XS5tYXAodGhpcy5tYWtlUG9zaXRpb25WZWN0b3IpO1xuXHRwcm90ZWN0ZWQgZWRnZURpbWVuc2lvbnMgPSB0aGlzLmVkZ2VzLm1hcChcblx0XHQoZWRnZSkgPT4gZWRnZS50b0FycmF5KCkubWFwKChheGlzOiBudW1iZXIpOiBudW1iZXIgPT4gKGF4aXMgPT0gMCA/IDAuNSA6IDAuMjUpKSBhcyBYWVosXG5cdCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgR3JvdXAgfSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgZ2V0IG9uQ2xpY2soKSB7XG5cdFx0aWYgKGhhc0xpc3RlbmVyKHRoaXMuY2xpY2spKSByZXR1cm4gZ2V0RW1pdHRlcih0aGlzLmNsaWNrKTtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0cHJpdmF0ZSBtYWtlUG9zaXRpb25WZWN0b3IoeHl6OiBudW1iZXJbXSkge1xuXHRcdHJldHVybiBuZXcgVmVjdG9yMyguLi54eXopLm11bHRpcGx5U2NhbGFyKDAuMzgpO1xuXHR9XG59XG4iXX0=
304
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8tdmlld2N1YmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvZ2l6bW9zL3NyYy9saWIvZ2l6bW8taGVscGVyL2dpem1vLXZpZXdjdWJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ04sTUFBTSxFQUNOLFVBQVUsRUFDVixXQUFXLEVBQ1gsV0FBVyxFQUNYLE9BQU8sRUFHUCxJQUFJLEdBQ0osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFJakQsTUFBTSxNQUFNLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDaEYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBWXpFLE1BQU0sMEJBQTBCLEdBQThCO0lBQzdELElBQUksRUFBRSxtQ0FBbUM7SUFDekMsS0FBSyxFQUFFLFlBQVk7SUFDbkIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFF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aUI7a0JBNUI3QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBb0JUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztpQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRjb21wdXRlZCxcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0b3V0cHV0LFxuXHRzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0ZXh0ZW5kLFxuXHRnZXRFbWl0dGVyLFxuXHRoYXNMaXN0ZW5lcixcblx0aW5qZWN0U3RvcmUsXG5cdE5ndEFyZ3MsXG5cdE5ndEV2ZW50SGFuZGxlcnMsXG5cdE5ndFRocmVlRXZlbnQsXG5cdHBpY2ssXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgQm94R2VvbWV0cnksIENhbnZhc1RleHR1cmUsIEdyb3VwLCBNZXNoLCBNZXNoQmFzaWNNYXRlcmlhbCwgVmVjdG9yMyB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHNHaXptb0hlbHBlciB9IGZyb20gJy4vZ2l6bW8taGVscGVyJztcblxudHlwZSBYWVogPSBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG5cbmNvbnN0IGNvbG9ycyA9IHsgYmc6ICcjZjBmMGYwJywgaG92ZXI6ICcjOTk5JywgdGV4dDogJ2JsYWNrJywgc3Ryb2tlOiAnYmxhY2snIH07XG5jb25zdCBkZWZhdWx0RmFjZXMgPSBbJ1JpZ2h0JywgJ0xlZnQnLCAnVG9wJywgJ0JvdHRvbScsICdGcm9udCcsICdCYWNrJ107XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c1ZpZXdjdWJlQ29tbW9uT3B0aW9ucyB7XG5cdGZvbnQ6IHN0cmluZztcblx0b3BhY2l0eTogbnVtYmVyO1xuXHRjb2xvcjogc3RyaW5nO1xuXHRob3ZlckNvbG9yOiBzdHJpbmc7XG5cdHRleHRDb2xvcjogc3RyaW5nO1xuXHRzdHJva2VDb2xvcjogc3RyaW5nO1xuXHRmYWNlczogc3RyaW5nW107XG59XG5cbmNvbnN0IGRlZmF1bHRGYWNlTWF0ZXJpYWxPcHRpb25zOiBOZ3RzVmlld2N1YmVDb21tb25PcHRpb25zID0ge1xuXHRmb250OiAnMjBweCBJbnRlciB2YXIsIEFyaWFsLCBzYW5zLXNlcmlmJyxcblx0ZmFjZXM6IGRlZmF1bHRGYWNlcyxcblx0Y29sb3I6IGNvbG9ycy5iZyxcblx0aG92ZXJDb2xvcjogY29sb3JzLmhvdmVyLFxuXHR0ZXh0Q29sb3I6IGNvbG9ycy50ZXh0LFxuXHRzdHJva2VDb2xvcjogY29sb3JzLnN0cm9rZSxcblx0b3BhY2l0eTogMSxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ3ZpZXdjdWJlLWZhY2UtbWF0ZXJpYWwnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtbWVzaC1iYXNpYy1tYXRlcmlhbFxuXHRcdFx0W2F0dGFjaF09XCJbJ21hdGVyaWFsJywgaW5kZXgoKV1cIlxuXHRcdFx0W21hcF09XCJ0ZXh0dXJlKClcIlxuXHRcdFx0W2NvbG9yXT1cIm1hdGVyaWFsQ29sb3IoKVwiXG5cdFx0XHRbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG5cdFx0XHRbb3BhY2l0eV09XCJvcGFjaXR5KClcIlxuXHRcdC8+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZhY2VNYXRlcmlhbCB7XG5cdGhvdmVyID0gaW5wdXQucmVxdWlyZWQ8Ym9vbGVhbj4oKTtcblx0aW5kZXggPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0RmFjZU1hdGVyaWFsT3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRGYWNlTWF0ZXJpYWxPcHRpb25zKSB9KTtcblxuXHRwcml2YXRlIGZhY2VzID0gcGljayh0aGlzLm9wdGlvbnMsICdmYWNlcycpO1xuXHRwcml2YXRlIGZvbnQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2ZvbnQnKTtcblx0cHJpdmF0ZSBjb2xvciA9IHBpY2sodGhpcy5vcHRpb25zLCAnY29sb3InKTtcblx0cHJpdmF0ZSB0ZXh0Q29sb3IgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3RleHRDb2xvcicpO1xuXHRwcml2YXRlIHN0cm9rZUNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICdzdHJva2VDb2xvcicpO1xuXHRwcml2YXRlIGhvdmVyQ29sb3IgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2hvdmVyQ29sb3InKTtcblxuXHRwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdHByaXZhdGUgZ2wgPSB0aGlzLnN0b3JlLnNlbGVjdCgnZ2wnKTtcblxuXHRwcm90ZWN0ZWQgb3BhY2l0eSA9IHBpY2sodGhpcy5vcHRpb25zLCAnb3BhY2l0eScpO1xuXHRwcm90ZWN0ZWQgbWF0ZXJpYWxDb2xvciA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmhvdmVyKCkgPyB0aGlzLmhvdmVyQ29sb3IoKSA6ICd3aGl0ZScpKTtcblx0cHJvdGVjdGVkIHRleHR1cmUgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgW2luZGV4LCBmYWNlcywgZm9udCwgY29sb3IsIHRleHRDb2xvciwgc3Ryb2tlQ29sb3IsIGdsXSA9IFtcblx0XHRcdHRoaXMuaW5kZXgoKSxcblx0XHRcdHRoaXMuZmFjZXMoKSxcblx0XHRcdHRoaXMuZm9udCgpLFxuXHRcdFx0dGhpcy5jb2xvcigpLFxuXHRcdFx0dGhpcy50ZXh0Q29sb3IoKSxcblx0XHRcdHRoaXMuc3Ryb2tlQ29sb3IoKSxcblx0XHRcdHRoaXMuZ2woKSxcblx0XHRdO1xuXG5cdFx0Y29uc3QgY2FudmFzID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcblx0XHRjYW52YXMud2lkdGggPSAxMjg7XG5cdFx0Y2FudmFzLmhlaWdodCA9IDEyODtcblxuXHRcdGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKSE7XG5cdFx0Y29udGV4dC5maWxsU3R5bGUgPSBjb2xvcjtcblx0XHRjb250ZXh0LmZpbGxSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cdFx0Y29udGV4dC5zdHJva2VTdHlsZSA9IHN0cm9rZUNvbG9yO1xuXHRcdGNvbnRleHQuc3Ryb2tlUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xuXHRcdGNvbnRleHQuZm9udCA9IGZvbnQ7XG5cdFx0Y29udGV4dC50ZXh0QWxpZ24gPSAnY2VudGVyJztcblx0XHRjb250ZXh0LmZpbGxTdHlsZSA9IHRleHRDb2xvcjtcblx0XHRjb250ZXh0LmZpbGxUZXh0KGZhY2VzW2luZGV4XS50b1VwcGVyQ2FzZSgpLCA2NCwgNzYpO1xuXG5cdFx0Y29uc3QgdGV4dHVyZSA9IG5ldyBDYW52YXNUZXh0dXJlKGNhbnZhcyk7XG5cdFx0dGV4dHVyZS5hbmlzb3Ryb3B5ID0gZ2wuY2FwYWJpbGl0aWVzLmdldE1heEFuaXNvdHJvcHkoKSB8fCAxO1xuXG5cdFx0cmV0dXJuIHRleHR1cmU7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IE1lc2hCYXNpY01hdGVyaWFsIH0pO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ3ZpZXdjdWJlLWZhY2UtY3ViZScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1tZXNoXG5cdFx0XHQocG9pbnRlcm91dCk9XCIkYW55KCRldmVudCkuc3RvcFByb3BhZ2F0aW9uKCk7IGhvdmVyLnNldCgtMSlcIlxuXHRcdFx0KHBvaW50ZXJtb3ZlKT1cIiRhbnkoJGV2ZW50KS5zdG9wUHJvcGFnYXRpb24oKTsgaG92ZXIuc2V0KE1hdGguZmxvb3IoJGFueSgkZXZlbnQpLmZhY2VJbmRleCAvIDIpKVwiXG5cdFx0XHQoY2xpY2spPVwiaW50ZXJuYWxPbkNsaWNrKCRhbnkoJGV2ZW50KSlcIlxuXHRcdD5cblx0XHRcdDxuZ3QtYm94LWdlb21ldHJ5IC8+XG5cdFx0XHRAZm9yIChmYWNlIG9mIGNvdW50OyB0cmFjayAkaW5kZXgpIHtcblx0XHRcdFx0PHZpZXdjdWJlLWZhY2UtbWF0ZXJpYWwgW2luZGV4XT1cIiRpbmRleFwiIFtob3Zlcl09XCJob3ZlcigpID09PSAkaW5kZXhcIiBbb3B0aW9uc109XCJvcHRpb25zKClcIiAvPlxuXHRcdFx0fVxuXHRcdDwvbmd0LW1lc2g+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtGYWNlTWF0ZXJpYWxdLFxufSlcbmV4cG9ydCBjbGFzcyBGYWNlQ3ViZSB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBQYXJ0aWFsPE5ndHNWaWV3Y3ViZUNvbW1vbk9wdGlvbnM+KTtcblx0b25DbGljayA9IGlucHV0PE5ndEV2ZW50SGFuZGxlcnNbJ2NsaWNrJ10+KCk7XG5cblx0cHJpdmF0ZSBnaXptb0hlbHBlciA9IGluamVjdChOZ3RzR2l6bW9IZWxwZXIpO1xuXG5cdHByb3RlY3RlZCBob3ZlciA9IHNpZ25hbCgtMSk7XG5cdHByb3RlY3RlZCBjb3VudCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDYgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgTWVzaCwgQm94R2VvbWV0cnkgfSk7XG5cdH1cblxuXHRpbnRlcm5hbE9uQ2xpY2soZXZlbnQ6IE5ndFRocmVlRXZlbnQ8TW91c2VFdmVudD4pIHtcblx0XHRjb25zdCBvbkNsaWNrID0gdGhpcy5vbkNsaWNrKCk7XG5cdFx0aWYgKG9uQ2xpY2spIG9uQ2xpY2soZXZlbnQpO1xuXHRcdGVsc2Uge1xuXHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHR0aGlzLmdpem1vSGVscGVyLnR3ZWVuQ2FtZXJhKGV2ZW50LmZhY2UhLm5vcm1hbCk7XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IE1hdGggPSBNYXRoO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICd2aWV3Y3ViZS1lZGdlLWN1YmUnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtbWVzaFxuXHRcdFx0W3NjYWxlXT1cIjEuMDFcIlxuXHRcdFx0W3Bvc2l0aW9uXT1cInBvc2l0aW9uKClcIlxuXHRcdFx0KHBvaW50ZXJvdXQpPVwiJGFueSgkZXZlbnQpLnN0b3BQcm9wYWdhdGlvbigpOyBob3Zlci5zZXQoZmFsc2UpXCJcblx0XHRcdChwb2ludGVyb3Zlcik9XCIkYW55KCRldmVudCkuc3RvcFByb3BhZ2F0aW9uKCk7IGhvdmVyLnNldCh0cnVlKVwiXG5cdFx0XHQoY2xpY2spPVwiaW50ZXJuYWxPbkNsaWNrKCRhbnkoJGV2ZW50KSlcIlxuXHRcdD5cblx0XHRcdDxuZ3QtbWVzaC1iYXNpYy1tYXRlcmlhbCBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiIFtvcGFjaXR5XT1cIjAuNlwiIFtjb2xvcl09XCJjb2xvcigpXCIgW3Zpc2libGVdPVwiaG92ZXIoKVwiIC8+XG5cdFx0XHQ8bmd0LWJveC1nZW9tZXRyeSAqYXJncz1cImRpbWVuc2lvbnMoKVwiIC8+XG5cdFx0PC9uZ3QtbWVzaD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxufSlcbmV4cG9ydCBjbGFzcyBFZGdlQ3ViZSB7XG5cdGRpbWVuc2lvbnMgPSBpbnB1dC5yZXF1aXJlZDxYWVo+KCk7XG5cdHBvc2l0aW9uID0gaW5wdXQucmVxdWlyZWQ8VmVjdG9yMz4oKTtcblx0aG92ZXJDb2xvciA9IGlucHV0KGNvbG9ycy5ob3Zlciwge1xuXHRcdHRyYW5zZm9ybTogKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcblx0XHRcdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gY29sb3JzLmhvdmVyO1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH0sXG5cdH0pO1xuXHRvbkNsaWNrID0gaW5wdXQ8Tmd0RXZlbnRIYW5kbGVyc1snY2xpY2snXT4oKTtcblxuXHRwcml2YXRlIGdpem1vSGVscGVyID0gaW5qZWN0KE5ndHNHaXptb0hlbHBlcik7XG5cblx0cHJvdGVjdGVkIGhvdmVyID0gc2lnbmFsKGZhbHNlKTtcblx0cHJvdGVjdGVkIGNvbG9yID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuaG92ZXIoKSA/IHRoaXMuaG92ZXJDb2xvcigpIDogJ3doaXRlJykpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IE1lc2gsIEJveEdlb21ldHJ5LCBNZXNoQmFzaWNNYXRlcmlhbCB9KTtcblx0fVxuXG5cdGludGVybmFsT25DbGljayhldmVudDogTmd0VGhyZWVFdmVudDxNb3VzZUV2ZW50Pikge1xuXHRcdGNvbnN0IG9uQ2xpY2sgPSB0aGlzLm9uQ2xpY2soKTtcblx0XHRpZiAob25DbGljaykgb25DbGljayhldmVudCk7XG5cdFx0ZWxzZSB7XG5cdFx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHRcdHRoaXMuZ2l6bW9IZWxwZXIudHdlZW5DYW1lcmEodGhpcy5wb3NpdGlvbigpKTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IHR5cGUgTmd0c0dpem1vVmlld2N1YmVPcHRpb25zID0gUGFydGlhbDxOZ3RzVmlld2N1YmVDb21tb25PcHRpb25zPjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1naXptby12aWV3Y3ViZScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1ncm91cCBbc2NhbGVdPVwiNjBcIj5cblx0XHRcdDx2aWV3Y3ViZS1mYWNlLWN1YmUgW29wdGlvbnNdPVwib3B0aW9ucygpXCIgW29uQ2xpY2tdPVwib25DbGlja1wiIC8+XG5cdFx0XHRAZm9yIChlZGdlIG9mIGVkZ2VzOyB0cmFjayAkaW5kZXgpIHtcblx0XHRcdFx0PHZpZXdjdWJlLWVkZ2UtY3ViZVxuXHRcdFx0XHRcdFtwb3NpdGlvbl09XCJlZGdlXCJcblx0XHRcdFx0XHRbZGltZW5zaW9uc109XCJlZGdlRGltZW5zaW9uc1skaW5kZXhdXCJcblx0XHRcdFx0XHRbb25DbGlja109XCJvbkNsaWNrXCJcblx0XHRcdFx0XHRbaG92ZXJDb2xvcl09XCJob3ZlckNvbG9yKClcIlxuXHRcdFx0XHQvPlxuXHRcdFx0fVxuXHRcdFx0QGZvciAoY29ybmVyIG9mIGNvcm5lcnM7IHRyYWNrICRpbmRleCkge1xuXHRcdFx0XHQ8dmlld2N1YmUtZWRnZS1jdWJlXG5cdFx0XHRcdFx0W3Bvc2l0aW9uXT1cImNvcm5lclwiXG5cdFx0XHRcdFx0W2RpbWVuc2lvbnNdPVwiY29ybmVyRGltZW5zaW9uc1wiXG5cdFx0XHRcdFx0W29uQ2xpY2tdPVwib25DbGlja1wiXG5cdFx0XHRcdFx0W2hvdmVyQ29sb3JdPVwiaG92ZXJDb2xvcigpXCJcblx0XHRcdFx0Lz5cblx0XHRcdH1cblx0XHQ8L25ndC1ncm91cD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW0ZhY2VDdWJlLCBFZGdlQ3ViZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNHaXptb1ZpZXdjdWJlIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIFBhcnRpYWw8Tmd0c0dpem1vVmlld2N1YmVPcHRpb25zPik7XG5cdGNsaWNrID0gb3V0cHV0PE5ndFRocmVlRXZlbnQ8TW91c2VFdmVudD4+KCk7XG5cblx0cHJvdGVjdGVkIGhvdmVyQ29sb3IgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2hvdmVyQ29sb3InKTtcblxuXHRwcm90ZWN0ZWQgY29ybmVyczogVmVjdG9yM1tdID0gW1xuXHRcdFsxLCAxLCAxXSxcblx0XHRbMSwgMSwgLTFdLFxuXHRcdFsxLCAtMSwgMV0sXG5cdFx0WzEsIC0xLCAtMV0sXG5cdFx0Wy0xLCAxLCAxXSxcblx0XHRbLTEsIDEsIC0xXSxcblx0XHRbLTEsIC0xLCAxXSxcblx0XHRbLTEsIC0xLCAtMV0sXG5cdF0ubWFwKHRoaXMubWFrZVBvc2l0aW9uVmVjdG9yKTtcblx0cHJvdGVjdGVkIGNvcm5lckRpbWVuc2lvbnM6IFhZWiA9IFswLjI1LCAwLjI1LCAwLjI1XTtcblx0cHJvdGVjdGVkIGVkZ2VzOiBWZWN0b3IzW10gPSBbXG5cdFx0WzEsIDEsIDBdLFxuXHRcdFsxLCAwLCAxXSxcblx0XHRbMSwgMCwgLTFdLFxuXHRcdFsxLCAtMSwgMF0sXG5cdFx0WzAsIDEsIDFdLFxuXHRcdFswLCAxLCAtMV0sXG5cdFx0WzAsIC0xLCAxXSxcblx0XHRbMCwgLTEsIC0xXSxcblx0XHRbLTEsIDEsIDBdLFxuXHRcdFstMSwgMCwgMV0sXG5cdFx0Wy0xLCAwLCAtMV0sXG5cdFx0Wy0xLCAtMSwgMF0sXG5cdF0ubWFwKHRoaXMubWFrZVBvc2l0aW9uVmVjdG9yKTtcblx0cHJvdGVjdGVkIGVkZ2VEaW1lbnNpb25zID0gdGhpcy5lZGdlcy5tYXAoXG5cdFx0KGVkZ2UpID0+IGVkZ2UudG9BcnJheSgpLm1hcCgoYXhpczogbnVtYmVyKTogbnVtYmVyID0+IChheGlzID09IDAgPyAwLjUgOiAwLjI1KSkgYXMgWFlaLFxuXHQpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IEdyb3VwIH0pO1xuXHR9XG5cblx0cHJvdGVjdGVkIGdldCBvbkNsaWNrKCkge1xuXHRcdGlmIChoYXNMaXN0ZW5lcih0aGlzLmNsaWNrKSkgcmV0dXJuIGdldEVtaXR0ZXIodGhpcy5jbGljayk7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdHByaXZhdGUgbWFrZVBvc2l0aW9uVmVjdG9yKHh5ejogbnVtYmVyW10pIHtcblx0XHRyZXR1cm4gbmV3IFZlY3RvcjMoLi4ueHl6KS5tdWx0aXBseVNjYWxhcigwLjM4KTtcblx0fVxufVxuIl19
@@ -18,8 +18,8 @@ export class Axis {
18
18
  this.rotation = input([0, 0, 0]);
19
19
  extend({ Group, Mesh, BoxGeometry, MeshBasicMaterial });
20
20
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: Axis, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.4", type: Axis, isStandalone: true, selector: "viewport-axis", inputs: { scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, rotation: { classPropertyName: "rotation", publicName: "rotation", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: Axis, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: Axis, isStandalone: true, selector: "viewport-axis", inputs: { scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, rotation: { classPropertyName: "rotation", publicName: "rotation", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
23
23
  <ngt-group [rotation]="rotation()">
24
24
  <ngt-mesh [position]="[0.4, 0, 0]">
25
25
  <ngt-box-geometry *args="scale()" />
@@ -28,7 +28,7 @@ export class Axis {
28
28
  </ngt-group>
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.4", ngImport: i0, type: Axis, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: Axis, decorators: [{
32
32
  type: Component,
33
33
  args: [{
34
34
  selector: 'viewport-axis',
@@ -114,8 +114,8 @@ export class AxisHead {
114
114
  event.stopPropagation();
115
115
  this.gizmoHelper.tweenCamera(event.object.position);
116
116
  }
117
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: AxisHead, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
118
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.4", type: AxisHead, isStandalone: true, selector: "viewport-axis-head", inputs: { arcStyle: { classPropertyName: "arcStyle", publicName: "arcStyle", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelColor: { classPropertyName: "labelColor", publicName: "labelColor", isSignal: true, isRequired: false, transformFunction: null }, axisHeadScale: { classPropertyName: "axisHeadScale", publicName: "axisHeadScale", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, font: { classPropertyName: "font", publicName: "font", isSignal: true, isRequired: false, transformFunction: null }, onClick: { classPropertyName: "onClick", publicName: "onClick", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AxisHead, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
118
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: AxisHead, isStandalone: true, selector: "viewport-axis-head", inputs: { arcStyle: { classPropertyName: "arcStyle", publicName: "arcStyle", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelColor: { classPropertyName: "labelColor", publicName: "labelColor", isSignal: true, isRequired: false, transformFunction: null }, axisHeadScale: { classPropertyName: "axisHeadScale", publicName: "axisHeadScale", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, font: { classPropertyName: "font", publicName: "font", isSignal: true, isRequired: false, transformFunction: null }, onClick: { classPropertyName: "onClick", publicName: "onClick", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
119
119
  <ngt-sprite
120
120
  [scale]="scale()"
121
121
  [position]="position()"
@@ -127,7 +127,7 @@ export class AxisHead {
127
127
  </ngt-sprite>
128
128
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
129
129
  }
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: AxisHead, decorators: [{
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AxisHead, decorators: [{
131
131
  type: Component,
132
132
  args: [{
133
133
  selector: 'viewport-axis-head',
@@ -189,8 +189,8 @@ export class NgtsGizmoViewport {
189
189
  return getEmitter(this.click);
190
190
  return undefined;
191
191
  }
192
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsGizmoViewport, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
193
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtsGizmoViewport, isStandalone: true, selector: "ngts-gizmo-viewport", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click" }, ngImport: i0, template: `
192
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsGizmoViewport, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
193
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: NgtsGizmoViewport, isStandalone: true, selector: "ngts-gizmo-viewport", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click" }, ngImport: i0, template: `
194
194
  <ngt-group [scale]="40" [parameters]="parameters()">
195
195
  <viewport-axis [color]="axisColors()[0]" [rotation]="[0, 0, 0]" [scale]="axisScale()" />
196
196
  <viewport-axis [color]="axisColors()[1]" [rotation]="[0, 0, Math.PI / 2]" [scale]="axisScale()" />
@@ -255,7 +255,7 @@ export class NgtsGizmoViewport {
255
255
  </ngt-group>
256
256
  `, isInline: true, dependencies: [{ kind: "component", type: Axis, selector: "viewport-axis", inputs: ["scale", "color", "rotation"] }, { kind: "component", type: AxisHead, selector: "viewport-axis-head", inputs: ["arcStyle", "position", "label", "labelColor", "axisHeadScale", "disabled", "font", "onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
257
257
  }
258
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsGizmoViewport, decorators: [{
258
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsGizmoViewport, decorators: [{
259
259
  type: Component,
260
260
  args: [{
261
261
  selector: 'ngts-gizmo-viewport',
@@ -124,8 +124,8 @@ export class NgtsAxisArrow {
124
124
  event.stopPropagation();
125
125
  this.hovered.set(false);
126
126
  }
127
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsAxisArrow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
128
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtsAxisArrow, isStandalone: true, selector: "ngts-axis-arrow", inputs: { direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: true, transformFunction: null }, axis: { classPropertyName: "axis", publicName: "axis", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "annotationRef", first: true, predicate: ["annotation"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: `
127
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsAxisArrow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
128
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: NgtsAxisArrow, isStandalone: true, selector: "ngts-axis-arrow", inputs: { direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: true, transformFunction: null }, axis: { classPropertyName: "axis", publicName: "axis", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "annotationRef", first: true, predicate: ["annotation"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: `
129
129
  <ngt-group #group>
130
130
  <ngt-group
131
131
  [matrix]="matrixL()"
@@ -189,7 +189,7 @@ export class NgtsAxisArrow {
189
189
  </ngt-group>
190
190
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "component", type: NgtsLine, selector: "ngts-line", inputs: ["points", "options"] }, { kind: "component", type: NgtsHTML, selector: "ngts-html", inputs: ["options"] }, { kind: "component", type: NgtsHTMLContent, selector: "[ngtsHTMLContent]", inputs: ["ngtsHTMLContent"], outputs: ["occluded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
191
191
  }
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsAxisArrow, decorators: [{
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsAxisArrow, decorators: [{
193
193
  type: Component,
194
194
  args: [{
195
195
  selector: 'ngts-axis-arrow',
@@ -163,8 +163,8 @@ export class NgtsAxisRotator {
163
163
  event.stopPropagation();
164
164
  this.hovered.set(false);
165
165
  }
166
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsAxisRotator, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
167
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtsAxisRotator, isStandalone: true, selector: "ngts-axis-rotator", inputs: { dir1: { classPropertyName: "dir1", publicName: "dir1", isSignal: true, isRequired: true, transformFunction: null }, dir2: { classPropertyName: "dir2", publicName: "dir2", isSignal: true, isRequired: true, transformFunction: null }, axis: { classPropertyName: "axis", publicName: "axis", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "annotationRef", first: true, predicate: ["annotation"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: `
166
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsAxisRotator, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
167
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: NgtsAxisRotator, isStandalone: true, selector: "ngts-axis-rotator", inputs: { dir1: { classPropertyName: "dir1", publicName: "dir1", isSignal: true, isRequired: true, transformFunction: null }, dir2: { classPropertyName: "dir2", publicName: "dir2", isSignal: true, isRequired: true, transformFunction: null }, axis: { classPropertyName: "axis", publicName: "axis", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "annotationRef", first: true, predicate: ["annotation"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: `
168
168
  <ngt-group
169
169
  #group
170
170
  [matrix]="matrixL()"
@@ -208,7 +208,7 @@ export class NgtsAxisRotator {
208
208
  </ngt-group>
209
209
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line", inputs: ["points", "options"] }, { kind: "component", type: NgtsHTML, selector: "ngts-html", inputs: ["options"] }, { kind: "component", type: NgtsHTMLContent, selector: "[ngtsHTMLContent]", inputs: ["ngtsHTMLContent"], outputs: ["occluded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
210
210
  }
211
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsAxisRotator, decorators: [{
211
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsAxisRotator, decorators: [{
212
212
  type: Component,
213
213
  args: [{
214
214
  selector: 'ngts-axis-rotator',
@@ -218,8 +218,8 @@ export class NgtsPivotControls {
218
218
  this.dragEnded.emit();
219
219
  this.store.snapshot.invalidate();
220
220
  }
221
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPivotControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
222
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtsPivotControls, isStandalone: true, selector: "ngts-pivot-controls", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dragStarted: "dragStarted", dragEnded: "dragEnded", dragged: "dragged" }, viewQueries: [{ propertyName: "parentRef", first: true, predicate: ["parent"], descendants: true, isSignal: true }, { propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "gizmoRef", first: true, predicate: ["gizmo"], descendants: true, isSignal: true }, { propertyName: "childrenRef", first: true, predicate: ["children"], descendants: true, isSignal: true }], ngImport: i0, template: `
221
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsPivotControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
222
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: NgtsPivotControls, isStandalone: true, selector: "ngts-pivot-controls", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dragStarted: "dragStarted", dragEnded: "dragEnded", dragged: "dragged" }, viewQueries: [{ propertyName: "parentRef", first: true, predicate: ["parent"], descendants: true, isSignal: true }, { propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "gizmoRef", first: true, predicate: ["gizmo"], descendants: true, isSignal: true }, { propertyName: "childrenRef", first: true, predicate: ["children"], descendants: true, isSignal: true }], ngImport: i0, template: `
223
223
  <ngt-group #parent>
224
224
  <ngt-group #group [matrix]="matrix()" [matrixAutoUpdate]="false" [parameters]="parameters()">
225
225
  <ngt-group #gizmo [visible]="visible()" [position]="offset()" [rotation]="rotation()">
@@ -272,7 +272,7 @@ export class NgtsPivotControls {
272
272
  </ngt-group>
273
273
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsAxisArrow, selector: "ngts-axis-arrow", inputs: ["direction", "axis"] }, { kind: "component", type: NgtsPlaneSlider, selector: "ngts-plane-slider", inputs: ["dir1", "dir2", "axis"] }, { kind: "component", type: NgtsAxisRotator, selector: "ngts-axis-rotator", inputs: ["dir1", "dir2", "axis"] }, { kind: "component", type: NgtsScalingSphere, selector: "ngts-scaling-sphere", inputs: ["direction", "axis"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
274
274
  }
275
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPivotControls, decorators: [{
275
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsPivotControls, decorators: [{
276
276
  type: Component,
277
277
  args: [{
278
278
  selector: 'ngts-pivot-controls',