@tetacom/ng-components 1.0.145 → 1.0.147

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.
@@ -60,7 +60,6 @@ export declare class TableComponent<T> implements OnInit, OnDestroy, AfterViewIn
60
60
  verticalAlign: typeof VerticalAlign;
61
61
  align: typeof Align;
62
62
  private _alive;
63
- private _bodyElement;
64
63
  private _headElement;
65
64
  private _state;
66
65
  constructor(_svc: TableService<T>, _elementRef: ElementRef);
@@ -80,7 +79,7 @@ export declare class TableComponent<T> implements OnInit, OnDestroy, AfterViewIn
80
79
  private eventIsOnRow;
81
80
  private getCoordinates;
82
81
  private getRow;
83
- private onScroll;
82
+ onScroll: (event: any) => void;
84
83
  static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent<any>, never>;
85
84
  static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent<any>, "teta-table", never, { "data": "data"; "columns": "columns"; "dict": "dict"; "filterOptions": "filterOptions"; "state": "state"; "cookieName": "cookieName"; "virtual": "virtual"; "detailComponent": "detailComponent"; "activeRow": "activeRow"; "selectedRows": "selectedRows"; "selectType": "selectType"; "aggregate": "aggregate"; "trackRow": "trackRow"; "trackColumns": "trackColumns"; "editType": "editType"; "editEvent": "editEvent"; "rowEditable": "rowEditable"; "rowClass": "rowClass"; "scrollToIndex": "scrollToIndex"; "showHeadCellMenu": "showHeadCellMenu"; "contextMenu": "contextMenu"; "contextMenuOpen": "contextMenuOpen"; }, { "contextMenuOpenChange": "contextMenuOpenChange"; "stateChange": "stateChange"; "bodyLeft": "bodyLeft"; "activeRowChange": "activeRowChange"; "selectedRowsChange": "selectedRowsChange"; "cellClick": "cellClick"; "cellDoubleClick": "cellDoubleClick"; "cellFocus": "cellFocus"; "cellKeyDown": "cellKeyDown"; "rowLeft": "rowLeft"; "rowEditStart": "rowEditStart"; "rowEditEnd": "rowEditEnd"; "cellEditStart": "cellEditStart"; "cellEditEnd": "cellEditEnd"; "valueChange": "valueChange"; "tableService": "tableService"; }, never, ["*"], false>;
86
85
  }
@@ -1,4 +1,4 @@
1
- import { ChangeDetectorRef, ElementRef, OnDestroy, OnInit, Type } from '@angular/core';
1
+ import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, Type } from '@angular/core';
2
2
  import { TableColumn } from '../contract/table-column';
3
3
  import { TableService } from '../service/table.service';
4
4
  import { DetailComponentBase } from '../base/detail-component-base';
