angular-three 1.0.0-beta.6 → 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.
package/esm2020/index.mjs CHANGED
@@ -11,4 +11,5 @@ export * from './lib/utils/is';
11
11
  export * from './lib/loader';
12
12
  export * from './lib/di/ref';
13
13
  export * from './lib/di/destroy';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY2FudmFzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpL2NhdGFsb2d1ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2FyZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9yZXBlYXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvcmVzL3N0b3JlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0b3Jlcy9yeC1zdG9yZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9pbnN0YW5jZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy91cGRhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvaXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9hZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpL3JlZic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaS9kZXN0cm95JztcbiJdfQ==
14
+ export * from './lib/pipes/push';
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jYW52YXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGkvY2F0YWxvZ3VlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvYXJncyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3JlcGVhdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdG9yZXMvc3RvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvcmVzL3J4LXN0b3JlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2luc3RhbmNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3VwZGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9pcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2FkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGkvcmVmJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpL2Rlc3Ryb3knO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvcHVzaCc7XG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlL3NyYy9saWIvY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUVULHlCQUF5QixFQUN6QixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsRUFDVCxnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBbUIsdUJBQXVCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQWlCM0MsTUFBTSxPQUFPLGtCQUFrQjtJQWYvQjtRQWdCYyxpQkFBWSxHQUFHLGVBQWUsRUFBRSxDQUFDO0tBQzlDOzsrR0FGWSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw4R0FGaEIsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLDBCQVZqRCxnQkFBZ0I7MkZBWWpCLGtCQUFrQjtrQkFmOUIsU0FBUzsrQkFDSSxzQkFBc0IsY0FDcEIsSUFBSSxZQUNOLGdCQUFnQixhQVVmLENBQUMsdUJBQXVCLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzs4QkFHakQsWUFBWTtzQkFBckIsTUFBTTs7QUEwQlgsTUFBTSxPQUFPLFNBQVUsU0FBUSxVQUEyQjtJQXZCMUQ7O1FBd0JxQixRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMxQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBNEIsQ0FBQztRQUNyRCxVQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBZ0JBLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFNbEQscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBNEQvQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUN2QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7S0FrSDVEO0lBbk1ZLFVBQVU7UUFDZixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNMLE9BQU8sRUFBRSxLQUFLO1lBQ2QsTUFBTSxFQUFFLEtBQUs7WUFDYixJQUFJLEVBQUUsS0FBSztZQUNYLE1BQU0sRUFBRSxLQUFLO1lBQ2IsWUFBWSxFQUFFLEtBQUs7WUFDbkIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNYLE1BQU0sRUFBRSxtQkFBbUI7U0FDOUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUdELElBQXdDLGFBQWE7UUFDakQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNqRixDQUFDO0lBS0QsSUFBYSxNQUFNLENBQUMsTUFBZTtRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxNQUFNLENBQUMsTUFBZTtRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxJQUFJLENBQUMsSUFBYTtRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBYSxZQUFZLENBQUMsWUFBcUI7UUFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQWEsU0FBUyxDQUFDLFNBQXVDO1FBQzFELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFhLEdBQUcsQ0FBQyxHQUFXO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFhLFNBQVMsQ0FBQyxTQUFtQztRQUN0RCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBYSxPQUFPLENBQUMsT0FBZ0Q7UUFDakUsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNMLE9BQU8sRUFBRSxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFFLE9BQXlDLENBQUMsQ0FBQyxDQUFDLE9BQU87U0FDOUYsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLE1BQWlDO1FBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFhLEVBQUUsQ0FBQyxFQUF5QjtRQUNyQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBYSxXQUFXLENBQUMsV0FBMkM7UUFDaEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQWEsV0FBVyxDQUFDLFdBQTJDO1FBQ2hFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFhLE1BQU0sQ0FBQyxNQUFpQztRQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxXQUFXLENBQUMsV0FBMkM7UUFDaEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQVdELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUMxQiwrQ0FBK0M7WUFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUM5QztRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7Z0JBQ1gsZUFBZSxFQUFFLENBQUMsS0FBaUIsRUFBRSxFQUFFO29CQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDN0IsQ0FBQzthQUNKLENBQUMsQ0FBQztTQUNOO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbEIsbUJBQW1CO1FBQ25CLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFELCtDQUErQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFO1lBQ3RFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFtQjtRQUN2QyxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO2dCQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDakU7SUFDTCxDQUFDO0lBRU8sVUFBVTtRQUNkLDJDQUEyQztRQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFL0UsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFL0IsMEJBQTBCO1FBQzFCLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFM0csb0NBQW9DO1FBQ3BDLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRTtZQUNwQixLQUFLLENBQUMsU0FBUyxDQUFDO2dCQUNaLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtvQkFDdEIsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUMvQixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBc0IsQ0FBVyxDQUFDO29CQUMzRSxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBc0IsQ0FBVyxDQUFDO29CQUMzRSxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDbkcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlFLENBQUM7YUFDSixDQUFDLENBQUM7U0FDTjtRQUVELGlDQUFpQztRQUNqQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzVCO1FBRUQsU0FBUztRQUNULElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDeEI7UUFFRCxxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyx5QkFBeUIsQ0FDMUM7Z0JBQ0ksa0JBQWtCLENBQUM7b0JBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO29CQUNqQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsR0FBRztvQkFDM0IsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtpQkFDMUMsQ0FBQzthQUNMLEVBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FDbkIsQ0FBQztZQUNGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQ3pHLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFdEMscUZBQXFGO1lBQ3JGLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVEsV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEM7UUFDRCxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxxQkFBcUI7UUFDekIsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLEdBQUcsRUFBRTtZQUMxQixxQkFBcUIsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbEQsQ0FBQyxDQUFDO0lBQ04sQ0FBQzs7c0dBeE1RLFNBQVM7MEZBQVQsU0FBUyxxbEJBYlAsQ0FBQyxRQUFRLENBQUMsZ05BdUd3QixnQkFBZ0Isa0VBOUduRDs7Ozs7S0FLVCx5SkFaUSxrQkFBa0I7MkZBMkJsQixTQUFTO2tCQXZCckIsU0FBUzsrQkFDSSxZQUFZLGNBQ1YsSUFBSSxZQUNOOzs7OztLQUtULFdBQ1EsQ0FBQyxrQkFBa0IsQ0FBQyxhQUNsQixDQUFDLFFBQVEsQ0FBQzs4QkFpQ3FCLFNBQVM7c0JBQWxELFdBQVc7dUJBQUMsa0JBQWtCO2dCQUNTLGFBQWE7c0JBQXBELFdBQVc7dUJBQUMscUJBQXFCO2dCQUl6QixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sSUFBSTtzQkFBaEIsS0FBSztnQkFJTyxZQUFZO3NCQUF4QixLQUFLO2dCQUlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBSU8sR0FBRztzQkFBZixLQUFLO2dCQUlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFNTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLEVBQUU7c0JBQWQsS0FBSztnQkFJTyxXQUFXO3NCQUF2QixLQUFLO2dCQUlPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxXQUFXO3NCQUF2QixLQUFLO2dCQUlJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFFa0MsUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUMwQixRQUFRO3NCQUF4RSxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgRWxlbWVudFJlZixcbiAgICBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3ROZ3hSZXNpemUsIE5neFJlc2l6ZVJlc3VsdCwgcHJvdmlkZU5neFJlc2l6ZU9wdGlvbnMgfSBmcm9tICduZ3gtcmVzaXplJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgcHJvdmlkZU5ndFJlbmRlcmVyIH0gZnJvbSAnLi9yZW5kZXJlci9wcm92aWRlcic7XG5pbXBvcnQgeyBOZ3RSeFN0b3JlIH0gZnJvbSAnLi9zdG9yZXMvcngtc3RvcmUnO1xuaW1wb3J0IHsgTmd0U3RvcmUsIHJvb3RTdGF0ZU1hcCB9IGZyb20gJy4vc3RvcmVzL3N0b3JlJztcbmltcG9ydCB0eXBlIHsgTmd0Q2FudmFzSW5wdXRzLCBOZ3REb21FdmVudCwgTmd0RHByLCBOZ3RTdGF0ZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgaXMgfSBmcm9tICcuL3V0aWxzL2lzJztcbmltcG9ydCB7IGNyZWF0ZVBvaW50ZXJFdmVudHMgfSBmcm9tICcuL3dlYi9ldmVudHMnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0TG9hZGVyIH0gZnJvbSAnLi9sb2FkZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1jYW52YXMtY29udGFpbmVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQgLz4nLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICBgLFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbcHJvdmlkZU5neFJlc2l6ZU9wdGlvbnMoeyBlbWl0SW5ab25lOiBmYWxzZSB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndENhbnZhc0NvbnRhaW5lciB7XG4gICAgQE91dHB1dCgpIGNhbnZhc1Jlc2l6ZSA9IGluamVjdE5neFJlc2l6ZSgpO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1jYW52YXMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1jYW52YXMtY29udGFpbmVyIChjYW52YXNSZXNpemUpPVwib25SZXNpemUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGNhbnZhcyAjZ2xDYW52YXMgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj48L2NhbnZhcz5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgI2dsQW5jaG9yIC8+XG4gICAgICAgIDwvbmd0LWNhbnZhcy1jb250YWluZXI+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0Q2FudmFzQ29udGFpbmVyXSxcbiAgICBwcm92aWRlcnM6IFtOZ3RTdG9yZV0sXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0Q2FudmFzIGV4dGVuZHMgTmd0UnhTdG9yZTxOZ3RDYW52YXNJbnB1dHM+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVudkluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdCA9IGluamVjdChFbGVtZW50UmVmKSBhcyBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKSB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoe1xuICAgICAgICAgICAgc2hhZG93czogZmFsc2UsXG4gICAgICAgICAgICBsaW5lYXI6IGZhbHNlLFxuICAgICAgICAgICAgZmxhdDogZmFsc2UsXG4gICAgICAgICAgICBsZWdhY3k6IGZhbHNlLFxuICAgICAgICAgICAgb3J0aG9ncmFwaGljOiBmYWxzZSxcbiAgICAgICAgICAgIGZyYW1lbG9vcDogJ2Fsd2F5cycsXG4gICAgICAgICAgICBkcHI6IFsxLCAyXSxcbiAgICAgICAgICAgIGV2ZW50czogY3JlYXRlUG9pbnRlckV2ZW50cyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5uZ3QtY2FudmFzJykgcmVhZG9ubHkgaG9zdENsYXNzID0gdHJ1ZTtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLnBvaW50ZXJFdmVudHMnKSBnZXQgcG9pbnRlckV2ZW50cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdldmVudFNvdXJjZScpICE9PSB0aGlzLmhvc3QubmF0aXZlRWxlbWVudCA/ICdub25lJyA6ICdhdXRvJztcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzY2VuZUdyYXBoITogVHlwZTxhbnk+O1xuICAgIEBJbnB1dCgpIGNvbXBvdW5kUHJlZml4ZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBASW5wdXQoKSBzZXQgbGluZWFyKGxpbmVhcjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGxpbmVhciB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbGVnYWN5KGxlZ2FjeTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGxlZ2FjeSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZmxhdChmbGF0OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZmxhdCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgb3J0aG9ncmFwaGljKG9ydGhvZ3JhcGhpYzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IG9ydGhvZ3JhcGhpYyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZnJhbWVsb29wKGZyYW1lbG9vcDogTmd0Q2FudmFzSW5wdXRzWydmcmFtZWxvb3AnXSkge1xuICAgICAgICB0aGlzLnNldCh7IGZyYW1lbG9vcCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZHByKGRwcjogTmd0RHByKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZHByIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCByYXljYXN0ZXIocmF5Y2FzdGVyOiBQYXJ0aWFsPFRIUkVFLlJheWNhc3Rlcj4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyByYXljYXN0ZXIgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNoYWRvd3Moc2hhZG93czogYm9vbGVhbiB8IFBhcnRpYWw8VEhSRUUuV2ViR0xTaGFkb3dNYXA+KSB7XG4gICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgIHNoYWRvd3M6IHR5cGVvZiBzaGFkb3dzID09PSAnb2JqZWN0JyA/IChzaGFkb3dzIGFzIFBhcnRpYWw8VEhSRUUuV2ViR0xTaGFkb3dNYXA+KSA6IHNoYWRvd3MsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBjYW1lcmEoY2FtZXJhOiBOZ3RDYW52YXNJbnB1dHNbJ2NhbWVyYSddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY2FtZXJhIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBnbChnbDogTmd0Q2FudmFzSW5wdXRzWydnbCddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZ2wgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGV2ZW50U291cmNlKGV2ZW50U291cmNlOiBOZ3RDYW52YXNJbnB1dHNbJ2V2ZW50U291cmNlJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBldmVudFNvdXJjZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZXZlbnRQcmVmaXgoZXZlbnRQcmVmaXg6IE5ndENhbnZhc0lucHV0c1snZXZlbnRQcmVmaXgnXSkge1xuICAgICAgICB0aGlzLnNldCh7IGV2ZW50UHJlZml4IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsb29rQXQobG9va0F0OiBOZ3RDYW52YXNJbnB1dHNbJ2xvb2tBdCddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbG9va0F0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBwZXJmb3JtYW5jZShwZXJmb3JtYW5jZTogTmd0Q2FudmFzSW5wdXRzWydwZXJmb3JtYW5jZSddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcGVyZm9ybWFuY2UgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5ndFN0YXRlPigpO1xuICAgIEBPdXRwdXQoKSBwb2ludGVyTWlzc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnZ2xDYW52YXMnLCB7IHN0YXRpYzogdHJ1ZSB9KSBnbENhbnZhcyE6IEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2dsQW5jaG9yJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgZ2xBbmNob3IhOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gICAgcHJpdmF0ZSBnbFJlZj86IENvbXBvbmVudFJlZjx1bmtub3duPjtcbiAgICBwcml2YXRlIGdsRW52SW5qZWN0b3I/OiBFbnZpcm9ubWVudEluamVjdG9yO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5nZXQoJ2V2ZW50U291cmNlJykpIHtcbiAgICAgICAgICAgIC8vIHNldCBkZWZhdWx0IGV2ZW50IHNvdXJjZSB0byB0aGUgaG9zdCBlbGVtZW50XG4gICAgICAgICAgICB0aGlzLmV2ZW50U291cmNlID0gdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5wb2ludGVyTWlzc2VkLm9ic2VydmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldCh7XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyTWlzc2VkOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb2ludGVyTWlzc2VkLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0dXAgTmd0U3RvcmVcbiAgICAgICAgdGhpcy5zdG9yZS5pbml0KCk7XG5cbiAgICAgICAgLy8gc2V0IHJvb3RTdGF0ZU1hcFxuICAgICAgICByb290U3RhdGVNYXAuc2V0KHRoaXMuZ2xDYW52YXMubmF0aXZlRWxlbWVudCwgdGhpcy5zdG9yZSk7XG5cbiAgICAgICAgLy8gc3Vic2NyaWJlIHRvIHN0b3JlIHRvIGxpc3RlbiBmb3IgcmVhZHkgc3RhdGVcbiAgICAgICAgdGhpcy5ob2xkKHRoaXMuc3RvcmUuc2VsZWN0KCdyZWFkeScpLnBpcGUoZmlsdGVyKChyZWFkeSkgPT4gcmVhZHkpKSwgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdG9yZVJlYWR5KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uUmVzaXplKHsgd2lkdGgsIGhlaWdodCB9OiBOZ3hSZXNpemVSZXN1bHQpIHtcbiAgICAgICAgaWYgKHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RvcmUuaXNJbml0KSB0aGlzLnN0b3JlLmluaXQoKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuY29uZmlndXJlKHRoaXMuZ2V0KCksIHRoaXMuZ2xDYW52YXMubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0b3JlUmVhZHkoKSB7XG4gICAgICAgIC8vIGNhbnZhcyBpcyByZWFkeSwgbGV0J3MgYWN0aXZhdGUgdGhlIGxvb3BcbiAgICAgICAgdGhpcy5zdG9yZS5zZXQoKHN0YXRlKSA9PiAoeyBpbnRlcm5hbDogeyAuLi5zdGF0ZS5pbnRlcm5hbCwgYWN0aXZlOiB0cnVlIH0gfSkpO1xuXG4gICAgICAgIGNvbnN0IGlucHV0cyA9IHRoaXMuZ2V0KCk7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdG9yZS5nZXQoKTtcblxuICAgICAgICAvLyBjb25uZWN0IHRvIGV2ZW50IHNvdXJjZVxuICAgICAgICBzdGF0ZS5ldmVudHMuY29ubmVjdD8uKGlzLnJlZihpbnB1dHMuZXZlbnRTb3VyY2UpID8gaW5wdXRzLmV2ZW50U291cmNlLm5hdGl2ZUVsZW1lbnQgOiBpbnB1dHMuZXZlbnRTb3VyY2UpO1xuXG4gICAgICAgIC8vIHNldHVwIGNvbXB1dGUgZnVuY3Rpb24gZm9yIGV2ZW50c1xuICAgICAgICBpZiAoaW5wdXRzLmV2ZW50UHJlZml4KSB7XG4gICAgICAgICAgICBzdGF0ZS5zZXRFdmVudHMoe1xuICAgICAgICAgICAgICAgIGNvbXB1dGU6IChldmVudCwgc3RvcmUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5uZXJTdGF0ZSA9IHN0b3JlLmdldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB4ID0gZXZlbnRbKGlucHV0cy5ldmVudFByZWZpeCArICdYJykgYXMga2V5b2YgTmd0RG9tRXZlbnRdIGFzIG51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeSA9IGV2ZW50WyhpbnB1dHMuZXZlbnRQcmVmaXggKyAnWScpIGFzIGtleW9mIE5ndERvbUV2ZW50XSBhcyBudW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIGlubmVyU3RhdGUucG9pbnRlci5zZXQoKHggLyBpbm5lclN0YXRlLnNpemUud2lkdGgpICogMiAtIDEsIC0oeSAvIGlubmVyU3RhdGUuc2l6ZS5oZWlnaHQpICogMiArIDEpO1xuICAgICAgICAgICAgICAgICAgICBpbm5lclN0YXRlLnJheWNhc3Rlci5zZXRGcm9tQ2FtZXJhKGlubmVyU3RhdGUucG9pbnRlciwgaW5uZXJTdGF0ZS5jYW1lcmEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVtaXQgY3JlYXRlZCBldmVudCBpZiBvYnNlcnZlZFxuICAgICAgICBpZiAodGhpcy5jcmVhdGVkLm9ic2VydmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZWQuZW1pdCh0aGlzLnN0b3JlLmdldCgpKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJlbmRlclxuICAgICAgICBpZiAodGhpcy5nbFJlZikge1xuICAgICAgICAgICAgdGhpcy5nbFJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nbEVudkluamVjdG9yID0gY3JlYXRlRW52aXJvbm1lbnRJbmplY3RvcihcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVOZ3RSZW5kZXJlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZTogdGhpcy5zdG9yZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiB0aGlzLmNkcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kUHJlZml4ZXM6IHRoaXMuY29tcG91bmRQcmVmaXhlcyxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB0aGlzLmVudkluamVjdG9yXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5nbFJlZiA9IHRoaXMuZ2xBbmNob3IuY3JlYXRlQ29tcG9uZW50KHRoaXMuc2NlbmVHcmFwaCwgeyBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmdsRW52SW5qZWN0b3IgfSk7XG4gICAgICAgICAgICB0aGlzLmdsUmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGFjaCgpO1xuXG4gICAgICAgICAgICAvLyBoZXJlLCB3ZSBvdmVycmlkZSB0aGUgZGV0ZWN0Q2hhbmdlcyB0byBhbHNvIGNhbGwgZGV0ZWN0Q2hhbmdlcyBvbiB0aGUgQ29tcG9uZW50UmVmXG4gICAgICAgICAgICB0aGlzLm92ZXJyaWRlRGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZ2xSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZ2xSZWYuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmdsRW52SW5qZWN0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuZ2xFbnZJbmplY3Rvci5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICAgICAgaW5qZWN0Tmd0TG9hZGVyLmRlc3Ryb3koKTtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG92ZXJyaWRlRGV0ZWN0Q2hhbmdlcygpIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxEZXRlY3RDaGFuZ2VzID0gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcy5iaW5kKHRoaXMuY2RyKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcyA9ICgpID0+IHtcbiAgICAgICAgICAgIG9yaWdpbmFsRGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgdGhpcy5nbFJlZj8uY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,54 @@
1
+ import { ChangeDetectorRef, inject, Pipe } from '@angular/core';
2
+ import { isObservable } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ function isPromise(value) {
5
+ return ((value instanceof Promise || Object.prototype.toString.call(value) === '[object Promise]') &&
6
+ typeof value['then'] === 'function');
7
+ }
8
+ export class NgtPush {
9
+ constructor() {
10
+ this.cdr = inject(ChangeDetectorRef);
11
+ this.parentCdr = inject(ChangeDetectorRef, { skipSelf: true, optional: true });
12
+ }
13
+ transform(value, defaultValue = null) {
14
+ if (this.obj === value) {
15
+ return this.latestValue;
16
+ }
17
+ this.obj = value;
18
+ this.latestValue = defaultValue;
19
+ if (this.sub) {
20
+ this.sub.unsubscribe();
21
+ }
22
+ if (isObservable(this.obj)) {
23
+ this.sub = this.obj.subscribe(this.updateValue.bind(this));
24
+ }
25
+ else if (isPromise(this.obj)) {
26
+ this.obj.then(this.updateValue.bind(this));
27
+ }
28
+ else {
29
+ throw new Error(`[NGT] Invalid value passed to ngtPush pipe`);
30
+ }
31
+ return this.latestValue;
32
+ }
33
+ updateValue(val) {
34
+ this.latestValue = val;
35
+ this.cdr.detectChanges();
36
+ if (this.parentCdr) {
37
+ this.parentCdr.detectChanges();
38
+ }
39
+ }
40
+ ngOnDestroy() {
41
+ if (this.sub) {
42
+ this.sub.unsubscribe();
43
+ }
44
+ this.latestValue = undefined;
45
+ this.obj = undefined;
46
+ }
47
+ }
48
+ NgtPush.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgtPush, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
49
+ NgtPush.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: NgtPush, isStandalone: true, name: "ngtPush", pure: false });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgtPush, decorators: [{
51
+ type: Pipe,
52
+ args: [{ name: 'ngtPush', pure: false, standalone: true }]
53
+ }] });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS9zcmMvbGliL3BpcGVzL3B1c2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBYSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQWlDLE1BQU0sTUFBTSxDQUFDOztBQUVuRSxTQUFTLFNBQVMsQ0FBQyxLQUFjO0lBQzdCLE9BQU8sQ0FDSCxDQUFDLEtBQUssWUFBWSxPQUFPLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGtCQUFrQixDQUFDO1FBQzFGLE9BQVEsS0FBMEIsQ0FBQyxNQUFNLENBQUMsS0FBSyxVQUFVLENBQzVELENBQUM7QUFDTixDQUFDO0FBR0QsTUFBTSxPQUFPLE9BQU87SUFEcEI7UUFFcUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBMkM5RjtJQXJDRyxTQUFTLENBQUMsS0FBeUIsRUFBRSxlQUFrQixJQUFLO1FBQ3hELElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUU7WUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBZ0IsQ0FBQztTQUNoQztRQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDO1FBRWhDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDMUI7UUFFRCxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQzlEO2FBQU0sSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxHQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQzlEO2FBQU07WUFDSCxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7U0FDakU7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBTTtRQUNkLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDbEM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDMUI7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUM3QixJQUFJLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQztJQUN6QixDQUFDOztvR0E1Q1EsT0FBTztrR0FBUCxPQUFPOzJGQUFQLE9BQU87a0JBRG5CLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBpbmplY3QsIE9uRGVzdHJveSwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlSW5wdXQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5mdW5jdGlvbiBpc1Byb21pc2UodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBQcm9taXNlPHVua25vd24+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICAodmFsdWUgaW5zdGFuY2VvZiBQcm9taXNlIHx8IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IFByb21pc2VdJykgJiZcbiAgICAgICAgdHlwZW9mICh2YWx1ZSBhcyBQcm9taXNlPHVua25vd24+KVsndGhlbiddID09PSAnZnVuY3Rpb24nXG4gICAgKTtcbn1cblxuQFBpcGUoeyBuYW1lOiAnbmd0UHVzaCcsIHB1cmU6IGZhbHNlLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0UHVzaDxUPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFyZW50Q2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmLCB7IHNraXBTZWxmOiB0cnVlLCBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIHByaXZhdGUgc3ViPzogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgb2JqPzogT2JzZXJ2YWJsZUlucHV0PFQ+O1xuICAgIHByaXZhdGUgbGF0ZXN0VmFsdWU/OiBUO1xuXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBPYnNlcnZhYmxlSW5wdXQ8VD4sIGRlZmF1bHRWYWx1ZTogVCA9IG51bGwhKTogVCB7XG4gICAgICAgIGlmICh0aGlzLm9iaiA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxhdGVzdFZhbHVlIGFzIFQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vYmogPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5sYXRlc3RWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcblxuICAgICAgICBpZiAodGhpcy5zdWIpIHtcbiAgICAgICAgICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNPYnNlcnZhYmxlKHRoaXMub2JqKSkge1xuICAgICAgICAgICAgdGhpcy5zdWIgPSB0aGlzLm9iai5zdWJzY3JpYmUodGhpcy51cGRhdGVWYWx1ZS5iaW5kKHRoaXMpKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc1Byb21pc2UodGhpcy5vYmopKSB7XG4gICAgICAgICAgICAodGhpcy5vYmogYXMgUHJvbWlzZTxUPikudGhlbih0aGlzLnVwZGF0ZVZhbHVlLmJpbmQodGhpcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBbTkdUXSBJbnZhbGlkIHZhbHVlIHBhc3NlZCB0byBuZ3RQdXNoIHBpcGVgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmxhdGVzdFZhbHVlIGFzIFQ7XG4gICAgfVxuXG4gICAgdXBkYXRlVmFsdWUodmFsOiBUKSB7XG4gICAgICAgIHRoaXMubGF0ZXN0VmFsdWUgPSB2YWw7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgaWYgKHRoaXMucGFyZW50Q2RyKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudENkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuc3ViKSB7XG4gICAgICAgICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGF0ZXN0VmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMub2JqID0gdW5kZWZpbmVkO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { ElementRef, Injectable, inject, InjectionToken, ViewContainerRef, TemplateRef, Directive, Input, EventEmitter, getDebugNode, ChangeDetectorRef, RendererFactory2, Component, Output, EnvironmentInjector, createEnvironmentInjector, HostBinding, ViewChild } from '@angular/core';
2
+ import { ElementRef, Injectable, inject, InjectionToken, ViewContainerRef, TemplateRef, Directive, Input, EventEmitter, getDebugNode, ChangeDetectorRef, RendererFactory2, Component, Output, EnvironmentInjector, createEnvironmentInjector, HostBinding, ViewChild, Pipe } from '@angular/core';
3
3
  import { injectNgxResize, provideNgxResizeOptions } from 'ngx-resize';
