angular-three-soba 2.7.0 → 2.8.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 (104) hide show
  1. package/cameras/lib/cube-camera.d.ts +1 -1
  2. package/cameras/lib/orthographic-camera.d.ts +1 -1
  3. package/cameras/lib/perspective-camera.d.ts +1 -1
  4. package/esm2022/abstractions/lib/billboard.mjs +4 -4
  5. package/esm2022/abstractions/lib/catmull-rom-line.mjs +4 -4
  6. package/esm2022/abstractions/lib/cubic-bezier-line.mjs +4 -4
  7. package/esm2022/abstractions/lib/edges.mjs +4 -4
  8. package/esm2022/abstractions/lib/gradient-texture.mjs +4 -4
  9. package/esm2022/abstractions/lib/grid.mjs +4 -4
  10. package/esm2022/abstractions/lib/helper.mjs +4 -4
  11. package/esm2022/abstractions/lib/line.mjs +4 -4
  12. package/esm2022/abstractions/lib/prism-geometry.mjs +4 -4
  13. package/esm2022/abstractions/lib/quadratic-bezier-line.mjs +4 -4
  14. package/esm2022/abstractions/lib/rounded-box.mjs +4 -4
  15. package/esm2022/abstractions/lib/text-3d.mjs +4 -4
  16. package/esm2022/abstractions/lib/text.mjs +4 -4
  17. package/esm2022/cameras/lib/camera-content.mjs +4 -4
  18. package/esm2022/cameras/lib/cube-camera.mjs +4 -4
  19. package/esm2022/cameras/lib/orthographic-camera.mjs +4 -4
  20. package/esm2022/cameras/lib/perspective-camera.mjs +4 -4
  21. package/esm2022/controls/lib/camera-controls.mjs +4 -4
  22. package/esm2022/controls/lib/orbit-controls.mjs +4 -4
  23. package/esm2022/controls/lib/scroll-controls.mjs +10 -10
  24. package/esm2022/gizmos/lib/gizmo-helper/gizmo-helper.mjs +7 -7
  25. package/esm2022/gizmos/lib/gizmo-helper/gizmo-viewcube.mjs +13 -13
  26. package/esm2022/gizmos/lib/gizmo-helper/gizmo-viewport.mjs +10 -10
  27. package/esm2022/gizmos/lib/pivot-controls/axis-arrow.mjs +4 -4
  28. package/esm2022/gizmos/lib/pivot-controls/axis-rotator.mjs +4 -4
  29. package/esm2022/gizmos/lib/pivot-controls/pivot-controls.mjs +4 -4
  30. package/esm2022/gizmos/lib/pivot-controls/plane-slider.mjs +4 -4
  31. package/esm2022/gizmos/lib/pivot-controls/scaling-sphere.mjs +4 -4
  32. package/esm2022/gizmos/lib/transform-controls.mjs +4 -4
  33. package/esm2022/loaders/lib/loader.mjs +4 -4
  34. package/esm2022/materials/lib/custom-shader-material.mjs +4 -4
  35. package/esm2022/materials/lib/mesh-distort-material.mjs +4 -4
  36. package/esm2022/materials/lib/mesh-reflector-material.mjs +4 -4
  37. package/esm2022/materials/lib/mesh-refraction-material.mjs +4 -4
  38. package/esm2022/materials/lib/mesh-transmission-material.mjs +4 -4
  39. package/esm2022/materials/lib/mesh-wobble-material.mjs +4 -4
  40. package/esm2022/materials/lib/point-material.mjs +4 -4
  41. package/esm2022/misc/lib/bake-shadows.mjs +4 -4
  42. package/esm2022/misc/lib/computed-attribute.mjs +4 -4
  43. package/esm2022/misc/lib/decal.mjs +4 -4
  44. package/esm2022/misc/lib/fbo.mjs +4 -4
  45. package/esm2022/misc/lib/html/html-content.mjs +4 -4
  46. package/esm2022/misc/lib/html/html.mjs +4 -4
  47. package/esm2022/misc/lib/intersect.mjs +4 -4
  48. package/esm2022/misc/lib/preload.mjs +4 -4
  49. package/esm2022/misc/lib/sampler.mjs +4 -4
  50. package/esm2022/performances/lib/adaptive-dpr.mjs +4 -4
  51. package/esm2022/performances/lib/adaptive-events.mjs +4 -4
  52. package/esm2022/performances/lib/detailed.mjs +4 -4
  53. package/esm2022/performances/lib/instances/instances.mjs +7 -7
  54. package/esm2022/performances/lib/points/points.mjs +10 -10
  55. package/esm2022/performances/lib/segments/segments.mjs +7 -7
  56. package/esm2022/staging/lib/accumulative-shadows.mjs +4 -4
  57. package/esm2022/staging/lib/backdrop.mjs +4 -4
  58. package/esm2022/staging/lib/bb-anchor.mjs +4 -4
  59. package/esm2022/staging/lib/bounds.mjs +4 -4
  60. package/esm2022/staging/lib/camera-shake.mjs +4 -4
  61. package/esm2022/staging/lib/caustics.mjs +4 -4
  62. package/esm2022/staging/lib/center.mjs +4 -4
  63. package/esm2022/staging/lib/contact-shadows.mjs +4 -4
  64. package/esm2022/staging/lib/environment/environment.mjs +16 -16
  65. package/esm2022/staging/lib/float.mjs +4 -4
  66. package/esm2022/staging/lib/lightformer.mjs +4 -4
  67. package/esm2022/staging/lib/mask.mjs +4 -4
  68. package/esm2022/staging/lib/matcap-texture.mjs +4 -4
  69. package/esm2022/staging/lib/normal-texture.mjs +4 -4
  70. package/esm2022/staging/lib/randomized-lights.mjs +4 -4
  71. package/esm2022/staging/lib/render-texture.mjs +10 -10
  72. package/esm2022/staging/lib/sky.mjs +4 -4
  73. package/esm2022/staging/lib/spot-light.mjs +16 -16
  74. package/esm2022/staging/lib/stage.mjs +7 -7
  75. package/esm2022/stats/lib/stats.mjs +4 -4
  76. package/fesm2022/angular-three-soba-abstractions.mjs +39 -39
  77. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  78. package/fesm2022/angular-three-soba-cameras.mjs +12 -12
  79. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  80. package/fesm2022/angular-three-soba-controls.mjs +15 -15
  81. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  82. package/fesm2022/angular-three-soba-gizmos.mjs +45 -45
  83. package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -1
  84. package/fesm2022/angular-three-soba-loaders.mjs +3 -3
  85. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  86. package/fesm2022/angular-three-soba-materials.mjs +21 -21
  87. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  88. package/fesm2022/angular-three-soba-misc.mjs +27 -27
  89. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  90. package/fesm2022/angular-three-soba-performances.mjs +30 -30
  91. package/fesm2022/angular-three-soba-performances.mjs.map +1 -1
  92. package/fesm2022/angular-three-soba-staging.mjs +90 -90
  93. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  94. package/fesm2022/angular-three-soba-stats.mjs +3 -3
  95. package/fesm2022/angular-three-soba-stats.mjs.map +1 -1
  96. package/gizmos/lib/pivot-controls/axis-arrow.d.ts +1 -1
  97. package/gizmos/lib/pivot-controls/axis-rotator.d.ts +1 -1
  98. package/gizmos/lib/pivot-controls/pivot-controls.d.ts +1 -1
  99. package/gizmos/lib/pivot-controls/plane-slider.d.ts +1 -1
  100. package/gizmos/lib/pivot-controls/scaling-sphere.d.ts +1 -1
  101. package/gizmos/lib/transform-controls.d.ts +2 -2
  102. package/misc/lib/html/html.d.ts +1 -1
  103. package/package.json +20 -20
  104. package/shaders/lib/mesh-refraction-material.d.ts +2 -2
@@ -45,10 +45,10 @@ export class NgtsStageRefit {
45
45
  bounds.refresh().clip().fit();
46
46
  });
47
47
  }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsStageRefit, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
49
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.9", type: NgtsStageRefit, isStandalone: true, selector: "ngts-stage-refit", inputs: { radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: true, transformFunction: null }, adjustCamera: { classPropertyName: "adjustCamera", publicName: "adjustCamera", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsStageRefit, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
49
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.11", type: NgtsStageRefit, isStandalone: true, selector: "ngts-stage-refit", inputs: { radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: true, transformFunction: null }, adjustCamera: { classPropertyName: "adjustCamera", publicName: "adjustCamera", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
50
50
  }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsStageRefit, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsStageRefit, decorators: [{
52
52
  type: Directive,
53
53
  args: [{ standalone: true, selector: 'ngts-stage-refit' }]
54
54
  }], ctorParameters: () => [] });
@@ -128,8 +128,8 @@ export class NgtsStage {
128
128
  this.dims.set({ radius: boundingSphere.radius, width, height, depth });
129
129
  this.centered.emit($event);
130
130
  }
131
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsStage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
132
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: NgtsStage, isStandalone: true, selector: "ngts-stage", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { centered: "centered" }, ngImport: i0, template: `
131
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsStage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
132
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: NgtsStage, isStandalone: true, selector: "ngts-stage", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { centered: "centered" }, ngImport: i0, template: `
133
133
  <ngt-ambient-light [intensity]="intensity() / 3" />
134
134
  <ngt-spot-light
135
135
  [penumbra]="1"
@@ -170,7 +170,7 @@ export class NgtsStage {
170
170
  }
