@mintplayer/ng-bootstrap 15.25.0 → 15.25.3

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.
Files changed (31) hide show
  1. package/dock/src/dock/dock.component.d.ts +4 -1
  2. package/dock/src/dock-panel-header/dock-panel-header.component.d.ts +5 -4
  3. package/dock/src/index.d.ts +1 -0
  4. package/dock/src/panes/content-pane.d.ts +1 -0
  5. package/dock/src/panes/dock-pane.d.ts +1 -0
  6. package/dock/src/panes/document-host-pane.d.ts +1 -0
  7. package/dock/src/panes/floating-pane.d.ts +2 -1
  8. package/dock/src/panes/split-pane.d.ts +1 -0
  9. package/dock/src/panes/tab-group-pane.d.ts +1 -0
  10. package/dock/src/services/dock/dock.service.d.ts +14 -0
  11. package/dock/src/services/index.d.ts +1 -0
  12. package/esm2020/dock/src/dock/dock.component.mjs +14 -2
  13. package/esm2020/dock/src/dock-panel-header/dock-panel-header.component.mjs +202 -96
  14. package/esm2020/dock/src/index.mjs +2 -1
  15. package/esm2020/dock/src/panes/content-pane.mjs +4 -1
  16. package/esm2020/dock/src/panes/dock-pane.mjs +1 -1
  17. package/esm2020/dock/src/panes/document-host-pane.mjs +4 -1
  18. package/esm2020/dock/src/panes/floating-pane.mjs +7 -2
  19. package/esm2020/dock/src/panes/split-pane.mjs +4 -1
  20. package/esm2020/dock/src/panes/tab-group-pane.mjs +4 -1
  21. package/esm2020/dock/src/services/dock/dock.service.mjs +56 -0
  22. package/esm2020/dock/src/services/index.mjs +2 -0
  23. package/esm2020/resizable/src/resize-glyph/resize-glyph.directive.mjs +1 -1
  24. package/fesm2015/mintplayer-ng-bootstrap-dock.mjs +291 -111
  25. package/fesm2015/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  26. package/fesm2015/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  27. package/fesm2020/mintplayer-ng-bootstrap-dock.mjs +289 -111
  28. package/fesm2020/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  29. package/fesm2020/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  30. package/package.json +2 -2
  31. package/resizable/src/resize-glyph/resize-glyph.directive.d.ts +1 -1
@@ -1,11 +1,13 @@
1
1
  import { OnDestroy, QueryList } from '@angular/core';
2
- import { BehaviorSubject, Subject } from 'rxjs';
2
+ import { BehaviorSubject, Observable, Subject } from 'rxjs';
3
+ import { Parentified } from '@mintplayer/parentify';
3
4
  import { BsDockPanelComponent } from '../dock-panel/dock-panel.component';
4
5
  import { BsDockLayout } from '../interfaces/dock-layout';
5
6
  import { BsDockPaneRendererComponent } from '../dock-pane-renderer/dock-pane-renderer.component';
6
7
  import * as i0 from "@angular/core";