4
4
  import { BehaviorSubject, startWith, tap, isObservable, of, map, from, retry, catchError, share, ReplaySubject, switchMap, forkJoin, take, filter, distinctUntilChanged, takeUntil, merge } from 'rxjs';
5
5
  import { __rest } from 'tslib';
@@ -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
@@ -2557,9 +2557,60 @@ function injectNgtRef(initialValue = null) {
2557
2557
  return Object.assign(ref, { subscribe, $, children$, useCDR: (cdr) => void cdRefs.push(cdr) });
2558
2558
  }
2559
2559
 
2560
+ function isPromise(value) {
2561
+ return ((value instanceof Promise || Object.prototype.toString.call(value) === '[object Promise]') &&
2562
+ typeof value['then'] === 'function');
2563
+ }
2564
+ class NgtPush {
2565
+ constructor() {
2566
+ this.cdr = inject(ChangeDetectorRef);
2567
+ this.parentCdr = inject(ChangeDetectorRef, { skipSelf: true, optional: true });
2568
+ }
2569
+ transform(value, defaultValue = null) {
2570
+ if (this.obj === value) {
2571
+ return this.latestValue;
2572
+ }
2573
+ this.obj = value;
2574
+ this.latestValue = defaultValue;
2575
+ if (this.sub) {
2576
+ this.sub.unsubscribe();
2577
+ }
2578
+ if (isObservable(this.obj)) {
2579
+ this.sub = this.obj.subscribe(this.updateValue.bind(this));
2580
+ }
2581
+ else if (isPromise(this.obj)) {
2582
+ this.obj.then(this.updateValue.bind(this));
2583
+ }
2584
+ else {
2585
+ throw new Error(`[NGT] Invalid value passed to ngtPush pipe`);
2586
+ }
2587
+ return this.latestValue;
2588
+ }
2589
+ updateValue(val) {
2590
+ this.latestValue = val;
2591
+ this.cdr.detectChanges();
2592
+ if (this.parentCdr) {
2593
+ this.parentCdr.detectChanges();
2594
+ }
2595
+ }
2596
+ ngOnDestroy() {
2597
+ if (this.sub) {
2598
+ this.sub.unsubscribe();
2599
+ }
2600
+ this.latestValue = undefined;
2601
+ this.obj = undefined;
2602
+ }
2603
+ }
2604
+ NgtPush.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgtPush, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
2605
+ NgtPush.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: NgtPush, isStandalone: true, name: "ngtPush", pure: false });
2606
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgtPush, decorators: [{
2607
+ type: Pipe,
2608
+ args: [{ name: 'ngtPush', pure: false, standalone: true }]
2609
+ }] });
2610
+
2560
2611
  /**
2561
2612
  * Generated bundle index. Do not edit.
2562
2613
  */
2563
2614
 
2564
- export { NGT_CATALOGUE, NgtArgs, NgtCanvas, NgtCanvasContainer, NgtRepeat, NgtRxStore, NgtStore, checkNeedsUpdate, checkUpdate, extend, getLocalState, injectNgtDestroy, injectNgtLoader, injectNgtRef, invalidateInstance, is, prepare, rootStateMap, startWithUndefined, updateCamera };
2615
+ export { NGT_CATALOGUE, NgtArgs, NgtCanvas, NgtCanvasContainer, NgtPush, NgtRepeat, NgtRxStore, NgtStore, checkNeedsUpdate, checkUpdate, extend, getLocalState, injectNgtDestroy, injectNgtLoader, injectNgtRef, invalidateInstance, is, prepare, rootStateMap, startWithUndefined, updateCamera };
2565
2616
  //# sourceMappingURL=angular-three.mjs.map