@veloceapps/sdk 7.0.1-0 → 7.0.1-2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,10 +1,11 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./element-children.component";
3
- import * as i2 from "@veloceapps/components";
4
- import * as i3 from "../element-renderer/element-renderer.module";
5
- import * as i4 from "../element-drop-handle/element-drop-handle.module";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "@veloceapps/components";
5
+ import * as i4 from "../element-renderer/element-renderer.module";
6
+ import * as i5 from "../element-drop-handle/element-drop-handle.module";
6
7
  export declare class ElementChildrenModule {
7
8
  static ɵfac: i0.ɵɵFactoryDeclaration<ElementChildrenModule, never>;
8
- static ɵmod: i0.ɵɵNgModuleDeclaration<ElementChildrenModule, [typeof i1.ElementChildrenComponent], [typeof i2.LetDirectiveModule, typeof i3.ElementRendererModule, typeof i4.ElementDropHandleModule], [typeof i1.ElementChildrenComponent]>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ElementChildrenModule, [typeof i1.ElementChildrenComponent], [typeof i2.CommonModule, typeof i3.LetDirectiveModule, typeof i4.ElementRendererModule, typeof i5.ElementDropHandleModule], [typeof i1.ElementChildrenComponent]>;
9
10
  static ɵinj: i0.ɵɵInjectorDeclaration<ElementChildrenModule>;
10
11
  }