171
171
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "component", type: NgtsBounds, selector: "ngts-bounds", inputs: ["options"] }, { kind: "directive", type: NgtsStageRefit, selector: "ngts-stage-refit", inputs: ["radius", "adjustCamera"] }, { kind: "component", type: NgtsCenter, selector: "ngts-center", inputs: ["options"], outputs: ["centered"] }, { kind: "component", type: NgtsContactShadows, selector: "ngts-contact-shadows", inputs: ["options"] }, { kind: "component", type: NgtsAccumulativeShadows, selector: "ngts-accumulative-shadows", inputs: ["options"] }, { kind: "component", type: NgtsEnvironment, selector: "ngts-environment", inputs: ["options"], outputs: ["envSet"] }, { kind: "component", type: NgtsRandomizedLights, selector: "ngts-randomized-lights", inputs: ["options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
172
172
  }
173
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsStage, decorators: [{
173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsStage, decorators: [{
174
174
  type: Component,
175
175
  args: [{
176
176
  selector: 'ngts-stage',
@@ -229,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
229
229
  ],
230
230
  }]
231
231
  }], ctorParameters: () => [] });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL3N0YWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixzQkFBc0IsRUFDdEIsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQVksSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFrQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBc0MsTUFBTSxVQUFVLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUE2QixNQUFNLG1CQUFtQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxlQUFlLEVBQTBCLE1BQU0sMkJBQTJCLENBQUM7QUFFcEYsT0FBTyxFQUFFLG9CQUFvQixFQUErQixNQUFNLHFCQUFxQixDQUFDOztBQUV4RixNQUFNLE9BQU8sR0FBRztJQUNmLFNBQVMsRUFBRTtRQUNWLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDcEI7SUFDRCxRQUFR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QVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXVDVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRTt3QkFDUixPQUFPO3dCQUNQLFVBQVU7d0JBQ1YsY0FBYzt3QkFDZCxVQUFVO3dCQUNWLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2QixlQUFlO3dCQUNmLG9CQUFvQjtxQkFDcEI7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRjb21wdXRlZCxcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0RGlyZWN0aXZlLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdG91dHB1dCxcblx0c2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgTmd0QXJncywgTmd0R3JvdXAsIG9taXQsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEFtYmllbnRMaWdodCwgR3JvdXAsIFBvaW50TGlnaHQsIFNwb3RMaWdodCwgVmVjdG9yMiB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzLCBOZ3RzQWNjdW11bGF0aXZlU2hhZG93c09wdGlvbnMgfSBmcm9tICcuL2FjY3VtdWxhdGl2ZS1zaGFkb3dzJztcbmltcG9ydCB7IE5ndHNCb3VuZHMgfSBmcm9tICcuL2JvdW5kcyc7XG5pbXBvcnQgeyBOZ3RzQ2VudGVyLCBOZ3RzQ2VudGVyT3B0aW9ucywgTmd0c0NlbnRlclN0YXRlIH0gZnJvbSAnLi9jZW50ZXInO1xuaW1wb3J0IHsgTmd0c0NvbnRhY3RTaGFkb3dzLCBOZ3RzQ29udGFjdFNoYWRvd3NPcHRpb25zIH0gZnJvbSAnLi9jb250YWN0LXNoYWRvd3MnO1xuaW1wb3J0IHsgTmd0c0Vudmlyb25tZW50LCBOZ3RzRW52aXJvbm1lbnRPcHRpb25zIH0gZnJvbSAnLi9lbnZpcm9ubWVudC9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRQcmVzZXRzIH0gZnJvbSAnLi9lbnZpcm9ubWVudC9pbmplY3QtZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgTmd0c1JhbmRvbWl6ZWRMaWdodHMsIE5ndHNSYW5kb21pemVkTGlnaHRzT3B0aW9ucyB9IGZyb20gJy4vcmFuZG9taXplZC1saWdodHMnO1xuXG5jb25zdCBwcmVzZXRzID0ge1xuXHRyZW1icmFuZHQ6IHtcblx0XHRtYWluOiBbMSwgMiwgMV0sXG5cdFx0ZmlsbDogWy0yLCAtMC41LCAtMl0sXG5cdH0sXG5cdHBvcnRyYWl0OiB7XG5cdFx0bWFpbjogWy0xLCAyLCAwLjVdLFxuXHRcdGZpbGw6IFstMSwgMC41LCAtMS41XSxcblx0fSxcblx0dXBmcm9udDoge1xuXHRcdG1haW46IFswLCAyLCAxXSxcblx0XHRmaWxsOiBbLTEsIDAuNSwgLTEuNV0sXG5cdH0sXG5cdHNvZnQ6IHtcblx0XHRtYWluOiBbLTIsIDQsIDRdLFxuXHRcdGZpbGw6IFstMSwgMC41LCAtMS41XSxcblx0fSxcbn0gYXMgY29uc3Q7XG5cbnR5cGUgTmd0c1N0YWdlU2hhZG93c09wdGlvbnMgPSBQYXJ0aWFsPE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzT3B0aW9ucz4gJlxuXHRQYXJ0aWFsPE5ndHNSYW5kb21pemVkTGlnaHRzT3B0aW9ucz4gJlxuXHRQYXJ0aWFsPE5ndHNDb250YWN0U2hhZG93c09wdGlvbnM+ICYge1xuXHRcdHR5cGU6ICdjb250YWN0JyB8ICdhY2N1bXVsYXRpdmUnO1xuXHRcdC8qKiBTaGFkb3cgcGxhbmUgb2Zmc2V0LCBkZWZhdWx0OiAwICovXG5cdFx0b2Zmc2V0OiBudW1iZXI7XG5cdFx0LyoqIFNoYWRvdyBiaWFzLCBkZWZhdWx0OiAtMC4wMDAxICovXG5cdFx0YmlhczogbnVtYmVyO1xuXHRcdC8qKiBTaGFkb3cgbm9ybWFsIGJpYXMsIGRlZmF1bHQ6IDAgKi9cblx0XHRub3JtYWxCaWFzOiBudW1iZXI7XG5cdFx0LyoqIFNoYWRvdyBtYXAgc2l6ZSwgZGVmYXVsdDogMTAyNCAqL1xuXHRcdHNpemU6IG51bWJlcjtcblx0fTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzU3RhZ2VPcHRpb25zIGV4dGVuZHMgUGFydGlhbDxOZ3RHcm91cD4ge1xuXHQvKiogTGlnaHRpbmcgc2V0dXAsIGRlZmF1bHQ6IFwicmVtYnJhbmR0XCIgKi9cblx0cHJlc2V0OlxuXHRcdHwgJ3JlbWJyYW5kdCdcblx0XHR8ICdwb3J0cmFpdCdcblx0XHR8ICd1cGZyb250J1xuXHRcdHwgJ3NvZnQnXG5cdFx0fCB7IG1haW46IFt4OiBudW1iZXIsIHk6IG51bWJlciwgejogbnVtYmVyXTsgZmlsbDogW3g6IG51bWJlciwgeTogbnVtYmVyLCB6OiBudW1iZXJdIH07XG5cdC8qKiBDb250cm9scyB0aGUgZ3JvdW5kIHNoYWRvd3MsIGRlZmF1bHQ6IFwiY29udGFjdFwiICovXG5cdHNoYWRvd3M6IGJvb2xlYW4gfCAnY29udGFjdCcgfCAnYWNjdW11bGF0aXZlJyB8IE5ndHNTdGFnZVNoYWRvd3NPcHRpb25zO1xuXHQvKiogT3B0aW9uYWxseSB3cmFwcyBhbmQgdGhlcmVieSBjZW50ZXJzIHRoZSBtb2RlbHMgdXNpbmcgPEJvdW5kcz4sIGNhbiBhbHNvIGJlIGEgbWFyZ2luLCBkZWZhdWx0OiB0cnVlICovXG5cdGFkanVzdENhbWVyYTogYm9vbGVhbiB8IG51bWJlcjtcblx0LyoqIFRoZSBkZWZhdWx0IGVudmlyb25tZW50LCBkZWZhdWx0OiBcImNpdHlcIiAqL1xuXHRlbnZpcm9ubWVudDogTmd0c0Vudmlyb25tZW50UHJlc2V0cyB8IFBhcnRpYWw8Tmd0c0Vudmlyb25tZW50T3B0aW9ucz4gfCBudWxsO1xuXHQvKiogVGhlIGxpZ2h0aW5nIGludGVuc2l0eSwgZGVmYXVsdDogMC41ICovXG5cdGludGVuc2l0eTogbnVtYmVyO1xuXHQvKiogVG8gYWRqdXN0IGNlbnRlcmluZywgZGVmYXVsdDogdW5kZWZpbmVkICovXG5cdGNlbnRlcj86IFBhcnRpYWw8Tmd0c0NlbnRlck9wdGlvbnM+O1xufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0c1N0YWdlT3B0aW9ucyA9IHtcblx0cHJlc2V0OiAncmVtYnJhbmR0Jyxcblx0c2hhZG93czogJ2NvbnRhY3QnLFxuXHRhZGp1c3RDYW1lcmE6IHRydWUsXG5cdGVudmlyb25tZW50OiAnY2l0eScsXG5cdGludGVuc2l0eTogMC41LFxufTtcblxuQERpcmVjdGl2ZSh7IHN0YW5kYWxvbmU6IHRydWUsIHNlbGVjdG9yOiAnbmd0cy1zdGFnZS1yZWZpdCcgfSlcbmV4cG9ydCBjbGFzcyBOZ3RzU3RhZ2VSZWZpdCB7XG5cdHJhZGl1cyA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcblx0YWRqdXN0Q2FtZXJhID0gaW5wdXQucmVxdWlyZWQ8Ym9vbGVhbj4oKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRjb25zdCBib3VuZHMgPSBpbmplY3QoTmd0c0JvdW5kcyk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgWywgYWRqdXN0Q2FtZXJhXSA9IFt0aGlzLnJhZGl1cygpLCB0aGlzLmFkanVzdENhbWVyYSgpXTtcblx0XHRcdGlmIChhZGp1c3RDYW1lcmEpIGJvdW5kcy5yZWZyZXNoKCkuY2xpcCgpLmZpdCgpO1xuXHRcdH0pO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtc3RhZ2UnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtYW1iaWVudC1saWdodCBbaW50ZW5zaXR5XT1cImludGVuc2l0eSgpIC8gM1wiIC8+XG5cdFx0PG5ndC1zcG90LWxpZ2h0XG5cdFx0XHRbcGVudW1icmFdPVwiMVwiXG5cdFx0XHRbcG9zaXRpb25dPVwiW2NvbmZpZygpLm1haW5bMF0gKiByYWRpdXMoKSwgY29uZmlnKCkubWFpblsxXSAqIHJhZGl1cygpLCBjb25maWcoKS5tYWluWzJdICogcmFkaXVzKCldXCJcblx0XHRcdFtpbnRlbnNpdHldPVwiaW50ZW5zaXR5KCkgKiAyXCJcblx0XHRcdFtjYXN0U2hhZG93XT1cIiEhc2hhZG93cygpXCJcblx0XHQ+XG5cdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJzaGFkb3dCaWFzKClcIiBhdHRhY2g9XCJzaGFkb3cuYmlhc1wiIC8+XG5cdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJub3JtYWxCaWFzKClcIiBhdHRhY2g9XCJzaGFkb3cubm9ybWFsQmlhc1wiIC8+XG5cdFx0XHQ8bmd0LXZlY3RvcjIgKmFyZ3M9XCJbc2hhZG93U2l6ZSgpLCBzaGFkb3dTaXplKCldXCIgYXR0YWNoPVwic2hhZG93Lm1hcFNpemVcIiAvPlxuXHRcdDwvbmd0LXNwb3QtbGlnaHQ+XG5cdFx0PG5ndC1wb2ludC1saWdodFxuXHRcdFx0W3Bvc2l0aW9uXT1cIltjb25maWcoKS5maWxsWzBdICogcmFkaXVzKCksIGNvbmZpZygpLmZpbGxbMV0gKiByYWRpdXMoKSwgY29uZmlnKCkuZmlsbFsyXSAqIHJhZGl1cygpXVwiXG5cdFx0XHRbaW50ZW5zaXR5XT1cImludGVuc2l0eSgpXCJcblx0XHQvPlxuXG5cdFx0PG5ndHMtYm91bmRzIFtvcHRpb25zXT1cImJvdW5kc09wdGlvbnMoKVwiPlxuXHRcdFx0PG5ndHMtc3RhZ2UtcmVmaXQgW3JhZGl1c109XCJyYWRpdXMoKVwiIFthZGp1c3RDYW1lcmFdPVwiISFhZGp1c3RDYW1lcmEoKVwiIC8+XG5cdFx0XHQ8bmd0cy1jZW50ZXIgW29wdGlvbnNdPVwiY2VudGVyT3B0aW9ucygpXCIgKGNlbnRlcmVkKT1cIm9uQ2VudGVyKCRldmVudClcIj5cblx0XHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHRcdDwvbmd0cy1jZW50ZXI+XG5cdFx0PC9uZ3RzLWJvdW5kcz5cblxuXHRcdDxuZ3QtZ3JvdXAgW3Bvc2l0aW9uXT1cIlswLCAtaGVpZ2h0KCkgLyAyIC0gc2hhZG93T2Zmc2V0KCkgLyAyLCAwXVwiPlxuXHRcdFx0QGlmIChjb250YWN0U2hhZG93KCkpIHtcblx0XHRcdFx0PG5ndHMtY29udGFjdC1zaGFkb3dzIFtvcHRpb25zXT1cInNoYWRvd09wdGlvbnMoKVwiIC8+XG5cdFx0XHR9XG5cblx0XHRcdEBpZiAoYWNjdW11bGF0aXZlU2hhZG93KCkpIHtcblx0XHRcdFx0PG5ndHMtYWNjdW11bGF0aXZlLXNoYWRvd3MgW29wdGlvbnNdPVwic2hhZG93T3B0aW9ucygpXCI+XG5cdFx0XHRcdFx0PG5ndHMtcmFuZG9taXplZC1saWdodHMgW29wdGlvbnNdPVwicmFuZG9taXplZExpZ2h0c09wdGlvbnMoKVwiIC8+XG5cdFx0XHRcdDwvbmd0cy1hY2N1bXVsYXRpdmUtc2hhZG93cz5cblx0XHRcdH1cblx0XHQ8L25ndC1ncm91cD5cblxuXHRcdEBpZiAoZW52aXJvbm1lbnQoKSkge1xuXHRcdFx0PG5ndHMtZW52aXJvbm1lbnQgW29wdGlvbnNdPVwiZW52aXJvbm1lbnRPcHRpb25zKClcIiAvPlxuXHRcdH1cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW1xuXHRcdE5ndEFyZ3MsXG5cdFx0Tmd0c0JvdW5kcyxcblx0XHROZ3RzU3RhZ2VSZWZpdCxcblx0XHROZ3RzQ2VudGVyLFxuXHRcdE5ndHNDb250YWN0U2hhZG93cyxcblx0XHROZ3RzQWNjdW11bGF0aXZlU2hhZG93cyxcblx0XHROZ3RzRW52aXJvbm1lbnQsXG5cdFx0Tmd0c1JhbmRvbWl6ZWRMaWdodHMsXG5cdF0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTdGFnZSB7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblx0cHJpdmF0ZSBwYXJhbWV0ZXJzID0gb21pdCh0aGlzLm9wdGlvbnMsIFsncHJlc2V0JywgJ3NoYWRvd3MnLCAnYWRqdXN0Q2FtZXJhJywgJ2Vudmlyb25tZW50JywgJ2ludGVuc2l0eScsICdjZW50ZXInXSk7XG5cblx0Y2VudGVyZWQgPSBvdXRwdXQ8Tmd0c0NlbnRlclN0YXRlPigpO1xuXG5cdHByaXZhdGUgZGltcyA9IHNpZ25hbCh7IHJhZGl1czogMCwgd2lkdGg6IDAsIGhlaWdodDogMCwgZGVwdGg6IDAgfSk7XG5cdHJhZGl1cyA9IHBpY2sodGhpcy5kaW1zLCAncmFkaXVzJyk7XG5cdGhlaWdodCA9IHBpY2sodGhpcy5kaW1zLCAnaGVpZ2h0Jyk7XG5cblx0Y2VudGVyID0gcGljayh0aGlzLm9wdGlvbnMsICdjZW50ZXInKTtcblx0YWRqdXN0Q2FtZXJhID0gcGljayh0aGlzLm9wdGlvbnMsICdhZGp1c3RDYW1lcmEnKTtcblx0bWFyZ2luID0gY29tcHV0ZWQoKCkgPT4gTnVtYmVyKHRoaXMuYWRqdXN0Q2FtZXJhKCkpKTtcblx0aW50ZW5zaXR5ID0gcGljayh0aGlzLm9wdGlvbnMsICdpbnRlbnNpdHknKTtcblx0c2hhZG93cyA9IHBpY2sodGhpcy5vcHRpb25zLCAnc2hhZG93cycpO1xuXHRlbnZpcm9ubWVudCA9IHBpY2sodGhpcy5vcHRpb25zLCAnZW52aXJvbm1lbnQnKTtcblx0cHJlc2V0ID0gcGljayh0aGlzLm9wdGlvbnMsICdwcmVzZXQnKTtcblxuXHRjb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgcHJlc2V0ID0gdGhpcy5wcmVzZXQoKTtcblx0XHRyZXR1cm4gdHlwZW9mIHByZXNldCA9PT0gJ3N0cmluZycgPyBwcmVzZXRzW3ByZXNldF0gOiBwcmVzZXQ7XG5cdH0pO1xuXG5cdHNoYWRvd0JpYXMgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5zaGFkb3dzKCkgYXMgTmd0c1N0YWdlU2hhZG93c09wdGlvbnMpLmJpYXMgPz8gLTAuMDAwMSk7XG5cdG5vcm1hbEJpYXMgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5zaGFkb3dzKCkgYXMgTmd0c1N0YWdlU2hhZG93c09wdGlvbnMpLm5vcm1hbEJpYXMgPz8gMCk7XG5cdHNoYWRvd1NpemUgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5zaGFkb3dzKCkgYXMgTmd0c1N0YWdlU2hhZG93c09wdGlvbnMpLnNpemUgPz8gMTAyNCk7XG5cdHNoYWRvd09mZnNldCA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnNoYWRvd3MoKSBhcyBOZ3RzU3RhZ2VTaGFkb3dzT3B0aW9ucykub2Zmc2V0ID8/IDApO1xuXHRjb250YWN0U2hhZG93ID0gY29tcHV0ZWQoXG5cdFx0KCkgPT4gdGhpcy5zaGFkb3dzKCkgPT09ICdjb250YWN0JyB8fCAodGhpcy5zaGFkb3dzKCkgYXMgTmd0c1N0YWdlU2hhZG93c09wdGlvbnMpPy50eXBlID09PSAnY29udGFjdCcsXG5cdCk7XG5cdGFjY3VtdWxhdGl2ZVNoYWRvdyA9IGNvbXB1dGVkKFxuXHRcdCgpID0+IHRoaXMuc2hhZG93cygpID09PSAnYWNjdW11bGF0aXZlJyB8fCAodGhpcy5zaGFkb3dzKCkgYXMgTmd0c1N0YWdlU2hhZG93c09wdGlvbnMpPy50eXBlID09PSAnYWNjdW11bGF0aXZlJyxcblx0KTtcblx0c2hhZG93T3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBzaGFkb3dzID0gdGhpcy5zaGFkb3dzKCkgYXMgTmd0c1N0YWdlU2hhZG93c09wdGlvbnM7XG5cblx0XHRpZiAodGhpcy5jb250YWN0U2hhZG93KCkpIHtcblx0XHRcdHJldHVybiB7IHNjYWxlOiB0aGlzLnJhZGl1cygpICogNCwgZmFyOiB0aGlzLnJhZGl1cygpLCBibHVyOiAyLCAuLi5zaGFkb3dzIH07XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuYWNjdW11bGF0aXZlU2hhZG93KCkpIHtcblx0XHRcdHJldHVybiB7IHRlbXBvcmFsOiB0cnVlLCBmcmFtZXM6IDEwMCwgYWxwaGFUZXN0OiAwLjksIHRvbmVNYXBwZWQ6IHRydWUsIHNjYWxlOiB0aGlzLnJhZGl1cygpICogNCwgLi4uc2hhZG93cyB9O1xuXHRcdH1cblxuXHRcdHJldHVybiB0eXBlb2Ygc2hhZG93cyA9PT0gJ29iamVjdCcgPyBzaGFkb3dzIDoge307XG5cdH0pO1xuXHRyYW5kb21pemVkTGlnaHRzT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRpZiAoIXRoaXMuYWNjdW11bGF0aXZlU2hhZG93KCkpIHJldHVybiB7fTtcblx0XHRjb25zdCBzaGFkb3dzID0gdGhpcy5zaGFkb3dzKCkgYXMgTmd0c1N0YWdlU2hhZG93c09wdGlvbnM7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGFtb3VudDogc2hhZG93cy5hbW91bnQgPz8gOCxcblx0XHRcdHJhZGl1czogc2hhZG93cy5yYWRpdXMgPz8gdGhpcy5yYWRpdXMoKSxcblx0XHRcdGFtYmllbnQ6IHNoYWRvd3MuYW1iaWVudCA/PyAwLjUsXG5cdFx0XHRpbnRlbnNpdHk6IHNoYWRvd3MuaW50ZW5zaXR5ID8/IDEsXG5cdFx0XHRwb3NpdGlvbjogW1xuXHRcdFx0XHR0aGlzLmNvbmZpZygpLm1haW5bMF0gKiB0aGlzLnJhZGl1cygpLFxuXHRcdFx0XHR0aGlzLmNvbmZpZygpLm1haW5bMV0gKiB0aGlzLnJhZGl1cygpLFxuXHRcdFx0XHR0aGlzLmNvbmZpZygpLm1haW5bMl0gKiB0aGlzLnJhZGl1cygpLFxuXHRcdFx0XSxcblx0XHRcdHNpemU6IHRoaXMucmFkaXVzKCkgKiA0LFxuXHRcdFx0YmlhczogLXRoaXMuc2hhZG93QmlhcygpLFxuXHRcdFx0bWFwU2l6ZTogdGhpcy5zaGFkb3dTaXplKCksXG5cdFx0fSBhcyBQYXJ0aWFsPE5ndHNSYW5kb21pemVkTGlnaHRzT3B0aW9ucz47XG5cdH0pO1xuXHRlbnZpcm9ubWVudE9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgZW52aXJvbm1lbnQgPSB0aGlzLmVudmlyb25tZW50KCk7XG5cdFx0cmV0dXJuICFlbnZpcm9ubWVudCA/IHt9IDogdHlwZW9mIGVudmlyb25tZW50ID09PSAnc3RyaW5nJyA/IHsgcHJlc2V0OiBlbnZpcm9ubWVudCB9IDogZW52aXJvbm1lbnQ7XG5cdH0pO1xuXG5cdGJvdW5kc09wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiAoe1xuXHRcdGZpdDogISF0aGlzLmFkanVzdENhbWVyYSgpLFxuXHRcdGNsaXA6ICEhdGhpcy5hZGp1c3RDYW1lcmEoKSxcblx0XHRtYXJnaW46IE51bWJlcih0aGlzLmFkanVzdENhbWVyYSgpKSxcblx0XHRvYnNlcnZlOiB0cnVlLFxuXHRcdC4uLnRoaXMucGFyYW1ldGVycygpLFxuXHR9KSk7XG5cdGNlbnRlck9wdGlvbnMgPSBjb21wdXRlZChcblx0XHQoKSA9PlxuXHRcdFx0KHtcblx0XHRcdFx0Li4uKHRoaXMuY2VudGVyKCkgfHwge30pLFxuXHRcdFx0XHRwb3NpdGlvbjogWzAsIHRoaXMuc2hhZG93T2Zmc2V0KCkgLyAyLCAwXSxcblx0XHRcdH0pIGFzIFBhcnRpYWw8Tmd0c0NlbnRlck9wdGlvbnM+LFxuXHQpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IEFtYmllbnRMaWdodCwgU3BvdExpZ2h0LCBQb2ludExpZ2h0LCBHcm91cCwgVmVjdG9yMiB9KTtcblx0fVxuXG5cdG9uQ2VudGVyKCRldmVudDogTmd0c0NlbnRlclN0YXRlKSB7XG5cdFx0Y29uc3QgeyB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYm91bmRpbmdTcGhlcmUgfSA9ICRldmVudDtcblx0XHR0aGlzLmRpbXMuc2V0KHsgcmFkaXVzOiBib3VuZGluZ1NwaGVyZS5yYWRpdXMsIHdpZHRoLCBoZWlnaHQsIGRlcHRoIH0pO1xuXHRcdHRoaXMuY2VudGVyZWQuZW1pdCgkZXZlbnQpO1xuXHR9XG59XG4iXX0=
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL3N0YWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixzQkFBc0IsRUFDdEIsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQVksSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFrQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBc0MsTUFBTSxVQUFVLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUE2QixNQUFNLG1CQUFtQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxlQUFlLEVBQTBCLE1BQU0sMkJBQTJCLENBQUM7QUFFcEYsT0FBTyxFQUFFLG9CQUFvQixFQUErQixNQUFNLHFCQUFxQixDQUFDOztBQUV4RixNQUFNLE9BQU8sR0FBRztJQUNmLFNBQVMsRUFBRTtRQUNWLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDcEI7SUFDRCxRQUFR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QVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXVDVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRTt3QkFDUixPQUFPO3dCQUNQLFVBQVU7d0JBQ1YsY0FBYzt3QkFDZCxVQUFVO3dCQUNWLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2QixlQUFlO3dCQUNmLG9CQUFvQjtxQkFDcEI7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRjb21wdXRlZCxcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0RGlyZWN0aXZlLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdG91dHB1dCxcblx0c2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgTmd0QXJncywgTmd0R3JvdXAsIG9taXQsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEFtYmllbnRMaWdodCwgR3JvdXAsIFBvaW50TGlnaHQsIFNwb3RMaWdodCwgVmVjdG9yMiB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzLCBOZ3RzQWNjdW11bGF0aXZlU2hhZG93c09wdGlvbnMgfSBmcm9tICcuL2FjY3VtdWxhdGl2ZS1zaGFkb3dzJztcbmltcG9ydCB7IE5ndHNCb3VuZHMgfSBmcm9tICcuL2JvdW5kcyc7XG5pbXBvcnQgeyBOZ3RzQ2VudGVyLCBOZ3RzQ2VudGVyT3B0aW9ucywgTmd0c0NlbnRlclN0YXRlIH0gZnJvbSAnLi9jZW50ZXInO1xuaW1wb3J0IHsgTmd0c0NvbnRhY3RTaGFkb3dzLCBOZ3RzQ29udGFjdFNoYWRvd3NPcHRpb25zIH0gZnJvbSAnLi9jb250YWN0LXNoYWRvd3MnO1xuaW1wb3J0IHsgTmd0c0Vudmlyb25tZW50LCBOZ3RzRW52aXJvbm1lbnRPcHRpb25zIH0gZnJvbSAnLi9lbnZpcm9ubWVudC9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRQcmVzZXRzIH0gZnJvbSAnLi9lbnZpcm9ubWVudC9pbmplY3QtZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgTmd0c1JhbmRvbWl6ZWRMaWdodHMsIE5ndHNSYW5kb21pemVkTGlnaHRzT3B0aW9ucyB9IGZyb20gJy4vcmFuZG9taXplZC1saWdodHMnO1xuXG5jb25zdCBwcmVzZXRzID0ge1xuXHRyZW1icmFuZHQ6IHtcblx0XHRtYWluOiBbMSwgMiwgMV0sXG5cdFx0ZmlsbDogWy0yLCAtMC41LCAtMl0sXG5cdH0sXG5cdHBvcnRyYWl0OiB7XG5cdFx0bWFpbjogWy0xLCAyLCAwLjVdLFxuXHRcdGZpbGw6IFstMSwgMC41LCAtMS41XSxcblx0fSxcblx0dXBmcm9udDoge1xuXHRcdG1haW46IFswLCAyLCAxXSxcblx0XHRmaWxsOiBbLTEsIDAuNSwgLTEuNV0sXG5cdH0sXG5cdHNvZnQ6IHtcblx0XHRtYWluOiBbLTIsIDQsIDRdLFxuXHRcdGZpbGw6IFstMSwgMC41LCAtMS41XSxcblx0fSxcbn0gYXMgY29uc3Q7XG5cbnR5cGUgTmd0c1N0YWdlU2hhZG93c09wdGlvbnMgPSBQYXJ0aWFsPE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzT3B0aW9ucz4gJlxuXHRQYXJ0aWFsPE5ndHNSYW5kb21pemVkTGlnaHRzT3B0aW9ucz4gJlxuXHRQYXJ0aWFsPE5ndHNDb250YWN0U2hhZG93c09wdGlvbnM+ICYge1xuXHRcdHR5cGU6ICdjb250YWN0JyB8ICdhY2N1bXVsYXRpdmUnO1xuXHRcdC8qKiBTaGFkb3cgcGxhbmUgb2Zmc2V0LCBkZWZhdWx0OiAwICovXG5cdFx0b2Zmc2V0OiBudW1iZXI7XG5cdFx0LyoqIFNoYWRvdyBiaWFzLCBkZWZhdWx0OiAtMC4wMDAxICovXG5cdFx0YmlhczogbnVtYmVyO1xuXHRcdC8qKiBTaGFkb3cgbm9ybWFsIGJpYXMsIGRlZmF1bHQ6IDAgKi9cblx0XHRub3JtYWxCaWFzOiBudW1iZXI7XG5cdFx0LyoqIFNoYWRvdyBtYXAgc2l6ZSwgZGVmYXVsdDogMTAyNCAqL1xuXHRcdHNpemU6IG51bWJlcjtcblx0fTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzU3RhZ2VPcHRpb25zIGV4dGVuZHMgUGFydGlhbDxOZ3RHcm91cD4ge1xuXHQvKiogTGlnaHRpbmcgc2V0dXAsIGRlZmF1bHQ6IFwicmVtYnJhbmR0XCIgKi9cblx0cHJlc2V0OlxuXHRcdHwgJ3JlbWJyYW5kdCdcblx0XHR8ICdwb3J0cmFpdCdcblx0XHR8ICd1cGZyb250J1xuXHRcdHwgJ3NvZnQnXG5cdFx0fCB7IG1haW46IFt4OiBudW1iZXIsIHk6IG51bWJlciwgejogbnVtYmVyXTsgZmlsbDogW3g6IG51bWJlciwgeTogbnVtYmVyLCB6OiBudW1iZXJdIH07XG5cdC8qKiBDb250cm9scyB0aGUgZ3JvdW5kIHNoYWRvd3MsIGRlZmF1bHQ6IFwiY29udGFjdFwiICovXG5cdHNoYWRvd3M6IGJvb2xlYW4gfCAnY29udGFjdCcgfCAnYWNjdW11bGF0aXZlJyB8IE5ndHNTdGFnZVNoYWRvd3NPcHRpb25zO1xuXHQvKiogT3B0aW9uYWxseSB3cmFwcyBhbmQgdGhlcmVieSBjZW50ZXJzIHRoZSBtb2RlbHMgdXNpbmcgPEJvdW5kcz4sIGNhbiBhbHNvIGJlIGEgbWFyZ2luLCBkZWZhdWx0OiB0cnVlICovXG5cdGFkanVzdENhbWVyYTogYm9vbGVhbiB8IG51bWJlcjtcblx0LyoqIFRoZSBkZWZhdWx0IGVudmlyb25tZW50LCBkZWZhdWx0OiBcImNpdHlcIiAqL1xuXHRlbnZpcm9ubWVudDogTmd0c0Vudmlyb25tZW50UHJlc2V0cyB8IFBhcnRpYWw8Tmd0c0Vudmlyb25tZW50T3B0aW9ucz4gfCBudWxsO1xuXHQvKiogVGhlIGxpZ2h0aW5nIGludGVuc2l0eSwgZGVmYXVsdDogMC41ICovXG5cdGludGVuc2l0eTogbnVtYmVyO1xuXHQvKiogVG8gYWRqdXN0IGNlbnRlcmluZywgZGVmYXVsdDogdW5kZWZpbmVkICovXG5cdGNlbnRlcj86IFBhcnRpYWw8Tmd0c0NlbnRlck9wdGlvbnM+O1xufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0c1N0YWdlT3B0aW9ucyA9IHtcblx0cHJlc2V0OiAncmVtYnJhbmR0Jyxcblx0c2hhZG93czogJ2NvbnRhY3QnLFxuXHRhZGp1c3RDYW1lcmE6IHRydWUsXG5cdGVudmlyb25tZW50OiAnY2l0eScsXG5cdGludGVuc2l0eTogMC41LFxufTtcblxuQERpcmVjdGl2ZSh7IHN0YW5kYWxvbmU6IHRydWUsIHNlbGVjdG9yOiAnbmd0cy1zdGFnZS1yZWZpdCcgfSlcbmV4cG9ydCBjbGFzcyBOZ3RzU3RhZ2VSZWZpdCB7XG5cdHJhZGl1cyA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcblx0YWRqdXN0Q2FtZXJhID0gaW5wdXQucmVxdWlyZWQ8Ym9vbGVhbj4oKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRjb25zdCBib3VuZHMgPSBpbmplY3QoTmd0c0JvdW5kcyk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgWywgYWRqdXN0Q2FtZXJhXSA9IFt0aGlzLnJhZGl1cygpLCB0aGlzLmFkanVzdENhbWVyYSgpXTtcblx0XHRcdGlmIChhZGp1c3RDYW1lcmEpIGJvdW5kcy5yZWZyZXNoKCkuY2xpcCgpLmZpdCgpO1xuXHRcdH0pO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtc3RhZ2UnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtYW1iaWVudC1saWdodCBbaW50ZW5zaXR5XT1cImludGVuc2l0eSgpIC8gM1wiIC8+XG5cdFx0PG5ndC1zcG90LWxpZ2h0XG5cdFx0XHRbcGVudW1icmFdPVwiMVwiXG5cdFx0XHRbcG9zaXRpb25dPVwiW2NvbmZpZygpLm1haW5bMF0gKiByYWRpdXMoKSwgY29uZmlnKCkubWFpblsxXSAqIHJhZGl1cygpLCBjb25maWcoKS5tYWluWzJdICogcmFkaXVzKCldXCJcblx0XHRcdFtpbnRlbnNpdHldPVwiaW50ZW5zaXR5KCkgKiAyXCJcblx0XHRcdFtjYXN0U2hhZG93XT1cIiEhc2hhZG93cygpXCJcblx0XHQ+XG5cdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJzaGFkb3dCaWFzKClcIiBhdHRhY2g9XCJzaGFkb3cuYmlhc1wiIC8+XG5cdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJub3JtYWxCaWFzKClcIiBhdHRhY2g9XCJzaGFkb3cubm9ybWFsQmlhc1wiIC8+XG5cdFx0XHQ8bmd0LXZlY3RvcjIgKmFyZ3M9XCJbc2hhZG93U2l6ZSgpLCBzaGFkb3dTaXplKCldXCIgYXR0YWNoPVwic2hhZG93Lm1hcFNpemVcIiAvPlxuXHRcdDwvbmd0LXNwb3QtbGlnaHQ+XG5cdFx0PG5ndC1wb2ludC1saWdodFxuXHRcdFx0W3Bvc2l0aW9uXT1cIltjb25maWcoKS5maWxsWzBdICogcmFkaXVzKCksIGNvbmZpZygpLmZpbGxbMV0gKiByYWRpdXMoKSwgY29uZmlnKCkuZmlsbFsyXSAqIHJhZGl1cygpXVwiXG5cdFx0XHRbaW50ZW5zaXR5XT1cImludGVuc2l0eSgpXCJcblx0XHQvPlxuXG5cdFx0PG5ndHMtYm91bmRzIFtvcHRpb25zXT1cImJvdW5kc09wdGlvbnMoKVwiPlxuXHRcdFx0PG5ndHMtc3RhZ2UtcmVmaXQgW3JhZGl1c109XCJyYWRpdXMoKVwiIFthZGp1c3RDYW1lcmFdPVwiISFhZGp1c3RDYW1lcmEoKVwiIC8+XG5cdFx0XHQ8bmd0cy1jZW50ZXIgW29wdGlvbnNdPVwiY2VudGVyT3B0aW9ucygpXCIgKGNlbnRlcmVkKT1cIm9uQ2VudGVyKCRldmVudClcIj5cblx0XHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHRcdDwvbmd0cy1jZW50ZXI+XG5cdFx0PC9uZ3RzLWJvdW5kcz5cblxuXHRcdDxuZ3QtZ3JvdXAgW3Bvc2l0aW9uXT1cIlswLCAtaGVpZ2h0KCkgLyAyIC0gc2hhZG93T2Zmc2V0KCkgLyAyLCAwXVwiPlxuXHRcdFx0QGlmIChjb250YWN0U2hhZG93KCkpIHtcblx0XHRcdFx0PG5ndHMtY29udGFjdC1zaGFkb3dzIFtvcHRpb25zXT1cInNoYWRvd09wdGlvbnMoKVwiIC8+XG5cdFx0XHR9XG5cblx0XHRcdEBpZiAoYWNjdW11bGF0aXZlU2hhZG93KCkpIHtcblx0XHRcdFx0PG5ndHMtYWNjdW11bGF0aXZlLXNoYWRvd3MgW29wdGlvbnNdPVwic2hhZG93T3B0aW9ucygpXCI+XG5cdFx0XHRcdFx0PG5ndHMtcmFuZG9taXplZC1saWdodHMgW29wdGlvbnNdPVwicmFuZG9taXplZExpZ2h0c09wdGlvbnMoKVwiIC8+XG5cdFx0XHRcdDwvbmd0cy1hY2N1bXVsYXRpdmUtc2hhZG93cz5cblx0XHRcdH1cblx0XHQ8L25ndC1ncm91cD5cblxuXHRcdEBpZiAoZW52aXJvbm1lbnQoKSkge1xuXHRcdFx0PG5ndHMtZW52aXJvbm1lbnQgW29wdGlvbnNdPVwiZW52aXJvbm1lbnRPcHRpb25zKClcIiAvPlxuXHRcdH1cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW1xuXHRcdE5ndEFyZ3MsXG5cdFx0Tmd0c0JvdW5kcyxcblx0XHROZ3RzU3RhZ2VSZWZpdCxcblx0XHROZ3RzQ2VudGVyLFxuXHRcdE5ndHNDb250YWN0U2hhZG93cyxcblx0XHROZ3RzQWNjdW11bGF0aXZlU2hhZG93cyxcblx0XHROZ3RzRW52aXJvbm1lbnQsXG5cdFx0Tmd0c1JhbmRvbWl6ZWRMaWdodHMsXG5cdF0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTdGFnZSB7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblx0cHJpdmF0ZSBwYXJhbWV0ZXJzID0gb21pdCh0aGlzLm9wdGlvbnMsIFsncHJlc2V0JywgJ3NoYWRvd3MnLCAnYWRqdXN0Q2FtZXJhJywgJ2Vudmlyb25tZW50JywgJ2ludGVuc2l0eScsICdjZW50ZXInXSk7XG5cblx0Y2VudGVyZWQgPSBvdXRwdXQ8Tmd0c0NlbnRlclN0YXRlPigpO1xuXG5cdHByaXZhdGUgZGltcyA9IHNpZ25hbCh7IHJhZGl1czogMCwgd2lkdGg6IDAsIGhlaWdodDogMCwgZGVwdGg6IDAgfSk7XG5cdHJhZGl1cyA9IHBpY2sodGhpcy5kaW1zLCAncmFkaXVzJyk7XG5cdGhlaWdodCA9IHBpY2sodGhpcy5kaW1zLCAnaGVpZ2h0Jyk7XG5cblx0Y2VudGVyID0gcGljayh0aGlzLm9wdGlvbnMsICdjZW50ZXInKTtcblx0YWRqdXN0Q2FtZXJhID0gcGljayh0aGlzLm9wdGlvbnMsICdhZGp1c3RDYW1lcmEnKTtcblx0bWFyZ2luID0gY29tcHV0ZWQoKCkgPT4gTnVtYmVyKHRoaXMuYWRqdXN0Q2FtZXJhKCkpKTtcblx0aW50ZW5zaXR5ID0gcGljayh0aGlzLm9wdGlvbnMsICdpbnRlbnNpdHknKTtcblx0c2hhZG93cyA9IHBpY2sodGhpcy5vcHRpb25zLCAnc2hhZG93cycpO1xuXHRlbnZpcm9ubWVudCA9IHBpY2sodGhpcy5vcHRpb25zLCAnZW52aXJvbm1lbnQnKTtcblx0cHJlc2V0ID0gcGljayh0aGlzLm9wdGlvbnMsICdwcmVzZXQnKTtcblxuXHRjb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgcHJlc2V0ID0gdGhpcy5wcmVzZXQoKTtcblx0XHRyZXR1cm4gdHlwZW9mIHByZXNldCA9PT0gJ3N0cmluZycgPyBwcmVzZXRzW3ByZXNldF0gOiBwcmVzZXQ7XG5cdH0pO1xuXG5cdHNoYWRvd0JpYXMgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5zaGFkb3dzKCkgYXMgTmd0c1N0YWdlU2hhZG93c09wdGlvbnMpLmJpYXMgPz8gLTAuMDAwMSk7XG5cdG5vcm1hbEJpYXMgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5zaGFkb3dzKCkgYXMgTmd0c1N0YWdlU2hhZG93c09wdGlvbnMpLm5vcm1hbEJpYXMgPz8gMCk7XG5cdHNoYWRvd1NpemUgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5zaGFkb3dzKCkgYXMgTmd0c1N0YWdlU2hhZG93c09wdGlvbnMpLnNpemUgPz8gMTAyNCk7XG5cdHNoYWRvd09mZnNldCA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnNoYWRvd3MoKSBhcyBOZ3RzU3RhZ2VTaGFkb3dzT3B0aW9ucykub2Zmc2V0ID8/IDApO1xuXHRjb250YWN0U2hhZG93ID0gY29tcHV0ZWQoXG5cdFx0KCkgPT4gdGhpcy5zaGFkb3dzKCkgPT09ICdjb250YWN0JyB8fCAodGhpcy5zaGFkb3dzKCkgYXMgTmd0c1N0YWdlU2hhZG93c09wdGlvbnMpPy50eXBlID09PSAnY29udGFjdCcsXG5cdCk7XG5cdGFjY3VtdWxhdGl2ZVNoYWRvdyA9IGNvbXB1dGVkKFxuXHRcdCgpID0+IHRoaXMuc2hhZG93cygpID09PSAnYWNjdW11bGF0aXZlJyB8fCAodGhpcy5zaGFkb3dzKCkgYXMgTmd0c1N0YWdlU2hhZG93c09wdGlvbnMpPy50eXBlID09PSAnYWNjdW11bGF0aXZlJyxcblx0KTtcblx0c2hhZG93T3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBzaGFkb3dzID0gdGhpcy5zaGFkb3dzKCkgYXMgTmd0c1N0YWdlU2hhZG93c09wdGlvbnM7XG5cblx0XHRpZiAodGhpcy5jb250YWN0U2hhZG93KCkpIHtcblx0XHRcdHJldHVybiB7IHNjYWxlOiB0aGlzLnJhZGl1cygpICogNCwgZmFyOiB0aGlzLnJhZGl1cygpLCBibHVyOiAyLCAuLi5zaGFkb3dzIH07XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuYWNjdW11bGF0aXZlU2hhZG93KCkpIHtcblx0XHRcdHJldHVybiB7IHRlbXBvcmFsOiB0cnVlLCBmcmFtZXM6IDEwMCwgYWxwaGFUZXN0OiAwLjksIHRvbmVNYXBwZWQ6IHRydWUsIHNjYWxlOiB0aGlzLnJhZGl1cygpICogNCwgLi4uc2hhZG93cyB9O1xuXHRcdH1cblxuXHRcdHJldHVybiB0eXBlb2Ygc2hhZG93cyA9PT0gJ29iamVjdCcgPyBzaGFkb3dzIDoge307XG5cdH0pO1xuXHRyYW5kb21pemVkTGlnaHRzT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRpZiAoIXRoaXMuYWNjdW11bGF0aXZlU2hhZG93KCkpIHJldHVybiB7fTtcblx0XHRjb25zdCBzaGFkb3dzID0gdGhpcy5zaGFkb3dzKCkgYXMgTmd0c1N0YWdlU2hhZG93c09wdGlvbnM7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGFtb3VudDogc2hhZG93cy5hbW91bnQgPz8gOCxcblx0XHRcdHJhZGl1czogc2hhZG93cy5yYWRpdXMgPz8gdGhpcy5yYWRpdXMoKSxcblx0XHRcdGFtYmllbnQ6IHNoYWRvd3MuYW1iaWVudCA/PyAwLjUsXG5cdFx0XHRpbnRlbnNpdHk6IHNoYWRvd3MuaW50ZW5zaXR5ID8/IDEsXG5cdFx0XHRwb3NpdGlvbjogW1xuXHRcdFx0XHR0aGlzLmNvbmZpZygpLm1haW5bMF0gKiB0aGlzLnJhZGl1cygpLFxuXHRcdFx0XHR0aGlzLmNvbmZpZygpLm1haW5bMV0gKiB0aGlzLnJhZGl1cygpLFxuXHRcdFx0XHR0aGlzLmNvbmZpZygpLm1haW5bMl0gKiB0aGlzLnJhZGl1cygpLFxuXHRcdFx0XSxcblx0XHRcdHNpemU6IHRoaXMucmFkaXVzKCkgKiA0LFxuXHRcdFx0YmlhczogLXRoaXMuc2hhZG93QmlhcygpLFxuXHRcdFx0bWFwU2l6ZTogdGhpcy5zaGFkb3dTaXplKCksXG5cdFx0fSBhcyBQYXJ0aWFsPE5ndHNSYW5kb21pemVkTGlnaHRzT3B0aW9ucz47XG5cdH0pO1xuXHRlbnZpcm9ubWVudE9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgZW52aXJvbm1lbnQgPSB0aGlzLmVudmlyb25tZW50KCk7XG5cdFx0cmV0dXJuICFlbnZpcm9ubWVudCA/IHt9IDogdHlwZW9mIGVudmlyb25tZW50ID09PSAnc3RyaW5nJyA/IHsgcHJlc2V0OiBlbnZpcm9ubWVudCB9IDogZW52aXJvbm1lbnQ7XG5cdH0pO1xuXG5cdGJvdW5kc09wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiAoe1xuXHRcdGZpdDogISF0aGlzLmFkanVzdENhbWVyYSgpLFxuXHRcdGNsaXA6ICEhdGhpcy5hZGp1c3RDYW1lcmEoKSxcblx0XHRtYXJnaW46IE51bWJlcih0aGlzLmFkanVzdENhbWVyYSgpKSxcblx0XHRvYnNlcnZlOiB0cnVlLFxuXHRcdC4uLnRoaXMucGFyYW1ldGVycygpLFxuXHR9KSk7XG5cdGNlbnRlck9wdGlvbnMgPSBjb21wdXRlZChcblx0XHQoKSA9PlxuXHRcdFx0KHtcblx0XHRcdFx0Li4uKHRoaXMuY2VudGVyKCkgfHwge30pLFxuXHRcdFx0XHRwb3NpdGlvbjogWzAsIHRoaXMuc2hhZG93T2Zmc2V0KCkgLyAyLCAwXSxcblx0XHRcdH0pIGFzIFBhcnRpYWw8Tmd0c0NlbnRlck9wdGlvbnM+LFxuXHQpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IEFtYmllbnRMaWdodCwgU3BvdExpZ2h0LCBQb2ludExpZ2h0LCBHcm91cCwgVmVjdG9yMiB9KTtcblx0fVxuXG5cdG9uQ2VudGVyKCRldmVudDogTmd0c0NlbnRlclN0YXRlKSB7XG5cdFx0Y29uc3QgeyB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYm91bmRpbmdTcGhlcmUgfSA9ICRldmVudDtcblx0XHR0aGlzLmRpbXMuc2V0KHsgcmFkaXVzOiBib3VuZGluZ1NwaGVyZS5yYWRpdXMsIHdpZHRoLCBoZWlnaHQsIGRlcHRoIH0pO1xuXHRcdHRoaXMuY2VudGVyZWQuZW1pdCgkZXZlbnQpO1xuXHR9XG59XG4iXX0=
@@ -44,14 +44,14 @@ export class NgtsStats {
44
44
  });
