angular-three 1.9.11 → 1.9.12
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/lib/canvas.mjs +13 -16
- package/esm2020/lib/di/ref.mjs +4 -2
- package/esm2020/lib/di/run-in-context.mjs +6 -1
- package/esm2020/lib/directives/args.mjs +3 -3
- package/esm2020/lib/directives/common.mjs +6 -5
- package/esm2020/lib/directives/parent.mjs +3 -3
- package/esm2020/lib/directives/repeat.mjs +3 -3
- package/esm2020/lib/loader.mjs +10 -6
- package/esm2020/lib/pipes/push.mjs +16 -21
- package/esm2020/lib/portal.mjs +40 -43
- package/esm2020/lib/renderer/renderer.mjs +7 -7
- package/esm2020/lib/renderer/utils.mjs +4 -4
- package/esm2020/lib/routed-scene.mjs +6 -5
- package/esm2020/lib/stores/rx-store.mjs +10 -25
- package/esm2020/lib/stores/store.mjs +11 -12
- package/esm2020/lib/utils/instance.mjs +3 -1
- package/esm2020/lib/utils/safe-detect-changes.mjs +4 -2
- package/fesm2015/angular-three.mjs +130 -149
- package/fesm2015/angular-three.mjs.map +1 -1
- package/fesm2020/angular-three.mjs +138 -156
- package/fesm2020/angular-three.mjs.map +1 -1
- package/lib/di/run-in-context.d.ts +5 -0
- package/lib/pipes/push.d.ts +1 -0
- package/lib/portal.d.ts +1 -1
- package/lib/stores/rx-store.d.ts +2 -8
- package/lib/utils/safe-detect-changes.d.ts +1 -1
- package/package.json +4 -4
- package/plugin/package.json +2 -2
package/esm2020/lib/canvas.mjs
CHANGED
|
@@ -6,6 +6,7 @@ import { provideNgtRenderer } from './renderer/provider';
|
|
|
6
6
|
import { NgtRxStore } from './stores/rx-store';
|
|
7
7
|
import { NgtStore, rootStateMap } from './stores/store';
|
|
8
8
|
import { is } from './utils/is';
|
|
9
|
+
import { safeDetectChanges } from './utils/safe-detect-changes';
|
|
9
10
|
import { createPointerEvents } from './web/events';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
12
|
export class NgtCanvas extends NgtRxStore {
|
|
@@ -95,7 +96,7 @@ export class NgtCanvas extends NgtRxStore {
|
|
|
95
96
|
this.store.set({
|
|
96
97
|
onPointerMissed: (event) => {
|
|
97
98
|
this.pointerMissed.emit(event);
|
|
98
|
-
this.cdr
|
|
99
|
+
safeDetectChanges(this.cdr);
|
|
99
100
|
},
|
|
100
101
|
});
|
|
101
102
|
}
|
|
@@ -135,20 +136,16 @@ export class NgtCanvas extends NgtRxStore {
|
|
|
135
136
|
// emit created event if observed
|
|
136
137
|
if (this.created.observed) {
|
|
137
138
|
this.created.emit(this.store.get());
|
|
138
|
-
this.cdr.detectChanges();
|
|
139
139
|
}
|
|
140
140
|
// render
|
|
141
141
|
if (this.glRef)
|
|
142
142
|
this.glRef.destroy();
|
|
143
143
|
requestAnimationFrame(() => {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
store: this.store,
|
|
147
|
-
changeDetectorRef: this.cdr,
|
|
148
|
-
compoundPrefixes: this.compoundPrefixes,
|
|
149
|
-
}),
|
|
150
|
-
], this.envInjector);
|
|
144
|
+
const { store, cdr: changeDetectorRef, compoundPrefixes } = this;
|
|
145
|
+
this.glEnvInjector = createEnvironmentInjector([provideNgtRenderer({ store, changeDetectorRef, compoundPrefixes })], this.envInjector);
|
|
151
146
|
this.glRef = this.glAnchor.createComponent(this.sceneGraph, { environmentInjector: this.glEnvInjector });
|
|
147
|
+
// detach the Scene graph from Change Detection mechanism
|
|
148
|
+
// everything from this point forward will trigger CD manually with detectChanges
|
|
152
149
|
this.glRef.changeDetectorRef.detach();
|
|
153
150
|
this.setSceneGraphInputs();
|
|
154
151
|
// here, we override the detectChanges to also call detectChanges on the ComponentRef
|
|
@@ -169,23 +166,23 @@ export class NgtCanvas extends NgtRxStore {
|
|
|
169
166
|
const originalDetectChanges = this.cdr.detectChanges.bind(this.cdr);
|
|
170
167
|
this.cdr.detectChanges = () => {
|
|
171
168
|
originalDetectChanges();
|
|
172
|
-
this.glRef?.changeDetectorRef
|
|
169
|
+
safeDetectChanges(this.glRef?.changeDetectorRef);
|
|
173
170
|
};
|
|
174
171
|
}
|
|
175
172
|
setSceneGraphInputs() {
|
|
176
173
|
for (const key of Object.keys(this.sceneGraphInputs)) {
|
|
177
|
-
this.glRef
|
|
174
|
+
this.glRef.setInput(key, this.sceneGraphInputs[key]);
|
|
178
175
|
}
|
|
179
|
-
this.cdr
|
|
176
|
+
safeDetectChanges(this.cdr);
|
|
180
177
|
}
|
|
181
178
|
}
|
|
182
|
-
NgtCanvas.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
183
|
-
NgtCanvas.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
179
|
+
NgtCanvas.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: NgtCanvas, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
180
|
+
NgtCanvas.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: NgtCanvas, isStandalone: true, selector: "ngt-canvas", inputs: { sceneGraph: "sceneGraph", sceneGraphInputs: "sceneGraphInputs", 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, provideNgxResizeOptions({ emitInZone: false })], viewQueries: [{ propertyName: "glCanvas", first: true, predicate: ["glCanvas"], descendants: true, static: true }, { propertyName: "glAnchor", first: true, predicate: ["glCanvas"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
|
|
184
181
|
<div (ngxResize)="onResize($event)" style="height: 100%; width: 100%;">
|
|
185
182
|
<canvas #glCanvas style="display: block;"></canvas>
|
|
186
183
|
</div>
|
|
187
184
|
`, isInline: true, styles: [":host{display:block;position:relative;width:100%;height:100%;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: NgxResize, selector: "[ngxResize]", inputs: ["ngxResizeOptions"], outputs: ["ngxResize"] }] });
|
|
188
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: NgtCanvas, decorators: [{
|
|
189
186
|
type: Component,
|
|
190
187
|
args: [{ selector: 'ngt-canvas', standalone: true, template: `
|
|
191
188
|
<div (ngxResize)="onResize($event)" style="height: 100%; width: 100%;">
|
|
@@ -243,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
243
240
|
type: ViewChild,
|
|
244
241
|
args: ['glCanvas', { static: true, read: ViewContainerRef }]
|
|
245
242
|
}] } });
|
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlL3NyYy9saWIvY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUVULHlCQUF5QixFQUN6QixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBRU4sSUFBSSxFQUNKLFNBQVMsRUFDVCxnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBbUIsdUJBQXVCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDakYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQXdCbkQsTUFBTSxPQUFPLFNBQVUsU0FBUSxVQUEyQjtJQXRCMUQ7O1FBdUJxQixRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMxQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBNEIsQ0FBQztRQUNyRCxVQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBZ0JBLGNBQVMsR0FBRyxJ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O2dCQUlPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBSU8sV0FBVztzQkFBdkIsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBSUksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUVrQyxRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQzBCLFFBQVE7c0JBQXhFLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRSZWYsXG4gICAgY3JlYXRlRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBFbGVtZW50UmVmLFxuICAgIEVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUeXBlLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neFJlc2l6ZSwgTmd4UmVzaXplUmVzdWx0LCBwcm92aWRlTmd4UmVzaXplT3B0aW9ucyB9IGZyb20gJ25neC1yZXNpemUnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3ROZ3RMb2FkZXIgfSBmcm9tICcuL2xvYWRlcic7XG5pbXBvcnQgeyBwcm92aWRlTmd0UmVuZGVyZXIgfSBmcm9tICcuL3JlbmRlcmVyL3Byb3ZpZGVyJztcbmltcG9ydCB7IE5ndFJ4U3RvcmUgfSBmcm9tICcuL3N0b3Jlcy9yeC1zdG9yZSc7XG5pbXBvcnQgeyBOZ3RTdG9yZSwgcm9vdFN0YXRlTWFwIH0gZnJvbSAnLi9zdG9yZXMvc3RvcmUnO1xuaW1wb3J0IHR5cGUgeyBOZ3RBbnlSZWNvcmQsIE5ndENhbnZhc0lucHV0cywgTmd0RG9tRXZlbnQsIE5ndERwciwgTmd0U3RhdGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi91dGlscy9pcyc7XG5pbXBvcnQgeyBjcmVhdGVQb2ludGVyRXZlbnRzIH0gZnJvbSAnLi93ZWIvZXZlbnRzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtY2FudmFzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgKG5neFJlc2l6ZSk9XCJvblJlc2l6ZSgkZXZlbnQpXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlO1wiPlxuICAgICAgICAgICAgPGNhbnZhcyAjZ2xDYW52YXMgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj48L2NhbnZhcz5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd4UmVzaXplXSxcbiAgICBwcm92aWRlcnM6IFtOZ3RTdG9yZSwgcHJvdmlkZU5neFJlc2l6ZU9wdGlvbnMoeyBlbWl0SW5ab25lOiBmYWxzZSB9KV0sXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0Q2FudmFzIGV4dGVuZHMgTmd0UnhTdG9yZTxOZ3RDYW52YXNJbnB1dHM+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZW52SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0ID0gaW5qZWN0KEVsZW1lbnRSZWYpIGFzIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICBzaGFkb3dzOiBmYWxzZSxcbiAgICAgICAgICAgIGxpbmVhcjogZmFsc2UsXG4gICAgICAgICAgICBmbGF0OiBmYWxzZSxcbiAgICAgICAgICAgIGxlZ2FjeTogZmFsc2UsXG4gICAgICAgICAgICBvcnRob2dyYXBoaWM6IGZhbHNlLFxuICAgICAgICAgICAgZnJhbWVsb29wOiAnYWx3YXlzJyxcbiAgICAgICAgICAgIGRwcjogWzEsIDJdLFxuICAgICAgICAgICAgZXZlbnRzOiBjcmVhdGVQb2ludGVyRXZlbnRzLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLm5ndC1jYW52YXMnKSByZWFkb25seSBob3N0Q2xhc3MgPSB0cnVlO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUucG9pbnRlckV2ZW50cycpIGdldCBwb2ludGVyRXZlbnRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ2V2ZW50U291cmNlJykgIT09IHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50ID8gJ25vbmUnIDogJ2F1dG8nO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNjZW5lR3JhcGghOiBUeXBlPGFueT47XG4gICAgQElucHV0KCkgc2NlbmVHcmFwaElucHV0czogTmd0QW55UmVjb3JkID0ge307XG4gICAgQElucHV0KCkgY29tcG91bmRQcmVmaXhlczogc3RyaW5nW10gPSBbXTtcblxuICAgIEBJbnB1dCgpIHNldCBsaW5lYXIobGluZWFyOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbGluZWFyIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsZWdhY3kobGVnYWN5OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbGVnYWN5IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmbGF0KGZsYXQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmbGF0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBvcnRob2dyYXBoaWMob3J0aG9ncmFwaGljOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgb3J0aG9ncmFwaGljIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmcmFtZWxvb3AoZnJhbWVsb29wOiBOZ3RDYW52YXNJbnB1dHNbJ2ZyYW1lbG9vcCddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZnJhbWVsb29wIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkcHIoZHByOiBOZ3REcHIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkcHIgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHJheWNhc3RlcihyYXljYXN0ZXI6IFBhcnRpYWw8VEhSRUUuUmF5Y2FzdGVyPikge1xuICAgICAgICB0aGlzLnNldCh7IHJheWNhc3RlciB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2hhZG93cyhzaGFkb3dzOiBib29sZWFuIHwgUGFydGlhbDxUSFJFRS5XZWJHTFNoYWRvd01hcD4pIHtcbiAgICAgICAgdGhpcy5zZXQoe1xuICAgICAgICAgICAgc2hhZG93czogdHlwZW9mIHNoYWRvd3MgPT09ICdvYmplY3QnID8gKHNoYWRvd3MgYXMgUGFydGlhbDxUSFJFRS5XZWJHTFNoYWRvd01hcD4pIDogc2hhZG93cyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGNhbWVyYShjYW1lcmE6IE5ndENhbnZhc0lucHV0c1snY2FtZXJhJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBjYW1lcmEgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGdsKGdsOiBOZ3RDYW52YXNJbnB1dHNbJ2dsJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBnbCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZXZlbnRTb3VyY2UoZXZlbnRTb3VyY2U6IE5ndENhbnZhc0lucHV0c1snZXZlbnRTb3VyY2UnXSkge1xuICAgICAgICB0aGlzLnNldCh7IGV2ZW50U291cmNlIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBldmVudFByZWZpeChldmVudFByZWZpeDogTmd0Q2FudmFzSW5wdXRzWydldmVudFByZWZpeCddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZXZlbnRQcmVmaXggfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGxvb2tBdChsb29rQXQ6IE5ndENhbnZhc0lucHV0c1snbG9va0F0J10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBsb29rQXQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHBlcmZvcm1hbmNlKHBlcmZvcm1hbmNlOiBOZ3RDYW52YXNJbnB1dHNbJ3BlcmZvcm1hbmNlJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBwZXJmb3JtYW5jZSB9KTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgY3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Tmd0U3RhdGU+KCk7XG4gICAgQE91dHB1dCgpIHBvaW50ZXJNaXNzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdnbENhbnZhcycsIHsgc3RhdGljOiB0cnVlIH0pIGdsQ2FudmFzITogRWxlbWVudFJlZjxIVE1MQ2FudmFzRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgnZ2xDYW52YXMnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBnbEFuY2hvciE6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICBwcml2YXRlIGdsUmVmPzogQ29tcG9uZW50UmVmPHVua25vd24+O1xuICAgIHByaXZhdGUgZ2xFbnZJbmplY3Rvcj86IEVudmlyb25tZW50SW5qZWN0b3I7XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydzY2VuZUdyYXBoSW5wdXRzJ10gJiYgdGhpcy5nbFJlZikge1xuICAgICAgICAgICAgdGhpcy5zZXRTY2VuZUdyYXBoSW5wdXRzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmdldCgnZXZlbnRTb3VyY2UnKSkge1xuICAgICAgICAgICAgLy8gc2V0IGRlZmF1bHQgZXZlbnQgc291cmNlIHRvIHRoZSBob3N0IGVsZW1lbnRcbiAgICAgICAgICAgIHRoaXMuZXZlbnRTb3VyY2UgPSB0aGlzLmhvc3QubmF0aXZlRWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnBvaW50ZXJNaXNzZWQub2JzZXJ2ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0KHtcbiAgICAgICAgICAgICAgICBvblBvaW50ZXJNaXNzZWQ6IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvaW50ZXJNaXNzZWQuZW1pdChldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXR1cCBOZ3RTdG9yZVxuICAgICAgICB0aGlzLnN0b3JlLmluaXQoKTtcblxuICAgICAgICAvLyBzZXQgcm9vdFN0YXRlTWFwXG4gICAgICAgIHJvb3RTdGF0ZU1hcC5zZXQodGhpcy5nbENhbnZhcy5uYXRpdmVFbGVtZW50LCB0aGlzLnN0b3JlKTtcblxuICAgICAgICAvLyBzdWJzY3JpYmUgdG8gc3RvcmUgdG8gbGlzdGVuIGZvciByZWFkeSBzdGF0ZVxuICAgICAgICB0aGlzLmhvbGQodGhpcy5zdG9yZS5zZWxlY3QoJ3JlYWR5JykucGlwZShmaWx0ZXIoKHJlYWR5KSA9PiByZWFkeSkpLCAoKSA9PiB0aGlzLnN0b3JlUmVhZHkoKSk7XG4gICAgfVxuXG4gICAgb25SZXNpemUoeyB3aWR0aCwgaGVpZ2h0IH06IE5neFJlc2l6ZVJlc3VsdCkge1xuICAgICAgICBpZiAod2lkdGggPiAwICYmIGhlaWdodCA+IDApIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5zdG9yZS5pc0luaXQpIHRoaXMuc3RvcmUuaW5pdCgpO1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5jb25maWd1cmUodGhpcy5nZXQoKSwgdGhpcy5nbENhbnZhcy5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3RvcmVSZWFkeSgpIHtcbiAgICAgICAgLy8gY2FudmFzIGlzIHJlYWR5LCBsZXQncyBhY3RpdmF0ZSB0aGUgbG9vcFxuICAgICAgICB0aGlzLnN0b3JlLnNldCgoc3RhdGUpID0+ICh7IGludGVybmFsOiB7IC4uLnN0YXRlLmludGVybmFsLCBhY3RpdmU6IHRydWUgfSB9KSk7XG5cbiAgICAgICAgY29uc3QgaW5wdXRzID0gdGhpcy5nZXQoKTtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0b3JlLmdldCgpO1xuXG4gICAgICAgIC8vIGNvbm5lY3QgdG8gZXZlbnQgc291cmNlXG4gICAgICAgIHN0YXRlLmV2ZW50cy5jb25uZWN0Py4oaXMucmVmKGlucHV0cy5ldmVudFNvdXJjZSkgPyBpbnB1dHMuZXZlbnRTb3VyY2UubmF0aXZlRWxlbWVudCA6IGlucHV0cy5ldmVudFNvdXJjZSk7XG5cbiAgICAgICAgLy8gc2V0dXAgY29tcHV0ZSBmdW5jdGlvbiBmb3IgZXZlbnRzXG4gICAgICAgIGlmIChpbnB1dHMuZXZlbnRQcmVmaXgpIHtcbiAgICAgICAgICAgIHN0YXRlLnNldEV2ZW50cyh7XG4gICAgICAgICAgICAgICAgY29tcHV0ZTogKGV2ZW50LCBzdG9yZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbm5lclN0YXRlID0gc3RvcmUuZ2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHggPSBldmVudFsoaW5wdXRzLmV2ZW50UHJlZml4ICsgJ1gnKSBhcyBrZXlvZiBOZ3REb21FdmVudF0gYXMgbnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB5ID0gZXZlbnRbKGlucHV0cy5ldmVudFByZWZpeCArICdZJykgYXMga2V5b2YgTmd0RG9tRXZlbnRdIGFzIG51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgaW5uZXJTdGF0ZS5wb2ludGVyLnNldCgoeCAvIGlubmVyU3RhdGUuc2l6ZS53aWR0aCkgKiAyIC0gMSwgLSh5IC8gaW5uZXJTdGF0ZS5zaXplLmhlaWdodCkgKiAyICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGlubmVyU3RhdGUucmF5Y2FzdGVyLnNldEZyb21DYW1lcmEoaW5uZXJTdGF0ZS5wb2ludGVyLCBpbm5lclN0YXRlLmNhbWVyYSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZW1pdCBjcmVhdGVkIGV2ZW50IGlmIG9ic2VydmVkXG4gICAgICAgIGlmICh0aGlzLmNyZWF0ZWQub2JzZXJ2ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlZC5lbWl0KHRoaXMuc3RvcmUuZ2V0KCkpO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVuZGVyXG4gICAgICAgIGlmICh0aGlzLmdsUmVmKSB0aGlzLmdsUmVmLmRlc3Ryb3koKTtcblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nbEVudkluamVjdG9yID0gY3JlYXRlRW52aXJvbm1lbnRJbmplY3RvcihcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVOZ3RSZW5kZXJlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZTogdGhpcy5zdG9yZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiB0aGlzLmNkcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kUHJlZml4ZXM6IHRoaXMuY29tcG91bmRQcmVmaXhlcyxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB0aGlzLmVudkluamVjdG9yXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5nbFJlZiA9IHRoaXMuZ2xBbmNob3IuY3JlYXRlQ29tcG9uZW50KHRoaXMuc2NlbmVHcmFwaCwgeyBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmdsRW52SW5qZWN0b3IgfSk7XG4gICAgICAgICAgICB0aGlzLmdsUmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGFjaCgpO1xuICAgICAgICAgICAgdGhpcy5zZXRTY2VuZUdyYXBoSW5wdXRzKCk7XG5cbiAgICAgICAgICAgIC8vIGhlcmUsIHdlIG92ZXJyaWRlIHRoZSBkZXRlY3RDaGFuZ2VzIHRvIGFsc28gY2FsbCBkZXRlY3RDaGFuZ2VzIG9uIHRoZSBDb21wb25lbnRSZWZcbiAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVEZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5nbFJlZikgdGhpcy5nbFJlZi5kZXN0cm95KCk7XG4gICAgICAgIGlmICh0aGlzLmdsRW52SW5qZWN0b3IpIHRoaXMuZ2xFbnZJbmplY3Rvci5kZXN0cm95KCk7XG4gICAgICAgIGluamVjdE5ndExvYWRlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuc3RvcmUuZGVzdHJveSh0aGlzLmdsQ2FudmFzLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3ZlcnJpZGVEZXRlY3RDaGFuZ2VzKCkge1xuICAgICAgICBjb25zdCBvcmlnaW5hbERldGVjdENoYW5nZXMgPSB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzLmJpbmQodGhpcy5jZHIpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzID0gKCkgPT4ge1xuICAgICAgICAgICAgb3JpZ2luYWxEZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmdsUmVmPy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTY2VuZUdyYXBoSW5wdXRzKCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLnNjZW5lR3JhcGhJbnB1dHMpKSB7XG4gICAgICAgICAgICB0aGlzLmdsUmVmPy5zZXRJbnB1dChrZXksIHRoaXMuc2NlbmVHcmFwaElucHV0c1trZXldKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIl19
|
|
243
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlL3NyYy9saWIvY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUVULHlCQUF5QixFQUN6QixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBRU4sSUFBSSxFQUNKLFNBQVMsRUFDVCxnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBbUIsdUJBQXVCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDakYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQXdCbkQsTUFBTSxPQUFPLFNBQVUsU0FBUSxVQUEyQjtJQXRCMUQ7O1FBdUJxQixRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMxQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBNEIsQ0FBQztRQUNyRCxVQUFLLEdB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QU1PLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sRUFBRTtzQkFBZCxLQUFLO2dCQUlPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBSU8sV0FBVztzQkFBdkIsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBSUksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUVrQyxRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQzBCLFFBQVE7c0JBQXhFLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRSZWYsXG4gICAgY3JlYXRlRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBFbGVtZW50UmVmLFxuICAgIEVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUeXBlLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neFJlc2l6ZSwgTmd4UmVzaXplUmVzdWx0LCBwcm92aWRlTmd4UmVzaXplT3B0aW9ucyB9IGZyb20gJ25neC1yZXNpemUnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3ROZ3RMb2FkZXIgfSBmcm9tICcuL2xvYWRlcic7XG5pbXBvcnQgeyBwcm92aWRlTmd0UmVuZGVyZXIgfSBmcm9tICcuL3JlbmRlcmVyL3Byb3ZpZGVyJztcbmltcG9ydCB7IE5ndFJ4U3RvcmUgfSBmcm9tICcuL3N0b3Jlcy9yeC1zdG9yZSc7XG5pbXBvcnQgeyBOZ3RTdG9yZSwgcm9vdFN0YXRlTWFwIH0gZnJvbSAnLi9zdG9yZXMvc3RvcmUnO1xuaW1wb3J0IHR5cGUgeyBOZ3RBbnlSZWNvcmQsIE5ndENhbnZhc0lucHV0cywgTmd0RG9tRXZlbnQsIE5ndERwciwgTmd0U3RhdGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi91dGlscy9pcyc7XG5pbXBvcnQgeyBzYWZlRGV0ZWN0Q2hhbmdlcyB9IGZyb20gJy4vdXRpbHMvc2FmZS1kZXRlY3QtY2hhbmdlcyc7XG5pbXBvcnQgeyBjcmVhdGVQb2ludGVyRXZlbnRzIH0gZnJvbSAnLi93ZWIvZXZlbnRzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtY2FudmFzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgKG5neFJlc2l6ZSk9XCJvblJlc2l6ZSgkZXZlbnQpXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlO1wiPlxuICAgICAgICAgICAgPGNhbnZhcyAjZ2xDYW52YXMgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj48L2NhbnZhcz5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd4UmVzaXplXSxcbiAgICBwcm92aWRlcnM6IFtOZ3RTdG9yZSwgcHJvdmlkZU5neFJlc2l6ZU9wdGlvbnMoeyBlbWl0SW5ab25lOiBmYWxzZSB9KV0sXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0Q2FudmFzIGV4dGVuZHMgTmd0UnhTdG9yZTxOZ3RDYW52YXNJbnB1dHM+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZW52SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0ID0gaW5qZWN0KEVsZW1lbnRSZWYpIGFzIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICBzaGFkb3dzOiBmYWxzZSxcbiAgICAgICAgICAgIGxpbmVhcjogZmFsc2UsXG4gICAgICAgICAgICBmbGF0OiBmYWxzZSxcbiAgICAgICAgICAgIGxlZ2FjeTogZmFsc2UsXG4gICAgICAgICAgICBvcnRob2dyYXBoaWM6IGZhbHNlLFxuICAgICAgICAgICAgZnJhbWVsb29wOiAnYWx3YXlzJyxcbiAgICAgICAgICAgIGRwcjogWzEsIDJdLFxuICAgICAgICAgICAgZXZlbnRzOiBjcmVhdGVQb2ludGVyRXZlbnRzLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLm5ndC1jYW52YXMnKSByZWFkb25seSBob3N0Q2xhc3MgPSB0cnVlO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUucG9pbnRlckV2ZW50cycpIGdldCBwb2ludGVyRXZlbnRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ2V2ZW50U291cmNlJykgIT09IHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50ID8gJ25vbmUnIDogJ2F1dG8nO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNjZW5lR3JhcGghOiBUeXBlPGFueT47XG4gICAgQElucHV0KCkgc2NlbmVHcmFwaElucHV0czogTmd0QW55UmVjb3JkID0ge307XG4gICAgQElucHV0KCkgY29tcG91bmRQcmVmaXhlczogc3RyaW5nW10gPSBbXTtcblxuICAgIEBJbnB1dCgpIHNldCBsaW5lYXIobGluZWFyOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbGluZWFyIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsZWdhY3kobGVnYWN5OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbGVnYWN5IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmbGF0KGZsYXQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmbGF0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBvcnRob2dyYXBoaWMob3J0aG9ncmFwaGljOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgb3J0aG9ncmFwaGljIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmcmFtZWxvb3AoZnJhbWVsb29wOiBOZ3RDYW52YXNJbnB1dHNbJ2ZyYW1lbG9vcCddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZnJhbWVsb29wIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkcHIoZHByOiBOZ3REcHIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkcHIgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHJheWNhc3RlcihyYXljYXN0ZXI6IFBhcnRpYWw8VEhSRUUuUmF5Y2FzdGVyPikge1xuICAgICAgICB0aGlzLnNldCh7IHJheWNhc3RlciB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2hhZG93cyhzaGFkb3dzOiBib29sZWFuIHwgUGFydGlhbDxUSFJFRS5XZWJHTFNoYWRvd01hcD4pIHtcbiAgICAgICAgdGhpcy5zZXQoe1xuICAgICAgICAgICAgc2hhZG93czogdHlwZW9mIHNoYWRvd3MgPT09ICdvYmplY3QnID8gKHNoYWRvd3MgYXMgUGFydGlhbDxUSFJFRS5XZWJHTFNoYWRvd01hcD4pIDogc2hhZG93cyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGNhbWVyYShjYW1lcmE6IE5ndENhbnZhc0lucHV0c1snY2FtZXJhJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBjYW1lcmEgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGdsKGdsOiBOZ3RDYW52YXNJbnB1dHNbJ2dsJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBnbCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZXZlbnRTb3VyY2UoZXZlbnRTb3VyY2U6IE5ndENhbnZhc0lucHV0c1snZXZlbnRTb3VyY2UnXSkge1xuICAgICAgICB0aGlzLnNldCh7IGV2ZW50U291cmNlIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBldmVudFByZWZpeChldmVudFByZWZpeDogTmd0Q2FudmFzSW5wdXRzWydldmVudFByZWZpeCddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZXZlbnRQcmVmaXggfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGxvb2tBdChsb29rQXQ6IE5ndENhbnZhc0lucHV0c1snbG9va0F0J10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBsb29rQXQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHBlcmZvcm1hbmNlKHBlcmZvcm1hbmNlOiBOZ3RDYW52YXNJbnB1dHNbJ3BlcmZvcm1hbmNlJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBwZXJmb3JtYW5jZSB9KTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgY3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Tmd0U3RhdGU+KCk7XG4gICAgQE91dHB1dCgpIHBvaW50ZXJNaXNzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdnbENhbnZhcycsIHsgc3RhdGljOiB0cnVlIH0pIGdsQ2FudmFzITogRWxlbWVudFJlZjxIVE1MQ2FudmFzRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgnZ2xDYW52YXMnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBnbEFuY2hvciE6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICBwcml2YXRlIGdsUmVmPzogQ29tcG9uZW50UmVmPHVua25vd24+O1xuICAgIHByaXZhdGUgZ2xFbnZJbmplY3Rvcj86IEVudmlyb25tZW50SW5qZWN0b3I7XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydzY2VuZUdyYXBoSW5wdXRzJ10gJiYgdGhpcy5nbFJlZikge1xuICAgICAgICAgICAgdGhpcy5zZXRTY2VuZUdyYXBoSW5wdXRzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmdldCgnZXZlbnRTb3VyY2UnKSkge1xuICAgICAgICAgICAgLy8gc2V0IGRlZmF1bHQgZXZlbnQgc291cmNlIHRvIHRoZSBob3N0IGVsZW1lbnRcbiAgICAgICAgICAgIHRoaXMuZXZlbnRTb3VyY2UgPSB0aGlzLmhvc3QubmF0aXZlRWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnBvaW50ZXJNaXNzZWQub2JzZXJ2ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0KHtcbiAgICAgICAgICAgICAgICBvblBvaW50ZXJNaXNzZWQ6IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvaW50ZXJNaXNzZWQuZW1pdChldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHNhZmVEZXRlY3RDaGFuZ2VzKHRoaXMuY2RyKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXR1cCBOZ3RTdG9yZVxuICAgICAgICB0aGlzLnN0b3JlLmluaXQoKTtcblxuICAgICAgICAvLyBzZXQgcm9vdFN0YXRlTWFwXG4gICAgICAgIHJvb3RTdGF0ZU1hcC5zZXQodGhpcy5nbENhbnZhcy5uYXRpdmVFbGVtZW50LCB0aGlzLnN0b3JlKTtcblxuICAgICAgICAvLyBzdWJzY3JpYmUgdG8gc3RvcmUgdG8gbGlzdGVuIGZvciByZWFkeSBzdGF0ZVxuICAgICAgICB0aGlzLmhvbGQodGhpcy5zdG9yZS5zZWxlY3QoJ3JlYWR5JykucGlwZShmaWx0ZXIoKHJlYWR5KSA9PiByZWFkeSkpLCAoKSA9PiB0aGlzLnN0b3JlUmVhZHkoKSk7XG4gICAgfVxuXG4gICAgb25SZXNpemUoeyB3aWR0aCwgaGVpZ2h0IH06IE5neFJlc2l6ZVJlc3VsdCkge1xuICAgICAgICBpZiAod2lkdGggPiAwICYmIGhlaWdodCA+IDApIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5zdG9yZS5pc0luaXQpIHRoaXMuc3RvcmUuaW5pdCgpO1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5jb25maWd1cmUodGhpcy5nZXQoKSwgdGhpcy5nbENhbnZhcy5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3RvcmVSZWFkeSgpIHtcbiAgICAgICAgLy8gY2FudmFzIGlzIHJlYWR5LCBsZXQncyBhY3RpdmF0ZSB0aGUgbG9vcFxuICAgICAgICB0aGlzLnN0b3JlLnNldCgoc3RhdGUpID0+ICh7IGludGVybmFsOiB7IC4uLnN0YXRlLmludGVybmFsLCBhY3RpdmU6IHRydWUgfSB9KSk7XG5cbiAgICAgICAgY29uc3QgaW5wdXRzID0gdGhpcy5nZXQoKTtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0b3JlLmdldCgpO1xuXG4gICAgICAgIC8vIGNvbm5lY3QgdG8gZXZlbnQgc291cmNlXG4gICAgICAgIHN0YXRlLmV2ZW50cy5jb25uZWN0Py4oaXMucmVmKGlucHV0cy5ldmVudFNvdXJjZSkgPyBpbnB1dHMuZXZlbnRTb3VyY2UubmF0aXZlRWxlbWVudCA6IGlucHV0cy5ldmVudFNvdXJjZSk7XG5cbiAgICAgICAgLy8gc2V0dXAgY29tcHV0ZSBmdW5jdGlvbiBmb3IgZXZlbnRzXG4gICAgICAgIGlmIChpbnB1dHMuZXZlbnRQcmVmaXgpIHtcbiAgICAgICAgICAgIHN0YXRlLnNldEV2ZW50cyh7XG4gICAgICAgICAgICAgICAgY29tcHV0ZTogKGV2ZW50LCBzdG9yZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbm5lclN0YXRlID0gc3RvcmUuZ2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHggPSBldmVudFsoaW5wdXRzLmV2ZW50UHJlZml4ICsgJ1gnKSBhcyBrZXlvZiBOZ3REb21FdmVudF0gYXMgbnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB5ID0gZXZlbnRbKGlucHV0cy5ldmVudFByZWZpeCArICdZJykgYXMga2V5b2YgTmd0RG9tRXZlbnRdIGFzIG51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgaW5uZXJTdGF0ZS5wb2ludGVyLnNldCgoeCAvIGlubmVyU3RhdGUuc2l6ZS53aWR0aCkgKiAyIC0gMSwgLSh5IC8gaW5uZXJTdGF0ZS5zaXplLmhlaWdodCkgKiAyICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGlubmVyU3RhdGUucmF5Y2FzdGVyLnNldEZyb21DYW1lcmEoaW5uZXJTdGF0ZS5wb2ludGVyLCBpbm5lclN0YXRlLmNhbWVyYSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZW1pdCBjcmVhdGVkIGV2ZW50IGlmIG9ic2VydmVkXG4gICAgICAgIGlmICh0aGlzLmNyZWF0ZWQub2JzZXJ2ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlZC5lbWl0KHRoaXMuc3RvcmUuZ2V0KCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVuZGVyXG4gICAgICAgIGlmICh0aGlzLmdsUmVmKSB0aGlzLmdsUmVmLmRlc3Ryb3koKTtcblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzdG9yZSwgY2RyOiBjaGFuZ2VEZXRlY3RvclJlZiwgY29tcG91bmRQcmVmaXhlcyB9ID0gdGhpcztcbiAgICAgICAgICAgIHRoaXMuZ2xFbnZJbmplY3RvciA9IGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3IoXG4gICAgICAgICAgICAgICAgW3Byb3ZpZGVOZ3RSZW5kZXJlcih7IHN0b3JlLCBjaGFuZ2VEZXRlY3RvclJlZiwgY29tcG91bmRQcmVmaXhlcyB9KV0sXG4gICAgICAgICAgICAgICAgdGhpcy5lbnZJbmplY3RvclxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuZ2xSZWYgPSB0aGlzLmdsQW5jaG9yLmNyZWF0ZUNvbXBvbmVudCh0aGlzLnNjZW5lR3JhcGgsIHsgZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy5nbEVudkluamVjdG9yIH0pO1xuICAgICAgICAgICAgLy8gZGV0YWNoIHRoZSBTY2VuZSBncmFwaCBmcm9tIENoYW5nZSBEZXRlY3Rpb24gbWVjaGFuaXNtXG4gICAgICAgICAgICAvLyBldmVyeXRoaW5nIGZyb20gdGhpcyBwb2ludCBmb3J3YXJkIHdpbGwgdHJpZ2dlciBDRCBtYW51YWxseSB3aXRoIGRldGVjdENoYW5nZXNcbiAgICAgICAgICAgIHRoaXMuZ2xSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0YWNoKCk7XG4gICAgICAgICAgICB0aGlzLnNldFNjZW5lR3JhcGhJbnB1dHMoKTtcblxuICAgICAgICAgICAgLy8gaGVyZSwgd2Ugb3ZlcnJpZGUgdGhlIGRldGVjdENoYW5nZXMgdG8gYWxzbyBjYWxsIGRldGVjdENoYW5nZXMgb24gdGhlIENvbXBvbmVudFJlZlxuICAgICAgICAgICAgdGhpcy5vdmVycmlkZURldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmdsUmVmKSB0aGlzLmdsUmVmLmRlc3Ryb3koKTtcbiAgICAgICAgaWYgKHRoaXMuZ2xFbnZJbmplY3RvcikgdGhpcy5nbEVudkluamVjdG9yLmRlc3Ryb3koKTtcbiAgICAgICAgaW5qZWN0Tmd0TG9hZGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5zdG9yZS5kZXN0cm95KHRoaXMuZ2xDYW52YXMubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvdmVycmlkZURldGVjdENoYW5nZXMoKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsRGV0ZWN0Q2hhbmdlcyA9IHRoaXMuY2RyLmRldGVjdENoYW5nZXMuYmluZCh0aGlzLmNkcik7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMgPSAoKSA9PiB7XG4gICAgICAgICAgICBvcmlnaW5hbERldGVjdENoYW5nZXMoKTtcbnNhZmVEZXRlY3RDaGFuZ2VzKHRoaXMuZ2xSZWY/LmNoYW5nZURldGVjdG9yUmVmKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNjZW5lR3JhcGhJbnB1dHMoKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuc2NlbmVHcmFwaElucHV0cykpIHtcbiAgICAgICAgICAgIHRoaXMuZ2xSZWYhLnNldElucHV0KGtleSwgdGhpcy5zY2VuZUdyYXBoSW5wdXRzW2tleV0pO1xuICAgICAgICB9XG4gICAgICAgIHNhZmVEZXRlY3RDaGFuZ2VzKHRoaXMuY2RyKTtcbiAgICB9XG59XG4iXX0=
|
package/esm2020/lib/di/ref.mjs
CHANGED
|
@@ -20,6 +20,7 @@ export function injectNgtRef(initialValue = null) {
|
|
|
20
20
|
lastValue = current;
|
|
21
21
|
});
|
|
22
22
|
};
|
|
23
|
+
const useCDR = (cdr) => void cdRefs.push(cdr);
|
|
23
24
|
const $ = obs$.pipe(filter((value, index) => index > 0 || value != null), takeUntil(destroy$));
|
|
24
25
|
const children$ = (type = 'objects') => $.pipe(switchMap((instance) => {
|
|
25
26
|
const localState = getLocalState(instance);
|
|
@@ -38,6 +39,7 @@ export function injectNgtRef(initialValue = null) {
|
|
|
38
39
|
}
|
|
39
40
|
return of([]);
|
|
40
41
|
}), filter((children, index) => index > 0 || children.length > 0), takeUntil(destroy$));
|
|
42
|
+
// here, we override nativeElement to add more functionalities to nativeElement
|
|
41
43
|
Object.defineProperty(ref, 'nativeElement', {
|
|
42
44
|
set: (newVal) => {
|
|
43
45
|
if (ref.nativeElement !== newVal) {
|
|
@@ -62,6 +64,6 @@ export function injectNgtRef(initialValue = null) {
|
|
|
62
64
|
},
|
|
63
65
|
get: () => ref$.value,
|
|
64
66
|
});
|
|
65
|
-
return Object.assign(ref, { subscribe, $, children$, useCDR
|
|
67
|
+
return Object.assign(ref, { subscribe, $, children$, useCDR });
|
|
66
68
|
}
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlL3NyYy9saWIvZGkvcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsVUFBVSxFQUFXLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFDSCxlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixHQUFHLEVBQ0gsS0FBSyxFQUVMLEVBQUUsRUFFRixTQUFTLEVBQ1QsU0FBUyxHQUNaLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBZTdDLE1BQU0sVUFBVSxZQUFZLENBQUksZUFBK0MsSUFBSTtJQUMvRSxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFJLFlBQWlCLENBQUMsQ0FBQztJQUV2RixJQUFJLFNBQVMsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDO0lBRWxDLE1BQU0sTUFBTSxHQUFHLEVBQXlCLENBQUM7SUFDekMsTUFBTSxJQUFJLEdBQUcsSUFBSSxlQUFlLENBQUksU0FBUyxDQUFDLENBQUM7SUFFL0MsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7UUFDNUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVqQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFbkYsTUFBTSxTQUFTLEdBQWlCLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDekMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDOUIsUUFBUSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM3QixTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDZixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsRUFDcEQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUN0QixDQUFDO0lBRUYsTUFBTSxTQUFTLEdBQUcsQ0FBQyxPQUEwQyxTQUFTLEVBQUUsRUFBRSxDQUN0RSxDQUFDLENBQUMsSUFBSSxDQUNGLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQ25CLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxRQUEyQixDQUFDLENBQUM7UUFDOUQsSUFBSSxVQUFVLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxVQUFVLEVBQUU7WUFDN0MsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUN4RCxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNMLElBQUk7b0JBQ0EsT0FBTyxJQUFJLEtBQUssTUFBTTt3QkFDbEIsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO3dCQUMvRCxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztpQkFDaEM7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1IsT0FBTyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsUUFBUSxFQUFFLENBQUMsQ0FBQztvQkFDdEUsT0FBTyxFQUFFLENBQUM7aUJBQ2I7WUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO1NBQ0w7UUFFRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUMsRUFDRixNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQzdELFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FDdEIsQ0FBQztJQUVOLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLGVBQWUsRUFBRTtRQUN4QyxHQUFHLEVBQUUsQ0FBQyxNQUFTLEVBQUUsRUFBRTtZQUNmLElBQUksR0FBRyxDQUFDLGFBQWEsS0FBSyxNQUFNLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBRWxCLFNBQVMsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDO2dCQUM5QixHQUFHLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztnQkFFM0IsdURBQXVEO2dCQUN2RCxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7Z0JBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUNqQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2xCLGtGQUFrRjtvQkFDbEYsSUFBSyxFQUFjLENBQUMsU0FBUyxFQUFFO3dCQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDcEIsU0FBUztxQkFDWjtvQkFDRCwyREFBMkQ7b0JBQzNELDJFQUEyRTtvQkFDM0UsbUNBQW1DO29CQUNuQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDekI7YUFDSjtRQUNMLENBQUM7UUFDRCxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUs7S0FDeEIsQ0FBQyxDQUFDO0lBRUgsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLEdBQXNCLEVBQUUsRUFBRSxDQUFDLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDdEgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBWaWV3UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEJlaGF2aW9yU3ViamVjdCxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgICBmaWx0ZXIsXG4gICAgbWFwLFxuICAgIG1lcmdlLFxuICAgIE9ic2VydmFibGUsXG4gICAgb2YsXG4gICAgU3Vic2NyaXB0aW9uLFxuICAgIHN3aXRjaE1hcCxcbiAgICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHR5cGUgeyBOZ3RJbnN0YW5jZU5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRMb2NhbFN0YXRlIH0gZnJvbSAnLi4vdXRpbHMvaW5zdGFuY2UnO1xuaW1wb3J0IHsgaXMgfSBmcm9tICcuLi91dGlscy9pcyc7XG5pbXBvcnQgeyBzYWZlRGV0ZWN0Q2hhbmdlcyB9IGZyb20gJy4uL3V0aWxzL3NhZmUtZGV0ZWN0LWNoYW5nZXMnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0RGVzdHJveSB9IGZyb20gJy4vZGVzdHJveSc7XG5cbnR5cGUgU3Vic2NyaWJlPFQ+ID0gKGNhbGxiYWNrOiAoY3VycmVudDogVCwgcHJldmlvdXM6IFQgfCBudWxsKSA9PiB2b2lkKSA9PiBTdWJzY3JpcHRpb247XG5cbmV4cG9ydCB0eXBlIE5ndEluamVjdGVkUmVmPFQ+ID0gRWxlbWVudFJlZjxUPiAmIHtcbiAgICAvKiBhIFN1YnNjcmliZSBmbiB0aGF0IGVtaXRzIGN1cnJlbnQgYW5kIHByZXZpb3VzIHZhbHVlLiBVc2VmdWwgZm9yIGRlYnVnICovXG4gICAgc3Vic2NyaWJlOiBTdWJzY3JpYmU8VD47XG4gICAgLyogY29uc3VtZXJzIHNob3VsZCB1c2UgdGhpcyBmb3IgbGlzdGVuaW5nIHRvIHZhbHVlIG9mIHRoaXMgcmVmLiBUaGlzIGZpbHRlcnMgb3V0IGluaXRpYWwgbnVsbCB2YWx1ZSAqL1xuICAgICQ6IE9ic2VydmFibGU8VD47XG4gICAgLyogY29uc3VtZXJzIHNob3VsZCB1c2UgdGhpcyBmb3IgbGlzdGVudGluZyB0byBjaGlsZHJlbiBjaGFuZ2VzIG9uIHRoaXMgcmVmICovXG4gICAgY2hpbGRyZW4kOiAodHlwZT86ICdvYmplY3RzJyB8ICdub25PYmplY3RzJyB8ICdib3RoJykgPT4gT2JzZXJ2YWJsZTxOZ3RJbnN0YW5jZU5vZGVbXT47XG4gICAgLyogbm90aWZ5IHRoaXMgQ0Qgd2hlbiByZWYgdmFsdWUgY2hhbmdlcyAqL1xuICAgIHVzZUNEUjogKGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Tmd0UmVmPFQ+KGluaXRpYWxWYWx1ZTogTmd0SW5qZWN0ZWRSZWY8VD4gfCAoVCB8IG51bGwpID0gbnVsbCk6IE5ndEluamVjdGVkUmVmPFQ+IHtcbiAgICBjb25zdCByZWYgPSBpcy5yZWYoaW5pdGlhbFZhbHVlKSA/IGluaXRpYWxWYWx1ZSA6IG5ldyBFbGVtZW50UmVmPFQ+KGluaXRpYWxWYWx1ZSBhcyBUKTtcblxuICAgIGxldCBsYXN0VmFsdWUgPSByZWYubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IGNkUmVmcyA9IFtdIGFzIENoYW5nZURldGVjdG9yUmVmW107XG4gICAgY29uc3QgcmVmJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VD4obGFzdFZhbHVlKTtcblxuICAgIGNvbnN0IHsgZGVzdHJveSQsIGNkciB9ID0gaW5qZWN0Tmd0RGVzdHJveSgoKSA9PiB7XG4gICAgICAgIHJlZiQuY29tcGxldGUoKTtcbiAgICB9KTtcblxuICAgIGNkUmVmcy5wdXNoKGNkcik7XG5cbiAgICBjb25zdCBvYnMkID0gcmVmJC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbChkZXN0cm95JCkpO1xuXG4gICAgY29uc3Qgc3Vic2NyaWJlOiBTdWJzY3JpYmU8VD4gPSAoY2FsbGJhY2spID0+IHtcbiAgICAgICAgcmV0dXJuIG9icyQuc3Vic2NyaWJlKChjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBjYWxsYmFjayhjdXJyZW50LCBsYXN0VmFsdWUpO1xuICAgICAgICAgICAgbGFzdFZhbHVlID0gY3VycmVudDtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0ICQgPSBvYnMkLnBpcGUoXG4gICAgICAgIGZpbHRlcigodmFsdWUsIGluZGV4KSA9PiBpbmRleCA+IDAgfHwgdmFsdWUgIT0gbnVsbCksXG4gICAgICAgIHRha2VVbnRpbChkZXN0cm95JClcbiAgICApO1xuXG4gICAgY29uc3QgY2hpbGRyZW4kID0gKHR5cGU6ICdvYmplY3RzJyB8ICdub25PYmplY3RzJyB8ICdib3RoJyA9ICdvYmplY3RzJykgPT5cbiAgICAgICAgJC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChpbnN0YW5jZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKGluc3RhbmNlIGFzIE5ndEluc3RhbmNlTm9kZSk7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsU3RhdGUub2JqZWN0cyAmJiBsb2NhbFN0YXRlLm5vbk9iamVjdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlKGxvY2FsU3RhdGUub2JqZWN0cywgbG9jYWxTdGF0ZS5ub25PYmplY3RzKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZSA9PT0gJ2JvdGgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFsuLi5sb2NhbFN0YXRlLm9iamVjdHMudmFsdWUsIC4uLmxvY2FsU3RhdGUubm9uT2JqZWN0cy52YWx1ZV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbG9jYWxTdGF0ZVt0eXBlXS52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFtOR1RdIEV4Y2VwdGlvbiBpbiBhY2Nlc3NpbmcgY2hpbGRyZW4gb2YgJHtpbnN0YW5jZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZmlsdGVyKChjaGlsZHJlbiwgaW5kZXgpID0+IGluZGV4ID4gMCB8fCBjaGlsZHJlbi5sZW5ndGggPiAwKSxcbiAgICAgICAgICAgIHRha2VVbnRpbChkZXN0cm95JClcbiAgICAgICAgKTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZWYsICduYXRpdmVFbGVtZW50Jywge1xuICAgICAgICBzZXQ6IChuZXdWYWw6IFQpID0+IHtcbiAgICAgICAgICAgIGlmIChyZWYubmF0aXZlRWxlbWVudCAhPT0gbmV3VmFsKSB7XG4gICAgICAgICAgICAgICAgcmVmJC5uZXh0KG5ld1ZhbCk7XG5cbiAgICAgICAgICAgICAgICBsYXN0VmFsdWUgPSByZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICByZWYubmF0aXZlRWxlbWVudCA9IG5ld1ZhbDtcblxuICAgICAgICAgICAgICAgIC8vIGNsb25lIHRoZSBjZFJlZnMgc28gd2UgY2FuIG11dGF0ZSBjZFJlZnMgaW4gdGhlIGxvb3BcbiAgICAgICAgICAgICAgICBjb25zdCBjZHMgPSBbLi4uY2RSZWZzXTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNkcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjZCA9IGNkc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgYSBDaGFuZ2VEZXRlY3RvclJlZiBpcyBkZXN0cm95ZWQsIHdlIHN0b3AgdHJhY2tpbmcgaXQgYW5kIGdvIHRvIHRoZSBuZXh0IG9uZVxuICAgICAgICAgICAgICAgICAgICBpZiAoKGNkIGFzIFZpZXdSZWYpLmRlc3Ryb3llZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2RSZWZzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIGR1cmluZyBjcmVhdGlvbiBwaGFzZSwgJ2NvbnRleHQnIG9uIFZpZXdSZWYgd2lsbCBiZSBudWxsXG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIGNoZWNrIHRoZSBcImNvbnRleHRcIiB0byBhdm9pZCBydW5uaW5nIGRldGVjdENoYW5nZXMgZHVyaW5nIHRoaXMgcGhhc2UuXG4gICAgICAgICAgICAgICAgICAgIC8vIGJlY2F1c2UgdGhlcmUncyBub3RoaW5nIHRvIGNoZWNrXG4gICAgICAgICAgICAgICAgICAgIHNhZmVEZXRlY3RDaGFuZ2VzKGNkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGdldDogKCkgPT4gcmVmJC52YWx1ZSxcbiAgICB9KTtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJlZiwgeyBzdWJzY3JpYmUsICQsIGNoaWxkcmVuJCwgdXNlQ0RSOiAoY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikgPT4gdm9pZCBjZFJlZnMucHVzaChjZHIpIH0pO1xufVxuIl19
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlL3NyYy9saWIvZGkvcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsVUFBVSxFQUFXLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFDSCxlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixHQUFHLEVBQ0gsS0FBSyxFQUVMLEVBQUUsRUFFRixTQUFTLEVBQ1QsU0FBUyxHQUNaLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBZTdDLE1BQU0sVUFBVSxZQUFZLENBQUksZUFBK0MsSUFBSTtJQUMvRSxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFJLFlBQWlCLENBQUMsQ0FBQztJQUV2RixJQUFJLFNBQVMsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDO0lBRWxDLE1BQU0sTUFBTSxHQUFHLEVBQXlCLENBQUM7SUFDekMsTUFBTSxJQUFJLEdBQUcsSUFBSSxlQUFlLENBQUksU0FBUyxDQUFDLENBQUM7SUFFL0MsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7UUFDNUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVq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a0Y7b0JBQ2xGLElBQUssRUFBYyxDQUFDLFNBQVMsRUFBRTt3QkFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQ3BCLFNBQVM7cUJBQ1o7b0JBQ0QsMkRBQTJEO29CQUMzRCwyRUFBMkU7b0JBQzNFLG1DQUFtQztvQkFDbkMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3pCO2FBQ0o7UUFDTCxDQUFDO1FBQ0QsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLO0tBQ3hCLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQ25FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiwgVmlld1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBCZWhhdmlvclN1YmplY3QsXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gICAgZmlsdGVyLFxuICAgIG1hcCxcbiAgICBtZXJnZSxcbiAgICBPYnNlcnZhYmxlLFxuICAgIG9mLFxuICAgIFN1YnNjcmlwdGlvbixcbiAgICBzd2l0Y2hNYXAsXG4gICAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB0eXBlIHsgTmd0SW5zdGFuY2VOb2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0TG9jYWxTdGF0ZSB9IGZyb20gJy4uL3V0aWxzL2luc3RhbmNlJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi4vdXRpbHMvaXMnO1xuaW1wb3J0IHsgc2FmZURldGVjdENoYW5nZXMgfSBmcm9tICcuLi91dGlscy9zYWZlLWRldGVjdC1jaGFuZ2VzJztcbmltcG9ydCB7IGluamVjdE5ndERlc3Ryb3kgfSBmcm9tICcuL2Rlc3Ryb3knO1xuXG50eXBlIFN1YnNjcmliZTxUPiA9IChjYWxsYmFjazogKGN1cnJlbnQ6IFQsIHByZXZpb3VzOiBUIHwgbnVsbCkgPT4gdm9pZCkgPT4gU3Vic2NyaXB0aW9uO1xuXG5leHBvcnQgdHlwZSBOZ3RJbmplY3RlZFJlZjxUPiA9IEVsZW1lbnRSZWY8VD4gJiB7XG4gICAgLyogYSBTdWJzY3JpYmUgZm4gdGhhdCBlbWl0cyBjdXJyZW50IGFuZCBwcmV2aW91cyB2YWx1ZS4gVXNlZnVsIGZvciBkZWJ1ZyAqL1xuICAgIHN1YnNjcmliZTogU3Vic2NyaWJlPFQ+O1xuICAgIC8qIGNvbnN1bWVycyBzaG91bGQgdXNlIHRoaXMgZm9yIGxpc3RlbmluZyB0byB2YWx1ZSBvZiB0aGlzIHJlZi4gVGhpcyBmaWx0ZXJzIG91dCBpbml0aWFsIG51bGwgdmFsdWUgKi9cbiAgICAkOiBPYnNlcnZhYmxlPFQ+O1xuICAgIC8qIGNvbnN1bWVycyBzaG91bGQgdXNlIHRoaXMgZm9yIGxpc3RlbnRpbmcgdG8gY2hpbGRyZW4gY2hhbmdlcyBvbiB0aGlzIHJlZiAqL1xuICAgIGNoaWxkcmVuJDogKHR5cGU/OiAnb2JqZWN0cycgfCAnbm9uT2JqZWN0cycgfCAnYm90aCcpID0+IE9ic2VydmFibGU8Tmd0SW5zdGFuY2VOb2RlW10+O1xuICAgIC8qIG5vdGlmeSB0aGlzIENEIHdoZW4gcmVmIHZhbHVlIGNoYW5nZXMgKi9cbiAgICB1c2VDRFI6IChjZHI6IENoYW5nZURldGVjdG9yUmVmKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5ndFJlZjxUPihpbml0aWFsVmFsdWU6IE5ndEluamVjdGVkUmVmPFQ+IHwgKFQgfCBudWxsKSA9IG51bGwpOiBOZ3RJbmplY3RlZFJlZjxUPiB7XG4gICAgY29uc3QgcmVmID0gaXMucmVmKGluaXRpYWxWYWx1ZSkgPyBpbml0aWFsVmFsdWUgOiBuZXcgRWxlbWVudFJlZjxUPihpbml0aWFsVmFsdWUgYXMgVCk7XG5cbiAgICBsZXQgbGFzdFZhbHVlID0gcmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBjb25zdCBjZFJlZnMgPSBbXSBhcyBDaGFuZ2VEZXRlY3RvclJlZltdO1xuICAgIGNvbnN0IHJlZiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFQ+KGxhc3RWYWx1ZSk7XG5cbiAgICBjb25zdCB7IGRlc3Ryb3kkLCBjZHIgfSA9IGluamVjdE5ndERlc3Ryb3koKCkgPT4ge1xuICAgICAgICByZWYkLmNvbXBsZXRlKCk7XG4gICAgfSk7XG5cbiAgICBjZFJlZnMucHVzaChjZHIpO1xuXG4gICAgY29uc3Qgb2JzJCA9IHJlZiQuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCB0YWtlVW50aWwoZGVzdHJveSQpKTtcblxuICAgIGNvbnN0IHN1YnNjcmliZTogU3Vic2NyaWJlPFQ+ID0gKGNhbGxiYWNrKSA9PiB7XG4gICAgICAgIHJldHVybiBvYnMkLnN1YnNjcmliZSgoY3VycmVudCkgPT4ge1xuICAgICAgICAgICAgY2FsbGJhY2soY3VycmVudCwgbGFzdFZhbHVlKTtcbiAgICAgICAgICAgIGxhc3RWYWx1ZSA9IGN1cnJlbnQ7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCB1c2VDRFIgPSAoY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikgPT4gdm9pZCBjZFJlZnMucHVzaChjZHIpO1xuXG4gICAgY29uc3QgJCA9IG9icyQucGlwZShcbiAgICAgICAgZmlsdGVyKCh2YWx1ZSwgaW5kZXgpID0+IGluZGV4ID4gMCB8fCB2YWx1ZSAhPSBudWxsKSxcbiAgICAgICAgdGFrZVVudGlsKGRlc3Ryb3kkKVxuICAgICk7XG5cbiAgICBjb25zdCBjaGlsZHJlbiQgPSAodHlwZTogJ29iamVjdHMnIHwgJ25vbk9iamVjdHMnIHwgJ2JvdGgnID0gJ29iamVjdHMnKSA9PlxuICAgICAgICAkLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKGluc3RhbmNlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoaW5zdGFuY2UgYXMgTmd0SW5zdGFuY2VOb2RlKTtcbiAgICAgICAgICAgICAgICBpZiAobG9jYWxTdGF0ZS5vYmplY3RzICYmIGxvY2FsU3RhdGUubm9uT2JqZWN0cykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWVyZ2UobG9jYWxTdGF0ZS5vYmplY3RzLCBsb2NhbFN0YXRlLm5vbk9iamVjdHMpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlID09PSAnYm90aCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gWy4uLmxvY2FsU3RhdGUub2JqZWN0cy52YWx1ZSwgLi4ubG9jYWxTdGF0ZS5ub25PYmplY3RzLnZhbHVlXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBsb2NhbFN0YXRlW3R5cGVdLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgW05HVF0gRXhjZXB0aW9uIGluIGFjY2Vzc2luZyBjaGlsZHJlbiBvZiAke2luc3RhbmNlfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmaWx0ZXIoKGNoaWxkcmVuLCBpbmRleCkgPT4gaW5kZXggPiAwIHx8IGNoaWxkcmVuLmxlbmd0aCA+IDApLFxuICAgICAgICAgICAgdGFrZVVudGlsKGRlc3Ryb3kkKVxuICAgICAgICApO1xuXG4gICAgLy8gaGVyZSwgd2Ugb3ZlcnJpZGUgbmF0aXZlRWxlbWVudCB0byAgYWRkIG1vcmUgZnVuY3Rpb25hbGl0aWVzIHRvIG5hdGl2ZUVsZW1lbnRcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVmLCAnbmF0aXZlRWxlbWVudCcsIHtcbiAgICAgICAgc2V0OiAobmV3VmFsOiBUKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVmLm5hdGl2ZUVsZW1lbnQgIT09IG5ld1ZhbCkge1xuICAgICAgICAgICAgICAgIHJlZiQubmV4dChuZXdWYWwpO1xuXG4gICAgICAgICAgICAgICAgbGFzdFZhbHVlID0gcmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgcmVmLm5hdGl2ZUVsZW1lbnQgPSBuZXdWYWw7XG5cbiAgICAgICAgICAgICAgICAvLyBjbG9uZSB0aGUgY2RSZWZzIHNvIHdlIGNhbiBtdXRhdGUgY2RSZWZzIGluIHRoZSBsb29wXG4gICAgICAgICAgICAgICAgY29uc3QgY2RzID0gWy4uLmNkUmVmc107XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2QgPSBjZHNbaV07XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIGEgQ2hhbmdlRGV0ZWN0b3JSZWYgaXMgZGVzdHJveWVkLCB3ZSBzdG9wIHRyYWNraW5nIGl0IGFuZCBnbyB0byB0aGUgbmV4dCBvbmVcbiAgICAgICAgICAgICAgICAgICAgaWYgKChjZCBhcyBWaWV3UmVmKS5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNkUmVmcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBkdXJpbmcgY3JlYXRpb24gcGhhc2UsICdjb250ZXh0JyBvbiBWaWV3UmVmIHdpbGwgYmUgbnVsbFxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjaGVjayB0aGUgXCJjb250ZXh0XCIgdG8gYXZvaWQgcnVubmluZyBkZXRlY3RDaGFuZ2VzIGR1cmluZyB0aGlzIHBoYXNlLlxuICAgICAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIHRoZXJlJ3Mgbm90aGluZyB0byBjaGVja1xuICAgICAgICAgICAgICAgICAgICBzYWZlRGV0ZWN0Q2hhbmdlcyhjZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBnZXQ6ICgpID0+IHJlZiQudmFsdWUsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihyZWYsIHsgc3Vic2NyaWJlLCAkLCBjaGlsZHJlbiQsIHVzZUNEUiB9KTtcbn1cbiJdfQ==
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { EnvironmentInjector, inject, Injector } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Please use this sparringly and know what you're doing.
|
|
4
|
+
*
|
|
5
|
+
* Create a runInContext function that has access to the NodeInjector as well
|
|
6
|
+
*/
|
|
2
7
|
export function createRunInContext() {
|
|
3
8
|
const nodeInjector = inject(Injector);
|
|
4
9
|
const envInjector = inject(EnvironmentInjector);
|
|
@@ -32,4 +37,4 @@ export function createRunInContext() {
|
|
|
32
37
|
return envInjector.runInContext(cb);
|
|
33
38
|
};
|
|
34
39
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWluLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi9kaS9ydW4taW4tY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQjtJQUM5QixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFaEQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFdEQsT0FBTyxDQUFVLEVBQWlCLEVBQVcsRUFBRTtRQUMzQyxJQUFJLG1CQUFtQixHQUFHLEtBQUssQ0FBQztRQUNoQyxXQUFXLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUE0QyxFQUFFLEVBQUU7WUFDbEUsSUFBSTtnQkFDQSxNQUFNLGFBQWEsR0FBSSxJQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDckIsSUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDekI7Z0JBQ0QsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQzdDLElBQUksZUFBZTtvQkFBRSxPQUFPLGVBQWUsQ0FBQztnQkFDNUMsSUFBSSxlQUFlLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDO29CQUM5RixPQUFPLGVBQWUsQ0FBQztnQkFDMUIsSUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQztnQkFDakMsSUFBSSxDQUFDLG1CQUFtQixFQUFFO29CQUN0QixtQkFBbUIsR0FBRyxJQUFJLENBQUM7b0JBQzNCLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFJLElBQW9DLENBQUMsQ0FBQztvQkFDcEYsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO29CQUM1QixPQUFPLGdCQUFnQixDQUFDO2lCQUMzQjtnQkFDRCxPQUFPLElBQUksQ0FBQzthQUNmO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1IsT0FBTyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQzthQUMvQjtRQUNMLENBQUMsQ0FBQztRQUVGLE9BQU8sV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRJbmplY3RvciwgaW5qZWN0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFBsZWFzZSB1c2UgdGhpcyBzcGFycmluZ2x5IGFuZCBrbm93IHdoYXQgeW91J3JlIGRvaW5nLlxuICpcbiAqIENyZWF0ZSBhIHJ1bkluQ29udGV4dCBmdW5jdGlvbiB0aGF0IGhhcyBhY2Nlc3MgdG8gdGhlIE5vZGVJbmplY3RvciBhcyB3ZWxsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSdW5JbkNvbnRleHQoKSB7XG4gICAgY29uc3Qgbm9kZUluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgICBjb25zdCBlbnZJbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcblxuICAgIGNvbnN0IG9yaWdpbmFsR2V0ID0gZW52SW5qZWN0b3IuZ2V0LmJpbmQoZW52SW5qZWN0b3IpO1xuXG4gICAgcmV0dXJuIDxUUmV0dXJuPihjYjogKCkgPT4gVFJldHVybik6IFRSZXR1cm4gPT4ge1xuICAgICAgICBsZXQgdHJ5RnJvbU5vZGVJbmplY3RvciA9IGZhbHNlO1xuICAgICAgICBlbnZJbmplY3Rvci5nZXQgPSAoLi4uYXJnczogUGFyYW1ldGVyczxFbnZpcm9ubWVudEluamVjdG9yWydnZXQnXT4pID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxGbGFncyA9IChhcmdzIGFzIGFueSlbMl07XG4gICAgICAgICAgICAgICAgaWYgKCEob3JpZ2luYWxGbGFncyAmIDgpKSB7XG4gICAgICAgICAgICAgICAgICAgIChhcmdzIGFzIGFueSlbMl0gfD0gODtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZnJvbUVudkluamVjdG9yID0gb3JpZ2luYWxHZXQoLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgaWYgKGZyb21FbnZJbmplY3RvcikgcmV0dXJuIGZyb21FbnZJbmplY3RvcjtcbiAgICAgICAgICAgICAgICBpZiAoZnJvbUVudkluamVjdG9yID09PSBudWxsICYmICgoYXJnc1sxXSAhPT0gdW5kZWZpbmVkICYmIGFyZ3NbMV0gPT09IG51bGwpIHx8IG9yaWdpbmFsRmxhZ3MgJiA4KSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZyb21FbnZJbmplY3RvcjtcbiAgICAgICAgICAgICAgICAoYXJncyBhcyBhbnkpWzJdID0gb3JpZ2luYWxGbGFncztcbiAgICAgICAgICAgICAgICBpZiAoIXRyeUZyb21Ob2RlSW5qZWN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5RnJvbU5vZGVJbmplY3RvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZyb21Ob2RlSW5qZWN0b3IgPSBub2RlSW5qZWN0b3IuZ2V0KC4uLihhcmdzIGFzIFBhcmFtZXRlcnM8SW5qZWN0b3JbJ2dldCddPikpO1xuICAgICAgICAgICAgICAgICAgICB0cnlGcm9tTm9kZUluamVjdG9yID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmcm9tTm9kZUluamVjdG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxHZXQoLi4uYXJncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGVudkluamVjdG9yLnJ1bkluQ29udGV4dChjYik7XG4gICAgfTtcbn1cbiJdfQ==
|
|
@@ -26,9 +26,9 @@ export class NgtArgs extends NgtCommonDirective {
|
|
|
26
26
|
return !this.injected && !!this.injectedArgs.length;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
NgtArgs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
30
|
-
NgtArgs.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
29
|
+
NgtArgs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: NgtArgs, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
30
|
+
NgtArgs.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.1", type: NgtArgs, isStandalone: true, selector: "[args]", inputs: { args: "args" }, usesInheritance: true, ngImport: i0 });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: NgtArgs, decorators: [{
|
|
32
32
|
type: Directive,
|
|
33
33
|
args: [{ selector: '[args]', standalone: true }]
|
|
34
34
|
}], propDecorators: { args: [{
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Directive, inject, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { safeDetectChanges } from '../utils/safe-detect-changes';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export class NgtCommonDirective {
|
|
4
5
|
constructor() {
|
|
@@ -18,13 +19,13 @@ export class NgtCommonDirective {
|
|
|
18
19
|
this.view.destroy();
|
|
19
20
|
}
|
|
20
21
|
this.view = this.vcr.createEmbeddedView(this.template);
|
|
21
|
-
this.view
|
|
22
|
+
safeDetectChanges(this.view);
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
|
-
NgtCommonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
26
|
-
NgtCommonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
26
|
+
NgtCommonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: NgtCommonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
27
|
+
NgtCommonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.1", type: NgtCommonDirective, ngImport: i0 });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: NgtCommonDirective, decorators: [{
|
|
28
29
|
type: Directive
|
|
29
30
|
}], ctorParameters: function () { return []; } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlL3NyYy9saWIvZGlyZWN0aXZlcy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBbUIsTUFBTSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFHakUsTUFBTSxPQUFnQixrQkFBa0I7SUFRcEM7UUFQbUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9CLGFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFeEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFJOUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ25ELElBQUksV0FBVyxDQUFDLDhCQUE4QixDQUFDLEVBQUU7WUFDN0MsV0FBVyxDQUFDLDhCQUE4QixDQUFDLEVBQUUsQ0FBQztZQUM5QyxPQUFPLFdBQVcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ3REO0lBQ0wsQ0FBQztJQUlTLFVBQVU7UUFDaEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDdkI7WUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZELGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoQztJQUNMLENBQUM7OytHQTFCaUIsa0JBQWtCO21HQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFEdkMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRW1iZWRkZWRWaWV3UmVmLCBpbmplY3QsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzYWZlRGV0ZWN0Q2hhbmdlcyB9IGZyb20gJy4uL3V0aWxzL3NhZmUtZGV0ZWN0LWNoYW5nZXMnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZ3RDb21tb25EaXJlY3RpdmUge1xuICAgIHByb3RlY3RlZCByZWFkb25seSB2Y3IgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRlbXBsYXRlID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcblxuICAgIHByb3RlY3RlZCBpbmplY3RlZCA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBzaG91bGRDcmVhdGVWaWV3ID0gdHJ1ZTtcbiAgICBwcml2YXRlIHZpZXc/OiBFbWJlZGRlZFZpZXdSZWY8dW5rbm93bj47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgY29uc3QgY29tbWVudE5vZGUgPSB0aGlzLnZjci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChjb21tZW50Tm9kZVsnX19uZ3RfcmVuZGVyZXJfYWRkX2NvbW1lbnRfXyddKSB7XG4gICAgICAgICAgICBjb21tZW50Tm9kZVsnX19uZ3RfcmVuZGVyZXJfYWRkX2NvbW1lbnRfXyddKCk7XG4gICAgICAgICAgICBkZWxldGUgY29tbWVudE5vZGVbJ19fbmd0X3JlbmRlcmVyX2FkZF9jb21tZW50X18nXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFic3RyYWN0IHZhbGlkYXRlKCk6IGJvb2xlYW47XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlVmlldygpIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkQ3JlYXRlVmlldykge1xuICAgICAgICAgICAgaWYgKHRoaXMudmlldyAmJiAhdGhpcy52aWV3LmRlc3Ryb3llZCkge1xuICAgICAgICAgICAgICAgIHRoaXMudmlldy5kZXN0cm95KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnZpZXcgPSB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSk7XG4gICAgICAgICAgICBzYWZlRGV0ZWN0Q2hhbmdlcyh0aGlzLnZpZXcpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -24,9 +24,9 @@ export class NgtParent extends NgtCommonDirective {
|
|
|
24
24
|
return !this.injected && !!this.injectedParent;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
NgtParent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
28
|
-
NgtParent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
27
|
+
NgtParent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: NgtParent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
28
|
+
NgtParent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.1", type: NgtParent, isStandalone: true, selector: "[parent]", inputs: { parent: "parent" }, usesInheritance: true, ngImport: i0 });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: NgtParent, decorators: [{
|
|
30
30
|
type: Directive,
|
|
31
31
|
args: [{ selector: '[parent]', standalone: true }]
|
|
32
32
|
}], propDecorators: { parent: [{
|
|
@@ -6,9 +6,9 @@ export class NgtRepeat extends NgForOf {
|
|
|
6
6
|
this.ngForOf = Number.isInteger(count) ? Array.from({ length: count }, (_, i) => i) : [];
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
NgtRepeat.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
10
|
-
NgtRepeat.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
9
|
+
NgtRepeat.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: NgtRepeat, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
10
|
+
NgtRepeat.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.1", type: NgtRepeat, isStandalone: true, selector: "[ngFor][ngForRepeat]", inputs: { ngForRepeat: "ngForRepeat" }, usesInheritance: true, ngImport: i0 });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: NgtRepeat, decorators: [{
|
|
12
12
|
type: Directive,
|
|
13
13
|
args: [{ selector: '[ngFor][ngForRepeat]', standalone: true }]
|
|
14
14
|
}], propDecorators: { ngForRepeat: [{
|
package/esm2020/lib/loader.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ChangeDetectorRef, inject } from '@angular/core';
|
|
2
2
|
import { catchError, forkJoin, from, isObservable, map, of, ReplaySubject, retry, share, switchMap, take, tap, } from 'rxjs';
|
|
3
3
|
import { makeObjectGraph } from './utils/make';
|
|
4
|
+
import { safeDetectChanges } from './utils/safe-detect-changes';
|
|
4
5
|
const cached = new Map();
|
|
5
|
-
function
|
|
6
|
+
function load(loaderConstructorFactory, input, extensions, onProgress) {
|
|
6
7
|
const urls$ = isObservable(input) ? input : of(input);
|
|
7
|
-
const cdr = inject(ChangeDetectorRef);
|
|
8
8
|
return urls$.pipe(map((inputs) => {
|
|
9
9
|
const loaderConstructor = loaderConstructorFactory(inputs);
|
|
10
10
|
const loader = new loaderConstructor();
|
|
@@ -26,7 +26,11 @@ function injectLoader(loaderConstructorFactory, input, extensions, onProgress) {
|
|
|
26
26
|
}),
|
|
27
27
|
inputs,
|
|
28
28
|
];
|
|
29
|
-
})
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
function injectLoader(loaderConstructorFactory, input, extensions, onProgress) {
|
|
32
|
+
const cdr = inject(ChangeDetectorRef);
|
|
33
|
+
return load(loaderConstructorFactory, input, extensions, onProgress).pipe(switchMap(([observables$, inputs]) => {
|
|
30
34
|
return forkJoin(observables$).pipe(map((results) => {
|
|
31
35
|
if (Array.isArray(inputs))
|
|
32
36
|
return results;
|
|
@@ -38,7 +42,7 @@ function injectLoader(loaderConstructorFactory, input, extensions, onProgress) {
|
|
|
38
42
|
return result;
|
|
39
43
|
}, {});
|
|
40
44
|
}), tap(() => {
|
|
41
|
-
requestAnimationFrame(() => cdr
|
|
45
|
+
requestAnimationFrame(() => void safeDetectChanges(cdr));
|
|
42
46
|
}));
|
|
43
47
|
}));
|
|
44
48
|
}
|
|
@@ -46,7 +50,7 @@ injectLoader.destroy = () => {
|
|
|
46
50
|
cached.clear();
|
|
47
51
|
};
|
|
48
52
|
injectLoader.preLoad = (loaderConstructorFactory, inputs, extensions) => {
|
|
49
|
-
|
|
53
|
+
load(loaderConstructorFactory, inputs, extensions).pipe(take(1)).subscribe();
|
|
50
54
|
};
|
|
51
55
|
export const injectNgtLoader = injectLoader;
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlL3NyYy9saWIvbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUNILFVBQVUsRUFDVixRQUFRLEVBQ1IsSUFBSSxFQUNKLFlBQVksRUFDWixHQUFHLEVBRUgsRUFBRSxFQUNGLGFBQWEsRUFDYixLQUFLLEVBQ0wsS0FBSyxFQUNMLFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxHQUNOLE1BQU0sTUFBTSxDQUFDO0FBR2QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQTRCL0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQTJCLENBQUM7QUFFbEQsU0FBUyxZQUFZLENBQ2pCLHdCQUFnRyxFQUNoRyxLQUE4QixFQUM5QixVQUFnQyxFQUNoQyxVQUEyQztJQUUzQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRXRDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FDYixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNYLE1BQU0saUJBQWlCLEdBQUcsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZDLElBQUksVUFBVTtZQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FB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LEVBQUUsQ0FBQztBQUN6RixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsWUFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgY2F0Y2hFcnJvcixcbiAgICBmb3JrSm9pbixcbiAgICBmcm9tLFxuICAgIGlzT2JzZXJ2YWJsZSxcbiAgICBtYXAsXG4gICAgT2JzZXJ2YWJsZSxcbiAgICBvZixcbiAgICBSZXBsYXlTdWJqZWN0LFxuICAgIHJldHJ5LFxuICAgIHNoYXJlLFxuICAgIHN3aXRjaE1hcCxcbiAgICB0YWtlLFxuICAgIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdHlwZSB7IEdMVEYgfSBmcm9tICd0aHJlZS9leGFtcGxlcy9qc20vbG9hZGVycy9HTFRGTG9hZGVyJztcbmltcG9ydCB0eXBlIHsgTmd0QnJhbmNoaW5nUmV0dXJuLCBOZ3RMb2FkZXJFeHRlbnNpb25zLCBOZ3RMb2FkZXJSZXN1bHQsIE5ndE9iamVjdE1hcCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgbWFrZU9iamVjdEdyYXBoIH0gZnJvbSAnLi91dGlscy9tYWtlJztcblxuaW50ZXJmYWNlIE5ndExvYWRlciB7XG4gICAgPFRSZXR1cm5UeXBlLCBUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihcbiAgICAgICAgbG9hZGVyQ29uc3RydWN0b3JGYWN0b3J5OiAoaW5wdXRzOiBUVXJsKSA9PiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBOZ3RMb2FkZXJSZXN1bHQ8VFJldHVyblR5cGU+LFxuICAgICAgICBpbnB1dDogVFVybCB8IE9ic2VydmFibGU8VFVybD4sXG4gICAgICAgIGV4dGVuc2lvbnM/OiBOZ3RMb2FkZXJFeHRlbnNpb25zPE5ndExvYWRlclJlc3VsdDxUUmV0dXJuVHlwZT4+LFxuICAgICAgICBvblByb2dyZXNzPzogKGV2ZW50OiBQcm9ncmVzc0V2ZW50KSA9PiB2b2lkXG4gICAgKTogT2JzZXJ2YWJsZTxcbiAgICAgICAgVFVybCBleHRlbmRzIHN0cmluZ1tdXG4gICAgICAgICAgICA/IEFycmF5PE5ndEJyYW5jaGluZ1JldHVybjxUUmV0dXJuVHlwZSwgR0xURiwgR0xURiAmIE5ndE9iamVjdE1hcD4+XG4gICAgICAgICAgICA6IFRVcmwgZXh0ZW5kcyBvYmplY3RcbiAgICAgICAgICAgID8geyBba2V5IGluIGtleW9mIFRVcmxdOiBOZ3RCcmFuY2hpbmdSZXR1cm48VFJldHVyblR5cGUsIEdMVEYsIEdMVEYgJiBOZ3RPYmplY3RNYXA+IH1cbiAgICAgICAgICAgIDogTmd0QnJhbmNoaW5nUmV0dXJuPFRSZXR1cm5UeXBlLCBHTFRGLCBHTFRGICYgTmd0T2JqZWN0TWFwPlxuICAgID47XG4gICAgZGVzdHJveTogKCkgPT4gdm9pZDtcbiAgICBwcmVMb2FkOiA8VFJldHVyblR5cGUsIFRVcmwgZXh0ZW5kcyBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuICAgICAgICBsb2FkZXJDb25zdHJ1Y3RvckZhY3Rvcnk6IChpbnB1dHM6IFRVcmwpID0+IG5ldyAoLi4uYXJnczogYW55W10pID0+IE5ndExvYWRlclJlc3VsdDxUUmV0dXJuVHlwZT4sXG4gICAgICAgIGlucHV0czogVFVybCB8IE9ic2VydmFibGU8VFVybD4sXG4gICAgICAgIGV4dGVuc2lvbnM/OiBOZ3RMb2FkZXJFeHRlbnNpb25zXG4gICAgKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBOZ3RMb2FkZXJSZXN1bHRzPFxuICAgIFRJbnB1dCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICBUUmV0dXJuXG4+ID0gVElucHV0IGV4dGVuZHMgc3RyaW5nW10gPyBUUmV0dXJuW10gOiBUSW5wdXQgZXh0ZW5kcyBvYmplY3QgPyB7IFtrZXkgaW4ga2V5b2YgVElucHV0XTogVFJldHVybiB9IDogVFJldHVybjtcblxuY29uc3QgY2FjaGVkID0gbmV3IE1hcDxzdHJpbmcsIE9ic2VydmFibGU8YW55Pj4oKTtcblxuZnVuY3Rpb24gaW5qZWN0TG9hZGVyPFRSZXR1cm5UeXBlLCBUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihcbiAgICBsb2FkZXJDb25zdHJ1Y3RvckZhY3Rvcnk6IChpbnB1dHM6IFRVcmwpID0+IG5ldyAoLi4uYXJnczogYW55W10pID0+IE5ndExvYWRlclJlc3VsdDxUUmV0dXJuVHlwZT4sXG4gICAgaW5wdXQ6IFRVcmwgfCBPYnNlcnZhYmxlPFRVcmw+LFxuICAgIGV4dGVuc2lvbnM/OiBOZ3RMb2FkZXJFeHRlbnNpb25zLFxuICAgIG9uUHJvZ3Jlc3M/OiAoZXZlbnQ6IFByb2dyZXNzRXZlbnQpID0+IHZvaWRcbik6IE9ic2VydmFibGU8Tmd0TG9hZGVyUmVzdWx0czxUVXJsLCBOZ3RCcmFuY2hpbmdSZXR1cm48VFJldHVyblR5cGUsIEdMVEYsIEdMVEYgJiBOZ3RPYmplY3RNYXA+Pj4ge1xuICAgIGNvbnN0IHVybHMkID0gaXNPYnNlcnZhYmxlKGlucHV0KSA/IGlucHV0IDogb2YoaW5wdXQpO1xuICAgIGNvbnN0IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICByZXR1cm4gdXJscyQucGlwZShcbiAgICAgICAgbWFwKChpbnB1dHMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvYWRlckNvbnN0cnVjdG9yID0gbG9hZGVyQ29uc3RydWN0b3JGYWN0b3J5KGlucHV0cyk7XG4gICAgICAgICAgICBjb25zdCBsb2FkZXIgPSBuZXcgbG9hZGVyQ29uc3RydWN0b3IoKTtcbiAgICAgICAgICAgIGlmIChleHRlbnNpb25zKSBleHRlbnNpb25zKGxvYWRlcik7XG4gICAgICAgICAgICBjb25zdCB1cmxzID0gQXJyYXkuaXNBcnJheShpbnB1dHMpID8gaW5wdXRzIDogdHlwZW9mIGlucHV0cyA9PT0gJ3N0cmluZycgPyBbaW5wdXRzXSA6IE9iamVjdC52YWx1ZXMoaW5wdXRzKTtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgdXJscy5tYXAoKHVybCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNhY2hlZC5oYXModXJsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVkLnNldChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbShsb2FkZXIubG9hZEFzeW5jKHVybCwgb25Qcm9ncmVzcykpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc2NlbmUpIE9iamVjdC5hc3NpZ24oZGF0YSwgbWFrZU9iamVjdEdyYXBoKGRhdGEuc2NlbmUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHJ5KDIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFtOR1RdIEVycm9yIGxvYWRpbmcgJHt1cmx9OiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlKHsgY29ubmVjdG9yOiAoKSA9PiBuZXcgUmVwbGF5U3ViamVjdCgxKSB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlZC5nZXQodXJsKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBpbnB1dHMsXG4gICAgICAgICAgICBdIGFzIFtBcnJheTxPYnNlcnZhYmxlPGFueT4+LCBUVXJsIHwgVFVybFtdXTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgoW29ic2VydmFibGVzJCwgaW5wdXRzXSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGZvcmtKb2luKG9ic2VydmFibGVzJCkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaW5wdXRzKSkgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaW5wdXRzID09PSAnc3RyaW5nJykgcmV0dXJuIHJlc3VsdHNbMF07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhpbnB1dHMpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5cy5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5IGFzIGtleW9mIHR5cGVvZiByZXN1bHRdID0gcmVzdWx0c1trZXlzLmluZGV4T2Yoa2V5KV07XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICB9LCB7fSBhcyB7IFtrZXkgaW4ga2V5b2YgVFVybF06IE5ndEJyYW5jaGluZ1JldHVybjxUUmV0dXJuVHlwZSwgR0xURiwgR0xURiAmIE5ndE9iamVjdE1hcD4gfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IGNkci5kZXRlY3RDaGFuZ2VzKCkpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICk7XG59XG5cbihpbmplY3RMb2FkZXIgYXMgTmd0TG9hZGVyKS5kZXN0cm95ID0gKCkgPT4ge1xuICAgIGNhY2hlZC5jbGVhcigpO1xufTtcblxuKGluamVjdExvYWRlciBhcyBOZ3RMb2FkZXIpLnByZUxvYWQgPSAobG9hZGVyQ29uc3RydWN0b3JGYWN0b3J5LCBpbnB1dHMsIGV4dGVuc2lvbnMpID0+IHtcbiAgICBpbmplY3RMb2FkZXIobG9hZGVyQ29uc3RydWN0b3JGYWN0b3J5LCBpbnB1dHMsIGV4dGVuc2lvbnMpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCk7XG59O1xuXG5leHBvcnQgY29uc3QgaW5qZWN0Tmd0TG9hZGVyID0gaW5qZWN0TG9hZGVyIGFzIE5ndExvYWRlcjtcbiJdfQ==
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlL3NyYy9saWIvbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUNILFVBQVUsRUFDVixRQUFRLEVBQ1IsSUFBSSxFQUNKLFlBQVksRUFDWixHQUFHLEVBRUgsRUFBRSxFQUNGLGFBQWEsRUFDYixLQUFLLEVBQ0wsS0FBSyxFQUNMLFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxHQUNOLE1BQU0sTUFBTSxDQUFDO0FBR2QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQTRCaEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQTJCLENBQUM7QUFFbEQsU0FBUyxJQUFJLENBQ1Qsd0JBQWdHLEVBQ2hHLEtBQThCLEVBQzlCLFVBQWdDLEVBQ2hDLFVBQTJDO0lBRTNDLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUNiLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ1gsTUFBTSxpQkFBaUIsR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRCxNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDdkMsSUFBSSxVQUFVO1lBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVHLE9BQU87WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2xCLE1BQU0sQ0FBQyxHQUFHLENBQ04sR0FBRyxFQUNILElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDeEMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7d0JBQ1QsSUFBSSxJQUFJLENBQUMsS0FBSzs0QkFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQ3JFLENBQUMsQ0FBQyxFQUNGLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDUixVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTt3QkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixHQUFHLEtBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7d0JBQzVELE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNsQixDQUFDLENBQUMsRUFDRixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUNuRCxDQUNKLENBQUM7aUJBQ0w7Z0JBQ0QsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FBQztZQUNGLE1BQU07U0FDa0MsQ0FBQztJQUNqRCxDQUFDLENBQUMsQ0FDTCxDQUFDO0FBQ04sQ0FBQztBQUVELFNBQVMsWUFBWSxDQUNqQix3QkFBZ0csRUFDaEcsS0FBOEIsRUFDOUIsVUFBZ0MsRUFDaEMsVUFBMkM7SUFFM0MsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFdEMsT0FBTyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQ3JFLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUU7UUFDakMsT0FBTyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUM5QixHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNaLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQUUsT0FBTyxPQUFPLENBQUM7WUFDMUMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRO2dCQUFFLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO2dCQUMvQixNQUFNLENBQUMsR0FBMEIsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hFLE9BQU8sTUFBTSxDQUFDO1lBQ2xCLENBQUMsRUFBRSxFQUF5RixDQUFDLENBQUM7UUFDbEcsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNMLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FBQztBQUNOLENBQUM7QUFFQSxZQUEwQixDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7SUFDdkMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVELFlBQTBCLENBQUMsT0FBTyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUFFO0lBQ25GLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBQ2pGLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxZQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBjYXRjaEVycm9yLFxuICAgIGZvcmtKb2luLFxuICAgIGZyb20sXG4gICAgaXNPYnNlcnZhYmxlLFxuICAgIG1hcCxcbiAgICBPYnNlcnZhYmxlLFxuICAgIG9mLFxuICAgIFJlcGxheVN1YmplY3QsXG4gICAgcmV0cnksXG4gICAgc2hhcmUsXG4gICAgc3dpdGNoTWFwLFxuICAgIHRha2UsXG4gICAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB0eXBlIHsgR0xURiB9IGZyb20gJ3RocmVlL2V4YW1wbGVzL2pzbS9sb2FkZXJzL0dMVEZMb2FkZXInO1xuaW1wb3J0IHR5cGUgeyBOZ3RCcmFuY2hpbmdSZXR1cm4sIE5ndExvYWRlckV4dGVuc2lvbnMsIE5ndExvYWRlclJlc3VsdCwgTmd0T2JqZWN0TWFwIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBtYWtlT2JqZWN0R3JhcGggfSBmcm9tICcuL3V0aWxzL21ha2UnO1xuaW1wb3J0IHsgc2FmZURldGVjdENoYW5nZXMgfSBmcm9tICcuL3V0aWxzL3NhZmUtZGV0ZWN0LWNoYW5nZXMnO1xuXG5pbnRlcmZhY2UgTmd0TG9hZGVyIHtcbiAgICA8VFJldHVyblR5cGUsIFRVcmwgZXh0ZW5kcyBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuICAgICAgICBsb2FkZXJDb25zdHJ1Y3RvckZhY3Rvcnk6IChpbnB1dHM6IFRVcmwpID0+IG5ldyAoLi4uYXJnczogYW55W10pID0+IE5ndExvYWRlclJlc3VsdDxUUmV0dXJuVHlwZT4sXG4gICAgICAgIGlucHV0OiBUVXJsIHwgT2JzZXJ2YWJsZTxUVXJsPixcbiAgICAgICAgZXh0ZW5zaW9ucz86IE5ndExvYWRlckV4dGVuc2lvbnM8Tmd0TG9hZGVyUmVzdWx0PFRSZXR1cm5UeXBlPj4sXG4gICAgICAgIG9uUHJvZ3Jlc3M/OiAoZXZlbnQ6IFByb2dyZXNzRXZlbnQpID0+IHZvaWRcbiAgICApOiBPYnNlcnZhYmxlPFxuICAgICAgICBUVXJsIGV4dGVuZHMgc3RyaW5nW11cbiAgICAgICAgICAgID8gQXJyYXk8Tmd0QnJhbmNoaW5nUmV0dXJuPFRSZXR1cm5UeXBlLCBHTFRGLCBHTFRGICYgTmd0T2JqZWN0TWFwPj5cbiAgICAgICAgICAgIDogVFVybCBleHRlbmRzIG9iamVjdFxuICAgICAgICAgICAgPyB7IFtrZXkgaW4ga2V5b2YgVFVybF06IE5ndEJyYW5jaGluZ1JldHVybjxUUmV0dXJuVHlwZSwgR0xURiwgR0xURiAmIE5ndE9iamVjdE1hcD4gfVxuICAgICAgICAgICAgOiBOZ3RCcmFuY2hpbmdSZXR1cm48VFJldHVyblR5cGUsIEdMVEYsIEdMVEYgJiBOZ3RPYmplY3RNYXA+XG4gICAgPjtcbiAgICBkZXN0cm95OiAoKSA9PiB2b2lkO1xuICAgIHByZUxvYWQ6IDxUUmV0dXJuVHlwZSwgVFVybCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXG4gICAgICAgIGxvYWRlckNvbnN0cnVjdG9yRmFjdG9yeTogKGlucHV0czogVFVybCkgPT4gbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gTmd0TG9hZGVyUmVzdWx0PFRSZXR1cm5UeXBlPixcbiAgICAgICAgaW5wdXRzOiBUVXJsIHwgT2JzZXJ2YWJsZTxUVXJsPixcbiAgICAgICAgZXh0ZW5zaW9ucz86IE5ndExvYWRlckV4dGVuc2lvbnNcbiAgICApID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIE5ndExvYWRlclJlc3VsdHM8XG4gICAgVElucHV0IGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIFRSZXR1cm5cbj4gPSBUSW5wdXQgZXh0ZW5kcyBzdHJpbmdbXSA/IFRSZXR1cm5bXSA6IFRJbnB1dCBleHRlbmRzIG9iamVjdCA/IHsgW2tleSBpbiBrZXlvZiBUSW5wdXRdOiBUUmV0dXJuIH0gOiBUUmV0dXJuO1xuXG5jb25zdCBjYWNoZWQgPSBuZXcgTWFwPHN0cmluZywgT2JzZXJ2YWJsZTxhbnk+PigpO1xuXG5mdW5jdGlvbiBsb2FkPFRSZXR1cm5UeXBlLCBUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihcbiAgICBsb2FkZXJDb25zdHJ1Y3RvckZhY3Rvcnk6IChpbnB1dHM6IFRVcmwpID0+IG5ldyAoLi4uYXJnczogYW55W10pID0+IE5ndExvYWRlclJlc3VsdDxUUmV0dXJuVHlwZT4sXG4gICAgaW5wdXQ6IFRVcmwgfCBPYnNlcnZhYmxlPFRVcmw+LFxuICAgIGV4dGVuc2lvbnM/OiBOZ3RMb2FkZXJFeHRlbnNpb25zLFxuICAgIG9uUHJvZ3Jlc3M/OiAoZXZlbnQ6IFByb2dyZXNzRXZlbnQpID0+IHZvaWRcbikge1xuICAgIGNvbnN0IHVybHMkID0gaXNPYnNlcnZhYmxlKGlucHV0KSA/IGlucHV0IDogb2YoaW5wdXQpO1xuICAgIHJldHVybiB1cmxzJC5waXBlKFxuICAgICAgICBtYXAoKGlucHV0cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgbG9hZGVyQ29uc3RydWN0b3IgPSBsb2FkZXJDb25zdHJ1Y3RvckZhY3RvcnkoaW5wdXRzKTtcbiAgICAgICAgICAgIGNvbnN0IGxvYWRlciA9IG5ldyBsb2FkZXJDb25zdHJ1Y3RvcigpO1xuICAgICAgICAgICAgaWYgKGV4dGVuc2lvbnMpIGV4dGVuc2lvbnMobG9hZGVyKTtcbiAgICAgICAgICAgIGNvbnN0IHVybHMgPSBBcnJheS5pc0FycmF5KGlucHV0cykgPyBpbnB1dHMgOiB0eXBlb2YgaW5wdXRzID09PSAnc3RyaW5nJyA/IFtpbnB1dHNdIDogT2JqZWN0LnZhbHVlcyhpbnB1dHMpO1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICB1cmxzLm1hcCgodXJsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY2FjaGVkLmhhcyh1cmwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZWQuc2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tKGxvYWRlci5sb2FkQXN5bmModXJsLCBvblByb2dyZXNzKSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFwKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5zY2VuZSkgT2JqZWN0LmFzc2lnbihkYXRhLCBtYWtlT2JqZWN0R3JhcGgoZGF0YS5zY2VuZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0cnkoMiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgW05HVF0gRXJyb3IgbG9hZGluZyAke3VybH06ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmUoeyBjb25uZWN0b3I6ICgpID0+IG5ldyBSZXBsYXlTdWJqZWN0KDEpIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGVkLmdldCh1cmwpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGlucHV0cyxcbiAgICAgICAgICAgIF0gYXMgW0FycmF5PE9ic2VydmFibGU8YW55Pj4sIFRVcmwgfCBUVXJsW11dO1xuICAgICAgICB9KVxuICAgICk7XG59XG5cbmZ1bmN0aW9uIGluamVjdExvYWRlcjxUUmV0dXJuVHlwZSwgVFVybCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXG4gICAgbG9hZGVyQ29uc3RydWN0b3JGYWN0b3J5OiAoaW5wdXRzOiBUVXJsKSA9PiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBOZ3RMb2FkZXJSZXN1bHQ8VFJldHVyblR5cGU+LFxuICAgIGlucHV0OiBUVXJsIHwgT2JzZXJ2YWJsZTxUVXJsPixcbiAgICBleHRlbnNpb25zPzogTmd0TG9hZGVyRXh0ZW5zaW9ucyxcbiAgICBvblByb2dyZXNzPzogKGV2ZW50OiBQcm9ncmVzc0V2ZW50KSA9PiB2b2lkXG4pOiBPYnNlcnZhYmxlPE5ndExvYWRlclJlc3VsdHM8VFVybCwgTmd0QnJhbmNoaW5nUmV0dXJuPFRSZXR1cm5UeXBlLCBHTFRGLCBHTFRGICYgTmd0T2JqZWN0TWFwPj4+IHtcbiAgICBjb25zdCBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgcmV0dXJuIGxvYWQobG9hZGVyQ29uc3RydWN0b3JGYWN0b3J5LCBpbnB1dCwgZXh0ZW5zaW9ucywgb25Qcm9ncmVzcykucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChbb2JzZXJ2YWJsZXMkLCBpbnB1dHNdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMkKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpbnB1dHMpKSByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpbnB1dHMgPT09ICdzdHJpbmcnKSByZXR1cm4gcmVzdWx0c1swXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGlucHV0cyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBrZXlzLnJlZHVjZSgocmVzdWx0LCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXkgYXMga2V5b2YgdHlwZW9mIHJlc3VsdF0gPSByZXN1bHRzW2tleXMuaW5kZXhPZihrZXkpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgIH0sIHt9IGFzIHsgW2tleSBpbiBrZXlvZiBUVXJsXTogTmd0QnJhbmNoaW5nUmV0dXJuPFRSZXR1cm5UeXBlLCBHTFRGLCBHTFRGICYgTmd0T2JqZWN0TWFwPiB9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdm9pZCBzYWZlRGV0ZWN0Q2hhbmdlcyhjZHIpKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICApO1xufVxuXG4oaW5qZWN0TG9hZGVyIGFzIE5ndExvYWRlcikuZGVzdHJveSA9ICgpID0+IHtcbiAgICBjYWNoZWQuY2xlYXIoKTtcbn07XG5cbihpbmplY3RMb2FkZXIgYXMgTmd0TG9hZGVyKS5wcmVMb2FkID0gKGxvYWRlckNvbnN0cnVjdG9yRmFjdG9yeSwgaW5wdXRzLCBleHRlbnNpb25zKSA9PiB7XG4gICAgbG9hZChsb2FkZXJDb25zdHJ1Y3RvckZhY3RvcnksIGlucHV0cywgZXh0ZW5zaW9ucykucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbmplY3ROZ3RMb2FkZXIgPSBpbmplY3RMb2FkZXIgYXMgTmd0TG9hZGVyO1xuIl19
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ChangeDetectorRef, inject, Pipe } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, EnvironmentInjector, inject, Pipe } from '@angular/core';
|
|
2
2
|
import { isObservable } from 'rxjs';
|
|
3
|
+
import { safeDetectChanges } from '../utils/safe-detect-changes';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
function isPromise(value) {
|
|
5
6
|
return ((value instanceof Promise || Object.prototype.toString.call(value) === '[object Promise]') &&
|
|
@@ -9,46 +10,40 @@ export class NgtPush {
|
|
|
9
10
|
constructor() {
|
|
10
11
|
this.cdr = inject(ChangeDetectorRef);
|
|
11
12
|
this.parentCdr = inject(ChangeDetectorRef, { skipSelf: true, optional: true });
|
|
13
|
+
this.envCdr = inject(EnvironmentInjector).get(ChangeDetectorRef, null);
|
|
12
14
|
}
|
|
13
15
|
transform(value, defaultValue = null) {
|
|
14
|
-
if (this.obj === value)
|
|
16
|
+
if (this.obj === value)
|
|
15
17
|
return this.latestValue;
|
|
16
|
-
}
|
|
17
18
|
this.obj = value;
|
|
18
19
|
this.latestValue = defaultValue;
|
|
19
|
-
if (this.sub)
|
|
20
|
+
if (this.sub)
|
|
20
21
|
this.sub.unsubscribe();
|
|
21
|
-
|
|
22
|
-
if (isObservable(this.obj)) {
|
|
22
|
+
if (isObservable(this.obj))
|
|
23
23
|
this.sub = this.obj.subscribe(this.updateValue.bind(this));
|
|
24
|
-
|
|
25
|
-
else if (isPromise(this.obj)) {
|
|
24
|
+
else if (isPromise(this.obj))
|
|
26
25
|
this.obj.then(this.updateValue.bind(this));
|
|
27
|
-
|
|
28
|
-
else {
|
|
26
|
+
else
|
|
29
27
|
throw new Error(`[NGT] Invalid value passed to ngtPush pipe`);
|
|
30
|
-
}
|
|
31
28
|
return this.latestValue;
|
|
32
29
|
}
|
|
33
30
|
updateValue(val) {
|
|
34
31
|
this.latestValue = val;
|
|
35
|
-
this.cdr
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
32
|
+
safeDetectChanges(this.cdr);
|
|
33
|
+
safeDetectChanges(this.parentCdr);
|
|
34
|
+
safeDetectChanges(this.envCdr);
|
|
39
35
|
}
|
|
40
36
|
ngOnDestroy() {
|
|
41
|
-
if (this.sub)
|
|
37
|
+
if (this.sub)
|
|
42
38
|
this.sub.unsubscribe();
|
|
43
|
-
}
|
|
44
39
|
this.latestValue = undefined;
|
|
45
40
|
this.obj = undefined;
|
|
46
41
|
}
|
|
47
42
|
}
|
|
48
|
-
NgtPush.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
49
|
-
NgtPush.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
43
|
+
NgtPush.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: NgtPush, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
44
|
+
NgtPush.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: NgtPush, isStandalone: true, name: "ngtPush", pure: false });
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: NgtPush, decorators: [{
|
|
51
46
|
type: Pipe,
|
|
52
47
|
args: [{ name: 'ngtPush', pure: false, standalone: true }]
|
|
53
48
|
}] });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS9zcmMvbGliL3BpcGVzL3B1c2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBYSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxZQUFZLEVBQWlDLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUVqRSxTQUFTLFNBQVMsQ0FBQyxLQUFjO0lBQzdCLE9BQU8sQ0FDSCxDQUFDLEtBQUssWUFBWSxPQUFPLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGtCQUFrQixDQUFDO1FBQzFGLE9BQVEsS0FBMEIsQ0FBQyxNQUFNLENBQUMsS0FBSyxVQUFVLENBQzVELENBQUM7QUFDTixDQUFDO0FBR0QsTUFBTSxPQUFPLE9BQU87SUFEcEI7UUFFcUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLFdBQU0sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FpQ3RGO0lBM0JHLFNBQVMsQ0FBQyxLQUF5QixFQUFFLGVBQWtCLElBQUs7UUFDeEQsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQyxXQUFnQixDQUFDO1FBRXJELElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDO1FBRWhDLElBQUksSUFBSSxDQUFDLEdBQUc7WUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXJDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDbEYsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUFHLElBQUksQ0FBQyxHQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDOztZQUNwRixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFFbkUsT0FBTyxJQUFJLENBQUMsV0FBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRU8sV0FBVyxDQUFDLEdBQU07UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFDdkIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxHQUFHO1lBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUM3QixJQUFJLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQztJQUN6QixDQUFDOztvR0FuQ1EsT0FBTztrR0FBUCxPQUFPOzJGQUFQLE9BQU87a0JBRG5CLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFbnZpcm9ubWVudEluamVjdG9yLCBpbmplY3QsIE9uRGVzdHJveSwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlSW5wdXQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2FmZURldGVjdENoYW5nZXMgfSBmcm9tICcuLi91dGlscy9zYWZlLWRldGVjdC1jaGFuZ2VzJztcblxuZnVuY3Rpb24gaXNQcm9taXNlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUHJvbWlzZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgKHZhbHVlIGluc3RhbmNlb2YgUHJvbWlzZSB8fCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBQcm9taXNlXScpICYmXG4gICAgICAgIHR5cGVvZiAodmFsdWUgYXMgUHJvbWlzZTx1bmtub3duPilbJ3RoZW4nXSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICk7XG59XG5cbkBQaXBlKHsgbmFtZTogJ25ndFB1c2gnLCBwdXJlOiBmYWxzZSwgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndFB1c2g8VD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhcmVudENkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZiwgeyBza2lwU2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbnZDZHIgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3RvcikuZ2V0KENoYW5nZURldGVjdG9yUmVmLCBudWxsKTtcblxuICAgIHByaXZhdGUgc3ViPzogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgb2JqPzogT2JzZXJ2YWJsZUlucHV0PFQ+O1xuICAgIHByaXZhdGUgbGF0ZXN0VmFsdWU/OiBUO1xuXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBPYnNlcnZhYmxlSW5wdXQ8VD4sIGRlZmF1bHRWYWx1ZTogVCA9IG51bGwhKTogVCB7XG4gICAgICAgIGlmICh0aGlzLm9iaiA9PT0gdmFsdWUpIHJldHVybiB0aGlzLmxhdGVzdFZhbHVlIGFzIFQ7XG5cbiAgICAgICAgdGhpcy5vYmogPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5sYXRlc3RWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcblxuICAgICAgICBpZiAodGhpcy5zdWIpIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgaWYgKGlzT2JzZXJ2YWJsZSh0aGlzLm9iaikpIHRoaXMuc3ViID0gdGhpcy5vYmouc3Vic2NyaWJlKHRoaXMudXBkYXRlVmFsdWUuYmluZCh0aGlzKSk7XG4gICAgICAgIGVsc2UgaWYgKGlzUHJvbWlzZSh0aGlzLm9iaikpICh0aGlzLm9iaiBhcyBQcm9taXNlPFQ+KS50aGVuKHRoaXMudXBkYXRlVmFsdWUuYmluZCh0aGlzKSk7XG4gICAgICAgIGVsc2UgdGhyb3cgbmV3IEVycm9yKGBbTkdUXSBJbnZhbGlkIHZhbHVlIHBhc3NlZCB0byBuZ3RQdXNoIHBpcGVgKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5sYXRlc3RWYWx1ZSBhcyBUO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmFsdWUodmFsOiBUKSB7XG4gICAgICAgIHRoaXMubGF0ZXN0VmFsdWUgPSB2YWw7XG4gICAgICAgIHNhZmVEZXRlY3RDaGFuZ2VzKHRoaXMuY2RyKTtcbiAgICAgICAgc2FmZURldGVjdENoYW5nZXModGhpcy5wYXJlbnRDZHIpO1xuICAgICAgICBzYWZlRGV0ZWN0Q2hhbmdlcyh0aGlzLmVudkNkcik7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLnN1YikgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5sYXRlc3RWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5vYmogPSB1bmRlZmluZWQ7XG4gICAgfVxufVxuIl19
|