7
8
  export declare class BsDockComponent implements OnDestroy {
8
9
  constructor();
10
+ private paneCache?;
9
11
  panels$: BehaviorSubject<BsDockPanelComponent[]>;
10
12
  set panels(value: QueryList<BsDockPanelComponent>);
11
13
  layout$: BehaviorSubject<BsDockLayout>;
@@ -15,6 +17,7 @@ export declare class BsDockComponent implements OnDestroy {
15
17
  set floatingPanes(value: QueryList<BsDockPaneRendererComponent>);
16
18
  positionAbsolute: boolean;
17
19
  positionPx: number;
20
+ parentifiedLayout$: Observable<Parentified<BsDockLayout>>;
18
21
  destroyed$: Subject<unknown>;
19
22
  ngOnDestroy(): void;
20
23
  static ɵfac: i0.ɵɵFactoryDeclaration<BsDockComponent, never>;
@@ -2,20 +2,21 @@ import { ElementRef } from '@angular/core';
2
2
  import { BsDockPanelComponent } from '../dock-panel/dock-panel.component';
3
3
  import { BsDockComponent } from '../dock/dock.component';
4
4
  import { BsDockPane } from '../panes/dock-pane';
5
- import { RemoveFromPaneResult } from '../interfaces/remove-from-pane-result';
6
5
  import { DragOperation } from '../interfaces/drag-operation';
6
+ import { BsDockService } from '../services/dock/dock.service';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare class BsDockPanelHeaderComponent {
9
9
  private dockPanel;
10
10
  private dock;
11
+ private dockService;
11
12
  private element;
12
- constructor(dockPanel: BsDockPanelComponent, dock: BsDockComponent, element: ElementRef<HTMLElement>);
13
+ constructor(dockPanel: BsDockPanelComponent, dock: BsDockComponent, dockService: BsDockService, element: ElementRef<HTMLElement>);
13
14
  isMouseDown: boolean;
14
15
  dragOperation?: DragOperation;
15
- isLayoutDetached: boolean;
16
+ isDragging: boolean;
16
17
  onMouseDown(ev: MouseEvent): void;
17
18
  onMouseMove(ev: MouseEvent): void;
18
- removeFromPane(host: BsDockPane, panel: BsDockPanelComponent): RemoveFromPaneResult;
19
+ removeFromPaneBis(host: BsDockPane, pane: BsDockPane): void;
19
20
  onMouseUp(ev: Event): void;
20
21
  dBlock: boolean;
21
22
  static ɵfac: i0.ɵɵFactoryDeclaration<BsDockPanelHeaderComponent, never>;
@@ -6,3 +6,4 @@ export * from './dock-pane-renderer/dock-pane-renderer.component';
6
6
  export * from './enums';
7
7
  export * from './interfaces';
8
8
  export * from './panes';
9
+ export * from './services';
@@ -4,4 +4,5 @@ export declare class BsContentPane extends BsDockPane {
4
4
  constructor(data?: Partial<BsContentPane>);
5
5
  dockPanel: BsDockPanelComponent;
6
6
  isPinned?: boolean;
7
+ get isEmpty(): boolean;
7
8
  }
@@ -1,2 +1,3 @@
1
1
  export declare abstract class BsDockPane {
2
+ abstract get isEmpty(): boolean;
2
3
  }
@@ -3,4 +3,5 @@ import { BsTabGroupPane } from "./tab-group-pane";
3
3
  export declare class BsDocumentHost extends BsDockPane {
4
4
  constructor(data?: Partial<BsDocumentHost>);
5
5
  rootPane?: BsTabGroupPane;
6
+ get isEmpty(): boolean;
6
7
  }
@@ -1,9 +1,10 @@
1
1
  import { BsDockPane } from "./dock-pane";
2
2
  import { Point } from "../interfaces/point";
3
3
  import { Size } from "../interfaces/size";
4
- export declare class BsFloatingPane {
4
+ export declare class BsFloatingPane extends BsDockPane {
5
5
  constructor(data?: Partial<BsFloatingPane>);
6
6
  pane?: BsDockPane;
7
7
  size?: Size;
8
8
  location?: Point;
9
+ get isEmpty(): boolean;
9
10
  }
@@ -4,4 +4,5 @@ export declare class BsSplitPane extends BsDockPane {
4
4
  constructor(data?: Partial<BsSplitPane>);
5
5
  orientation: SplitPaneOrientation;
6
6
  panes: BsDockPane[];
7
+ get isEmpty(): boolean;
7
8
  }
@@ -3,4 +3,5 @@ import { BsDockPane } from "./dock-pane";
3
3
  export declare class BsTabGroupPane extends BsDockPane {
4
4
  constructor(data?: Partial<BsTabGroupPane>);
5
5
  panes: BsContentPane[];
6
+ get isEmpty(): boolean;
6
7
  }
@@ -0,0 +1,14 @@
1
+ import { BsDockPane } from '../../panes/dock-pane';
2
+ import { BsDockLayout } from '../../interfaces/dock-layout';
3
+ import * as i0 from "@angular/core";
4
+ export declare class BsDockService {
5
+ buildTraces(layout: BsDockLayout): PaneTraceResult[];
6
+ private buildTracesPrivate;
7
+ private getChildPanes;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<BsDockService, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<BsDockService>;
10
+ }
11
+ export interface PaneTraceResult {
12
+ trace: BsDockPane[];
13
+ finished: boolean;
14
+ }
@@ -0,0 +1 @@
1
+ export * from './dock/dock.service';
@@ -1,8 +1,12 @@
1
1
  import { Component, ContentChildren, ViewChildren, Input, QueryList, HostBinding } from '@angular/core';
2
- import { BehaviorSubject, Subject, takeUntil } from 'rxjs';
2
+ import { BehaviorSubject, map, Subject, takeUntil } from 'rxjs';
3
+ import { deepClone } from '@mintplayer/parentify';
3
4
  import { BsDockPanelComponent } from '../dock-panel/dock-panel.component';
4
5
  import { BsTabGroupPane } from '../panes/tab-group-pane';
5
6
  import { BsDocumentHost } from '../panes/document-host-pane';
7
+ import { BsContentPane } from '../panes/content-pane';
8
+ import { BsFloatingPane } from '../panes/floating-pane';
9
+ import { BsSplitPane } from '../panes/split-pane';
6
10
  import * as i0 from "@angular/core";
7
11
  import * as i1 from "@angular/common";
8
12
  import * as i2 from "../dock-pane-renderer/dock-pane-renderer.component";
@@ -30,6 +34,14 @@ export class BsDockComponent {
30
34
  .subscribe((floating) => {
31
35
  floating.forEach((panel) => panel.moveToOverlay());
32
36
  });
37
+ this.parentifiedLayout$ = this.layout$.pipe(map(layout => {
38
+ const clone = deepClone(layout, true,
39
+ // []
40
+ [BsContentPane, BsDocumentHost, BsFloatingPane, BsSplitPane, BsTabGroupPane], true, this.paneCache);
41
+ this.paneCache = clone.cache;
42
+ return clone.result;
43
+ }));
44
+ this.parentifiedLayout$.pipe(takeUntil(this.destroyed$)).subscribe(console.log);
33
45
  }
34
46
  set panels(value) {
35
47
  this.panels$.next(value.toArray());
@@ -77,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
77
89
  type: HostBinding,
78
90
  args: ['style.right']
79
91
  }] } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2svZG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2svZG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGVBQWUsRUFBbUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUcxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBUzdELE1BQU0sT0FBTyxlQUFlO0lBQzFCO1FBc0JBLGdCQUFnQjtRQUNoQixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQXlCLEVBQUUsQ0FBQyxDQUFDO1FBYTFELFlBQVk7UUFFWixjQUFTLEdBQUcsSUFBSSxlQUFlLENBQWdDLEVBQUUsQ0FBQyxDQUFDO1FBTW5FLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQU14QixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBRWYsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFuRHpCLE1BQU0sSUFBSSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNyQyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUV4QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZUFBZSxDQUFlO1lBQy9DLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLGFBQWEsRUFBRSxFQUFFO1NBQ2xCLENBQUMsQ0FBQztRQUVILDhDQUE4QztRQUM5QyxzQ0FBc0M7UUFDdEMsdUNBQXVDO1FBRXZDLE9BQU87UUFFUCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzVDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3RCLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUlELElBQTJDLE1BQU0sQ0FBQyxLQUFzQztRQUN0RixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBSUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBb0IsTUFBTSxDQUFDLEtBQW1CO1FBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFJRCxJQUE4QixhQUFhLENBQUMsS0FBNkM7UUFDdkYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQVlELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDOzs0R0F6RFUsZUFBZTtnR0FBZixlQUFlLHdUQXlCVCxvQkFBb0IsMkhDeEN2QyxpcEJBZ0JBOzJGRERhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsU0FBUzswRUE2QndCLE1BQU07c0JBQWhELGVBQWU7dUJBQUMsb0JBQW9CO2dCQVNqQixNQUFNO3NCQUF6QixLQUFLO2dCQU13QixhQUFhO3NCQUExQyxZQUFZO3VCQUFDLFVBQVU7Z0JBS3hCLGdCQUFnQjtzQkFEZixXQUFXO3VCQUFDLHlCQUF5QjtnQkFPdEMsVUFBVTtzQkFKVCxXQUFXO3VCQUFDLFdBQVc7O3NCQUN2QixXQUFXO3VCQUFDLFlBQVk7O3NCQUN4QixXQUFXO3VCQUFDLGNBQWM7O3NCQUMxQixXQUFXO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgVmlld0NoaWxkcmVuLCBJbnB1dCwgT25EZXN0cm95LCBRdWVyeUxpc3QsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGNvbWJpbmVMYXRlc3RBbGwsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnNEb2NrUGFuZWxDb21wb25lbnQgfSBmcm9tICcuLi9kb2NrLXBhbmVsL2RvY2stcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IEVQYW5lVHlwZSB9IGZyb20gJy4uL2VudW1zL3BhbmUtdHlwZS5lbnVtJztcbmltcG9ydCB7IEJzRG9ja0xheW91dCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZG9jay1sYXlvdXQnO1xuaW1wb3J0IHsgQnNUYWJHcm91cFBhbmUgfSBmcm9tICcuLi9wYW5lcy90YWItZ3JvdXAtcGFuZSc7XG5pbXBvcnQgeyBCc0RvY3VtZW50SG9zdCB9IGZyb20gJy4uL3BhbmVzL2RvY3VtZW50LWhvc3QtcGFuZSc7XG5pbXBvcnQgeyBCc0RvY2tQYW5lUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi9kb2NrLXBhbmUtcmVuZGVyZXIvZG9jay1wYW5lLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1kb2NrJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY2suY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb2NrLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNEb2NrQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgdGFicyA9IG5ldyBCc1RhYkdyb3VwUGFuZSgpO1xuICAgIGNvbnN0IGRvY0hvc3QgPSBuZXcgQnNEb2N1bWVudEhvc3QoKTtcbiAgICBkb2NIb3N0LnJvb3RQYW5lID0gdGFicztcblxuICAgIHRoaXMubGF5b3V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnNEb2NrTGF5b3V0Pih7XG4gICAgICByb290UGFuZTogZG9jSG9zdCxcbiAgICAgIGZsb2F0aW5nUGFuZXM6IFtdXG4gICAgfSk7XG5cbiAgICAvLyBjb21iaW5lTGF0ZXN0KFt0aGlzLmxheW91dCQsIHRoaXMucGFuZWxzJF0pXG4gICAgLy8gICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAvLyAgIC5zdWJzY3JpYmUoKFtsYXlvdXQsIHBhbmVsc10pID0+IHtcbiAgICAgICAgXG4gICAgLy8gICB9KVxuXG4gICAgdGhpcy5mbG9hdGluZyQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGZsb2F0aW5nKSA9PiB7XG4gICAgICAgIGZsb2F0aW5nLmZvckVhY2goKHBhbmVsKSA9PiBwYW5lbC5tb3ZlVG9PdmVybGF5KCkpO1xuICAgICAgfSk7XG4gIH1cblxuICAvLyNyZWdpb24gUGFuZWxzXG4gIHBhbmVscyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJzRG9ja1BhbmVsQ29tcG9uZW50W10+KFtdKTtcbiAgQENvbnRlbnRDaGlsZHJlbihCc0RvY2tQYW5lbENvbXBvbmVudCkgc2V0IHBhbmVscyh2YWx1ZTogUXVlcnlMaXN0PEJzRG9ja1BhbmVsQ29tcG9uZW50Pikge1xuICAgIHRoaXMucGFuZWxzJC5uZXh0KHZhbHVlLnRvQXJyYXkoKSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG4gIC8vI3JlZ2lvbiBMYXlvdXRcbiAgbGF5b3V0JDogQmVoYXZpb3JTdWJqZWN0PEJzRG9ja0xheW91dD47XG4gIHB1YmxpYyBnZXQgbGF5b3V0KCkge1xuICAgIHJldHVybiB0aGlzLmxheW91dCQudmFsdWU7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCBsYXlvdXQodmFsdWU6IEJzRG9ja0xheW91dCkge1xuICAgIHRoaXMubGF5b3V0JC5uZXh0KHZhbHVlKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBmbG9hdGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJzRG9ja1BhbmVSZW5kZXJlckNvbXBvbmVudFtdPihbXSk7XG4gIEBWaWV3Q2hpbGRyZW4oJ2Zsb2F0aW5nJykgc2V0IGZsb2F0aW5nUGFuZXModmFsdWU6IFF1ZXJ5TGlzdDxCc0RvY2tQYW5lUmVuZGVyZXJDb21wb25lbnQ+KSB7XG4gICAgdGhpcy5mbG9hdGluZyQubmV4dCh2YWx1ZS50b0FycmF5KCkpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wb3NpdGlvbi1hYnNvbHV0ZScpXG4gIHBvc2l0aW9uQWJzb2x1dGUgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUudG9wJylcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5sZWZ0JylcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5ib3R0b20nKVxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLnJpZ2h0JylcbiAgcG9zaXRpb25QeCA9IDA7XG5cbiAgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0KCk7XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZmxvYXRpbmckLnZhbHVlLmZvckVhY2gocGFuZWwgPT4gcGFuZWwuZGlzcG9zZU92ZXJsYXkoKSk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIobGF5b3V0JCB8IGFzeW5jKSBhcyBsYXlvdXRcIj5cbiAgICA8YnMtZG9jay1wYW5lLXJlbmRlcmVyIFtsYXlvdXRdPVwibGF5b3V0LnJvb3RQYW5lXCI+PC9icy1kb2NrLXBhbmUtcmVuZGVyZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYW5lIG9mIGxheW91dC5mbG9hdGluZ1BhbmVzXCI+XG4gICAgICAgIDxicy1kb2NrLXBhbmUtcmVuZGVyZXIgI2Zsb2F0aW5nICpuZ0lmPVwicGFuZS5wYW5lXCIgW2xheW91dF09XCJwYW5lXCI+PC9icy1kb2NrLXBhbmUtcmVuZGVyZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbjwhLS0gPGJzLXNwbGl0dGVyPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYW5lbCBvZiAocGFuZWxzJCB8IGFzeW5jKVwiPlxuICAgICAgICA8YnMtc3BsaXQtcGFuZWw+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJwYW5lbC5wb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2JzLXNwbGl0LXBhbmVsPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9icy1zcGxpdHRlcj4gLS0+XG4iXX0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2svZG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2svZG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGVBQWUsRUFBbUMsR0FBRyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFN0csT0FBTyxFQUFlLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFRbEQsTUFBTSxPQUFPLGVBQWU7SUFDMUI7UUF1Q0EsZ0JBQWdCO1FBQ2hCLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBeUIsRUFBRSxDQUFDLENBQUM7UUFhMUQsWUFBWTtRQUVaLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBZ0MsRUFBRSxDQUFDLENBQUM7UUFNbkUscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBTXhCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFJZixlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQXRFekIsTUFBTSxJQUFJLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXhCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQWU7WUFDL0MsUUFBUSxFQUFFLE9BQU87WUFDakIsYUFBYSxFQUFFLEVBQUU7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsOENBQThDO1FBQzlDLHNDQUFzQztRQUN0Qyx1Q0FBdUM7UUFFdkMsT0FBTztRQUVQLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDNUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDdEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3ZELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FDckIsTUFBTSxFQUFFLElBQUk7WUFDWixLQUFLO1lBQ0wsQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDLEVBQzVFLElBQUksRUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBRTdCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBTUQsSUFBMkMsTUFBTSxDQUFDLEtBQXNDO1FBQ3RGLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFJRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFvQixNQUFNLENBQUMsS0FBbUI7UUFDNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUlELElBQThCLGFBQWEsQ0FBQyxLQUE2QztRQUN2RixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBY0QsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7OzRHQTVFVSxlQUFlO2dHQUFmLGVBQWUsd1RBMENULG9CQUFvQiwySEM3RHZDLGlwQkFnQkE7MkZER2EsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxTQUFTOzBFQThDd0IsTUFBTTtzQkFBaEQsZUFBZTt1QkFBQyxvQkFBb0I7Z0JBU2pCLE1BQU07c0JBQXpCLEtBQUs7Z0JBTXdCLGFBQWE7c0JBQTFDLFlBQVk7dUJBQUMsVUFBVTtnQkFLeEIsZ0JBQWdCO3NCQURmLFdBQVc7dUJBQUMseUJBQXlCO2dCQU90QyxVQUFVO3NCQUpULFdBQVc7dUJBQUMsV0FBVzs7c0JBQ3ZCLFdBQVc7dUJBQUMsWUFBWTs7c0JBQ3hCLFdBQVc7dUJBQUMsY0FBYzs7c0JBQzFCLFdBQVc7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBWaWV3Q2hpbGRyZW4sIElucHV0LCBPbkRlc3Ryb3ksIFF1ZXJ5TGlzdCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgY29tYmluZUxhdGVzdEFsbCwgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBQYXJlbnRpZmllZCwgZGVlcENsb25lIH0gZnJvbSAnQG1pbnRwbGF5ZXIvcGFyZW50aWZ5JztcbmltcG9ydCB7IEJzRG9ja1BhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vZG9jay1wYW5lbC9kb2NrLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFUGFuZVR5cGUgfSBmcm9tICcuLi9lbnVtcy9wYW5lLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBCc0RvY2tMYXlvdXQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RvY2stbGF5b3V0JztcbmltcG9ydCB7IEJzVGFiR3JvdXBQYW5lIH0gZnJvbSAnLi4vcGFuZXMvdGFiLWdyb3VwLXBhbmUnO1xuaW1wb3J0IHsgQnNEb2N1bWVudEhvc3QgfSBmcm9tICcuLi9wYW5lcy9kb2N1bWVudC1ob3N0LXBhbmUnO1xuaW1wb3J0IHsgQnNDb250ZW50UGFuZSB9IGZyb20gJy4uL3BhbmVzL2NvbnRlbnQtcGFuZSc7XG5pbXBvcnQgeyBCc0Zsb2F0aW5nUGFuZSB9IGZyb20gJy4uL3BhbmVzL2Zsb2F0aW5nLXBhbmUnO1xuaW1wb3J0IHsgQnNTcGxpdFBhbmUgfSBmcm9tICcuLi9wYW5lcy9zcGxpdC1wYW5lJztcbmltcG9ydCB7IEJzRG9ja1BhbmVSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uL2RvY2stcGFuZS1yZW5kZXJlci9kb2NrLXBhbmUtcmVuZGVyZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtZG9jaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2NrLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jay5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJzRG9ja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IHRhYnMgPSBuZXcgQnNUYWJHcm91cFBhbmUoKTtcbiAgICBjb25zdCBkb2NIb3N0ID0gbmV3IEJzRG9jdW1lbnRIb3N0KCk7XG4gICAgZG9jSG9zdC5yb290UGFuZSA9IHRhYnM7XG5cbiAgICB0aGlzLmxheW91dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJzRG9ja0xheW91dD4oe1xuICAgICAgcm9vdFBhbmU6IGRvY0hvc3QsXG4gICAgICBmbG9hdGluZ1BhbmVzOiBbXVxuICAgIH0pO1xuXG4gICAgLy8gY29tYmluZUxhdGVzdChbdGhpcy5sYXlvdXQkLCB0aGlzLnBhbmVscyRdKVxuICAgIC8vICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgLy8gICAuc3Vic2NyaWJlKChbbGF5b3V0LCBwYW5lbHNdKSA9PiB7XG4gICAgICAgIFxuICAgIC8vICAgfSlcblxuICAgIHRoaXMuZmxvYXRpbmckLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKChmbG9hdGluZykgPT4ge1xuICAgICAgICBmbG9hdGluZy5mb3JFYWNoKChwYW5lbCkgPT4gcGFuZWwubW92ZVRvT3ZlcmxheSgpKTtcbiAgICAgIH0pO1xuICAgICAgXG4gICAgdGhpcy5wYXJlbnRpZmllZExheW91dCQgPSB0aGlzLmxheW91dCQucGlwZShtYXAobGF5b3V0ID0+IHtcbiAgICAgIGNvbnN0IGNsb25lID0gZGVlcENsb25lKFxuICAgICAgICBsYXlvdXQsIHRydWUsXG4gICAgICAgIC8vIFtdXG4gICAgICAgIFtCc0NvbnRlbnRQYW5lLCBCc0RvY3VtZW50SG9zdCwgQnNGbG9hdGluZ1BhbmUsIEJzU3BsaXRQYW5lLCBCc1RhYkdyb3VwUGFuZV0sXG4gICAgICAgIHRydWUsXG4gICAgICAgIHRoaXMucGFuZUNhY2hlKTtcblxuICAgICAgdGhpcy5wYW5lQ2FjaGUgPSBjbG9uZS5jYWNoZTtcblxuICAgICAgcmV0dXJuIGNsb25lLnJlc3VsdDtcbiAgICB9KSk7XG5cbiAgICB0aGlzLnBhcmVudGlmaWVkTGF5b3V0JC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoY29uc29sZS5sb2cpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYW5lQ2FjaGU/OiBNYXA8YW55LCBhbnk+O1xuXG4gIC8vI3JlZ2lvbiBQYW5lbHNcbiAgcGFuZWxzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnNEb2NrUGFuZWxDb21wb25lbnRbXT4oW10pO1xuICBAQ29udGVudENoaWxkcmVuKEJzRG9ja1BhbmVsQ29tcG9uZW50KSBzZXQgcGFuZWxzKHZhbHVlOiBRdWVyeUxpc3Q8QnNEb2NrUGFuZWxDb21wb25lbnQ+KSB7XG4gICAgdGhpcy5wYW5lbHMkLm5leHQodmFsdWUudG9BcnJheSgpKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cbiAgLy8jcmVnaW9uIExheW91dFxuICBsYXlvdXQkOiBCZWhhdmlvclN1YmplY3Q8QnNEb2NrTGF5b3V0PjtcbiAgcHVibGljIGdldCBsYXlvdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMubGF5b3V0JC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGxheW91dCh2YWx1ZTogQnNEb2NrTGF5b3V0KSB7XG4gICAgdGhpcy5sYXlvdXQkLm5leHQodmFsdWUpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIGZsb2F0aW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnNEb2NrUGFuZVJlbmRlcmVyQ29tcG9uZW50W10+KFtdKTtcbiAgQFZpZXdDaGlsZHJlbignZmxvYXRpbmcnKSBzZXQgZmxvYXRpbmdQYW5lcyh2YWx1ZTogUXVlcnlMaXN0PEJzRG9ja1BhbmVSZW5kZXJlckNvbXBvbmVudD4pIHtcbiAgICB0aGlzLmZsb2F0aW5nJC5uZXh0KHZhbHVlLnRvQXJyYXkoKSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnBvc2l0aW9uLWFic29sdXRlJylcbiAgcG9zaXRpb25BYnNvbHV0ZSA9IHRydWU7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS50b3AnKVxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmxlZnQnKVxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJvdHRvbScpXG4gIEBIb3N0QmluZGluZygnc3R5bGUucmlnaHQnKVxuICBwb3NpdGlvblB4ID0gMDtcblxuICBwYXJlbnRpZmllZExheW91dCQ6IE9ic2VydmFibGU8UGFyZW50aWZpZWQ8QnNEb2NrTGF5b3V0Pj47XG5cbiAgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0KCk7XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZmxvYXRpbmckLnZhbHVlLmZvckVhY2gocGFuZWwgPT4gcGFuZWwuZGlzcG9zZU92ZXJsYXkoKSk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIobGF5b3V0JCB8IGFzeW5jKSBhcyBsYXlvdXRcIj5cbiAgICA8YnMtZG9jay1wYW5lLXJlbmRlcmVyIFtsYXlvdXRdPVwibGF5b3V0LnJvb3RQYW5lXCI+PC9icy1kb2NrLXBhbmUtcmVuZGVyZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYW5lIG9mIGxheW91dC5mbG9hdGluZ1BhbmVzXCI+XG4gICAgICAgIDxicy1kb2NrLXBhbmUtcmVuZGVyZXIgI2Zsb2F0aW5nICpuZ0lmPVwicGFuZS5wYW5lXCIgW2xheW91dF09XCJwYW5lXCI+PC9icy1kb2NrLXBhbmUtcmVuZGVyZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbjwhLS0gPGJzLXNwbGl0dGVyPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYW5lbCBvZiAocGFuZWxzJCB8IGFzeW5jKVwiPlxuICAgICAgICA8YnMtc3BsaXQtcGFuZWw+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJwYW5lbC5wb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2JzLXNwbGl0LXBhbmVsPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9icy1zcGxpdHRlcj4gLS0+XG4iXX0=