angular-three-soba 2.3.2 → 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 (94) 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 +12 -12
  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 +45 -45
  81. package/fesm2022/angular-three-soba-loaders.mjs +3 -3
  82. package/fesm2022/angular-three-soba-materials.mjs +21 -21
  83. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  84. package/fesm2022/angular-three-soba-misc.mjs +24 -24
  85. package/fesm2022/angular-three-soba-performances.mjs +30 -30
  86. package/fesm2022/angular-three-soba-staging.mjs +90 -90
  87. package/fesm2022/angular-three-soba-stats.mjs +3 -3
  88. package/materials/lib/custom-shader-material.d.ts +2 -2
  89. package/materials/lib/mesh-transmission-material.d.ts +2 -3
  90. package/misc/lib/computed-attribute.d.ts +0 -4
  91. package/package.json +8 -8
  92. package/staging/lib/center.d.ts +4 -4
  93. package/staging/lib/lightformer.d.ts +3 -3
  94. package/staging/lib/stage.d.ts +3 -3
@@ -249,14 +249,14 @@ export class NgtsMeshReflectorMaterial {
249
249
  projectionMatrix.elements[10] = this.clipPlane.z + 1.0;
250
250
  projectionMatrix.elements[14] = this.clipPlane.w;
251
251
  }
252
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsMeshReflectorMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
253
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsMeshReflectorMaterial, isStandalone: true, selector: "ngts-mesh-reflector-material", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "materialRef", first: true, predicate: ["material"], descendants: true, isSignal: true }], ngImport: i0, template: `
252
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsMeshReflectorMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
253
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsMeshReflectorMaterial, isStandalone: true, selector: "ngts-mesh-reflector-material", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "materialRef", first: true, predicate: ["material"], descendants: true, isSignal: true }], ngImport: i0, template: `
254
254
  <ngt-primitive #material *args="[material()]" [attach]="attach()">
255
255
  <ng-content />
256
256
  </ngt-primitive>
257
257
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
258
258
  }
