angular-three 1.0.0-beta.7 → 1.0.0-beta.8

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.
@@ -158,7 +158,7 @@ export class NgtCanvas extends NgtRxStore {
158
158
  compoundPrefixes: this.compoundPrefixes,
159
159
  }),
160
160
  ], this.envInjector);
161
- this.glRef = this.glAnchor.createComponent(this.scene, { environmentInjector: this.glEnvInjector });
161
+ this.glRef = this.glAnchor.createComponent(this.sceneGraph, { environmentInjector: this.glEnvInjector });
162
162
  this.glRef.changeDetectorRef.detach();
163
163
  // here, we override the detectChanges to also call detectChanges on the ComponentRef
164
164
  this.overrideDetectChanges();
@@ -184,7 +184,7 @@ export class NgtCanvas extends NgtRxStore {
184
184
  }
185
185
  }
186
186
  NgtCanvas.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgtCanvas, deps: null, target: i0.ɵɵFactoryTarget.Component });
187
- NgtCanvas.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: NgtCanvas, isStandalone: true, selector: "ngt-canvas", inputs: { scene: "scene", compoundPrefixes: "compoundPrefixes", linear: "linear", legacy: "legacy", flat: "flat", orthographic: "orthographic", frameloop: "frameloop", dpr: "dpr", raycaster: "raycaster", shadows: "shadows", camera: "camera", gl: "gl", eventSource: "eventSource", eventPrefix: "eventPrefix", lookAt: "lookAt", performance: "performance" }, outputs: { created: "created", pointerMissed: "pointerMissed" }, host: { properties: { "class.ngt-canvas": "this.hostClass", "style.pointerEvents": "this.pointerEvents" } }, providers: [NgtStore], viewQueries: [{ propertyName: "glCanvas", first: true, predicate: ["glCanvas"], descendants: true, static: true }, { propertyName: "glAnchor", first: true, predicate: ["glAnchor"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: `
187
+ NgtCanvas.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: NgtCanvas, isStandalone: true, selector: "ngt-canvas", inputs: { sceneGraph: "sceneGraph", compoundPrefixes: "compoundPrefixes", linear: "linear", legacy: "legacy", flat: "flat", orthographic: "orthographic", frameloop: "frameloop", dpr: "dpr", raycaster: "raycaster", shadows: "shadows", camera: "camera", gl: "gl", eventSource: "eventSource", eventPrefix: "eventPrefix", lookAt: "lookAt", performance: "performance" }, outputs: { created: "created", pointerMissed: "pointerMissed" }, host: { properties: { "class.ngt-canvas": "this.hostClass", "style.pointerEvents": "this.pointerEvents" } }, providers: [NgtStore], viewQueries: [{ propertyName: "glCanvas", first: true, predicate: ["glCanvas"], descendants: true, static: true }, { propertyName: "glAnchor", first: true, predicate: ["glAnchor"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: `
188
188
  <ngt-canvas-container (canvasResize)="onResize($event)">
189
189
  <canvas #glCanvas style="display: block;"></canvas>
190
190
  <ng-container #glAnchor />
@@ -204,7 +204,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
204
204
  }], pointerEvents: [{
205
205
  type: HostBinding,
206
206
  args: ['style.pointerEvents']
207
- }], scene: [{
207
+ }], sceneGraph: [{
208
208
  type: Input
209
209
  }], compoundPrefixes: [{
210
210
  type: Input
@@ -247,4 +247,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
247
247
  type: ViewChild,
248
248
  args: ['glAnchor', { static: true, read: ViewContainerRef }]
249
249
  }] } });
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlL3NyYy9saWIvY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUVULHlCQUF5QixFQUN6QixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsRUFDVCxnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBbUIsdUJBQXVCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQWlCM0MsTUFBTSxPQUFPLGtCQUFrQjtJQWYvQjtRQWdCYyxpQkFBWSxHQUFHLGVBQWUsRUFBRSxDQUFDO0tBQzlDOzsrR0FGWSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw4R0FGaEIsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLDBCQVZqRCxnQkFBZ0I7MkZBWWpCLGtCQUFrQjtrQkFmOUIsU0FBUzsrQkFDSSxzQkFBc0IsY0FDcEIsSUFBSSxZQUNOLGdCQUFn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LEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRSZWYsXG4gICAgY3JlYXRlRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBFbGVtZW50UmVmLFxuICAgIEVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBUeXBlLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdE5neFJlc2l6ZSwgTmd4UmVzaXplUmVzdWx0LCBwcm92aWRlTmd4UmVzaXplT3B0aW9ucyB9IGZyb20gJ25neC1yZXNpemUnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBwcm92aWRlTmd0UmVuZGVyZXIgfSBmcm9tICcuL3JlbmRlcmVyL3Byb3ZpZGVyJztcbmltcG9ydCB7IE5ndFJ4U3RvcmUgfSBmcm9tICcuL3N0b3Jlcy9yeC1zdG9yZSc7XG5pbXBvcnQgeyBOZ3RTdG9yZSwgcm9vdFN0YXRlTWFwIH0gZnJvbSAnLi9zdG9yZXMvc3RvcmUnO1xuaW1wb3J0IHR5cGUgeyBOZ3RDYW52YXNJbnB1dHMsIE5ndERvbUV2ZW50LCBOZ3REcHIsIE5ndFN0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vdXRpbHMvaXMnO1xuaW1wb3J0IHsgY3JlYXRlUG9pbnRlckV2ZW50cyB9IGZyb20gJy4vd2ViL2V2ZW50cyc7XG5pbXBvcnQgeyBpbmplY3ROZ3RMb2FkZXIgfSBmcm9tICcuL2xvYWRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0LWNhbnZhcy1jb250YWluZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6ICc8bmctY29udGVudCAvPicsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtwcm92aWRlTmd4UmVzaXplT3B0aW9ucyh7IGVtaXRJblpvbmU6IGZhbHNlIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0Q2FudmFzQ29udGFpbmVyIHtcbiAgICBAT3V0cHV0KCkgY2FudmFzUmVzaXplID0gaW5qZWN0Tmd4UmVzaXplKCk7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0LWNhbnZhcycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LWNhbnZhcy1jb250YWluZXIgKGNhbnZhc1Jlc2l6ZSk9XCJvblJlc2l6ZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8Y2FudmFzICNnbENhbnZhcyBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPjwvY2FudmFzPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAjZ2xBbmNob3IgLz5cbiAgICAgICAgPC9uZ3QtY2FudmFzLWNvbnRhaW5lcj5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RDYW52YXNDb250YWluZXJdLFxuICAgIHByb3ZpZGVyczogW05ndFN0b3JlXSxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RDYW52YXMgZXh0ZW5kcyBOZ3RSeFN0b3JlPE5ndENhbnZhc0lucHV0cz4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZW52SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0ID0gaW5qZWN0KEVsZW1lbnRSZWYpIGFzIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICBzaGFkb3dzOiBmYWxzZSxcbiAgICAgICAgICAgIGxpbmVhcjogZmFsc2UsXG4gICAgICAgICAgICBmbGF0OiBmYWxzZSxcbiAgICAgICAgICAgIGxlZ2FjeTogZmFsc2UsXG4gICAgICAgICAgICBvcnRob2dyYXBoaWM6IGZhbHNlLFxuICAgICAgICAgICAgZnJhbWVsb29wOiAnYWx3YXlzJyxcbiAgICAgICAgICAgIGRwcjogWzEsIDJdLFxuICAgICAgICAgICAgZXZlbnRzOiBjcmVhdGVQb2ludGVyRXZlbnRzLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLm5ndC1jYW52YXMnKSByZWFkb25seSBob3N0Q2xhc3MgPSB0cnVlO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUucG9pbnRlckV2ZW50cycpIGdldCBwb2ludGVyRXZlbnRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ2V2ZW50U291cmNlJykgIT09IHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50ID8gJ25vbmUnIDogJ2F1dG8nO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNjZW5lITogVHlwZTxhbnk+O1xuICAgIEBJbnB1dCgpIGNvbXBvdW5kUHJlZml4ZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBASW5wdXQoKSBzZXQgbGluZWFyKGxpbmVhcjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGxpbmVhciB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbGVnYWN5KGxlZ2FjeTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGxlZ2FjeSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZmxhdChmbGF0OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZmxhdCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgb3J0aG9ncmFwaGljKG9ydGhvZ3JhcGhpYzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IG9ydGhvZ3JhcGhpYyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZnJhbWVsb29wKGZyYW1lbG9vcDogTmd0Q2FudmFzSW5wdXRzWydmcmFtZWxvb3AnXSkge1xuICAgICAgICB0aGlzLnNldCh7IGZyYW1lbG9vcCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZHByKGRwcjogTmd0RHByKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZHByIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCByYXljYXN0ZXIocmF5Y2FzdGVyOiBQYXJ0aWFsPFRIUkVFLlJheWNhc3Rlcj4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyByYXljYXN0ZXIgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNoYWRvd3Moc2hhZG93czogYm9vbGVhbiB8IFBhcnRpYWw8VEhSRUUuV2ViR0xTaGFkb3dNYXA+KSB7XG4gICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgIHNoYWRvd3M6IHR5cGVvZiBzaGFkb3dzID09PSAnb2JqZWN0JyA/IChzaGFkb3dzIGFzIFBhcnRpYWw8VEhSRUUuV2ViR0xTaGFkb3dNYXA+KSA6IHNoYWRvd3MsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBjYW1lcmEoY2FtZXJhOiBOZ3RDYW52YXNJbnB1dHNbJ2NhbWVyYSddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY2FtZXJhIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBnbChnbDogTmd0Q2FudmFzSW5wdXRzWydnbCddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZ2wgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGV2ZW50U291cmNlKGV2ZW50U291cmNlOiBOZ3RDYW52YXNJbnB1dHNbJ2V2ZW50U291cmNlJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBldmVudFNvdXJjZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZXZlbnRQcmVmaXgoZXZlbnRQcmVmaXg6IE5ndENhbnZhc0lucHV0c1snZXZlbnRQcmVmaXgnXSkge1xuICAgICAgICB0aGlzLnNldCh7IGV2ZW50UHJlZml4IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsb29rQXQobG9va0F0OiBOZ3RDYW52YXNJbnB1dHNbJ2xvb2tBdCddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbG9va0F0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBwZXJmb3JtYW5jZShwZXJmb3JtYW5jZTogTmd0Q2FudmFzSW5wdXRzWydwZXJmb3JtYW5jZSddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcGVyZm9ybWFuY2UgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5ndFN0YXRlPigpO1xuICAgIEBPdXRwdXQoKSBwb2ludGVyTWlzc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnZ2xDYW52YXMnLCB7IHN0YXRpYzogdHJ1ZSB9KSBnbENhbnZhcyE6IEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2dsQW5jaG9yJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgZ2xBbmNob3IhOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gICAgcHJpdmF0ZSBnbFJlZj86IENvbXBvbmVudFJlZjx1bmtub3duPjtcbiAgICBwcml2YXRlIGdsRW52SW5qZWN0b3I/OiBFbnZpcm9ubWVudEluamVjdG9yO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5nZXQoJ2V2ZW50U291cmNlJykpIHtcbiAgICAgICAgICAgIC8vIHNldCBkZWZhdWx0IGV2ZW50IHNvdXJjZSB0byB0aGUgaG9zdCBlbGVtZW50XG4gICAgICAgICAgICB0aGlzLmV2ZW50U291cmNlID0gdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5wb2ludGVyTWlzc2VkLm9ic2VydmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldCh7XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyTWlzc2VkOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb2ludGVyTWlzc2VkLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0dXAgTmd0U3RvcmVcbiAgICAgICAgdGhpcy5zdG9yZS5pbml0KCk7XG5cbiAgICAgICAgLy8gc2V0IHJvb3RTdGF0ZU1hcFxuICAgICAgICByb290U3RhdGVNYXAuc2V0KHRoaXMuZ2xDYW52YXMubmF0aXZlRWxlbWVudCwgdGhpcy5zdG9yZSk7XG5cbiAgICAgICAgLy8gc3Vic2NyaWJlIHRvIHN0b3JlIHRvIGxpc3RlbiBmb3IgcmVhZHkgc3RhdGVcbiAgICAgICAgdGhpcy5ob2xkKHRoaXMuc3RvcmUuc2VsZWN0KCdyZWFkeScpLnBpcGUoZmlsdGVyKChyZWFkeSkgPT4gcmVhZHkpKSwgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdG9yZVJlYWR5KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uUmVzaXplKHsgd2lkdGgsIGhlaWdodCB9OiBOZ3hSZXNpemVSZXN1bHQpIHtcbiAgICAgICAgaWYgKHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RvcmUuaXNJbml0KSB0aGlzLnN0b3JlLmluaXQoKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuY29uZmlndXJlKHRoaXMuZ2V0KCksIHRoaXMuZ2xDYW52YXMubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0b3JlUmVhZHkoKSB7XG4gICAgICAgIC8vIGNhbnZhcyBpcyByZWFkeSwgbGV0J3MgYWN0aXZhdGUgdGhlIGxvb3BcbiAgICAgICAgdGhpcy5zdG9yZS5zZXQoKHN0YXRlKSA9PiAoeyBpbnRlcm5hbDogeyAuLi5zdGF0ZS5pbnRlcm5hbCwgYWN0aXZlOiB0cnVlIH0gfSkpO1xuXG4gICAgICAgIGNvbnN0IGlucHV0cyA9IHRoaXMuZ2V0KCk7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdG9yZS5nZXQoKTtcblxuICAgICAgICAvLyBjb25uZWN0IHRvIGV2ZW50IHNvdXJjZVxuICAgICAgICBzdGF0ZS5ldmVudHMuY29ubmVjdD8uKGlzLnJlZihpbnB1dHMuZXZlbnRTb3VyY2UpID8gaW5wdXRzLmV2ZW50U291cmNlLm5hdGl2ZUVsZW1lbnQgOiBpbnB1dHMuZXZlbnRTb3VyY2UpO1xuXG4gICAgICAgIC8vIHNldHVwIGNvbXB1dGUgZnVuY3Rpb24gZm9yIGV2ZW50c1xuICAgICAgICBpZiAoaW5wdXRzLmV2ZW50UHJlZml4KSB7XG4gICAgICAgICAgICBzdGF0ZS5zZXRFdmVudHMoe1xuICAgICAgICAgICAgICAgIGNvbXB1dGU6IChldmVudCwgc3RvcmUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5uZXJTdGF0ZSA9IHN0b3JlLmdldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB4ID0gZXZlbnRbKGlucHV0cy5ldmVudFByZWZpeCArICdYJykgYXMga2V5b2YgTmd0RG9tRXZlbnRdIGFzIG51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeSA9IGV2ZW50WyhpbnB1dHMuZXZlbnRQcmVmaXggKyAnWScpIGFzIGtleW9mIE5ndERvbUV2ZW50XSBhcyBudW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIGlubmVyU3RhdGUucG9pbnRlci5zZXQoKHggLyBpbm5lclN0YXRlLnNpemUud2lkdGgpICogMiAtIDEsIC0oeSAvIGlubmVyU3RhdGUuc2l6ZS5oZWlnaHQpICogMiArIDEpO1xuICAgICAgICAgICAgICAgICAgICBpbm5lclN0YXRlLnJheWNhc3Rlci5zZXRGcm9tQ2FtZXJhKGlubmVyU3RhdGUucG9pbnRlciwgaW5uZXJTdGF0ZS5jYW1lcmEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVtaXQgY3JlYXRlZCBldmVudCBpZiBvYnNlcnZlZFxuICAgICAgICBpZiAodGhpcy5jcmVhdGVkLm9ic2VydmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZWQuZW1pdCh0aGlzLnN0b3JlLmdldCgpKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJlbmRlclxuICAgICAgICBpZiAodGhpcy5nbFJlZikge1xuICAgICAgICAgICAgdGhpcy5nbFJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nbEVudkluamVjdG9yID0gY3JlYXRlRW52aXJvbm1lbnRJbmplY3RvcihcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVOZ3RSZW5kZXJlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZTogdGhpcy5zdG9yZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiB0aGlzLmNkcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kUHJlZml4ZXM6IHRoaXMuY29tcG91bmRQcmVmaXhlcyxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB0aGlzLmVudkluamVjdG9yXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5nbFJlZiA9IHRoaXMuZ2xBbmNob3IuY3JlYXRlQ29tcG9uZW50KHRoaXMuc2NlbmUsIHsgZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy5nbEVudkluamVjdG9yIH0pO1xuICAgICAgICAgICAgdGhpcy5nbFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRhY2goKTtcblxuICAgICAgICAgICAgLy8gaGVyZSwgd2Ugb3ZlcnJpZGUgdGhlIGRldGVjdENoYW5nZXMgdG8gYWxzbyBjYWxsIGRldGVjdENoYW5nZXMgb24gdGhlIENvbXBvbmVudFJlZlxuICAgICAgICAgICAgdGhpcy5vdmVycmlkZURldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmdsUmVmKSB7XG4gICAgICAgICAgICB0aGlzLmdsUmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5nbEVudkluamVjdG9yKSB7XG4gICAgICAgICAgICB0aGlzLmdsRW52SW5qZWN0b3IuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIGluamVjdE5ndExvYWRlci5kZXN0cm95KCk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvdmVycmlkZURldGVjdENoYW5nZXMoKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsRGV0ZWN0Q2hhbmdlcyA9IHRoaXMuY2RyLmRldGVjdENoYW5nZXMuYmluZCh0aGlzLmNkcik7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMgPSAoKSA9PiB7XG4gICAgICAgICAgICBvcmlnaW5hbERldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHRoaXMuZ2xSZWY/LmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlL3NyYy9saWIvY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUVULHlCQUF5QixFQUN6QixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsRUFDVCxnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBbUIsdUJBQXVCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQWlCM0MsTUFBTSxPQUFPLGtCQUFrQjtJQWYvQjtRQWdCYyxpQkFBWSxHQUFHLGVBQWUsRUFBRSxDQUFDO0tBQzlDOzsrR0FGWSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw4R0FGaEIsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLDBCQVZqRCxnQkFBZ0I7MkZBWWpCLGtCQUFrQjtrQkFmOUIsU0FBUzsrQkFDSSxzQkFBc0IsY0FDcEIsSUFBSSxZQUNOLGdCQUFn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RSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgRWxlbWVudFJlZixcbiAgICBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3ROZ3hSZXNpemUsIE5neFJlc2l6ZVJlc3VsdCwgcHJvdmlkZU5neFJlc2l6ZU9wdGlvbnMgfSBmcm9tICduZ3gtcmVzaXplJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgcHJvdmlkZU5ndFJlbmRlcmVyIH0gZnJvbSAnLi9yZW5kZXJlci9wcm92aWRlcic7XG5pbXBvcnQgeyBOZ3RSeFN0b3JlIH0gZnJvbSAnLi9zdG9yZXMvcngtc3RvcmUnO1xuaW1wb3J0IHsgTmd0U3RvcmUsIHJvb3RTdGF0ZU1hcCB9IGZyb20gJy4vc3RvcmVzL3N0b3JlJztcbmltcG9ydCB0eXBlIHsgTmd0Q2FudmFzSW5wdXRzLCBOZ3REb21FdmVudCwgTmd0RHByLCBOZ3RTdGF0ZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgaXMgfSBmcm9tICcuL3V0aWxzL2lzJztcbmltcG9ydCB7IGNyZWF0ZVBvaW50ZXJFdmVudHMgfSBmcm9tICcuL3dlYi9ldmVudHMnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0TG9hZGVyIH0gZnJvbSAnLi9sb2FkZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1jYW52YXMtY29udGFpbmVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQgLz4nLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICBgLFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbcHJvdmlkZU5neFJlc2l6ZU9wdGlvbnMoeyBlbWl0SW5ab25lOiBmYWxzZSB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndENhbnZhc0NvbnRhaW5lciB7XG4gICAgQE91dHB1dCgpIGNhbnZhc1Jlc2l6ZSA9IGluamVjdE5neFJlc2l6ZSgpO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1jYW52YXMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1jYW52YXMtY29udGFpbmVyIChjYW52YXNSZXNpemUpPVwib25SZXNpemUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGNhbnZhcyAjZ2xDYW52YXMgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj48L2NhbnZhcz5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgI2dsQW5jaG9yIC8+XG4gICAgICAgIDwvbmd0LWNhbnZhcy1jb250YWluZXI+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0Q2FudmFzQ29udGFpbmVyXSxcbiAgICBwcm92aWRlcnM6IFtOZ3RTdG9yZV0sXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0Q2FudmFzIGV4dGVuZHMgTmd0UnhTdG9yZTxOZ3RDYW52YXNJbnB1dHM+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVudkluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdCA9IGluamVjdChFbGVtZW50UmVmKSBhcyBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKSB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoe1xuICAgICAgICAgICAgc2hhZG93czogZmFsc2UsXG4gICAgICAgICAgICBsaW5lYXI6IGZhbHNlLFxuICAgICAgICAgICAgZmxhdDogZmFsc2UsXG4gICAgICAgICAgICBsZWdhY3k6IGZhbHNlLFxuICAgICAgICAgICAgb3J0aG9ncmFwaGljOiBmYWxzZSxcbiAgICAgICAgICAgIGZyYW1lbG9vcDogJ2Fsd2F5cycsXG4gICAgICAgICAgICBkcHI6IFsxLCAyXSxcbiAgICAgICAgICAgIGV2ZW50czogY3JlYXRlUG9pbnRlckV2ZW50cyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5uZ3QtY2FudmFzJykgcmVhZG9ubHkgaG9zdENsYXNzID0gdHJ1ZTtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLnBvaW50ZXJFdmVudHMnKSBnZXQgcG9pbnRlckV2ZW50cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdldmVudFNvdXJjZScpICE9PSB0aGlzLmhvc3QubmF0aXZlRWxlbWVudCA/ICdub25lJyA6ICdhdXRvJztcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzY2VuZUdyYXBoITogVHlwZTxhbnk+O1xuICAgIEBJbnB1dCgpIGNvbXBvdW5kUHJlZml4ZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBASW5wdXQoKSBzZXQgbGluZWFyKGxpbmVhcjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGxpbmVhciB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbGVnYWN5KGxlZ2FjeTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGxlZ2FjeSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZmxhdChmbGF0OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZmxhdCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgb3J0aG9ncmFwaGljKG9ydGhvZ3JhcGhpYzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IG9ydGhvZ3JhcGhpYyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZnJhbWVsb29wKGZyYW1lbG9vcDogTmd0Q2FudmFzSW5wdXRzWydmcmFtZWxvb3AnXSkge1xuICAgICAgICB0aGlzLnNldCh7IGZyYW1lbG9vcCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZHByKGRwcjogTmd0RHByKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZHByIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCByYXljYXN0ZXIocmF5Y2FzdGVyOiBQYXJ0aWFsPFRIUkVFLlJheWNhc3Rlcj4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyByYXljYXN0ZXIgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNoYWRvd3Moc2hhZG93czogYm9vbGVhbiB8IFBhcnRpYWw8VEhSRUUuV2ViR0xTaGFkb3dNYXA+KSB7XG4gICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgIHNoYWRvd3M6IHR5cGVvZiBzaGFkb3dzID09PSAnb2JqZWN0JyA/IChzaGFkb3dzIGFzIFBhcnRpYWw8VEhSRUUuV2ViR0xTaGFkb3dNYXA+KSA6IHNoYWRvd3MsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBjYW1lcmEoY2FtZXJhOiBOZ3RDYW52YXNJbnB1dHNbJ2NhbWVyYSddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY2FtZXJhIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBnbChnbDogTmd0Q2FudmFzSW5wdXRzWydnbCddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZ2wgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGV2ZW50U291cmNlKGV2ZW50U291cmNlOiBOZ3RDYW52YXNJbnB1dHNbJ2V2ZW50U291cmNlJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBldmVudFNvdXJjZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZXZlbnRQcmVmaXgoZXZlbnRQcmVmaXg6IE5ndENhbnZhc0lucHV0c1snZXZlbnRQcmVmaXgnXSkge1xuICAgICAgICB0aGlzLnNldCh7IGV2ZW50UHJlZml4IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsb29rQXQobG9va0F0OiBOZ3RDYW52YXNJbnB1dHNbJ2xvb2tBdCddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbG9va0F0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBwZXJmb3JtYW5jZShwZXJmb3JtYW5jZTogTmd0Q2FudmFzSW5wdXRzWydwZXJmb3JtYW5jZSddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcGVyZm9ybWFuY2UgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5ndFN0YXRlPigpO1xuICAgIEBPdXRwdXQoKSBwb2ludGVyTWlzc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnZ2xDYW52YXMnLCB7IHN0YXRpYzogdHJ1ZSB9KSBnbENhbnZhcyE6IEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2dsQW5jaG9yJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgZ2xBbmNob3IhOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gICAgcHJpdmF0ZSBnbFJlZj86IENvbXBvbmVudFJlZjx1bmtub3duPjtcbiAgICBwcml2YXRlIGdsRW52SW5qZWN0b3I/OiBFbnZpcm9ubWVudEluamVjdG9yO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5nZXQoJ2V2ZW50U291cmNlJykpIHtcbiAgICAgICAgICAgIC8vIHNldCBkZWZhdWx0IGV2ZW50IHNvdXJjZSB0byB0aGUgaG9zdCBlbGVtZW50XG4gICAgICAgICAgICB0aGlzLmV2ZW50U291cmNlID0gdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5wb2ludGVyTWlzc2VkLm9ic2VydmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldCh7XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyTWlzc2VkOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb2ludGVyTWlzc2VkLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0dXAgTmd0U3RvcmVcbiAgICAgICAgdGhpcy5zdG9yZS5pbml0KCk7XG5cbiAgICAgICAgLy8gc2V0IHJvb3RTdGF0ZU1hcFxuICAgICAgICByb290U3RhdGVNYXAuc2V0KHRoaXMuZ2xDYW52YXMubmF0aXZlRWxlbWVudCwgdGhpcy5zdG9yZSk7XG5cbiAgICAgICAgLy8gc3Vic2NyaWJlIHRvIHN0b3JlIHRvIGxpc3RlbiBmb3IgcmVhZHkgc3RhdGVcbiAgICAgICAgdGhpcy5ob2xkKHRoaXMuc3RvcmUuc2VsZWN0KCdyZWFkeScpLnBpcGUoZmlsdGVyKChyZWFkeSkgPT4gcmVhZHkpKSwgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdG9yZVJlYWR5KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uUmVzaXplKHsgd2lkdGgsIGhlaWdodCB9OiBOZ3hSZXNpemVSZXN1bHQpIHtcbiAgICAgICAgaWYgKHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RvcmUuaXNJbml0KSB0aGlzLnN0b3JlLmluaXQoKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuY29uZmlndXJlKHRoaXMuZ2V0KCksIHRoaXMuZ2xDYW52YXMubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0b3JlUmVhZHkoKSB7XG4gICAgICAgIC8vIGNhbnZhcyBpcyByZWFkeSwgbGV0J3MgYWN0aXZhdGUgdGhlIGxvb3BcbiAgICAgICAgdGhpcy5zdG9yZS5zZXQoKHN0YXRlKSA9PiAoeyBpbnRlcm5hbDogeyAuLi5zdGF0ZS5pbnRlcm5hbCwgYWN0aXZlOiB0cnVlIH0gfSkpO1xuXG4gICAgICAgIGNvbnN0IGlucHV0cyA9IHRoaXMuZ2V0KCk7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdG9yZS5nZXQoKTtcblxuICAgICAgICAvLyBjb25uZWN0IHRvIGV2ZW50IHNvdXJjZVxuICAgICAgICBzdGF0ZS5ldmVudHMuY29ubmVjdD8uKGlzLnJlZihpbnB1dHMuZXZlbnRTb3VyY2UpID8gaW5wdXRzLmV2ZW50U291cmNlLm5hdGl2ZUVsZW1lbnQgOiBpbnB1dHMuZXZlbnRTb3VyY2UpO1xuXG4gICAgICAgIC8vIHNldHVwIGNvbXB1dGUgZnVuY3Rpb24gZm9yIGV2ZW50c1xuICAgICAgICBpZiAoaW5wdXRzLmV2ZW50UHJlZml4KSB7XG4gICAgICAgICAgICBzdGF0ZS5zZXRFdmVudHMoe1xuICAgICAgICAgICAgICAgIGNvbXB1dGU6IChldmVudCwgc3RvcmUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5uZXJTdGF0ZSA9IHN0b3JlLmdldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB4ID0gZXZlbnRbKGlucHV0cy5ldmVudFByZWZpeCArICdYJykgYXMga2V5b2YgTmd0RG9tRXZlbnRdIGFzIG51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeSA9IGV2ZW50WyhpbnB1dHMuZXZlbnRQcmVmaXggKyAnWScpIGFzIGtleW9mIE5ndERvbUV2ZW50XSBhcyBudW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIGlubmVyU3RhdGUucG9pbnRlci5zZXQoKHggLyBpbm5lclN0YXRlLnNpemUud2lkdGgpICogMiAtIDEsIC0oeSAvIGlubmVyU3RhdGUuc2l6ZS5oZWlnaHQpICogMiArIDEpO1xuICAgICAgICAgICAgICAgICAgICBpbm5lclN0YXRlLnJheWNhc3Rlci5zZXRGcm9tQ2FtZXJhKGlubmVyU3RhdGUucG9pbnRlciwgaW5uZXJTdGF0ZS5jYW1lcmEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVtaXQgY3JlYXRlZCBldmVudCBpZiBvYnNlcnZlZFxuICAgICAgICBpZiAodGhpcy5jcmVhdGVkLm9ic2VydmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZWQuZW1pdCh0aGlzLnN0b3JlLmdldCgpKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJlbmRlclxuICAgICAgICBpZiAodGhpcy5nbFJlZikge1xuICAgICAgICAgICAgdGhpcy5nbFJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nbEVudkluamVjdG9yID0gY3JlYXRlRW52aXJvbm1lbnRJbmplY3RvcihcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVOZ3RSZW5kZXJlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZTogdGhpcy5zdG9yZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiB0aGlzLmNkcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kUHJlZml4ZXM6IHRoaXMuY29tcG91bmRQcmVmaXhlcyxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB0aGlzLmVudkluamVjdG9yXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5nbFJlZiA9IHRoaXMuZ2xBbmNob3IuY3JlYXRlQ29tcG9uZW50KHRoaXMuc2NlbmVHcmFwaCwgeyBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmdsRW52SW5qZWN0b3IgfSk7XG4gICAgICAgICAgICB0aGlzLmdsUmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGFjaCgpO1xuXG4gICAgICAgICAgICAvLyBoZXJlLCB3ZSBvdmVycmlkZSB0aGUgZGV0ZWN0Q2hhbmdlcyB0byBhbHNvIGNhbGwgZGV0ZWN0Q2hhbmdlcyBvbiB0aGUgQ29tcG9uZW50UmVmXG4gICAgICAgICAgICB0aGlzLm92ZXJyaWRlRGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZ2xSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZ2xSZWYuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmdsRW52SW5qZWN0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuZ2xFbnZJbmplY3Rvci5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICAgICAgaW5qZWN0Tmd0TG9hZGVyLmRlc3Ryb3koKTtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG92ZXJyaWRlRGV0ZWN0Q2hhbmdlcygpIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxEZXRlY3RDaGFuZ2VzID0gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcy5iaW5kKHRoaXMuY2RyKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcyA9ICgpID0+IHtcbiAgICAgICAgICAgIG9yaWdpbmFsRGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgdGhpcy5nbFJlZj8uY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
@@ -2364,7 +2364,7 @@ class NgtCanvas extends NgtRxStore {
2364
2364
  compoundPrefixes: this.compoundPrefixes,
2365
2365
  }),
