@mintplayer/ng-bootstrap 15.24.1 → 15.25.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.
Files changed (52) hide show
  1. package/dock/src/dock/dock.component.d.ts +3 -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 +10 -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/list-group/src/list-group-item/list-group-item.component.mjs +9 -7
  24. package/esm2020/resizable/src/resize-glyph/resize-glyph.directive.mjs +1 -1
  25. package/esm2020/treeview/index.mjs +2 -0
  26. package/esm2020/treeview/mintplayer-ng-bootstrap-treeview.mjs +5 -0
  27. package/esm2020/treeview/src/index.mjs +4 -0
  28. package/esm2020/treeview/src/treeview/treeview.component.mjs +46 -0
  29. package/esm2020/treeview/src/treeview-item/treeview-item.component.mjs +27 -0
  30. package/esm2020/treeview/src/treeview.module.mjs +21 -0
  31. package/fesm2015/mintplayer-ng-bootstrap-dock.mjs +287 -111
  32. package/fesm2015/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  33. package/fesm2015/mintplayer-ng-bootstrap-list-group.mjs +8 -6
  34. package/fesm2015/mintplayer-ng-bootstrap-list-group.mjs.map +1 -1
  35. package/fesm2015/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  36. package/fesm2015/mintplayer-ng-bootstrap-treeview.mjs +93 -0
  37. package/fesm2015/mintplayer-ng-bootstrap-treeview.mjs.map +1 -0
  38. package/fesm2020/mintplayer-ng-bootstrap-dock.mjs +285 -111
  39. package/fesm2020/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  40. package/fesm2020/mintplayer-ng-bootstrap-list-group.mjs +8 -6
  41. package/fesm2020/mintplayer-ng-bootstrap-list-group.mjs.map +1 -1
  42. package/fesm2020/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  43. package/fesm2020/mintplayer-ng-bootstrap-treeview.mjs +91 -0
  44. package/fesm2020/mintplayer-ng-bootstrap-treeview.mjs.map +1 -0
  45. package/list-group/src/list-group-item/list-group-item.component.d.ts +2 -4
  46. package/package.json +10 -2
  47. package/resizable/src/resize-glyph/resize-glyph.directive.d.ts +1 -1
  48. package/treeview/index.d.ts +1 -0
  49. package/treeview/src/index.d.ts +3 -0
  50. package/treeview/src/treeview/treeview.component.d.ts +16 -0
  51. package/treeview/src/treeview-item/treeview-item.component.d.ts +10 -0
  52. package/treeview/src/treeview.module.d.ts +11 -0
@@ -1,8 +1,9 @@
1
1
  import { OnDestroy, QueryList } from '@angular/core';
2
- import { BehaviorSubject, Subject } from 'rxjs';
2
+ import { BehaviorSubject, Observable, Subject } from 'rxjs';
3
3
  import { BsDockPanelComponent } from '../dock-panel/dock-panel.component';
4
4
  import { BsDockLayout } from '../interfaces/dock-layout';
5
5
  import { BsDockPaneRendererComponent } from '../dock-pane-renderer/dock-pane-renderer.component';
6
+ import { Parentified } from '@mintplayer/parentify';
6
7
  import * as i0 from "@angular/core";