@@ -15,7 +15,7 @@ export declare class ElementRendererComponent implements OnInit, OnDestroy {
15
15
  private cdr;
16
16
  el?: ViewContainerRef;
17
17
  meta: ElementMetadata;
18
- private factory?;
18
+ private type?;
19
19
  private refs;
20
20
  private destroy$;
21
21
  constructor(parentInjector: Injector, runtimeService: RuntimeService, elementContext: ElementContextService, ioProviderService: IOProviderService, configurationService: ConfigurationService, elementRef: ElementRef, cdr: ChangeDetectorRef);
@@ -4,9 +4,14 @@ import * as i0 from "@angular/core";
4
4
  export declare class CustomTemplateDirective implements AfterViewInit {
5
5
  private templateRef;
6
6
  private templatesService;
7
- constructor(templateRef: TemplateRef<any>, templatesService: TemplatesService);
7
+ constructor(templateRef: TemplateRef<unknown>, templatesService: TemplatesService);
8
8
  customTemplate: string | undefined;
9
9
  ngAfterViewInit(): void;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<CustomTemplateDirective, never>;
11
11
  static ɵdir: i0.ɵɵDirectiveDeclaration<CustomTemplateDirective, "[customTemplate]", never, { "customTemplate": "customTemplate"; }, {}, never, never, false, never>;
12
12
  }
13
+ export declare class CustomTemplateDirectiveModule {
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<CustomTemplateDirectiveModule, never>;
15
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CustomTemplateDirectiveModule, [typeof CustomTemplateDirective], never, [typeof CustomTemplateDirective]>;
16
+ static ɵinj: i0.ɵɵInjectorDeclaration<CustomTemplateDirectiveModule>;
17
+ }
@@ -9,7 +9,7 @@ export declare class FederatedComponent implements OnInit, AfterViewInit, OnChan
9
9
  remoteEntry?: string;
10
10
  remoteName?: string;
11
11
  exposedModule?: string;
12
- data?: any;
12
+ data?: unknown;
13
13
  options?: FederatedModuleOptions;
14
14
  isLoading$: BehaviorSubject<boolean>;
15
15
  suppressLoading: boolean;
@@ -1,17 +1,17 @@
1
- import { Compiler, NgModule, Type } from '@angular/core';
1
+ import { Injector } from '@angular/core';
2
2
  import { UIDefinition } from '@veloceapps/sdk/core';
3
3
  import { Observable } from 'rxjs';
4
4
  import { CompilationResult } from '../../../modules/runtime/types/compilation.types';
5
5
  import { ElementMetadata } from '../../../types/common.types';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class CompilationService {
8
- private compiler;
8
+ private injector;
9
9
  private uiDefinitionMeta?;
10
10
  private elementsResolver?;
11
- constructor(compiler: Compiler);
11
+ constructor(injector: Injector);
12
12
  compileUIDefinition$(uiDefinition: UIDefinition): Observable<CompilationResult>;
13
13
  compileElement$(element: ElementMetadata): Observable<CompilationResult>;
14
- clearModuleCache(modules: Type<NgModule>[]): void;
14
+ clear(): void;
15
15
  private getModule;
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<CompilationService, never>;
17
17
  static ɵprov: i0.ɵɵInjectableDeclaration<CompilationService>;
@@ -1,14 +1,15 @@
1
- import { ComponentFactory, Injector, NgModule, Type } from '@angular/core';
1
+ import { Injector, NgModule, NgModuleRef, Type } from '@angular/core';
2
2
  import { UIDefinition } from '@veloceapps/sdk/core';
3
3
  import { Patch } from 'rfc6902';
4
4
  import { BehaviorSubject, Observable, Subject } from 'rxjs';
5
5
  import { CMSPreviewConfig } from '../../../components/preview/preview.types';
6
+ import { Entity } from '../../../engine/models/entity';
6
7
  import { ElementMetadata } from '../../../types';
7
8
  import * as i0 from "@angular/core";
8
9
  export declare class RuntimeService {
9
10
  private injector;
10
- modules: Type<NgModule>[];
11
- componentFactories: Record<string, ComponentFactory<any>>;
11
+ moduleRefs: NgModuleRef<NgModule>[];
12
+ componentTypes: Record<string, Type<Entity>>;
12
13
  applicationTree: ElementMetadata[];
13
14
  config?: CMSPreviewConfig;
14
15
  isInitialized$: BehaviorSubject<boolean>;
@@ -21,7 +22,6 @@ export declare class RuntimeService {
21
22
  clear(): void;
22
23
  private addElement$;
23
24
  private deleteElement;
24
- private addComponentFactories;
25
25
  static ɵfac: i0.ɵɵFactoryDeclaration<RuntimeService, never>;
26
26
  static ɵprov: i0.ɵɵInjectableDeclaration<RuntimeService>;
27
27
  }
@@ -1,6 +1,8 @@
1
- import { ModuleWithComponentFactories, NgModule } from '@angular/core';
1
+ import { NgModule, NgModuleRef, Type } from '@angular/core';
2
+ import { Entity } from '../../../engine/models/entity';
2
3
  import { ElementMetadata } from '../../../types/common.types';
3
4
  export interface CompilationResult {
4
5
  elements: ElementMetadata[];
5
- module: ModuleWithComponentFactories<NgModule>;
6
+ moduleRef: NgModuleRef<NgModule>;
7
+ componentTypes: Record<string, Type<Entity>>;
6
8
  }
@@ -1,5 +1,6 @@
1
1
  import { Type } from '@angular/core';
2
2
  import { UIDefinitionMetadata } from '@veloceapps/sdk/core';
3
+ import { Entity } from '../engine/models/entity';
3
4
  import { ElementMetadata } from '../types';
4
5
  export declare class ElementsResolver {
5
6
  private uiDef;
@@ -8,7 +9,7 @@ export declare class ElementsResolver {
8
9
  private sharedElements;
9
10
  constructor(uiDef: UIDefinitionMetadata, elements: ElementMetadata[], sharedElements?: ElementMetadata[]);
10
11
  addElement(element: ElementMetadata): void;
11
- getNgComponents(): Type<any>[];
12
+ getNgComponents(): Record<string, Type<Entity>>;
12
13
  private transpile;
13
14
  private transpileScripts;
14
15
  private flattenElements;
@@ -7,8 +7,9 @@ import * as i0 from "@angular/core";
7
7
  import * as i1 from "../../services/element-context.service";
8
8
  import * as i2 from "../../modules/runtime/services/runtime.service";
9
9
  import * as i3 from "../../modules/runtime/services/runtime-editor.service";
10
- import * as i4 from "../element-renderer/element-renderer.component";
11
- import * as i5 from "../element-drop-handle/element-drop-handle.component";
10
+ import * as i4 from "@angular/common";
11
+ import * as i5 from "../element-renderer/element-renderer.component";
12
+ import * as i6 from "../element-drop-handle/element-drop-handle.component";
12
13
  export class ElementChildrenComponent {
13
14
  constructor(elementContext, runtimeService, runtimeEditorService, cdr) {
14
15
  this.elementContext = elementContext;
@@ -27,9 +28,9 @@ export class ElementChildrenComponent {
27
28
  }
28
29
  }
29
30
  ElementChildrenComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ElementChildrenComponent, deps: [{ token: i1.ElementContextService }, { token: i2.RuntimeService }, { token: i3.RuntimeEditorService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
30
- ElementChildrenComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ElementChildrenComponent, selector: "element-children", ngImport: i0, template: "<ng-container *ngIf=\"metadata$ | async as metadata\">\n <vl-element-drop-handle *ngIf=\"dragMode$ | async\" [index]=\"0\" [parentPath]=\"metadata.path\"></vl-element-drop-handle>\n <ng-container *ngFor=\"let child of metadata.children; let i = index\">\n <vl-cms-element-renderer [meta]=\"child\"></vl-cms-element-renderer>\n <vl-element-drop-handle\n *ngIf=\"dragMode$ | async\"\n [index]=\"i + 1\"\n [parentPath]=\"metadata.path\"\n ></vl-element-drop-handle>\n </ng-container>\n</ng-container>\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: i4.ElementRendererComponent, selector: "vl-cms-element-renderer", inputs: ["meta"] }, { kind: "component", type: i5.ElementDropHandleComponent, selector: "vl-element-drop-handle", inputs: ["index", "parentPath"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31
+ ElementChildrenComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ElementChildrenComponent, selector: "element-children", ngImport: i0, template: "<ng-container *ngIf=\"metadata$ | async as metadata\">\n <vl-element-drop-handle *ngIf=\"dragMode$ | async\" [index]=\"0\" [parentPath]=\"metadata.path\"></vl-element-drop-handle>\n <ng-container *ngFor=\"let child of metadata.children; let i = index\">\n <vl-cms-element-renderer [meta]=\"child\"></vl-cms-element-renderer>\n <vl-element-drop-handle\n *ngIf=\"dragMode$ | async\"\n [index]=\"i + 1\"\n [parentPath]=\"metadata.path\"\n ></vl-element-drop-handle>\n </ng-container>\n</ng-container>\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.ElementRendererComponent, selector: "vl-cms-element-renderer", inputs: ["meta"] }, { kind: "component", type: i6.ElementDropHandleComponent, selector: "vl-element-drop-handle", inputs: ["index", "parentPath"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ElementChildrenComponent, decorators: [{
32
33
  type: Component,
33
34
  args: [{ selector: 'element-children', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"metadata$ | async as metadata\">\n <vl-element-drop-handle *ngIf=\"dragMode$ | async\" [index]=\"0\" [parentPath]=\"metadata.path\"></vl-element-drop-handle>\n <ng-container *ngFor=\"let child of metadata.children; let i = index\">\n <vl-cms-element-renderer [meta]=\"child\"></vl-cms-element-renderer>\n <vl-element-drop-handle\n *ngIf=\"dragMode$ | async\"\n [index]=\"i + 1\"\n [parentPath]=\"metadata.path\"\n ></vl-element-drop-handle>\n </ng-container>\n</ng-container>\n", styles: [":host{display:contents}\n"] }]
34
35
  }], ctorParameters: function () { return [{ type: i1.ElementContextService }, { type: i2.RuntimeService }, { type: i3.RuntimeEditorService }, { type: i0.ChangeDetectorRef }]; } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1jaGlsZHJlbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY29tcG9uZW50cy9lbGVtZW50LWNoaWxkcmVuL2VsZW1lbnQtY2hpbGRyZW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL2NvbXBvbmVudHMvZWxlbWVudC1jaGlsZHJlbi9lbGVtZW50LWNoaWxkcmVuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDN0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7O0FBVS9FLE1BQU0sT0FBTyx3QkFBd0I7SUFNbkMsWUFDVSxjQUFxQyxFQUNyQyxjQUE4QixFQUM5QixvQkFBMEMsRUFDMUMsR0FBc0I7UUFIdEIsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBQ3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBTnhCLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBUXZDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQztRQUNqRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRGLElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQy9HLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDbkMsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7cUhBeEJVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLHdEQ2RyQyxnaEJBV0E7MkZER2Esd0JBQXdCO2tCQVBwQyxTQUFTOytCQUVFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSdW50aW1lRWRpdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL21vZHVsZXMvcnVudGltZS9zZXJ2aWNlcy9ydW50aW1lLWVkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFJ1bnRpbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbW9kdWxlcy9ydW50aW1lL3NlcnZpY2VzL3J1bnRpbWUuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lbGVtZW50LWNvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi8uLi90eXBlcy9jb21tb24udHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdlbGVtZW50LWNoaWxkcmVuJyxcbiAgdGVtcGxhdGVVcmw6ICdlbGVtZW50LWNoaWxkcmVuLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxlbWVudC1jaGlsZHJlbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRWxlbWVudENoaWxkcmVuQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIG1ldGFkYXRhJDogT2JzZXJ2YWJsZTxFbGVtZW50TWV0YWRhdGEgfCB1bmRlZmluZWQ+O1xuICBwdWJsaWMgZHJhZ01vZGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50Q29udGV4dDogRWxlbWVudENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcnVudGltZVNlcnZpY2U6IFJ1bnRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcnVudGltZUVkaXRvclNlcnZpY2U6IFJ1bnRpbWVFZGl0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMuZWxlbWVudENvbnRleHQ/Lm1ldGFkYXRhPy5wYXRoO1xuICAgIHRoaXMubWV0YWRhdGEkID0gcGF0aCA/IHRoaXMucnVudGltZVNlcnZpY2UuZ2V0Q29tcGlsZWRFbGVtZW50JChwYXRoKSA6IG9mKHVuZGVmaW5lZCk7XG5cbiAgICB0aGlzLmRyYWdNb2RlJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMucnVudGltZUVkaXRvclNlcnZpY2UuZWRpdG9yTW9kZSQsIHRoaXMucnVudGltZUVkaXRvclNlcnZpY2UuZHJhZ01vZGUkXSkucGlwZShcbiAgICAgIG1hcChmbGFncyA9PiBmbGFncy5ldmVyeShCb29sZWFuKSksXG4gICAgKTtcbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnVwZGF0ZWQkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJtZXRhZGF0YSQgfCBhc3luYyBhcyBtZXRhZGF0YVwiPlxuICA8dmwtZWxlbWVudC1kcm9wLWhhbmRsZSAqbmdJZj1cImRyYWdNb2RlJCB8IGFzeW5jXCIgW2luZGV4XT1cIjBcIiBbcGFyZW50UGF0aF09XCJtZXRhZGF0YS5wYXRoXCI+PC92bC1lbGVtZW50LWRyb3AtaGFuZGxlPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBtZXRhZGF0YS5jaGlsZHJlbjsgbGV0IGkgPSBpbmRleFwiPlxuICAgIDx2bC1jbXMtZWxlbWVudC1yZW5kZXJlciBbbWV0YV09XCJjaGlsZFwiPjwvdmwtY21zLWVsZW1lbnQtcmVuZGVyZXI+XG4gICAgPHZsLWVsZW1lbnQtZHJvcC1oYW5kbGVcbiAgICAgICpuZ0lmPVwiZHJhZ01vZGUkIHwgYXN5bmNcIlxuICAgICAgW2luZGV4XT1cImkgKyAxXCJcbiAgICAgIFtwYXJlbnRQYXRoXT1cIm1ldGFkYXRhLnBhdGhcIlxuICAgID48L3ZsLWVsZW1lbnQtZHJvcC1oYW5kbGU+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1jaGlsZHJlbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY29tcG9uZW50cy9lbGVtZW50LWNoaWxkcmVuL2VsZW1lbnQtY2hpbGRyZW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL2NvbXBvbmVudHMvZWxlbWVudC1jaGlsZHJlbi9lbGVtZW50LWNoaWxkcmVuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDN0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7OztBQVUvRSxNQUFNLE9BQU8sd0JBQXdCO0lBTW5DLFlBQ1UsY0FBcUMsRUFDckMsY0FBOEIsRUFDOUIsb0JBQTBDLEVBQzFDLEdBQXNCO1FBSHRCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQU54QixlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVF2QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV0RixJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMvRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQ25DLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7O3FIQXhCVSx3QkFBd0I7eUdBQXhCLHdCQUF3Qix3RENkckMsZ2hCQVdBOzJGREdhLHdCQUF3QjtrQkFQcEMsU0FBUzsrQkFFRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUnVudGltZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3J1bnRpbWUvc2VydmljZXMvcnVudGltZS1lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBSdW50aW1lU2VydmljZSB9IGZyb20gJy4uLy4uL21vZHVsZXMvcnVudGltZS9zZXJ2aWNlcy9ydW50aW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWxlbWVudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWxlbWVudC1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMvY29tbW9uLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnZWxlbWVudC1jaGlsZHJlbicsXG4gIHRlbXBsYXRlVXJsOiAnZWxlbWVudC1jaGlsZHJlbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZW1lbnQtY2hpbGRyZW4uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRDaGlsZHJlbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBtZXRhZGF0YSQ6IE9ic2VydmFibGU8RWxlbWVudE1ldGFkYXRhIHwgdW5kZWZpbmVkPjtcbiAgcHVibGljIGRyYWdNb2RlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudENvbnRleHQ6IEVsZW1lbnRDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIHJ1bnRpbWVTZXJ2aWNlOiBSdW50aW1lU2VydmljZSxcbiAgICBwcml2YXRlIHJ1bnRpbWVFZGl0b3JTZXJ2aWNlOiBSdW50aW1lRWRpdG9yU2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLmVsZW1lbnRDb250ZXh0Py5tZXRhZGF0YT8ucGF0aDtcbiAgICB0aGlzLm1ldGFkYXRhJCA9IHBhdGggPyB0aGlzLnJ1bnRpbWVTZXJ2aWNlLmdldENvbXBpbGVkRWxlbWVudCQocGF0aCkgOiBvZih1bmRlZmluZWQpO1xuXG4gICAgdGhpcy5kcmFnTW9kZSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnJ1bnRpbWVFZGl0b3JTZXJ2aWNlLmVkaXRvck1vZGUkLCB0aGlzLnJ1bnRpbWVFZGl0b3JTZXJ2aWNlLmRyYWdNb2RlJF0pLnBpcGUoXG4gICAgICBtYXAoZmxhZ3MgPT4gZmxhZ3MuZXZlcnkoQm9vbGVhbikpLFxuICAgICk7XG4gICAgdGhpcy5ydW50aW1lU2VydmljZS51cGRhdGVkJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibWV0YWRhdGEkIHwgYXN5bmMgYXMgbWV0YWRhdGFcIj5cbiAgPHZsLWVsZW1lbnQtZHJvcC1oYW5kbGUgKm5nSWY9XCJkcmFnTW9kZSQgfCBhc3luY1wiIFtpbmRleF09XCIwXCIgW3BhcmVudFBhdGhdPVwibWV0YWRhdGEucGF0aFwiPjwvdmwtZWxlbWVudC1kcm9wLWhhbmRsZT5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgbWV0YWRhdGEuY2hpbGRyZW47IGxldCBpID0gaW5kZXhcIj5cbiAgICA8dmwtY21zLWVsZW1lbnQtcmVuZGVyZXIgW21ldGFdPVwiY2hpbGRcIj48L3ZsLWNtcy1lbGVtZW50LXJlbmRlcmVyPlxuICAgIDx2bC1lbGVtZW50LWRyb3AtaGFuZGxlXG4gICAgICAqbmdJZj1cImRyYWdNb2RlJCB8IGFzeW5jXCJcbiAgICAgIFtpbmRleF09XCJpICsgMVwiXG4gICAgICBbcGFyZW50UGF0aF09XCJtZXRhZGF0YS5wYXRoXCJcbiAgICA+PC92bC1lbGVtZW50LWRyb3AtaGFuZGxlPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,3 +1,4 @@
1
+ import { CommonModule } from '@angular/common';
1
2
  import { NgModule } from '@angular/core';
2
3
  import { LetDirectiveModule } from '@veloceapps/components';
3
4
  import { ElementDropHandleModule } from '../element-drop-handle/element-drop-handle.module';
@@ -7,14 +8,14 @@ import * as i0 from "@angular/core";
7
8
  export class ElementChildrenModule {
8
9
  }
9
10
  ElementChildrenModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ElementChildrenModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- ElementChildrenModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: ElementChildrenModule, declarations: [ElementChildrenComponent], imports: [LetDirectiveModule, ElementRendererModule, ElementDropHandleModule], exports: [ElementChildrenComponent] });
11
- ElementChildrenModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ElementChildrenModule, imports: [LetDirectiveModule, ElementRendererModule, ElementDropHandleModule] });
11
+ ElementChildrenModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: ElementChildrenModule, declarations: [ElementChildrenComponent], imports: [CommonModule, LetDirectiveModule, ElementRendererModule, ElementDropHandleModule], exports: [ElementChildrenComponent] });
12
+ ElementChildrenModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ElementChildrenModule, imports: [CommonModule, LetDirectiveModule, ElementRendererModule, ElementDropHandleModule] });
12
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ElementChildrenModule, decorators: [{
13
14
  type: NgModule,
14
15
  args: [{
15
16
  declarations: [ElementChildrenComponent],
16
- imports: [LetDirectiveModule, ElementRendererModule, ElementDropHandleModule],
17
+ imports: [CommonModule, LetDirectiveModule, ElementRendererModule, ElementDropHandleModule],
17
18
  exports: [ElementChildrenComponent],
18
19
  }]
19
20
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1jaGlsZHJlbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY29tcG9uZW50cy9lbGVtZW50LWNoaWxkcmVuL2VsZW1lbnQtY2hpbGRyZW4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDNUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBT3hFLE1BQU0sT0FBTyxxQkFBcUI7O2tIQUFyQixxQkFBcUI7bUhBQXJCLHFCQUFxQixpQkFKakIsd0JBQXdCLGFBQzdCLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixhQUNsRSx3QkFBd0I7bUhBRXZCLHFCQUFxQixZQUh0QixrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUI7MkZBR2pFLHFCQUFxQjtrQkFMakMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLENBQUM7b0JBQzdFLE9BQU8sRUFBRSxDQUFDLHdCQUF3QixDQUFDO2lCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMZXREaXJlY3RpdmVNb2R1bGUgfSBmcm9tICdAdmVsb2NlYXBwcy9jb21wb25lbnRzJztcbmltcG9ydCB7IEVsZW1lbnREcm9wSGFuZGxlTW9kdWxlIH0gZnJvbSAnLi4vZWxlbWVudC1kcm9wLWhhbmRsZS9lbGVtZW50LWRyb3AtaGFuZGxlLm1vZHVsZSc7XG5pbXBvcnQgeyBFbGVtZW50UmVuZGVyZXJNb2R1bGUgfSBmcm9tICcuLi9lbGVtZW50LXJlbmRlcmVyL2VsZW1lbnQtcmVuZGVyZXIubW9kdWxlJztcbmltcG9ydCB7IEVsZW1lbnRDaGlsZHJlbkNvbXBvbmVudCB9IGZyb20gJy4vZWxlbWVudC1jaGlsZHJlbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtFbGVtZW50Q2hpbGRyZW5Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbTGV0RGlyZWN0aXZlTW9kdWxlLCBFbGVtZW50UmVuZGVyZXJNb2R1bGUsIEVsZW1lbnREcm9wSGFuZGxlTW9kdWxlXSxcbiAgZXhwb3J0czogW0VsZW1lbnRDaGlsZHJlbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRDaGlsZHJlbk1vZHVsZSB7fVxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1jaGlsZHJlbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY29tcG9uZW50cy9lbGVtZW50LWNoaWxkcmVuL2VsZW1lbnQtY2hpbGRyZW4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQU94RSxNQUFNLE9BQU8scUJBQXFCOztrSEFBckIscUJBQXFCO21IQUFyQixxQkFBcUIsaUJBSmpCLHdCQUF3QixhQUM3QixZQUFZLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLGFBQ2hGLHdCQUF3QjttSEFFdkIscUJBQXFCLFlBSHRCLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUI7MkZBRy9FLHFCQUFxQjtrQkFMakMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixDQUFDO29CQUMzRixPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExldERpcmVjdGl2ZU1vZHVsZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRWxlbWVudERyb3BIYW5kbGVNb2R1bGUgfSBmcm9tICcuLi9lbGVtZW50LWRyb3AtaGFuZGxlL2VsZW1lbnQtZHJvcC1oYW5kbGUubW9kdWxlJztcbmltcG9ydCB7IEVsZW1lbnRSZW5kZXJlck1vZHVsZSB9IGZyb20gJy4uL2VsZW1lbnQtcmVuZGVyZXIvZWxlbWVudC1yZW5kZXJlci5tb2R1bGUnO1xuaW1wb3J0IHsgRWxlbWVudENoaWxkcmVuQ29tcG9uZW50IH0gZnJvbSAnLi9lbGVtZW50LWNoaWxkcmVuLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0VsZW1lbnRDaGlsZHJlbkNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIExldERpcmVjdGl2ZU1vZHVsZSwgRWxlbWVudFJlbmRlcmVyTW9kdWxlLCBFbGVtZW50RHJvcEhhbmRsZU1vZHVsZV0sXG4gIGV4cG9ydHM6IFtFbGVtZW50Q2hpbGRyZW5Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBFbGVtZW50Q2hpbGRyZW5Nb2R1bGUge31cbiJdfQ==
@@ -2,7 +2,8 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inje
2
2
  import { UUID } from '@veloceapps/core';
3
3
  import { ConfigurationService } from '@veloceapps/sdk/core';
4
4
  import { isArray, pull } from 'lodash';
5
- import { map, Subject, takeUntil } from 'rxjs';
5
+ import { Subject, map, takeUntil } from 'rxjs';
6
+ import { ElementComponent } from '..';
6
7
  import { RuntimeService } from '../../modules/runtime/services/runtime.service';
7
8
  import { ElementContextService } from '../../services/element-context.service';
8
9
  import { IOProviderService } from '../../services/io-provider.service';
@@ -26,7 +27,7 @@ export class ElementRendererComponent {
26
27
  }
27
28
  ngOnInit() {
28
29
  this.elementContext.metadata = this.meta;
29
- this.factory = this.meta.path ? this.runtimeService.componentFactories[this.meta.path] : undefined;
30
+ this.type = this.meta.path ? this.runtimeService.componentTypes[this.meta.path] : undefined;
30
31
  this.createComponents();
31
32
  }
32
33
  ngOnDestroy() {
@@ -94,43 +95,52 @@ export class ElementRendererComponent {
94
95
  });
95
96
  }
96
97
  processChildren(children) {
97
- const refs = children.reduce((acc, data, index) => {
98
- const key = String(data?.id ?? UUID.UUID());
99
- const existingRef = this.refs[key];
100
- const ref = existingRef ?? this.createComponent(data, index);
101
- if (existingRef) {
102
- this.updateComponent(existingRef, data, index);
103
- }
104
- return ref ? { ...acc, [key]: ref } : acc;
105
- }, {});
106
- const existingKeys = Object.keys(this.refs);
107
- const newKeys = Object.keys(refs);
108
- pull(existingKeys, ...newKeys).forEach(key => {
109
- this.destroyComponent(key);
98
+ this.runtimeService.moduleRefs[0].injector.runInContext(() => {
99
+ const refs = children.reduce((acc, data, index) => {
100
+ const key = String(data?.id ?? UUID.UUID());
101
+ const existingRef = this.refs[key];
102
+ const ref = existingRef ?? this.createComponent(data, index);
103
+ if (existingRef) {
104
+ this.updateComponent(existingRef, data, index);
105
+ }
106
+ return ref ? { ...acc, [key]: ref } : acc;
107
+ }, {});
108
+ const existingKeys = Object.keys(this.refs);
109
+ const newKeys = Object.keys(refs);
110
+ pull(existingKeys, ...newKeys).forEach(key => {
111
+ this.destroyComponent(key);
112
+ });
113
+ this.refs = refs;
114
+ this.cdr.detectChanges();
110
115
  });
111
- this.refs = refs;
112
- this.cdr.detectChanges();
113
116
  }
114
117
  getParentLineItem$(parentComp) {
115
118
  const parentRefs = Object.values(parentComp?.refs ?? {});
116
119
  const parentRef = parentRefs.find(ref => ref?.location.nativeElement?.contains(this.elementRef.nativeElement));
117
- const parentModel$ = parentRef?.instance.model$;
120
+ let parentModel$;
121
+ if (parentRef?.instance instanceof ElementComponent) {
122
+ parentModel$ = parentRef?.instance.model$;
123
+ }
118
124
  return parentModel$ ?? this.configurationService.get();
119
125
  }
120
126
  createComponent(data, index) {
121
- if (!this.factory) {
127
+ if (!this.type) {
122
128
  return;
123
129
  }
124
- const componentRef = this.el?.createComponent(this.factory, index);
130
+ const componentRef = this.el?.createComponent(this.type, { index });
125
131
  if (componentRef) {
126
132
  componentRef.location.nativeElement.setAttribute('name', this.meta.name);
127
133
  componentRef.location.nativeElement.setAttribute('path', this.meta.path);
128
- componentRef.instance?.model$.next(data);
134
+ if (componentRef.instance instanceof ElementComponent) {
135
+ componentRef.instance.model$.next(data);
136
+ }
129
137
  }
130
138
  return componentRef;
131
139
  }
132
140
  updateComponent(ref, data, index) {
133
- ref.instance.model$.next(data);
141
+ if (ref.instance instanceof ElementComponent) {
142
+ ref.instance.model$.next(data);
143
+ }
134
144
  if (this.el && this.el.indexOf(ref.hostView) !== index) {
135
145
  this.el.move(ref.hostView, index);
136
146
  }
@@ -157,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
157
167
  }], meta: [{
158
168
  type: Input
159
169
  }] } });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY29tcG9uZW50cy9lbGVtZW50LXJlbmRlcmVyL2VsZW1lbnQtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL2NvbXBvbmVudHMvZWxlbWVudC1yZW5kZXJlci9lbGVtZW50LXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFHVCxVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFHTCxRQUFRLEVBQ1IsU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQVksSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFjLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQVN4RCxNQUFNLE9BQU8sd0JBQXdCO0lBU25DLFlBQ3NCLGNBQXdCLEVBQ3BDLGNBQThCLEVBQzlCLGNBQXFDLEVBQ3JDLGlCQUFvQyxFQUNwQyxvQkFBMEMsRUFDMUMs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QUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFDdEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxHQUFXO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7cUhBL0tVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDRFQUZ4QixDQUFDLHFCQUFxQixDQUFDLCtGQUdULGdCQUFnQiwyQ0NqQzNDLG1DQUNBOzJGRCtCYSx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0UseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMscUJBQXFCLENBQUM7OzBCQVkvQixRQUFRO3lPQVR1RCxFQUFFO3NCQUFuRSxTQUFTO3VCQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUV6QyxJQUFJO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudEZhY3RvcnksXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgU2tpcFNlbGYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaW5lSXRlbSwgVVVJRCB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5LCBpc0FycmF5LCBwdWxsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSdW50aW1lU2VydmljZSB9IGZyb20gJy4uLy4uL21vZHVsZXMvcnVudGltZS9zZXJ2aWNlcy9ydW50aW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWxlbWVudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWxlbWVudC1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSU9Qcm92aWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pby1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEVsZW1lbnRNZXRhZGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzL2NvbW1vbi50eXBlcyc7XG5pbXBvcnQgeyBwYXJzZUJvdW5kUGF0aCB9IGZyb20gJy4uLy4uL3V0aWxzL3BhdGgudXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2bC1jbXMtZWxlbWVudC1yZW5kZXJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbGVtZW50LXJlbmRlcmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxlbWVudC1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbRWxlbWVudENvbnRleHRTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgRWxlbWVudFJlbmRlcmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdlbCcsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBlbD86IFZpZXdDb250YWluZXJSZWY7XG5cbiAgQElucHV0KCkgcHVibGljIG1ldGEhOiBFbGVtZW50TWV0YWRhdGE7XG5cbiAgcHJpdmF0ZSBmYWN0b3J5PzogQ29tcG9uZW50RmFjdG9yeTxhbnk+O1xuICBwcml2YXRlIHJlZnM6IERpY3Rpb25hcnk8Q29tcG9uZW50UmVmPGFueT4gfCB1bmRlZmluZWQ+ID0ge307XG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTa2lwU2VsZigpIHByaXZhdGUgcGFyZW50SW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgcnVudGltZVNlcnZpY2U6IFJ1bnRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxlbWVudENvbnRleHQ6IEVsZW1lbnRDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIGlvUHJvdmlkZXJTZXJ2aWNlOiBJT1Byb3ZpZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudENvbnRleHQubWV0YWRhdGEgPSB0aGlzLm1ldGE7XG4gICAgdGhpcy5mYWN0b3J5ID0gdGhpcy5tZXRhLnBhdGggPyB0aGlzLnJ1bnRpbWVTZXJ2aWNlLmNvbXBvbmVudEZhY3Rvcmllc1t0aGlzLm1ldGEucGF0aF0gOiB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lDb21wb25lbnRzKCk7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb21wb25lbnRzKCk6IHZvaWQge1xuICAgIGNvbnN0IG1vZGVsTWV0YSA9IHRoaXMubWV0YS5tb2RlbDtcblxuICAgIGlmICghbW9kZWxNZXRhKSB7XG4gICAgICB0aGlzLnJlZnNbVVVJRC5VVUlEKCldID0gdGhpcy5jcmVhdGVDb21wb25lbnQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobW9kZWxNZXRhLmxpbmVJdGVtKSB7XG4gICAgICB0aGlzLmNyZWF0ZUZyb21MaW5lSXRlbShtb2RlbE1ldGEubGluZUl0ZW0pO1xuICAgIH0gZWxzZSBpZiAobW9kZWxNZXRhLnBhdGgpIHtcbiAgICAgIHRoaXMuY3JlYXRlRnJvbVBhdGgobW9kZWxNZXRhLnBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRnJvbVBhdGgocGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgYXJyYXkkID0gdGhpcy5pb1Byb3ZpZGVyU2VydmljZS5jb25uZWN0KHRoaXMubWV0YSwgJ2NoaWxkcmVuJCcsIHBhdGgpO1xuXG4gICAgYXJyYXkkPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKGNoaWxkcmVuID0+IHtcbiAgICAgIGlmICghaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnByb2Nlc3NDaGlsZHJlbihjaGlsZHJlbik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldE1vZGVsQ29tcG9uZW50KCk6IEVsZW1lbnRSZW5kZXJlckNvbXBvbmVudCB8IG51bGwge1xuICAgIGxldCBjb21wb25lbnQ6IEVsZW1lbnRSZW5kZXJlckNvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuICAgIGxldCBpbmplY3RvciA9IHRoaXMucGFyZW50SW5qZWN0b3I7XG5cbiAgICB3aGlsZSAoIWNvbXBvbmVudCkge1xuICAgICAgY29uc3QgcGFyZW50Q29tcCA9IGluamVjdG9yLmdldChFbGVtZW50UmVuZGVyZXJDb21wb25lbnQsIG51bGwpO1xuXG4gICAgICBpZiAocGFyZW50Q29tcD8ubWV0YS5tb2RlbCkge1xuICAgICAgICBjb21wb25lbnQgPSBwYXJlbnRDb21wO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKHBhcmVudENvbXApIHtcbiAgICAgICAgaW5qZWN0b3IgPSBwYXJlbnRDb21wLnBhcmVudEluamVjdG9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBvbmVudDtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRnJvbUxpbmVJdGVtKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmVudENvbXAgPSB0aGlzLmdldE1vZGVsQ29tcG9uZW50KCk7XG4gICAgY29uc3QgcGFyZW50UGF0aCA9IHBhcmVudENvbXA/Lm1ldGEubW9kZWw/LmxpbmVJdGVtO1xuXG4gICAgY29uc3QgcGF0aEJsb2NrcyA9IHBhcnNlQm91bmRQYXRoKHBhdGgpLnJldmVyc2UoKTtcbiAgICBjb25zdCB7IHByb3BlcnR5LCBuYW1lIH0gPSBwYXRoQmxvY2tzWzFdID8/IHt9O1xuICAgIGNvbnN0IGZpbmFsUGF0aCA9IHBhdGhCbG9ja3NbMF07XG5cbiAgICBjb25zdCBjaGlsZHJlbiQgPSB0aGlzLmdldFBhcmVudExpbmVJdGVtJChwYXJlbnRDb21wKS5waXBlKFxuICAgICAgbWFwKG1vZGVsID0+IHtcbiAgICAgICAgaWYgKCFtb2RlbCkge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wZXJ0eSA9PT0gJ3BvcnRzJyAmJiAhZmluYWxQYXRoLnByb3BlcnR5ICYmIHBhcmVudFBhdGggIT09IHBhdGgpIHtcbiAgICAgICAgICByZXR1cm4gbW9kZWwubGluZUl0ZW1zLmZpbHRlcigoeyBwb3J0IH0pID0+IHBvcnQgPT09IG5hbWUpID8/IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFttb2RlbF07XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgY2hpbGRyZW4kLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoY2hpbGRyZW4gPT4ge1xuICAgICAgdGhpcy5wcm9jZXNzQ2hpbGRyZW4oY2hpbGRyZW4pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzQ2hpbGRyZW4oY2hpbGRyZW46IGFueVtdKTogdm9pZCB7XG4gICAgY29uc3QgcmVmcyA9IGNoaWxkcmVuLnJlZHVjZSgoYWNjLCBkYXRhLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gU3RyaW5nKGRhdGE/LmlkID8/IFVVSUQuVVVJRCgpKTtcbiAgICAgIGNvbnN0IGV4aXN0aW5nUmVmID0gdGhpcy5yZWZzW2tleV07XG5cbiAgICAgIGNvbnN0IHJlZiA9IGV4aXN0aW5nUmVmID8/IHRoaXMuY3JlYXRlQ29tcG9uZW50KGRhdGEsIGluZGV4KTtcbiAgICAgIGlmIChleGlzdGluZ1JlZikge1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudChleGlzdGluZ1JlZiwgZGF0YSwgaW5kZXgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVmID8geyAuLi5hY2MsIFtrZXldOiByZWYgfSA6IGFjYztcbiAgICB9LCB7fSBhcyBEaWN0aW9uYXJ5PENvbXBvbmVudFJlZjxhbnk+Pik7XG5cbiAgICBjb25zdCBleGlzdGluZ0tleXMgPSBPYmplY3Qua2V5cyh0aGlzLnJlZnMpO1xuICAgIGNvbnN0IG5ld0tleXMgPSBPYmplY3Qua2V5cyhyZWZzKTtcblxuICAgIHB1bGwoZXhpc3RpbmdLZXlzLCAuLi5uZXdLZXlzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICB0aGlzLmRlc3Ryb3lDb21wb25lbnQoa2V5KTtcbiAgICB9KTtcblxuICAgIHRoaXMucmVmcyA9IHJlZnM7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXJlbnRMaW5lSXRlbSQocGFyZW50Q29tcDogRWxlbWVudFJlbmRlcmVyQ29tcG9uZW50IHwgbnVsbCk6IE9ic2VydmFibGU8TGluZUl0ZW0gfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBwYXJlbnRSZWZzID0gT2JqZWN0LnZhbHVlcyhwYXJlbnRDb21wPy5yZWZzID8/IHt9KTtcbiAgICBjb25zdCBwYXJlbnRSZWYgPSBwYXJlbnRSZWZzLmZpbmQocmVmID0+XG4gICAgICAocmVmPy5sb2NhdGlvbi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KT8uY29udGFpbnModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLFxuICAgICk7XG5cbiAgICBjb25zdCBwYXJlbnRNb2RlbCQgPSBwYXJlbnRSZWY/Lmluc3RhbmNlLm1vZGVsJDtcblxuICAgIHJldHVybiBwYXJlbnRNb2RlbCQgPz8gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5nZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29tcG9uZW50KGRhdGE/OiBhbnksIGluZGV4PzogbnVtYmVyKTogQ29tcG9uZW50UmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5mYWN0b3J5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5lbD8uY3JlYXRlQ29tcG9uZW50KHRoaXMuZmFjdG9yeSwgaW5kZXgpO1xuXG4gICAgaWYgKGNvbXBvbmVudFJlZikge1xuICAgICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCduYW1lJywgdGhpcy5tZXRhLm5hbWUpO1xuICAgICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdwYXRoJywgdGhpcy5tZXRhLnBhdGgpO1xuICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlPy5tb2RlbCQubmV4dChkYXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9uZW50UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb21wb25lbnQocmVmOiBDb21wb25lbnRSZWY8YW55PiwgZGF0YTogYW55LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgcmVmLmluc3RhbmNlLm1vZGVsJC5uZXh0KGRhdGEpO1xuXG4gICAgaWYgKHRoaXMuZWwgJiYgdGhpcy5lbC5pbmRleE9mKHJlZi5ob3N0VmlldykgIT09IGluZGV4KSB7XG4gICAgICB0aGlzLmVsLm1vdmUocmVmLmhvc3RWaWV3LCBpbmRleCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95Q29tcG9uZW50KGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5yZWZzW2tleV0/LmRlc3Ryb3koKTtcbiAgICBkZWxldGUgdGhpcy5yZWZzW2tleV07XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lDb21wb25lbnRzKCk6IHZvaWQge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy5yZWZzKS5mb3JFYWNoKHJlZiA9PiByZWY/LmRlc3Ryb3koKSk7XG4gICAgdGhpcy5yZWZzID0ge307XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZWw+PC9uZy10ZW1wbGF0ZT5cbiJdfQ==
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY29tcG9uZW50cy9lbGVtZW50LXJlbmRlcmVyL2VsZW1lbnQtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL2NvbXBvbmVudHMvZWxlbWVudC1yZW5kZXJlci9lbGVtZW50LXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFHTCxRQUFRLEVBRVIsU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQVksSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFjLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkQsT0FBTyxFQUFjLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLElBQUksQ0FBQztBQUV0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFTeEQsTUFBTSxPQUFPLHdCQUF3QjtJQVNuQyxZQUNzQixjQUF3QixFQUNwQyxjQUE4QixF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QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMscUJBQXFCLENBQUM7OzBCQVkvQixRQUFRO3lPQVR1RCxFQUFFO3NCQUFuRSxTQUFTO3VCQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUV6QyxJQUFJO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgU2tpcFNlbGYsXG4gIFR5cGUsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaW5lSXRlbSwgVVVJRCB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5LCBpc0FycmF5LCBwdWxsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4nO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vLi4vZW5naW5lL21vZGVscy9lbnRpdHknO1xuaW1wb3J0IHsgUnVudGltZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3J1bnRpbWUvc2VydmljZXMvcnVudGltZS5zZXJ2aWNlJztcbmltcG9ydCB7IEVsZW1lbnRDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VsZW1lbnQtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IElPUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW8tcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi8uLi90eXBlcy9jb21tb24udHlwZXMnO1xuaW1wb3J0IHsgcGFyc2VCb3VuZFBhdGggfSBmcm9tICcuLi8uLi91dGlscy9wYXRoLnV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmwtY21zLWVsZW1lbnQtcmVuZGVyZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxlbWVudC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZW1lbnQtcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW0VsZW1lbnRDb250ZXh0U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRSZW5kZXJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnZWwnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgZWw/OiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBtZXRhITogRWxlbWVudE1ldGFkYXRhO1xuXG4gIHByaXZhdGUgdHlwZT86IFR5cGU8RW50aXR5PjtcbiAgcHJpdmF0ZSByZWZzOiBEaWN0aW9uYXJ5PENvbXBvbmVudFJlZjxFbnRpdHk+IHwgdW5kZWZpbmVkPiA9IHt9O1xuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2tpcFNlbGYoKSBwcml2YXRlIHBhcmVudEluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJ1bnRpbWVTZXJ2aWNlOiBSdW50aW1lU2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1lbnRDb250ZXh0OiBFbGVtZW50Q29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpb1Byb3ZpZGVyU2VydmljZTogSU9Qcm92aWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnRDb250ZXh0Lm1ldGFkYXRhID0gdGhpcy5tZXRhO1xuICAgIHRoaXMudHlwZSA9IHRoaXMubWV0YS5wYXRoID8gdGhpcy5ydW50aW1lU2VydmljZS5jb21wb25lbnRUeXBlc1t0aGlzLm1ldGEucGF0aF0gOiB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lDb21wb25lbnRzKCk7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb21wb25lbnRzKCk6IHZvaWQge1xuICAgIGNvbnN0IG1vZGVsTWV0YSA9IHRoaXMubWV0YS5tb2RlbDtcblxuICAgIGlmICghbW9kZWxNZXRhKSB7XG4gICAgICB0aGlzLnJlZnNbVVVJRC5VVUlEKCldID0gdGhpcy5jcmVhdGVDb21wb25lbnQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobW9kZWxNZXRhLmxpbmVJdGVtKSB7XG4gICAgICB0aGlzLmNyZWF0ZUZyb21MaW5lSXRlbShtb2RlbE1ldGEubGluZUl0ZW0pO1xuICAgIH0gZWxzZSBpZiAobW9kZWxNZXRhLnBhdGgpIHtcbiAgICAgIHRoaXMuY3JlYXRlRnJvbVBhdGgobW9kZWxNZXRhLnBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRnJvbVBhdGgocGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgYXJyYXkkID0gdGhpcy5pb1Byb3ZpZGVyU2VydmljZS5jb25uZWN0KHRoaXMubWV0YSwgJ2NoaWxkcmVuJCcsIHBhdGgpO1xuXG4gICAgYXJyYXkkPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKGNoaWxkcmVuID0+IHtcbiAgICAgIGlmICghaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnByb2Nlc3NDaGlsZHJlbihjaGlsZHJlbik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldE1vZGVsQ29tcG9uZW50KCk6IEVsZW1lbnRSZW5kZXJlckNvbXBvbmVudCB8IG51bGwge1xuICAgIGxldCBjb21wb25lbnQ6IEVsZW1lbnRSZW5kZXJlckNvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuICAgIGxldCBpbmplY3RvciA9IHRoaXMucGFyZW50SW5qZWN0b3I7XG5cbiAgICB3aGlsZSAoIWNvbXBvbmVudCkge1xuICAgICAgY29uc3QgcGFyZW50Q29tcCA9IGluamVjdG9yLmdldChFbGVtZW50UmVuZGVyZXJDb21wb25lbnQsIG51bGwpO1xuXG4gICAgICBpZiAocGFyZW50Q29tcD8ubWV0YS5tb2RlbCkge1xuICAgICAgICBjb21wb25lbnQgPSBwYXJlbnRDb21wO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKHBhcmVudENvbXApIHtcbiAgICAgICAgaW5qZWN0b3IgPSBwYXJlbnRDb21wLnBhcmVudEluamVjdG9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBvbmVudDtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRnJvbUxpbmVJdGVtKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmVudENvbXAgPSB0aGlzLmdldE1vZGVsQ29tcG9uZW50KCk7XG4gICAgY29uc3QgcGFyZW50UGF0aCA9IHBhcmVudENvbXA/Lm1ldGEubW9kZWw/LmxpbmVJdGVtO1xuXG4gICAgY29uc3QgcGF0aEJsb2NrcyA9IHBhcnNlQm91bmRQYXRoKHBhdGgpLnJldmVyc2UoKTtcbiAgICBjb25zdCB7IHByb3BlcnR5LCBuYW1lIH0gPSBwYXRoQmxvY2tzWzFdID8/IHt9O1xuICAgIGNvbnN0IGZpbmFsUGF0aCA9IHBhdGhCbG9ja3NbMF07XG5cbiAgICBjb25zdCBjaGlsZHJlbiQgPSB0aGlzLmdldFBhcmVudExpbmVJdGVtJChwYXJlbnRDb21wKS5waXBlKFxuICAgICAgbWFwKG1vZGVsID0+IHtcbiAgICAgICAgaWYgKCFtb2RlbCkge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wZXJ0eSA9PT0gJ3BvcnRzJyAmJiAhZmluYWxQYXRoLnByb3BlcnR5ICYmIHBhcmVudFBhdGggIT09IHBhdGgpIHtcbiAgICAgICAgICByZXR1cm4gbW9kZWwubGluZUl0ZW1zLmZpbHRlcigoeyBwb3J0IH0pID0+IHBvcnQgPT09IG5hbWUpID8/IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFttb2RlbF07XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgY2hpbGRyZW4kLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoY2hpbGRyZW4gPT4ge1xuICAgICAgdGhpcy5wcm9jZXNzQ2hpbGRyZW4oY2hpbGRyZW4pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzQ2hpbGRyZW4oY2hpbGRyZW46IGFueVtdKTogdm9pZCB7XG4gICAgdGhpcy5ydW50aW1lU2VydmljZS5tb2R1bGVSZWZzWzBdLmluamVjdG9yLnJ1bkluQ29udGV4dCgoKSA9PiB7XG4gICAgICBjb25zdCByZWZzID0gY2hpbGRyZW4ucmVkdWNlKChhY2M6IERpY3Rpb25hcnk8Q29tcG9uZW50UmVmPEVudGl0eT4+LCBkYXRhLCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSBTdHJpbmcoZGF0YT8uaWQgPz8gVVVJRC5VVUlEKCkpO1xuICAgICAgICBjb25zdCBleGlzdGluZ1JlZiA9IHRoaXMucmVmc1trZXldO1xuXG4gICAgICAgIGNvbnN0IHJlZiA9IGV4aXN0aW5nUmVmID8/IHRoaXMuY3JlYXRlQ29tcG9uZW50KGRhdGEsIGluZGV4KTtcbiAgICAgICAgaWYgKGV4aXN0aW5nUmVmKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVDb21wb25lbnQoZXhpc3RpbmdSZWYsIGRhdGEsIGluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZWYgPyB7IC4uLmFjYywgW2tleV06IHJlZiB9IDogYWNjO1xuICAgICAgfSwge30pO1xuXG4gICAgICBjb25zdCBleGlzdGluZ0tleXMgPSBPYmplY3Qua2V5cyh0aGlzLnJlZnMpO1xuICAgICAgY29uc3QgbmV3S2V5cyA9IE9iamVjdC5rZXlzKHJlZnMpO1xuXG4gICAgICBwdWxsKGV4aXN0aW5nS2V5cywgLi4ubmV3S2V5cykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICB0aGlzLmRlc3Ryb3lDb21wb25lbnQoa2V5KTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJlZnMgPSByZWZzO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXJlbnRMaW5lSXRlbSQocGFyZW50Q29tcDogRWxlbWVudFJlbmRlcmVyQ29tcG9uZW50IHwgbnVsbCk6IE9ic2VydmFibGU8TGluZUl0ZW0gfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBwYXJlbnRSZWZzID0gT2JqZWN0LnZhbHVlcyhwYXJlbnRDb21wPy5yZWZzID8/IHt9KTtcbiAgICBjb25zdCBwYXJlbnRSZWYgPSBwYXJlbnRSZWZzLmZpbmQocmVmID0+XG4gICAgICAocmVmPy5sb2NhdGlvbi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KT8uY29udGFpbnModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLFxuICAgICk7XG5cbiAgICBsZXQgcGFyZW50TW9kZWwkO1xuICAgIGlmIChwYXJlbnRSZWY/Lmluc3RhbmNlIGluc3RhbmNlb2YgRWxlbWVudENvbXBvbmVudCkge1xuICAgICAgcGFyZW50TW9kZWwkID0gcGFyZW50UmVmPy5pbnN0YW5jZS5tb2RlbCQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmVudE1vZGVsJCA/PyB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb21wb25lbnQoZGF0YT86IHVua25vd24sIGluZGV4PzogbnVtYmVyKTogQ29tcG9uZW50UmVmPEVudGl0eT4gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy50eXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5lbD8uY3JlYXRlQ29tcG9uZW50KHRoaXMudHlwZSwgeyBpbmRleCB9KTtcblxuICAgIGlmIChjb21wb25lbnRSZWYpIHtcbiAgICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnbmFtZScsIHRoaXMubWV0YS5uYW1lKTtcbiAgICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgncGF0aCcsIHRoaXMubWV0YS5wYXRoKTtcblxuICAgICAgaWYgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBpbnN0YW5jZW9mIEVsZW1lbnRDb21wb25lbnQpIHtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm1vZGVsJC5uZXh0KGRhdGEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbXBvbmVudChyZWY6IENvbXBvbmVudFJlZjxFbnRpdHk+LCBkYXRhOiB1bmtub3duLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHJlZi5pbnN0YW5jZSBpbnN0YW5jZW9mIEVsZW1lbnRDb21wb25lbnQpIHtcbiAgICAgIHJlZi5pbnN0YW5jZS5tb2RlbCQubmV4dChkYXRhKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lbCAmJiB0aGlzLmVsLmluZGV4T2YocmVmLmhvc3RWaWV3KSAhPT0gaW5kZXgpIHtcbiAgICAgIHRoaXMuZWwubW92ZShyZWYuaG9zdFZpZXcsIGluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lDb21wb25lbnQoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnJlZnNba2V5XT8uZGVzdHJveSgpO1xuICAgIGRlbGV0ZSB0aGlzLnJlZnNba2V5XTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveUNvbXBvbmVudHMoKTogdm9pZCB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnJlZnMpLmZvckVhY2gocmVmID0+IHJlZj8uZGVzdHJveSgpKTtcbiAgICB0aGlzLnJlZnMgPSB7fTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNlbD48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,4 +1,4 @@
1
- import { Directive, Input, TemplateRef } from '@angular/core';
1
+ import { Directive, Input, NgModule, TemplateRef } from '@angular/core';
2
2
  import { TemplatesService } from '../services/templates.service';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../services/templates.service";
