@tetacom/ng-components 1.0.116 → 1.0.118

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.
package/assets/icons.svg CHANGED
@@ -300,6 +300,12 @@
300
300
  <path fill-rule="evenodd" clip-rule="evenodd"
301
301
  d="M10 9L15 4V2H1V4L6 9V14L10 12V9ZM9 11.382V8.58579L14 3.58579V3H2V3.58579L7 8.58579V12.382L9 11.382Z"></path>
302
302
  </symbol>
303
+ <symbol viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" id="filterApplied">
304
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M10 9L15 4V2H1V4L6 9V14L10 12V9ZM9 11.382V8.58579L14 3.58579V3H2V3.58579L7 8.58579V12.382L9 11.382Z" fill-opacity="0.87"/>
305
+ <path d="M15 4C15 5.65685 13.6569 7 12 7C10.3431 7 9 5.65685 9 4C9 2.34315 10.3431 1 12 1C13.6569 1 15 2.34315 15 4Z" fill="#DE2C2C"/>
306
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M16 4C16 6.20914 14.2091 8 12 8C9.79086 8 8 6.20914 8 4C8 1.79086 9.79086 0 12 0C14.2091 0 16 1.79086 16 4ZM12 7C13.6569 7 15 5.65685 15 4C15 2.34315 13.6569 1 12 1C10.3431 1 9 2.34315 9 4C9 5.65685 10.3431 7 12 7Z"/>
307
+ </symbol>
308
+
303
309
  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="filterClear">
304
310
  <path fill-rule="evenodd" clip-rule="evenodd"
305
311
  d="M1.58578 2H1V3V4L6 9V12.882V14L7 13.5L10 12V10.4142L9 9.41422V11.382L7 12.382V9V8.58579L6.70711 8.29289L2 3.58579V3H2.58578L1.58578 2ZM9.29289 8.29289L10 9L15 4V3V2H14H3L4 3H14V3.58579L9.29289 8.29289Z"></path>
@@ -415,6 +421,19 @@
415
421
  <path fill-rule="evenodd" clip-rule="evenodd"
416
422
  d="M4 8V13H12V8H4ZM6.22222 7V4.77778C6.22222 3.79594 7.01816 3 8 3C8.98184 3 9.77778 3.79594 9.77778 4.77778V7H6.22222ZM8 2C9.53412 2 10.7778 3.24365 10.7778 4.77778V7H13V14H3V7H5.22222V4.77778C5.22222 3.24365 6.46588 2 8 2Z"></path>
417
423
  </symbol>
424
+ <symbol viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" id="magicWand">
425
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M2.0041 12.7066C1.61358 12.3161 1.61358 11.6829 2.0041 11.2924L11.2981 1.99837C11.6887 1.60785 12.3218 1.60785 12.7124 1.99837L14.005 3.29105C14.3956 3.68157 14.3956 4.31474 14.005 4.70526L4.711 13.9993C4.32047 14.3898 3.68731 14.3898 3.29678 13.9993L2.0041 12.7066ZM12.0052 2.70548L2.71121 11.9995L4.00389 13.2922L13.2979 3.99816L12.0052 2.70548Z" fill-opacity="0.87"/>
426
+ <path d="M9.70703 5L11.0078 6.30078L10.3007 7.00789L8.99992 5.70711L9.70703 5Z" fill-opacity="0.87"/>
427
+ <path d="M2.00415 3.99835C2.00415 3.72221 2.22801 3.49835 2.50415 3.49835H5.50415C5.78029 3.49835 6.00415 3.72221 6.00415 3.99835C6.00415 4.27449 5.78029 4.49835 5.50415 4.49835H2.50415C2.22801 4.49835 2.00415 4.27449 2.00415 3.99835Z" fill-opacity="0.87"/>
428
+ <path d="M4.00415 1.99835C4.28029 1.99835 4.50415 2.22221 4.50415 2.49835V3.49835H3.50415L3.50415 2.49835C3.50415 2.22221 3.72801 1.99835 4.00415 1.99835Z" fill-opacity="0.87"/>
429
+ <path d="M4.00415 5.99835C3.72801 5.99835 3.50415 5.77449 3.50415 5.49835L3.50415 4.49835H4.50415V5.49835C4.50415 5.77449 4.28029 5.99835 4.00415 5.99835Z" fill-opacity="0.87"/>
430
+ <path d="M11 9C11 8.72386 11.2239 8.5 11.5 8.5H14.5C14.7761 8.5 15 8.72386 15 9C15 9.27614 14.7761 9.5 14.5 9.5H11.5C11.2239 9.5 11 9.27614 11 9Z" fill-opacity="0.87"/>
431
+ <path d="M13 7C13.2761 7 13.5 7.22386 13.5 7.5V8.5H12.5L12.5 7.5C12.5 7.22386 12.7239 7 13 7Z" fill-opacity="0.87"/>
432
+ <path d="M13 11C12.7239 11 12.5 10.7761 12.5 10.5L12.5 9.5H13.5V10.5C13.5 10.7761 13.2761 11 13 11Z" fill-opacity="0.87"/>
433
+ <path d="M9 12.5C9 12.2239 9.22386 12 9.5 12H11.5C11.7761 12 12 12.2239 12 12.5C12 12.7761 11.7761 13 11.5 13H9.5C9.22386 13 9 12.7761 9 12.5Z" fill-opacity="0.87"/>
434
+ <path d="M10.5 11C10.7761 11 11 11.2239 11 11.5V12H10V11.5C10 11.2239 10.2239 11 10.5 11Z" fill-opacity="0.87"/>
435
+ <path d="M11 13V13.5C11 13.7761 10.7761 14 10.5 14C10.2239 14 10 13.7761 10 13.5V13H11Z" fill-opacity="0.87"/>
436
+ </symbol>
418
437
  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="map">
419
438
  <path fill-rule="evenodd" clip-rule="evenodd"
420
439
  d="M8.0003 5.66663C7.29847 5.66663 6.72754 6.23022 6.72754 6.92375C6.72754 7.61657 7.29847 8.17945 8.0003 8.17945C8.70214 8.17945 9.27307 7.61657 9.27307 6.92375C9.27307 6.23022 8.70214 5.66663 8.0003 5.66663ZM8.00043 9.25639C6.69711 9.25639 5.63672 8.21034 5.63672 6.92377C5.63672 5.63649 6.69711 4.58972 8.00043 4.58972C9.30374 4.58972 10.3641 5.63649 10.3641 6.92377C10.3641 8.21034 9.30374 9.25639 8.00043 9.25639Z"></path>
@@ -426,6 +445,11 @@
426
445
  d="M7.99957 2.0769C5.29258 2.0769 3.09033 4.27167 3.09033 6.96829C3.09033 10.3994 7.18064 13.7421 7.99957 13.9202C8.81851 13.7414 12.9088 10.3986 12.9088 6.96829C12.9088 4.27167 10.7066 2.0769 7.99957 2.0769ZM7.99969 15C6.69493 15 1.99951 11.0139 1.99951 6.96831C1.99951 3.67723 4.69123 1 7.99969 1C11.3082 1 13.9999 3.67723 13.9999 6.96831C13.9999 11.0139 9.30446 15 7.99969 15Z"></path>
427
446
  </g>
428
447
  </symbol>
448
+ <symbol viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" id="mapCard">
449
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M14.5 1.19104V12.3091L10 14.5591L6 12.5591L1.5 14.8091V3.69104L6 1.44104L10 3.44104L14.5 1.19104ZM9.5 4.30907L6.5 2.80907V11.691L9.5 13.191V4.30907ZM10.5 13.191L13.5 11.691V2.80907L10.5 4.30907V13.191ZM5.5 11.691V2.80907L2.5 4.30907V13.191L5.5 11.691Z"/>
450
+ </symbol>
451
+
452
+
429
453
  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="menu">
430
454
  <path fill-rule="evenodd" clip-rule="evenodd" d="M2 13H14V14H2V13ZM2 8H14V9H2V8ZM2 3H14V4H2V3Z"></path>
431
455
  </symbol>
@@ -843,5 +867,13 @@
843
867
  d="M10.6807 3H11.8765L8.49998 8.1493L8.5002 13H7.49997V8.15345L4.00793 3H5.21589L7.99314 7.09859L10.6807 3Z"
844
868
  ></path>
845
869
  </symbol>
870
+ <symbol viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" id="zoom">
871
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M10.3346 11.0421C9.44987 11.8345 8.28121 12.3164 7 12.3164C4.23858 12.3164 2 10.0778 2 7.31641C2 4.55498 4.23858 2.31641 7 2.31641C9.76142 2.31641 12 4.55498 12 7.31641C12 8.43617 11.6319 9.46996 11.0101 10.3034L13.9797 13.273L13.2726 13.9801L10.3346 11.0421ZM11 7.31641C11 9.52555 9.20914 11.3164 7 11.3164C4.79086 11.3164 3 9.52555 3 7.31641C3 5.10727 4.79086 3.31641 7 3.31641C9.20914 3.31641 11 5.10727 11 7.31641Z" fill-opacity="0.87"/>
872
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M6.50005 9.81641L6.50005 4.81641L7.50005 4.81641L7.50005 9.81641H6.50005Z" fill-opacity="0.87"/>
873
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.81646H4.46094V6.81646H6.5V7.81646Z" fill-opacity="0.87"/>
874
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M9.53906 7.81646H7.5V6.81646H9.53906V7.81646Z" fill-opacity="0.87"/>
875
+ </symbol>
876
+
877
+
846
878
  </defs>
847
879
  </svg>