@@ -26,6 +26,7 @@ export declare class TableBodyComponent<T> implements OnInit, OnDestroy {
26
26
  trackColumns: (index: number, column: TableColumn) => any;
27
27
  viewport: CdkVirtualScrollViewport;
28
28
  private readonly tableBodyClass;
29
+ scroll: EventEmitter<Event>;
29
30
  set data(data: T[]);
30
31
  get data(): T[];
31
32
  dict: IDictionary<IIdName<any>[]>;
@@ -56,5 +57,5 @@ export declare class TableBodyComponent<T> implements OnInit, OnDestroy {
56
57
  private getMin;
57
58
  private getMax;
58
59
  static ɵfac: i0.ɵɵFactoryDeclaration<TableBodyComponent<any>, never>;
59
- static ɵcmp: i0.ɵɵComponentDeclaration<TableBodyComponent<any>, "teta-table-body", never, { "virtual": "virtual"; "activeRow": "activeRow"; "selectedRows": "selectedRows"; "additionalComponent": "additionalComponent"; "aggregate": "aggregate"; "selectType": "selectType"; "rowClass": "rowClass"; "trackRow": "trackRow"; "trackColumns": "trackColumns"; }, {}, never, never, false>;
60
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableBodyComponent<any>, "teta-table-body", never, { "virtual": "virtual"; "activeRow": "activeRow"; "selectedRows": "selectedRows"; "additionalComponent": "additionalComponent"; "aggregate": "aggregate"; "selectType": "selectType"; "rowClass": "rowClass"; "trackRow": "trackRow"; "trackColumns": "trackColumns"; }, { "scroll": "scroll"; }, never, ["*"], false>;
60
61
  }
@@ -1,4 +1,4 @@
1
- import { ChangeDetectorRef, EventEmitter, NgZone, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
1
+ import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
2
2
  import { ITreeData } from '../../../common/contract/i-tree-data';
3
3
  import { TreeService } from '../tree.service';
4
4
  import { TetaTemplateDirective } from '../../../directive/teta-template/teta-template.directive';
@@ -6,6 +6,7 @@ import { CdkVirtualScrollViewport } from "@angular/cdk/scrolling";
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class TreeComponent implements OnInit, OnChanges, OnDestroy {
8
8
  private _service;
9
+ private _elementRef;
9
10
  private _cdr;
10
11
  private _zone;
11
12
  set data(data: ITreeData[]);
@@ -17,14 +18,15 @@ export declare class TreeComponent implements OnInit, OnChanges, OnDestroy {
17
18
  set openItems(items: ITreeData[]);
18
19
  service: EventEmitter<TreeService>;
19
20
  openItemsChange: EventEmitter<any>;
20
- virtualScroll: CdkVirtualScrollViewport;
21
+ viewport: CdkVirtualScrollViewport;
21
22
  template: TetaTemplateDirective;
22
23
  childPadding: boolean;
23
24
  displayData: ITreeData[];
24
25
  private _data;
25
26
  private _openItems;
26
27
  private _alive;
27
- constructor(_service: TreeService, _cdr: ChangeDetectorRef, _zone: NgZone);
28
+ private _obs;
29
+ constructor(_service: TreeService, _elementRef: ElementRef, _cdr: ChangeDetectorRef, _zone: NgZone);
28
30
  set compareItems(func: (item: ITreeData) => any);
29
31
  get compareItems(): (item: ITreeData) => any;
30
32
  private readonly treeClass;
@@ -35,6 +37,8 @@ export declare class TreeComponent implements OnInit, OnChanges, OnDestroy {
35
37
  trackRow: (index: number, item: ITreeData) => any;
36
38
  private hasChildren;
37
39
  private getDisplayData;
40
+ private addResizeObserver;
41
+ private removeResizeObserver;
38
42
  static ɵfac: i0.ɵɵFactoryDeclaration<TreeComponent, never>;
39
43
  static ɵcmp: i0.ɵɵComponentDeclaration<TreeComponent, "teta-tree", never, { "data": "data"; "padding": "padding"; "childNodeName": "childNodeName"; "virtual": "virtual"; "height": "height"; "openItems": "openItems"; "compareItems": "compareItems"; }, { "service": "service"; "openItemsChange": "openItemsChange"; }, ["template"], never, false>;
40
44
  }
@@ -50,27 +50,21 @@ export class PositionUtil {
50
50
  rect.minWidth = containerWidth;
51
51
  }
52
52
  if (verticalAlign === VerticalAlign.auto) {
53
- if (containerPosition.bottom <=
54
- window.innerHeight / 2 ||
55
- containerPosition.bottom +
56
- (elementPosition.bottom - elementPosition.top) <=
57
- window.innerHeight) {
58
- verticalAlign = VerticalAlign.bottom;
53
+ if (containerPosition.bottom + elementHeight > window.innerHeight &&
54
+ containerPosition.bottom >= window.innerHeight / 2) {
55
+ verticalAlign = VerticalAlign.top;
59
56
  }
60
57
  else {
61
- verticalAlign = VerticalAlign.top;
58
+ verticalAlign = VerticalAlign.bottom;
62
59
  }
63
60
  }
64
61
  if (verticalAlign === VerticalAlign.innerAuto) {
65
- if (containerPosition.bottom <=
66
- window.innerHeight / 2 ||
67
- containerPosition.bottom +
68
- (elementPosition.bottom - elementPosition.top) <=
69
- window.innerHeight) {
70
- verticalAlign = VerticalAlign.innerBottom;
62
+ if (containerPosition.bottom + elementHeight > window.innerHeight &&
63
+ containerPosition.bottom >= window.innerHeight / 2) {
64
+ verticalAlign = VerticalAlign.innerTop;
71
65
  }
72
66
  else {
73
- verticalAlign = VerticalAlign.innerTop;
67
+ verticalAlign = VerticalAlign.innerBottom;
74
68
  }
75
69
  }
76
70
  if (verticalAlign === VerticalAlign.top) {
@@ -142,4 +136,4 @@ export class PositionUtil {
142
136
  return maxWidth;
143
137
  }
144
138
  }
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24tdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tb24vdXRpbC9wb3NpdGlvbi11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFMUQsTUFBTSxPQUFPLFlBQVk7SUFDaEIsTUFBTSxDQUFDLFdBQVcsQ0FDdkIsaUJBQXdCLEVBQ3hCLGVBQXNCLEVBQ3RCLEtBQVksRUFDWixhQUE0QixFQUM1QixTQUFpQixDQUFDLEVBQ2xCLGlCQUF5QixDQUFDLEVBQzFCLHdCQUErQjtRQUM3QixJQUFJLEVBQUUsQ0FBQztRQUNQLEtBQUssRUFBRSxDQUFDO1FBQ1IsR0FBRyxFQUFFLENBQUM7UUFDTixNQUFNLEVBQUUsQ0FBQztLQUNWO1FBRUQsTUFBTSxJQUFJLEdBQVUsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQztRQUNsRSxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUM7UUFDbkUsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQztRQUN4RSxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDO1FBQ3pFLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDeEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDbkIsSUFBSSxNQUFNLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLElBQUksR0FBRyxZQUFZLEVBQUU7Z0JBQzdELEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxD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QUMsQ0FBQztRQUNkLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWU7UUFDdkMsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lSZWN0fSBmcm9tICcuLi9jb250cmFjdC9pLXJlY3QnO1xuaW1wb3J0IHtBbGlnbn0gZnJvbSAnLi4vZW51bS9hbGlnbi5lbnVtJztcbmltcG9ydCB7VmVydGljYWxBbGlnbn0gZnJvbSAnLi4vZW51bS92ZXJ0aWNhbC1hbGlnbi5lbnVtJztcblxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uVXRpbCB7XG4gIHB1YmxpYyBzdGF0aWMgZ2V0UG9zaXRpb24oXG4gICAgY29udGFpbmVyUG9zaXRpb246IElSZWN0LFxuICAgIGVsZW1lbnRQb3NpdGlvbjogSVJlY3QsXG4gICAgYWxpZ246IEFsaWduLFxuICAgIHZlcnRpY2FsQWxpZ246IFZlcnRpY2FsQWxpZ24sXG4gICAgbWFyZ2luOiBudW1iZXIgPSAwLFxuICAgIHZlcnRpY2FsTWFyZ2luOiBudW1iZXIgPSAwLFxuICAgIHRyYW5zZm9ybWVkUGFyZW50UmVjdDogSVJlY3QgPSB7XG4gICAgICBsZWZ0OiAwLFxuICAgICAgcmlnaHQ6IDAsXG4gICAgICB0b3A6IDAsXG4gICAgICBib3R0b206IDBcbiAgICB9XG4gICk6IElSZWN0IHtcbiAgICBjb25zdCByZWN0OiBJUmVjdCA9IHt9O1xuICAgIGNvbnN0IGVsZW1lbnRXaWR0aCA9IGVsZW1lbnRQb3NpdGlvbi5yaWdodCAtIGVsZW1lbnRQb3NpdGlvbi5sZWZ0O1xuICAgIGNvbnN0IGVsZW1lbnRIZWlnaHQgPSBlbGVtZW50UG9zaXRpb24uYm90dG9tIC0gZWxlbWVudFBvc2l0aW9uLnRvcDtcbiAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IGNvbnRhaW5lclBvc2l0aW9uLnJpZ2h0IC0gY29udGFpbmVyUG9zaXRpb24ubGVmdDtcbiAgICBjb25zdCBjb250YWluZXJIZWlnaHQgPSBjb250YWluZXJQb3NpdGlvbi5ib3R0b20gLSBjb250YWluZXJQb3NpdGlvbi50b3A7XG4gICAgaWYgKGFsaWduID09PSBBbGlnbi5hdXRvKSB7XG4gICAgICBhbGlnbiA9IEFsaWduLmxlZnQ7XG4gICAgICBpZiAod2luZG93LmlubmVyV2lkdGggPCBjb250YWluZXJQb3NpdGlvbi5sZWZ0ICsgZWxlbWVudFdpZHRoKSB7XG4gICAgICAgIGFsaWduID0gQWxpZ24ucmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChhbGlnbiA9PT0gQWxpZ24ubGVmdCkge1xuICAgICAgcmVjdC5sZWZ0ID0gY29udGFpbmVyUG9zaXRpb24ubGVmdCArIG1hcmdpbjtcbiAgICB9XG4gICAgaWYgKGFsaWduID09PSBBbGlnbi5yaWdodCkge1xuICAgICAgcmVjdC5sZWZ0ID0gY29udGFpbmVyUG9zaXRpb24ucmlnaHQgLSBlbGVtZW50V2lkdGggLSBtYXJnaW47XG4gICAgfVxuICAgIGlmIChhbGlnbiA9PT0gQWxpZ24uY2VudGVyKSB7XG4gICAgICByZWN0LmxlZnQgPVxuICAgICAgICAoY29udGFpbmVyUG9zaXRpb24ubGVmdCArIGNvbnRhaW5lclBvc2l0aW9uLnJpZ2h0KSAvIDIgLVxuICAgICAgICBlbGVtZW50V2lkdGggLyAyO1xuICAgIH1cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLm91dGVyQXV0bykge1xuICAgICAgYWxpZ24gPSBBbGlnbi5vdXRlclJpZ2h0O1xuICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgY29udGFpbmVyUG9zaXRpb24ucmlnaHQgKyBlbGVtZW50V2lkdGgpIHtcbiAgICAgICAgYWxpZ24gPSBBbGlnbi5vdXRlckxlZnQ7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChhbGlnbiA9PT0gQWxpZ24ub3V0ZXJMZWZ0KSB7XG4gICAgICByZWN0LmxlZnQgPSBjb250YWluZXJQb3NpdGlvbi5sZWZ0IC0gZWxlbWVudFdpZHRoICsgbWFyZ2luO1xuICAgIH1cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLm91dGVyUmlnaHQpIHtcbiAgICAgIHJlY3QubGVmdCA9IGNvbnRhaW5lclBvc2l0aW9uLnJpZ2h0IC0gbWFyZ2luO1xuICAgIH1cblxuICAgIGlmIChhbGlnbiA9PT0gQWxpZ24uZml0V2lkdGgpIHtcbiAgICAgIHJlY3QubGVmdCA9IGNvbnRhaW5lclBvc2l0aW9uLmxlZnQgKyBtYXJnaW47XG4gICAgICByZWN0LnJpZ2h0ID0gd2luZG93LmlubmVyV2lkdGggLSBjb250YWluZXJQb3NpdGlvbi5yaWdodCArIG1hcmdpbjtcbiAgICB9XG5cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLm1pbldpZHRoKSB7XG4gICAgICByZWN0LmxlZnQgPSBjb250YWluZXJQb3NpdGlvbi5sZWZ0ICsgbWFyZ2luO1xuICAgICAgcmVjdC5taW5XaWR0aCA9IGNvbnRhaW5lcldpZHRoO1xuICAgIH1cblxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmF1dG8pIHtcbiAgICAgIGlmIChcbiAgICAgICAgY29udGFpbmVyUG9zaXRpb24uYm90dG9tIDw9XG4gICAgICAgIHdpbmRvdy5pbm5lckhlaWdodCAvIDIgfHxcbiAgICAgICAgY29udGFpbmVyUG9zaXRpb24uYm90dG9tICtcbiAgICAgICAgKGVsZW1lbnRQb3NpdGlvbi5ib3R0b20gLSBlbGVtZW50UG9zaXRpb24udG9wKSA8PVxuICAgICAgICB3aW5kb3cuaW5uZXJIZWlnaHRcbiAgICAgICkge1xuICAgICAgICB2ZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbi5ib3R0b207XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2ZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbi50b3A7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmlubmVyQXV0bykge1xuICAgICAgaWYgKFxuICAgICAgICBjb250YWluZXJQb3NpdGlvbi5ib3R0b20gPD1cbiAgICAgICAgd2luZG93LmlubmVySGVpZ2h0IC8gMiB8fFxuICAgICAgICBjb250YWluZXJQb3NpdGlvbi5ib3R0b20gK1xuICAgICAgICAoZWxlbWVudFBvc2l0aW9uLmJvdHRvbSAtIGVsZW1lbnRQb3NpdGlvbi50b3ApIDw9XG4gICAgICAgIHdpbmRvdy5pbm5lckhlaWdodFxuICAgICAgKSB7XG4gICAgICAgIHZlcnRpY2FsQWxpZ24gPSBWZXJ0aWNhbEFsaWduLmlubmVyQm90dG9tO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmVydGljYWxBbGlnbiA9IFZlcnRpY2FsQWxpZ24uaW5uZXJUb3A7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLnRvcCkge1xuICAgICAgcmVjdC50b3AgPSBjb250YWluZXJQb3NpdGlvbi50b3AgLSBlbGVtZW50SGVpZ2h0IC0gdmVydGljYWxNYXJnaW47XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmJvdHRvbSkge1xuICAgICAgcmVjdC50b3AgPSBjb250YWluZXJQb3NpdGlvbi5ib3R0b20gKyB2ZXJ0aWNhbE1hcmdpbjtcbiAgICB9XG4gICAgaWYgKHZlcnRpY2FsQWxpZ24gPT09IFZlcnRpY2FsQWxpZ24uaW5uZXJUb3ApIHtcbiAgICAgIHJlY3QudG9wID0gY29udGFpbmVyUG9zaXRpb24uYm90dG9tIC0gZWxlbWVudEhlaWdodCAtIHZlcnRpY2FsTWFyZ2luO1xuICAgIH1cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5pbm5lckJvdHRvbSkge1xuICAgICAgcmVjdC50b3AgPSBjb250YWluZXJQb3NpdGlvbi50b3AgKyB2ZXJ0aWNhbE1hcmdpbjtcbiAgICB9XG4gICAgaWYgKHZlcnRpY2FsQWxpZ24gPT09IFZlcnRpY2FsQWxpZ24uY2VudGVyKSB7XG4gICAgICByZWN0LnRvcCA9XG4gICAgICAgIChjb250YWluZXJQb3NpdGlvbi50b3AgKyBjb250YWluZXJQb3NpdGlvbi5ib3R0b20pIC8gMiAtXG4gICAgICAgIGVsZW1lbnRIZWlnaHQgLyAyO1xuICAgIH1cblxuICAgIGlmIChyZWN0LmxlZnQgKyBlbGVtZW50V2lkdGggPiB3aW5kb3cuaW5uZXJXaWR0aCkge1xuICAgICAgcmVjdC5sZWZ0ID0gd2luZG93LmlubmVyV2lkdGggLSBlbGVtZW50V2lkdGg7XG4gICAgfVxuICAgIGlmIChyZWN0LmxlZnQgPCAwKSB7XG4gICAgICByZWN0LmxlZnQgPSAwO1xuICAgIH1cbiAgICBpZiAocmVjdC50b3AgKyBlbGVtZW50SGVpZ2h0ID4gd2luZG93LmlubmVySGVpZ2h0IHx8IHJlY3QuYm90dG9tIDwgMCkge1xuICAgICAgcmVjdC5ib3R0b20gPSAwO1xuICAgIH1cbiAgICBpZiAocmVjdC50b3AgPCAwKSB7XG4gICAgICByZWN0LnRvcCA9IDA7XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmJvdHRvbSB8fCB2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmNlbnRlciB8fCB2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmlubmVyQm90dG9tKSB7XG4gICAgICByZWN0Lm1heEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIHJlY3QudG9wO1xuICAgIH1cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi50b3AgfHwgdmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5pbm5lclRvcCkge1xuICAgICAgcmVjdC5tYXhIZWlnaHQgPSBjb250YWluZXJQb3NpdGlvbi50b3A7XG4gICAgfVxuICAgIGlmICghaXNOYU4ocmVjdC5sZWZ0KSkge1xuICAgICAgcmVjdC5sZWZ0ID0gcmVjdC5sZWZ0IC0gdHJhbnNmb3JtZWRQYXJlbnRSZWN0LmxlZnQ7XG4gICAgfVxuICAgIGlmICghaXNOYU4ocmVjdC5yaWdodCkpIHtcbiAgICAgIHJlY3QucmlnaHQgPSByZWN0LnJpZ2h0IC0gdHJhbnNmb3JtZWRQYXJlbnRSZWN0LmxlZnQ7XG4gICAgfVxuICAgIGlmICghaXNOYU4ocmVjdC50b3ApKSB7XG4gICAgICByZWN0LnRvcCA9IHJlY3QudG9wIC0gdHJhbnNmb3JtZWRQYXJlbnRSZWN0LnRvcDtcbiAgICB9XG4gICAgaWYgKCFpc05hTihyZWN0LmJvdHRvbSkpIHtcbiAgICAgIHJlY3QuYm90dG9tID0gcmVjdC5ib3R0b20gPyByZWN0LmJvdHRvbSAtIHRyYW5zZm9ybWVkUGFyZW50UmVjdC5ib3R0b20gOiByZWN0LmJvdHRvbTtcbiAgICB9XG4gICAgcmV0dXJuIHJlY3Q7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNldEVsZW1lbnRQb3NpdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCwgcmVjdDogSVJlY3QpOiB2b2lkIHtcbiAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSByZWN0LmxlZnQgIT0gbnVsbCA/IGAke3JlY3QubGVmdH1weGAgOiAnJztcbiAgICBlbGVtZW50LnN0eWxlLnJpZ2h0ID0gcmVjdC5yaWdodCAhPSBudWxsID8gYCR7cmVjdC5yaWdodH1weGAgOiAnJztcbiAgICBlbGVtZW50LnN0eWxlLnRvcCA9IHJlY3QudG9wICE9IG51bGwgPyBgJHtyZWN0LnRvcH1weGAgOiAnJztcbiAgICBlbGVtZW50LnN0eWxlLmJvdHRvbSA9IHJlY3QuYm90dG9tICE9IG51bGwgPyBgJHtyZWN0LmJvdHRvbX1weGAgOiAnJztcbiAgICBlbGVtZW50LnN0eWxlLm1heEhlaWdodCA9XG4gICAgICByZWN0Lm1heEhlaWdodCAhPSBudWxsID8gYCR7cmVjdC5tYXhIZWlnaHR9cHhgIDogJyc7XG4gICAgZWxlbWVudC5zdHlsZS5taW5XaWR0aCA9IHJlY3QubWluV2lkdGggIT0gbnVsbCA/IGAke3JlY3QubWluV2lkdGh9cHhgIDogJyc7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldE1heEhlaWdodChwb3NpdGlvbjogSVJlY3QpOiBudW1iZXIgfCBudWxsIHtcbiAgICBsZXQgbWF4SGVpZ2h0ID0gbnVsbDtcbiAgICBtYXhIZWlnaHQgPSAxO1xuICAgIHJldHVybiBtYXhIZWlnaHQ7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldE1heFdpZHRoKHBvc2l0aW9uOiBJUmVjdCk6IG51bWJlciB8IG51bGwge1xuICAgIGxldCBtYXhXaWR0aCA9IG51bGw7XG4gICAgbWF4V2lkdGggPSAxO1xuICAgIHJldHVybiBtYXhXaWR0aDtcbiAgfVxufVxuIl19
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24tdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tb24vdXRpbC9wb3NpdGlvbi11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFMUQsTUFBTSxPQUFPLFlBQVk7SUFDaEIsTUFBTSxDQUFDLFdBQVcsQ0FDdkIsaUJBQXdCLEVBQ3hCLGVBQXNCLEVBQ3RCLEtBQVksRUFDWixhQUE0QixFQUM1QixTQUFpQixDQUFDLEVBQ2xCLGlCQUF5QixDQUFDLEVBQzFCLHdCQUErQjtRQUM3QixJQUFJLEVBQUUsQ0FBQztRQUNQLEtBQUssRUFBRSxDQUFDO1FBQ1IsR0FBRyxFQUFFLENBQUM7UUFDTixNQUFNLEVBQUUsQ0FBQztLQUNWO1FBRUQsTUFBTSxJQUFJLEdBQVUsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQztRQUNsRSxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUM7UUFDbkUsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQztRQUN4RSxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDO1FBQ3pFLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDeEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDbkIsSUFBSSxNQUFNLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLElBQUksR0FBRyxZQUFZLEVBQUU7Z0JBQzdELEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxD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SSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbEUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckUsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTO1lBQ3JCLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzdFLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWU7UUFDeEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFlO1FBQ3ZDLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQztRQUNwQixRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJUmVjdH0gZnJvbSAnLi4vY29udHJhY3QvaS1yZWN0JztcbmltcG9ydCB7QWxpZ259IGZyb20gJy4uL2VudW0vYWxpZ24uZW51bSc7XG5pbXBvcnQge1ZlcnRpY2FsQWxpZ259IGZyb20gJy4uL2VudW0vdmVydGljYWwtYWxpZ24uZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBQb3NpdGlvblV0aWwge1xuICBwdWJsaWMgc3RhdGljIGdldFBvc2l0aW9uKFxuICAgIGNvbnRhaW5lclBvc2l0aW9uOiBJUmVjdCxcbiAgICBlbGVtZW50UG9zaXRpb246IElSZWN0LFxuICAgIGFsaWduOiBBbGlnbixcbiAgICB2ZXJ0aWNhbEFsaWduOiBWZXJ0aWNhbEFsaWduLFxuICAgIG1hcmdpbjogbnVtYmVyID0gMCxcbiAgICB2ZXJ0aWNhbE1hcmdpbjogbnVtYmVyID0gMCxcbiAgICB0cmFuc2Zvcm1lZFBhcmVudFJlY3Q6IElSZWN0ID0ge1xuICAgICAgbGVmdDogMCxcbiAgICAgIHJpZ2h0OiAwLFxuICAgICAgdG9wOiAwLFxuICAgICAgYm90dG9tOiAwXG4gICAgfVxuICApOiBJUmVjdCB7XG4gICAgY29uc3QgcmVjdDogSVJlY3QgPSB7fTtcbiAgICBjb25zdCBlbGVtZW50V2lkdGggPSBlbGVtZW50UG9zaXRpb24ucmlnaHQgLSBlbGVtZW50UG9zaXRpb24ubGVmdDtcbiAgICBjb25zdCBlbGVtZW50SGVpZ2h0ID0gZWxlbWVudFBvc2l0aW9uLmJvdHRvbSAtIGVsZW1lbnRQb3NpdGlvbi50b3A7XG4gICAgY29uc3QgY29udGFpbmVyV2lkdGggPSBjb250YWluZXJQb3NpdGlvbi5yaWdodCAtIGNvbnRhaW5lclBvc2l0aW9uLmxlZnQ7XG4gICAgY29uc3QgY29udGFpbmVySGVpZ2h0ID0gY29udGFpbmVyUG9zaXRpb24uYm90dG9tIC0gY29udGFpbmVyUG9zaXRpb24udG9wO1xuICAgIGlmIChhbGlnbiA9PT0gQWxpZ24uYXV0bykge1xuICAgICAgYWxpZ24gPSBBbGlnbi5sZWZ0O1xuICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgY29udGFpbmVyUG9zaXRpb24ubGVmdCArIGVsZW1lbnRXaWR0aCkge1xuICAgICAgICBhbGlnbiA9IEFsaWduLnJpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLmxlZnQpIHtcbiAgICAgIHJlY3QubGVmdCA9IGNvbnRhaW5lclBvc2l0aW9uLmxlZnQgKyBtYXJnaW47XG4gICAgfVxuICAgIGlmIChhbGlnbiA9PT0gQWxpZ24ucmlnaHQpIHtcbiAgICAgIHJlY3QubGVmdCA9IGNvbnRhaW5lclBvc2l0aW9uLnJpZ2h0IC0gZWxlbWVudFdpZHRoIC0gbWFyZ2luO1xuICAgIH1cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLmNlbnRlcikge1xuICAgICAgcmVjdC5sZWZ0ID1cbiAgICAgICAgKGNvbnRhaW5lclBvc2l0aW9uLmxlZnQgKyBjb250YWluZXJQb3NpdGlvbi5yaWdodCkgLyAyIC1cbiAgICAgICAgZWxlbWVudFdpZHRoIC8gMjtcbiAgICB9XG4gICAgaWYgKGFsaWduID09PSBBbGlnbi5vdXRlckF1dG8pIHtcbiAgICAgIGFsaWduID0gQWxpZ24ub3V0ZXJSaWdodDtcbiAgICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IGNvbnRhaW5lclBvc2l0aW9uLnJpZ2h0ICsgZWxlbWVudFdpZHRoKSB7XG4gICAgICAgIGFsaWduID0gQWxpZ24ub3V0ZXJMZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLm91dGVyTGVmdCkge1xuICAgICAgcmVjdC5sZWZ0ID0gY29udGFpbmVyUG9zaXRpb24ubGVmdCAtIGVsZW1lbnRXaWR0aCArIG1hcmdpbjtcbiAgICB9XG4gICAgaWYgKGFsaWduID09PSBBbGlnbi5vdXRlclJpZ2h0KSB7XG4gICAgICByZWN0LmxlZnQgPSBjb250YWluZXJQb3NpdGlvbi5yaWdodCAtIG1hcmdpbjtcbiAgICB9XG5cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLmZpdFdpZHRoKSB7XG4gICAgICByZWN0LmxlZnQgPSBjb250YWluZXJQb3NpdGlvbi5sZWZ0ICsgbWFyZ2luO1xuICAgICAgcmVjdC5yaWdodCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gY29udGFpbmVyUG9zaXRpb24ucmlnaHQgKyBtYXJnaW47XG4gICAgfVxuXG4gICAgaWYgKGFsaWduID09PSBBbGlnbi5taW5XaWR0aCkge1xuICAgICAgcmVjdC5sZWZ0ID0gY29udGFpbmVyUG9zaXRpb24ubGVmdCArIG1hcmdpbjtcbiAgICAgIHJlY3QubWluV2lkdGggPSBjb250YWluZXJXaWR0aDtcbiAgICB9XG5cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5hdXRvKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGNvbnRhaW5lclBvc2l0aW9uLmJvdHRvbSArIGVsZW1lbnRIZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQgJiZcbiAgICAgICAgY29udGFpbmVyUG9zaXRpb24uYm90dG9tID49IHdpbmRvdy5pbm5lckhlaWdodCAvIDJcbiAgICAgICkge1xuICAgICAgICB2ZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbi50b3A7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2ZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbi5ib3R0b207XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmlubmVyQXV0bykge1xuICAgICAgaWYgKFxuICAgICAgICBjb250YWluZXJQb3NpdGlvbi5ib3R0b20gKyBlbGVtZW50SGVpZ2h0ID4gd2luZG93LmlubmVySGVpZ2h0ICYmXG4gICAgICAgIGNvbnRhaW5lclBvc2l0aW9uLmJvdHRvbSA+PSB3aW5kb3cuaW5uZXJIZWlnaHQgLyAyXG4gICAgICApIHtcbiAgICAgICAgdmVydGljYWxBbGlnbiA9IFZlcnRpY2FsQWxpZ24uaW5uZXJUb3A7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2ZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbi5pbm5lckJvdHRvbTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHZlcnRpY2FsQWxpZ24gPT09IFZlcnRpY2FsQWxpZ24udG9wKSB7XG4gICAgICByZWN0LnRvcCA9IGNvbnRhaW5lclBvc2l0aW9uLnRvcCAtIGVsZW1lbnRIZWlnaHQgLSB2ZXJ0aWNhbE1hcmdpbjtcbiAgICB9XG4gICAgaWYgKHZlcnRpY2FsQWxpZ24gPT09IFZlcnRpY2FsQWxpZ24uYm90dG9tKSB7XG4gICAgICByZWN0LnRvcCA9IGNvbnRhaW5lclBvc2l0aW9uLmJvdHRvbSArIHZlcnRpY2FsTWFyZ2luO1xuICAgIH1cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5pbm5lclRvcCkge1xuICAgICAgcmVjdC50b3AgPSBjb250YWluZXJQb3NpdGlvbi5ib3R0b20gLSBlbGVtZW50SGVpZ2h0IC0gdmVydGljYWxNYXJnaW47XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmlubmVyQm90dG9tKSB7XG4gICAgICByZWN0LnRvcCA9IGNvbnRhaW5lclBvc2l0aW9uLnRvcCArIHZlcnRpY2FsTWFyZ2luO1xuICAgIH1cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5jZW50ZXIpIHtcbiAgICAgIHJlY3QudG9wID1cbiAgICAgICAgKGNvbnRhaW5lclBvc2l0aW9uLnRvcCArIGNvbnRhaW5lclBvc2l0aW9uLmJvdHRvbSkgLyAyIC1cbiAgICAgICAgZWxlbWVudEhlaWdodCAvIDI7XG4gICAgfVxuXG4gICAgaWYgKHJlY3QubGVmdCArIGVsZW1lbnRXaWR0aCA+IHdpbmRvdy5pbm5lcldpZHRoKSB7XG4gICAgICByZWN0LmxlZnQgPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGVsZW1lbnRXaWR0aDtcbiAgICB9XG4gICAgaWYgKHJlY3QubGVmdCA8IDApIHtcbiAgICAgIHJlY3QubGVmdCA9IDA7XG4gICAgfVxuICAgIGlmIChyZWN0LnRvcCArIGVsZW1lbnRIZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgcmVjdC5ib3R0b20gPCAwKSB7XG4gICAgICByZWN0LmJvdHRvbSA9IDA7XG4gICAgfVxuICAgIGlmIChyZWN0LnRvcCA8IDApIHtcbiAgICAgIHJlY3QudG9wID0gMDtcbiAgICB9XG4gICAgaWYgKHZlcnRpY2FsQWxpZ24gPT09IFZlcnRpY2FsQWxpZ24uYm90dG9tIHx8IHZlcnRpY2FsQWxpZ24gPT09IFZlcnRpY2FsQWxpZ24uY2VudGVyIHx8IHZlcnRpY2FsQWxpZ24gPT09IFZlcnRpY2FsQWxpZ24uaW5uZXJCb3R0b20pIHtcbiAgICAgIHJlY3QubWF4SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gcmVjdC50b3A7XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLnRvcCB8fCB2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmlubmVyVG9wKSB7XG4gICAgICByZWN0Lm1heEhlaWdodCA9IGNvbnRhaW5lclBvc2l0aW9uLnRvcDtcbiAgICB9XG4gICAgaWYgKCFpc05hTihyZWN0LmxlZnQpKSB7XG4gICAgICByZWN0LmxlZnQgPSByZWN0LmxlZnQgLSB0cmFuc2Zvcm1lZFBhcmVudFJlY3QubGVmdDtcbiAgICB9XG4gICAgaWYgKCFpc05hTihyZWN0LnJpZ2h0KSkge1xuICAgICAgcmVjdC5yaWdodCA9IHJlY3QucmlnaHQgLSB0cmFuc2Zvcm1lZFBhcmVudFJlY3QubGVmdDtcbiAgICB9XG4gICAgaWYgKCFpc05hTihyZWN0LnRvcCkpIHtcbiAgICAgIHJlY3QudG9wID0gcmVjdC50b3AgLSB0cmFuc2Zvcm1lZFBhcmVudFJlY3QudG9wO1xuICAgIH1cbiAgICBpZiAoIWlzTmFOKHJlY3QuYm90dG9tKSkge1xuICAgICAgcmVjdC5ib3R0b20gPSByZWN0LmJvdHRvbSA/IHJlY3QuYm90dG9tIC0gdHJhbnNmb3JtZWRQYXJlbnRSZWN0LmJvdHRvbSA6IHJlY3QuYm90dG9tO1xuICAgIH1cbiAgICByZXR1cm4gcmVjdDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc2V0RWxlbWVudFBvc2l0aW9uKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCByZWN0OiBJUmVjdCk6IHZvaWQge1xuICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IHJlY3QubGVmdCAhPSBudWxsID8gYCR7cmVjdC5sZWZ0fXB4YCA6ICcnO1xuICAgIGVsZW1lbnQuc3R5bGUucmlnaHQgPSByZWN0LnJpZ2h0ICE9IG51bGwgPyBgJHtyZWN0LnJpZ2h0fXB4YCA6ICcnO1xuICAgIGVsZW1lbnQuc3R5bGUudG9wID0gcmVjdC50b3AgIT0gbnVsbCA/IGAke3JlY3QudG9wfXB4YCA6ICcnO1xuICAgIGVsZW1lbnQuc3R5bGUuYm90dG9tID0gcmVjdC5ib3R0b20gIT0gbnVsbCA/IGAke3JlY3QuYm90dG9tfXB4YCA6ICcnO1xuICAgIGVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0ID1cbiAgICAgIHJlY3QubWF4SGVpZ2h0ICE9IG51bGwgPyBgJHtyZWN0Lm1heEhlaWdodH1weGAgOiAnJztcbiAgICBlbGVtZW50LnN0eWxlLm1pbldpZHRoID0gcmVjdC5taW5XaWR0aCAhPSBudWxsID8gYCR7cmVjdC5taW5XaWR0aH1weGAgOiAnJztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0TWF4SGVpZ2h0KHBvc2l0aW9uOiBJUmVjdCk6IG51bWJlciB8IG51bGwge1xuICAgIGxldCBtYXhIZWlnaHQgPSBudWxsO1xuICAgIG1heEhlaWdodCA9IDE7XG4gICAgcmV0dXJuIG1heEhlaWdodDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0TWF4V2lkdGgocG9zaXRpb246IElSZWN0KTogbnVtYmVyIHwgbnVsbCB7XG4gICAgbGV0IG1heFdpZHRoID0gbnVsbDtcbiAgICBtYXhXaWR0aCA9IDE7XG4gICAgcmV0dXJuIG1heFdpZHRoO1xuICB9XG59XG4iXX0=
@@ -151,6 +151,7 @@ export class DropdownBase {
151
151
  }
152
152
  setPosition(container, target) {
153
153
  const containerPosition = container.getBoundingClientRect();
154
+ // target.style.maxHeight = null;
154
155
  const targetPosition = target.getBoundingClientRect();
155
156
  const rect = {
156
157
  bottom: containerPosition.bottom,
@@ -221,4 +222,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
221
222
  type: HostListener,
222
223
  args: ['window:keyup', ['$event']]
223
224
  }] } });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZHJvcGRvd24vZHJvcGRvd24tYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ25ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUd0RSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQUd2RCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLFlBQVk7SUFnRHZCLFlBQ1ksSUFBdUIsRUFDdkIsU0FBYyxFQUNkLFdBQW9DLEVBQ3BDLEtBQWEsRUFDYixTQUFvQjtRQUpwQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFLO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBcER2QixVQUFLLEdBQVUsS0FBSyxDQUFDLElBQUksQ0FBQztRQUMxQixrQkFBYSxHQUFrQixhQUFhLENBQUMsSUFBSSxDQUFDO1FBR2xELGFBQVEsR0FBRyxLQUFLLENBQUM7UUF3QmhCLGVBQVUs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Q3ZDLElBQUksRUFDSixVQUFVLEVBQ1YsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsYUFBYSxFQUNsQixDQUFDLEVBQ0QsQ0FBQyxFQUNELGNBQWMsQ0FDZixDQUFDO1FBRUYsWUFBWSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNwRCxDQUFDOzt5R0E3TlUsWUFBWTs2RkFBWixZQUFZLDJjQWtDVCxxQkFBcUIsMkJBRTNCLFVBQVUsd0RBSUosd0JBQXdCOzJGQXhDM0IsWUFBWTtrQkFGeEIsU0FBUzttTUFHQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdGLElBQUk7c0JBRFAsS0FBSztnQkFxQkksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBT0ksS0FBSztzQkFKZCxZQUFZO3VCQUFDLHFCQUFxQixFQUFFO3dCQUNuQyxNQUFNLEVBQUUsS0FBSzt3QkFDYixJQUFJLEVBQUUsVUFBVTtxQkFDakI7Z0JBSVMsUUFBUTtzQkFEakIsWUFBWTt1QkFBQyx3QkFBd0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBZ0NwQixLQUFLO3NCQUF2QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFZVyxhQUFhO3NCQUF4RCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXNCQSxLQUFLO3NCQUE5QyxZQUFZO3VCQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb250ZW50Q2hpbGQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RG9tVXRpbH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvZG9tLXV0aWwnO1xuaW1wb3J0IHtQb3NpdGlvblV0aWx9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL3Bvc2l0aW9uLXV0aWwnO1xuaW1wb3J0IHtBbGlnbn0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW0vYWxpZ24uZW51bSc7XG5pbXBvcnQge1ZlcnRpY2FsQWxpZ259IGZyb20gJy4uLy4uL2NvbW1vbi9lbnVtL3ZlcnRpY2FsLWFsaWduLmVudW0nO1xuaW1wb3J0IHtEcm9wZG93bkhlYWREaXJlY3RpdmV9IGZyb20gJy4vZHJvcGRvd24taGVhZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtEcm9wZG93bkNvbnRlbnREaXJlY3RpdmV9IGZyb20gJy4vZHJvcGRvd24tY29udGVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtBdXRvQ2xvc2VJZ25vcmVDYXNlfSBmcm9tICcuLi8uLi9jb21tb24vY29udHJhY3QvYXV0by1jbG9zZS1pZ25vcmUtY2FzZSc7XG5pbXBvcnQge0lSZWN0fSBmcm9tICcuLi8uLi9jb21tb24vY29udHJhY3QvaS1yZWN0JztcbmltcG9ydCB7dGFrZVdoaWxlLCB0aHJvdHRsZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQERpcmVjdGl2ZSgpXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkJhc2Uge1xuICBASW5wdXQoKSBhbGlnbjogQWxpZ24gPSBBbGlnbi5sZWZ0O1xuICBASW5wdXQoKSB2ZXJ0aWNhbEFsaWduOiBWZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbi5hdXRvO1xuICBASW5wdXQoKSBhcHBlbmRUb0JvZHk6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBiYWNrZHJvcCA9IGZhbHNlO1xuICBASW5wdXQoKSBjbGFzc05hbWU6IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBvcGVuKHZhbDogYm9vbGVhbikge1xuICAgIGlmICh2YWwgIT0gbnVsbCAmJiB2YWwgIT09IHRoaXMuX29wZW4gJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBvcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9vcGVuO1xuICB9XG5cbiAgZ2V0IGNvbnRhaW5lcigpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmRUb0JvZHlcbiAgICAgID8gdGhpcy5fZG9jdW1lbnQuYm9keVxuICAgICAgOiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBAT3V0cHV0KCkgb3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBASW5wdXQoKSBhdXRvQ2xvc2UgPSB0cnVlO1xuICBASW5wdXQoKSBhdXRvQ2xvc2VJZ25vcmU6IEFycmF5PEF1dG9DbG9zZUlnbm9yZUNhc2U+ID0gWydpbnNpZGUnXTtcblxuXG4gIEBDb250ZW50Q2hpbGQoRHJvcGRvd25IZWFkRGlyZWN0aXZlLCB7XG4gICAgc3RhdGljOiBmYWxzZSxcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICB9KVxuICBwcm90ZWN0ZWQgX2hlYWQ6IEVsZW1lbnRSZWY7XG5cbiAgQENvbnRlbnRDaGlsZChEcm9wZG93bkNvbnRlbnREaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcbiAgcHJvdGVjdGVkIF9jb250ZW50OiBEcm9wZG93bkNvbnRlbnREaXJlY3RpdmU7XG5cbiAgcHJvdGVjdGVkIF9ib2R5OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcm90ZWN0ZWQgX2JhY2tkcm9wOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcm90ZWN0ZWQgX29wZW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBfZG9jdW1lbnQ6IGFueSxcbiAgICBwcm90ZWN0ZWQgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByb3RlY3RlZCBfem9uZTogTmdab25lLFxuICAgIHByb3RlY3RlZCBfcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHtcbiAgICB0aGlzLl96b25lLm9uU3RhYmxlXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVdoaWxlKChfKSA9PiB0aGlzLl9hbGl2ZSksXG4gICAgICAgIHRocm90dGxlVGltZSgxMCwgdW5kZWZpbmVkLCB7dHJhaWxpbmc6IHRydWV9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICBpZiAodGhpcy5faGVhZD8ubmF0aXZlRWxlbWVudCAmJiB0aGlzLl9ib2R5KSB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5faGVhZD8ubmF0aXZlRWxlbWVudCAmJiB0aGlzLl9ib2R5KSB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0UG9zaXRpb24odGhpcy5faGVhZC5uYXRpdmVFbGVtZW50LCB0aGlzLl9ib2R5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgdGhpcy5hZGRTY3JvbGxMaXN0ZW5lcigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKSBjbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgIGlmICghRG9tVXRpbC5jbGlja2VkSW5zaWRlKHRoaXMuX2JvZHksIGV2ZW50KSB8fCB0aGlzLmF1dG9DbG9zZUlnbm9yZS5pbmRleE9mKCdpbnNpZGUnKSA8IDApIHtcbiAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChEb21VdGlsLmNsaWNrZWRJbnNpZGUodGhpcy5faGVhZC5uYXRpdmVFbGVtZW50LCBldmVudCkpIHtcbiAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pIGRvY3VtZW50Q2xpY2soXG4gICAgZXZlbnQ6IE1vdXNlRXZlbnRcbiAgKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMub3BlbiB8fFxuICAgICAgIXRoaXMuYXV0b0Nsb3NlIHx8XG4gICAgICBldmVudC5kZXRhaWwgPT09IDAgfHxcbiAgICAgIERvbVV0aWwuY2xpY2tlZEluc2lkZSh0aGlzLl9oZWFkLm5hdGl2ZUVsZW1lbnQsIGV2ZW50KVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoRG9tVXRpbC5jbGlja2VkSW5zaWRlKHRoaXMuX2JvZHksIGV2ZW50KSkge1xuICAgICAgaWYgKHRoaXMuYXV0b0Nsb3NlSWdub3JlLmluZGV4T2YoJ2luc2lkZScpIDwgMCkge1xuICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuYXV0b0Nsb3NlSWdub3JlLmluZGV4T2YoJ291dHNpZGUnKSA8IDApIHtcbiAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleXVwJywgWyckZXZlbnQnXSkga2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5vcGVuIHx8XG4gICAgICAhdGhpcy5hdXRvQ2xvc2UgfHxcbiAgICAgIFsnZXNjJywgJ2VudGVyJ10uZXZlcnkoXG4gICAgICAgIChfOiAnZXNjJyB8ICdlbnRlcicpID0+IHRoaXMuYXV0b0Nsb3NlSWdub3JlLmluZGV4T2YoXykgPj0gMFxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICAoZXZlbnQuY29kZSA9PT0gJ0VzY2FwZScgJiYgdGhpcy5hdXRvQ2xvc2VJZ25vcmUuaW5kZXhPZignZXNjJykgPCAwKSB8fFxuICAgICAgKGV2ZW50LmNvZGUgPT09ICdFbnRlcicgJiYgdGhpcy5hdXRvQ2xvc2VJZ25vcmUuaW5kZXhPZignZW50ZXInKSA8IDApXG4gICAgKSB7XG4gICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWRkU2Nyb2xsTGlzdGVuZXIoKSB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuc2Nyb2xsTGlzdGVuZXIsIHRydWUpXG4gIH1cblxuICBwcm90ZWN0ZWQgcmVtb3ZlU2Nyb2xsTGlzdGVuZXIoKSB7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuc2Nyb2xsTGlzdGVuZXIsIHRydWUpXG4gIH1cblxuICBwcml2YXRlIHNjcm9sbExpc3RlbmVyID0gKGV2ZW50KSA9PiB7XG4gICAgaWYgKHRoaXMub3BlbiAmJiAhdGhpcy5fYm9keS5jb250YWlucyhldmVudC50YXJnZXQpICYmIHRoaXMuX2JvZHkgIT09IGV2ZW50LnRhcmdldCkge1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3BlbiAmJiB0aGlzLl9ib2R5ICYmIHRoaXMuY29udGFpbmVyLmNvbnRhaW5zKHRoaXMuX2JvZHkpKSB7XG4gICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmNvbnRhaW5lciwgdGhpcy5fYm9keSk7XG4gICAgICB0aGlzLl9vcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLl9ib2R5ID0gbnVsbDtcbiAgICAgIGlmICh0aGlzLl9iYWNrZHJvcCkge1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLl9kb2N1bWVudC5ib2R5LCB0aGlzLl9iYWNrZHJvcCk7XG4gICAgICB9XG4gICAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdCh0aGlzLm9wZW4pO1xuICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wZW5Ecm9wZG93bigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fb3BlbiB8fCAhdGhpcy5fY29udGVudCB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX29wZW4gPSB0cnVlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KHRoaXMub3Blbik7XG4gICAgY29uc3QgcmVuZGVyZXIgPSB0aGlzLl9yZW5kZXJlcjtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fY29udGVudC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGNvbnRhaW5lciA9ICh0aGlzLl9ib2R5ID0gdGhpcy5fYm9keSB8fCByZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKSk7XG4gICAgcmVuZGVyZXIuYWRkQ2xhc3MoY29udGFpbmVyLCAnZHJvcGRvd24nKTtcbiAgICBpZiAodGhpcy5iYWNrZHJvcCkge1xuICAgICAgdGhpcy5fYmFja2Ryb3AgPSByZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHJlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2JhY2tkcm9wLCAnZHJvcGRvd24tYmFja2Ryb3AnKTtcbiAgICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX2RvY3VtZW50LmJvZHksIHRoaXMuX2JhY2tkcm9wKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2xhc3NOYW1lICE9IG51bGwpIHtcbiAgICAgIGlmICh0aGlzLmNsYXNzTmFtZSBpbnN0YW5jZW9mIEFycmF5ICYmIHRoaXMuY2xhc3NOYW1lLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5jbGFzc05hbWUuZm9yRWFjaCgoXykgPT4ge1xuICAgICAgICAgIHJlbmRlcmVyLmFkZENsYXNzKGNvbnRhaW5lciwgXyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmNsYXNzTmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVuZGVyZXIuYWRkQ2xhc3MoY29udGFpbmVyLCB0aGlzLmNsYXNzTmFtZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKGNvbnRhaW5lciwgY29udGVudCk7XG4gICAgcmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIsIGNvbnRhaW5lcik7XG4gICAgdGhpcy5zZXRQb3NpdGlvbih0aGlzLl9oZWFkLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX2JvZHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQb3NpdGlvbihjb250YWluZXI6IEhUTUxFbGVtZW50LCB0YXJnZXQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyUG9zaXRpb24gPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgdGFyZ2V0UG9zaXRpb24gPSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCByZWN0OiBJUmVjdCA9IHtcbiAgICAgIGJvdHRvbTogY29udGFpbmVyUG9zaXRpb24uYm90dG9tLFxuICAgICAgdG9wOiBjb250YWluZXJQb3NpdGlvbi50b3AsXG4gICAgICBsZWZ0OiBjb250YWluZXJQb3NpdGlvbi5sZWZ0LFxuICAgICAgcmlnaHQ6IGNvbnRhaW5lclBvc2l0aW9uLnJpZ2h0LFxuICAgIH07XG5cbiAgICBjb25zdCB0YXJnZXRSZWN0OiBJUmVjdCA9IHtcbiAgICAgIGJvdHRvbTogdGFyZ2V0UG9zaXRpb24uYm90dG9tLFxuICAgICAgdG9wOiB0YXJnZXRQb3NpdGlvbi50b3AsXG4gICAgICBsZWZ0OiB0YXJnZXRQb3NpdGlvbi5sZWZ0LFxuICAgICAgcmlnaHQ6IHRhcmdldFBvc2l0aW9uLnJpZ2h0LFxuICAgIH07XG5cbiAgICBjb25zdCB0YXJnZXRUcmFuc2Zvcm1lZFBhcmVudCA9IERvbVV0aWwuZmluZFRyYW5zZm9ybWVkUGFyZW50KHRhcmdldCk7XG4gICAgbGV0IHBhcmVudFBvc2l0aW9uID0ge1xuICAgICAgbGVmdDogMCxcbiAgICAgIHJpZ2h0OiAwLFxuICAgICAgdG9wOiAwLFxuICAgICAgYm90dG9tOiAwXG4gICAgfTtcbiAgICBpZiAodGFyZ2V0VHJhbnNmb3JtZWRQYXJlbnQpIHtcbiAgICAgIHBhcmVudFBvc2l0aW9uID0gdGFyZ2V0VHJhbnNmb3JtZWRQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgfVxuXG4gICAgY29uc3QgcG9zaXRpb24gPSBQb3NpdGlvblV0aWwuZ2V0UG9zaXRpb24oXG4gICAgICByZWN0LFxuICAgICAgdGFyZ2V0UmVjdCxcbiAgICAgIHRoaXMuYWxpZ24sXG4gICAgICB0aGlzLnZlcnRpY2FsQWxpZ24sXG4gICAgICAwLFxuICAgICAgMCxcbiAgICAgIHBhcmVudFBvc2l0aW9uXG4gICAgKTtcblxuICAgIFBvc2l0aW9uVXRpbC5zZXRFbGVtZW50UG9zaXRpb24odGFyZ2V0LCBwb3NpdGlvbik7XG4gIH1cbn1cbiJdfQ==
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZHJvcGRvd24vZHJvcGRvd24tYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ25ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUd0RSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQUd2RCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLFlBQVk7SUFnRHZCLFlBQ1ksSUFBdUIsRUFDdkIsU0FBYyxFQUNkLFdBQW9DLEVBQ3BDLEtBQWEsRUFDYixTQUFvQjtRQUpwQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFLO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBcER2QixVQUFLLEdBQVUsS0FBSyxDQUFDLElBQUksQ0FBQztRQUMxQixrQkFBYSxHQUFrQixhQUFhLENBQUMsSUFBSSxDQUFDO1FBR2xELGFBQVEsR0FBRyxLQUFLLENBQUM7UUF3QmhCLGVBQVUs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LENBQUMsV0FBVyxDQUN2QyxJQUFJLEVBQ0osVUFBVSxFQUNWLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLGFBQWEsRUFDbEIsQ0FBQyxFQUNELENBQUMsRUFDRCxjQUFjLENBQ2YsQ0FBQztRQUVGLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7eUdBOU5VLFlBQVk7NkZBQVosWUFBWSwyY0FrQ1QscUJBQXFCLDJCQUUzQixVQUFVLHdEQUlKLHdCQUF3QjsyRkF4QzNCLFlBQVk7a0JBRnhCLFNBQVM7bU1BR0MsS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFHRixJQUFJO3NCQURQLEtBQUs7Z0JBcUJJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0UsU0FBUztzQkFBakIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQU9JLEtBQUs7c0JBSmQsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRTt3QkFDbkMsTUFBTSxFQUFFLEtBQUs7d0JBQ2IsSUFBSSxFQUFFLFVBQVU7cUJBQ2pCO2dCQUlTLFFBQVE7c0JBRGpCLFlBQVk7dUJBQUMsd0JBQXdCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQWdDcEIsS0FBSztzQkFBdkMsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBWVcsYUFBYTtzQkFBeEQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFzQkEsS0FBSztzQkFBOUMsWUFBWTt1QkFBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RvbVV0aWx9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL2RvbS11dGlsJztcbmltcG9ydCB7UG9zaXRpb25VdGlsfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC9wb3NpdGlvbi11dGlsJztcbmltcG9ydCB7QWxpZ259IGZyb20gJy4uLy4uL2NvbW1vbi9lbnVtL2FsaWduLmVudW0nO1xuaW1wb3J0IHtWZXJ0aWNhbEFsaWdufSBmcm9tICcuLi8uLi9jb21tb24vZW51bS92ZXJ0aWNhbC1hbGlnbi5lbnVtJztcbmltcG9ydCB7RHJvcGRvd25IZWFkRGlyZWN0aXZlfSBmcm9tICcuL2Ryb3Bkb3duLWhlYWQuZGlyZWN0aXZlJztcbmltcG9ydCB7RHJvcGRvd25Db250ZW50RGlyZWN0aXZlfSBmcm9tICcuL2Ryb3Bkb3duLWNvbnRlbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7QXV0b0Nsb3NlSWdub3JlQ2FzZX0gZnJvbSAnLi4vLi4vY29tbW9uL2NvbnRyYWN0L2F1dG8tY2xvc2UtaWdub3JlLWNhc2UnO1xuaW1wb3J0IHtJUmVjdH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktcmVjdCc7XG5pbXBvcnQge3Rha2VXaGlsZSwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgRHJvcGRvd25CYXNlIHtcbiAgQElucHV0KCkgYWxpZ246IEFsaWduID0gQWxpZ24ubGVmdDtcbiAgQElucHV0KCkgdmVydGljYWxBbGlnbjogVmVydGljYWxBbGlnbiA9IFZlcnRpY2FsQWxpZ24uYXV0bztcbiAgQElucHV0KCkgYXBwZW5kVG9Cb2R5OiBib29sZWFuO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgYmFja2Ryb3AgPSBmYWxzZTtcbiAgQElucHV0KCkgY2xhc3NOYW1lOiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICBASW5wdXQoKVxuICBzZXQgb3Blbih2YWw6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsICE9IG51bGwgJiYgdmFsICE9PSB0aGlzLl9vcGVuICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICBpZiAodmFsKSB7XG4gICAgICAgIHRoaXMub3BlbkRyb3Bkb3duKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgb3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbjtcbiAgfVxuXG4gIGdldCBjb250YWluZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kVG9Cb2R5XG4gICAgICA/IHRoaXMuX2RvY3VtZW50LmJvZHlcbiAgICAgIDogdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQElucHV0KCkgYXV0b0Nsb3NlID0gdHJ1ZTtcbiAgQElucHV0KCkgYXV0b0Nsb3NlSWdub3JlOiBBcnJheTxBdXRvQ2xvc2VJZ25vcmVDYXNlPiA9IFsnaW5zaWRlJ107XG5cblxuICBAQ29udGVudENoaWxkKERyb3Bkb3duSGVhZERpcmVjdGl2ZSwge1xuICAgIHN0YXRpYzogZmFsc2UsXG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgfSlcbiAgcHJvdGVjdGVkIF9oZWFkOiBFbGVtZW50UmVmO1xuXG4gIEBDb250ZW50Q2hpbGQoRHJvcGRvd25Db250ZW50RGlyZWN0aXZlLCB7c3RhdGljOiBmYWxzZX0pXG4gIHByb3RlY3RlZCBfY29udGVudDogRHJvcGRvd25Db250ZW50RGlyZWN0aXZlO1xuXG4gIHByb3RlY3RlZCBfYm9keTogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJvdGVjdGVkIF9iYWNrZHJvcDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJvdGVjdGVkIF9vcGVuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBfYWxpdmUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgX2RvY3VtZW50OiBhbnksXG4gICAgcHJvdGVjdGVkIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcm90ZWN0ZWQgX3pvbmU6IE5nWm9uZSxcbiAgICBwcm90ZWN0ZWQgX3JlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgdGhpcy5fem9uZS5vblN0YWJsZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VXaGlsZSgoXykgPT4gdGhpcy5fYWxpdmUpLFxuICAgICAgICB0aHJvdHRsZVRpbWUoMTAsIHVuZGVmaW5lZCwge3RyYWlsaW5nOiB0cnVlfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2hlYWQ/Lm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5fYm9keSkge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2hlYWQ/Lm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5fYm9keSkge1xuICAgICAgICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHRoaXMuX2hlYWQubmF0aXZlRWxlbWVudCwgdGhpcy5fYm9keSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMuYWRkU2Nyb2xsTGlzdGVuZXIoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSkgY2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICBpZiAoIURvbVV0aWwuY2xpY2tlZEluc2lkZSh0aGlzLl9ib2R5LCBldmVudCkgfHwgdGhpcy5hdXRvQ2xvc2VJZ25vcmUuaW5kZXhPZignaW5zaWRlJykgPCAwKSB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoRG9tVXRpbC5jbGlja2VkSW5zaWRlKHRoaXMuX2hlYWQubmF0aXZlRWxlbWVudCwgZXZlbnQpKSB7XG4gICAgICAgIHRoaXMub3BlbkRyb3Bkb3duKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKSBkb2N1bWVudENsaWNrKFxuICAgIGV2ZW50OiBNb3VzZUV2ZW50XG4gICk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLm9wZW4gfHxcbiAgICAgICF0aGlzLmF1dG9DbG9zZSB8fFxuICAgICAgZXZlbnQuZGV0YWlsID09PSAwIHx8XG4gICAgICBEb21VdGlsLmNsaWNrZWRJbnNpZGUodGhpcy5faGVhZC5uYXRpdmVFbGVtZW50LCBldmVudClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKERvbVV0aWwuY2xpY2tlZEluc2lkZSh0aGlzLl9ib2R5LCBldmVudCkpIHtcbiAgICAgIGlmICh0aGlzLmF1dG9DbG9zZUlnbm9yZS5pbmRleE9mKCdpbnNpZGUnKSA8IDApIHtcbiAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmF1dG9DbG9zZUlnbm9yZS5pbmRleE9mKCdvdXRzaWRlJykgPCAwKSB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXl1cCcsIFsnJGV2ZW50J10pIGtleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMub3BlbiB8fFxuICAgICAgIXRoaXMuYXV0b0Nsb3NlIHx8XG4gICAgICBbJ2VzYycsICdlbnRlciddLmV2ZXJ5KFxuICAgICAgICAoXzogJ2VzYycgfCAnZW50ZXInKSA9PiB0aGlzLmF1dG9DbG9zZUlnbm9yZS5pbmRleE9mKF8pID49IDBcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgKGV2ZW50LmNvZGUgPT09ICdFc2NhcGUnICYmIHRoaXMuYXV0b0Nsb3NlSWdub3JlLmluZGV4T2YoJ2VzYycpIDwgMCkgfHxcbiAgICAgIChldmVudC5jb2RlID09PSAnRW50ZXInICYmIHRoaXMuYXV0b0Nsb3NlSWdub3JlLmluZGV4T2YoJ2VudGVyJykgPCAwKVxuICAgICkge1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFkZFNjcm9sbExpc3RlbmVyKCkge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnNjcm9sbExpc3RlbmVyLCB0cnVlKVxuICB9XG5cbiAgcHJvdGVjdGVkIHJlbW92ZVNjcm9sbExpc3RlbmVyKCkge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnNjcm9sbExpc3RlbmVyLCB0cnVlKVxuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxMaXN0ZW5lciA9IChldmVudCkgPT4ge1xuICAgIGlmICh0aGlzLm9wZW4gJiYgIXRoaXMuX2JvZHkuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJiB0aGlzLl9ib2R5ICE9PSBldmVudC50YXJnZXQpIHtcbiAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wZW4gJiYgdGhpcy5fYm9keSAmJiB0aGlzLmNvbnRhaW5lci5jb250YWlucyh0aGlzLl9ib2R5KSkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5jb250YWluZXIsIHRoaXMuX2JvZHkpO1xuICAgICAgdGhpcy5fb3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5fYm9keSA9IG51bGw7XG4gICAgICBpZiAodGhpcy5fYmFja2Ryb3ApIHtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5fZG9jdW1lbnQuYm9keSwgdGhpcy5fYmFja2Ryb3ApO1xuICAgICAgfVxuICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQodGhpcy5vcGVuKTtcbiAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuRHJvcGRvd24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX29wZW4gfHwgIXRoaXMuX2NvbnRlbnQgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9vcGVuID0gdHJ1ZTtcbiAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdCh0aGlzLm9wZW4pO1xuICAgIGNvbnN0IHJlbmRlcmVyID0gdGhpcy5fcmVuZGVyZXI7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuX2NvbnRlbnQubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBjb250YWluZXIgPSAodGhpcy5fYm9keSA9IHRoaXMuX2JvZHkgfHwgcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2JykpO1xuICAgIHJlbmRlcmVyLmFkZENsYXNzKGNvbnRhaW5lciwgJ2Ryb3Bkb3duJyk7XG4gICAgaWYgKHRoaXMuYmFja2Ryb3ApIHtcbiAgICAgIHRoaXMuX2JhY2tkcm9wID0gcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICByZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9iYWNrZHJvcCwgJ2Ryb3Bkb3duLWJhY2tkcm9wJyk7XG4gICAgICByZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLl9kb2N1bWVudC5ib2R5LCB0aGlzLl9iYWNrZHJvcCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNsYXNzTmFtZSAhPSBudWxsKSB7XG4gICAgICBpZiAodGhpcy5jbGFzc05hbWUgaW5zdGFuY2VvZiBBcnJheSAmJiB0aGlzLmNsYXNzTmFtZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuY2xhc3NOYW1lLmZvckVhY2goKF8pID0+IHtcbiAgICAgICAgICByZW5kZXJlci5hZGRDbGFzcyhjb250YWluZXIsIF8pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdGhpcy5jbGFzc05hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJlbmRlcmVyLmFkZENsYXNzKGNvbnRhaW5lciwgdGhpcy5jbGFzc05hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZW5kZXJlci5hcHBlbmRDaGlsZChjb250YWluZXIsIGNvbnRlbnQpO1xuICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuY29udGFpbmVyLCBjb250YWluZXIpO1xuICAgIHRoaXMuc2V0UG9zaXRpb24odGhpcy5faGVhZC5uYXRpdmVFbGVtZW50LCB0aGlzLl9ib2R5KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UG9zaXRpb24oY29udGFpbmVyOiBIVE1MRWxlbWVudCwgdGFyZ2V0OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lclBvc2l0aW9uID0gY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIC8vIHRhcmdldC5zdHlsZS5tYXhIZWlnaHQgPSBudWxsO1xuICAgIGNvbnN0IHRhcmdldFBvc2l0aW9uID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgcmVjdDogSVJlY3QgPSB7XG4gICAgICBib3R0b206IGNvbnRhaW5lclBvc2l0aW9uLmJvdHRvbSxcbiAgICAgIHRvcDogY29udGFpbmVyUG9zaXRpb24udG9wLFxuICAgICAgbGVmdDogY29udGFpbmVyUG9zaXRpb24ubGVmdCxcbiAgICAgIHJpZ2h0OiBjb250YWluZXJQb3NpdGlvbi5yaWdodCxcbiAgICB9O1xuXG4gICAgY29uc3QgdGFyZ2V0UmVjdDogSVJlY3QgPSB7XG4gICAgICBib3R0b206IHRhcmdldFBvc2l0aW9uLmJvdHRvbSxcbiAgICAgIHRvcDogdGFyZ2V0UG9zaXRpb24udG9wLFxuICAgICAgbGVmdDogdGFyZ2V0UG9zaXRpb24ubGVmdCxcbiAgICAgIHJpZ2h0OiB0YXJnZXRQb3NpdGlvbi5yaWdodCxcbiAgICB9O1xuXG4gICAgY29uc3QgdGFyZ2V0VHJhbnNmb3JtZWRQYXJlbnQgPSBEb21VdGlsLmZpbmRUcmFuc2Zvcm1lZFBhcmVudCh0YXJnZXQpO1xuICAgIGxldCBwYXJlbnRQb3NpdGlvbiA9IHtcbiAgICAgIGxlZnQ6IDAsXG4gICAgICByaWdodDogMCxcbiAgICAgIHRvcDogMCxcbiAgICAgIGJvdHRvbTogMFxuICAgIH07XG4gICAgaWYgKHRhcmdldFRyYW5zZm9ybWVkUGFyZW50KSB7XG4gICAgICBwYXJlbnRQb3NpdGlvbiA9IHRhcmdldFRyYW5zZm9ybWVkUGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIH1cblxuICAgIGNvbnN0IHBvc2l0aW9uID0gUG9zaXRpb25VdGlsLmdldFBvc2l0aW9uKFxuICAgICAgcmVjdCxcbiAgICAgIHRhcmdldFJlY3QsXG4gICAgICB0aGlzLmFsaWduLFxuICAgICAgdGhpcy52ZXJ0aWNhbEFsaWduLFxuICAgICAgMCxcbiAgICAgIDAsXG4gICAgICBwYXJlbnRQb3NpdGlvblxuICAgICk7XG5cbiAgICBQb3NpdGlvblV0aWwuc2V0RWxlbWVudFBvc2l0aW9uKHRhcmdldCwgcG9zaXRpb24pO1xuICB9XG59XG4iXX0=
@@ -148,10 +148,10 @@ export class HeadCellComponent {
148
148
  }
149
149
  }
150
150
  HeadCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: HeadCellComponent, deps: [{ token: i1.TableService }, { token: i0.ApplicationRef }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
151
- HeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: HeadCellComponent, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, viewQueries: [{ propertyName: "mainTemplate", first: true, predicate: ["mainTemplate"], descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }, { propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.auto\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\">\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template #mainTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-main-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [headCellElementRef]=\"elementRef\"></teta-main-dropdown-tab>\n</ng-template>\n<ng-template #filterTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-filter-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template #columnsTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-visibility-dropdown-tab [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: i4.DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: i5.DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: i6.DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "directive", type: i7.ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "component", type: i8.HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "columns", "data"] }, { kind: "component", type: i9.HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "tabTemplates", "dropDownOpen"], outputs: ["dropDownOpenChange"] }, { kind: "component", type: i10.MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: ["columns", "column", "state", "data", "close", "headCellElementRef"] }, { kind: "component", type: i11.FilterDropdownTabComponent, selector: "teta-filter-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: i12.VisibilityDropdownTabComponent, selector: "teta-visibility-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
151
+ HeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: HeadCellComponent, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, viewQueries: [{ propertyName: "mainTemplate", first: true, predicate: ["mainTemplate"], descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }, { propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.auto\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\">\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template #mainTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-main-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [headCellElementRef]=\"elementRef\"></teta-main-dropdown-tab>\n</ng-template>\n<ng-template #filterTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-filter-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template #columnsTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-visibility-dropdown-tab [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: i4.DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: i5.DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: i6.DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "directive", type: i7.ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "component", type: i8.HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "columns", "data"] }, { kind: "component", type: i9.HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "tabTemplates", "dropDownOpen"], outputs: ["dropDownOpenChange"] }, { kind: "component", type: i10.MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: ["columns", "column", "state", "data", "close", "headCellElementRef"] }, { kind: "component", type: i11.FilterDropdownTabComponent, selector: "teta-filter-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: i12.VisibilityDropdownTabComponent, selector: "teta-visibility-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
152
152
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: HeadCellComponent, decorators: [{
153
153
  type: Component,
154
- args: [{ selector: 'teta-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.auto\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\">\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template #mainTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-main-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [headCellElementRef]=\"elementRef\"></teta-main-dropdown-tab>\n</ng-template>\n<ng-template #filterTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-filter-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template #columnsTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-visibility-dropdown-tab [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"] }]
154
+ args: [{ selector: 'teta-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.auto\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\">\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template #mainTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-main-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [headCellElementRef]=\"elementRef\"></teta-main-dropdown-tab>\n</ng-template>\n<ng-template #filterTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-filter-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template #columnsTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-visibility-dropdown-tab [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"] }]
155
155
  }], ctorParameters: function () { return [{ type: i1.TableService }, { type: i0.ApplicationRef }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { column: [{
156
156
  type: Input
157
157
  }], showHeadCellMenu: [{
@@ -186,4 +186,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
186
186
  type: HostListener,
187
187
  args: ['drop', ['$event']]
188
188
  }] } });
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvaGVhZC1jZWxsL2hlYWQtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL2hlYWQtY2VsbC9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ0csV0FBVyxFQUN2QixZQUFZLEVBQ1osS0FBSyxFQUVnQixTQUFTLEdBQy9CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBR2xFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RCxPQUFPLEVBQUMsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVMvQyxNQUFNLE9BQU8saUJBQWlCO0lBK0Q1QixZQUNVLElBQXFCLEVBQ3JCLElBQW9CLEVBQ3BCLFdBQXVCLEVBQ3ZCLElBQXVCO1FBSHZCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBOURqQyxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBT2QsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsYUFBUSxHQUE0QixJQUFJLENBQUM7UUFH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QkFBQyxjQUFjLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNJLGNBQWM7c0JBQTFELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNHLGVBQWU7c0JBQTVELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQXdETCxTQUFTO3NCQUEvQyxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJQyxTQUFTO3NCQUE5QyxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRRyxTQUFTO3NCQUEvQyxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLQSxPQUFPO3NCQUEzQyxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJRCxJQUFJO3NCQUFyQyxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VGFibGVDb2x1bW59IGZyb20gJy4uL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQge0NvbHVtblJlc2l6ZUV2ZW50fSBmcm9tICcuLi9jb250cmFjdC9jb2x1bW4tcmVzaXplLWV2ZW50JztcbmltcG9ydCB7RmlsdGVyU3RhdGV9IGZyb20gJy4uLy4uL2ZpbHRlci9jb250YXJjdC9maWx0ZXItc3RhdGUnO1xuaW1wb3J0IHtUYWJsZVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvdGFibGUuc2VydmljZSc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTb3J0UGFyYW19IGZyb20gJy4uLy4uL2ZpbHRlci9jb250YXJjdC9zb3J0LXBhcmFtJztcbmltcG9ydCB7U3RhdGVVdGlsfSBmcm9tICcuLi91dGlsL3N0YXRlLXV0aWwnO1xuaW1wb3J0IHtWZXJ0aWNhbEFsaWdufSBmcm9tICcuLi8uLi8uLi9jb21tb24vZW51bS92ZXJ0aWNhbC1hbGlnbi5lbnVtJztcbmltcG9ydCB7QWxpZ259IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9lbnVtL2FsaWduLmVudW0nO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SGVhZERyb3Bkb3duVGFifSBmcm9tICcuLi9jb250cmFjdC9oZWFkLWRyb3Bkb3duLXRhYic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtaGVhZC1jZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWQtY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWQtY2VsbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZENlbGxDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGNvbHVtbjogVGFibGVDb2x1bW47XG4gIEBJbnB1dCgpIHNob3dIZWFkQ2VsbE1lbnU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRhdGE6IFRbXTtcblxuICB2ZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbjtcbiAgYWxpZ24gPSBBbGlnbjtcbiAgc3RhdGU6IE9ic2VydmFibGU8RmlsdGVyU3RhdGU+O1xuICBjb2x1bW5zOiBPYnNlcnZhYmxlPFRhYmxlQ29sdW1uW10+O1xuICBmaWx0ZXJlZDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc29ydFBhcmFtOiBPYnNlcnZhYmxlPFNvcnRQYXJhbT47XG4gIGljb25OYW1lOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIEBIb3N0QmluZGluZygnY2xhc3MudGFibGUtaGVhZF9fY2VsbF9hY3RpdmUnKVxuICBkcm9wRG93bk9wZW4gPSBmYWxzZTtcbiAgc2hvd0RyYWc6ICdsZWZ0JyB8ICdyaWdodCcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByZWN0OiBhbnk7XG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuICBwcml2YXRlIF9zdGFydFBvc2l0aW9uOiBudW1iZXI7XG5cbiAgQFZpZXdDaGlsZCgnbWFpblRlbXBsYXRlJywge3N0YXRpYzogdHJ1ZX0pIG1haW5UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgnZmlsdGVyVGVtcGxhdGUnLCB7c3RhdGljOiB0cnVlfSkgZmlsdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbnNUZW1wbGF0ZScsIHtzdGF0aWM6IHRydWV9KSBjb2x1bW5zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZ2V0IGRlZmF1bHRUZW1wbGF0ZXMoKTogSGVhZERyb3Bkb3duVGFiW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGljb246ICdtZW51JyxcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMubWFpblRlbXBsYXRlLFxuICAgICAgICBvcmRlcjogMTAsXG4gICAgICAgIHNob3dUYWI6ICgpID0+IHRydWUsXG4gICAgICB9LCB7XG4gICAgICAgIGljb246ICdmaWx0ZXInLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5maWx0ZXJUZW1wbGF0ZSxcbiAgICAgICAgb3JkZXI6IDIwLFxuICAgICAgICBzaG93VGFiOiAoY29sdW1uKSA9PiBjb2x1bW4uZmlsdGVyYWJsZSxcbiAgICAgIH0sIHtcbiAgICAgICAgaWNvbjogJ2V5ZScsXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLmNvbHVtbnNUZW1wbGF0ZSxcbiAgICAgICAgb3JkZXI6IDMwLFxuICAgICAgICBzaG93VGFiOiAoKSA9PiB0cnVlLFxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBnZXQgZWxlbWVudFJlZigpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgfVxuXG4gIGdldCB0YWJUZW1wbGF0ZXMoKSB7XG4gICAgaWYgKHRoaXMuY29sdW1uPy5oZWFkRHJvcGRvd25Db25maWcgJiYgdGhpcy5jb2x1bW4uaGVhZERyb3Bkb3duQ29uZmlnLnRhYnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcuc3RyYXRlZ3kgPT09ICdyZXBsYWNlJykge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uaGVhZERyb3Bkb3duQ29uZmlnLnRhYnM7XG4gICAgICB9XG4gICAgICByZXR1cm4gWy4uLnRoaXMuZGVmYXVsdFRlbXBsYXRlcywgLi4udGhpcy5jb2x1bW4uaGVhZERyb3Bkb3duQ29uZmlnLnRhYnNdXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFRlbXBsYXRlcztcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3N2YzogVGFibGVTZXJ2aWNlPFQ+LFxuICAgIHByaXZhdGUgX2FwcDogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICB9XG5cbiAgZHJhZ3N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dCcsICdtb3ZlJyk7XG4gICAgfVxuICAgIHRoaXMuX3N2Yy5kcmFnU3RhcnQodGhpcy5jb2x1bW4pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VudGVyJywgWyckZXZlbnQnXSkgZHJhZ2VudGVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnJlY3QgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pIGFsbG93RHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAodGhpcy5yZWN0ICYmIHRoaXMuX3N2Yy5kcmFnU291cmNlKSB7XG4gICAgICB0aGlzLnNob3dEcmFnID1cbiAgICAgICAgZXZlbnQuY2xpZW50WCA+PSB0aGlzLnJlY3QueCArIHRoaXMucmVjdC53aWR0aCAvIDIgPyAncmlnaHQnIDogJ2xlZnQnO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pIGRyYWdsZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnNob3dEcmFnID0gbnVsbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbmQnLCBbJyRldmVudCddKSBkcmFnZW5kKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dEcmFnID0gbnVsbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKSBkcm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBtb3ZlID0gZXZlbnQuZGF0YVRyYW5zZmVyICYmIGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKCd0ZXh0Jyk7XG4gICAgaWYgKG1vdmUgPT09ICdtb3ZlJykge1xuICAgICAgdGhpcy5fc3ZjLnJlb3JkZXJDb2x1bW4odGhpcy5jb2x1bW4sIHRoaXMuc2hvd0RyYWcgPT09ICdsZWZ0Jyk7XG4gICAgfVxuICAgIHRoaXMuc2hvd0RyYWcgPSBudWxsO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5zID0gdGhpcy5fc3ZjLmNvbHVtbnM7XG4gICAgdGhpcy5zdGF0ZSA9IHRoaXMuX3N2Yy5zdGF0ZTtcbiAgICB0aGlzLnNvcnRQYXJhbSA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIG1hcCgoXykgPT4gU3RhdGVVdGlsLmdldFNvcnRTdGF0ZShfLCB0aGlzLmNvbHVtbikpXG4gICAgKTtcbiAgICB0aGlzLmZpbHRlcmVkID0gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgbWFwKChfKSA9PiBTdGF0ZVV0aWwuaXNDb2x1bW5GaWx0ZXJlZChfLCB0aGlzLmNvbHVtbikpXG4gICAgKTtcbiAgICB0aGlzLmljb25OYW1lID0gY29tYmluZUxhdGVzdChbdGhpcy5zb3J0UGFyYW0sIHRoaXMuZmlsdGVyZWRdKS5waXBlKFxuICAgICAgbWFwKChkYXRhOiBbU29ydFBhcmFtLCBib29sZWFuXSkgPT4ge1xuICAgICAgICBjb25zdCBbc29ydFBhcmFtLCBmaWx0ZXJlZF0gPSBkYXRhO1xuICAgICAgICBpZiAoc29ydFBhcmFtICYmIGZpbHRlcmVkKSB7XG4gICAgICAgICAgcmV0dXJuIHNvcnRQYXJhbS5hc2MgPyAnZmlsdGVyU29ydFVwQ29sb3InIDogJ2ZpbHRlclNvcnREb3duQ29sb3InO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzb3J0UGFyYW0pIHtcbiAgICAgICAgICByZXR1cm4gc29ydFBhcmFtLmFzYyA/ICdzb3J0VXBDb2xvcicgOiAnc29ydERvd25Db2xvcic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcmVkKSB7XG4gICAgICAgICAgcmV0dXJuICdmaWx0ZXJDb2xvcic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeVtdKSA9PiB7XG4gICAgICBlbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICAgIGlmICghZW50cnkuaXNJbnRlcnNlY3RpbmcgJiYgdGhpcy5kcm9wRG93bk9wZW4pIHtcbiAgICAgICAgICB0aGlzLmRyb3BEb3duT3BlbiA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sIHtcbiAgICAgIHJvb3Q6IHRoaXMuX3N2Yy5nZXRUYWJsZUVsZW1lbnQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSxcbiAgICAgIHRocmVzaG9sZDogWzFdXG4gICAgfSk7XG4gICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMub2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICByZXNpemVTdGFydChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5fc3RhcnRQb3NpdGlvbiA9IHJlY3QueDtcbiAgICB0aGlzLl9zdmMubG9ja1ByZXZpb3VzQ29sdW1ucyh0aGlzLmNvbHVtbiwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHJlc2l6ZVByb2Nlc3MoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhcnRQb3NpdGlvbiAmJiBldmVudC5wYWdlWCA+IDApIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5fc3RhcnRQb3NpdGlvbjtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3N2Yy5yZXNpemVDb2x1bW4oXG4gICAgICAgICAgbmV3IENvbHVtblJlc2l6ZUV2ZW50KHRoaXMuY29sdW1uLCBldmVudC5wYWdlWCAtIHBvc2l0aW9uKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9hcHAudGljaygpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVzaXplRW5kKCkge1xuICAgIHRoaXMuX3N0YXJ0UG9zaXRpb24gPSBudWxsO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicm93IHJvd19hdXRvXCI+XG4gIDx0ZXRhLWRyb3Bkb3duIFthdXRvQ2xvc2VJZ25vcmVdPVwiWydlbnRlcicsICdpbnNpZGUnXVwiXG4gICAgICAgICAgICAgICAgIFt2ZXJ0aWNhbEFsaWduXT1cInZlcnRpY2FsQWxpZ24uYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgW2FwcGVuZFRvQm9keV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgWyhvcGVuKV09XCJkcm9wRG93bk9wZW5cIlxuICAgICAgICAgICAgICAgICBbYWxpZ25dPVwiYWxpZ24uYXV0b1wiXG4gICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgICAgICAgIFtjbGFzcy50YWJsZS1oZWFkX19jZWxsX19tZW51X29wZW5dPVwiZHJvcERvd25PcGVuXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2x1bW4gY29sdW1uX2F1dG8ganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgIDxkaXYgdGV0YURyb3Bkb3duSGVhZFxuICAgICAgICAgZHJhZ2dhYmxlPVwidHJ1ZVwiXG4gICAgICAgICBjbGFzcz1cInRhYmxlLWhlYWRfX2NlbGxfX3dyYXBwZXJcIlxuICAgICAgICAgKGRyYWdzdGFydCk9XCJkcmFnc3RhcnQoJGV2ZW50KVwiXG4gICAgICAgICBbbmdDbGFzc109XCJjb2x1bW4uaGVhZENlbGxDbGFzc1wiPlxuICAgICAgPHRldGEtaGVhZC1jZWxsLWhvc3QgW2NvbHVtbl09XCJjb2x1bW5cIiBbY29sdW1uc109XCJjb2x1bW5zIHwgYXN5bmNcIiBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLWhlYWQtY2VsbC1ob3N0PlxuICAgICAgPHRldGEtaWNvbiAqbmdJZj1cImljb25OYW1lIHwgYXN5bmMgYXMgaWNvblwiXG4gICAgICAgICAgICAgICAgIFtwYWxldHRlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgIFtuYW1lXT1cImljb25cIj48L3RldGEtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8dGV0YS1oZWFkLWNlbGwtZHJvcGRvd24gdGV0YURyb3Bkb3duQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dIZWFkQ2VsbE1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFiVGVtcGxhdGVzXT1cInRhYlRlbXBsYXRlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnMgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJzdGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhkcm9wRG93bk9wZW4pXT1cImRyb3BEb3duT3BlblwiPjwvdGV0YS1oZWFkLWNlbGwtZHJvcGRvd24+XG4gIDwvdGV0YS1kcm9wZG93bj5cbiAgPGRpdiBjbGFzcz1cImRyb3AtYXJlYVwiXG4gICAgICAgZHJhZ2dhYmxlPVwiZmFsc2VcIlxuICAgICAgIFtjbGFzcy5kcm9wLWFyZWFfbGVmdF09XCJzaG93RHJhZyA9PT0gJ2xlZnQnXCJcbiAgICAgICBbY2xhc3MuZHJvcC1hcmVhX3JpZ2h0XT1cInNob3dEcmFnID09PSAncmlnaHQnXCJcbiAgICAgICAqbmdJZj1cInNob3dEcmFnXCI+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkX19jZWxsX19yZXNpemVcIlxuICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgIChkcmFnc3RhcnQpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgKGRyYWcpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgW3RldGFSZXNpemVEcmFnXT1cIid2ZXJ0aWNhbCdcIlxuICAgICAocmVzaXplU3RhcnQpPVwicmVzaXplU3RhcnQoJGV2ZW50KVwiXG4gICAgIChyZXNpemVQcm9jZXNzKT1cInJlc2l6ZVByb2Nlc3MoJGV2ZW50KVwiXG4gICAgIChyZXNpemVFbmQpPVwicmVzaXplRW5kKClcIj5cbiAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRfX2NlbGxfX3Jlc2l6ZV9kcmFnXCI+PC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjbWFpblRlbXBsYXRlIGxldC1jb2x1bW49XCJjb2x1bW5cIiBsZXQtY29sdW1ucz1cImNvbHVtbnNcIiBsZXQtZGF0YT1cImRhdGFcIiBsZXQtc3RhdGU9XCJzdGF0ZVwiXG4gICAgICAgICAgICAgbGV0LWNsb3NlPVwiY2xvc2VcIj5cbiAgPHRldGEtbWFpbi1kcm9wZG93bi10YWIgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xvc2VdPVwiY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZENlbGxFbGVtZW50UmVmXT1cImVsZW1lbnRSZWZcIj48L3RldGEtbWFpbi1kcm9wZG93bi10YWI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNmaWx0ZXJUZW1wbGF0ZSBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LXN0YXRlPVwic3RhdGVcIlxuICAgICAgICAgICAgIGxldC1jbG9zZT1cImNsb3NlXCI+XG4gIDx0ZXRhLWZpbHRlci1kcm9wZG93bi10YWIgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nsb3NlXT1cImNsb3NlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLWZpbHRlci1kcm9wZG93bi10YWI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNjb2x1bW5zVGVtcGxhdGUgbGV0LWNvbHVtbj1cImNvbHVtblwiIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1kYXRhPVwiZGF0YVwiIGxldC1zdGF0ZT1cInN0YXRlXCJcbiAgICAgICAgICAgICBsZXQtY2xvc2U9XCJjbG9zZVwiPlxuICA8dGV0YS12aXNpYmlsaXR5LWRyb3Bkb3duLXRhYiBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xvc2VdPVwiY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLXZpc2liaWxpdHktZHJvcGRvd24tdGFiPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvaGVhZC1jZWxsL2hlYWQtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL2hlYWQtY2VsbC9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ0csV0FBVyxFQUN2QixZQUFZLEVBQ1osS0FBSyxFQUVnQixTQUFTLEdBQy9CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBR2xFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RCxPQUFPLEVBQUMsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVMvQyxNQUFNLE9BQU8saUJBQWlCO0lBK0Q1QixZQUNVLElBQXFCLEVBQ3JCLElBQW9CLEVBQ3BCLFdBQXVCLEVBQ3ZCLElBQXVCO1FBSHZCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBOURqQyxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBT2QsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsYUFBUSxHQUE0QixJQUFJLENBQUM7UUFH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QkFBQyxjQUFjLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNJLGNBQWM7c0JBQTFELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNHLGVBQWU7c0JBQTVELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQXdETCxTQUFTO3NCQUEvQyxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJQyxTQUFTO3NCQUE5QyxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRRyxTQUFTO3NCQUEvQyxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLQSxPQUFPO3NCQUEzQyxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJRCxJQUFJO3NCQUFyQyxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VGFibGVDb2x1bW59IGZyb20gJy4uL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQge0NvbHVtblJlc2l6ZUV2ZW50fSBmcm9tICcuLi9jb250cmFjdC9jb2x1bW4tcmVzaXplLWV2ZW50JztcbmltcG9ydCB7RmlsdGVyU3RhdGV9IGZyb20gJy4uLy4uL2ZpbHRlci9jb250YXJjdC9maWx0ZXItc3RhdGUnO1xuaW1wb3J0IHtUYWJsZVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvdGFibGUuc2VydmljZSc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTb3J0UGFyYW19IGZyb20gJy4uLy4uL2ZpbHRlci9jb250YXJjdC9zb3J0LXBhcmFtJztcbmltcG9ydCB7U3RhdGVVdGlsfSBmcm9tICcuLi91dGlsL3N0YXRlLXV0aWwnO1xuaW1wb3J0IHtWZXJ0aWNhbEFsaWdufSBmcm9tICcuLi8uLi8uLi9jb21tb24vZW51bS92ZXJ0aWNhbC1hbGlnbi5lbnVtJztcbmltcG9ydCB7QWxpZ259IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9lbnVtL2FsaWduLmVudW0nO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SGVhZERyb3Bkb3duVGFifSBmcm9tICcuLi9jb250cmFjdC9oZWFkLWRyb3Bkb3duLXRhYic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtaGVhZC1jZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWQtY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWQtY2VsbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZENlbGxDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGNvbHVtbjogVGFibGVDb2x1bW47XG4gIEBJbnB1dCgpIHNob3dIZWFkQ2VsbE1lbnU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRhdGE6IFRbXTtcblxuICB2ZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbjtcbiAgYWxpZ24gPSBBbGlnbjtcbiAgc3RhdGU6IE9ic2VydmFibGU8RmlsdGVyU3RhdGU+O1xuICBjb2x1bW5zOiBPYnNlcnZhYmxlPFRhYmxlQ29sdW1uW10+O1xuICBmaWx0ZXJlZDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc29ydFBhcmFtOiBPYnNlcnZhYmxlPFNvcnRQYXJhbT47XG4gIGljb25OYW1lOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIEBIb3N0QmluZGluZygnY2xhc3MudGFibGUtaGVhZF9fY2VsbF9hY3RpdmUnKVxuICBkcm9wRG93bk9wZW4gPSBmYWxzZTtcbiAgc2hvd0RyYWc6ICdsZWZ0JyB8ICdyaWdodCcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByZWN0OiBhbnk7XG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuICBwcml2YXRlIF9zdGFydFBvc2l0aW9uOiBudW1iZXI7XG5cbiAgQFZpZXdDaGlsZCgnbWFpblRlbXBsYXRlJywge3N0YXRpYzogdHJ1ZX0pIG1haW5UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgnZmlsdGVyVGVtcGxhdGUnLCB7c3RhdGljOiB0cnVlfSkgZmlsdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbnNUZW1wbGF0ZScsIHtzdGF0aWM6IHRydWV9KSBjb2x1bW5zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZ2V0IGRlZmF1bHRUZW1wbGF0ZXMoKTogSGVhZERyb3Bkb3duVGFiW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGljb246ICdtZW51JyxcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMubWFpblRlbXBsYXRlLFxuICAgICAgICBvcmRlcjogMTAsXG4gICAgICAgIHNob3dUYWI6ICgpID0+IHRydWUsXG4gICAgICB9LCB7XG4gICAgICAgIGljb246ICdmaWx0ZXInLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5maWx0ZXJUZW1wbGF0ZSxcbiAgICAgICAgb3JkZXI6IDIwLFxuICAgICAgICBzaG93VGFiOiAoY29sdW1uKSA9PiBjb2x1bW4uZmlsdGVyYWJsZSxcbiAgICAgIH0sIHtcbiAgICAgICAgaWNvbjogJ2V5ZScsXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLmNvbHVtbnNUZW1wbGF0ZSxcbiAgICAgICAgb3JkZXI6IDMwLFxuICAgICAgICBzaG93VGFiOiAoKSA9PiB0cnVlLFxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBnZXQgZWxlbWVudFJlZigpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgfVxuXG4gIGdldCB0YWJUZW1wbGF0ZXMoKSB7XG4gICAgaWYgKHRoaXMuY29sdW1uPy5oZWFkRHJvcGRvd25Db25maWcgJiYgdGhpcy5jb2x1bW4uaGVhZERyb3Bkb3duQ29uZmlnLnRhYnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcuc3RyYXRlZ3kgPT09ICdyZXBsYWNlJykge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uaGVhZERyb3Bkb3duQ29uZmlnLnRhYnM7XG4gICAgICB9XG4gICAgICByZXR1cm4gWy4uLnRoaXMuZGVmYXVsdFRlbXBsYXRlcywgLi4udGhpcy5jb2x1bW4uaGVhZERyb3Bkb3duQ29uZmlnLnRhYnNdXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFRlbXBsYXRlcztcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3N2YzogVGFibGVTZXJ2aWNlPFQ+LFxuICAgIHByaXZhdGUgX2FwcDogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICB9XG5cbiAgZHJhZ3N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dCcsICdtb3ZlJyk7XG4gICAgfVxuICAgIHRoaXMuX3N2Yy5kcmFnU3RhcnQodGhpcy5jb2x1bW4pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VudGVyJywgWyckZXZlbnQnXSkgZHJhZ2VudGVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnJlY3QgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pIGFsbG93RHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAodGhpcy5yZWN0ICYmIHRoaXMuX3N2Yy5kcmFnU291cmNlKSB7XG4gICAgICB0aGlzLnNob3dEcmFnID1cbiAgICAgICAgZXZlbnQuY2xpZW50WCA+PSB0aGlzLnJlY3QueCArIHRoaXMucmVjdC53aWR0aCAvIDIgPyAncmlnaHQnIDogJ2xlZnQnO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pIGRyYWdsZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnNob3dEcmFnID0gbnVsbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbmQnLCBbJyRldmVudCddKSBkcmFnZW5kKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dEcmFnID0gbnVsbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKSBkcm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBtb3ZlID0gZXZlbnQuZGF0YVRyYW5zZmVyICYmIGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKCd0ZXh0Jyk7XG4gICAgaWYgKG1vdmUgPT09ICdtb3ZlJykge1xuICAgICAgdGhpcy5fc3ZjLnJlb3JkZXJDb2x1bW4odGhpcy5jb2x1bW4sIHRoaXMuc2hvd0RyYWcgPT09ICdsZWZ0Jyk7XG4gICAgfVxuICAgIHRoaXMuc2hvd0RyYWcgPSBudWxsO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5zID0gdGhpcy5fc3ZjLmNvbHVtbnM7XG4gICAgdGhpcy5zdGF0ZSA9IHRoaXMuX3N2Yy5zdGF0ZTtcbiAgICB0aGlzLnNvcnRQYXJhbSA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIG1hcCgoXykgPT4gU3RhdGVVdGlsLmdldFNvcnRTdGF0ZShfLCB0aGlzLmNvbHVtbikpXG4gICAgKTtcbiAgICB0aGlzLmZpbHRlcmVkID0gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgbWFwKChfKSA9PiBTdGF0ZVV0aWwuaXNDb2x1bW5GaWx0ZXJlZChfLCB0aGlzLmNvbHVtbikpXG4gICAgKTtcbiAgICB0aGlzLmljb25OYW1lID0gY29tYmluZUxhdGVzdChbdGhpcy5zb3J0UGFyYW0sIHRoaXMuZmlsdGVyZWRdKS5waXBlKFxuICAgICAgbWFwKChkYXRhOiBbU29ydFBhcmFtLCBib29sZWFuXSkgPT4ge1xuICAgICAgICBjb25zdCBbc29ydFBhcmFtLCBmaWx0ZXJlZF0gPSBkYXRhO1xuICAgICAgICBpZiAoc29ydFBhcmFtICYmIGZpbHRlcmVkKSB7XG4gICAgICAgICAgcmV0dXJuIHNvcnRQYXJhbS5hc2MgPyAnZmlsdGVyU29ydFVwQ29sb3InIDogJ2ZpbHRlclNvcnREb3duQ29sb3InO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzb3J0UGFyYW0pIHtcbiAgICAgICAgICByZXR1cm4gc29ydFBhcmFtLmFzYyA/ICdzb3J0VXBDb2xvcicgOiAnc29ydERvd25Db2xvcic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcmVkKSB7XG4gICAgICAgICAgcmV0dXJuICdmaWx0ZXJDb2xvcic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeVtdKSA9PiB7XG4gICAgICBlbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICAgIGlmICghZW50cnkuaXNJbnRlcnNlY3RpbmcgJiYgdGhpcy5kcm9wRG93bk9wZW4pIHtcbiAgICAgICAgICB0aGlzLmRyb3BEb3duT3BlbiA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sIHtcbiAgICAgIHJvb3Q6IHRoaXMuX3N2Yy5nZXRUYWJsZUVsZW1lbnQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSxcbiAgICAgIHRocmVzaG9sZDogWzFdXG4gICAgfSk7XG4gICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMub2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICByZXNpemVTdGFydChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5fc3RhcnRQb3NpdGlvbiA9IHJlY3QueDtcbiAgICB0aGlzLl9zdmMubG9ja1ByZXZpb3VzQ29sdW1ucyh0aGlzLmNvbHVtbiwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHJlc2l6ZVByb2Nlc3MoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhcnRQb3NpdGlvbiAmJiBldmVudC5wYWdlWCA+IDApIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5fc3RhcnRQb3NpdGlvbjtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3N2Yy5yZXNpemVDb2x1bW4oXG4gICAgICAgICAgbmV3IENvbHVtblJlc2l6ZUV2ZW50KHRoaXMuY29sdW1uLCBldmVudC5wYWdlWCAtIHBvc2l0aW9uKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9hcHAudGljaygpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVzaXplRW5kKCkge1xuICAgIHRoaXMuX3N0YXJ0UG9zaXRpb24gPSBudWxsO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicm93IHJvd19hdXRvXCI+XG4gIDx0ZXRhLWRyb3Bkb3duIFthdXRvQ2xvc2VJZ25vcmVdPVwiWydlbnRlcicsICdpbnNpZGUnXVwiXG4gICAgICAgICAgICAgICAgIFt2ZXJ0aWNhbEFsaWduXT1cInZlcnRpY2FsQWxpZ24uYXV0b1wiXG4gICAgICAgICAgICAgICAgIFthcHBlbmRUb0JvZHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgIFsob3BlbildPVwiZHJvcERvd25PcGVuXCJcbiAgICAgICAgICAgICAgICAgW2FsaWduXT1cImFsaWduLmF1dG9cIlxuICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgICAgICAgICAgICBbY2xhc3MudGFibGUtaGVhZF9fY2VsbF9fbWVudV9vcGVuXT1cImRyb3BEb3duT3BlblwiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sdW1uIGNvbHVtbl9hdXRvIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICA8ZGl2IHRldGFEcm9wZG93bkhlYWRcbiAgICAgICAgIGRyYWdnYWJsZT1cInRydWVcIlxuICAgICAgICAgY2xhc3M9XCJ0YWJsZS1oZWFkX19jZWxsX193cmFwcGVyXCJcbiAgICAgICAgIChkcmFnc3RhcnQpPVwiZHJhZ3N0YXJ0KCRldmVudClcIlxuICAgICAgICAgW25nQ2xhc3NdPVwiY29sdW1uLmhlYWRDZWxsQ2xhc3NcIj5cbiAgICAgIDx0ZXRhLWhlYWQtY2VsbC1ob3N0IFtjb2x1bW5dPVwiY29sdW1uXCIgW2NvbHVtbnNdPVwiY29sdW1ucyB8IGFzeW5jXCIgW2RhdGFdPVwiZGF0YVwiPjwvdGV0YS1oZWFkLWNlbGwtaG9zdD5cbiAgICAgIDx0ZXRhLWljb24gKm5nSWY9XCJpY29uTmFtZSB8IGFzeW5jIGFzIGljb25cIlxuICAgICAgICAgICAgICAgICBbcGFsZXR0ZV09XCIndGV4dCdcIlxuICAgICAgICAgICAgICAgICBbbmFtZV09XCJpY29uXCI+PC90ZXRhLWljb24+XG4gICAgPC9kaXY+XG4gICAgPHRldGEtaGVhZC1jZWxsLWRyb3Bkb3duIHRldGFEcm9wZG93bkNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93SGVhZENlbGxNZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYlRlbXBsYXRlc109XCJ0YWJUZW1wbGF0ZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwic3RhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoZHJvcERvd25PcGVuKV09XCJkcm9wRG93bk9wZW5cIj48L3RldGEtaGVhZC1jZWxsLWRyb3Bkb3duPlxuICA8L3RldGEtZHJvcGRvd24+XG4gIDxkaXYgY2xhc3M9XCJkcm9wLWFyZWFcIlxuICAgICAgIGRyYWdnYWJsZT1cImZhbHNlXCJcbiAgICAgICBbY2xhc3MuZHJvcC1hcmVhX2xlZnRdPVwic2hvd0RyYWcgPT09ICdsZWZ0J1wiXG4gICAgICAgW2NsYXNzLmRyb3AtYXJlYV9yaWdodF09XCJzaG93RHJhZyA9PT0gJ3JpZ2h0J1wiXG4gICAgICAgKm5nSWY9XCJzaG93RHJhZ1wiPjwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwidGFibGUtaGVhZF9fY2VsbF9fcmVzaXplXCJcbiAgICAgZHJhZ2dhYmxlPVwiZmFsc2VcIlxuICAgICAoZHJhZ3N0YXJ0KT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgIChkcmFnKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgIFt0ZXRhUmVzaXplRHJhZ109XCIndmVydGljYWwnXCJcbiAgICAgKHJlc2l6ZVN0YXJ0KT1cInJlc2l6ZVN0YXJ0KCRldmVudClcIlxuICAgICAocmVzaXplUHJvY2Vzcyk9XCJyZXNpemVQcm9jZXNzKCRldmVudClcIlxuICAgICAocmVzaXplRW5kKT1cInJlc2l6ZUVuZCgpXCI+XG4gIDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkX19jZWxsX19yZXNpemVfZHJhZ1wiPjwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI21haW5UZW1wbGF0ZSBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LXN0YXRlPVwic3RhdGVcIlxuICAgICAgICAgICAgIGxldC1jbG9zZT1cImNsb3NlXCI+XG4gIDx0ZXRhLW1haW4tZHJvcGRvd24tdGFiIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nsb3NlXT1cImNsb3NlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlYWRDZWxsRWxlbWVudFJlZl09XCJlbGVtZW50UmVmXCI+PC90ZXRhLW1haW4tZHJvcGRvd24tdGFiPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZmlsdGVyVGVtcGxhdGUgbGV0LWNvbHVtbj1cImNvbHVtblwiIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1kYXRhPVwiZGF0YVwiIGxldC1zdGF0ZT1cInN0YXRlXCJcbiAgICAgICAgICAgICBsZXQtY2xvc2U9XCJjbG9zZVwiPlxuICA8dGV0YS1maWx0ZXItZHJvcGRvd24tdGFiIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbG9zZV09XCJjbG9zZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiZGF0YVwiPjwvdGV0YS1maWx0ZXItZHJvcGRvd24tdGFiPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjY29sdW1uc1RlbXBsYXRlIGxldC1jb2x1bW49XCJjb2x1bW5cIiBsZXQtY29sdW1ucz1cImNvbHVtbnNcIiBsZXQtZGF0YT1cImRhdGFcIiBsZXQtc3RhdGU9XCJzdGF0ZVwiXG4gICAgICAgICAgICAgbGV0LWNsb3NlPVwiY2xvc2VcIj5cbiAgPHRldGEtdmlzaWJpbGl0eS1kcm9wZG93bi10YWIgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nsb3NlXT1cImNsb3NlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiZGF0YVwiPjwvdGV0YS12aXNpYmlsaXR5LWRyb3Bkb3duLXRhYj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=