7
8
  export declare class BsDockComponent implements OnDestroy {
8
9
  constructor();
@@ -15,6 +16,7 @@ export declare class BsDockComponent implements OnDestroy {
15
16
  set floatingPanes(value: QueryList<BsDockPaneRendererComponent>);
16
17
  positionAbsolute: boolean;
17
18
  positionPx: number;
19
+ parentifiedLayout$: Observable<Parentified<BsDockLayout>>;
18
20
  destroyed$: Subject<unknown>;
19
21
  ngOnDestroy(): void;
20
22
  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
3
  import { BsDockPanelComponent } from '../dock-panel/dock-panel.component';
4
4
  import { BsTabGroupPane } from '../panes/tab-group-pane';
5
5
  import { BsDocumentHost } from '../panes/document-host-pane';
6
+ import { BsContentPane } from '../panes/content-pane';
7
+ import { BsFloatingPane } from '../panes/floating-pane';
8
+ import { BsSplitPane } from '../panes/split-pane';
9
+ import { deepClone } from '@mintplayer/parentify';
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,10 @@ export class BsDockComponent {
30
34
  .subscribe((floating) => {
31
35
  floating.forEach((panel) => panel.moveToOverlay());
32
36
  });
37
+ this.parentifiedLayout$ = this.layout$.pipe(map(layout => deepClone(layout, true,
38
+ // []
39
+ [BsContentPane, BsDocumentHost, BsFloatingPane, BsSplitPane, BsTabGroupPane], true)));
40
+ this.parentifiedLayout$.pipe(takeUntil(this.destroyed$)).subscribe(console.log);
33
41
  }
34
42
  set panels(value) {
35
43
  this.panels$.next(value.toArray());
@@ -77,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
77
85
  type: HostBinding,
78
86
  args: ['style.right']
79
87
  }] } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2svZG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2svZG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGVBQWUsRUFBbUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUcxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBUzdELE1BQU0sT0FBTyxlQUFlO0lBQzFCO1FBc0JBLGdCQUFnQjtRQUNoQixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQXlCLEVBQUUsQ0FBQyxDQUFDO1FBYTFELFlBQVk7UUFFWixjQUFTLEdBQUcsSUFBSSxlQUFlLENBQWdDLEVBQUUsQ0FBQyxDQUFDO1FBTW5FLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQU14QixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBRWYsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFuRHpCLE1BQU0sSUFBSSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNyQyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUV4QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZUFBZSxDQUFlO1lBQy9DLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLGFBQWEsRUFBRSxFQUFFO1NBQ2xCLENBQUMsQ0FBQztRQUVILDhDQUE4QztRQUM5QyxzQ0FBc0M7UUFDdEMsdUNBQXVDO1FBRXZDLE9BQU87UUFFUCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzVDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3RCLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUlELElBQTJDLE1BQU0sQ0FBQyxLQUFzQztRQUN0RixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBSUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBb0IsTUFBTSxDQUFDLEtBQW1CO1FBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFJRCxJQUE4QixhQUFhLENBQUMsS0FBNkM7UUFDdkYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQVlELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDOzs0R0F6RFUsZUFBZTtnR0FBZixlQUFlLHdUQXlCVCxvQkFBb0IsMkhDeEN2QyxpcEJBZ0JBOzJGRERhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsU0FBUzswRUE2QndCLE1BQU07c0JBQWhELGVBQWU7dUJBQUMsb0JBQW9CO2dCQVNqQixNQUFNO3NCQUF6QixLQUFLO2dCQU13QixhQUFhO3NCQUExQyxZQUFZO3VCQUFDLFVBQVU7Z0JBS3hCLGdCQUFnQjtzQkFEZixXQUFXO3VCQUFDLHlCQUF5QjtnQkFPdEMsVUFBVTtzQkFKVCxXQUFXO3VCQUFDLFdBQVc7O3NCQUN2QixXQUFXO3VCQUFDLFlBQVk7O3NCQUN4QixXQUFXO3VCQUFDLGNBQWM7O3NCQUMxQixXQUFXO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgVmlld0NoaWxkcmVuLCBJbnB1dCwgT25EZXN0cm95LCBRdWVyeUxpc3QsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGNvbWJpbmVMYXRlc3RBbGwsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnNEb2NrUGFuZWxDb21wb25lbnQgfSBmcm9tICcuLi9kb2NrLXBhbmVsL2RvY2stcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IEVQYW5lVHlwZSB9IGZyb20gJy4uL2VudW1zL3BhbmUtdHlwZS5lbnVtJztcbmltcG9ydCB7IEJzRG9ja0xheW91dCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZG9jay1sYXlvdXQnO1xuaW1wb3J0IHsgQnNUYWJHcm91cFBhbmUgfSBmcm9tICcuLi9wYW5lcy90YWItZ3JvdXAtcGFuZSc7XG5pbXBvcnQgeyBCc0RvY3VtZW50SG9zdCB9IGZyb20gJy4uL3BhbmVzL2RvY3VtZW50LWhvc3QtcGFuZSc7XG5pbXBvcnQgeyBCc0RvY2tQYW5lUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi9kb2NrLXBhbmUtcmVuZGVyZXIvZG9jay1wYW5lLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1kb2NrJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY2suY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb2NrLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNEb2NrQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgdGFicyA9IG5ldyBCc1RhYkdyb3VwUGFuZSgpO1xuICAgIGNvbnN0IGRvY0hvc3QgPSBuZXcgQnNEb2N1bWVudEhvc3QoKTtcbiAgICBkb2NIb3N0LnJvb3RQYW5lID0gdGFicztcblxuICAgIHRoaXMubGF5b3V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnNEb2NrTGF5b3V0Pih7XG4gICAgICByb290UGFuZTogZG9jSG9zdCxcbiAgICAgIGZsb2F0aW5nUGFuZXM6IFtdXG4gICAgfSk7XG5cbiAgICAvLyBjb21iaW5lTGF0ZXN0KFt0aGlzLmxheW91dCQsIHRoaXMucGFuZWxzJF0pXG4gICAgLy8gICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAvLyAgIC5zdWJzY3JpYmUoKFtsYXlvdXQsIHBhbmVsc10pID0+IHtcbiAgICAgICAgXG4gICAgLy8gICB9KVxuXG4gICAgdGhpcy5mbG9hdGluZyQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGZsb2F0aW5nKSA9PiB7XG4gICAgICAgIGZsb2F0aW5nLmZvckVhY2goKHBhbmVsKSA9PiBwYW5lbC5tb3ZlVG9PdmVybGF5KCkpO1xuICAgICAgfSk7XG4gIH1cblxuICAvLyNyZWdpb24gUGFuZWxzXG4gIHBhbmVscyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJzRG9ja1BhbmVsQ29tcG9uZW50W10+KFtdKTtcbiAgQENvbnRlbnRDaGlsZHJlbihCc0RvY2tQYW5lbENvbXBvbmVudCkgc2V0IHBhbmVscyh2YWx1ZTogUXVlcnlMaXN0PEJzRG9ja1BhbmVsQ29tcG9uZW50Pikge1xuICAgIHRoaXMucGFuZWxzJC5uZXh0KHZhbHVlLnRvQXJyYXkoKSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG4gIC8vI3JlZ2lvbiBMYXlvdXRcbiAgbGF5b3V0JDogQmVoYXZpb3JTdWJqZWN0PEJzRG9ja0xheW91dD47XG4gIHB1YmxpYyBnZXQgbGF5b3V0KCkge1xuICAgIHJldHVybiB0aGlzLmxheW91dCQudmFsdWU7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCBsYXlvdXQodmFsdWU6IEJzRG9ja0xheW91dCkge1xuICAgIHRoaXMubGF5b3V0JC5uZXh0KHZhbHVlKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBmbG9hdGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJzRG9ja1BhbmVSZW5kZXJlckNvbXBvbmVudFtdPihbXSk7XG4gIEBWaWV3Q2hpbGRyZW4oJ2Zsb2F0aW5nJykgc2V0IGZsb2F0aW5nUGFuZXModmFsdWU6IFF1ZXJ5TGlzdDxCc0RvY2tQYW5lUmVuZGVyZXJDb21wb25lbnQ+KSB7XG4gICAgdGhpcy5mbG9hdGluZyQubmV4dCh2YWx1ZS50b0FycmF5KCkpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wb3NpdGlvbi1hYnNvbHV0ZScpXG4gIHBvc2l0aW9uQWJzb2x1dGUgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUudG9wJylcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5sZWZ0JylcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5ib3R0b20nKVxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLnJpZ2h0JylcbiAgcG9zaXRpb25QeCA9IDA7XG5cbiAgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0KCk7XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZmxvYXRpbmckLnZhbHVlLmZvckVhY2gocGFuZWwgPT4gcGFuZWwuZGlzcG9zZU92ZXJsYXkoKSk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIobGF5b3V0JCB8IGFzeW5jKSBhcyBsYXlvdXRcIj5cbiAgICA8YnMtZG9jay1wYW5lLXJlbmRlcmVyIFtsYXlvdXRdPVwibGF5b3V0LnJvb3RQYW5lXCI+PC9icy1kb2NrLXBhbmUtcmVuZGVyZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYW5lIG9mIGxheW91dC5mbG9hdGluZ1BhbmVzXCI+XG4gICAgICAgIDxicy1kb2NrLXBhbmUtcmVuZGVyZXIgI2Zsb2F0aW5nICpuZ0lmPVwicGFuZS5wYW5lXCIgW2xheW91dF09XCJwYW5lXCI+PC9icy1kb2NrLXBhbmUtcmVuZGVyZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbjwhLS0gPGJzLXNwbGl0dGVyPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYW5lbCBvZiAocGFuZWxzJCB8IGFzeW5jKVwiPlxuICAgICAgICA8YnMtc3BsaXQtcGFuZWw+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJwYW5lbC5wb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2JzLXNwbGl0LXBhbmVsPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9icy1zcGxpdHRlcj4gLS0+XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2svZG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2svZG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGVBQWUsRUFBbUMsR0FBRyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0csT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFHMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdsRCxPQUFPLEVBQWUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFPL0QsTUFBTSxPQUFPLGVBQWU7SUFDMUI7UUErQkEsZ0JBQWdCO1FBQ2hCLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBeUIsRUFBRSxDQUFDLENBQUM7UUFhMUQsWUFBWTtRQUVaLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBZ0MsRUFBRSxDQUFDLENBQUM7UUFNbkUscUJBQWdCLEdBQUcsSUFBSSxDQUFD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ZW4sIElucHV0LCBPbkRlc3Ryb3ksIFF1ZXJ5TGlzdCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgY29tYmluZUxhdGVzdEFsbCwgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJzRG9ja1BhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vZG9jay1wYW5lbC9kb2NrLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFUGFuZVR5cGUgfSBmcm9tICcuLi9lbnVtcy9wYW5lLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBCc0RvY2tMYXlvdXQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RvY2stbGF5b3V0JztcbmltcG9ydCB7IEJzVGFiR3JvdXBQYW5lIH0gZnJvbSAnLi4vcGFuZXMvdGFiLWdyb3VwLXBhbmUnO1xuaW1wb3J0IHsgQnNEb2N1bWVudEhvc3QgfSBmcm9tICcuLi9wYW5lcy9kb2N1bWVudC1ob3N0LXBhbmUnO1xuaW1wb3J0IHsgQnNDb250ZW50UGFuZSB9IGZyb20gJy4uL3BhbmVzL2NvbnRlbnQtcGFuZSc7XG5pbXBvcnQgeyBCc0Zsb2F0aW5nUGFuZSB9IGZyb20gJy4uL3BhbmVzL2Zsb2F0aW5nLXBhbmUnO1xuaW1wb3J0IHsgQnNTcGxpdFBhbmUgfSBmcm9tICcuLi9wYW5lcy9zcGxpdC1wYW5lJztcbmltcG9ydCB7IEJzRG9ja1BhbmVSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uL2RvY2stcGFuZS1yZW5kZXJlci9kb2NrLXBhbmUtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBQYXJlbnRpZmllZCwgZGVlcENsb25lIH0gZnJvbSAnQG1pbnRwbGF5ZXIvcGFyZW50aWZ5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtZG9jaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2NrLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jay5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJzRG9ja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IHRhYnMgPSBuZXcgQnNUYWJHcm91cFBhbmUoKTtcbiAgICBjb25zdCBkb2NIb3N0ID0gbmV3IEJzRG9jdW1lbnRIb3N0KCk7XG4gICAgZG9jSG9zdC5yb290UGFuZSA9IHRhYnM7XG5cbiAgICB0aGlzLmxheW91dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJzRG9ja0xheW91dD4oe1xuICAgICAgcm9vdFBhbmU6IGRvY0hvc3QsXG4gICAgICBmbG9hdGluZ1BhbmVzOiBbXVxuICAgIH0pO1xuXG4gICAgLy8gY29tYmluZUxhdGVzdChbdGhpcy5sYXlvdXQkLCB0aGlzLnBhbmVscyRdKVxuICAgIC8vICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgLy8gICAuc3Vic2NyaWJlKChbbGF5b3V0LCBwYW5lbHNdKSA9PiB7XG4gICAgICAgIFxuICAgIC8vICAgfSlcblxuICAgIHRoaXMuZmxvYXRpbmckLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKChmbG9hdGluZykgPT4ge1xuICAgICAgICBmbG9hdGluZy5mb3JFYWNoKChwYW5lbCkgPT4gcGFuZWwubW92ZVRvT3ZlcmxheSgpKTtcbiAgICAgIH0pO1xuICAgICAgXG4gICAgdGhpcy5wYXJlbnRpZmllZExheW91dCQgPSB0aGlzLmxheW91dCQucGlwZShtYXAobGF5b3V0ID0+IGRlZXBDbG9uZShcbiAgICAgIGxheW91dCwgdHJ1ZSxcbiAgICAgIC8vIFtdXG4gICAgICBbQnNDb250ZW50UGFuZSwgQnNEb2N1bWVudEhvc3QsIEJzRmxvYXRpbmdQYW5lLCBCc1NwbGl0UGFuZSwgQnNUYWJHcm91cFBhbmVdLFxuICAgICAgdHJ1ZVxuICAgICkpKTtcblxuICAgIHRoaXMucGFyZW50aWZpZWRMYXlvdXQkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZShjb25zb2xlLmxvZyk7XG4gIH1cblxuICAvLyNyZWdpb24gUGFuZWxzXG4gIHBhbmVscyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJzRG9ja1BhbmVsQ29tcG9uZW50W10+KFtdKTtcbiAgQENvbnRlbnRDaGlsZHJlbihCc0RvY2tQYW5lbENvbXBvbmVudCkgc2V0IHBhbmVscyh2YWx1ZTogUXVlcnlMaXN0PEJzRG9ja1BhbmVsQ29tcG9uZW50Pikge1xuICAgIHRoaXMucGFuZWxzJC5uZXh0KHZhbHVlLnRvQXJyYXkoKSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG4gIC8vI3JlZ2lvbiBMYXlvdXRcbiAgbGF5b3V0JDogQmVoYXZpb3JTdWJqZWN0PEJzRG9ja0xheW91dD47XG4gIHB1YmxpYyBnZXQgbGF5b3V0KCkge1xuICAgIHJldHVybiB0aGlzLmxheW91dCQudmFsdWU7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCBsYXlvdXQodmFsdWU6IEJzRG9ja0xheW91dCkge1xuICAgIHRoaXMubGF5b3V0JC5uZXh0KHZhbHVlKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBmbG9hdGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJzRG9ja1BhbmVSZW5kZXJlckNvbXBvbmVudFtdPihbXSk7XG4gIEBWaWV3Q2hpbGRyZW4oJ2Zsb2F0aW5nJykgc2V0IGZsb2F0aW5nUGFuZXModmFsdWU6IFF1ZXJ5TGlzdDxCc0RvY2tQYW5lUmVuZGVyZXJDb21wb25lbnQ+KSB7XG4gICAgdGhpcy5mbG9hdGluZyQubmV4dCh2YWx1ZS50b0FycmF5KCkpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wb3NpdGlvbi1hYnNvbHV0ZScpXG4gIHBvc2l0aW9uQWJzb2x1dGUgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUudG9wJylcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5sZWZ0JylcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5ib3R0b20nKVxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLnJpZ2h0JylcbiAgcG9zaXRpb25QeCA9IDA7XG5cbiAgcGFyZW50aWZpZWRMYXlvdXQkOiBPYnNlcnZhYmxlPFBhcmVudGlmaWVkPEJzRG9ja0xheW91dD4+O1xuXG4gIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdCgpO1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmZsb2F0aW5nJC52YWx1ZS5mb3JFYWNoKHBhbmVsID0+IHBhbmVsLmRpc3Bvc2VPdmVybGF5KCkpO1xuICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48bmctY29udGFpbmVyICpuZ0lmPVwiKGxheW91dCQgfCBhc3luYykgYXMgbGF5b3V0XCI+XG4gICAgPGJzLWRvY2stcGFuZS1yZW5kZXJlciBbbGF5b3V0XT1cImxheW91dC5yb290UGFuZVwiPjwvYnMtZG9jay1wYW5lLXJlbmRlcmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGFuZSBvZiBsYXlvdXQuZmxvYXRpbmdQYW5lc1wiPlxuICAgICAgICA8YnMtZG9jay1wYW5lLXJlbmRlcmVyICNmbG9hdGluZyAqbmdJZj1cInBhbmUucGFuZVwiIFtsYXlvdXRdPVwicGFuZVwiPjwvYnMtZG9jay1wYW5lLXJlbmRlcmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48IS0tIDxicy1zcGxpdHRlcj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGFuZWwgb2YgKHBhbmVscyQgfCBhc3luYylcIj5cbiAgICAgICAgPGJzLXNwbGl0LXBhbmVsPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwicGFuZWwucG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9icy1zcGxpdC1wYW5lbD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvYnMtc3BsaXR0ZXI+IC0tPlxuIl19