@@ -31,6 +31,7 @@ export declare class HeadCellComponent<T> implements OnInit, OnDestroy {
31
31
  filterTemplate: TemplateRef<any>;
32
32
  columnsTemplate: TemplateRef<any>;
33
33
  get defaultTemplates(): HeadDropdownTab[];
34
+ get elementRef(): ElementRef<any>;
34
35
  get tabTemplates(): HeadDropdownTab[];
35
36
  constructor(_svc: TableService<T>, _app: ApplicationRef, _elementRef: ElementRef);
36
37
  dragstart(event: DragEvent): void;
@@ -18,6 +18,7 @@ export declare class MainDropdownTabComponent<T> implements OnInit {
18
18
  state: FilterState;
19
19
  data: T[];
20
20
  close: () => void;
21
+ headCellElementRef: ElementRef;
21
22
  locale: Observable<TetaLocalisation>;
22
23
  constructor(_svc: TableService<T>, _config: TetaConfigService, _elementRef: ElementRef, _cdr: ChangeDetectorRef);
23
24
  get sortParam(): SortParam;
@@ -37,5 +38,5 @@ export declare class MainDropdownTabComponent<T> implements OnInit {
37
38
  autosizeAllColumns(): void;
38
39
  ngOnInit(): void;
39
40
  static ɵfac: i0.ɵɵFactoryDeclaration<MainDropdownTabComponent<any>, never>;
40
- static ɵcmp: i0.ɵɵComponentDeclaration<MainDropdownTabComponent<any>, "teta-main-dropdown-tab", never, { "columns": "columns"; "column": "column"; "state": "state"; "data": "data"; "close": "close"; }, {}, never, never, false>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<MainDropdownTabComponent<any>, "teta-main-dropdown-tab", never, { "columns": "columns"; "column": "column"; "state": "state"; "data": "data"; "close": "close"; "headCellElementRef": "headCellElementRef"; }, {}, never, never, false>;
41
42
  }
@@ -95,10 +95,10 @@ export class PositionUtil {
95
95
  if (rect.top < 0) {
96
96
  rect.top = 0;
97
97
  }
98
- if (verticalAlign === VerticalAlign.bottom || verticalAlign === VerticalAlign.center) {
98
+ if (verticalAlign === VerticalAlign.bottom || verticalAlign === VerticalAlign.center || verticalAlign === VerticalAlign.innerBottom) {
99
99
  rect.maxHeight = window.innerHeight - rect.top;
100
100
  }
101
- if (verticalAlign === VerticalAlign.top) {
101
+ if (verticalAlign === VerticalAlign.top || verticalAlign === VerticalAlign.innerTop) {
102
102
  rect.maxHeight = containerPosition.top;
103
103
  }
104
104
  rect.left = rect.left - transformedParentRect.left;
@@ -127,4 +127,4 @@ export class PositionUtil {
127
127
  return maxWidth;
128
128
  }
129
129
  }
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24tdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tb24vdXRpbC9wb3NpdGlvbi11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFMUQsTUFBTSxPQUFPLFlBQVk7SUFDaEIsTUFBTSxDQUFDLFdBQVcsQ0FDdkIsaUJBQXdCLEVBQ3hCLGVBQXNCLEVBQ3RCLEtBQVksRUFDWixhQUE0QixFQUM1QixTQUFpQixDQUFDLEVBQ2xCLGlCQUF5QixDQUFDLEVBQzFCLHdCQUErQjtRQUM3QixJQUFJLEVBQUUsQ0FBQztRQUNQLEtBQUssRUFBRSxDQUFDO1FBQ1IsR0FBRyxFQUFFLENBQUM7UUFDTixNQUFNLEVBQUUsQ0FBQztLQUNWO1FBRUQsTUFBTSxJQUFJLEdBQVUsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQztRQUNsRSxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUM7UUFDbkUsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQztRQUN4RSxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDO1FBQ3pFLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDeEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDbkIsSUFBSSxNQUFNLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLElBQUksR0FBRyxZQUFZLEVBQUU7Z0JBQzdELEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxD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QUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckUsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTO1lBQ3JCLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzdFLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWU7UUFDeEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFlO1FBQ3ZDLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQztRQUNwQixRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJUmVjdH0gZnJvbSAnLi4vY29udHJhY3QvaS1yZWN0JztcbmltcG9ydCB7QWxpZ259IGZyb20gJy4uL2VudW0vYWxpZ24uZW51bSc7XG5pbXBvcnQge1ZlcnRpY2FsQWxpZ259IGZyb20gJy4uL2VudW0vdmVydGljYWwtYWxpZ24uZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBQb3NpdGlvblV0aWwge1xuICBwdWJsaWMgc3RhdGljIGdldFBvc2l0aW9uKFxuICAgIGNvbnRhaW5lclBvc2l0aW9uOiBJUmVjdCxcbiAgICBlbGVtZW50UG9zaXRpb246IElSZWN0LFxuICAgIGFsaWduOiBBbGlnbixcbiAgICB2ZXJ0aWNhbEFsaWduOiBWZXJ0aWNhbEFsaWduLFxuICAgIG1hcmdpbjogbnVtYmVyID0gMCxcbiAgICB2ZXJ0aWNhbE1hcmdpbjogbnVtYmVyID0gMCxcbiAgICB0cmFuc2Zvcm1lZFBhcmVudFJlY3Q6IElSZWN0ID0ge1xuICAgICAgbGVmdDogMCxcbiAgICAgIHJpZ2h0OiAwLFxuICAgICAgdG9wOiAwLFxuICAgICAgYm90dG9tOiAwXG4gICAgfVxuICApOiBJUmVjdCB7XG4gICAgY29uc3QgcmVjdDogSVJlY3QgPSB7fTtcbiAgICBjb25zdCBlbGVtZW50V2lkdGggPSBlbGVtZW50UG9zaXRpb24ucmlnaHQgLSBlbGVtZW50UG9zaXRpb24ubGVmdDtcbiAgICBjb25zdCBlbGVtZW50SGVpZ2h0ID0gZWxlbWVudFBvc2l0aW9uLmJvdHRvbSAtIGVsZW1lbnRQb3NpdGlvbi50b3A7XG4gICAgY29uc3QgY29udGFpbmVyV2lkdGggPSBjb250YWluZXJQb3NpdGlvbi5yaWdodCAtIGNvbnRhaW5lclBvc2l0aW9uLmxlZnQ7XG4gICAgY29uc3QgY29udGFpbmVySGVpZ2h0ID0gY29udGFpbmVyUG9zaXRpb24uYm90dG9tIC0gY29udGFpbmVyUG9zaXRpb24udG9wO1xuICAgIGlmIChhbGlnbiA9PT0gQWxpZ24uYXV0bykge1xuICAgICAgYWxpZ24gPSBBbGlnbi5sZWZ0O1xuICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgY29udGFpbmVyUG9zaXRpb24ubGVmdCArIGVsZW1lbnRXaWR0aCkge1xuICAgICAgICBhbGlnbiA9IEFsaWduLnJpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLmxlZnQpIHtcbiAgICAgIHJlY3QubGVmdCA9IGNvbnRhaW5lclBvc2l0aW9uLmxlZnQgKyBtYXJnaW47XG4gICAgfVxuICAgIGlmIChhbGlnbiA9PT0gQWxpZ24ucmlnaHQpIHtcbiAgICAgIHJlY3QubGVmdCA9IGNvbnRhaW5lclBvc2l0aW9uLnJpZ2h0IC0gZWxlbWVudFdpZHRoIC0gbWFyZ2luO1xuICAgIH1cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLmNlbnRlcikge1xuICAgICAgcmVjdC5sZWZ0ID1cbiAgICAgICAgKGNvbnRhaW5lclBvc2l0aW9uLmxlZnQgKyBjb250YWluZXJQb3NpdGlvbi5yaWdodCkgLyAyIC1cbiAgICAgICAgZWxlbWVudFdpZHRoIC8gMjtcbiAgICB9XG4gICAgaWYgKGFsaWduID09PSBBbGlnbi5vdXRlckF1dG8pIHtcbiAgICAgIGFsaWduID0gQWxpZ24ub3V0ZXJSaWdodDtcbiAgICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IGNvbnRhaW5lclBvc2l0aW9uLnJpZ2h0ICsgZWxlbWVudFdpZHRoKSB7XG4gICAgICAgIGFsaWduID0gQWxpZ24ub3V0ZXJMZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLm91dGVyTGVmdCkge1xuICAgICAgcmVjdC5sZWZ0ID0gY29udGFpbmVyUG9zaXRpb24ubGVmdCAtIGVsZW1lbnRXaWR0aCArIG1hcmdpbjtcbiAgICB9XG4gICAgaWYgKGFsaWduID09PSBBbGlnbi5vdXRlclJpZ2h0KSB7XG4gICAgICByZWN0LmxlZnQgPSBjb250YWluZXJQb3NpdGlvbi5yaWdodCAtIG1hcmdpbjtcbiAgICB9XG5cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLmZpdFdpZHRoKSB7XG4gICAgICByZWN0LmxlZnQgPSBjb250YWluZXJQb3NpdGlvbi5sZWZ0ICsgbWFyZ2luO1xuICAgICAgcmVjdC5yaWdodCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gY29udGFpbmVyUG9zaXRpb24ucmlnaHQgKyBtYXJnaW47XG4gICAgfVxuXG4gICAgaWYgKGFsaWduID09PSBBbGlnbi5taW5XaWR0aCkge1xuICAgICAgcmVjdC5sZWZ0ID0gY29udGFpbmVyUG9zaXRpb24ubGVmdCArIG1hcmdpbjtcbiAgICAgIHJlY3QubWluV2lkdGggPSBjb250YWluZXJXaWR0aDtcbiAgICB9XG5cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5hdXRvKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGNvbnRhaW5lclBvc2l0aW9uLmJvdHRvbSArXG4gICAgICAgIChlbGVtZW50UG9zaXRpb24uYm90dG9tIC0gZWxlbWVudFBvc2l0aW9uLnRvcCkgPD1cbiAgICAgICAgd2luZG93LmlubmVySGVpZ2h0XG4gICAgICApIHtcbiAgICAgICAgdmVydGljYWxBbGlnbiA9IFZlcnRpY2FsQWxpZ24uYm90dG9tO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmVydGljYWxBbGlnbiA9IFZlcnRpY2FsQWxpZ24udG9wO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5pbm5lckF1dG8pIHtcbiAgICAgIGlmIChcbiAgICAgICAgY29udGFpbmVyUG9zaXRpb24uYm90dG9tICtcbiAgICAgICAgKGVsZW1lbnRQb3NpdGlvbi5ib3R0b20gLSBlbGVtZW50UG9zaXRpb24udG9wKSA8PVxuICAgICAgICB3aW5kb3cuaW5uZXJIZWlnaHRcbiAgICAgICkge1xuICAgICAgICB2ZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbi5pbm5lckJvdHRvbTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZlcnRpY2FsQWxpZ24gPSBWZXJ0aWNhbEFsaWduLmlubmVyVG9wO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi50b3ApIHtcbiAgICAgIHJlY3QudG9wID0gY29udGFpbmVyUG9zaXRpb24udG9wIC0gZWxlbWVudEhlaWdodCAtIHZlcnRpY2FsTWFyZ2luO1xuICAgIH1cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5ib3R0b20pIHtcbiAgICAgIHJlY3QudG9wID0gY29udGFpbmVyUG9zaXRpb24uYm90dG9tICsgdmVydGljYWxNYXJnaW47XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmlubmVyVG9wKSB7XG4gICAgICByZWN0LnRvcCA9IGNvbnRhaW5lclBvc2l0aW9uLmJvdHRvbSAtIGVsZW1lbnRIZWlnaHQgLSB2ZXJ0aWNhbE1hcmdpbjtcbiAgICB9XG4gICAgaWYgKHZlcnRpY2FsQWxpZ24gPT09IFZlcnRpY2FsQWxpZ24uaW5uZXJCb3R0b20pIHtcbiAgICAgIHJlY3QudG9wID0gY29udGFpbmVyUG9zaXRpb24udG9wICsgdmVydGljYWxNYXJnaW47XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmNlbnRlcikge1xuICAgICAgcmVjdC50b3AgPVxuICAgICAgICAoY29udGFpbmVyUG9zaXRpb24udG9wICsgY29udGFpbmVyUG9zaXRpb24uYm90dG9tKSAvIDIgLVxuICAgICAgICBlbGVtZW50SGVpZ2h0IC8gMjtcbiAgICB9XG5cbiAgICBpZiAocmVjdC5sZWZ0IDwgMCkge1xuICAgICAgcmVjdC5sZWZ0ID0gMDtcbiAgICB9XG4gICAgaWYgKHJlY3QudG9wICsgZWxlbWVudEhlaWdodCA+IHdpbmRvdy5pbm5lckhlaWdodCB8fCByZWN0LmJvdHRvbSA8IDApIHtcbiAgICAgIHJlY3QuYm90dG9tID0gMDtcbiAgICB9XG4gICAgaWYgKHJlY3QudG9wIDwgMCkge1xuICAgICAgcmVjdC50b3AgPSAwO1xuICAgIH1cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5ib3R0b20gfHwgdmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5jZW50ZXIpIHtcbiAgICAgIHJlY3QubWF4SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gcmVjdC50b3A7XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLnRvcCkge1xuICAgICAgcmVjdC5tYXhIZWlnaHQgPSBjb250YWluZXJQb3NpdGlvbi50b3A7XG4gICAgfVxuICAgIHJlY3QubGVmdCA9IHJlY3QubGVmdCAtIHRyYW5zZm9ybWVkUGFyZW50UmVjdC5sZWZ0O1xuICAgIHJlY3QucmlnaHQgPSByZWN0LnJpZ2h0IC0gdHJhbnNmb3JtZWRQYXJlbnRSZWN0LmxlZnQ7XG4gICAgcmVjdC50b3AgPSByZWN0LnRvcCAtIHRyYW5zZm9ybWVkUGFyZW50UmVjdC50b3A7XG4gICAgcmVjdC5ib3R0b20gPSByZWN0LmJvdHRvbSA/IHJlY3QuYm90dG9tIC0gdHJhbnNmb3JtZWRQYXJlbnRSZWN0LmJvdHRvbSA6IHJlY3QuYm90dG9tO1xuICAgIHJldHVybiByZWN0O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzZXRFbGVtZW50UG9zaXRpb24oZWxlbWVudDogSFRNTEVsZW1lbnQsIHJlY3Q6IElSZWN0KTogdm9pZCB7XG4gICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gcmVjdC5sZWZ0ICE9IG51bGwgPyBgJHtyZWN0LmxlZnR9cHhgIDogJyc7XG4gICAgZWxlbWVudC5zdHlsZS5yaWdodCA9IHJlY3QucmlnaHQgIT0gbnVsbCA/IGAke3JlY3QucmlnaHR9cHhgIDogJyc7XG4gICAgZWxlbWVudC5zdHlsZS50b3AgPSByZWN0LnRvcCAhPSBudWxsID8gYCR7cmVjdC50b3B9cHhgIDogJyc7XG4gICAgZWxlbWVudC5zdHlsZS5ib3R0b20gPSByZWN0LmJvdHRvbSAhPSBudWxsID8gYCR7cmVjdC5ib3R0b219cHhgIDogJyc7XG4gICAgZWxlbWVudC5zdHlsZS5tYXhIZWlnaHQgPVxuICAgICAgcmVjdC5tYXhIZWlnaHQgIT0gbnVsbCA/IGAke3JlY3QubWF4SGVpZ2h0fXB4YCA6ICcnO1xuICAgIGVsZW1lbnQuc3R5bGUubWluV2lkdGggPSByZWN0Lm1pbldpZHRoICE9IG51bGwgPyBgJHtyZWN0Lm1pbldpZHRofXB4YCA6ICcnO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRNYXhIZWlnaHQocG9zaXRpb246IElSZWN0KTogbnVtYmVyIHwgbnVsbCB7XG4gICAgbGV0IG1heEhlaWdodCA9IG51bGw7XG4gICAgbWF4SGVpZ2h0ID0gMTtcbiAgICByZXR1cm4gbWF4SGVpZ2h0O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRNYXhXaWR0aChwb3NpdGlvbjogSVJlY3QpOiBudW1iZXIgfCBudWxsIHtcbiAgICBsZXQgbWF4V2lkdGggPSBudWxsO1xuICAgIG1heFdpZHRoID0gMTtcbiAgICByZXR1cm4gbWF4V2lkdGg7XG4gIH1cbn1cbiJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24tdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tb24vdXRpbC9wb3NpdGlvbi11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFMUQsTUFBTSxPQUFPLFlBQVk7SUFDaEIsTUFBTSxDQUFDLFdBQVcsQ0FDdkIsaUJBQXdCLEVBQ3hCLGVBQXNCLEVBQ3RCLEtBQVksRUFDWixhQUE0QixFQUM1QixTQUFpQixDQUFDLEVBQ2xCLGlCQUF5QixDQUFDLEVBQzFCLHdCQUErQjtRQUM3QixJQUFJLEVBQUUsQ0FBQztRQUNQLEtBQUssRUFBRSxDQUFDO1FBQ1IsR0FBRyxFQUFFLENBQUM7UUFDTixNQUFNLEVBQUUsQ0FBQztLQUNWO1FBRUQsTUFBTSxJQUFJLEdBQVUsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQztRQUNsRSxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUM7UUFDbkUsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQztRQUN4RSxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDO1FBQ3pFLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDeEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDbkIsSUFBSSxNQUFNLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLElBQUksR0FBRyxZQUFZLEVBQUU7Z0JBQzdELEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxD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QUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckUsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTO1lBQ3JCLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzdFLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWU7UUFDeEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFlO1FBQ3ZDLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQztRQUNwQixRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJUmVjdH0gZnJvbSAnLi4vY29udHJhY3QvaS1yZWN0JztcbmltcG9ydCB7QWxpZ259IGZyb20gJy4uL2VudW0vYWxpZ24uZW51bSc7XG5pbXBvcnQge1ZlcnRpY2FsQWxpZ259IGZyb20gJy4uL2VudW0vdmVydGljYWwtYWxpZ24uZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBQb3NpdGlvblV0aWwge1xuICBwdWJsaWMgc3RhdGljIGdldFBvc2l0aW9uKFxuICAgIGNvbnRhaW5lclBvc2l0aW9uOiBJUmVjdCxcbiAgICBlbGVtZW50UG9zaXRpb246IElSZWN0LFxuICAgIGFsaWduOiBBbGlnbixcbiAgICB2ZXJ0aWNhbEFsaWduOiBWZXJ0aWNhbEFsaWduLFxuICAgIG1hcmdpbjogbnVtYmVyID0gMCxcbiAgICB2ZXJ0aWNhbE1hcmdpbjogbnVtYmVyID0gMCxcbiAgICB0cmFuc2Zvcm1lZFBhcmVudFJlY3Q6IElSZWN0ID0ge1xuICAgICAgbGVmdDogMCxcbiAgICAgIHJpZ2h0OiAwLFxuICAgICAgdG9wOiAwLFxuICAgICAgYm90dG9tOiAwXG4gICAgfVxuICApOiBJUmVjdCB7XG4gICAgY29uc3QgcmVjdDogSVJlY3QgPSB7fTtcbiAgICBjb25zdCBlbGVtZW50V2lkdGggPSBlbGVtZW50UG9zaXRpb24ucmlnaHQgLSBlbGVtZW50UG9zaXRpb24ubGVmdDtcbiAgICBjb25zdCBlbGVtZW50SGVpZ2h0ID0gZWxlbWVudFBvc2l0aW9uLmJvdHRvbSAtIGVsZW1lbnRQb3NpdGlvbi50b3A7XG4gICAgY29uc3QgY29udGFpbmVyV2lkdGggPSBjb250YWluZXJQb3NpdGlvbi5yaWdodCAtIGNvbnRhaW5lclBvc2l0aW9uLmxlZnQ7XG4gICAgY29uc3QgY29udGFpbmVySGVpZ2h0ID0gY29udGFpbmVyUG9zaXRpb24uYm90dG9tIC0gY29udGFpbmVyUG9zaXRpb24udG9wO1xuICAgIGlmIChhbGlnbiA9PT0gQWxpZ24uYXV0bykge1xuICAgICAgYWxpZ24gPSBBbGlnbi5sZWZ0O1xuICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgY29udGFpbmVyUG9zaXRpb24ubGVmdCArIGVsZW1lbnRXaWR0aCkge1xuICAgICAgICBhbGlnbiA9IEFsaWduLnJpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLmxlZnQpIHtcbiAgICAgIHJlY3QubGVmdCA9IGNvbnRhaW5lclBvc2l0aW9uLmxlZnQgKyBtYXJnaW47XG4gICAgfVxuICAgIGlmIChhbGlnbiA9PT0gQWxpZ24ucmlnaHQpIHtcbiAgICAgIHJlY3QubGVmdCA9IGNvbnRhaW5lclBvc2l0aW9uLnJpZ2h0IC0gZWxlbWVudFdpZHRoIC0gbWFyZ2luO1xuICAgIH1cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLmNlbnRlcikge1xuICAgICAgcmVjdC5sZWZ0ID1cbiAgICAgICAgKGNvbnRhaW5lclBvc2l0aW9uLmxlZnQgKyBjb250YWluZXJQb3NpdGlvbi5yaWdodCkgLyAyIC1cbiAgICAgICAgZWxlbWVudFdpZHRoIC8gMjtcbiAgICB9XG4gICAgaWYgKGFsaWduID09PSBBbGlnbi5vdXRlckF1dG8pIHtcbiAgICAgIGFsaWduID0gQWxpZ24ub3V0ZXJSaWdodDtcbiAgICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IGNvbnRhaW5lclBvc2l0aW9uLnJpZ2h0ICsgZWxlbWVudFdpZHRoKSB7XG4gICAgICAgIGFsaWduID0gQWxpZ24ub3V0ZXJMZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLm91dGVyTGVmdCkge1xuICAgICAgcmVjdC5sZWZ0ID0gY29udGFpbmVyUG9zaXRpb24ubGVmdCAtIGVsZW1lbnRXaWR0aCArIG1hcmdpbjtcbiAgICB9XG4gICAgaWYgKGFsaWduID09PSBBbGlnbi5vdXRlclJpZ2h0KSB7XG4gICAgICByZWN0LmxlZnQgPSBjb250YWluZXJQb3NpdGlvbi5yaWdodCAtIG1hcmdpbjtcbiAgICB9XG5cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLmZpdFdpZHRoKSB7XG4gICAgICByZWN0LmxlZnQgPSBjb250YWluZXJQb3NpdGlvbi5sZWZ0ICsgbWFyZ2luO1xuICAgICAgcmVjdC5yaWdodCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gY29udGFpbmVyUG9zaXRpb24ucmlnaHQgKyBtYXJnaW47XG4gICAgfVxuXG4gICAgaWYgKGFsaWduID09PSBBbGlnbi5taW5XaWR0aCkge1xuICAgICAgcmVjdC5sZWZ0ID0gY29udGFpbmVyUG9zaXRpb24ubGVmdCArIG1hcmdpbjtcbiAgICAgIHJlY3QubWluV2lkdGggPSBjb250YWluZXJXaWR0aDtcbiAgICB9XG5cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5hdXRvKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGNvbnRhaW5lclBvc2l0aW9uLmJvdHRvbSArXG4gICAgICAgIChlbGVtZW50UG9zaXRpb24uYm90dG9tIC0gZWxlbWVudFBvc2l0aW9uLnRvcCkgPD1cbiAgICAgICAgd2luZG93LmlubmVySGVpZ2h0XG4gICAgICApIHtcbiAgICAgICAgdmVydGljYWxBbGlnbiA9IFZlcnRpY2FsQWxpZ24uYm90dG9tO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmVydGljYWxBbGlnbiA9IFZlcnRpY2FsQWxpZ24udG9wO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5pbm5lckF1dG8pIHtcbiAgICAgIGlmIChcbiAgICAgICAgY29udGFpbmVyUG9zaXRpb24uYm90dG9tICtcbiAgICAgICAgKGVsZW1lbnRQb3NpdGlvbi5ib3R0b20gLSBlbGVtZW50UG9zaXRpb24udG9wKSA8PVxuICAgICAgICB3aW5kb3cuaW5uZXJIZWlnaHRcbiAgICAgICkge1xuICAgICAgICB2ZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbi5pbm5lckJvdHRvbTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZlcnRpY2FsQWxpZ24gPSBWZXJ0aWNhbEFsaWduLmlubmVyVG9wO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi50b3ApIHtcbiAgICAgIHJlY3QudG9wID0gY29udGFpbmVyUG9zaXRpb24udG9wIC0gZWxlbWVudEhlaWdodCAtIHZlcnRpY2FsTWFyZ2luO1xuICAgIH1cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5ib3R0b20pIHtcbiAgICAgIHJlY3QudG9wID0gY29udGFpbmVyUG9zaXRpb24uYm90dG9tICsgdmVydGljYWxNYXJnaW47XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmlubmVyVG9wKSB7XG4gICAgICByZWN0LnRvcCA9IGNvbnRhaW5lclBvc2l0aW9uLmJvdHRvbSAtIGVsZW1lbnRIZWlnaHQgLSB2ZXJ0aWNhbE1hcmdpbjtcbiAgICB9XG4gICAgaWYgKHZlcnRpY2FsQWxpZ24gPT09IFZlcnRpY2FsQWxpZ24uaW5uZXJCb3R0b20pIHtcbiAgICAgIHJlY3QudG9wID0gY29udGFpbmVyUG9zaXRpb24udG9wICsgdmVydGljYWxNYXJnaW47XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmNlbnRlcikge1xuICAgICAgcmVjdC50b3AgPVxuICAgICAgICAoY29udGFpbmVyUG9zaXRpb24udG9wICsgY29udGFpbmVyUG9zaXRpb24uYm90dG9tKSAvIDIgLVxuICAgICAgICBlbGVtZW50SGVpZ2h0IC8gMjtcbiAgICB9XG5cbiAgICBpZiAocmVjdC5sZWZ0IDwgMCkge1xuICAgICAgcmVjdC5sZWZ0ID0gMDtcbiAgICB9XG4gICAgaWYgKHJlY3QudG9wICsgZWxlbWVudEhlaWdodCA+IHdpbmRvdy5pbm5lckhlaWdodCB8fCByZWN0LmJvdHRvbSA8IDApIHtcbiAgICAgIHJlY3QuYm90dG9tID0gMDtcbiAgICB9XG4gICAgaWYgKHJlY3QudG9wIDwgMCkge1xuICAgICAgcmVjdC50b3AgPSAwO1xuICAgIH1cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5ib3R0b20gfHwgdmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5jZW50ZXIgfHwgdmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5pbm5lckJvdHRvbSkge1xuICAgICAgcmVjdC5tYXhIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSByZWN0LnRvcDtcbiAgICB9XG4gICAgaWYgKHZlcnRpY2FsQWxpZ24gPT09IFZlcnRpY2FsQWxpZ24udG9wIHx8IHZlcnRpY2FsQWxpZ24gPT09IFZlcnRpY2FsQWxpZ24uaW5uZXJUb3ApIHtcbiAgICAgIHJlY3QubWF4SGVpZ2h0ID0gY29udGFpbmVyUG9zaXRpb24udG9wO1xuICAgIH1cbiAgICByZWN0LmxlZnQgPSByZWN0LmxlZnQgLSB0cmFuc2Zvcm1lZFBhcmVudFJlY3QubGVmdDtcbiAgICByZWN0LnJpZ2h0ID0gcmVjdC5yaWdodCAtIHRyYW5zZm9ybWVkUGFyZW50UmVjdC5sZWZ0O1xuICAgIHJlY3QudG9wID0gcmVjdC50b3AgLSB0cmFuc2Zvcm1lZFBhcmVudFJlY3QudG9wO1xuICAgIHJlY3QuYm90dG9tID0gcmVjdC5ib3R0b20gPyByZWN0LmJvdHRvbSAtIHRyYW5zZm9ybWVkUGFyZW50UmVjdC5ib3R0b20gOiByZWN0LmJvdHRvbTtcbiAgICByZXR1cm4gcmVjdDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc2V0RWxlbWVudFBvc2l0aW9uKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCByZWN0OiBJUmVjdCk6IHZvaWQge1xuICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IHJlY3QubGVmdCAhPSBudWxsID8gYCR7cmVjdC5sZWZ0fXB4YCA6ICcnO1xuICAgIGVsZW1lbnQuc3R5bGUucmlnaHQgPSByZWN0LnJpZ2h0ICE9IG51bGwgPyBgJHtyZWN0LnJpZ2h0fXB4YCA6ICcnO1xuICAgIGVsZW1lbnQuc3R5bGUudG9wID0gcmVjdC50b3AgIT0gbnVsbCA/IGAke3JlY3QudG9wfXB4YCA6ICcnO1xuICAgIGVsZW1lbnQuc3R5bGUuYm90dG9tID0gcmVjdC5ib3R0b20gIT0gbnVsbCA/IGAke3JlY3QuYm90dG9tfXB4YCA6ICcnO1xuICAgIGVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0ID1cbiAgICAgIHJlY3QubWF4SGVpZ2h0ICE9IG51bGwgPyBgJHtyZWN0Lm1heEhlaWdodH1weGAgOiAnJztcbiAgICBlbGVtZW50LnN0eWxlLm1pbldpZHRoID0gcmVjdC5taW5XaWR0aCAhPSBudWxsID8gYCR7cmVjdC5taW5XaWR0aH1weGAgOiAnJztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0TWF4SGVpZ2h0KHBvc2l0aW9uOiBJUmVjdCk6IG51bWJlciB8IG51bGwge1xuICAgIGxldCBtYXhIZWlnaHQgPSBudWxsO1xuICAgIG1heEhlaWdodCA9IDE7XG4gICAgcmV0dXJuIG1heEhlaWdodDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0TWF4V2lkdGgocG9zaXRpb246IElSZWN0KTogbnVtYmVyIHwgbnVsbCB7XG4gICAgbGV0IG1heFdpZHRoID0gbnVsbDtcbiAgICBtYXhXaWR0aCA9IDE7XG4gICAgcmV0dXJuIG1heFdpZHRoO1xuICB9XG59XG4iXX0=
@@ -48,6 +48,9 @@ export class HeadCellComponent {
48
48
  }
49
49
  ];
50
50
  }
51
+ get elementRef() {
52
+ return this._elementRef;
53
+ }
51
54
  get tabTemplates() {
52
55
  if (this.column?.headDropdownConfig && this.column.headDropdownConfig.tabs?.length > 0) {
53
56
  if (this.column.headDropdownConfig.strategy === 'replace') {
@@ -129,10 +132,10 @@ export class HeadCellComponent {
129
132
  }
130
133
  }
131
134
  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 }], target: i0.ɵɵFactoryTarget.Component });