@@ -23,4 +23,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
23
23
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i1.TemplatesService }]; }, propDecorators: { customTemplate: [{
24
24
  type: Input
25
25
  }] } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRlbXBsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9kaXJlY3RpdmVzL2N1c3RvbS10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBRWpFLDhEQUE4RDtBQUU5RCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQW9CLFdBQTZCLEVBQVUsZ0JBQWtDO1FBQXpFLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDO0lBSTFGLGVBQWU7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4RSxDQUFDOztvSEFYVSx1QkFBdUI7d0dBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQURuQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO2lJQUl6QixjQUFjO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlbXBsYXRlc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90ZW1wbGF0ZXMuc2VydmljZSc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbY3VzdG9tVGVtcGxhdGVdJyB9KVxuZXhwb3J0IGNsYXNzIEN1c3RvbVRlbXBsYXRlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sIHByaXZhdGUgdGVtcGxhdGVzU2VydmljZTogVGVtcGxhdGVzU2VydmljZSkge31cblxuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tVGVtcGxhdGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jdXN0b21UZW1wbGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudGVtcGxhdGVzU2VydmljZS5yZWdpc3Rlcih0aGlzLmN1c3RvbVRlbXBsYXRlLCB0aGlzLnRlbXBsYXRlUmVmKTtcbiAgfVxufVxuIl19