45
45
  });
46
46
  }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsStats, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
48
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.9", type: NgtsStats, isStandalone: true, selector: "ngt-canvas[stats]", inputs: { options: { classPropertyName: "options", publicName: "stats", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsStats, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
48
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.11", type: NgtsStats, isStandalone: true, selector: "ngt-canvas[stats]", inputs: { options: { classPropertyName: "options", publicName: "stats", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
49
49
  }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsStats, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsStats, decorators: [{
51
51
  type: Directive,
52
52
  args: [{
53
53
  selector: 'ngt-canvas[stats]',
54
54
  standalone: true,
55
55
  }]
56
56
  }], ctorParameters: () => [] });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhdHMvc3JjL2xpYi9zdGF0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEtBQUssTUFBTSxVQUFVLENBQUM7O0FBUTdCLE1BQU0sY0FBYyxHQUFxQjtJQUN4QyxRQUFRLEVBQUUsRUFBRTtJQUNaLE1BQU0sRUFBRSxJQUFJO0NBQ1osQ0FBQztBQU1GLE1BQU0sT0FBTyxTQUFTO0lBR3JCO1FBRkEsWUFBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRzNGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDaEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFaEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQzVCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMzQixNQUFNLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsR0FBRztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUV0QixNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4RCxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckIsT0FBTyxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU87WUFFcEIsTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDaEUsTUFBTSxNQUFNLEdBQUcsT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDeEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDL0IsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkQsSUFBSSxTQUFTLENBQUMsTUFBTTtnQkFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztZQUM3RCxNQUFNLEdBQUcsR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFFbEQsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLFNBQVMsQ0FBQyxNQUFNO29CQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDO2dCQUNoRSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDL0IsR0FBRyxFQUFFLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0F0Q1csU0FBUztrR0FBVCxTQUFTOzsyRkFBVCxTQUFTO2tCQUpyQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhZGRBZnRlckVmZmVjdCwgaW5qZWN0U3RvcmUsIG9taXQsIHBpY2ssIHJlc29sdmVSZWYgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCBTdGF0cyBmcm9tICdzdGF0cy1nbCc7XG5cbmV4cG9ydCB0eXBlIE5ndHNTdGF0c09wdGlvbnMgPSBQYXJ0aWFsPFN0YXRzPiAmIHtcblx0c2hvd1BhbmVsPzogbnVtYmVyO1xuXHRkb21DbGFzczogc3RyaW5nO1xuXHRwYXJlbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkO1xufTtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHNTdGF0c09wdGlvbnMgPSB7XG5cdGRvbUNsYXNzOiAnJyxcblx0cGFyZW50OiBudWxsLFxufTtcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnbmd0LWNhbnZhc1tzdGF0c10nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzU3RhdHMge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucyksIGFsaWFzOiAnc3RhdHMnIH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGNvbnN0IHN0YXRzT3B0aW9ucyA9IG9taXQodGhpcy5vcHRpb25zLCBbJ3BhcmVudCcsICdkb21DbGFzcyddKTtcblx0XHRjb25zdCBwYXJlbnQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3BhcmVudCcpO1xuXHRcdGNvbnN0IGRvbUNsYXNzID0gcGljayh0aGlzLm9wdGlvbnMsICdkb21DbGFzcycpO1xuXG5cdFx0Y29uc3QgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXHRcdGNvbnN0IHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0XHRjb25zdCBnbCA9IHN0b3JlLnNlbGVjdCgnZ2wnKTtcblxuXHRcdGNvbnN0IHN0YXRzID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0Y29uc3QgX2dsID0gZ2woKTtcblx0XHRcdGlmICghX2dsKSByZXR1cm4gbnVsbDtcblxuXHRcdFx0Y29uc3Qgc3RhdHMgPSBuZXcgU3RhdHMoeyAuLi51bnRyYWNrZWQoc3RhdHNPcHRpb25zKSB9KTtcblx0XHRcdHZvaWQgc3RhdHMuaW5pdChfZ2wpO1xuXHRcdFx0cmV0dXJuIHN0YXRzO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IF9zdGF0cyA9IHN0YXRzKCk7XG5cdFx0XHRpZiAoIV9zdGF0cykgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBbX3BhcmVudCwgX2RvbUNsYXNzXSA9IFtyZXNvbHZlUmVmKHBhcmVudCgpKSwgZG9tQ2xhc3MoKV07XG5cdFx0XHRjb25zdCB0YXJnZXQgPSBfcGFyZW50ID8/IGRvY3VtZW50LmJvZHk7XG5cdFx0XHR0YXJnZXQuYXBwZW5kQ2hpbGQoX3N0YXRzLmRvbSk7XG5cdFx0XHRjb25zdCBjbGFzc0xpc3QgPSBfZG9tQ2xhc3Muc3BsaXQoJyAnKS5maWx0ZXIoQm9vbGVhbik7XG5cdFx0XHRpZiAoY2xhc3NMaXN0Lmxlbmd0aCkgX3N0YXRzLmRvbS5jbGFzc0xpc3QuYWRkKC4uLmNsYXNzTGlzdCk7XG5cdFx0XHRjb25zdCBlbmQgPSBhZGRBZnRlckVmZmVjdCgoKSA9PiBfc3RhdHMudXBkYXRlKCkpO1xuXG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRpZiAoY2xhc3NMaXN0Lmxlbmd0aCkgX3N0YXRzLmRvbS5jbGFzc0xpc3QucmVtb3ZlKC4uLmNsYXNzTGlzdCk7XG5cdFx0XHRcdHRhcmdldC5yZW1vdmVDaGlsZChfc3RhdHMuZG9tKTtcblx0XHRcdFx0ZW5kKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuIl19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhdHMvc3JjL2xpYi9zdGF0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEtBQUssTUFBTSxVQUFVLENBQUM7O0FBUTdCLE1BQU0sY0FBYyxHQUFxQjtJQUN4QyxRQUFRLEVBQUUsRUFBRTtJQUNaLE1BQU0sRUFBRSxJQUFJO0NBQ1osQ0FBQztBQU1GLE1BQU0sT0FBTyxTQUFTO0lBR3JCO1FBRkEsWUFBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRzNGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDaEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFaEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQzVCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMzQixNQUFNLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsR0FBRztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUV0QixNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4RCxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckIsT0FBTyxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU87WUFFcEIsTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDaEUsTUFBTSxNQUFNLEdBQUcsT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDeEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDL0IsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkQsSUFBSSxTQUFTLENBQUMsTUFBTTtnQkFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztZQUM3RCxNQUFNLEdBQUcsR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFFbEQsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLFNBQVMsQ0FBQyxNQUFNO29CQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDO2dCQUNoRSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDL0IsR0FBRyxFQUFFLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzsrR0F0Q1csU0FBUzttR0FBVCxTQUFTOzs0RkFBVCxTQUFTO2tCQUpyQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhZGRBZnRlckVmZmVjdCwgaW5qZWN0U3RvcmUsIG9taXQsIHBpY2ssIHJlc29sdmVSZWYgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCBTdGF0cyBmcm9tICdzdGF0cy1nbCc7XG5cbmV4cG9ydCB0eXBlIE5ndHNTdGF0c09wdGlvbnMgPSBQYXJ0aWFsPFN0YXRzPiAmIHtcblx0c2hvd1BhbmVsPzogbnVtYmVyO1xuXHRkb21DbGFzczogc3RyaW5nO1xuXHRwYXJlbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkO1xufTtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHNTdGF0c09wdGlvbnMgPSB7XG5cdGRvbUNsYXNzOiAnJyxcblx0cGFyZW50OiBudWxsLFxufTtcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnbmd0LWNhbnZhc1tzdGF0c10nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzU3RhdHMge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucyksIGFsaWFzOiAnc3RhdHMnIH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGNvbnN0IHN0YXRzT3B0aW9ucyA9IG9taXQodGhpcy5vcHRpb25zLCBbJ3BhcmVudCcsICdkb21DbGFzcyddKTtcblx0XHRjb25zdCBwYXJlbnQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3BhcmVudCcpO1xuXHRcdGNvbnN0IGRvbUNsYXNzID0gcGljayh0aGlzLm9wdGlvbnMsICdkb21DbGFzcycpO1xuXG5cdFx0Y29uc3QgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXHRcdGNvbnN0IHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0XHRjb25zdCBnbCA9IHN0b3JlLnNlbGVjdCgnZ2wnKTtcblxuXHRcdGNvbnN0IHN0YXRzID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0Y29uc3QgX2dsID0gZ2woKTtcblx0XHRcdGlmICghX2dsKSByZXR1cm4gbnVsbDtcblxuXHRcdFx0Y29uc3Qgc3RhdHMgPSBuZXcgU3RhdHMoeyAuLi51bnRyYWNrZWQoc3RhdHNPcHRpb25zKSB9KTtcblx0XHRcdHZvaWQgc3RhdHMuaW5pdChfZ2wpO1xuXHRcdFx0cmV0dXJuIHN0YXRzO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IF9zdGF0cyA9IHN0YXRzKCk7XG5cdFx0XHRpZiAoIV9zdGF0cykgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBbX3BhcmVudCwgX2RvbUNsYXNzXSA9IFtyZXNvbHZlUmVmKHBhcmVudCgpKSwgZG9tQ2xhc3MoKV07XG5cdFx0XHRjb25zdCB0YXJnZXQgPSBfcGFyZW50ID8/IGRvY3VtZW50LmJvZHk7XG5cdFx0XHR0YXJnZXQuYXBwZW5kQ2hpbGQoX3N0YXRzLmRvbSk7XG5cdFx0XHRjb25zdCBjbGFzc0xpc3QgPSBfZG9tQ2xhc3Muc3BsaXQoJyAnKS5maWx0ZXIoQm9vbGVhbik7XG5cdFx0XHRpZiAoY2xhc3NMaXN0Lmxlbmd0aCkgX3N0YXRzLmRvbS5jbGFzc0xpc3QuYWRkKC4uLmNsYXNzTGlzdCk7XG5cdFx0XHRjb25zdCBlbmQgPSBhZGRBZnRlckVmZmVjdCgoKSA9PiBfc3RhdHMudXBkYXRlKCkpO1xuXG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRpZiAoY2xhc3NMaXN0Lmxlbmd0aCkgX3N0YXRzLmRvbS5jbGFzc0xpc3QucmVtb3ZlKC4uLmNsYXNzTGlzdCk7XG5cdFx0XHRcdHRhcmdldC5yZW1vdmVDaGlsZChfc3RhdHMuZG9tKTtcblx0XHRcdFx0ZW5kKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuIl19