132
- 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\" [state]=\"state\" [close]=\"close\"></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"] }, { 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 });
135
+ 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 });
133
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: HeadCellComponent, decorators: [{
134
137
  type: Component,
135
- 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\" [state]=\"state\" [close]=\"close\"></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"] }]
138
+ 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"] }]
136
139
  }], ctorParameters: function () { return [{ type: i1.TableService }, { type: i0.ApplicationRef }, { type: i0.ElementRef }]; }, propDecorators: { column: [{
137
140
  type: Input
138
141
  }], showHeadCellMenu: [{
@@ -167,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
167
170
  type: HostListener,
168
171
  args: ['drop', ['$event']]
169
172
  }] } });
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvaGVhZC1jZWxsL2hlYWQtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL2hlYWQtY2VsbC9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ0csV0FBVyxFQUN2QixZQUFZLEVBQ1osS0FBSyxFQUVnQixTQUFTLEdBQy9CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBR2xFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RCxPQUFPLEVBQUMsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVMvQyxNQUFNLE9BQU8saUJBQWlCO0lBeUQ1QixZQUNVLElBQXFCLEVBQ3JCLElBQW9CLEVBQ3BCLFdBQXVCO1FBRnZCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBdkRqQyxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBUWQsYUFBUSxHQUE0QixJQUFJLENBQUM7UUFHakMsV0FBTSxHQUFHLElBQUksQ0FBQztJQTZDdEIsQ0FBQztJQXRDRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPO1lB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Q2EsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNO3lKQUd0QyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFVTixZQUFZO3NCQURYLFdBQVc7dUJBQUMsK0JBQStCO2dCQVFELFlBQVk7c0JBQXRELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDSSxjQUFjO3NCQUExRCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDRyxlQUFlO3NCQUE1RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFpREwsU0FBUztzQkFBL0MsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSUMsU0FBUztzQkFBOUMsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUUcsU0FBUztzQkFBL0MsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBS0EsT0FBTztzQkFBM0MsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSUQsSUFBSTtzQkFBckMsWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VGFibGVDb2x1bW59IGZyb20gJy4uL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQge0NvbHVtblJlc2l6ZUV2ZW50fSBmcm9tICcuLi9jb250cmFjdC9jb2x1bW4tcmVzaXplLWV2ZW50JztcbmltcG9ydCB7RmlsdGVyU3RhdGV9IGZyb20gJy4uLy4uL2ZpbHRlci9jb250YXJjdC9maWx0ZXItc3RhdGUnO1xuaW1wb3J0IHtUYWJsZVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvdGFibGUuc2VydmljZSc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTb3J0UGFyYW19IGZyb20gJy4uLy4uL2ZpbHRlci9jb250YXJjdC9zb3J0LXBhcmFtJztcbmltcG9ydCB7U3RhdGVVdGlsfSBmcm9tICcuLi91dGlsL3N0YXRlLXV0aWwnO1xuaW1wb3J0IHtWZXJ0aWNhbEFsaWdufSBmcm9tICcuLi8uLi8uLi9jb21tb24vZW51bS92ZXJ0aWNhbC1hbGlnbi5lbnVtJztcbmltcG9ydCB7QWxpZ259IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9lbnVtL2FsaWduLmVudW0nO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SGVhZERyb3Bkb3duVGFifSBmcm9tICcuLi9jb250cmFjdC9oZWFkLWRyb3Bkb3duLXRhYic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtaGVhZC1jZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWQtY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWQtY2VsbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZENlbGxDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGNvbHVtbjogVGFibGVDb2x1bW47XG4gIEBJbnB1dCgpIHNob3dIZWFkQ2VsbE1lbnU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRhdGE6IFRbXTtcblxuICB2ZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbjtcbiAgYWxpZ24gPSBBbGlnbjtcbiAgc3RhdGU6IE9ic2VydmFibGU8RmlsdGVyU3RhdGU+O1xuICBjb2x1bW5zOiBPYnNlcnZhYmxlPFRhYmxlQ29sdW1uW10+O1xuICBmaWx0ZXJlZDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc29ydFBhcmFtOiBPYnNlcnZhYmxlPFNvcnRQYXJhbT47XG4gIGljb25OYW1lOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIEBIb3N0QmluZGluZygnY2xhc3MudGFibGUtaGVhZF9fY2VsbF9hY3RpdmUnKVxuICBkcm9wRG93bk9wZW46IGJvb2xlYW47XG4gIHNob3dEcmFnOiAnbGVmdCcgfCAncmlnaHQnIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcmVjdDogYW55O1xuXG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfc3RhcnRQb3NpdGlvbjogbnVtYmVyO1xuXG4gIEBWaWV3Q2hpbGQoJ21haW5UZW1wbGF0ZScsIHtzdGF0aWM6IHRydWV9KSBtYWluVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlclRlbXBsYXRlJywge3N0YXRpYzogdHJ1ZX0pIGZpbHRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdjb2x1bW5zVGVtcGxhdGUnLCB7c3RhdGljOiB0cnVlfSkgY29sdW1uc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGdldCBkZWZhdWx0VGVtcGxhdGVzKCk6IEhlYWREcm9wZG93blRhYltdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBpY29uOiAnbWVudScsXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLm1haW5UZW1wbGF0ZSxcbiAgICAgICAgb3JkZXI6IDEwLFxuICAgICAgICBzaG93VGFiOiAoKSA9PiB0cnVlLFxuICAgICAgfSwge1xuICAgICAgICBpY29uOiAnZmlsdGVyJyxcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMuZmlsdGVyVGVtcGxhdGUsXG4gICAgICAgIG9yZGVyOiAyMCxcbiAgICAgICAgc2hvd1RhYjogKGNvbHVtbikgPT4gY29sdW1uLmZpbHRlcmFibGUsXG4gICAgICB9LCB7XG4gICAgICAgIGljb246ICdleWUnLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5jb2x1bW5zVGVtcGxhdGUsXG4gICAgICAgIG9yZGVyOiAzMCxcbiAgICAgICAgc2hvd1RhYjogKCkgPT4gdHJ1ZSxcbiAgICAgIH1cbiAgICBdO1xuICB9XG5cbiAgZ2V0IHRhYlRlbXBsYXRlcygpIHtcbiAgICBpZiAodGhpcy5jb2x1bW4/LmhlYWREcm9wZG93bkNvbmZpZyAmJiB0aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcudGFicz8ubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuY29sdW1uLmhlYWREcm9wZG93bkNvbmZpZy5zdHJhdGVneSA9PT0gJ3JlcGxhY2UnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcudGFicztcbiAgICAgIH1cbiAgICAgIHJldHVybiBbLi4udGhpcy5kZWZhdWx0VGVtcGxhdGVzLCAuLi50aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcudGFic11cbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0VGVtcGxhdGVzO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfc3ZjOiBUYWJsZVNlcnZpY2U8VD4sXG4gICAgcHJpdmF0ZSBfYXBwOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge1xuICB9XG5cbiAgZHJhZ3N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dCcsICdtb3ZlJyk7XG4gICAgfVxuICAgIHRoaXMuX3N2Yy5kcmFnU3RhcnQodGhpcy5jb2x1bW4pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VudGVyJywgWyckZXZlbnQnXSkgZHJhZ2VudGVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnJlY3QgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pIGFsbG93RHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAodGhpcy5yZWN0ICYmIHRoaXMuX3N2Yy5kcmFnU291cmNlKSB7XG4gICAgICB0aGlzLnNob3dEcmFnID1cbiAgICAgICAgZXZlbnQuY2xpZW50WCA+PSB0aGlzLnJlY3QueCArIHRoaXMucmVjdC53aWR0aCAvIDIgPyAncmlnaHQnIDogJ2xlZnQnO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pIGRyYWdsZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnNob3dEcmFnID0gbnVsbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbmQnLCBbJyRldmVudCddKSBkcmFnZW5kKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dEcmFnID0gbnVsbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKSBkcm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBtb3ZlID0gZXZlbnQuZGF0YVRyYW5zZmVyICYmIGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKCd0ZXh0Jyk7XG4gICAgaWYgKG1vdmUgPT09ICdtb3ZlJykge1xuICAgICAgdGhpcy5fc3ZjLnJlb3JkZXJDb2x1bW4odGhpcy5jb2x1bW4sIHRoaXMuc2hvd0RyYWcgPT09ICdsZWZ0Jyk7XG4gICAgfVxuICAgIHRoaXMuc2hvd0RyYWcgPSBudWxsO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5zID0gdGhpcy5fc3ZjLmNvbHVtbnM7XG4gICAgdGhpcy5zdGF0ZSA9IHRoaXMuX3N2Yy5zdGF0ZTtcbiAgICB0aGlzLnNvcnRQYXJhbSA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIG1hcCgoXykgPT4gU3RhdGVVdGlsLmdldFNvcnRTdGF0ZShfLCB0aGlzLmNvbHVtbikpXG4gICAgKTtcbiAgICB0aGlzLmZpbHRlcmVkID0gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgbWFwKChfKSA9PiBTdGF0ZVV0aWwuaXNDb2x1bW5GaWx0ZXJlZChfLCB0aGlzLmNvbHVtbikpXG4gICAgKTtcbiAgICB0aGlzLmljb25OYW1lID0gY29tYmluZUxhdGVzdChbdGhpcy5zb3J0UGFyYW0sIHRoaXMuZmlsdGVyZWRdKS5waXBlKFxuICAgICAgbWFwKChkYXRhOiBbU29ydFBhcmFtLCBib29sZWFuXSkgPT4ge1xuICAgICAgICBjb25zdCBbc29ydFBhcmFtLCBmaWx0ZXJlZF0gPSBkYXRhO1xuICAgICAgICBpZiAoc29ydFBhcmFtICYmIGZpbHRlcmVkKSB7XG4gICAgICAgICAgcmV0dXJuIHNvcnRQYXJhbS5hc2MgPyAnZmlsdGVyU29ydFVwQ29sb3InIDogJ2ZpbHRlclNvcnREb3duQ29sb3InO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzb3J0UGFyYW0pIHtcbiAgICAgICAgICByZXR1cm4gc29ydFBhcmFtLmFzYyA/ICdzb3J0VXBDb2xvcicgOiAnc29ydERvd25Db2xvcic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcmVkKSB7XG4gICAgICAgICAgcmV0dXJuICdmaWx0ZXJDb2xvcic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIHJlc2l6ZVN0YXJ0KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcmVjdCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLl9zdGFydFBvc2l0aW9uID0gcmVjdC54O1xuICAgIHRoaXMuX3N2Yy5sb2NrUHJldmlvdXNDb2x1bW5zKHRoaXMuY29sdW1uLCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcmVzaXplUHJvY2VzcyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGFydFBvc2l0aW9uICYmIGV2ZW50LnBhZ2VYID4gMCkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl9zdGFydFBvc2l0aW9uO1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5fc3ZjLnJlc2l6ZUNvbHVtbihcbiAgICAgICAgICBuZXcgQ29sdW1uUmVzaXplRXZlbnQodGhpcy5jb2x1bW4sIGV2ZW50LnBhZ2VYIC0gcG9zaXRpb24pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX2FwcC50aWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXNpemVFbmQoKSB7XG4gICAgdGhpcy5fc3RhcnRQb3NpdGlvbiA9IG51bGw7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3cgcm93X2F1dG9cIj5cbiAgPHRldGEtZHJvcGRvd24gW2F1dG9DbG9zZUlnbm9yZV09XCJbJ2VudGVyJywgJ2luc2lkZSddXCJcbiAgICAgICAgICAgICAgICAgW3ZlcnRpY2FsQWxpZ25dPVwidmVydGljYWxBbGlnbi5ib3R0b21cIlxuICAgICAgICAgICAgICAgICBbYXBwZW5kVG9Cb2R5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICBbKG9wZW4pXT1cImRyb3BEb3duT3BlblwiXG4gICAgICAgICAgICAgICAgIFthbGlnbl09XCJhbGlnbi5hdXRvXCJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICAgICAgICAgW2NsYXNzLnRhYmxlLWhlYWRfX2NlbGxfX21lbnVfb3Blbl09XCJkcm9wRG93bk9wZW5cIlxuICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbHVtbiBjb2x1bW5fYXV0byBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgPGRpdiB0ZXRhRHJvcGRvd25IZWFkXG4gICAgICAgICBkcmFnZ2FibGU9XCJ0cnVlXCJcbiAgICAgICAgIGNsYXNzPVwidGFibGUtaGVhZF9fY2VsbF9fd3JhcHBlclwiXG4gICAgICAgICAoZHJhZ3N0YXJ0KT1cImRyYWdzdGFydCgkZXZlbnQpXCJcbiAgICAgICAgIFtuZ0NsYXNzXT1cImNvbHVtbi5oZWFkQ2VsbENsYXNzXCI+XG4gICAgICA8dGV0YS1oZWFkLWNlbGwtaG9zdCBbY29sdW1uXT1cImNvbHVtblwiIFtjb2x1bW5zXT1cImNvbHVtbnMgfCBhc3luY1wiIFtkYXRhXT1cImRhdGFcIj48L3RldGEtaGVhZC1jZWxsLWhvc3Q+XG4gICAgICA8dGV0YS1pY29uICpuZ0lmPVwiaWNvbk5hbWUgfCBhc3luYyBhcyBpY29uXCJcbiAgICAgICAgICAgICAgICAgW3BhbGV0dGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgICAgW25hbWVdPVwiaWNvblwiPjwvdGV0YS1pY29uPlxuICAgIDwvZGl2PlxuICAgIDx0ZXRhLWhlYWQtY2VsbC1kcm9wZG93biB0ZXRhRHJvcGRvd25Db250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0hlYWRDZWxsTWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJUZW1wbGF0ZXNdPVwidGFiVGVtcGxhdGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiZGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1ucyB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlXT1cInN0YXRlIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGRyb3BEb3duT3BlbildPVwiZHJvcERvd25PcGVuXCI+PC90ZXRhLWhlYWQtY2VsbC1kcm9wZG93bj5cbiAgPC90ZXRhLWRyb3Bkb3duPlxuICA8ZGl2IGNsYXNzPVwiZHJvcC1hcmVhXCJcbiAgICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgICAgW2NsYXNzLmRyb3AtYXJlYV9sZWZ0XT1cInNob3dEcmFnID09PSAnbGVmdCdcIlxuICAgICAgIFtjbGFzcy5kcm9wLWFyZWFfcmlnaHRdPVwic2hvd0RyYWcgPT09ICdyaWdodCdcIlxuICAgICAgICpuZ0lmPVwic2hvd0RyYWdcIj48L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRfX2NlbGxfX3Jlc2l6ZVwiXG4gICAgIGRyYWdnYWJsZT1cImZhbHNlXCJcbiAgICAgKGRyYWdzdGFydCk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAoZHJhZyk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICBbdGV0YVJlc2l6ZURyYWddPVwiJ3ZlcnRpY2FsJ1wiXG4gICAgIChyZXNpemVTdGFydCk9XCJyZXNpemVTdGFydCgkZXZlbnQpXCJcbiAgICAgKHJlc2l6ZVByb2Nlc3MpPVwicmVzaXplUHJvY2VzcygkZXZlbnQpXCJcbiAgICAgKHJlc2l6ZUVuZCk9XCJyZXNpemVFbmQoKVwiPlxuICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZF9fY2VsbF9fcmVzaXplX2RyYWdcIj48L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNtYWluVGVtcGxhdGUgbGV0LWNvbHVtbj1cImNvbHVtblwiIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1kYXRhPVwiZGF0YVwiIGxldC1zdGF0ZT1cInN0YXRlXCJcbiAgICAgICAgICAgICBsZXQtY2xvc2U9XCJjbG9zZVwiPlxuICA8dGV0YS1tYWluLWRyb3Bkb3duLXRhYiBbY29sdW1uXT1cImNvbHVtblwiIFtzdGF0ZV09XCJzdGF0ZVwiIFtjbG9zZV09XCJjbG9zZVwiPjwvdGV0YS1tYWluLWRyb3Bkb3duLXRhYj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2ZpbHRlclRlbXBsYXRlIGxldC1jb2x1bW49XCJjb2x1bW5cIiBsZXQtY29sdW1ucz1cImNvbHVtbnNcIiBsZXQtZGF0YT1cImRhdGFcIiBsZXQtc3RhdGU9XCJzdGF0ZVwiXG4gICAgICAgICAgICAgbGV0LWNsb3NlPVwiY2xvc2VcIj5cbiAgPHRldGEtZmlsdGVyLWRyb3Bkb3duLXRhYiBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xvc2VdPVwiY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIj48L3RldGEtZmlsdGVyLWRyb3Bkb3duLXRhYj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2NvbHVtbnNUZW1wbGF0ZSBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LXN0YXRlPVwic3RhdGVcIlxuICAgICAgICAgICAgIGxldC1jbG9zZT1cImNsb3NlXCI+XG4gIDx0ZXRhLXZpc2liaWxpdHktZHJvcGRvd24tdGFiIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbG9zZV09XCJjbG9zZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIj48L3RldGEtdmlzaWJpbGl0eS1kcm9wZG93bi10YWI+XG48L25nLXRlbXBsYXRlPlxuIl19
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvaGVhZC1jZWxsL2hlYWQtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL2hlYWQtY2VsbC9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ0csV0FBVyxFQUN2QixZQUFZLEVBQ1osS0FBSyxFQUVnQixTQUFTLEdBQy9CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBR2xFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RCxPQUFPLEVBQUMsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVMvQyxNQUFNLE9BQU8saUJBQWlCO0lBNkQ1QixZQUNVLElBQXFCLEVBQ3JCLElBQW9CLEVBQ3BCLFdBQXVCO1FBRnZCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBM0RqQyxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBUWQsYUFBUSxHQUE0QixJQUFJLENBQUM7UUFHakMsV0FBTSxHQUFHLElBQUksQ0FBQztJQWlEdEIsQ0FBQztJQTFDRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPO1lB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LENBQUM7OzhHQTFKVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixrdUJDNUI5QiwrdEdBa0VBOzJGRHRDYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU07eUpBR3RDLE1BQU07c0JBQWQsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQVVOLFlBQVk7c0JBRFgsV0FBVzt1QkFBQywrQkFBK0I7Z0JBUUQsWUFBWTtzQkFBdEQsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNJLGNBQWM7c0JBQTFELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNHLGVBQWU7c0JBQTVELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQXFETCxTQUFTO3NCQUEvQyxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJQyxTQUFTO3NCQUE5QyxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRRyxTQUFTO3NCQUEvQyxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLQSxPQUFPO3NCQUEzQyxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJRCxJQUFJO3NCQUFyQyxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLCBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUYWJsZUNvbHVtbn0gZnJvbSAnLi4vY29udHJhY3QvdGFibGUtY29sdW1uJztcbmltcG9ydCB7Q29sdW1uUmVzaXplRXZlbnR9IGZyb20gJy4uL2NvbnRyYWN0L2NvbHVtbi1yZXNpemUtZXZlbnQnO1xuaW1wb3J0IHtGaWx0ZXJTdGF0ZX0gZnJvbSAnLi4vLi4vZmlsdGVyL2NvbnRhcmN0L2ZpbHRlci1zdGF0ZSc7XG5pbXBvcnQge1RhYmxlU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS90YWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1NvcnRQYXJhbX0gZnJvbSAnLi4vLi4vZmlsdGVyL2NvbnRhcmN0L3NvcnQtcGFyYW0nO1xuaW1wb3J0IHtTdGF0ZVV0aWx9IGZyb20gJy4uL3V0aWwvc3RhdGUtdXRpbCc7XG5pbXBvcnQge1ZlcnRpY2FsQWxpZ259IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9lbnVtL3ZlcnRpY2FsLWFsaWduLmVudW0nO1xuaW1wb3J0IHtBbGlnbn0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2VudW0vYWxpZ24uZW51bSc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtIZWFkRHJvcGRvd25UYWJ9IGZyb20gJy4uL2NvbnRyYWN0L2hlYWQtZHJvcGRvd24tdGFiJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1oZWFkLWNlbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZC1jZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZC1jZWxsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkQ2VsbENvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgY29sdW1uOiBUYWJsZUNvbHVtbjtcbiAgQElucHV0KCkgc2hvd0hlYWRDZWxsTWVudTogYm9vbGVhbjtcbiAgQElucHV0KCkgZGF0YTogVFtdO1xuXG4gIHZlcnRpY2FsQWxpZ24gPSBWZXJ0aWNhbEFsaWduO1xuICBhbGlnbiA9IEFsaWduO1xuICBzdGF0ZTogT2JzZXJ2YWJsZTxGaWx0ZXJTdGF0ZT47XG4gIGNvbHVtbnM6IE9ic2VydmFibGU8VGFibGVDb2x1bW5bXT47XG4gIGZpbHRlcmVkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBzb3J0UGFyYW06IE9ic2VydmFibGU8U29ydFBhcmFtPjtcbiAgaWNvbk5hbWU6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50YWJsZS1oZWFkX19jZWxsX2FjdGl2ZScpXG4gIGRyb3BEb3duT3BlbjogYm9vbGVhbjtcbiAgc2hvd0RyYWc6ICdsZWZ0JyB8ICdyaWdodCcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByZWN0OiBhbnk7XG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuICBwcml2YXRlIF9zdGFydFBvc2l0aW9uOiBudW1iZXI7XG5cbiAgQFZpZXdDaGlsZCgnbWFpblRlbXBsYXRlJywge3N0YXRpYzogdHJ1ZX0pIG1haW5UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgnZmlsdGVyVGVtcGxhdGUnLCB7c3RhdGljOiB0cnVlfSkgZmlsdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbnNUZW1wbGF0ZScsIHtzdGF0aWM6IHRydWV9KSBjb2x1bW5zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZ2V0IGRlZmF1bHRUZW1wbGF0ZXMoKTogSGVhZERyb3Bkb3duVGFiW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGljb246ICdtZW51JyxcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMubWFpblRlbXBsYXRlLFxuICAgICAgICBvcmRlcjogMTAsXG4gICAgICAgIHNob3dUYWI6ICgpID0+IHRydWUsXG4gICAgICB9LCB7XG4gICAgICAgIGljb246ICdmaWx0ZXInLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5maWx0ZXJUZW1wbGF0ZSxcbiAgICAgICAgb3JkZXI6IDIwLFxuICAgICAgICBzaG93VGFiOiAoY29sdW1uKSA9PiBjb2x1bW4uZmlsdGVyYWJsZSxcbiAgICAgIH0sIHtcbiAgICAgICAgaWNvbjogJ2V5ZScsXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLmNvbHVtbnNUZW1wbGF0ZSxcbiAgICAgICAgb3JkZXI6IDMwLFxuICAgICAgICBzaG93VGFiOiAoKSA9PiB0cnVlLFxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBnZXQgZWxlbWVudFJlZigpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgfVxuXG4gIGdldCB0YWJUZW1wbGF0ZXMoKSB7XG4gICAgaWYgKHRoaXMuY29sdW1uPy5oZWFkRHJvcGRvd25Db25maWcgJiYgdGhpcy5jb2x1bW4uaGVhZERyb3Bkb3duQ29uZmlnLnRhYnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcuc3RyYXRlZ3kgPT09ICdyZXBsYWNlJykge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uaGVhZERyb3Bkb3duQ29uZmlnLnRhYnM7XG4gICAgICB9XG4gICAgICByZXR1cm4gWy4uLnRoaXMuZGVmYXVsdFRlbXBsYXRlcywgLi4udGhpcy5jb2x1bW4uaGVhZERyb3Bkb3duQ29uZmlnLnRhYnNdXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFRlbXBsYXRlcztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3N2YzogVGFibGVTZXJ2aWNlPFQ+LFxuICAgIHByaXZhdGUgX2FwcDogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHtcbiAgfVxuXG4gIGRyYWdzdGFydChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50ICYmIGV2ZW50LmRhdGFUcmFuc2Zlcikge1xuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQnLCAnbW92ZScpO1xuICAgIH1cbiAgICB0aGlzLl9zdmMuZHJhZ1N0YXJ0KHRoaXMuY29sdW1uKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbnRlcicsIFsnJGV2ZW50J10pIGRyYWdlbnRlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5yZWN0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbJyRldmVudCddKSBhbGxvd0Ryb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKHRoaXMucmVjdCAmJiB0aGlzLl9zdmMuZHJhZ1NvdXJjZSkge1xuICAgICAgdGhpcy5zaG93RHJhZyA9XG4gICAgICAgIGV2ZW50LmNsaWVudFggPj0gdGhpcy5yZWN0LnggKyB0aGlzLnJlY3Qud2lkdGggLyAyID8gJ3JpZ2h0JyA6ICdsZWZ0JztcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKSBkcmFnbGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5zaG93RHJhZyA9IG51bGw7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnZW5kJywgWyckZXZlbnQnXSkgZHJhZ2VuZChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zaG93RHJhZyA9IG51bGw7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSkgZHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgbW92ZSA9IGV2ZW50LmRhdGFUcmFuc2ZlciAmJiBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgndGV4dCcpO1xuICAgIGlmIChtb3ZlID09PSAnbW92ZScpIHtcbiAgICAgIHRoaXMuX3N2Yy5yZW9yZGVyQ29sdW1uKHRoaXMuY29sdW1uLCB0aGlzLnNob3dEcmFnID09PSAnbGVmdCcpO1xuICAgIH1cbiAgICB0aGlzLnNob3dEcmFnID0gbnVsbDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuX3N2Yy5jb2x1bW5zO1xuICAgIHRoaXMuc3RhdGUgPSB0aGlzLl9zdmMuc3RhdGU7XG4gICAgdGhpcy5zb3J0UGFyYW0gPSB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICBtYXAoKF8pID0+IFN0YXRlVXRpbC5nZXRTb3J0U3RhdGUoXywgdGhpcy5jb2x1bW4pKVxuICAgICk7XG4gICAgdGhpcy5maWx0ZXJlZCA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIG1hcCgoXykgPT4gU3RhdGVVdGlsLmlzQ29sdW1uRmlsdGVyZWQoXywgdGhpcy5jb2x1bW4pKVxuICAgICk7XG4gICAgdGhpcy5pY29uTmFtZSA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc29ydFBhcmFtLCB0aGlzLmZpbHRlcmVkXSkucGlwZShcbiAgICAgIG1hcCgoZGF0YTogW1NvcnRQYXJhbSwgYm9vbGVhbl0pID0+IHtcbiAgICAgICAgY29uc3QgW3NvcnRQYXJhbSwgZmlsdGVyZWRdID0gZGF0YTtcbiAgICAgICAgaWYgKHNvcnRQYXJhbSAmJiBmaWx0ZXJlZCkge1xuICAgICAgICAgIHJldHVybiBzb3J0UGFyYW0uYXNjID8gJ2ZpbHRlclNvcnRVcENvbG9yJyA6ICdmaWx0ZXJTb3J0RG93bkNvbG9yJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoc29ydFBhcmFtKSB7XG4gICAgICAgICAgcmV0dXJuIHNvcnRQYXJhbS5hc2MgPyAnc29ydFVwQ29sb3InIDogJ3NvcnREb3duQ29sb3InO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXJlZCkge1xuICAgICAgICAgIHJldHVybiAnZmlsdGVyQ29sb3InO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cblxuICByZXNpemVTdGFydChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5fc3RhcnRQb3NpdGlvbiA9IHJlY3QueDtcbiAgICB0aGlzLl9zdmMubG9ja1ByZXZpb3VzQ29sdW1ucyh0aGlzLmNvbHVtbiwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHJlc2l6ZVByb2Nlc3MoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhcnRQb3NpdGlvbiAmJiBldmVudC5wYWdlWCA+IDApIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5fc3RhcnRQb3NpdGlvbjtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3N2Yy5yZXNpemVDb2x1bW4oXG4gICAgICAgICAgbmV3IENvbHVtblJlc2l6ZUV2ZW50KHRoaXMuY29sdW1uLCBldmVudC5wYWdlWCAtIHBvc2l0aW9uKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9hcHAudGljaygpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVzaXplRW5kKCkge1xuICAgIHRoaXMuX3N0YXJ0UG9zaXRpb24gPSBudWxsO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicm93IHJvd19hdXRvXCI+XG4gIDx0ZXRhLWRyb3Bkb3duIFthdXRvQ2xvc2VJZ25vcmVdPVwiWydlbnRlcicsICdpbnNpZGUnXVwiXG4gICAgICAgICAgICAgICAgIFt2ZXJ0aWNhbEFsaWduXT1cInZlcnRpY2FsQWxpZ24uYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgW2FwcGVuZFRvQm9keV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgWyhvcGVuKV09XCJkcm9wRG93bk9wZW5cIlxuICAgICAgICAgICAgICAgICBbYWxpZ25dPVwiYWxpZ24uYXV0b1wiXG4gICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgICAgICAgIFtjbGFzcy50YWJsZS1oZWFkX19jZWxsX19tZW51X29wZW5dPVwiZHJvcERvd25PcGVuXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2x1bW4gY29sdW1uX2F1dG8ganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgIDxkaXYgdGV0YURyb3Bkb3duSGVhZFxuICAgICAgICAgZHJhZ2dhYmxlPVwidHJ1ZVwiXG4gICAgICAgICBjbGFzcz1cInRhYmxlLWhlYWRfX2NlbGxfX3dyYXBwZXJcIlxuICAgICAgICAgKGRyYWdzdGFydCk9XCJkcmFnc3RhcnQoJGV2ZW50KVwiXG4gICAgICAgICBbbmdDbGFzc109XCJjb2x1bW4uaGVhZENlbGxDbGFzc1wiPlxuICAgICAgPHRldGEtaGVhZC1jZWxsLWhvc3QgW2NvbHVtbl09XCJjb2x1bW5cIiBbY29sdW1uc109XCJjb2x1bW5zIHwgYXN5bmNcIiBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLWhlYWQtY2VsbC1ob3N0PlxuICAgICAgPHRldGEtaWNvbiAqbmdJZj1cImljb25OYW1lIHwgYXN5bmMgYXMgaWNvblwiXG4gICAgICAgICAgICAgICAgIFtwYWxldHRlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgIFtuYW1lXT1cImljb25cIj48L3RldGEtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8dGV0YS1oZWFkLWNlbGwtZHJvcGRvd24gdGV0YURyb3Bkb3duQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dIZWFkQ2VsbE1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFiVGVtcGxhdGVzXT1cInRhYlRlbXBsYXRlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnMgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJzdGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhkcm9wRG93bk9wZW4pXT1cImRyb3BEb3duT3BlblwiPjwvdGV0YS1oZWFkLWNlbGwtZHJvcGRvd24+XG4gIDwvdGV0YS1kcm9wZG93bj5cbiAgPGRpdiBjbGFzcz1cImRyb3AtYXJlYVwiXG4gICAgICAgZHJhZ2dhYmxlPVwiZmFsc2VcIlxuICAgICAgIFtjbGFzcy5kcm9wLWFyZWFfbGVmdF09XCJzaG93RHJhZyA9PT0gJ2xlZnQnXCJcbiAgICAgICBbY2xhc3MuZHJvcC1hcmVhX3JpZ2h0XT1cInNob3dEcmFnID09PSAncmlnaHQnXCJcbiAgICAgICAqbmdJZj1cInNob3dEcmFnXCI+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkX19jZWxsX19yZXNpemVcIlxuICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgIChkcmFnc3RhcnQpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgKGRyYWcpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgW3RldGFSZXNpemVEcmFnXT1cIid2ZXJ0aWNhbCdcIlxuICAgICAocmVzaXplU3RhcnQpPVwicmVzaXplU3RhcnQoJGV2ZW50KVwiXG4gICAgIChyZXNpemVQcm9jZXNzKT1cInJlc2l6ZVByb2Nlc3MoJGV2ZW50KVwiXG4gICAgIChyZXNpemVFbmQpPVwicmVzaXplRW5kKClcIj5cbiAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRfX2NlbGxfX3Jlc2l6ZV9kcmFnXCI+PC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjbWFpblRlbXBsYXRlIGxldC1jb2x1bW49XCJjb2x1bW5cIiBsZXQtY29sdW1ucz1cImNvbHVtbnNcIiBsZXQtZGF0YT1cImRhdGFcIiBsZXQtc3RhdGU9XCJzdGF0ZVwiXG4gICAgICAgICAgICAgbGV0LWNsb3NlPVwiY2xvc2VcIj5cbiAgPHRldGEtbWFpbi1kcm9wZG93bi10YWIgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xvc2VdPVwiY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZENlbGxFbGVtZW50UmVmXT1cImVsZW1lbnRSZWZcIj48L3RldGEtbWFpbi1kcm9wZG93bi10YWI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNmaWx0ZXJUZW1wbGF0ZSBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LXN0YXRlPVwic3RhdGVcIlxuICAgICAgICAgICAgIGxldC1jbG9zZT1cImNsb3NlXCI+XG4gIDx0ZXRhLWZpbHRlci1kcm9wZG93bi10YWIgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nsb3NlXT1cImNsb3NlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLWZpbHRlci1kcm9wZG93bi10YWI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNjb2x1bW5zVGVtcGxhdGUgbGV0LWNvbHVtbj1cImNvbHVtblwiIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1kYXRhPVwiZGF0YVwiIGxldC1zdGF0ZT1cInN0YXRlXCJcbiAgICAgICAgICAgICBsZXQtY2xvc2U9XCJjbG9zZVwiPlxuICA8dGV0YS12aXNpYmlsaXR5LWRyb3Bkb3duLXRhYiBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xvc2VdPVwiY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLXZpc2liaWxpdHktZHJvcGRvd24tdGFiPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -57,16 +57,16 @@ export class MainDropdownTabComponent {
57
57
  this._cdr.markForCheck();
58
58
  }