259
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsMeshReflectorMaterial, decorators: [{
259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsMeshReflectorMaterial, decorators: [{
260
260
  type: Component,
261
261
  args: [{
262
262
  selector: 'ngts-mesh-reflector-material',
@@ -97,8 +97,8 @@ export class NgtsMeshRefractionMaterial {
97
97
  }
98
98
  });
99
99
  }
100
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsMeshRefractionMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
101
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsMeshRefractionMaterial, isStandalone: true, selector: "ngts-mesh-refraction-material", inputs: { envMap: { classPropertyName: "envMap", publicName: "envMap", isSignal: true, isRequired: true, transformFunction: null }, attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "materialRef", first: true, predicate: ["material"], descendants: true, isSignal: true }], ngImport: i0, template: `
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsMeshRefractionMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
101
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsMeshRefractionMaterial, isStandalone: true, selector: "ngts-mesh-refraction-material", inputs: { envMap: { classPropertyName: "envMap", publicName: "envMap", isSignal: true, isRequired: true, transformFunction: null }, attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "materialRef", first: true, predicate: ["material"], descendants: true, isSignal: true }], ngImport: i0, template: `
102
102
  <ngt-primitive
103
103
  *args="[material()]"
104
104
  #material
@@ -113,7 +113,7 @@ export class NgtsMeshRefractionMaterial {
113
113
  </ngt-primitive>
114
114
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
115
115
  }
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsMeshRefractionMaterial, decorators: [{
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsMeshRefractionMaterial, decorators: [{
117
117
  type: Component,
118
118
  args: [{
119
119
  selector: 'ngts-mesh-refraction-material',
@@ -141,8 +141,8 @@ export class NgtsMeshTransmissionMaterial {
141
141
  }
142
142
  });
143
143
  }
144
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsMeshTransmissionMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
145
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsMeshTransmissionMaterial, isStandalone: true, selector: "ngts-mesh-transmission-material", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "materialRef", first: true, predicate: ["material"], descendants: true, isSignal: true }], ngImport: i0, template: `
144
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsMeshTransmissionMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
145
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsMeshTransmissionMaterial, isStandalone: true, selector: "ngts-mesh-transmission-material", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "materialRef", first: true, predicate: ["material"], descendants: true, isSignal: true }], ngImport: i0, template: `
146
146
  <ngt-primitive
147
147
  *args="[material()]"
148
148
  #material
@@ -159,7 +159,7 @@ export class NgtsMeshTransmissionMaterial {
159
159
  </ngt-primitive>
160
160
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
161
161
  }
162
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsMeshTransmissionMaterial, decorators: [{
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsMeshTransmissionMaterial, decorators: [{
163
163
  type: Component,
164
164
  args: [{
165
165
  selector: 'ngts-mesh-transmission-material',
@@ -185,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
185
185
  imports: [NgtArgs],
186
186
  }]
187
187
  }], ctorParameters: () => [] });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbWF0ZXJpYWxzL3NyYy9saWIvbWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixVQUFVLEVBRVYsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTixhQUFhLEVBQ2Isa0JBQWtCLEVBRWxCLE9BQU8sRUFHUCxJQUFJLEVBQ0osSUFBSSxHQUNKLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBUyxTQUFTLEVBQVEsYUFBYSxFQUF3QixNQUFNLE9BQU8sQ0FBQzs7QUE0QjlGLE1BQU0sY0FBYyxHQUF3QztJQUMzRCxtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsSUFBSSxFQUFFLFNBQVM7SUFDZixZQUFZLEVBQUUsQ0FBQztJQUNmLFNBQVMsRUFBRSxDQUFDO0lBQ1osaUJBQWlCLEVBQUUsQ0FBQztJQUNwQix1QkFBdUIsRUFBRSxDQUFDO0lBQzFCLE9BQU8sRUFBRSxFQUFFO0NBQ1gsQ0FBQztBQXlCRixNQUFNLE9BQU8sNEJBQTRCO0lBNkR4QztRQTVEQSxXQUFNLEdBQUcsS0FBSyxDQUFnQixVQUFVLENBQUMsQ0FBQztRQUMxQyxZQUFPLEdBQUcsS0FBSyxDQUFDLGNB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RUFlVCw0REFHUyxPQUFPOzsyRkFFTCw0QkFBNEI7a0JBdkJ4QyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxpQ0FBaUM7b0JBQzNDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztFQWVUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHREZXN0cm95UmVmLFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHR1bnRyYWNrZWQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuXHRnZXRMb2NhbFN0YXRlLFxuXHRpbmplY3RCZWZvcmVSZW5kZXIsXG5cdE5ndEFueVJlY29yZCxcblx0Tmd0QXJncyxcblx0Tmd0QXR0YWNoYWJsZSxcblx0Tmd0TWVzaFBoeXNpY2FsTWF0ZXJpYWwsXG5cdG9taXQsXG5cdHBpY2ssXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0RkJPIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL21pc2MnO1xuaW1wb3J0IHsgTWVzaERpc2NhcmRNYXRlcmlhbCwgTWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL3ZhbmlsbGEtZXhwb3J0cyc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBCYWNrU2lkZSwgQ29sb3IsIEZyb250U2lkZSwgTWVzaCwgTm9Ub25lTWFwcGluZywgVGV4dHVyZSwgVG9uZU1hcHBpbmcgfSBmcm9tICd0aHJlZSc7XG5cbnR5cGUgTWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsT3B0aW9ucyA9IENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgTWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsPlswXTtcblxuZXhwb3J0IHR5cGUgTmd0c01lc2hUcmFuc21pc3Npb25NYXRlcmlhbE9wdGlvbnMgPSBQYXJ0aWFsPE5ndE1lc2hQaHlzaWNhbE1hdGVyaWFsPiAmXG5cdE9taXQ8TWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsT3B0aW9ucywgJ2J1ZmZlcicgfCAnYW5pc290cm9waWNCbHVyJz4gJiB7XG5cdFx0YW5pc290cm9waWNCbHVyPzogbnVtYmVyO1xuXHRcdGJ1ZmZlcj86IFRleHR1cmU7XG5cdFx0LyoqIHRyYW5zbWlzc2lvblNhbXBsZXIsIHlvdSBjYW4gdXNlIHRoZSB0aHJlZWpzIHRyYW5zbWlzc2lvbiBzYW1wbGVyIHRleHR1cmUgdGhhdCBpc1xuXHRcdCAqICBnZW5lcmF0ZWQgb25jZSBmb3IgYWxsIHRyYW5zbWlzc2l2ZSBtYXRlcmlhbHMuIFRoZSB1cHNpZGUgaXMgdGhhdCBpdCBjYW4gYmUgZmFzdGVyIGlmIHlvdVxuXHRcdCAqICB1c2UgbXVsdGlwbGUgTWVzaFBoeXNpY2FsIGFuZCBUcmFuc21pc3Npb24gbWF0ZXJpYWxzLCB0aGUgZG93bnNpZGUgaXMgdGhhdCB0cmFuc21pc3NpdmUgbWF0ZXJpYWxzXG5cdFx0ICogIHVzaW5nIHRoaXMgY2FuJ3Qgc2VlIG90aGVyIHRyYW5zcGFyZW50IG9yIHRyYW5zbWlzc2l2ZSBvYmplY3RzLCBkZWZhdWx0OiBmYWxzZSAqL1xuXHRcdHRyYW5zbWlzc2lvblNhbXBsZXI6IGJvb2xlYW47XG5cdFx0LyoqIFJlbmRlciB0aGUgYmFja3NpZGUgb2YgdGhlIG1hdGVyaWFsIChtb3JlIGNvc3QsIGJldHRlciByZXN1bHRzKSwgZGVmYXVsdDogZmFsc2UgKi9cblx0XHRiYWNrc2lkZTogYm9vbGVhbjtcblx0XHQvKiogQmFja3NpZGUgdGhpY2tuZXNzICh3aGVuIGJhY2tzaWRlIGlzIHRydWUpLCBkZWZhdWx0OiAwICovXG5cdFx0YmFja3NpZGVUaGlja25lc3M6IG51bWJlcjtcblx0XHRiYWNrc2lkZUVudk1hcEludGVuc2l0eTogbnVtYmVyO1xuXHRcdC8qKiBSZXNvbHV0aW9uIG9mIHRoZSBsb2NhbCBidWZmZXIsIGRlZmF1bHQ6IHVuZGVmaW5lZCAoZnVsbHNjcmVlbikgKi9cblx0XHRyZXNvbHV0aW9uPzogbnVtYmVyO1xuXHRcdC8qKiBSZXNvbHV0aW9uIG9mIHRoZSBsb2NhbCBidWZmZXIgZm9yIGJhY2tmYWNlcywgZGVmYXVsdDogdW5kZWZpbmVkIChmdWxsc2NyZWVuKSAqL1xuXHRcdGJhY2tzaWRlUmVzb2x1dGlvbj86IG51bWJlcjtcblx0XHQvKiogUmVmcmFjdGlvbiBzYW1wbGVzLCBkZWZhdWx0OiA2ICovXG5cdFx0c2FtcGxlczogbnVtYmVyO1xuXHRcdC8qKiBCdWZmZXIgc2NlbmUgYmFja2dyb3VuZCAoY2FuIGJlIGEgdGV4dHVyZSwgYSBjdWJldGV4dHVyZSBvciBhIGNvbG9yKSwgZGVmYXVsdDogbnVsbCAqL1xuXHRcdGJhY2tncm91bmQ/OiBUZXh0dXJlIHwgQ29sb3I7XG5cdH07XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RzTWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsT3B0aW9ucyA9IHtcblx0dHJhbnNtaXNzaW9uU2FtcGxlcjogZmFsc2UsXG5cdGJhY2tzaWRlOiBmYWxzZSxcblx0c2lkZTogRnJvbnRTaWRlLFxuXHR0cmFuc21pc3Npb246IDEsXG5cdHRoaWNrbmVzczogMCxcblx0YmFja3NpZGVUaGlja25lc3M6IDAsXG5cdGJhY2tzaWRlRW52TWFwSW50ZW5zaXR5OiAxLFxuXHRzYW1wbGVzOiAxMCxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtbWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlXG5cdFx0XHQqYXJncz1cIlttYXRlcmlhbCgpXVwiXG5cdFx0XHQjbWF0ZXJpYWxcblx0XHRcdFthdHRhY2hdPVwiYXR0YWNoKClcIlxuXHRcdFx0W3BhcmFtZXRlcnNdPVwicGFyYW1ldGVycygpXCJcblx0XHRcdFtfdHJhbnNtaXNzaW9uXT1cInRyYW5zbWlzc2lvbigpXCJcblx0XHRcdFt0cmFuc21pc3Npb25dPVwidHJhbnNtaXNzaW9uU2FtcGxlcigpID8gdHJhbnNtaXNzaW9uKCkgOiAwXCJcblx0XHRcdFtidWZmZXJdPVwiYnVmZmVyVGV4dHVyZSgpXCJcblx0XHRcdFthbmlzb3Ryb3BpY0JsdXJdPVwiYW5pc290cm9waWNCbHVyT3B0aW9uKClcIlxuXHRcdFx0W3NpZGVdPVwic2lkZSgpXCJcblx0XHRcdFt0aGlja25lc3NdPVwidGhpY2tuZXNzKClcIlxuXHRcdD5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtcHJpbWl0aXZlPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNNZXNoVHJhbnNtaXNzaW9uTWF0ZXJpYWwge1xuXHRhdHRhY2ggPSBpbnB1dDxOZ3RBdHRhY2hhYmxlPignbWF0ZXJpYWwnKTtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXHRwYXJhbWV0ZXJzID0gb21pdCh0aGlzLm9wdGlvbnMsIFtcblx0XHQnYnVmZmVyJyxcblx0XHQndHJhbnNtaXNzaW9uU2FtcGxlcicsXG5cdFx0J2JhY2tzaWRlJyxcblx0XHQnc2lkZScsXG5cdFx0J3RyYW5zbWlzc2lvbicsXG5cdFx0J3RoaWNrbmVzcycsXG5cdFx0J2JhY2tzaWRlVGhpY2tuZXNzJyxcblx0XHQnYmFja3NpZGVFbnZNYXBJbnRlbnNpdHknLFxuXHRcdCdzYW1wbGVzJyxcblx0XHQncmVzb2x1dGlvbicsXG5cdFx0J2JhY2tzaWRlUmVzb2x1dGlvbicsXG5cdFx0J2JhY2tncm91bmQnLFxuXHRcdCdhbmlzb3Ryb3B5Jyxcblx0XHQnYW5pc290cm9waWNCbHVyJyxcblx0XSk7XG5cblx0cHJpdmF0ZSByZXNvbHV0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICdyZXNvbHV0aW9uJyk7XG5cdHByaXZhdGUgYmFja3NpZGVSZXNvbHV0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICdiYWNrc2lkZVJlc29sdXRpb24nKTtcblx0cHJpdmF0ZSBzYW1wbGVzID0gcGljayh0aGlzLm9wdGlvbnMsICdzYW1wbGVzJyk7XG5cdHByaXZhdGUgYnVmZmVyID0gcGljayh0aGlzLm9wdGlvbnMsICdidWZmZXInKTtcblx0cHJpdmF0ZSBhbmlzb3Ryb3B5ID0gcGljayh0aGlzLm9wdGlvbnMsICdhbmlzb3Ryb3B5Jyk7XG5cdHByaXZhdGUgYW5pc290cm9waWNCbHVyID0gcGljayh0aGlzLm9wdGlvbnMsICdhbmlzb3Ryb3BpY0JsdXInKTtcblx0cHJpdmF0ZSBiYWNrZ3JvdW5kID0gcGljayh0aGlzLm9wdGlvbnMsICdiYWNrZ3JvdW5kJyk7XG5cdHByaXZhdGUgYmFja3NpZGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2JhY2tzaWRlJyk7XG5cdHByaXZhdGUgYmFja3NpZGVUaGlja25lc3MgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2JhY2tzaWRlVGhpY2tuZXNzJyk7XG5cdHByaXZhdGUgYmFja3NpZGVFbnZNYXBJbnRlbnNpdHkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2JhY2tzaWRlRW52TWFwSW50ZW5zaXR5Jyk7XG5cblx0dHJhbnNtaXNzaW9uU2FtcGxlciA9IHBpY2sodGhpcy5vcHRpb25zLCAndHJhbnNtaXNzaW9uU2FtcGxlcicpO1xuXHR0cmFuc21pc3Npb24gPSBwaWNrKHRoaXMub3B0aW9ucywgJ3RyYW5zbWlzc2lvbicpO1xuXHR0aGlja25lc3MgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3RoaWNrbmVzcycpO1xuXHRzaWRlID0gcGljayh0aGlzLm9wdGlvbnMsICdzaWRlJyk7XG5cblx0bWF0ZXJpYWxSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxNZXNoVHJhbnNtaXNzaW9uTWF0ZXJpYWwgJiBNZXNoVHJhbnNtaXNzaW9uTWF0ZXJpYWxPcHRpb25zPj4oJ21hdGVyaWFsJyk7XG5cblx0cHJpdmF0ZSBiYWNrUmVzb2x1dGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYmFja3NpZGVSZXNvbHV0aW9uKCkgfHwgdGhpcy5yZXNvbHV0aW9uKCkpO1xuXG5cdHByaXZhdGUgZmJvQmFjayA9IGluamVjdEZCTygoKSA9PiAoeyB3aWR0aDogdGhpcy5iYWNrUmVzb2x1dGlvbigpIH0pKTtcblx0cHJpdmF0ZSBmYm9NYWluID0gaW5qZWN0RkJPKCgpID0+ICh7IHdpZHRoOiB0aGlzLnJlc29sdXRpb24oKSB9KSk7XG5cblx0YnVmZmVyVGV4dHVyZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYnVmZmVyKCkgfHwgdGhpcy5mYm9NYWluKCkudGV4dHVyZSk7XG5cdGFuaXNvdHJvcGljQmx1ck9wdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYW5pc290cm9waWNCbHVyKCkgfHwgdGhpcy5hbmlzb3Ryb3B5KCkpO1xuXG5cdHByaXZhdGUgZGlzY2FyZE1hdGVyaWFsID0gbmV3IE1lc2hEaXNjYXJkTWF0ZXJpYWwoKTtcblxuXHRtYXRlcmlhbCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBwcmV2aW91c01hdGVyaWFsID0gdW50cmFja2VkKHRoaXMubWF0ZXJpYWxSZWYpPy5uYXRpdmVFbGVtZW50O1xuXG5cdFx0aWYgKHByZXZpb3VzTWF0ZXJpYWwpIHtcblx0XHRcdHByZXZpb3VzTWF0ZXJpYWwuZGlzcG9zZSgpO1xuXHRcdFx0ZGVsZXRlIChwcmV2aW91c01hdGVyaWFsIGFzIE5ndEFueVJlY29yZClbJ19fbmd0X18nXTtcblx0XHRcdGRlbGV0ZSAocHJldmlvdXNNYXRlcmlhbCBhcyBOZ3RBbnlSZWNvcmQpWydfX25ndF9yZW5kZXJlcl9fJ107XG5cdFx0fVxuXG5cdFx0Y29uc3QgW3NhbXBsZXMsIHRyYW5zbWlzc2lvblNhbXBsZXJdID0gW3RoaXMuc2FtcGxlcygpLCB0aGlzLnRyYW5zbWlzc2lvblNhbXBsZXIoKV07XG5cdFx0cmV0dXJuIG5ldyBNZXNoVHJhbnNtaXNzaW9uTWF0ZXJpYWwoeyBzYW1wbGVzLCB0cmFuc21pc3Npb25TYW1wbGVyIH0pO1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcblx0XHRcdGNvbnN0IG1hdGVyaWFsID0gdGhpcy5tYXRlcmlhbFJlZigpPy5uYXRpdmVFbGVtZW50O1xuXHRcdFx0aWYgKG1hdGVyaWFsKSB7XG5cdFx0XHRcdG1hdGVyaWFsLmRpc3Bvc2UoKTtcblx0XHRcdFx0ZGVsZXRlIChtYXRlcmlhbCBhcyBOZ3RBbnlSZWNvcmQpWydfX25ndF9fJ107XG5cdFx0XHRcdGRlbGV0ZSAobWF0ZXJpYWwgYXMgTmd0QW55UmVjb3JkKVsnX19uZ3RfcmVuZGVyZXJfXyddO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0bGV0IG9sZEJnOiBUZXh0dXJlIHwgQ29sb3IgfCBudWxsO1xuXHRcdGxldCBvbGRFbnZNYXBJbnRlbnNpdHk6IG51bWJlciB8IHVuZGVmaW5lZDtcblx0XHRsZXQgb2xkVG9uZTogVG9uZU1hcHBpbmcgfCB1bmRlZmluZWQ7XG5cdFx0bGV0IHBhcmVudDogTWVzaCB8IHVuZGVmaW5lZDtcblx0XHRpbmplY3RCZWZvcmVSZW5kZXIoKHsgY2xvY2ssIGdsLCBzY2VuZSwgY2FtZXJhIH0pID0+IHtcblx0XHRcdGNvbnN0IG1hdGVyaWFsID0gdGhpcy5tYXRlcmlhbFJlZigpPy5uYXRpdmVFbGVtZW50O1xuXHRcdFx0aWYgKCFtYXRlcmlhbCkgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBbXG5cdFx0XHRcdGZib01haW4sXG5cdFx0XHRcdGZib0JhY2ssXG5cdFx0XHRcdHRyYW5zbWlzc2lvblNhbXBsZXIsXG5cdFx0XHRcdGJhY2tncm91bmQsXG5cdFx0XHRcdGJhY2tzaWRlLFxuXHRcdFx0XHRiYWNrc2lkZVRoaWNrbmVzcyxcblx0XHRcdFx0YmFja3NpZGVFbnZNYXBJbnRlbnNpdHksXG5cdFx0XHRcdHRoaWNrbmVzcyxcblx0XHRcdFx0c2lkZSxcblx0XHRcdF0gPSBbXG5cdFx0XHRcdHRoaXMuZmJvTWFpbigpLFxuXHRcdFx0XHR0aGlzLmZib0JhY2soKSxcblx0XHRcdFx0dGhpcy50cmFuc21pc3Npb25TYW1wbGVyKCksXG5cdFx0XHRcdHRoaXMuYmFja2dyb3VuZCgpLFxuXHRcdFx0XHR0aGlzLmJhY2tzaWRlKCksXG5cdFx0XHRcdHRoaXMuYmFja3NpZGVUaGlja25lc3MoKSxcblx0XHRcdFx0dGhpcy5iYWNrc2lkZUVudk1hcEludGVuc2l0eSgpLFxuXHRcdFx0XHR0aGlzLnRoaWNrbmVzcygpLFxuXHRcdFx0XHR0aGlzLnNpZGUoKSxcblx0XHRcdF07XG5cblx0XHRcdG1hdGVyaWFsLnRpbWUgPSBjbG9jay5nZXRFbGFwc2VkVGltZSgpO1xuXHRcdFx0Ly8gUmVuZGVyIG9ubHkgaWYgdGhlIGJ1ZmZlciBtYXRjaGVzIHRoZSBidWlsdC1pbiBhbmQgbm8gdHJhbnNtaXNzaW9uIHNhbXBsZXIgaXMgc2V0XG5cdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gd2Uga25vdyBtYXRlcmlhbC5idWZmZXIgaXMgbm90IGp1c3QgdW5kZWZpbmVkIHwgbnVsbFxuXHRcdFx0aWYgKG1hdGVyaWFsLmJ1ZmZlciA9PT0gZmJvTWFpbi50ZXh0dXJlICYmICF0cmFuc21pc3Npb25TYW1wbGVyKSB7XG5cdFx0XHRcdHBhcmVudCA9IGdldExvY2FsU3RhdGUobWF0ZXJpYWwpPy5wYXJlbnQoKSBhcyBNZXNoO1xuXG5cdFx0XHRcdGlmIChwYXJlbnQpIHtcblx0XHRcdFx0XHQvLyBTYXZlIGRlZmF1bHRzXG5cdFx0XHRcdFx0b2xkVG9uZSA9IGdsLnRvbmVNYXBwaW5nO1xuXHRcdFx0XHRcdG9sZEJnID0gc2NlbmUuYmFja2dyb3VuZDtcblx0XHRcdFx0XHRvbGRFbnZNYXBJbnRlbnNpdHkgPSBtYXRlcmlhbC5lbnZNYXBJbnRlbnNpdHk7XG5cblx0XHRcdFx0XHQvLyBTd2l0Y2ggb2ZmIHRvbmVtYXBwaW5nIGxlc3QgaXQgZG91YmxlIHRvbmUgbWFwc1xuXHRcdFx0XHRcdC8vIFNhdmUgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBhbmQgc2V0IHRoZSBIRFIgYXMgdGhlIG5ldyBCR1xuXHRcdFx0XHRcdC8vIFVzZSBkaXNjYXJkbWF0ZXJpYWwsIHRoZSBwYXJlbnQgd2lsbCBiZSBpbnZpc2libGUsIGJ1dCBpdCdzIHNoYWRvd3Mgd2lsbCBzdGlsbCBiZSBjYXN0XG5cdFx0XHRcdFx0Z2wudG9uZU1hcHBpbmcgPSBOb1RvbmVNYXBwaW5nO1xuXHRcdFx0XHRcdGlmIChiYWNrZ3JvdW5kKSBzY2VuZS5iYWNrZ3JvdW5kID0gYmFja2dyb3VuZDtcblx0XHRcdFx0XHRwYXJlbnQubWF0ZXJpYWwgPSB0aGlzLmRpc2NhcmRNYXRlcmlhbDtcblxuXHRcdFx0XHRcdGlmIChiYWNrc2lkZSkge1xuXHRcdFx0XHRcdFx0Ly8gUmVuZGVyIGludG8gdGhlIGJhY2tzaWRlIGJ1ZmZlclxuXHRcdFx0XHRcdFx0Z2wuc2V0UmVuZGVyVGFyZ2V0KGZib0JhY2spO1xuXHRcdFx0XHRcdFx0Z2wucmVuZGVyKHNjZW5lLCBjYW1lcmEpO1xuXHRcdFx0XHRcdFx0Ly8gQW5kIG5vdyBwcmVwYXJlIHRoZSBtYXRlcmlhbCBmb3IgdGhlIG1haW4gcmVuZGVyIHVzaW5nIHRoZSBiYWNrc2lkZSBidWZmZXJcblx0XHRcdFx0XHRcdHBhcmVudC5tYXRlcmlhbCA9IG1hdGVyaWFsO1xuXHRcdFx0XHRcdFx0T2JqZWN0LmFzc2lnbihwYXJlbnQubWF0ZXJpYWwsIHtcblx0XHRcdFx0XHRcdFx0YnVmZmVyOiBmYm9CYWNrLnRleHR1cmUsXG5cdFx0XHRcdFx0XHRcdHRoaWNrbmVzczogYmFja3NpZGVUaGlja25lc3MsXG5cdFx0XHRcdFx0XHRcdHNpZGU6IEJhY2tTaWRlLFxuXHRcdFx0XHRcdFx0XHRlbnZNYXBJbnRlbnNpdHk6IGJhY2tzaWRlRW52TWFwSW50ZW5zaXR5LFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gUmVuZGVyIGludG8gdGhlIG1haW4gYnVmZmVyXG5cdFx0XHRcdFx0Z2wuc2V0UmVuZGVyVGFyZ2V0KGZib01haW4pO1xuXHRcdFx0XHRcdGdsLnJlbmRlcihzY2VuZSwgY2FtZXJhKTtcblxuXHRcdFx0XHRcdHBhcmVudC5tYXRlcmlhbCA9IG1hdGVyaWFsO1xuXHRcdFx0XHRcdE9iamVjdC5hc3NpZ24ocGFyZW50Lm1hdGVyaWFsLCB7XG5cdFx0XHRcdFx0XHRidWZmZXI6IGZib01haW4udGV4dHVyZSxcblx0XHRcdFx0XHRcdHRoaWNrbmVzcyxcblx0XHRcdFx0XHRcdHNpZGUsXG5cdFx0XHRcdFx0XHRlbnZNYXBJbnRlbnNpdHk6IG9sZEVudk1hcEludGVuc2l0eSxcblx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdC8vIFNldCBvbGQgc3RhdGUgYmFja1xuXHRcdFx0XHRcdHNjZW5lLmJhY2tncm91bmQgPSBvbGRCZztcblx0XHRcdFx0XHRnbC5zZXRSZW5kZXJUYXJnZXQobnVsbCk7XG5cdFx0XHRcdFx0Z2wudG9uZU1hcHBpbmcgPSBvbGRUb25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbWF0ZXJpYWxzL3NyYy9saWIvbWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixVQUFVLEVBRVYsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTixhQUFhLEVBQ2Isa0JBQWtCLEVBRWxCLE9BQU8sRUFHUCxJQUFJLEVBQ0osSUFBSSxHQUNKLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBUyxTQUFTLEVBQVEsYUFBYSxFQUF3QixNQUFNLE9BQU8sQ0FBQzs7QUE0QjlGLE1BQU0sY0FBYyxHQUF3QztJQUMzRCxtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsSUFBSSxFQUFFLFNBQVM7SUFDZixZQUFZLEVBQUUsQ0FBQztJQUNmLFNBQVMsRUFBRSxDQUFDO0lBQ1osaUJBQWlCLEVBQUUsQ0FBQztJQUNwQix1QkFBdUIsRUFBRSxDQUFDO0lBQzFCLE9BQU8sRUFBRSxFQUFFO0NBQ1gsQ0FBQztBQXlCRixNQUFNLE9BQU8sNEJBQTRCO0lBNkR4QztRQTVEQSxXQUFNLEdBQUcsS0FBSyxDQUFnQixVQUFVLENBQUMsQ0FBQztRQUMxQyxZQUFPLEdBQUcsS0FBSyxDQUFDLGNB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RUFlVCw0REFHUyxPQUFPOzsyRkFFTCw0QkFBNEI7a0JBdkJ4QyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxpQ0FBaUM7b0JBQzNDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztFQWVUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHREZXN0cm95UmVmLFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHR1bnRyYWNrZWQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuXHRnZXRMb2NhbFN0YXRlLFxuXHRpbmplY3RCZWZvcmVSZW5kZXIsXG5cdE5ndEFueVJlY29yZCxcblx0Tmd0QXJncyxcblx0Tmd0QXR0YWNoYWJsZSxcblx0Tmd0TWVzaFBoeXNpY2FsTWF0ZXJpYWwsXG5cdG9taXQsXG5cdHBpY2ssXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0RkJPIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL21pc2MnO1xuaW1wb3J0IHsgTWVzaERpc2NhcmRNYXRlcmlhbCwgTWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL3ZhbmlsbGEtZXhwb3J0cyc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBCYWNrU2lkZSwgQ29sb3IsIEZyb250U2lkZSwgTWVzaCwgTm9Ub25lTWFwcGluZywgVGV4dHVyZSwgVG9uZU1hcHBpbmcgfSBmcm9tICd0aHJlZSc7XG5cbmV4cG9ydCB0eXBlIE1lc2hUcmFuc21pc3Npb25NYXRlcmlhbE9wdGlvbnMgPSBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIE1lc2hUcmFuc21pc3Npb25NYXRlcmlhbD5bMF07XG5cbmV4cG9ydCB0eXBlIE5ndHNNZXNoVHJhbnNtaXNzaW9uTWF0ZXJpYWxPcHRpb25zID0gUGFydGlhbDxOZ3RNZXNoUGh5c2ljYWxNYXRlcmlhbD4gJlxuXHRPbWl0PE1lc2hUcmFuc21pc3Npb25NYXRlcmlhbE9wdGlvbnMsICdidWZmZXInIHwgJ2FuaXNvdHJvcGljQmx1cicgfCAnc2FtcGxlcycgfCAndHJhbnNtaXNzaW9uU2FtcGxlcic+ICYge1xuXHRcdGFuaXNvdHJvcGljQmx1cj86IG51bWJlcjtcblx0XHRidWZmZXI/OiBUZXh0dXJlO1xuXHRcdC8qKiB0cmFuc21pc3Npb25TYW1wbGVyLCB5b3UgY2FuIHVzZSB0aGUgdGhyZWVqcyB0cmFuc21pc3Npb24gc2FtcGxlciB0ZXh0dXJlIHRoYXQgaXNcblx0XHQgKiAgZ2VuZXJhdGVkIG9uY2UgZm9yIGFsbCB0cmFuc21pc3NpdmUgbWF0ZXJpYWxzLiBUaGUgdXBzaWRlIGlzIHRoYXQgaXQgY2FuIGJlIGZhc3RlciBpZiB5b3Vcblx0XHQgKiAgdXNlIG11bHRpcGxlIE1lc2hQaHlzaWNhbCBhbmQgVHJhbnNtaXNzaW9uIG1hdGVyaWFscywgdGhlIGRvd25zaWRlIGlzIHRoYXQgdHJhbnNtaXNzaXZlIG1hdGVyaWFsc1xuXHRcdCAqICB1c2luZyB0aGlzIGNhbid0IHNlZSBvdGhlciB0cmFuc3BhcmVudCBvciB0cmFuc21pc3NpdmUgb2JqZWN0cywgZGVmYXVsdDogZmFsc2UgKi9cblx0XHR0cmFuc21pc3Npb25TYW1wbGVyOiBib29sZWFuO1xuXHRcdC8qKiBSZW5kZXIgdGhlIGJhY2tzaWRlIG9mIHRoZSBtYXRlcmlhbCAobW9yZSBjb3N0LCBiZXR0ZXIgcmVzdWx0cyksIGRlZmF1bHQ6IGZhbHNlICovXG5cdFx0YmFja3NpZGU6IGJvb2xlYW47XG5cdFx0LyoqIEJhY2tzaWRlIHRoaWNrbmVzcyAod2hlbiBiYWNrc2lkZSBpcyB0cnVlKSwgZGVmYXVsdDogMCAqL1xuXHRcdGJhY2tzaWRlVGhpY2tuZXNzOiBudW1iZXI7XG5cdFx0YmFja3NpZGVFbnZNYXBJbnRlbnNpdHk6IG51bWJlcjtcblx0XHQvKiogUmVzb2x1dGlvbiBvZiB0aGUgbG9jYWwgYnVmZmVyLCBkZWZhdWx0OiB1bmRlZmluZWQgKGZ1bGxzY3JlZW4pICovXG5cdFx0cmVzb2x1dGlvbj86IG51bWJlcjtcblx0XHQvKiogUmVzb2x1dGlvbiBvZiB0aGUgbG9jYWwgYnVmZmVyIGZvciBiYWNrZmFjZXMsIGRlZmF1bHQ6IHVuZGVmaW5lZCAoZnVsbHNjcmVlbikgKi9cblx0XHRiYWNrc2lkZVJlc29sdXRpb24/OiBudW1iZXI7XG5cdFx0LyoqIFJlZnJhY3Rpb24gc2FtcGxlcywgZGVmYXVsdDogNiAqL1xuXHRcdHNhbXBsZXM6IG51bWJlcjtcblx0XHQvKiogQnVmZmVyIHNjZW5lIGJhY2tncm91bmQgKGNhbiBiZSBhIHRleHR1cmUsIGEgY3ViZXRleHR1cmUgb3IgYSBjb2xvciksIGRlZmF1bHQ6IG51bGwgKi9cblx0XHRiYWNrZ3JvdW5kPzogVGV4dHVyZSB8IENvbG9yO1xuXHR9O1xuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0c01lc2hUcmFuc21pc3Npb25NYXRlcmlhbE9wdGlvbnMgPSB7XG5cdHRyYW5zbWlzc2lvblNhbXBsZXI6IGZhbHNlLFxuXHRiYWNrc2lkZTogZmFsc2UsXG5cdHNpZGU6IEZyb250U2lkZSxcblx0dHJhbnNtaXNzaW9uOiAxLFxuXHR0aGlja25lc3M6IDAsXG5cdGJhY2tzaWRlVGhpY2tuZXNzOiAwLFxuXHRiYWNrc2lkZUVudk1hcEludGVuc2l0eTogMSxcblx0c2FtcGxlczogMTAsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLW1lc2gtdHJhbnNtaXNzaW9uLW1hdGVyaWFsJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZVxuXHRcdFx0KmFyZ3M9XCJbbWF0ZXJpYWwoKV1cIlxuXHRcdFx0I21hdGVyaWFsXG5cdFx0XHRbYXR0YWNoXT1cImF0dGFjaCgpXCJcblx0XHRcdFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnMoKVwiXG5cdFx0XHRbX3RyYW5zbWlzc2lvbl09XCJ0cmFuc21pc3Npb24oKVwiXG5cdFx0XHRbdHJhbnNtaXNzaW9uXT1cInRyYW5zbWlzc2lvblNhbXBsZXIoKSA/IHRyYW5zbWlzc2lvbigpIDogMFwiXG5cdFx0XHRbYnVmZmVyXT1cImJ1ZmZlclRleHR1cmUoKVwiXG5cdFx0XHRbYW5pc290cm9waWNCbHVyXT1cImFuaXNvdHJvcGljQmx1ck9wdGlvbigpXCJcblx0XHRcdFtzaWRlXT1cInNpZGUoKVwiXG5cdFx0XHRbdGhpY2tuZXNzXT1cInRoaWNrbmVzcygpXCJcblx0XHQ+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXByaW1pdGl2ZT5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzTWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsIHtcblx0YXR0YWNoID0gaW5wdXQ8Tmd0QXR0YWNoYWJsZT4oJ21hdGVyaWFsJyk7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblx0cGFyYW1ldGVycyA9IG9taXQodGhpcy5vcHRpb25zLCBbXG5cdFx0J2J1ZmZlcicsXG5cdFx0J3RyYW5zbWlzc2lvblNhbXBsZXInLFxuXHRcdCdiYWNrc2lkZScsXG5cdFx0J3NpZGUnLFxuXHRcdCd0cmFuc21pc3Npb24nLFxuXHRcdCd0aGlja25lc3MnLFxuXHRcdCdiYWNrc2lkZVRoaWNrbmVzcycsXG5cdFx0J2JhY2tzaWRlRW52TWFwSW50ZW5zaXR5Jyxcblx0XHQnc2FtcGxlcycsXG5cdFx0J3Jlc29sdXRpb24nLFxuXHRcdCdiYWNrc2lkZVJlc29sdXRpb24nLFxuXHRcdCdiYWNrZ3JvdW5kJyxcblx0XHQnYW5pc290cm9weScsXG5cdFx0J2FuaXNvdHJvcGljQmx1cicsXG5cdF0pO1xuXG5cdHByaXZhdGUgcmVzb2x1dGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVzb2x1dGlvbicpO1xuXHRwcml2YXRlIGJhY2tzaWRlUmVzb2x1dGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAnYmFja3NpZGVSZXNvbHV0aW9uJyk7XG5cdHByaXZhdGUgc2FtcGxlcyA9IHBpY2sodGhpcy5vcHRpb25zLCAnc2FtcGxlcycpO1xuXHRwcml2YXRlIGJ1ZmZlciA9IHBpY2sodGhpcy5vcHRpb25zLCAnYnVmZmVyJyk7XG5cdHByaXZhdGUgYW5pc290cm9weSA9IHBpY2sodGhpcy5vcHRpb25zLCAnYW5pc290cm9weScpO1xuXHRwcml2YXRlIGFuaXNvdHJvcGljQmx1ciA9IHBpY2sodGhpcy5vcHRpb25zLCAnYW5pc290cm9waWNCbHVyJyk7XG5cdHByaXZhdGUgYmFja2dyb3VuZCA9IHBpY2sodGhpcy5vcHRpb25zLCAnYmFja2dyb3VuZCcpO1xuXHRwcml2YXRlIGJhY2tzaWRlID0gcGljayh0aGlzLm9wdGlvbnMsICdiYWNrc2lkZScpO1xuXHRwcml2YXRlIGJhY2tzaWRlVGhpY2tuZXNzID0gcGljayh0aGlzLm9wdGlvbnMsICdiYWNrc2lkZVRoaWNrbmVzcycpO1xuXHRwcml2YXRlIGJhY2tzaWRlRW52TWFwSW50ZW5zaXR5ID0gcGljayh0aGlzLm9wdGlvbnMsICdiYWNrc2lkZUVudk1hcEludGVuc2l0eScpO1xuXG5cdHRyYW5zbWlzc2lvblNhbXBsZXIgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3RyYW5zbWlzc2lvblNhbXBsZXInKTtcblx0dHJhbnNtaXNzaW9uID0gcGljayh0aGlzLm9wdGlvbnMsICd0cmFuc21pc3Npb24nKTtcblx0dGhpY2tuZXNzID0gcGljayh0aGlzLm9wdGlvbnMsICd0aGlja25lc3MnKTtcblx0c2lkZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnc2lkZScpO1xuXG5cdG1hdGVyaWFsUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8TWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsICYgTWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsT3B0aW9ucz4+KCdtYXRlcmlhbCcpO1xuXG5cdHByaXZhdGUgYmFja1Jlc29sdXRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmJhY2tzaWRlUmVzb2x1dGlvbigpIHx8IHRoaXMucmVzb2x1dGlvbigpKTtcblxuXHRwcml2YXRlIGZib0JhY2sgPSBpbmplY3RGQk8oKCkgPT4gKHsgd2lkdGg6IHRoaXMuYmFja1Jlc29sdXRpb24oKSB9KSk7XG5cdHByaXZhdGUgZmJvTWFpbiA9IGluamVjdEZCTygoKSA9PiAoeyB3aWR0aDogdGhpcy5yZXNvbHV0aW9uKCkgfSkpO1xuXG5cdGJ1ZmZlclRleHR1cmUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmJ1ZmZlcigpIHx8IHRoaXMuZmJvTWFpbigpLnRleHR1cmUpO1xuXHRhbmlzb3Ryb3BpY0JsdXJPcHRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmFuaXNvdHJvcGljQmx1cigpIHx8IHRoaXMuYW5pc290cm9weSgpKTtcblxuXHRwcml2YXRlIGRpc2NhcmRNYXRlcmlhbCA9IG5ldyBNZXNoRGlzY2FyZE1hdGVyaWFsKCk7XG5cblx0bWF0ZXJpYWwgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgcHJldmlvdXNNYXRlcmlhbCA9IHVudHJhY2tlZCh0aGlzLm1hdGVyaWFsUmVmKT8ubmF0aXZlRWxlbWVudDtcblxuXHRcdGlmIChwcmV2aW91c01hdGVyaWFsKSB7XG5cdFx0XHRwcmV2aW91c01hdGVyaWFsLmRpc3Bvc2UoKTtcblx0XHRcdGRlbGV0ZSAocHJldmlvdXNNYXRlcmlhbCBhcyBOZ3RBbnlSZWNvcmQpWydfX25ndF9fJ107XG5cdFx0XHRkZWxldGUgKHByZXZpb3VzTWF0ZXJpYWwgYXMgTmd0QW55UmVjb3JkKVsnX19uZ3RfcmVuZGVyZXJfXyddO1xuXHRcdH1cblxuXHRcdGNvbnN0IFtzYW1wbGVzLCB0cmFuc21pc3Npb25TYW1wbGVyXSA9IFt0aGlzLnNhbXBsZXMoKSwgdGhpcy50cmFuc21pc3Npb25TYW1wbGVyKCldO1xuXHRcdHJldHVybiBuZXcgTWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsKHsgc2FtcGxlcywgdHJhbnNtaXNzaW9uU2FtcGxlciB9KTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHRjb25zdCBtYXRlcmlhbCA9IHRoaXMubWF0ZXJpYWxSZWYoKT8ubmF0aXZlRWxlbWVudDtcblx0XHRcdGlmIChtYXRlcmlhbCkge1xuXHRcdFx0XHRtYXRlcmlhbC5kaXNwb3NlKCk7XG5cdFx0XHRcdGRlbGV0ZSAobWF0ZXJpYWwgYXMgTmd0QW55UmVjb3JkKVsnX19uZ3RfXyddO1xuXHRcdFx0XHRkZWxldGUgKG1hdGVyaWFsIGFzIE5ndEFueVJlY29yZClbJ19fbmd0X3JlbmRlcmVyX18nXTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGxldCBvbGRCZzogVGV4dHVyZSB8IENvbG9yIHwgbnVsbDtcblx0XHRsZXQgb2xkRW52TWFwSW50ZW5zaXR5OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdFx0bGV0IG9sZFRvbmU6IFRvbmVNYXBwaW5nIHwgdW5kZWZpbmVkO1xuXHRcdGxldCBwYXJlbnQ6IE1lc2ggfCB1bmRlZmluZWQ7XG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKCh7IGNsb2NrLCBnbCwgc2NlbmUsIGNhbWVyYSB9KSA9PiB7XG5cdFx0XHRjb25zdCBtYXRlcmlhbCA9IHRoaXMubWF0ZXJpYWxSZWYoKT8ubmF0aXZlRWxlbWVudDtcblx0XHRcdGlmICghbWF0ZXJpYWwpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgW1xuXHRcdFx0XHRmYm9NYWluLFxuXHRcdFx0XHRmYm9CYWNrLFxuXHRcdFx0XHR0cmFuc21pc3Npb25TYW1wbGVyLFxuXHRcdFx0XHRiYWNrZ3JvdW5kLFxuXHRcdFx0XHRiYWNrc2lkZSxcblx0XHRcdFx0YmFja3NpZGVUaGlja25lc3MsXG5cdFx0XHRcdGJhY2tzaWRlRW52TWFwSW50ZW5zaXR5LFxuXHRcdFx0XHR0aGlja25lc3MsXG5cdFx0XHRcdHNpZGUsXG5cdFx0XHRdID0gW1xuXHRcdFx0XHR0aGlzLmZib01haW4oKSxcblx0XHRcdFx0dGhpcy5mYm9CYWNrKCksXG5cdFx0XHRcdHRoaXMudHJhbnNtaXNzaW9uU2FtcGxlcigpLFxuXHRcdFx0XHR0aGlzLmJhY2tncm91bmQoKSxcblx0XHRcdFx0dGhpcy5iYWNrc2lkZSgpLFxuXHRcdFx0XHR0aGlzLmJhY2tzaWRlVGhpY2tuZXNzKCksXG5cdFx0XHRcdHRoaXMuYmFja3NpZGVFbnZNYXBJbnRlbnNpdHkoKSxcblx0XHRcdFx0dGhpcy50aGlja25lc3MoKSxcblx0XHRcdFx0dGhpcy5zaWRlKCksXG5cdFx0XHRdO1xuXG5cdFx0XHRtYXRlcmlhbC50aW1lID0gY2xvY2suZ2V0RWxhcHNlZFRpbWUoKTtcblx0XHRcdC8vIFJlbmRlciBvbmx5IGlmIHRoZSBidWZmZXIgbWF0Y2hlcyB0aGUgYnVpbHQtaW4gYW5kIG5vIHRyYW5zbWlzc2lvbiBzYW1wbGVyIGlzIHNldFxuXHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIHdlIGtub3cgbWF0ZXJpYWwuYnVmZmVyIGlzIG5vdCBqdXN0IHVuZGVmaW5lZCB8IG51bGxcblx0XHRcdGlmIChtYXRlcmlhbC5idWZmZXIgPT09IGZib01haW4udGV4dHVyZSAmJiAhdHJhbnNtaXNzaW9uU2FtcGxlcikge1xuXHRcdFx0XHRwYXJlbnQgPSBnZXRMb2NhbFN0YXRlKG1hdGVyaWFsKT8ucGFyZW50KCkgYXMgTWVzaDtcblxuXHRcdFx0XHRpZiAocGFyZW50KSB7XG5cdFx0XHRcdFx0Ly8gU2F2ZSBkZWZhdWx0c1xuXHRcdFx0XHRcdG9sZFRvbmUgPSBnbC50b25lTWFwcGluZztcblx0XHRcdFx0XHRvbGRCZyA9IHNjZW5lLmJhY2tncm91bmQ7XG5cdFx0XHRcdFx0b2xkRW52TWFwSW50ZW5zaXR5ID0gbWF0ZXJpYWwuZW52TWFwSW50ZW5zaXR5O1xuXG5cdFx0XHRcdFx0Ly8gU3dpdGNoIG9mZiB0b25lbWFwcGluZyBsZXN0IGl0IGRvdWJsZSB0b25lIG1hcHNcblx0XHRcdFx0XHQvLyBTYXZlIHRoZSBjdXJyZW50IGJhY2tncm91bmQgYW5kIHNldCB0aGUgSERSIGFzIHRoZSBuZXcgQkdcblx0XHRcdFx0XHQvLyBVc2UgZGlzY2FyZG1hdGVyaWFsLCB0aGUgcGFyZW50IHdpbGwgYmUgaW52aXNpYmxlLCBidXQgaXQncyBzaGFkb3dzIHdpbGwgc3RpbGwgYmUgY2FzdFxuXHRcdFx0XHRcdGdsLnRvbmVNYXBwaW5nID0gTm9Ub25lTWFwcGluZztcblx0XHRcdFx0XHRpZiAoYmFja2dyb3VuZCkgc2NlbmUuYmFja2dyb3VuZCA9IGJhY2tncm91bmQ7XG5cdFx0XHRcdFx0cGFyZW50Lm1hdGVyaWFsID0gdGhpcy5kaXNjYXJkTWF0ZXJpYWw7XG5cblx0XHRcdFx0XHRpZiAoYmFja3NpZGUpIHtcblx0XHRcdFx0XHRcdC8vIFJlbmRlciBpbnRvIHRoZSBiYWNrc2lkZSBidWZmZXJcblx0XHRcdFx0XHRcdGdsLnNldFJlbmRlclRhcmdldChmYm9CYWNrKTtcblx0XHRcdFx0XHRcdGdsLnJlbmRlcihzY2VuZSwgY2FtZXJhKTtcblx0XHRcdFx0XHRcdC8vIEFuZCBub3cgcHJlcGFyZSB0aGUgbWF0ZXJpYWwgZm9yIHRoZSBtYWluIHJlbmRlciB1c2luZyB0aGUgYmFja3NpZGUgYnVmZmVyXG5cdFx0XHRcdFx0XHRwYXJlbnQubWF0ZXJpYWwgPSBtYXRlcmlhbDtcblx0XHRcdFx0XHRcdE9iamVjdC5hc3NpZ24ocGFyZW50Lm1hdGVyaWFsLCB7XG5cdFx0XHRcdFx0XHRcdGJ1ZmZlcjogZmJvQmFjay50ZXh0dXJlLFxuXHRcdFx0XHRcdFx0XHR0aGlja25lc3M6IGJhY2tzaWRlVGhpY2tuZXNzLFxuXHRcdFx0XHRcdFx0XHRzaWRlOiBCYWNrU2lkZSxcblx0XHRcdFx0XHRcdFx0ZW52TWFwSW50ZW5zaXR5OiBiYWNrc2lkZUVudk1hcEludGVuc2l0eSxcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFJlbmRlciBpbnRvIHRoZSBtYWluIGJ1ZmZlclxuXHRcdFx0XHRcdGdsLnNldFJlbmRlclRhcmdldChmYm9NYWluKTtcblx0XHRcdFx0XHRnbC5yZW5kZXIoc2NlbmUsIGNhbWVyYSk7XG5cblx0XHRcdFx0XHRwYXJlbnQubWF0ZXJpYWwgPSBtYXRlcmlhbDtcblx0XHRcdFx0XHRPYmplY3QuYXNzaWduKHBhcmVudC5tYXRlcmlhbCwge1xuXHRcdFx0XHRcdFx0YnVmZmVyOiBmYm9NYWluLnRleHR1cmUsXG5cdFx0XHRcdFx0XHR0aGlja25lc3MsXG5cdFx0XHRcdFx0XHRzaWRlLFxuXHRcdFx0XHRcdFx0ZW52TWFwSW50ZW5zaXR5OiBvbGRFbnZNYXBJbnRlbnNpdHksXG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHQvLyBTZXQgb2xkIHN0YXRlIGJhY2tcblx0XHRcdFx0XHRzY2VuZS5iYWNrZ3JvdW5kID0gb2xkQmc7XG5cdFx0XHRcdFx0Z2wuc2V0UmVuZGVyVGFyZ2V0KG51bGwpO1xuXHRcdFx0XHRcdGdsLnRvbmVNYXBwaW5nID0gb2xkVG9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -17,14 +17,14 @@ export class NgtsMeshWobbleMaterial {
17
17
  material.time = clock.elapsedTime * this.options().speed;
18
18
  });
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsMeshWobbleMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.4", type: NgtsMeshWobbleMaterial, isStandalone: true, selector: "ngts-mesh-wobble-material", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsMeshWobbleMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: NgtsMeshWobbleMaterial, isStandalone: true, selector: "ngts-mesh-wobble-material", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
22
22
  <ngt-primitive *args="[material]" [parameters]="parameters()" [attach]="attach()">
23
23
  <ng-content />
24
24
  </ngt-primitive>
25
25
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsMeshWobbleMaterial, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsMeshWobbleMaterial, decorators: [{
28
28
  type: Component,
29
29
  args: [{
30
30
  selector: 'ngts-mesh-wobble-material',
@@ -8,14 +8,14 @@ export class NgtsPointMaterial {
8
8
  this.options = input({});
9
9
  this.material = new PointMaterial(this.options());
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPointMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.4", type: NgtsPointMaterial, isStandalone: true, selector: "ngts-point-material", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsPointMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: NgtsPointMaterial, isStandalone: true, selector: "ngts-point-material", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
13
13
  <ngt-primitive *args="[material]" [attach]="attach()" [parameters]="options()">
14
14
  <ng-content />
15
15
  </ngt-primitive>
16
16
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPointMaterial, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsPointMaterial, decorators: [{
19
19
  type: Component,
20
20
  args: [{
21
21
  selector: 'ngts-point-material',
@@ -14,10 +14,10 @@ export class NgtsBakeShadows {
14
14
  });
15
15
  });
16
16
  }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsBakeShadows, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
18
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: NgtsBakeShadows, isStandalone: true, selector: "ngts-bake-shadows", ngImport: i0 }); }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsBakeShadows, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
18
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgtsBakeShadows, isStandalone: true, selector: "ngts-bake-shadows", ngImport: i0 }); }
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsBakeShadows, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsBakeShadows, decorators: [{
21
21
  type: Directive,
22
22
  args: [{ standalone: true, selector: 'ngts-bake-shadows' }]
23
23
  }], ctorParameters: () => [] });