@@ -48,8 +48,8 @@ class NgtsBillboard {
48
48
  group.rotation.z = prevRotation.z;
49
49
  });
50
50
  }
51
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsBillboard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
52
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.9", type: NgtsBillboard, isStandalone: true, selector: "ngts-billboard", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "innerRef", first: true, predicate: ["inner"], descendants: true, isSignal: true }], ngImport: i0, template: `
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsBillboard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
52
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsBillboard, isStandalone: true, selector: "ngts-billboard", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "innerRef", first: true, predicate: ["inner"], descendants: true, isSignal: true }], ngImport: i0, template: `
53
53
  <ngt-group #group [parameters]="parameters()">
54
54
  <ngt-group #inner>
55
55
  <ng-content />
@@ -57,7 +57,7 @@ class NgtsBillboard {
57
57
  </ngt-group>
58
58
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
59
59
  }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsBillboard, decorators: [{
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsBillboard, decorators: [{
61
61
  type: Component,
62
62
  args: [{
63
63
  selector: 'ngts-billboard',
@@ -144,8 +144,8 @@ class NgtsLine {
144
144
  });
145
145
  });
146
146
  }
147
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
148
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.9", type: NgtsLine, isStandalone: true, selector: "ngts-line", inputs: { points: { classPropertyName: "points", publicName: "points", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lineRef", first: true, predicate: ["line"], descendants: true, isSignal: true }], ngImport: i0, template: `
147
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
148
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsLine, isStandalone: true, selector: "ngts-line", inputs: { points: { classPropertyName: "points", publicName: "points", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lineRef", first: true, predicate: ["line"], descendants: true, isSignal: true }], ngImport: i0, template: `
149
149
  <ngt-primitive *args="[line2()]" #line [parameters]="parameters()">
150
150
  <ngt-primitive *args="[lineGeometry()]" attach="geometry" (attached)="onGeometryAttached($any($event))" />
151
151
  <ngt-primitive
@@ -163,7 +163,7 @@ class NgtsLine {
163
163
  </ngt-primitive>
164
164
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
165
165
  }
166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsLine, decorators: [{
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsLine, decorators: [{
167
167
  type: Component,
168
168
  args: [{
169
169
  selector: 'ngts-line',
@@ -239,14 +239,14 @@ class NgtsCatmullRomLine {
239
239
  });
240
240
  this.lineOptions = computed(() => ({ ...this.parameters(), vertexColors: this.interpolatedVertexColors() }));
241
241
  }
242
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsCatmullRomLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
243
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.9", type: NgtsCatmullRomLine, isStandalone: true, selector: "ngts-catmull-rom-line", inputs: { points: { classPropertyName: "points", publicName: "points", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
242
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsCatmullRomLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
243
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsCatmullRomLine, isStandalone: true, selector: "ngts-catmull-rom-line", inputs: { points: { classPropertyName: "points", publicName: "points", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
244
244
  <ngts-line [points]="segmentedPoints()" [options]="lineOptions()">
245
245
  <ng-content />
246
246
  </ngts-line>
247
247
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line", inputs: ["points", "options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
248
248
  }
249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsCatmullRomLine, decorators: [{
249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsCatmullRomLine, decorators: [{
250
250
  type: Component,
251
251
  args: [{
252
252
  selector: 'ngts-catmull-rom-line',
@@ -284,14 +284,14 @@ class NgtsCubicBezierLine {
284
284
  return new CubicBezierCurve3(startV, midAV, midBV, endV).getPoints(segments);
285
285
  });
286
286
  }
287
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsCubicBezierLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
288
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.9", type: NgtsCubicBezierLine, isStandalone: true, selector: "ngts-cubic-bezier-line", inputs: { start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: true, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: true, transformFunction: null }, midA: { classPropertyName: "midA", publicName: "midA", isSignal: true, isRequired: true, transformFunction: null }, midB: { classPropertyName: "midB", publicName: "midB", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
287
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsCubicBezierLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
288
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsCubicBezierLine, isStandalone: true, selector: "ngts-cubic-bezier-line", inputs: { start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: true, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: true, transformFunction: null }, midA: { classPropertyName: "midA", publicName: "midA", isSignal: true, isRequired: true, transformFunction: null }, midB: { classPropertyName: "midB", publicName: "midB", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
289
289
  <ngts-line [points]="points()" [options]="parameters()">
290
290
  <ng-content />
291
291
  </ngts-line>
292
292
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line", inputs: ["points", "options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
293
293
  }
294
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsCubicBezierLine, decorators: [{
294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsCubicBezierLine, decorators: [{
295
295
  type: Component,
296
296
  args: [{
297
297
  selector: 'ngts-cubic-bezier-line',
@@ -344,14 +344,14 @@ class NgtsEdges {
344
344
  line.computeLineDistances();
345
345
  });
346
346
  }
347
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsEdges, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
348
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.9", type: NgtsEdges, isStandalone: true, selector: "ngts-edges", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
347
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsEdges, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
348
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsEdges, isStandalone: true, selector: "ngts-edges", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
349
349
  <ngts-line [points]="tmpPoints" [options]="lineOptions()">
350
350
  <ng-content />
351
351
  </ngts-line>
352
352
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line", inputs: ["points", "options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
353
353
  }
354
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsEdges, decorators: [{
354
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsEdges, decorators: [{
355
355
  type: Component,
356
356
  args: [{
357
357
  selector: 'ngts-edges',
@@ -418,8 +418,8 @@ class NgtsGradientTexture {
418
418
  });
419
419
  extend({ CanvasTexture });
420
420
  }
421
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsGradientTexture, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
422
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.9", type: NgtsGradientTexture, isStandalone: true, selector: "ngts-gradient-texture", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, stops: { classPropertyName: "stops", publicName: "stops", isSignal: true, isRequired: true, transformFunction: null }, colors: { classPropertyName: "colors", publicName: "colors", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
421
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsGradientTexture, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
422
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.11", type: NgtsGradientTexture, isStandalone: true, selector: "ngts-gradient-texture", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, stops: { classPropertyName: "stops", publicName: "stops", isSignal: true, isRequired: true, transformFunction: null }, colors: { classPropertyName: "colors", publicName: "colors", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
423
423
  <ngt-canvas-texture
424
424
  *args="[canvas()]"
425
425
  [attach]="attach()"
@@ -430,7 +430,7 @@ class NgtsGradientTexture {
430
430
  </ngt-canvas-texture>
431
431
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
432
432
  }
433
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsGradientTexture, decorators: [{
433
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsGradientTexture, decorators: [{
434
434
  type: Component,
435
435
  args: [{
436
436
  selector: 'ngts-gradient-texture',
@@ -517,8 +517,8 @@ class NgtsGrid {
517
517
  worldPlanePosition.value.set(0, 0, 0).applyMatrix4(mesh.matrixWorld);
518
518
  });
519
519
  }
520
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
521
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.9", type: NgtsGrid, isStandalone: true, selector: "ngts-grid", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
520
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
521
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsGrid, isStandalone: true, selector: "ngts-grid", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
522
522
  <ngt-mesh #mesh [frustumCulled]="false" [parameters]="parameters()">
523
523
  <ngt-plane-geometry *args="planeArgs()" />
524
524
  <ngt-grid-material [transparent]="true" [side]="side()" [parameters]="uniforms()">
@@ -528,7 +528,7 @@ class NgtsGrid {
528
528
  </ngt-mesh>
529
529
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
530
530
  }
531
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsGrid, decorators: [{
531
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsGrid, decorators: [{
532
532
  type: Component,
533
533
  args: [{
534
534
  selector: 'ngts-grid',
@@ -599,12 +599,12 @@ class NgtsHelper {
599
599
  this.helper = injectHelper(this.parent, this.type, { args: this.options });
600
600
  extend({ Object3D });
601
601
  }
602
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsHelper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
603
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.9", type: NgtsHelper, isStandalone: true, selector: "ngts-helper", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "helperRef", first: true, predicate: ["helper"], descendants: true, isSignal: true }], ngImport: i0, template: `
602
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsHelper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
603
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsHelper, isStandalone: true, selector: "ngts-helper", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "helperRef", first: true, predicate: ["helper"], descendants: true, isSignal: true }], ngImport: i0, template: `
604
604
  <ngt-object3D #helper />
605
605
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
606
606
  }
607
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsHelper, decorators: [{
607
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsHelper, decorators: [{
608
608
  type: Component,
609
609
  args: [{
610
610
  standalone: true,
@@ -635,14 +635,14 @@ class NgtsPrismGeometry {
635
635
  this.geometryRef = viewChild('geometry');
636
636
  extend({ ExtrudeGeometry });
637
637
  }
638
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsPrismGeometry, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
639
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.9", type: NgtsPrismGeometry, isStandalone: true, selector: "ngts-prism-geometry", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, vertices: { classPropertyName: "vertices", publicName: "vertices", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "geometryRef", first: true, predicate: ["geometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
638
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsPrismGeometry, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
639
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsPrismGeometry, isStandalone: true, selector: "ngts-prism-geometry", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, vertices: { classPropertyName: "vertices", publicName: "vertices", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "geometryRef", first: true, predicate: ["geometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
640
640
  <ngt-extrude-geometry #geometry *args="[shape(), parameters()]" [attach]="attach()">
641
641
  <ng-content />
642
642
  </ngt-extrude-geometry>
643
643
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
644
644
  }
645
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsPrismGeometry, decorators: [{
645
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsPrismGeometry, decorators: [{
646
646
  type: Component,
647
647
  args: [{
648
648
  selector: 'ngts-prism-geometry',
@@ -703,14 +703,14 @@ class NgtsQuadraticBezierLine {
703
703
  }
704
704
  return this.curve.getPoints(segments);
705
705
  }
706
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsQuadraticBezierLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
707
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.9", type: NgtsQuadraticBezierLine, isStandalone: true, selector: "ngts-quadratic-bezier-line", inputs: { start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: false, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: false, transformFunction: null }, mid: { classPropertyName: "mid", publicName: "mid", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
706
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsQuadraticBezierLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
707
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsQuadraticBezierLine, isStandalone: true, selector: "ngts-quadratic-bezier-line", inputs: { start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: false, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: false, transformFunction: null }, mid: { classPropertyName: "mid", publicName: "mid", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
708
708
  <ngts-line [points]="points()" [options]="parameters()">
709
709
  <ng-content />
710
710
  </ngts-line>
711
711
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line", inputs: ["points", "options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
712
712
  }
713
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsQuadraticBezierLine, decorators: [{
713
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsQuadraticBezierLine, decorators: [{
714
714
  type: Component,
715
715
  args: [{
716
716
  selector: 'ngts-quadratic-bezier-line',
@@ -799,15 +799,15 @@ class NgtsRoundedBox {
799
799
  toCreasedNormals(geometry, untracked(this.creaseAngle));
800
800
  });
801
801
  }
802
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsRoundedBox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
803
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.9", type: NgtsRoundedBox, isStandalone: true, selector: "ngts-rounded-box", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }, { propertyName: "geometryRef", first: true, predicate: ["geometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
802
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsRoundedBox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
803
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsRoundedBox, isStandalone: true, selector: "ngts-rounded-box", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }, { propertyName: "geometryRef", first: true, predicate: ["geometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
804
804
  <ngt-mesh #mesh [parameters]="parameters()">
805
805
  <ngt-extrude-geometry #geometry *args="[shape(), params()]" />
806
806
  <ng-content />
807
807
  </ngt-mesh>
808
808
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
809
809
  }
810
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsRoundedBox, decorators: [{
810
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsRoundedBox, decorators: [{
811
811
  type: Component,
812
812
  args: [{
813
813
  selector: 'ngts-rounded-box',
@@ -862,8 +862,8 @@ class NgtsText {
862
862
  });
863
863
  });
864
864
  }
865
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsText, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
866
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.9", type: NgtsText, isStandalone: true, selector: "ngts-text", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { synced: "synced" }, ngImport: i0, template: `
865
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsText, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
866
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.11", type: NgtsText, isStandalone: true, selector: "ngts-text", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { synced: "synced" }, ngImport: i0, template: `
867
867
  <ngt-primitive
868
868
  *args="[troikaMesh]"
869
869
  [text]="text()"
@@ -878,7 +878,7 @@ class NgtsText {
878
878
  </ngt-primitive>
879
879
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
880
880
  }
881
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsText, decorators: [{
881
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsText, decorators: [{
882
882
  type: Component,
883
883
  args: [{
884
884
  selector: 'ngts-text',
@@ -971,15 +971,15 @@ class NgtsText3D {
971
971
  }
972
972
  });
973
973
  }
974
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsText3D, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
975
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.9", type: NgtsText3D, isStandalone: true, selector: "ngts-text-3d", inputs: { font: { classPropertyName: "font", publicName: "font", isSignal: true, isRequired: true, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, 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: "textGeometryRef", first: true, predicate: ["textGeometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
974
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsText3D, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
975
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsText3D, isStandalone: true, selector: "ngts-text-3d", inputs: { font: { classPropertyName: "font", publicName: "font", isSignal: true, isRequired: true, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, 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: "textGeometryRef", first: true, predicate: ["textGeometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
976
976
  <ngt-mesh #mesh [parameters]="parameters()">
977
977
  <ngt-text-geometry #textGeometry *args="textArgs()" />
978
978
  <ng-content />
979
979
  </ngt-mesh>
980
980
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
981
981
  }
982
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NgtsText3D, decorators: [{
982
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsText3D, decorators: [{
983
983
  type: Component,
984
984
  args: [{
985
985
  selector: 'ngts-text-3d',