26
+ export class CustomTemplateDirectiveModule {
27
+ }
28
+ CustomTemplateDirectiveModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CustomTemplateDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
29
+ CustomTemplateDirectiveModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: CustomTemplateDirectiveModule, declarations: [CustomTemplateDirective], exports: [CustomTemplateDirective] });
30
+ CustomTemplateDirectiveModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CustomTemplateDirectiveModule });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CustomTemplateDirectiveModule, decorators: [{
32
+ type: NgModule,
33
+ args: [{
34
+ declarations: [CustomTemplateDirective],
35
+ exports: [CustomTemplateDirective],
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRlbXBsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9kaXJlY3RpdmVzL2N1c3RvbS10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQUVqRSw4REFBOEQ7QUFFOUQsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUFvQixXQUFpQyxFQUFVLGdCQUFrQztRQUE3RSxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBQUcsQ0FBQztJQUk5RixlQUFlO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEUsQ0FBQzs7b0hBWFUsdUJBQXVCO3dHQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTtpSUFJekIsY0FBYztzQkFBN0IsS0FBSzs7QUFlUixNQUFNLE9BQU8sNkJBQTZCOzswSEFBN0IsNkJBQTZCOzJIQUE3Qiw2QkFBNkIsaUJBbEI3Qix1QkFBdUIsYUFBdkIsdUJBQXVCOzJIQWtCdkIsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBSnpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3ZDLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgSW5wdXQsIE5nTW9kdWxlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVtcGxhdGVzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RlbXBsYXRlcy5zZXJ2aWNlJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tjdXN0b21UZW1wbGF0ZV0nIH0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tVGVtcGxhdGVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4sIHByaXZhdGUgdGVtcGxhdGVzU2VydmljZTogVGVtcGxhdGVzU2VydmljZSkge31cblxuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tVGVtcGxhdGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jdXN0b21UZW1wbGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudGVtcGxhdGVzU2VydmljZS5yZWdpc3Rlcih0aGlzLmN1c3RvbVRlbXBsYXRlLCB0aGlzLnRlbXBsYXRlUmVmKTtcbiAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDdXN0b21UZW1wbGF0ZURpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtDdXN0b21UZW1wbGF0ZURpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbVRlbXBsYXRlRGlyZWN0aXZlTW9kdWxlIHt9XG4iXX0=
@@ -11,7 +11,6 @@ export class FederatedComponent {
11
11
  constructor(injector) {
12
12
  this.injector = injector;
13
13
  this.isLoading$ = new BehaviorSubject(false);
14
- // configs
15
14
  this.suppressLoading = defaultOptions.suppressLoading;
16
15
  this.loadingLabel = defaultOptions.loadingLabel;
17
16
  }
@@ -61,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
61
60
  }], options: [{
62
61
  type: Input
63
62
  }] } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVkZXJhdGVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9tb2R1bGVzL2ZlZGVyYXRlZC9mZWRlcmF0ZWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL21vZHVsZXMvZmVkZXJhdGVkL2ZlZGVyYXRlZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV6RSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUlMLFNBQVMsRUFDVCxjQUFjLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBVXBFLE1BQU0sT0FBTyxrQkFBa0I7SUFpQjdCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFSL0IsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9DLFVBQVU7UUFDSCxvQkFBZSxHQUFHLGNBQWMsQ0FBQyxlQUFlLENBQUM7UUFDakQsaUJBQVksR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDO0lBSVQsQ0FBQztJQUVuQyxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2hDO1FBRUQsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsSUFBSSxjQUFjLENBQUMsZUFBZSxDQUFDO1lBQ3ZGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLElBQUksY0FBYyxDQUFDLFlBQVksQ0FBQztTQUMvRTtJQUNILENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLGVBQWU7UUFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNsRSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRXhFLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbEMsT0FBTztTQUNSO1FBRUQsZ0JBQWdCLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNoRixNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxRSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FDN0QsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLGFBQWEsRUFDdEMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQzNCLENBQUM7WUFFRixZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBRXZDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OytHQXREVSxrQkFBa0I7bUdBQWxCLGtCQUFrQix1T0FDbEIsc0JBQXNCLG1GQzNCbkMsc0pBR0E7MkZEdUJhLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFFRSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU07K0ZBR2EsSUFBSTtzQkFBL0QsU0FBUzt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRW5DLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvYWRSZW1vdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci1hcmNoaXRlY3RzL21vZHVsZS1mZWRlcmF0aW9uJztcbmltcG9ydCB7fSBmcm9tICdAYW5ndWxhci1hcmNoaXRlY3RzL21vZHVsZS1mZWRlcmF0aW9uLXJ1bnRpbWUnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBjcmVhdGVOZ01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlZmF1bHRPcHRpb25zIH0gZnJvbSAnLi9kZWZhdWx0LW9wdGlvbnMnO1xuaW1wb3J0IHsgRmVkZXJhdGVkSG9zdERpcmVjdGl2ZSB9IGZyb20gJy4vZmVkZXJhdGVkLWhvc3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZlZGVyYXRlZENvbXBvbmVudEluc3RhbmNlLCBGZWRlcmF0ZWRNb2R1bGVPcHRpb25zIH0gZnJvbSAnLi9mZWRlcmF0ZWQudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICd2ZWxvY2UtaG9zdC1mZWRlcmF0ZWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmVkZXJhdGVkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmVkZXJhdGVkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGZWRlcmF0ZWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBWaWV3Q2hpbGQoRmVkZXJhdGVkSG9zdERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIGhvc3QhOiBGZWRlcmF0ZWRIb3N0RGlyZWN0aXZlO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyByZW1vdGVFbnRyeT86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHJlbW90ZU5hbWU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBleHBvc2VkTW9kdWxlPzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgZGF0YT86IGFueTtcbiAgQElucHV0KCkgcHVibGljIG9wdGlvbnM/OiBGZWRlcmF0ZWRNb2R1bGVPcHRpb25zO1xuXG4gIHB1YmxpYyBpc0xvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgLy8gY29uZmlnc1xuICBwdWJsaWMgc3VwcHJlc3NMb2FkaW5nID0gZGVmYXVsdE9wdGlvbnMuc3VwcHJlc3NMb2FkaW5nO1xuICBwdWJsaWMgbG9hZGluZ0xhYmVsID0gZGVmYXVsdE9wdGlvbnMubG9hZGluZ0xhYmVsO1xuXG4gIHByaXZhdGUgaW5zdGFuY2U/OiBGZWRlcmF0ZWRDb21wb25lbnRJbnN0YW5jZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydkYXRhJ10gJiYgdGhpcy5pbnN0YW5jZSkge1xuICAgICAgdGhpcy5pbnN0YW5jZS5kYXRhID0gdGhpcy5kYXRhO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWydvcHRpb25zJ10pIHtcbiAgICAgIHRoaXMuc3VwcHJlc3NMb2FkaW5nID0gdGhpcy5vcHRpb25zPy5zdXBwcmVzc0xvYWRpbmcgPz8gZGVmYXVsdE9wdGlvbnMuc3VwcHJlc3NMb2FkaW5nO1xuICAgICAgdGhpcy5sb2FkaW5nTGFiZWwgPSB0aGlzLm9wdGlvbnM/LmxvYWRpbmdMYWJlbCA/PyBkZWZhdWx0T3B0aW9ucy5sb2FkaW5nTGFiZWw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNMb2FkaW5nJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCByZW1vdGVFbnRyeSA9IHRoaXMub3B0aW9ucz8ucmVtb3RlRW50cnkgPz8gdGhpcy5yZW1vdGVFbnRyeTtcbiAgICBjb25zdCBleHBvc2VkTW9kdWxlID0gdGhpcy5vcHRpb25zPy5leHBvc2VkTW9kdWxlID8/IHRoaXMuZXhwb3NlZE1vZHVsZTtcblxuICAgIGlmICghcmVtb3RlRW50cnkgfHwgIWV4cG9zZWRNb2R1bGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsb2FkUmVtb3RlTW9kdWxlKHsgdHlwZTogJ21vZHVsZScsIHJlbW90ZUVudHJ5LCBleHBvc2VkTW9kdWxlIH0pLnRoZW4oZmVkZXJhdGVkID0+IHtcbiAgICAgIGNvbnN0IG1vZHVsZVJlZiA9IGNyZWF0ZU5nTW9kdWxlKGZlZGVyYXRlZFtleHBvc2VkTW9kdWxlXSwgdGhpcy5pbmplY3Rvcik7XG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmhvc3Qudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQ8RmVkZXJhdGVkQ29tcG9uZW50SW5zdGFuY2U+KFxuICAgICAgICBmZWRlcmF0ZWRbZXhwb3NlZE1vZHVsZV0ucm9vdENvbXBvbmVudCxcbiAgICAgICAgeyBuZ01vZHVsZVJlZjogbW9kdWxlUmVmIH0sXG4gICAgICApO1xuXG4gICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZGF0YSA9IHRoaXMuZGF0YTtcblxuICAgICAgdGhpcy5vcHRpb25zPy5vblJlYWR5Py4oKTtcbiAgICAgIHRoaXMuaXNMb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIHZsRmVkZXJhdGVkSG9zdD48L25nLXRlbXBsYXRlPlxuXG48dmwtbG9hZGVyICpuZ0lmPVwiIXN1cHByZXNzTG9hZGluZyAmJiAoaXNMb2FkaW5nJCB8IGFzeW5jKVwiIFtsYWJlbF09XCJsb2FkaW5nTGFiZWxcIj48L3ZsLWxvYWRlcj5cbiJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVkZXJhdGVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9tb2R1bGVzL2ZlZGVyYXRlZC9mZWRlcmF0ZWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL21vZHVsZXMvZmVkZXJhdGVkL2ZlZGVyYXRlZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV6RSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUlMLFNBQVMsRUFDVCxjQUFjLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBVXBFLE1BQU0sT0FBTyxrQkFBa0I7SUFlN0IsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQU4vQixlQUFVLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsb0JBQWUsR0FBRyxjQUFjLENBQUMsZUFBZSxDQUFDO1FBQ2pELGlCQUFZLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQztJQUlULENBQUM7SUFFbkMsV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNoQztRQUVELElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxlQUFlLElBQUksY0FBYyxDQUFDLGVBQWUsQ0FBQztZQUN2RixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxJQUFJLGNBQWMsQ0FBQyxZQUFZLENBQUM7U0FDL0U7SUFDSCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTSxlQUFlO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDbEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUV4RSxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2xDLE9BQU87U0FDUjtRQUVELGdCQUFnQixDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDaEYsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQzdELFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxhQUFhLEVBQ3RDLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUMzQixDQUFDO1lBRUYsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUV2QyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzsrR0FwRFUsa0JBQWtCO21HQUFsQixrQkFBa0IsdU9BQ2xCLHNCQUFzQixtRkMzQm5DLHNKQUdBOzJGRHVCYSxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBRUUsdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNOytGQUdhLElBQUk7c0JBQS9ELFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVuQyxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb2FkUmVtb3RlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXItYXJjaGl0ZWN0cy9tb2R1bGUtZmVkZXJhdGlvbic7XG5pbXBvcnQge30gZnJvbSAnQGFuZ3VsYXItYXJjaGl0ZWN0cy9tb2R1bGUtZmVkZXJhdGlvbi1ydW50aW1lJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgY3JlYXRlTmdNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWZhdWx0T3B0aW9ucyB9IGZyb20gJy4vZGVmYXVsdC1vcHRpb25zJztcbmltcG9ydCB7IEZlZGVyYXRlZEhvc3REaXJlY3RpdmUgfSBmcm9tICcuL2ZlZGVyYXRlZC1ob3N0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGZWRlcmF0ZWRDb21wb25lbnRJbnN0YW5jZSwgRmVkZXJhdGVkTW9kdWxlT3B0aW9ucyB9IGZyb20gJy4vZmVkZXJhdGVkLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAndmVsb2NlLWhvc3QtZmVkZXJhdGVkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlZGVyYXRlZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZlZGVyYXRlZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRmVkZXJhdGVkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKEZlZGVyYXRlZEhvc3REaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBob3N0ITogRmVkZXJhdGVkSG9zdERpcmVjdGl2ZTtcblxuICBASW5wdXQoKSBwdWJsaWMgcmVtb3RlRW50cnk/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyByZW1vdGVOYW1lPzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgZXhwb3NlZE1vZHVsZT86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGRhdGE/OiB1bmtub3duO1xuICBASW5wdXQoKSBwdWJsaWMgb3B0aW9ucz86IEZlZGVyYXRlZE1vZHVsZU9wdGlvbnM7XG5cbiAgcHVibGljIGlzTG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIHN1cHByZXNzTG9hZGluZyA9IGRlZmF1bHRPcHRpb25zLnN1cHByZXNzTG9hZGluZztcbiAgcHVibGljIGxvYWRpbmdMYWJlbCA9IGRlZmF1bHRPcHRpb25zLmxvYWRpbmdMYWJlbDtcblxuICBwcml2YXRlIGluc3RhbmNlPzogRmVkZXJhdGVkQ29tcG9uZW50SW5zdGFuY2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHt9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZGF0YSddICYmIHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIHRoaXMuaW5zdGFuY2UuZGF0YSA9IHRoaXMuZGF0YTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snb3B0aW9ucyddKSB7XG4gICAgICB0aGlzLnN1cHByZXNzTG9hZGluZyA9IHRoaXMub3B0aW9ucz8uc3VwcHJlc3NMb2FkaW5nID8/IGRlZmF1bHRPcHRpb25zLnN1cHByZXNzTG9hZGluZztcbiAgICAgIHRoaXMubG9hZGluZ0xhYmVsID0gdGhpcy5vcHRpb25zPy5sb2FkaW5nTGFiZWwgPz8gZGVmYXVsdE9wdGlvbnMubG9hZGluZ0xhYmVsO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzTG9hZGluZyQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgcmVtb3RlRW50cnkgPSB0aGlzLm9wdGlvbnM/LnJlbW90ZUVudHJ5ID8/IHRoaXMucmVtb3RlRW50cnk7XG4gICAgY29uc3QgZXhwb3NlZE1vZHVsZSA9IHRoaXMub3B0aW9ucz8uZXhwb3NlZE1vZHVsZSA/PyB0aGlzLmV4cG9zZWRNb2R1bGU7XG5cbiAgICBpZiAoIXJlbW90ZUVudHJ5IHx8ICFleHBvc2VkTW9kdWxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbG9hZFJlbW90ZU1vZHVsZSh7IHR5cGU6ICdtb2R1bGUnLCByZW1vdGVFbnRyeSwgZXhwb3NlZE1vZHVsZSB9KS50aGVuKGZlZGVyYXRlZCA9PiB7XG4gICAgICBjb25zdCBtb2R1bGVSZWYgPSBjcmVhdGVOZ01vZHVsZShmZWRlcmF0ZWRbZXhwb3NlZE1vZHVsZV0sIHRoaXMuaW5qZWN0b3IpO1xuICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5ob3N0LnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50PEZlZGVyYXRlZENvbXBvbmVudEluc3RhbmNlPihcbiAgICAgICAgZmVkZXJhdGVkW2V4cG9zZWRNb2R1bGVdLnJvb3RDb21wb25lbnQsXG4gICAgICAgIHsgbmdNb2R1bGVSZWY6IG1vZHVsZVJlZiB9LFxuICAgICAgKTtcblxuICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmRhdGEgPSB0aGlzLmRhdGE7XG5cbiAgICAgIHRoaXMub3B0aW9ucz8ub25SZWFkeT8uKCk7XG4gICAgICB0aGlzLmlzTG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSB2bEZlZGVyYXRlZEhvc3Q+PC9uZy10ZW1wbGF0ZT5cblxuPHZsLWxvYWRlciAqbmdJZj1cIiFzdXBwcmVzc0xvYWRpbmcgJiYgKGlzTG9hZGluZyQgfCBhc3luYylcIiBbbGFiZWxdPVwibG9hZGluZ0xhYmVsXCI+PC92bC1sb2FkZXI+XG4iXX0=