@@ -26,14 +26,14 @@ export class NgtsComputedAttribute {
26
26
  bufferAttribute.copy(attribute);
27
27
  });
28
28
  }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsComputedAttribute, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsComputedAttribute, isStandalone: true, selector: "ngts-computed-attribute", inputs: { compute: { classPropertyName: "compute", publicName: "compute", isSignal: true, isRequired: true, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "attributeRef", first: true, predicate: ["attribute"], descendants: true, isSignal: true }], ngImport: i0, template: `
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsComputedAttribute, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsComputedAttribute, isStandalone: true, selector: "ngts-computed-attribute", inputs: { compute: { classPropertyName: "compute", publicName: "compute", isSignal: true, isRequired: true, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "attributeRef", first: true, predicate: ["attribute"], descendants: true, isSignal: true }], ngImport: i0, template: `
31
31
  <ngt-primitive #attribute *args="[bufferAttribute]" [attach]="['attributes', name()]" [parameters]="options()">
32
32
  <ng-content />
33
33
  </ngt-primitive>
34
34
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsComputedAttribute, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsComputedAttribute, decorators: [{
37
37
  type: Component,
38
38
  args: [{
39
39
  selector: 'ngts-computed-attribute',
@@ -86,8 +86,8 @@ export class NgtsDecal {
86
86
  });
87
87
  });
88
88
  }