59
59
  autosizeColumn() {
60
- this._svc.autosizeColumn(this.column, this._elementRef.nativeElement);
60
+ this._svc.autosizeColumn(this.column, this.headCellElementRef.nativeElement);
61
61
  }
62
62
  autosizeAllColumns() {
63
- this._svc.autosizeAllColumns(this._elementRef.nativeElement);
63
+ this._svc.autosizeAllColumns(this.headCellElementRef.nativeElement);
64
64
  }
65
65
  ngOnInit() {
66
66
  }
67
67
  }
68
68
  MainDropdownTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: MainDropdownTabComponent, deps: [{ token: i1.TableService }, { token: i2.TetaConfigService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
69
- MainDropdownTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close" }, ngImport: i0, template: "<div class=\"list column_auto\" *ngIf=\"locale | async as loc\">\n <ng-container *ngIf=\"!parent\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"pinColumn()\">\n {{column.locked ? loc.unpin : loc.pin}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"column.sortable\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortAsc($event)\">\n {{loc.sortAsc}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortDesc($event)\">\n {{loc.sortDesc}}\n </div>\n <ng-container *ngIf=\"hasSortedColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"sortParam\"\n (click)=\"clearSort()\">\n {{loc.clearSort}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllSort()\">\n {{loc.clearAllSort}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"hasFilteredColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"filtered\"\n (click)=\"clearFilter()\">\n {{loc.clearFilter}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllFilters()\">\n {{loc.clearAllFilters}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{loc.autosizeColumn}}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{loc.autosizeAll}}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{loc.resetColumnsSize}}\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
69
+ MainDropdownTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close", headCellElementRef: "headCellElementRef" }, ngImport: i0, template: "<div class=\"list column_auto\" *ngIf=\"locale | async as loc\">\n <ng-container *ngIf=\"!parent\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"pinColumn()\">\n {{column.locked ? loc.unpin : loc.pin}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"column.sortable\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortAsc($event)\">\n {{loc.sortAsc}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortDesc($event)\">\n {{loc.sortDesc}}\n </div>\n <ng-container *ngIf=\"hasSortedColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"sortParam\"\n (click)=\"clearSort()\">\n {{loc.clearSort}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllSort()\">\n {{loc.clearAllSort}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"hasFilteredColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"filtered\"\n (click)=\"clearFilter()\">\n {{loc.clearFilter}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllFilters()\">\n {{loc.clearAllFilters}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{loc.autosizeColumn}}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{loc.autosizeAll}}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{loc.resetColumnsSize}}\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
70
70
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: MainDropdownTabComponent, decorators: [{
71
71
  type: Component,
72
72
  args: [{ selector: 'teta-main-dropdown-tab', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"list column_auto\" *ngIf=\"locale | async as loc\">\n <ng-container *ngIf=\"!parent\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"pinColumn()\">\n {{column.locked ? loc.unpin : loc.pin}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"column.sortable\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortAsc($event)\">\n {{loc.sortAsc}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortDesc($event)\">\n {{loc.sortDesc}}\n </div>\n <ng-container *ngIf=\"hasSortedColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"sortParam\"\n (click)=\"clearSort()\">\n {{loc.clearSort}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllSort()\">\n {{loc.clearAllSort}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"hasFilteredColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"filtered\"\n (click)=\"clearFilter()\">\n {{loc.clearFilter}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllFilters()\">\n {{loc.clearAllFilters}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{loc.autosizeColumn}}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{loc.autosizeAll}}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{loc.resetColumnsSize}}\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
@@ -80,5 +80,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
80
80
  type: Input
81
81
  }], close: [{
82
82
  type: Input
83
+ }], headCellElementRef: [{
84
+ type: Input
83
85
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1kcm9wZG93bi10YWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90YWJsZS90YWJsZS1oZWFkL21haW4tZHJvcGRvd24tdGFiL21haW4tZHJvcGRvd24tdGFiLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvdGFibGUtaGVhZC9tYWluLWRyb3Bkb3duLXRhYi9tYWluLWRyb3Bkb3duLXRhYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFPL0csT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRWhELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7QUFTcEQsTUFBTSxPQUFPLHdCQUF3QjtJQVNuQyxZQUFvQixJQUFxQixFQUNyQixPQUEwQixFQUMxQixXQUF1QixFQUN2QixJQUF1QjtRQUh2QixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sU0FBUyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQWlCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFpQjtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sU0FBUyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUdELFFBQVE7SUFDUixDQUFDOztxSEFsRlUsd0JBQXdCO3lHQUF4Qix3QkFBd0IsOEpDbEJyQywyekRBcURBOzJGRG5DYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0Usd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNOzRMQUd0QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RhYmxlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90YWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7VGV0YUNvbmZpZ1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL2xvY2FsZS90ZXRhLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7VGFibGVDb2x1bW59IGZyb20gJy4uLy4uL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUZXRhTG9jYWxpc2F0aW9ufSBmcm9tICcuLi8uLi8uLi8uLi9sb2NhbGUvdGV0YS1sb2NhbGlzYXRpb24nO1xuaW1wb3J0IHtTb3J0UGFyYW19IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9jb250YXJjdC9zb3J0LXBhcmFtJztcbmltcG9ydCB7U3RhdGVVdGlsfSBmcm9tICcuLi8uLi91dGlsL3N0YXRlLXV0aWwnO1xuaW1wb3J0IHtGaWx0ZXJTdGF0ZX0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL2NvbnRhcmN0L2ZpbHRlci1zdGF0ZSc7XG5pbXBvcnQge1NvcnRFdmVudH0gZnJvbSAnLi4vLi4vY29udHJhY3Qvc29ydC1ldmVudCc7XG5pbXBvcnQge0lUcmVlRGF0YX0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktdHJlZS1kYXRhJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1tYWluLWRyb3Bkb3duLXRhYicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYWluLWRyb3Bkb3duLXRhYi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21haW4tZHJvcGRvd24tdGFiLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1haW5Ecm9wZG93blRhYkNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGNvbHVtbnM6IElUcmVlRGF0YVtdO1xuICBASW5wdXQoKSBjb2x1bW46IFRhYmxlQ29sdW1uO1xuICBASW5wdXQoKSBzdGF0ZTogRmlsdGVyU3RhdGU7XG4gIEBJbnB1dCgpIGRhdGE6IFRbXTtcbiAgQElucHV0KCkgY2xvc2U6ICgpID0+IHZvaWQ7XG5cbiAgbG9jYWxlOiBPYnNlcnZhYmxlPFRldGFMb2NhbGlzYXRpb24+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3N2YzogVGFibGVTZXJ2aWNlPFQ+LFxuICAgICAgICAgICAgICBwcml2YXRlIF9jb25maWc6IFRldGFDb25maWdTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLl9jb25maWcubG9jYWxlO1xuICB9XG5cbiAgZ2V0IHNvcnRQYXJhbSgpOiBTb3J0UGFyYW0ge1xuICAgIHJldHVybiBTdGF0ZVV0aWwuZ2V0U29ydFN0YXRlKHRoaXMuc3RhdGUsIHRoaXMuY29sdW1uKTtcbiAgfVxuXG4gIGdldCBmaWx0ZXJlZCgpIHtcbiAgICByZXR1cm4gU3RhdGVVdGlsLmlzQ29sdW1uRmlsdGVyZWQodGhpcy5zdGF0ZSwgdGhpcy5jb2x1bW4pO1xuICB9XG5cbiAgZ2V0IHBhcmVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3ZjLmdldENvbHVtblBhcmVudCh0aGlzLmNvbHVtbik7XG4gIH1cblxuICBwaW5Db2x1bW4oKSB7XG4gICAgdGhpcy5fc3ZjLnBpbkNvbHVtbih0aGlzLmNvbHVtbik7XG4gIH1cblxuICBzb3J0QXNjKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5fc3ZjLnNvcnRBc2MobmV3IFNvcnRFdmVudCh0aGlzLmNvbHVtbiwgZXZlbnQuc2hpZnRLZXkpKTtcbiAgfVxuXG4gIHNvcnREZXNjKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5fc3ZjLnNvcnREZXNjKG5ldyBTb3J0RXZlbnQodGhpcy5jb2x1bW4sIGV2ZW50LnNoaWZ0S2V5KSk7XG4gIH1cblxuICBjbGVhclNvcnQoKTogdm9pZCB7XG4gICAgdGhpcy5fc3ZjLmNsZWFyU29ydCh0aGlzLmNvbHVtbik7XG4gIH1cblxuICBjbGVhckFsbFNvcnQoKTogdm9pZCB7XG4gICAgdGhpcy5fc3ZjLmNsZWFyQWxsU29ydCgpO1xuICB9XG5cbiAgaGFzRmlsdGVyZWRDb2x1bW5zKCkge1xuICAgIHJldHVybiBTdGF0ZVV0aWwuaGFzRmlsdGVyZWRDb2x1bW5zKHRoaXMuc3RhdGUpO1xuICB9XG5cbiAgaGFzU29ydGVkQ29sdW1ucygpIHtcbiAgICByZXR1cm4gU3RhdGVVdGlsLmhhc1NvcnRlZENvbHVtbnModGhpcy5zdGF0ZSk7XG4gIH1cblxuICByZXN0b3JlRGVmYXVsdENvbHVtbnMoKSB7XG4gICAgdGhpcy5fc3ZjLnJlc3RvcmVEZWZhdWx0Q29sdW1ucygpO1xuICB9XG5cbiAgY2xlYXJGaWx0ZXIoKSB7XG4gICAgdGhpcy5fc3ZjLmNsZWFyRmlsdGVyKHRoaXMuY29sdW1uKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgY2xlYXJBbGxGaWx0ZXJzKCkge1xuICAgIHRoaXMuX3N2Yy5jbGVhckFsbEZpbHRlcnMoKTtcbiAgICB0aGlzLmNsb3NlKClcbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBhdXRvc2l6ZUNvbHVtbigpIHtcbiAgICB0aGlzLl9zdmMuYXV0b3NpemVDb2x1bW4odGhpcy5jb2x1bW4sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBhdXRvc2l6ZUFsbENvbHVtbnMoKSB7XG4gICAgdGhpcy5fc3ZjLmF1dG9zaXplQWxsQ29sdW1ucyh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImxpc3QgY29sdW1uX2F1dG9cIiAqbmdJZj1cImxvY2FsZSB8IGFzeW5jIGFzIGxvY1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXBhcmVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0gbGlzdC1pdGVtX2ludGVyYWN0aXZlXCJcbiAgICAgICAgIChjbGljayk9XCJwaW5Db2x1bW4oKVwiPlxuICAgICAge3tjb2x1bW4ubG9ja2VkID8gbG9jLnVucGluIDogbG9jLnBpbn19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxpc3QtZGl2aWRlclwiPjwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5zb3J0YWJsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0gbGlzdC1pdGVtX2ludGVyYWN0aXZlXCJcbiAgICAgICAgIChjbGljayk9XCJzb3J0QXNjKCRldmVudClcIj5cbiAgICAgIHt7bG9jLnNvcnRBc2N9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0gbGlzdC1pdGVtX2ludGVyYWN0aXZlXCJcbiAgICAgICAgIChjbGljayk9XCJzb3J0RGVzYygkZXZlbnQpXCI+XG4gICAgICB7e2xvYy5zb3J0RGVzY319XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc1NvcnRlZENvbHVtbnMoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbSBsaXN0LWl0ZW1faW50ZXJhY3RpdmVcIlxuICAgICAgICAgICAqbmdJZj1cInNvcnRQYXJhbVwiXG4gICAgICAgICAgIChjbGljayk9XCJjbGVhclNvcnQoKVwiPlxuICAgICAgICB7e2xvYy5jbGVhclNvcnR9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtIGxpc3QtaXRlbV9pbnRlcmFjdGl2ZVwiXG4gICAgICAgICAgIChjbGljayk9XCJjbGVhckFsbFNvcnQoKVwiPlxuICAgICAgICB7e2xvYy5jbGVhckFsbFNvcnR9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdC1kaXZpZGVyXCI+PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzRmlsdGVyZWRDb2x1bW5zKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtIGxpc3QtaXRlbV9pbnRlcmFjdGl2ZVwiXG4gICAgICAgICAqbmdJZj1cImZpbHRlcmVkXCJcbiAgICAgICAgIChjbGljayk9XCJjbGVhckZpbHRlcigpXCI+XG4gICAgICB7e2xvYy5jbGVhckZpbHRlcn19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbSBsaXN0LWl0ZW1faW50ZXJhY3RpdmVcIlxuICAgICAgICAgKGNsaWNrKT1cImNsZWFyQWxsRmlsdGVycygpXCI+XG4gICAgICB7e2xvYy5jbGVhckFsbEZpbHRlcnN9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJsaXN0LWRpdmlkZXJcIj48L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0gbGlzdC1pdGVtX2ludGVyYWN0aXZlXCIgKGNsaWNrKT1cImF1dG9zaXplQ29sdW1uKClcIj5cbiAgICB7e2xvYy5hdXRvc2l6ZUNvbHVtbn19XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtIGxpc3QtaXRlbV9pbnRlcmFjdGl2ZVwiIChjbGljayk9XCJhdXRvc2l6ZUFsbENvbHVtbnMoKVwiPlxuICAgIHt7bG9jLmF1dG9zaXplQWxsfX1cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJsaXN0LWRpdmlkZXJcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbSBsaXN0LWl0ZW1faW50ZXJhY3RpdmVcIiAoY2xpY2spPVwicmVzdG9yZURlZmF1bHRDb2x1bW5zKClcIj5cbiAgICB7e2xvYy5yZXNldENvbHVtbnNTaXplfX1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1kcm9wZG93bi10YWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90YWJsZS90YWJsZS1oZWFkL21haW4tZHJvcGRvd24tdGFiL21haW4tZHJvcGRvd24tdGFiLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvdGFibGUtaGVhZC9tYWluLWRyb3Bkb3duLXRhYi9tYWluLWRyb3Bkb3duLXRhYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFPL0csT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRWhELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7QUFTcEQsTUFBTSxPQUFPLHdCQUF3QjtJQVVuQyxZQUFvQixJQUFxQixFQUNyQixPQUEwQixFQUMxQixXQUF1QixFQUN2QixJQUF1QjtRQUh2QixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sU0FBUyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQWlCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFpQjtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sU0FBUyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFHRCxRQUFRO0lBQ1IsQ0FBQzs7cUhBbkZVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLHdNQ2xCckMsMnpEQXFEQTsyRkRuQ2Esd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTTs0TEFHdEMsT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VGFibGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHtUZXRhQ29uZmlnU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vbG9jYWxlL3RldGEtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHtUYWJsZUNvbHVtbn0gZnJvbSAnLi4vLi4vY29udHJhY3QvdGFibGUtY29sdW1uJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1RldGFMb2NhbGlzYXRpb259IGZyb20gJy4uLy4uLy4uLy4uL2xvY2FsZS90ZXRhLWxvY2FsaXNhdGlvbic7XG5pbXBvcnQge1NvcnRQYXJhbX0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL2NvbnRhcmN0L3NvcnQtcGFyYW0nO1xuaW1wb3J0IHtTdGF0ZVV0aWx9IGZyb20gJy4uLy4uL3V0aWwvc3RhdGUtdXRpbCc7XG5pbXBvcnQge0ZpbHRlclN0YXRlfSBmcm9tICcuLi8uLi8uLi9maWx0ZXIvY29udGFyY3QvZmlsdGVyLXN0YXRlJztcbmltcG9ydCB7U29ydEV2ZW50fSBmcm9tICcuLi8uLi9jb250cmFjdC9zb3J0LWV2ZW50JztcbmltcG9ydCB7SVRyZWVEYXRhfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS10cmVlLWRhdGEnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLW1haW4tZHJvcGRvd24tdGFiJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21haW4tZHJvcGRvd24tdGFiLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFpbi1kcm9wZG93bi10YWIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTWFpbkRyb3Bkb3duVGFiQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgY29sdW1uczogSVRyZWVEYXRhW107XG4gIEBJbnB1dCgpIGNvbHVtbjogVGFibGVDb2x1bW47XG4gIEBJbnB1dCgpIHN0YXRlOiBGaWx0ZXJTdGF0ZTtcbiAgQElucHV0KCkgZGF0YTogVFtdO1xuICBASW5wdXQoKSBjbG9zZTogKCkgPT4gdm9pZDtcbiAgQElucHV0KCkgaGVhZENlbGxFbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gIGxvY2FsZTogT2JzZXJ2YWJsZTxUZXRhTG9jYWxpc2F0aW9uPjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdmM6IFRhYmxlU2VydmljZTxUPixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfY29uZmlnOiBUZXRhQ29uZmlnU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMubG9jYWxlID0gdGhpcy5fY29uZmlnLmxvY2FsZTtcbiAgfVxuXG4gIGdldCBzb3J0UGFyYW0oKTogU29ydFBhcmFtIHtcbiAgICByZXR1cm4gU3RhdGVVdGlsLmdldFNvcnRTdGF0ZSh0aGlzLnN0YXRlLCB0aGlzLmNvbHVtbik7XG4gIH1cblxuICBnZXQgZmlsdGVyZWQoKSB7XG4gICAgcmV0dXJuIFN0YXRlVXRpbC5pc0NvbHVtbkZpbHRlcmVkKHRoaXMuc3RhdGUsIHRoaXMuY29sdW1uKTtcbiAgfVxuXG4gIGdldCBwYXJlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N2Yy5nZXRDb2x1bW5QYXJlbnQodGhpcy5jb2x1bW4pO1xuICB9XG5cbiAgcGluQ29sdW1uKCkge1xuICAgIHRoaXMuX3N2Yy5waW5Db2x1bW4odGhpcy5jb2x1bW4pO1xuICB9XG5cbiAgc29ydEFzYyhldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuX3N2Yy5zb3J0QXNjKG5ldyBTb3J0RXZlbnQodGhpcy5jb2x1bW4sIGV2ZW50LnNoaWZ0S2V5KSk7XG4gIH1cblxuICBzb3J0RGVzYyhldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuX3N2Yy5zb3J0RGVzYyhuZXcgU29ydEV2ZW50KHRoaXMuY29sdW1uLCBldmVudC5zaGlmdEtleSkpO1xuICB9XG5cbiAgY2xlYXJTb3J0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N2Yy5jbGVhclNvcnQodGhpcy5jb2x1bW4pO1xuICB9XG5cbiAgY2xlYXJBbGxTb3J0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N2Yy5jbGVhckFsbFNvcnQoKTtcbiAgfVxuXG4gIGhhc0ZpbHRlcmVkQ29sdW1ucygpIHtcbiAgICByZXR1cm4gU3RhdGVVdGlsLmhhc0ZpbHRlcmVkQ29sdW1ucyh0aGlzLnN0YXRlKTtcbiAgfVxuXG4gIGhhc1NvcnRlZENvbHVtbnMoKSB7XG4gICAgcmV0dXJuIFN0YXRlVXRpbC5oYXNTb3J0ZWRDb2x1bW5zKHRoaXMuc3RhdGUpO1xuICB9XG5cbiAgcmVzdG9yZURlZmF1bHRDb2x1bW5zKCkge1xuICAgIHRoaXMuX3N2Yy5yZXN0b3JlRGVmYXVsdENvbHVtbnMoKTtcbiAgfVxuXG4gIGNsZWFyRmlsdGVyKCkge1xuICAgIHRoaXMuX3N2Yy5jbGVhckZpbHRlcih0aGlzLmNvbHVtbik7XG4gICAgdGhpcy5jbG9zZSgpO1xuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGNsZWFyQWxsRmlsdGVycygpIHtcbiAgICB0aGlzLl9zdmMuY2xlYXJBbGxGaWx0ZXJzKCk7XG4gICAgdGhpcy5jbG9zZSgpXG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgYXV0b3NpemVDb2x1bW4oKSB7XG4gICAgdGhpcy5fc3ZjLmF1dG9zaXplQ29sdW1uKHRoaXMuY29sdW1uLCB0aGlzLmhlYWRDZWxsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIGF1dG9zaXplQWxsQ29sdW1ucygpIHtcbiAgICB0aGlzLl9zdmMuYXV0b3NpemVBbGxDb2x1bW5zKHRoaXMuaGVhZENlbGxFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImxpc3QgY29sdW1uX2F1dG9cIiAqbmdJZj1cImxvY2FsZSB8IGFzeW5jIGFzIGxvY1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXBhcmVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0gbGlzdC1pdGVtX2ludGVyYWN0aXZlXCJcbiAgICAgICAgIChjbGljayk9XCJwaW5Db2x1bW4oKVwiPlxuICAgICAge3tjb2x1bW4ubG9ja2VkID8gbG9jLnVucGluIDogbG9jLnBpbn19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxpc3QtZGl2aWRlclwiPjwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5zb3J0YWJsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0gbGlzdC1pdGVtX2ludGVyYWN0aXZlXCJcbiAgICAgICAgIChjbGljayk9XCJzb3J0QXNjKCRldmVudClcIj5cbiAgICAgIHt7bG9jLnNvcnRBc2N9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0gbGlzdC1pdGVtX2ludGVyYWN0aXZlXCJcbiAgICAgICAgIChjbGljayk9XCJzb3J0RGVzYygkZXZlbnQpXCI+XG4gICAgICB7e2xvYy5zb3J0RGVzY319XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc1NvcnRlZENvbHVtbnMoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbSBsaXN0LWl0ZW1faW50ZXJhY3RpdmVcIlxuICAgICAgICAgICAqbmdJZj1cInNvcnRQYXJhbVwiXG4gICAgICAgICAgIChjbGljayk9XCJjbGVhclNvcnQoKVwiPlxuICAgICAgICB7e2xvYy5jbGVhclNvcnR9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtIGxpc3QtaXRlbV9pbnRlcmFjdGl2ZVwiXG4gICAgICAgICAgIChjbGljayk9XCJjbGVhckFsbFNvcnQoKVwiPlxuICAgICAgICB7e2xvYy5jbGVhckFsbFNvcnR9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdC1kaXZpZGVyXCI+PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzRmlsdGVyZWRDb2x1bW5zKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtIGxpc3QtaXRlbV9pbnRlcmFjdGl2ZVwiXG4gICAgICAgICAqbmdJZj1cImZpbHRlcmVkXCJcbiAgICAgICAgIChjbGljayk9XCJjbGVhckZpbHRlcigpXCI+XG4gICAgICB7e2xvYy5jbGVhckZpbHRlcn19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbSBsaXN0LWl0ZW1faW50ZXJhY3RpdmVcIlxuICAgICAgICAgKGNsaWNrKT1cImNsZWFyQWxsRmlsdGVycygpXCI+XG4gICAgICB7e2xvYy5jbGVhckFsbEZpbHRlcnN9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJsaXN0LWRpdmlkZXJcIj48L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0gbGlzdC1pdGVtX2ludGVyYWN0aXZlXCIgKGNsaWNrKT1cImF1dG9zaXplQ29sdW1uKClcIj5cbiAgICB7e2xvYy5hdXRvc2l6ZUNvbHVtbn19XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtIGxpc3QtaXRlbV9pbnRlcmFjdGl2ZVwiIChjbGljayk9XCJhdXRvc2l6ZUFsbENvbHVtbnMoKVwiPlxuICAgIHt7bG9jLmF1dG9zaXplQWxsfX1cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJsaXN0LWRpdmlkZXJcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbSBsaXN0LWl0ZW1faW50ZXJhY3RpdmVcIiAoY2xpY2spPVwicmVzdG9yZURlZmF1bHRDb2x1bW5zKClcIj5cbiAgICB7e2xvYy5yZXNldENvbHVtbnNTaXplfX1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1159,10 +1159,10 @@ class PositionUtil {
1159
1159
  if (rect.top < 0) {
1160
1160
  rect.top = 0;
1161
1161
  }
1162
- if (verticalAlign === VerticalAlign.bottom || verticalAlign === VerticalAlign.center) {
1162
+ if (verticalAlign === VerticalAlign.bottom || verticalAlign === VerticalAlign.center || verticalAlign === VerticalAlign.innerBottom) {
1163
1163
  rect.maxHeight = window.innerHeight - rect.top;
1164
1164
  }
1165
- if (verticalAlign === VerticalAlign.top) {
1165
+ if (verticalAlign === VerticalAlign.top || verticalAlign === VerticalAlign.innerTop) {
1166
1166
  rect.maxHeight = containerPosition.top;
1167
1167
  }
1168
1168
  rect.left = rect.left - transformedParentRect.left;
@@ -8735,16 +8735,16 @@ class MainDropdownTabComponent {
8735
8735
  this._cdr.markForCheck();
8736
8736
  }
8737
8737
  autosizeColumn() {
8738
- this._svc.autosizeColumn(this.column, this._elementRef.nativeElement);
8738
+ this._svc.autosizeColumn(this.column, this.headCellElementRef.nativeElement);
8739
8739
  }
8740
8740
  autosizeAllColumns() {
8741
- this._svc.autosizeAllColumns(this._elementRef.nativeElement);
8741
+ this._svc.autosizeAllColumns(this.headCellElementRef.nativeElement);
8742
8742
  }
8743
8743
  ngOnInit() {
8744
8744
  }
8745
8745
  }
8746
8746
  MainDropdownTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: MainDropdownTabComponent, deps: [{ token: TableService }, { token: TetaConfigService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
8747
- MainDropdownTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close" }, ngImport: i0, template: "<div class=\"list column_auto\" *ngIf=\"locale | async as loc\">\n <ng-container *ngIf=\"!parent\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"pinColumn()\">\n {{column.locked ? loc.unpin : loc.pin}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"column.sortable\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortAsc($event)\">\n {{loc.sortAsc}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortDesc($event)\">\n {{loc.sortDesc}}\n </div>\n <ng-container *ngIf=\"hasSortedColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"sortParam\"\n (click)=\"clearSort()\">\n {{loc.clearSort}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllSort()\">\n {{loc.clearAllSort}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"hasFilteredColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"filtered\"\n (click)=\"clearFilter()\">\n {{loc.clearFilter}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllFilters()\">\n {{loc.clearAllFilters}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{loc.autosizeColumn}}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{loc.autosizeAll}}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{loc.resetColumnsSize}}\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8747
+ MainDropdownTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close", headCellElementRef: "headCellElementRef" }, ngImport: i0, template: "<div class=\"list column_auto\" *ngIf=\"locale | async as loc\">\n <ng-container *ngIf=\"!parent\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"pinColumn()\">\n {{column.locked ? loc.unpin : loc.pin}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"column.sortable\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortAsc($event)\">\n {{loc.sortAsc}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortDesc($event)\">\n {{loc.sortDesc}}\n </div>\n <ng-container *ngIf=\"hasSortedColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"sortParam\"\n (click)=\"clearSort()\">\n {{loc.clearSort}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllSort()\">\n {{loc.clearAllSort}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"hasFilteredColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"filtered\"\n (click)=\"clearFilter()\">\n {{loc.clearFilter}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllFilters()\">\n {{loc.clearAllFilters}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{loc.autosizeColumn}}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{loc.autosizeAll}}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{loc.resetColumnsSize}}\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8748
8748
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: MainDropdownTabComponent, decorators: [{
8749
8749
  type: Component,
8750
8750
  args: [{ selector: 'teta-main-dropdown-tab', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"list column_auto\" *ngIf=\"locale | async as loc\">\n <ng-container *ngIf=\"!parent\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"pinColumn()\">\n {{column.locked ? loc.unpin : loc.pin}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"column.sortable\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortAsc($event)\">\n {{loc.sortAsc}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortDesc($event)\">\n {{loc.sortDesc}}\n </div>\n <ng-container *ngIf=\"hasSortedColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"sortParam\"\n (click)=\"clearSort()\">\n {{loc.clearSort}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllSort()\">\n {{loc.clearAllSort}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"hasFilteredColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"filtered\"\n (click)=\"clearFilter()\">\n {{loc.clearFilter}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllFilters()\">\n {{loc.clearAllFilters}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{loc.autosizeColumn}}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{loc.autosizeAll}}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{loc.resetColumnsSize}}\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
@@ -8758,6 +8758,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
8758
8758
  type: Input
8759
8759
  }], close: [{
8760
8760
  type: Input
8761
+ }], headCellElementRef: [{
8762
+ type: Input
8761
8763
  }] } });
8762
8764
 
8763
8765
  class FilterDropdownTabComponent {
@@ -9234,6 +9236,9 @@ class HeadCellComponent {
9234
9236
  }
9235
9237
  ];
9236
9238
  }
9239
+ get elementRef() {
9240
+ return this._elementRef;
9241
+ }
9237
9242
  get tabTemplates() {
9238
9243
  var _a, _b;
9239
9244
  if (((_a = this.column) === null || _a === void 0 ? void 0 : _a.headDropdownConfig) && ((_b = this.column.headDropdownConfig.tabs) === null || _b === void 0 ? void 0 : _b.length) > 0) {
@@ -9316,10 +9321,10 @@ class HeadCellComponent {
9316
9321
  }
9317
9322
  }
9318
9323
  HeadCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: HeadCellComponent, deps: [{ token: TableService }, { token: i0.ApplicationRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
9319
- 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\" [state]=\"state\" [close]=\"close\"></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: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "directive", type: ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "component", type: HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "columns", "data"] }, { kind: "component", type: HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "tabTemplates", "dropDownOpen"], outputs: ["dropDownOpenChange"] }, { kind: "component", type: MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: FilterDropdownTabComponent, selector: "teta-filter-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: VisibilityDropdownTabComponent, selector: "teta-visibility-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9324
+ 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: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "directive", type: ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "component", type: HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "columns", "data"] }, { kind: "component", type: HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "tabTemplates", "dropDownOpen"], outputs: ["dropDownOpenChange"] }, { kind: "component", type: MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: ["columns", "column", "state", "data", "close", "headCellElementRef"] }, { kind: "component", type: FilterDropdownTabComponent, selector: "teta-filter-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: VisibilityDropdownTabComponent, selector: "teta-visibility-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9320
9325
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: HeadCellComponent, decorators: [{
9321
9326
  type: Component,
9322
- 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\" [state]=\"state\" [close]=\"close\"></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"] }]
9327
+ 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"] }]
9323
9328
  }], ctorParameters: function () { return [{ type: TableService }, { type: i0.ApplicationRef }, { type: i0.ElementRef }]; }, propDecorators: { column: [{
9324
9329
  type: Input
9325
9330
  }], showHeadCellMenu: [{