2366
2366
  ], this.envInjector);
2367
- this.glRef = this.glAnchor.createComponent(this.scene, { environmentInjector: this.glEnvInjector });
2367
+ this.glRef = this.glAnchor.createComponent(this.sceneGraph, { environmentInjector: this.glEnvInjector });
2368
2368
  this.glRef.changeDetectorRef.detach();
2369
2369
  // here, we override the detectChanges to also call detectChanges on the ComponentRef
2370
2370
  this.overrideDetectChanges();
@@ -2391,7 +2391,7 @@ class NgtCanvas extends NgtRxStore {
2391
2391
  }
2392
2392
  }
2393
2393
  NgtCanvas.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgtCanvas, deps: null, target: i0.ɵɵFactoryTarget.Component });
2394
- NgtCanvas.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: NgtCanvas, isStandalone: true, selector: "ngt-canvas", inputs: { scene: "scene", compoundPrefixes: "compoundPrefixes", linear: "linear", legacy: "legacy", flat: "flat", orthographic: "orthographic", frameloop: "frameloop", dpr: "dpr", raycaster: "raycaster", shadows: "shadows", camera: "camera", gl: "gl", eventSource: "eventSource", eventPrefix: "eventPrefix", lookAt: "lookAt", performance: "performance" }, outputs: { created: "created", pointerMissed: "pointerMissed" }, host: { properties: { "class.ngt-canvas": "this.hostClass", "style.pointerEvents": "this.pointerEvents" } }, providers: [NgtStore], viewQueries: [{ propertyName: "glCanvas", first: true, predicate: ["glCanvas"], descendants: true, static: true }, { propertyName: "glAnchor", first: true, predicate: ["glAnchor"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: `
2394
+ NgtCanvas.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: NgtCanvas, isStandalone: true, selector: "ngt-canvas", inputs: { sceneGraph: "sceneGraph", compoundPrefixes: "compoundPrefixes", linear: "linear", legacy: "legacy", flat: "flat", orthographic: "orthographic", frameloop: "frameloop", dpr: "dpr", raycaster: "raycaster", shadows: "shadows", camera: "camera", gl: "gl", eventSource: "eventSource", eventPrefix: "eventPrefix", lookAt: "lookAt", performance: "performance" }, outputs: { created: "created", pointerMissed: "pointerMissed" }, host: { properties: { "class.ngt-canvas": "this.hostClass", "style.pointerEvents": "this.pointerEvents" } }, providers: [NgtStore], viewQueries: [{ propertyName: "glCanvas", first: true, predicate: ["glCanvas"], descendants: true, static: true }, { propertyName: "glAnchor", first: true, predicate: ["glAnchor"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: `
2395
2395
  <ngt-canvas-container (canvasResize)="onResize($event)">
2396
2396
  <canvas #glCanvas style="display: block;"></canvas>
2397
2397
  <ng-container #glAnchor />
@@ -2411,7 +2411,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
2411
2411
  }], pointerEvents: [{
2412
2412
  type: HostBinding,
2413
2413
  args: ['style.pointerEvents']
2414
- }], scene: [{
2414
+ }], sceneGraph: [{
2415
2415
  type: Input
2416
2416
  }], compoundPrefixes: [{
2417
2417
  type: Input