89
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsDecal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
90
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtsDecal, isStandalone: true, selector: "ngts-decal", inputs: { mesh: { classPropertyName: "mesh", publicName: "mesh", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }, { propertyName: "helperRef", first: true, predicate: ["helper"], descendants: true, isSignal: true }], ngImport: i0, template: `
89
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsDecal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
90
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: NgtsDecal, isStandalone: true, selector: "ngts-decal", inputs: { mesh: { classPropertyName: "mesh", publicName: "mesh", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }, { propertyName: "helperRef", first: true, predicate: ["helper"], descendants: true, isSignal: true }], ngImport: i0, template: `
91
91
  <ngt-mesh #mesh [parameters]="parameters()">
92
92
  <ngt-value [rawValue]="true" attach="material.transparent" />
93
93
  <ngt-value [rawValue]="true" attach="material.polygonOffset" />
@@ -109,7 +109,7 @@ export class NgtsDecal {
109
109
  </ngt-mesh>
110
110
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
111
111
  }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsDecal, decorators: [{
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsDecal, decorators: [{
113
113
  type: Component,
114
114
  args: [{
115
115
  selector: 'ngts-decal',
@@ -76,10 +76,10 @@ export class NgtsFBO {
76
76
  static ngTemplateContextGuard(_, ctx) {
77
77
  return true;
78
78
  }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsFBO, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
80
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtsFBO, isStandalone: true, selector: "ng-template[fbo]", inputs: { fbo: { classPropertyName: "fbo", publicName: "fbo", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
79
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsFBO, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
80
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.6", type: NgtsFBO, isStandalone: true, selector: "ng-template[fbo]", inputs: { fbo: { classPropertyName: "fbo", publicName: "fbo", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
81
81
  }
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsFBO, decorators: [{
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsFBO, decorators: [{
83
83
  type: Directive,
84
84
  args: [{ selector: 'ng-template[fbo]', standalone: true }]
85
85
  }], ctorParameters: () => [] });
@@ -239,8 +239,8 @@ export class NgtsHTMLContent extends NgtHTML {
239
239
  }
240
240
  });
241
241
  }
242
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsHTMLContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
243
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtsHTMLContent, isStandalone: true, selector: "[ngtsHTMLContent]", inputs: { options: { classPropertyName: "options", publicName: "ngtsHTMLContent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { occluded: "occluded" }, host: { attributes: { "data-ngts-html-content": "" } }, viewQueries: [{ propertyName: "transformOuterRef", first: true, predicate: ["transformOuter"], descendants: true, isSignal: true }, { propertyName: "transformInnerRef", first: true, predicate: ["transformInner"], descendants: true, isSignal: true }, { propertyName: "containerRef", first: true, predicate: ["container"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
242
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsHTMLContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
243
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: NgtsHTMLContent, isStandalone: true, selector: "[ngtsHTMLContent]", inputs: { options: { classPropertyName: "options", publicName: "ngtsHTMLContent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { occluded: "occluded" }, host: { attributes: { "data-ngts-html-content": "" } }, viewQueries: [{ propertyName: "transformOuterRef", first: true, predicate: ["transformOuter"], descendants: true, isSignal: true }, { propertyName: "transformInnerRef", first: true, predicate: ["transformInner"], descendants: true, isSignal: true }, { propertyName: "containerRef", first: true, predicate: ["container"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
244
244
  @if (html.transform()) {
245
245
  <div
246
246
  #transformOuter
@@ -275,7 +275,7 @@ export class NgtsHTMLContent extends NgtHTML {
275
275
  </ng-template>
276
276
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
277
277
  }
278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsHTMLContent, decorators: [{
278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsHTMLContent, decorators: [{
279
279
  type: Component,
280
280
  args: [{
281
281
  selector: '[ngtsHTMLContent]',
@@ -75,8 +75,8 @@ export class NgtsHTML {
75
75
  this.DoubleSide = DoubleSide;
76
76
  extend({ Group, Mesh, PlaneGeometry, ShaderMaterial });
77
77
  }
78
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsHTML, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
79
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtsHTML, isStandalone: true, selector: "ngts-html", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "occlusionMeshRef", first: true, predicate: ["occlusionMesh"], descendants: true, isSignal: true }, { propertyName: "occlusionGeometryRef", first: true, predicate: ["occlusionGeometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
78
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsHTML, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: NgtsHTML, isStandalone: true, selector: "ngts-html", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "occlusionMeshRef", first: true, predicate: ["occlusionMesh"], descendants: true, isSignal: true }, { propertyName: "occlusionGeometryRef", first: true, predicate: ["occlusionGeometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
80
80
  <ngt-group #group [parameters]="parameters()">
81
81
  @if (occlude() && !isRaycastOcclusion()) {
82
82
  <ngt-mesh #occlusionMesh [castShadow]="castShadow()" [receiveShadow]="receiveShadow()">
@@ -97,7 +97,7 @@ export class NgtsHTML {
97
97
  <ng-content />
98
98
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
99
99
  }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsHTML, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsHTML, decorators: [{
101
101
  type: Component,
102
102
  args: [{
103
103
  selector: 'ngts-html',
@@ -39,10 +39,10 @@ export class NgtsIntersect {
39
39
  const host = inject(ElementRef);
40
40
  injectIntersect(() => host, { source: this.intersect });
41
41
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsIntersect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
43
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtsIntersect, isStandalone: true, selector: "[intersect]", inputs: { intersect: { classPropertyName: "intersect", publicName: "intersect", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { intersect: "intersectChange" }, ngImport: i0 }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsIntersect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
43
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.6", type: NgtsIntersect, isStandalone: true, selector: "[intersect]", inputs: { intersect: { classPropertyName: "intersect", publicName: "intersect", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { intersect: "intersectChange" }, ngImport: i0 }); }
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsIntersect, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsIntersect, decorators: [{
46
46
  type: Directive,
47
47
  args: [{ standalone: true, selector: '[intersect]' }]
48
48
  }], ctorParameters: () => [] });
@@ -98,14 +98,14 @@ export class NgtsSampler {
98
98
  }));
99
99
  effect(sampler);
100
100
  }
101
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsSampler, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsSampler, isStandalone: true, selector: "ngts-sampler", inputs: { mesh: { classPropertyName: "mesh", publicName: "mesh", isSignal: true, isRequired: false, transformFunction: null }, instances: { classPropertyName: "instances", publicName: "instances", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsSampler, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsSampler, isStandalone: true, selector: "ngts-sampler", inputs: { mesh: { classPropertyName: "mesh", publicName: "mesh", isSignal: true, isRequired: false, transformFunction: null }, instances: { classPropertyName: "instances", publicName: "instances", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
103
103
  <ngt-group #group [parameters]="parameters()">
104
104
  <ng-content />
105
105
  </ngt-group>
106
106
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
107
107
  }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsSampler, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsSampler, decorators: [{
109
109
  type: Component,
110
110
  args: [{
111
111
  selector: 'ngts-sampler',
@@ -36,10 +36,10 @@ export class NgtsAdaptiveDpr {
36
36
  domElement.style.imageRendering = 'auto';
37
37
  });
38
38
  }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsAdaptiveDpr, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
40
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.4", type: NgtsAdaptiveDpr, isStandalone: true, selector: "ngts-adaptive-dpr", inputs: { pixelated: { classPropertyName: "pixelated", publicName: "pixelated", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsAdaptiveDpr, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
40
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.6", type: NgtsAdaptiveDpr, isStandalone: true, selector: "ngts-adaptive-dpr", inputs: { pixelated: { classPropertyName: "pixelated", publicName: "pixelated", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
41
41
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsAdaptiveDpr, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsAdaptiveDpr, decorators: [{
43
43
  type: Directive,
44
44
  args: [{ selector: 'ngts-adaptive-dpr', standalone: true }]
45
45
  }], ctorParameters: () => [] });
@@ -14,10 +14,10 @@ export class NgtsAdaptiveEvents {
14
14
  store.snapshot.setEvents({ enabled: currentEnabled });
15
15
  });
16
16
  }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsAdaptiveEvents, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
18
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: NgtsAdaptiveEvents, isStandalone: true, selector: "ngts-adaptive-events", ngImport: i0 }); }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsAdaptiveEvents, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
18
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgtsAdaptiveEvents, isStandalone: true, selector: "ngts-adaptive-events", ngImport: i0 }); }
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsAdaptiveEvents, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsAdaptiveEvents, decorators: [{
21
21
  type: Directive,
22
22
  args: [{ standalone: true, selector: 'ngts-adaptive-events' }]
23
23
  }], ctorParameters: () => [] });
@@ -29,14 +29,14 @@ export class NgtsDetailed {
29
29
  this.lodRef().nativeElement.update(camera);
30
30
  });
31
31
  }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsDetailed, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsDetailed, isStandalone: true, selector: "ngts-detailed", inputs: { distances: { classPropertyName: "distances", publicName: "distances", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lodRef", first: true, predicate: ["lod"], descendants: true, isSignal: true }], ngImport: i0, template: `
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsDetailed, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsDetailed, isStandalone: true, selector: "ngts-detailed", inputs: { distances: { classPropertyName: "distances", publicName: "distances", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lodRef", first: true, predicate: ["lod"], descendants: true, isSignal: true }], ngImport: i0, template: `
34
34
  <ngt-lOD #lod [parameters]="parameters()">
35
35
  <ng-content />
36
36
  </ngt-lOD>
37
37
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsDetailed, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsDetailed, decorators: [{
40
40
  type: Component,
41
41
  args: [{
42
42
  selector: 'ngts-detailed',
@@ -22,14 +22,14 @@ export class NgtsInstance {
22
22
  onCleanup(() => cleanup());
23
23
  });
24
24
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsInstance, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsInstance, isStandalone: true, selector: "ngts-instance", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "positionMeshRef", first: true, predicate: ["positionMesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsInstance, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsInstance, isStandalone: true, selector: "ngts-instance", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "positionMeshRef", first: true, predicate: ["positionMesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
27
27
  <ngt-position-mesh #positionMesh [instance]="instances.instancedMeshRef()" [parameters]="options()">
28
28
  <ng-content />
29
29
  </ngt-position-mesh>
30
30
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsInstance, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsInstance, decorators: [{
33
33
  type: Component,
34
34
  args: [{
35
35
  selector: 'ngts-instance',
@@ -112,8 +112,8 @@ export class NgtsInstances {
112
112
  this.instances = this.instances.filter((i) => i !== ref);
113
113
  };
114
114
  }
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsInstances, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsInstances, isStandalone: true, selector: "ngts-instances", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "instancedMeshRef", first: true, predicate: ["instancedMesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsInstances, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsInstances, isStandalone: true, selector: "ngts-instances", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "instancedMeshRef", first: true, predicate: ["instancedMesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
117
117
  <ngt-instanced-mesh
118
118
  #instancedMesh
119
119
  [userData]="{ instances }"
@@ -139,7 +139,7 @@ export class NgtsInstances {
139
139
  </ngt-instanced-mesh>
140
140
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
141
141
  }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsInstances, decorators: [{
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsInstances, decorators: [{
143
143
  type: Component,
144
144
  args: [{
145
145
  selector: 'ngts-instances',
@@ -15,14 +15,14 @@ export class NgtsPoint {
15
15
  onCleanup(() => cleanUp());
16
16
  });
17
17
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPoint, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsPoint, isStandalone: true, selector: "ngts-point", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "positionPointRef", first: true, predicate: ["positionPoint"], descendants: true, isSignal: true }], ngImport: i0, template: `
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsPoint, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsPoint, isStandalone: true, selector: "ngts-point", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "positionPointRef", first: true, predicate: ["positionPoint"], descendants: true, isSignal: true }], ngImport: i0, template: `
20
20
  <ngt-position-point #positionPoint [parameters]="options()" [instance]="points.pointsRef()">
21
21
  <ng-content />
22
22
  </ngt-position-point>
23
23
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPoint, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsPoint, decorators: [{
26
26
  type: Component,
27
27
  args: [{
28
28
  selector: 'ngts-point',
@@ -58,8 +58,8 @@ export class NgtsPointsBuffer {
58
58
  checkUpdate(attributes['size']);
59
59
  });
60
60
  }
61
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPointsBuffer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
62
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtsPointsBuffer, isStandalone: true, selector: "ngts-points-buffer", inputs: { positions: { classPropertyName: "positions", publicName: "positions", isSignal: true, isRequired: true, transformFunction: null }, colors: { classPropertyName: "colors", publicName: "colors", isSignal: true, isRequired: false, transformFunction: null }, sizes: { classPropertyName: "sizes", publicName: "sizes", isSignal: true, isRequired: false, transformFunction: null }, stride: { classPropertyName: "stride", publicName: "stride", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "pointsRef", first: true, predicate: ["points"], descendants: true, isSignal: true }], ngImport: i0, template: `
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsPointsBuffer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
62
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: NgtsPointsBuffer, isStandalone: true, selector: "ngts-points-buffer", inputs: { positions: { classPropertyName: "positions", publicName: "positions", isSignal: true, isRequired: true, transformFunction: null }, colors: { classPropertyName: "colors", publicName: "colors", isSignal: true, isRequired: false, transformFunction: null }, sizes: { classPropertyName: "sizes", publicName: "sizes", isSignal: true, isRequired: false, transformFunction: null }, stride: { classPropertyName: "stride", publicName: "stride", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "pointsRef", first: true, predicate: ["points"], descendants: true, isSignal: true }], ngImport: i0, template: `
63
63
  <ngt-points #points [parameters]="options()">
64
64
  <ngt-buffer-geometry>
65
65
  <ngt-buffer-attribute
@@ -92,7 +92,7 @@ export class NgtsPointsBuffer {
92
92
  </ngt-points>
93
93
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
94
94
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPointsBuffer, decorators: [{
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsPointsBuffer, decorators: [{
96
96
  type: Component,
97
97
  args: [{
98
98
  selector: 'ngts-points-buffer',
@@ -190,8 +190,8 @@ export class NgtsPointsInstances {
190
190
  this.positionPoints = this.positionPoints.filter((p) => p !== ref);
191
191
  };
192
192
  }
193
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPointsInstances, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
194
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsPointsInstances, isStandalone: true, selector: "ngts-points-instances", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "pointsRef", first: true, predicate: ["points"], descendants: true, isSignal: true }], ngImport: i0, template: `
193
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsPointsInstances, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
194
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsPointsInstances, isStandalone: true, selector: "ngts-points-instances", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "pointsRef", first: true, predicate: ["points"], descendants: true, isSignal: true }], ngImport: i0, template: `
195
195
  <ngt-points
196
196
  #points
197
197
  [userData]="{ instances: positionPoints }"
@@ -226,7 +226,7 @@ export class NgtsPointsInstances {
226
226
  </ngt-points>
227
227
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
228
228
  }
229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPointsInstances, decorators: [{
229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsPointsInstances, decorators: [{
230
230
  type: Component,
231
231
  args: [{
232
232
  selector: 'ngts-points-instances',
@@ -20,12 +20,12 @@ export class NgtsSegment {
20
20
  onCleanup(() => cleanUp());
21
21
  });
22
22
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsSegment, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsSegment, isStandalone: true, selector: "ngts-segment", inputs: { start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: true, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "segmentRef", first: true, predicate: ["segment"], descendants: true, isSignal: true }], ngImport: i0, template: `
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsSegment, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsSegment, isStandalone: true, selector: "ngts-segment", inputs: { start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: true, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "segmentRef", first: true, predicate: ["segment"], descendants: true, isSignal: true }], ngImport: i0, template: `
25
25
  <ngt-segment-object #segment [color]="color()" [start]="normalizedStart()" [end]="normalizedEnd()" />
26
26
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsSegment, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsSegment, decorators: [{
29
29
  type: Component,
30
30
  args: [{
31
31
  selector: 'ngts-segment',
@@ -97,8 +97,8 @@ export class NgtsSegments {
97
97
  this.segments = this.segments.filter((i) => i !== ref);
98
98
  };
99
99
  }
100
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsSegments, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
101
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsSegments, isStandalone: true, selector: "ngts-segments", inputs: { 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: `
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsSegments, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
101
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsSegments, isStandalone: true, selector: "ngts-segments", inputs: { 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: `
102
102
  <ngt-primitive #line *args="[line]">
103
103
  <ngt-primitive *args="[geometry]" attach="geometry" />
104
104
  <ngt-primitive *args="[material]" attach="material" [parameters]="materialParameters()" />
@@ -106,7 +106,7 @@ export class NgtsSegments {
106
106
  </ngt-primitive>
107
107
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
108
108
  }
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsSegments, decorators: [{
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsSegments, decorators: [{
110
110
  type: Component,
111
111
  args: [{
112
112
  selector: 'ngts-segments',
@@ -128,8 +128,8 @@ export class NgtsAccumulativeShadows {
128
128
  // Restore lights and meshes
129
129
  this.pLM().finish();
130
130
  }
131
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsAccumulativeShadows, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
132
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsAccumulativeShadows, isStandalone: true, selector: "ngts-accumulative-shadows", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lightsRef", first: true, predicate: ["lights"], descendants: true, isSignal: true }, { propertyName: "planeRef", first: true, predicate: ["plane"], descendants: true, isSignal: true }], ngImport: i0, template: `
131
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsAccumulativeShadows, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
132
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtsAccumulativeShadows, isStandalone: true, selector: "ngts-accumulative-shadows", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lightsRef", first: true, predicate: ["lights"], descendants: true, isSignal: true }, { propertyName: "planeRef", first: true, predicate: ["plane"], descendants: true, isSignal: true }], ngImport: i0, template: `
133
133
  <ngt-group [parameters]="parameters()">
134
134
  <ngt-group #lights [traverse]="nullTraversal">
135
135
  <ng-content />
@@ -149,7 +149,7 @@ export class NgtsAccumulativeShadows {
149
149
  </ngt-group>
150
150
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
151
151
  }
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsAccumulativeShadows, decorators: [{
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtsAccumulativeShadows, decorators: [{
153
153
  type: Component,
154
154
  args: [{
155
155
  selector: 'ngts-accumulative-shadows',