ngx-rs-ant 1.2.0 → 1.2.1

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.
@@ -1,6 +1,6 @@
1
- import { OnInit, ViewContainerRef } from '@angular/core';
1
+ import { OnChanges, OnDestroy, OnInit, SimpleChanges, ViewContainerRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- export declare class BoxContainerComponent implements OnInit {
3
+ export declare class BoxContainerComponent implements OnInit, OnChanges, OnDestroy {
4
4
  editMode: boolean;
5
5
  config: any;
6
6
  model?: any;
@@ -8,7 +8,11 @@ export declare class BoxContainerComponent implements OnInit {
8
8
  readonly: boolean;
9
9
  tabViewContainerRef?: ViewContainerRef;
10
10
  boxContainerContent: ViewContainerRef;
11
+ private changeFilter;
11
12
  ngOnInit(): void;
13
+ ngOnChanges(changes: SimpleChanges): void;
14
+ ngOnDestroy(): void;
15
+ load(): void;
12
16
  static ɵfac: i0.ɵɵFactoryDeclaration<BoxContainerComponent, never>;
13
17
  static ɵcmp: i0.ɵɵComponentDeclaration<BoxContainerComponent, "rs-box-container", never, { "config": "config"; "model": "model"; "readonly": "readonly"; }, {}, never, never, false, never>;
14
18
  }
@@ -1,5 +1,6 @@
1
1
  import { Component, Input, ViewChild, ViewContainerRef } from '@angular/core';
2
2
  import { BoxItemComponent } from './box-item/box-item.component';
3
+ import { ChangeFilter } from "../util/change-filter";
3
4
  import * as i0 from "@angular/core";
4
5
  export class BoxContainerComponent {
5
6
  constructor() {
@@ -9,8 +10,22 @@ export class BoxContainerComponent {
9
10
  list: [{ type: 'blank', style: {} }]
10
11
  };
11
12
  this.readonly = false;
13
+ this.changeFilter = new ChangeFilter();
12
14
  }
13
15
  ngOnInit() {
16
+ this.load();
17
+ this.changeFilter.anyNotFirst(['config', 'model', 'readonly'], () => {
18
+ this.load();
19
+ });
20
+ }
21
+ ngOnChanges(changes) {
22
+ this.changeFilter.doFilter(changes);
23
+ }
24
+ ngOnDestroy() {
25
+ this.changeFilter.dispose();
26
+ }
27
+ load() {
28
+ this.boxContainerContent.clear();
14
29
  const boxItemComponentRef = this.boxContainerContent.createComponent(BoxItemComponent);
15
30
  const instance = boxItemComponentRef.instance;
16
31
  instance.boxContainer = this;
@@ -30,7 +45,7 @@ export class BoxContainerComponent {
30
45
  }
31
46
  }
32
47
  BoxContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BoxContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
- BoxContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BoxContainerComponent, selector: "rs-box-container", inputs: { config: "config", model: "model", readonly: "readonly" }, viewQueries: [{ propertyName: "boxContainerContent", first: true, predicate: ["boxContainerContent"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-container #boxContainerContent></ng-container>\n", styles: [":host{flex:1;position:relative;display:flex;flex-flow:row nowrap}\n"] });
48
+ BoxContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BoxContainerComponent, selector: "rs-box-container", inputs: { config: "config", model: "model", readonly: "readonly" }, viewQueries: [{ propertyName: "boxContainerContent", first: true, predicate: ["boxContainerContent"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container #boxContainerContent></ng-container>\n", styles: [":host{flex:1;position:relative;display:flex;flex-flow:row nowrap}\n"] });
34
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BoxContainerComponent, decorators: [{
35
50
  type: Component,
36
51
  args: [{ selector: 'rs-box-container', template: "<ng-container #boxContainerContent></ng-container>\n", styles: [":host{flex:1;position:relative;display:flex;flex-flow:row nowrap}\n"] }]
@@ -44,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
44
59
  type: ViewChild,
45
60
  args: ['boxContainerContent', { static: true, read: ViewContainerRef }]
46
61
  }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9ib3gtY29udGFpbmVyL2JveC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvYm94LWNvbnRhaW5lci9ib3gtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7QUFPL0QsTUFBTSxPQUFPLHFCQUFxQjtJQUxsQztRQU1FLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsV0FBTSxHQUFRO1lBQ1osU0FBUyxFQUFFLEtBQUs7WUFDaEIsSUFBSSxFQUFFLENBQUMsRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztTQUNuQyxDQUFDO1FBS0YsYUFBUSxHQUFZLEtBQUssQ0FBQztLQXFCM0I7SUFqQkMsUUFBUTtRQUNOLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQztRQUM5QyxRQUFRLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDOUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDakU7UUFDRCxRQUFRLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQzdDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7Z0JBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQzthQUN0QztpQkFBTTtnQkFDTCxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7YUFDbkM7WUFDRCxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrSEEvQlUscUJBQXFCO3NHQUFyQixxQkFBcUIsbU9BYXVCLGdCQUFnQiwyQ0NyQnpFLHNEQUNBOzJGRE9hLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxrQkFBa0I7OEJBTzVCLE1BQU07c0JBREwsS0FBSztnQkFNTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUdvRSxtQkFBbUI7c0JBQTVGLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCb3hJdGVtQ29tcG9uZW50fSBmcm9tICcuL2JveC1pdGVtL2JveC1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JzLWJveC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYm94LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JveC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCb3hDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBlZGl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBjb25maWc6IGFueSA9IHtcbiAgICBkaXJlY3Rpb246ICdyb3cnLFxuICAgIGxpc3Q6IFt7dHlwZTogJ2JsYW5rJywgc3R5bGU6IHt9fV1cbiAgfTtcbiAgQElucHV0KClcbiAgbW9kZWw/OiBhbnk7XG4gIHBhcmFtcz86IGFueTtcbiAgQElucHV0KClcbiAgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdGFiVmlld0NvbnRhaW5lclJlZj86IFZpZXdDb250YWluZXJSZWY7XG4gIEBWaWV3Q2hpbGQoJ2JveENvbnRhaW5lckNvbnRlbnQnLCB7c3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmfSkgYm94Q29udGFpbmVyQ29udGVudCE6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgYm94SXRlbUNvbXBvbmVudFJlZiA9IHRoaXMuYm94Q29udGFpbmVyQ29udGVudC5jcmVhdGVDb21wb25lbnQoQm94SXRlbUNvbXBvbmVudCk7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBib3hJdGVtQ29tcG9uZW50UmVmLmluc3RhbmNlO1xuICAgIGluc3RhbmNlLmJveENvbnRhaW5lciA9IHRoaXM7XG4gICAgaW5zdGFuY2UuY29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgaWYgKHRoaXMuZWRpdE1vZGUpIHtcbiAgICAgIGJveEl0ZW1Db21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5zdHlsZS5tYXJnaW4gPSAnOHB4JztcbiAgICB9XG4gICAgaW5zdGFuY2UubGVhdmVPbmVJdGVtPy5zdWJzY3JpYmUoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ2l0ZW0nKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oaW5zdGFuY2UuY29uZmlnLCBpdGVtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluc3RhbmNlLmNvbmZpZy5kaXJlY3Rpb24gPSAncm93JztcbiAgICAgIH1cbiAgICAgIGluc3RhbmNlLmxvYWQoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAjYm94Q29udGFpbmVyQ29udGVudD48L25nLWNvbnRhaW5lcj5cbiJdfQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9ib3gtY29udGFpbmVyL2JveC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvYm94LWNvbnRhaW5lci9ib3gtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUtMLFNBQVMsRUFDVCxnQkFBZ0IsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDOztBQU9uRCxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBTUUsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixXQUFNLEdBQVE7WUFDWixTQUFTLEVBQUUsS0FBSztZQUNoQixJQUFJLEVBQUUsQ0FBQyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO1NBQ25DLENBQUM7UUFLRixhQUFRLEdBQVksS0FBSyxDQUFDO1FBR2xCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQW1DM0M7SUFqQ0MsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDbEUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2RixNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7UUFDOUMsUUFBUSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDN0IsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixtQkFBbUIsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1NBQ2pFO1FBQ0QsUUFBUSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUM3QyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDdEM7aUJBQU07Z0JBQ0wsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2FBQ25DO1lBQ0QsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7a0hBaERVLHFCQUFxQjtzR0FBckIscUJBQXFCLG1PQWF1QixnQkFBZ0IsZ0VDL0J6RSxzREFDQTsyRkRpQmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQjs4QkFPNUIsTUFBTTtzQkFETCxLQUFLO2dCQU1OLEtBQUs7c0JBREosS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBR29FLG1CQUFtQjtzQkFBNUYsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCb3hJdGVtQ29tcG9uZW50fSBmcm9tICcuL2JveC1pdGVtL2JveC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQge0NoYW5nZUZpbHRlcn0gZnJvbSBcIi4uL3V0aWwvY2hhbmdlLWZpbHRlclwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdycy1ib3gtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JveC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ib3gtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQm94Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIGVkaXRNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIGNvbmZpZzogYW55ID0ge1xuICAgIGRpcmVjdGlvbjogJ3JvdycsXG4gICAgbGlzdDogW3t0eXBlOiAnYmxhbmsnLCBzdHlsZToge319XVxuICB9O1xuICBASW5wdXQoKVxuICBtb2RlbD86IGFueTtcbiAgcGFyYW1zPzogYW55O1xuICBASW5wdXQoKVxuICByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuICB0YWJWaWV3Q29udGFpbmVyUmVmPzogVmlld0NvbnRhaW5lclJlZjtcbiAgQFZpZXdDaGlsZCgnYm94Q29udGFpbmVyQ29udGVudCcsIHtzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWZ9KSBib3hDb250YWluZXJDb250ZW50ITogVmlld0NvbnRhaW5lclJlZjtcbiAgcHJpdmF0ZSBjaGFuZ2VGaWx0ZXIgPSBuZXcgQ2hhbmdlRmlsdGVyKCk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkKCk7XG4gICAgdGhpcy5jaGFuZ2VGaWx0ZXIuYW55Tm90Rmlyc3QoWydjb25maWcnLCAnbW9kZWwnLCAncmVhZG9ubHknXSwgKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VGaWx0ZXIuZG9GaWx0ZXIoY2hhbmdlcyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmNoYW5nZUZpbHRlci5kaXNwb3NlKCk7XG4gIH1cblxuICBsb2FkKCkge1xuICAgIHRoaXMuYm94Q29udGFpbmVyQ29udGVudC5jbGVhcigpO1xuICAgIGNvbnN0IGJveEl0ZW1Db21wb25lbnRSZWYgPSB0aGlzLmJveENvbnRhaW5lckNvbnRlbnQuY3JlYXRlQ29tcG9uZW50KEJveEl0ZW1Db21wb25lbnQpO1xuICAgIGNvbnN0IGluc3RhbmNlID0gYm94SXRlbUNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICBpbnN0YW5jZS5ib3hDb250YWluZXIgPSB0aGlzO1xuICAgIGluc3RhbmNlLmNvbmZpZyA9IHRoaXMuY29uZmlnO1xuICAgIGlmICh0aGlzLmVkaXRNb2RlKSB7XG4gICAgICBib3hJdGVtQ29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc3R5bGUubWFyZ2luID0gJzhweCc7XG4gICAgfVxuICAgIGluc3RhbmNlLmxlYXZlT25lSXRlbT8uc3Vic2NyaWJlKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdpdGVtJykge1xuICAgICAgICBPYmplY3QuYXNzaWduKGluc3RhbmNlLmNvbmZpZywgaXRlbSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnN0YW5jZS5jb25maWcuZGlyZWN0aW9uID0gJ3Jvdyc7XG4gICAgICB9XG4gICAgICBpbnN0YW5jZS5sb2FkKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgI2JveENvbnRhaW5lckNvbnRlbnQ+PC9uZy1jb250YWluZXI+XG4iXX0=
@@ -2,22 +2,37 @@ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core
2
2
  import { FormService } from "./form.service";
3
3
  import { DxValidationGroupComponent } from "devextreme-angular";
4
4
  import { validate_group } from "../util/utils";
5
+ import { ChangeFilter } from "../util/change-filter";
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "./form.service";
7
8
  import * as i2 from "@angular/common";
8
9
  import * as i3 from "../box-container/box-container.component";
9
- import * as i4 from "devextreme-angular/ui/button";
10
- import * as i5 from "devextreme-angular/ui/load-panel";
11
- import * as i6 from "devextreme-angular/ui/validation-group";
10
+ import * as i4 from "devextreme-angular/ui/nested";
11
+ import * as i5 from "devextreme-angular/ui/button";
12
+ import * as i6 from "devextreme-angular/ui/load-panel";
13
+ import * as i7 from "devextreme-angular/ui/validation-group";
12
14
  export class FormComponent {
13
- constructor(service) {
15
+ constructor(viewContainerRef, service) {
16
+ this.viewContainerRef = viewContainerRef;
14
17
  this.service = service;
15
18
  this.readonly = false;
16
19
  this.submitCallback = new EventEmitter();
17
20
  this.loading = false;
18
- this.window = window;
21
+ this.changeFilter = new ChangeFilter();
19
22
  }
20
23
  ngOnInit() {
24
+ this.load();
25
+ this.changeFilter.anyNotFirst(['tenant', 'className', 'oid', 'copyOid', 'template'], () => {
26
+ this.load();
27
+ });
28
+ }
29
+ ngOnChanges(changes) {
30
+ this.changeFilter.doFilter(changes);
31
+ }
32
+ ngOnDestroy() {
33
+ this.changeFilter.dispose();
34
+ }
35
+ load() {
21
36
  this.loading = true;
22
37
  this.service.getFormTemplateConfig(this.tenant, this.className, this.template).subscribe(response => {
23
38
  this.config = response.data.template;
@@ -58,12 +73,12 @@ export class FormComponent {
58
73
  this.formSubmitter.instance.element().click();
59
74
  }
60
75
  }
61
- FormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, deps: [{ token: i1.FormService }], target: i0.ɵɵFactoryTarget.Component });
62
- FormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FormComponent, selector: "rs-form", inputs: { tenant: "tenant", className: "className", oid: "oid", copyOid: "copyOid", template: "template", readonly: "readonly" }, outputs: { submitCallback: "submitCallback" }, providers: [FormService], viewQueries: [{ propertyName: "validator", first: true, predicate: DxValidationGroupComponent, descendants: true }, { propertyName: "formSubmitter", first: true, predicate: ["formSubmitter"], descendants: true }], ngImport: i0, template: "<dx-load-panel [position]=\"{my: 'center', at: 'center', of: form.parentElement?.parentElement || window}\"\n [showPane]=\"false\"\n [visible]=\"!model\"></dx-load-panel>\n<form #form>\n <dx-validation-group *ngIf=\"model\">\n <rs-box-container [config]=\"config\" [model]=\"model\" [readonly]=\"readonly\"></rs-box-container>\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm()\"></dx-button>\n </dx-validation-group>\n</form>\n", styles: [":host{padding:12px 24px 20px}:host form{display:flex;flex-flow:row nowrap}:host form dx-validation-group{width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.BoxContainerComponent, selector: "rs-box-container", inputs: ["config", "model", "readonly"] }, { kind: "component", type: i4.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i5.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i6.DxValidationGroupComponent, selector: "dx-validation-group", inputs: ["elementAttr", "height", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "elementAttrChange", "heightChange", "widthChange"] }] });
76
+ FormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.FormService }], target: i0.ɵɵFactoryTarget.Component });
77
+ FormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FormComponent, selector: "rs-form", inputs: { tenant: "tenant", className: "className", oid: "oid", copyOid: "copyOid", template: "template", readonly: "readonly" }, outputs: { submitCallback: "submitCallback" }, providers: [FormService], viewQueries: [{ propertyName: "validator", first: true, predicate: DxValidationGroupComponent, descendants: true }, { propertyName: "formSubmitter", first: true, predicate: ["formSubmitter"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<dx-validation-group *ngIf=\"!loading\">\n <rs-box-container [config]=\"config\" [model]=\"model\" [readonly]=\"readonly\"></rs-box-container>\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm()\"></dx-button>\n</dx-validation-group>\n", styles: [":host{padding:12px 24px 20px}:host form{display:flex;flex-flow:row nowrap}:host form dx-validation-group{width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.BoxContainerComponent, selector: "rs-box-container", inputs: ["config", "model", "readonly"] }, { kind: "component", type: i4.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i5.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i6.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i7.DxValidationGroupComponent, selector: "dx-validation-group", inputs: ["elementAttr", "height", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "elementAttrChange", "heightChange", "widthChange"] }] });
63
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, decorators: [{
64
79
  type: Component,
65
- args: [{ selector: 'rs-form', providers: [FormService], template: "<dx-load-panel [position]=\"{my: 'center', at: 'center', of: form.parentElement?.parentElement || window}\"\n [showPane]=\"false\"\n [visible]=\"!model\"></dx-load-panel>\n<form #form>\n <dx-validation-group *ngIf=\"model\">\n <rs-box-container [config]=\"config\" [model]=\"model\" [readonly]=\"readonly\"></rs-box-container>\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm()\"></dx-button>\n </dx-validation-group>\n</form>\n", styles: [":host{padding:12px 24px 20px}:host form{display:flex;flex-flow:row nowrap}:host form dx-validation-group{width:100%}\n"] }]
66
- }], ctorParameters: function () { return [{ type: i1.FormService }]; }, propDecorators: { tenant: [{
80
+ args: [{ selector: 'rs-form', providers: [FormService], template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<dx-validation-group *ngIf=\"!loading\">\n <rs-box-container [config]=\"config\" [model]=\"model\" [readonly]=\"readonly\"></rs-box-container>\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm()\"></dx-button>\n</dx-validation-group>\n", styles: [":host{padding:12px 24px 20px}:host form{display:flex;flex-flow:row nowrap}:host form dx-validation-group{width:100%}\n"] }]
81
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i1.FormService }]; }, propDecorators: { tenant: [{
67
82
  type: Input
68
83
  }], className: [{
69
84
  type: Input
@@ -84,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
84
99
  }], submitCallback: [{
85
100
  type: Output
86
101
  }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQW9CLDBCQUEwQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDakYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFRN0MsTUFBTSxPQUFPLGFBQWE7SUFxQnhCLFlBQW9CLE9BQW9CO1FBQXBCLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFUeEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQU0xQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDekMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQStDRyxXQUFNLEdBQUcsTUFBTSxDQUFDO0lBNUNuQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEcsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNyQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7cUJBQ3BHLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsQ0FBQyxDQUFDLENBQUM7YUFDTjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUNuRyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7b0JBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsVUFBVTtRQUNsQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzdCLElBQUksT0FBTyxFQUFFO2dCQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDdkQsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO29CQUNiLEdBQUcsSUFBSSxDQUFDLEtBQUs7aUJBQ2QsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQzthQUM1QztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoRCxDQUFDOzswR0FoRVUsYUFBYTs4RkFBYixhQUFhLG1OQUZiLENBQUMsV0FBVyxDQUFDLHFFQWlCYiwwQkFBMEIsaUpDMUJ2Qyx3ZUFTQTsyRkRFYSxhQUFhO2tCQU56QixTQUFTOytCQUNFLFNBQVMsYUFHUixDQUFDLFdBQVcsQ0FBQztrR0FJeEIsTUFBTTtzQkFETCxLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixHQUFHO3NCQURGLEtBQUs7Z0JBR04sT0FBTztzQkFETixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixRQUFRO3NCQURQLEtBQUs7Z0JBSWlDLFNBQVM7c0JBQS9DLFNBQVM7dUJBQUMsMEJBQTBCO2dCQUNULGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFFMUIsY0FBYztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtU2VydmljZX0gZnJvbSBcIi4vZm9ybS5zZXJ2aWNlXCI7XG5pbXBvcnQge0R4QnV0dG9uQ29tcG9uZW50LCBEeFZhbGlkYXRpb25Hcm91cENvbXBvbmVudH0gZnJvbSBcImRldmV4dHJlbWUtYW5ndWxhclwiO1xuaW1wb3J0IHt2YWxpZGF0ZV9ncm91cH0gZnJvbSBcIi4uL3V0aWwvdXRpbHNcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnMtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtGb3JtU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHRlbmFudCE6IGFueTtcbiAgQElucHV0KClcbiAgY2xhc3NOYW1lITogYW55O1xuICBASW5wdXQoKVxuICBvaWQ/OiBhbnk7XG4gIEBJbnB1dCgpXG4gIGNvcHlPaWQ/OiBhbnk7XG4gIEBJbnB1dCgpXG4gIHRlbXBsYXRlPzogYW55O1xuICBASW5wdXQoKVxuICByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBjb25maWc6IGFueTtcbiAgbW9kZWw6IGFueTtcbiAgQFZpZXdDaGlsZChEeFZhbGlkYXRpb25Hcm91cENvbXBvbmVudCkgdmFsaWRhdG9yITogRHhWYWxpZGF0aW9uR3JvdXBDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2Zvcm1TdWJtaXR0ZXInKSBmb3JtU3VibWl0dGVyITogRHhCdXR0b25Db21wb25lbnQ7XG4gIEBPdXRwdXQoKVxuICBzdWJtaXRDYWxsYmFjayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBGb3JtU2VydmljZSkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0Rm9ybVRlbXBsYXRlQ29uZmlnKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy50ZW1wbGF0ZSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgIHRoaXMuY29uZmlnID0gcmVzcG9uc2UuZGF0YS50ZW1wbGF0ZTtcbiAgICAgIGlmICh0aGlzLmNvcHlPaWQgfHwgdGhpcy5vaWQpIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmdldE9uZSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMuY29weU9pZCB8fCB0aGlzLm9pZCwgdGhpcy50ZW1wbGF0ZSwgdGhpcy5jb3B5T2lkKVxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VydmljZS5nZXRJbml0TW9kZWxCeVRlbXBsYXRlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy50ZW1wbGF0ZSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLm1vZGVsID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3VibWl0Rm9ybSgpIHtcbiAgICB0aGlzLnZhbGlkYXRlKCkudGhlbihpc1ZhbGlkID0+IHtcbiAgICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICAgIHRoaXMuc2VydmljZS5jcmVhdGVPclVwZGF0ZSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHtcbiAgICAgICAgICBvaWQ6IHRoaXMub2lkLFxuICAgICAgICAgIC4uLnRoaXMubW9kZWxcbiAgICAgICAgfSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdENhbGxiYWNrLmVtaXQocmVzcG9uc2UpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3VibWl0Q2FsbGJhY2suZW1pdCh7c3VjY2VzczogZmFsc2V9KTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgdmFsaWRhdGUoKSB7XG4gICAgcmV0dXJuIHZhbGlkYXRlX2dyb3VwKHRoaXMudmFsaWRhdG9yKTtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICB0aGlzLmZvcm1TdWJtaXR0ZXIuaW5zdGFuY2UuZWxlbWVudCgpLmNsaWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2luZG93ID0gd2luZG93O1xufVxuIiwiPGR4LWxvYWQtcGFuZWwgW3Bvc2l0aW9uXT1cIntteTogJ2NlbnRlcicsIGF0OiAnY2VudGVyJywgb2Y6IGZvcm0ucGFyZW50RWxlbWVudD8ucGFyZW50RWxlbWVudCB8fCB3aW5kb3d9XCJcbiAgICAgICAgICAgICAgIFtzaG93UGFuZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICBbdmlzaWJsZV09XCIhbW9kZWxcIj48L2R4LWxvYWQtcGFuZWw+XG48Zm9ybSAjZm9ybT5cbiAgPGR4LXZhbGlkYXRpb24tZ3JvdXAgKm5nSWY9XCJtb2RlbFwiPlxuICAgIDxycy1ib3gtY29udGFpbmVyIFtjb25maWddPVwiY29uZmlnXCIgW21vZGVsXT1cIm1vZGVsXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCI+PC9ycy1ib3gtY29udGFpbmVyPlxuICAgIDxkeC1idXR0b24gI2Zvcm1TdWJtaXR0ZXIgW3Zpc2libGVdPVwiZmFsc2VcIiAob25DbGljayk9XCJzdWJtaXRGb3JtKClcIj48L2R4LWJ1dHRvbj5cbiAgPC9keC12YWxpZGF0aW9uLWdyb3VwPlxuPC9mb3JtPlxuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQW9CLDBCQUEwQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDakYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQVFuRCxNQUFNLE9BQU8sYUFBYTtJQXNCeEIsWUFBc0IsZ0JBQWtDLEVBQVUsT0FBb0I7UUFBaEUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFWdEYsYUFBUSxHQUFZLEtBQUssQ0FBQztRQU0xQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDekMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNSLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUcxQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEdBQUcsRUFBRTtZQUN4RixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsRyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ3JDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQztxQkFDcEcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7b0JBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixDQUFDLENBQUMsQ0FBQzthQUNOO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ25HLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztvQkFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxVQUFVO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDN0IsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUN2RCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7b0JBQ2IsR0FBRyxJQUFJLENBQUMsS0FBSztpQkFDZCxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDckMsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO2FBQzVDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hELENBQUM7OzBHQWhGVSxhQUFhOzhGQUFiLGFBQWEsbU5BRmIsQ0FBQyxXQUFXLENBQUMscUVBaUJiLDBCQUEwQixzS0N0Q3ZDLDBlQVFBOzJGRGVhLGFBQWE7a0JBTnpCLFNBQVM7K0JBQ0UsU0FBUyxhQUdSLENBQUMsV0FBVyxDQUFDO2lJQUl4QixNQUFNO3NCQURMLEtBQUs7Z0JBR04sU0FBUztzQkFEUixLQUFLO2dCQUdOLEdBQUc7c0JBREYsS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFJaUMsU0FBUztzQkFBL0MsU0FBUzt1QkFBQywwQkFBMEI7Z0JBQ1QsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUUxQixjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtU2VydmljZX0gZnJvbSBcIi4vZm9ybS5zZXJ2aWNlXCI7XG5pbXBvcnQge0R4QnV0dG9uQ29tcG9uZW50LCBEeFZhbGlkYXRpb25Hcm91cENvbXBvbmVudH0gZnJvbSBcImRldmV4dHJlbWUtYW5ndWxhclwiO1xuaW1wb3J0IHt2YWxpZGF0ZV9ncm91cH0gZnJvbSBcIi4uL3V0aWwvdXRpbHNcIjtcbmltcG9ydCB7Q2hhbmdlRmlsdGVyfSBmcm9tIFwiLi4vdXRpbC9jaGFuZ2UtZmlsdGVyXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JzLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbRm9ybVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgdGVuYW50ITogYW55O1xuICBASW5wdXQoKVxuICBjbGFzc05hbWUhOiBhbnk7XG4gIEBJbnB1dCgpXG4gIG9pZD86IGFueTtcbiAgQElucHV0KClcbiAgY29weU9pZD86IGFueTtcbiAgQElucHV0KClcbiAgdGVtcGxhdGU/OiBhbnk7XG4gIEBJbnB1dCgpXG4gIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG4gIGNvbmZpZzogYW55O1xuICBtb2RlbDogYW55O1xuICBAVmlld0NoaWxkKER4VmFsaWRhdGlvbkdyb3VwQ29tcG9uZW50KSB2YWxpZGF0b3IhOiBEeFZhbGlkYXRpb25Hcm91cENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZm9ybVN1Ym1pdHRlcicpIGZvcm1TdWJtaXR0ZXIhOiBEeEJ1dHRvbkNvbXBvbmVudDtcbiAgQE91dHB1dCgpXG4gIHN1Ym1pdENhbGxiYWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBjaGFuZ2VGaWx0ZXIgPSBuZXcgQ2hhbmdlRmlsdGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgc2VydmljZTogRm9ybVNlcnZpY2UpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9hZCgpO1xuICAgIHRoaXMuY2hhbmdlRmlsdGVyLmFueU5vdEZpcnN0KFsndGVuYW50JywgJ2NsYXNzTmFtZScsICdvaWQnLCAnY29weU9pZCcsICd0ZW1wbGF0ZSddLCAoKSA9PiB7XG4gICAgICB0aGlzLmxvYWQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZUZpbHRlci5kb0ZpbHRlcihjaGFuZ2VzKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY2hhbmdlRmlsdGVyLmRpc3Bvc2UoKTtcbiAgfVxuXG4gIGxvYWQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0Rm9ybVRlbXBsYXRlQ29uZmlnKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy50ZW1wbGF0ZSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgIHRoaXMuY29uZmlnID0gcmVzcG9uc2UuZGF0YS50ZW1wbGF0ZTtcbiAgICAgIGlmICh0aGlzLmNvcHlPaWQgfHwgdGhpcy5vaWQpIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmdldE9uZSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMuY29weU9pZCB8fCB0aGlzLm9pZCwgdGhpcy50ZW1wbGF0ZSwgdGhpcy5jb3B5T2lkKVxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VydmljZS5nZXRJbml0TW9kZWxCeVRlbXBsYXRlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy50ZW1wbGF0ZSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLm1vZGVsID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3VibWl0Rm9ybSgpIHtcbiAgICB0aGlzLnZhbGlkYXRlKCkudGhlbihpc1ZhbGlkID0+IHtcbiAgICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICAgIHRoaXMuc2VydmljZS5jcmVhdGVPclVwZGF0ZSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHtcbiAgICAgICAgICBvaWQ6IHRoaXMub2lkLFxuICAgICAgICAgIC4uLnRoaXMubW9kZWxcbiAgICAgICAgfSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdENhbGxiYWNrLmVtaXQocmVzcG9uc2UpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3VibWl0Q2FsbGJhY2suZW1pdCh7c3VjY2VzczogZmFsc2V9KTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgdmFsaWRhdGUoKSB7XG4gICAgcmV0dXJuIHZhbGlkYXRlX2dyb3VwKHRoaXMudmFsaWRhdG9yKTtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICB0aGlzLmZvcm1TdWJtaXR0ZXIuaW5zdGFuY2UuZWxlbWVudCgpLmNsaWNrKCk7XG4gIH1cbn1cbiIsIjxkeC1sb2FkLXBhbmVsIFtjb250YWluZXJdPVwidmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIiBbc2hvd1BhbmVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgW3Zpc2libGVdPVwibG9hZGluZ1wiPlxuICA8ZHhvLXBvc2l0aW9uIFtvZl09XCJ2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudFwiPjwvZHhvLXBvc2l0aW9uPlxuPC9keC1sb2FkLXBhbmVsPlxuPGR4LXZhbGlkYXRpb24tZ3JvdXAgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICA8cnMtYm94LWNvbnRhaW5lciBbY29uZmlnXT1cImNvbmZpZ1wiIFttb2RlbF09XCJtb2RlbFwiIFtyZWFkb25seV09XCJyZWFkb25seVwiPjwvcnMtYm94LWNvbnRhaW5lcj5cbiAgPGR4LWJ1dHRvbiAjZm9ybVN1Ym1pdHRlciBbdmlzaWJsZV09XCJmYWxzZVwiIChvbkNsaWNrKT1cInN1Ym1pdEZvcm0oKVwiPjwvZHgtYnV0dG9uPlxuPC9keC12YWxpZGF0aW9uLWdyb3VwPlxuIl19
@@ -3,8 +3,6 @@ import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  import * as i2 from "devextreme-angular/ui/load-panel";
5
5
  import * as i3 from "devextreme-angular/ui/nested";
6
- let loadedMonaco = false;
7
- let loadPromise;
8
6
  export class JavaEditorComponent {
9
7
  set code(code) {
10
8
  this._code = code || '';
@@ -21,32 +19,17 @@ export class JavaEditorComponent {
21
19
  this.loading = true;
22
20
  }
23
21
  ngOnInit() {
24
- if (loadedMonaco) {
25
- loadPromise.then(() => {
22
+ const baseUrl = './assets/monaco-editor/min/vs';
23
+ const loaderScript = document.createElement('script');
24
+ loaderScript.type = 'text/javascript';
25
+ loaderScript.src = `${baseUrl}/loader.js`;
26
+ loaderScript.addEventListener('load', () => {
27
+ window.require.config({ paths: { 'vs': `${baseUrl}` } });
28
+ window.require([`vs/editor/editor.main`], () => {
26
29
  this.initMonaco();
27
30
  });
28
- }
29
- else {
30
- loadedMonaco = true;
31
- loadPromise = new Promise((resolve) => {
32
- const baseUrl = './assets/monaco-editor/min/vs';
33
- if (typeof (window.monaco) === 'object') {
34
- resolve();
35
- return;
36
- }
37
- const loaderScript = document.createElement('script');
38
- loaderScript.type = 'text/javascript';
39
- loaderScript.src = `${baseUrl}/loader.js`;
40
- loaderScript.addEventListener('load', () => {
41
- window.require.config({ paths: { 'vs': `${baseUrl}` } });
42
- window.require([`vs/editor/editor.main`], () => {
43
- this.initMonaco();
44
- resolve();
45
- });
46
- });
47
- document.body.appendChild(loaderScript);
48
- });
49
- }
31
+ });
32
+ document.body.appendChild(loaderScript);
50
33
  }
51
34
  initMonaco() {
52
35
  this._editor = monaco.editor.create(this.editorContainer.nativeElement, {
@@ -81,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
81
64
  type: ViewChild,
82
65
  args: ['editorContainer', { static: true }]
83
66
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvamF2YS1lZGl0b3IvamF2YS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvamF2YS1lZGl0b3IvamF2YS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDOzs7OztBQUV0SCxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7QUFDekIsSUFBSSxXQUEwQixDQUFDO0FBUS9CLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsSUFDSSxJQUFJLENBQUMsSUFBWTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQWFELFlBQXNCLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBWGhELFVBQUssR0FBVyxFQUFFLENBQUM7UUFFM0IsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFJeEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBR3pDLFlBQU8sR0FBRyxJQUFJLENBQUM7SUFHZixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksWUFBWSxFQUFFO1lBQ2hCLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsWUFBWSxHQUFHLElBQUksQ0FBQztZQUNwQixXQUFXLEdBQUcsSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFZLEVBQUUsRUFBRTtnQkFDL0MsTUFBTSxPQUFPLEdBQUcsK0JBQStCLENBQUM7Z0JBQ2hELElBQUksT0FBTyxDQUFPLE1BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxRQUFRLEVBQUU7b0JBQzlDLE9BQU8sRUFBRSxDQUFDO29CQUNWLE9BQU87aUJBQ1I7Z0JBQ0QsTUFBTSxZQUFZLEdBQXNCLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3pFLFlBQVksQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7Z0JBQ3RDLFlBQVksQ0FBQyxHQUFHLEdBQUcsR0FBRyxPQUFPLFlBQVksQ0FBQztnQkFDMUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7b0JBQ25DLE1BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUMsS0FBSyxFQUFFLEVBQUMsSUFBSSxFQUFFLEdBQUcsT0FBTyxFQUFFLEVBQUMsRUFBQyxDQUFDLENBQUM7b0JBQ3RELE1BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEdBQUcsRUFBRTt3QkFDcEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO3dCQUNsQixPQUFPLEVBQUUsQ0FBQztvQkFDWixDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFDSCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRTtZQUN0RSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDaEIsUUFBUSxFQUFFLE1BQU07WUFDaEIsZUFBZSxFQUFFLElBQUk7WUFDckIsT0FBTyxFQUFFO2dCQUNQLE9BQU8sRUFBRSxLQUFLO2FBQ2Y7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7O2dIQW5FVSxtQkFBbUI7b0dBQW5CLG1CQUFtQiw2VENYaEMsa1hBTUE7MkZES2EsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGdCQUFnQjt1R0FNdEIsSUFBSTtzQkFEUCxLQUFLO2dCQVlOLFVBQVU7c0JBRFQsTUFBTTtnQkFHUCxjQUFjO3NCQURiLEtBQUs7Z0JBR04sY0FBYztzQkFEYixNQUFNO2dCQUd1QyxlQUFlO3NCQUE1RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxubGV0IGxvYWRlZE1vbmFjbyA9IGZhbHNlO1xubGV0IGxvYWRQcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xuZGVjbGFyZSB2YXIgbW9uYWNvOiBhbnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JzLWphdmEtZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2phdmEtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vamF2YS1lZGl0b3IuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBKYXZhRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgc2V0IGNvZGUoY29kZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29kZSA9IGNvZGUgfHwgJyc7XG4gICAgdGhpcy5fZWRpdG9yPy5zZXRWYWx1ZSh0aGlzLl9jb2RlKTtcbiAgfVxuXG4gIGdldCBjb2RlKCkge1xuICAgIHJldHVybiB0aGlzLl9jb2RlO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29kZTogc3RyaW5nID0gJyc7XG4gIEBPdXRwdXQoKVxuICBjb2RlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBJbnB1dCgpXG4gIGNvbnNvbGVNZXNzYWdlPzogc3RyaW5nO1xuICBAT3V0cHV0KClcbiAgb25Db250ZW50UmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHJpdmF0ZSBfZWRpdG9yOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ2VkaXRvckNvbnRhaW5lcicsIHtzdGF0aWM6IHRydWV9KSBlZGl0b3JDb250YWluZXIhOiBFbGVtZW50UmVmO1xuICBsb2FkaW5nID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKGxvYWRlZE1vbmFjbykge1xuICAgICAgbG9hZFByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdE1vbmFjbygpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvYWRlZE1vbmFjbyA9IHRydWU7XG4gICAgICBsb2FkUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZVVybCA9ICcuL2Fzc2V0cy9tb25hY28tZWRpdG9yL21pbi92cyc7XG4gICAgICAgIGlmICh0eXBlb2YgKCg8YW55PndpbmRvdykubW9uYWNvKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxvYWRlclNjcmlwdDogSFRNTFNjcmlwdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgbG9hZGVyU2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICAgICAgbG9hZGVyU2NyaXB0LnNyYyA9IGAke2Jhc2VVcmx9L2xvYWRlci5qc2A7XG4gICAgICAgIGxvYWRlclNjcmlwdC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4ge1xuICAgICAgICAgICg8YW55PndpbmRvdykucmVxdWlyZS5jb25maWcoe3BhdGhzOiB7J3ZzJzogYCR7YmFzZVVybH1gfX0pO1xuICAgICAgICAgICg8YW55PndpbmRvdykucmVxdWlyZShbYHZzL2VkaXRvci9lZGl0b3IubWFpbmBdLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluaXRNb25hY28oKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9hZGVyU2NyaXB0KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdE1vbmFjbygpIHtcbiAgICB0aGlzLl9lZGl0b3IgPSBtb25hY28uZWRpdG9yLmNyZWF0ZSh0aGlzLmVkaXRvckNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCB7XG4gICAgICB2YWx1ZTogdGhpcy5jb2RlLFxuICAgICAgbGFuZ3VhZ2U6ICdqYXZhJyxcbiAgICAgIGF1dG9tYXRpY0xheW91dDogdHJ1ZSxcbiAgICAgIG1pbmltYXA6IHtcbiAgICAgICAgZW5hYmxlZDogZmFsc2VcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLl9lZGl0b3Iub25EaWRDaGFuZ2VNb2RlbENvbnRlbnQoKGU6IGFueSkgPT4ge1xuICAgICAgdGhpcy5jb2RlQ2hhbmdlLmVtaXQodGhpcy5fZWRpdG9yLmdldFZhbHVlKCkpO1xuICAgIH0pO1xuICAgIHRoaXMub25Db250ZW50UmVhZHkuZW1pdCh0aGlzLl9lZGl0b3IpO1xuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICB9XG59XG4iLCI8ZHgtbG9hZC1wYW5lbCBbY29udGFpbmVyXT1cInZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50XCIgW3Nob3dQYW5lXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgIFt2aXNpYmxlXT1cImxvYWRpbmdcIj5cbiAgPGR4by1wb3NpdGlvbiBbb2ZdPVwidmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIj48L2R4by1wb3NpdGlvbj5cbjwvZHgtbG9hZC1wYW5lbD5cbjxkaXYgY2xhc3M9XCJlZGl0b3ItY29udGFpbmVyXCIgI2VkaXRvckNvbnRhaW5lcj48L2Rpdj5cbjxkaXYgKm5nSWY9XCJjb25zb2xlTWVzc2FnZVwiIGNsYXNzPVwiZWRpdG9yLWNvbnNvbGVcIj57e2NvbnNvbGVNZXNzYWdlfX08L2Rpdj5cbiJdfQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvamF2YS1lZGl0b3IvamF2YS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvamF2YS1lZGl0b3IvamF2YS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDOzs7OztBQVN0SCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLElBQ0ksSUFBSSxDQUFDLElBQVk7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFhRCxZQUFzQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVhoRCxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRTNCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBSXhDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUd6QyxZQUFPLEdBQUcsSUFBSSxDQUFDO0lBR2YsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRywrQkFBK0IsQ0FBQztRQUNoRCxNQUFNLFlBQVksR0FBc0IsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RSxZQUFZLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1FBQ3RDLFlBQVksQ0FBQyxHQUFHLEdBQUcsR0FBRyxPQUFPLFlBQVksQ0FBQztRQUMxQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNuQyxNQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssRUFBRSxFQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sRUFBRSxFQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQ3RELE1BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEdBQUcsRUFBRTtnQkFDcEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFO1lBQ3RFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNoQixRQUFRLEVBQUUsTUFBTTtZQUNoQixlQUFlLEVBQUUsSUFBSTtZQUNyQixPQUFPLEVBQUU7Z0JBQ1AsT0FBTyxFQUFFLEtBQUs7YUFDZjtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQzs7Z0hBckRVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDZUQ1RoQyxrWEFNQTsyRkRHYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsZ0JBQWdCO3VHQU10QixJQUFJO3NCQURQLEtBQUs7Z0JBWU4sVUFBVTtzQkFEVCxNQUFNO2dCQUdQLGNBQWM7c0JBRGIsS0FBSztnQkFHTixjQUFjO3NCQURiLE1BQU07Z0JBR3VDLGVBQWU7c0JBQTVELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5kZWNsYXJlIHZhciBtb25hY286IGFueTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnMtamF2YS1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vamF2YS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9qYXZhLWVkaXRvci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEphdmFFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBzZXQgY29kZShjb2RlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jb2RlID0gY29kZSB8fCAnJztcbiAgICB0aGlzLl9lZGl0b3I/LnNldFZhbHVlKHRoaXMuX2NvZGUpO1xuICB9XG5cbiAgZ2V0IGNvZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvZGU7XG4gIH1cblxuICBwcml2YXRlIF9jb2RlOiBzdHJpbmcgPSAnJztcbiAgQE91dHB1dCgpXG4gIGNvZGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQElucHV0KClcbiAgY29uc29sZU1lc3NhZ2U/OiBzdHJpbmc7XG4gIEBPdXRwdXQoKVxuICBvbkNvbnRlbnRSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBwcml2YXRlIF9lZGl0b3I6IGFueTtcbiAgQFZpZXdDaGlsZCgnZWRpdG9yQ29udGFpbmVyJywge3N0YXRpYzogdHJ1ZX0pIGVkaXRvckNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XG4gIGxvYWRpbmcgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBiYXNlVXJsID0gJy4vYXNzZXRzL21vbmFjby1lZGl0b3IvbWluL3ZzJztcbiAgICBjb25zdCBsb2FkZXJTY3JpcHQ6IEhUTUxTY3JpcHRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgbG9hZGVyU2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICBsb2FkZXJTY3JpcHQuc3JjID0gYCR7YmFzZVVybH0vbG9hZGVyLmpzYDtcbiAgICBsb2FkZXJTY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcbiAgICAgICg8YW55PndpbmRvdykucmVxdWlyZS5jb25maWcoe3BhdGhzOiB7J3ZzJzogYCR7YmFzZVVybH1gfX0pO1xuICAgICAgKDxhbnk+d2luZG93KS5yZXF1aXJlKFtgdnMvZWRpdG9yL2VkaXRvci5tYWluYF0sICgpID0+IHtcbiAgICAgICAgdGhpcy5pbml0TW9uYWNvKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxvYWRlclNjcmlwdCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRNb25hY28oKSB7XG4gICAgdGhpcy5fZWRpdG9yID0gbW9uYWNvLmVkaXRvci5jcmVhdGUodGhpcy5lZGl0b3JDb250YWluZXIubmF0aXZlRWxlbWVudCwge1xuICAgICAgdmFsdWU6IHRoaXMuY29kZSxcbiAgICAgIGxhbmd1YWdlOiAnamF2YScsXG4gICAgICBhdXRvbWF0aWNMYXlvdXQ6IHRydWUsXG4gICAgICBtaW5pbWFwOiB7XG4gICAgICAgIGVuYWJsZWQ6IGZhbHNlXG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5fZWRpdG9yLm9uRGlkQ2hhbmdlTW9kZWxDb250ZW50KChlOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuY29kZUNoYW5nZS5lbWl0KHRoaXMuX2VkaXRvci5nZXRWYWx1ZSgpKTtcbiAgICB9KTtcbiAgICB0aGlzLm9uQ29udGVudFJlYWR5LmVtaXQodGhpcy5fZWRpdG9yKTtcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgfVxufVxuIiwiPGR4LWxvYWQtcGFuZWwgW2NvbnRhaW5lcl09XCJ2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudFwiIFtzaG93UGFuZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICBbdmlzaWJsZV09XCJsb2FkaW5nXCI+XG4gIDxkeG8tcG9zaXRpb24gW29mXT1cInZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50XCI+PC9keG8tcG9zaXRpb24+XG48L2R4LWxvYWQtcGFuZWw+XG48ZGl2IGNsYXNzPVwiZWRpdG9yLWNvbnRhaW5lclwiICNlZGl0b3JDb250YWluZXI+PC9kaXY+XG48ZGl2ICpuZ0lmPVwiY29uc29sZU1lc3NhZ2VcIiBjbGFzcz1cImVkaXRvci1jb25zb2xlXCI+e3tjb25zb2xlTWVzc2FnZX19PC9kaXY+XG4iXX0=
@@ -27,7 +27,8 @@ export * from './java-editor/java-editor.module';
27
27
  export * from './modal/modal.component';
28
28
  export * from './modal/modal.module';
29
29
  export * from './modal/modal.service';
30
+ export * from './util/change-filter';
30
31
  export * from './util/utils';
31
32
  export * from './websocket/websocket.module';
32
33
  export * from './websocket/websocket.service';
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYm94LWNvbnRhaW5lci9ib3gtaXRlbS9pdGVtLWNvbmZpZy9pdGVtLWNvbmZpZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9ib3gtY29udGFpbmVyL2JveC1pdGVtL2l0ZW0tc3R5bGUvaXRlbS1zdHlsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9ib3gtY29udGFpbmVyL2JveC1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYm94LWNvbnRhaW5lci9ib3gtY29udGFpbmVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2JveC1jb250YWluZXIvUGx1Z2luTWFuYWdlcic7XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtZ3JpZC9kYXRhLWdyaWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1ncmlkL2RhdGEtZ3JpZC5mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1ncmlkL2luc3RhbmNlLWxpbmstdGVtcGxhdGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1ncmlkL21hc3Rlci1kZXRhaWwtdGVtcGxhdGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1ncmlkL3Jvdy1idXR0b25zLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtZ3JpZC9kYXRhLWdyaWQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1ncmlkL2RhdGEtZ3JpZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1kZXRhaWwvZGF0YS1kZXRhaWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1kZXRhaWwvZGF0YS1kZXRhaWwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJhd2VyL2RyYXdlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmF3ZXIvZHJhd2VyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RyYXdlci9kcmF3ZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtcGFyYW1zL2R5bmFtaWMtcGFyYW1zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtcGFyYW1zL2R5bmFtaWMtcGFyYW1zLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtL2Zvcm0ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS9mb3JtLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pY29uLXNlbGVjdG9yL2ljb24tc2VsZWN0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaWNvbi1zZWxlY3Rvci9pY29uLXNlbGVjdG9yLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2phdmEtZWRpdG9yL2phdmEtZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2phdmEtZWRpdG9yL2phdmEtZWRpdG9yLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGFsL21vZGFsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGFsL21vZGFsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vd2Vic29ja2V0L3dlYnNvY2tldC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi93ZWJzb2NrZXQvd2Vic29ja2V0LnNlcnZpY2UnO1xuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ib3gtY29udGFpbmVyL2JveC1pdGVtL2l0ZW0tY29uZmlnL2l0ZW0tY29uZmlnLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2JveC1jb250YWluZXIvYm94LWl0ZW0vaXRlbS1zdHlsZS9pdGVtLXN0eWxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2JveC1jb250YWluZXIvYm94LWNvbnRhaW5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9ib3gtY29udGFpbmVyL2JveC1jb250YWluZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vYm94LWNvbnRhaW5lci9QbHVnaW5NYW5hZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLWdyaWQvZGF0YS1ncmlkLmZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLWdyaWQvaW5zdGFuY2UtbGluay10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLWdyaWQvbWFzdGVyLWRldGFpbC10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLWdyaWQvcm93LWJ1dHRvbnMtdGVtcGxhdGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1ncmlkL2RhdGEtZ3JpZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLWdyaWQvZGF0YS1ncmlkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLWRldGFpbC9kYXRhLWRldGFpbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLWRldGFpbC9kYXRhLWRldGFpbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RyYXdlci9kcmF3ZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJhd2VyL2RyYXdlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1wYXJhbXMvZHluYW1pYy1wYXJhbXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1wYXJhbXMvZHluYW1pYy1wYXJhbXMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0vZm9ybS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtL2Zvcm0uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ljb24tc2VsZWN0b3IvaWNvbi1zZWxlY3Rvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pY29uLXNlbGVjdG9yL2ljb24tc2VsZWN0b3IubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS1lZGl0b3IvamF2YS1lZGl0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS1lZGl0b3IvamF2YS1lZGl0b3IubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kYWwvbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbW9kYWwvbW9kYWwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kYWwvbW9kYWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWwvY2hhbmdlLWZpbHRlcic7XG5leHBvcnQgKiBmcm9tICcuL3V0aWwvdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi93ZWJzb2NrZXQvd2Vic29ja2V0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3dlYnNvY2tldC93ZWJzb2NrZXQuc2VydmljZSc7XG4iXX0=
@@ -0,0 +1,63 @@
1
+ import { ReplaySubject, Subscription } from "rxjs";
2
+ export class ChangeFilter {
3
+ constructor() {
4
+ this.subject = new ReplaySubject(1);
5
+ this.subscriptions = new Subscription();
6
+ }
7
+ doFilter(changes) {
8
+ this.subject.next(changes);
9
+ }
10
+ dispose() {
11
+ this.subscriptions.unsubscribe();
12
+ }
13
+ notEmpty(key, handler) {
14
+ this.subscriptions.add(this.subject.subscribe(changes => {
15
+ if (changes[key]) {
16
+ const value = changes[key].currentValue;
17
+ if (value !== undefined && value !== null) {
18
+ handler(value);
19
+ }
20
+ }
21
+ }));
22
+ }
23
+ has(key, handler) {
24
+ this.subscriptions.add(this.subject.subscribe(changes => {
25
+ if (changes[key]) {
26
+ const value = changes[key].currentValue;
27
+ handler(value);
28
+ }
29
+ }));
30
+ }
31
+ notFirst(key, handler) {
32
+ this.subscriptions.add(this.subject.subscribe(changes => {
33
+ if (changes[key] && !changes[key].isFirstChange()) {
34
+ const value = changes[key].currentValue;
35
+ handler(value);
36
+ }
37
+ }));
38
+ }
39
+ notFirstAndEmpty(key, handler) {
40
+ this.subscriptions.add(this.subject.subscribe(changes => {
41
+ if (changes[key] && !changes[key].isFirstChange()) {
42
+ const value = changes[key].currentValue;
43
+ if (value !== undefined && value !== null) {
44
+ handler(value);
45
+ }
46
+ }
47
+ }));
48
+ }
49
+ anyNotFirst(keys, handler) {
50
+ this.subscriptions.add(this.subject.subscribe(changes => {
51
+ let hasChange = false;
52
+ for (let key of keys) {
53
+ if (changes[key] && !changes[key].isFirstChange()) {
54
+ hasChange = true;
55
+ }
56
+ }
57
+ if (hasChange) {
58
+ handler();
59
+ }
60
+ }));
61
+ }
62
+ }
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL3V0aWwvY2hhbmdlLWZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsYUFBYSxFQUFFLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVqRCxNQUFNLE9BQU8sWUFBWTtJQUF6QjtRQUNVLFlBQU8sR0FBRyxJQUFJLGFBQWEsQ0FBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDOUMsa0JBQWEsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQXlFM0QsQ0FBQztJQXZFQyxRQUFRLENBQUMsT0FBc0I7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFRLENBQUksR0FBVyxFQUFFLE9BQXVCO1FBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMvQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDaEIsTUFBTSxLQUFLLEdBQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQztnQkFDM0MsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7b0JBQ3pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDaEI7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsR0FBRyxDQUFJLEdBQVcsRUFBRSxPQUF1QjtRQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hCLE1BQU0sS0FBSyxHQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNoQjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUSxDQUFJLEdBQVcsRUFBRSxPQUF1QjtRQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7Z0JBQ2pELE1BQU0sS0FBSyxHQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNoQjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsZ0JBQWdCLENBQUksR0FBVyxFQUFFLE9BQXVCO1FBQ3RELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMvQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtnQkFDakQsTUFBTSxLQUFLLEdBQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQztnQkFDM0MsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7b0JBQ3pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDaEI7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWMsRUFBRSxPQUFtQjtRQUM3QyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFO2dCQUNwQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtvQkFDakQsU0FBUyxHQUFHLElBQUksQ0FBQztpQkFDbEI7YUFDRjtZQUNELElBQUksU0FBUyxFQUFFO2dCQUNiLE9BQU8sRUFBRSxDQUFDO2FBQ1g7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTaW1wbGVDaGFuZ2VzfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1JlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBDaGFuZ2VGaWx0ZXIge1xyXG4gIHByaXZhdGUgc3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PFNpbXBsZUNoYW5nZXM+KDEpO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG5cclxuICBkb0ZpbHRlcihjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICB0aGlzLnN1YmplY3QubmV4dChjaGFuZ2VzKTtcclxuICB9XHJcblxyXG4gIGRpc3Bvc2UoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5vdEVtcHR5PFQ+KGtleTogc3RyaW5nLCBoYW5kbGVyOiAodDogVCkgPT4gdm9pZCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcclxuICAgICAgdGhpcy5zdWJqZWN0LnN1YnNjcmliZShjaGFuZ2VzID0+IHtcclxuICAgICAgICBpZiAoY2hhbmdlc1trZXldKSB7XHJcbiAgICAgICAgICBjb25zdCB2YWx1ZTogVCA9IGNoYW5nZXNba2V5XS5jdXJyZW50VmFsdWU7XHJcbiAgICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBoYW5kbGVyKHZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaGFzPFQ+KGtleTogc3RyaW5nLCBoYW5kbGVyOiAodDogVCkgPT4gdm9pZCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcclxuICAgICAgdGhpcy5zdWJqZWN0LnN1YnNjcmliZShjaGFuZ2VzID0+IHtcclxuICAgICAgICBpZiAoY2hhbmdlc1trZXldKSB7XHJcbiAgICAgICAgICBjb25zdCB2YWx1ZTogVCA9IGNoYW5nZXNba2V5XS5jdXJyZW50VmFsdWU7XHJcbiAgICAgICAgICBoYW5kbGVyKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbm90Rmlyc3Q8VD4oa2V5OiBzdHJpbmcsIGhhbmRsZXI6ICh0OiBUKSA9PiB2b2lkKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxyXG4gICAgICB0aGlzLnN1YmplY3Quc3Vic2NyaWJlKGNoYW5nZXMgPT4ge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzW2tleV0gJiYgIWNoYW5nZXNba2V5XS5pc0ZpcnN0Q2hhbmdlKCkpIHtcclxuICAgICAgICAgIGNvbnN0IHZhbHVlOiBUID0gY2hhbmdlc1trZXldLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICAgIGhhbmRsZXIodmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBub3RGaXJzdEFuZEVtcHR5PFQ+KGtleTogc3RyaW5nLCBoYW5kbGVyOiAodDogVCkgPT4gdm9pZCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcclxuICAgICAgdGhpcy5zdWJqZWN0LnN1YnNjcmliZShjaGFuZ2VzID0+IHtcclxuICAgICAgICBpZiAoY2hhbmdlc1trZXldICYmICFjaGFuZ2VzW2tleV0uaXNGaXJzdENoYW5nZSgpKSB7XHJcbiAgICAgICAgICBjb25zdCB2YWx1ZTogVCA9IGNoYW5nZXNba2V5XS5jdXJyZW50VmFsdWU7XHJcbiAgICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBoYW5kbGVyKHZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYW55Tm90Rmlyc3Qoa2V5czogc3RyaW5nW10sIGhhbmRsZXI6ICgpID0+IHZvaWQpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXHJcbiAgICAgIHRoaXMuc3ViamVjdC5zdWJzY3JpYmUoY2hhbmdlcyA9PiB7XHJcbiAgICAgICAgbGV0IGhhc0NoYW5nZSA9IGZhbHNlO1xyXG4gICAgICAgIGZvciAobGV0IGtleSBvZiBrZXlzKSB7XHJcbiAgICAgICAgICBpZiAoY2hhbmdlc1trZXldICYmICFjaGFuZ2VzW2tleV0uaXNGaXJzdENoYW5nZSgpKSB7XHJcbiAgICAgICAgICAgIGhhc0NoYW5nZSA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChoYXNDaGFuZ2UpIHtcclxuICAgICAgICAgIGhhbmRsZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=