@angular/material-experimental 13.0.3 → 13.0.4

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.
@@ -9,8 +9,8 @@
9
9
  $foreground: map.get($config, foreground);
10
10
 
11
11
  $non-resizable-hover-divider: theming.get-color-from-palette($foreground, divider);
12
- $resizable-hover-divider: theming.get-color-from-palette($primary, 200);
13
- $resizable-active-divider: theming.get-color-from-palette($primary, 500);
12
+ $resizable-hover-divider: theming.get-color-from-palette($primary, 600);
13
+ $resizable-active-divider: theming.get-color-from-palette($primary, 600);
14
14
 
15
15
  // TODO: these styles don't really belong in the `color` part of the theme.
16
16
  // We should figure out a better place for them.
@@ -21,13 +21,16 @@
21
21
 
22
22
  .mat-column-resize-flex {
23
23
  .mat-header-cell,
24
- .mat-cell {
24
+ .mat-mdc-header-cell,
25
+ .mat-cell,
26
+ .mat-mdc-cell {
25
27
  box-sizing: border-box;
26
28
  min-width: 32px;
27
29
  }
28
30
  }
29
31
 
30
- .mat-header-cell {
32
+ .mat-header-cell,
33
+ .mat-mdc-header-cell {
31
34
  position: relative;
32
35
  }
33
36
 
@@ -36,6 +39,7 @@
36
39
  }
37
40
 
38
41
  .mat-header-cell:not(.mat-resizable)::after,
42
+ .mat-mdc-header-cell:not(.mat-resizable)::after,
39
43
  .mat-resizable-handle {
40
44
  background: transparent;
41
45
  bottom: 0;
@@ -46,23 +50,26 @@
46
50
  width: 1px;
47
51
  }
48
52
 
49
- .mat-header-cell:not(.mat-resizable)::after {
53
+ .mat-header-cell:not(.mat-resizable)::after,
54
+ .mat-mdc-header-cell:not(.mat-resizable)::after {
50
55
  content: '';
51
56
  }
52
57
 
53
58
  .mat-header-cell:not(.mat-resizable)::after,
59
+ .mat-mdc-header-cell:not(.mat-resizable)::after,
54
60
  .mat-resizable-handle {
55
61
  right: 0;
56
62
  }
57
63
 
58
- [dir='rtl'] .mat-header-cell:not(.mat-resizable)::after,
59
- [dir='rtl'] .mat-resizable-handle {
60
- left: 0;
61
- right: auto;
62
- }
64
+ .mat-header-row.cdk-column-resize-hover-or-active,
65
+ .mat-mdc-header-row.cdk-column-resize-hover-or-active {
66
+ .mat-header-cell,
67
+ .mat-mdc-header-cell {
68
+ border-right: none;
69
+ }
63
70
 
64
- .mat-header-row.cdk-column-resize-hover-or-active {
65
- .mat-header-cell:not(.mat-resizable)::after {
71
+ .mat-header-cell:not(.mat-resizable)::after,
72
+ .mat-mdc-header-cell:not(.mat-resizable)::after {
66
73
  background: $non-resizable-hover-divider;
67
74
  }
68
75
 
@@ -71,13 +78,31 @@
71
78
  }
72
79
  }
73
80
 
81
+ [dir='rtl'] {
82
+ .mat-header-cell:not(.mat-resizable)::after,
83
+ .mat-mdc-header-cell:not(.mat-resizable)::after,
84
+ .mat-resizable-handle {
85
+ left: 0;
86
+ right: auto;
87
+ }
88
+
89
+ .mat-header-row.cdk-column-resize-hover-or-active,
90
+ .mat-mdc-header-row.cdk-column-resize-hover-or-active {
91
+ .mat-header-cell,
92
+ .mat-mdc-header-cell {
93
+ border-left: none;
94
+ }
95
+ }
96
+ }
97
+
74
98
  .mat-resizable.cdk-resizable-overlay-thumb-active > .mat-resizable-handle {
75
99
  opacity: 0;
76
100
  transition: none;
77
101
  }
78
102
 
79
103
  .mat-resizable-handle:focus,
80
- .mat-header-row.cdk-column-resize-hover-or-active .mat-resizable-handle:focus {
104
+ .mat-header-row.cdk-column-resize-hover-or-active .mat-resizable-handle:focus,
105
+ .mat-mdc-header-row.cdk-column-resize-hover-or-active .mat-resizable-handle:focus {
81
106
  background: $resizable-active-divider;
82
107
  outline: none;
83
108
  }
@@ -94,11 +119,22 @@
94
119
  &:active {
95
120
  background: linear-gradient(90deg,
96
121
  transparent, transparent 7px,
97
- $resizable-active-divider, $resizable-active-divider 1px,
98
- transparent 8px, transparent);
122
+ $resizable-active-divider 7px, $resizable-active-divider 9px,
123
+ transparent 9px, transparent);
99
124
  will-change: transform;
125
+
126
+ .mat-column-resize-overlay-thumb-top {
127
+ background: linear-gradient(90deg,
128
+ transparent, transparent 4px,
129
+ $resizable-active-divider 4px, $resizable-active-divider 12px,
130
+ transparent 12px, transparent);
131
+ }
100
132
  }
101
133
  }
134
+
135
+ .mat-column-resize-overlay-thumb-top {
136
+ width: 100%;
137
+ }
102
138
  }
103
139
 
104
140
  @mixin typography($config-or-theme) {}
@@ -25,6 +25,7 @@ export declare class MatColumnResizeOverlayHandle extends ResizeOverlayHandle {
25
25
  protected readonly resizeRef: ResizeRef;
26
26
  protected readonly styleScheduler: _CoalescedStyleScheduler;
27
27
  protected readonly document: Document;
28
+ topElement: ElementRef<HTMLElement>;
28
29
  constructor(columnDef: CdkColumnDef, columnResize: ColumnResize, directionality: Directionality, elementRef: ElementRef, eventDispatcher: HeaderRowEventDispatcher, ngZone: NgZone, resizeNotifier: ColumnResizeNotifierSource, resizeRef: ResizeRef, styleScheduler: _CoalescedStyleScheduler, document: any);
29
30
  protected updateResizeActive(active: boolean): void;
30
31
  static ɵfac: i0.ɵɵFactoryDeclaration<MatColumnResizeOverlayHandle, never>;
@@ -5,7 +5,7 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
- import { ChangeDetectionStrategy, Component, ElementRef, Inject, NgZone, ViewEncapsulation, } from '@angular/core';
8
+ import { ChangeDetectionStrategy, Component, ElementRef, Inject, NgZone, ViewChild, ViewEncapsulation, } from '@angular/core';
9
9
  import { DOCUMENT } from '@angular/common';
10
10
  import { CdkColumnDef, _CoalescedStyleScheduler, _COALESCED_STYLE_SCHEDULER, } from '@angular/cdk/table';
11
11
  import { Directionality } from '@angular/cdk/bidi';
@@ -34,22 +34,24 @@ export class MatColumnResizeOverlayHandle extends ResizeOverlayHandle {
34
34
  }
35
35
  updateResizeActive(active) {
36
36
  super.updateResizeActive(active);
37
+ const originHeight = this.resizeRef.origin.nativeElement.offsetHeight;
38
+ this.topElement.nativeElement.style.height = `${originHeight}px`;
37
39
  this.resizeRef.overlayRef.updateSize({
38
40
  height: active
39
41
  ? this.columnResize.getTableHeight()
40
- : this.resizeRef.origin.nativeElement.offsetHeight,
42
+ : originHeight,
41
43
  });
42
44
  }
43
45
  }
44
46
  MatColumnResizeOverlayHandle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: MatColumnResizeOverlayHandle, deps: [{ token: i1.CdkColumnDef }, { token: i2.ColumnResize }, { token: i3.Directionality }, { token: i0.ElementRef }, { token: i2.HeaderRowEventDispatcher }, { token: i0.NgZone }, { token: i2.ColumnResizeNotifierSource }, { token: i2.ResizeRef }, { token: _COALESCED_STYLE_SCHEDULER }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
45
- MatColumnResizeOverlayHandle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: MatColumnResizeOverlayHandle, selector: "ng-component", host: { classAttribute: "mat-column-resize-overlay-thumb" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
47
+ MatColumnResizeOverlayHandle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: MatColumnResizeOverlayHandle, selector: "ng-component", host: { classAttribute: "mat-column-resize-overlay-thumb" }, viewQueries: [{ propertyName: "topElement", first: true, predicate: ["top"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: '<div #top class="mat-column-resize-overlay-thumb-top"></div>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
46
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: MatColumnResizeOverlayHandle, decorators: [{
47
49
  type: Component,
48
50
  args: [{
49
51
  changeDetection: ChangeDetectionStrategy.OnPush,
50
52
  encapsulation: ViewEncapsulation.None,
51
53
  host: { 'class': 'mat-column-resize-overlay-thumb' },
52
- template: '',
54
+ template: '<div #top class="mat-column-resize-overlay-thumb-top"></div>',
53
55
  }]
54
56
  }], ctorParameters: function () { return [{ type: i1.CdkColumnDef }, { type: i2.ColumnResize }, { type: i3.Directionality }, { type: i0.ElementRef }, { type: i2.HeaderRowEventDispatcher }, { type: i0.NgZone }, { type: i2.ColumnResizeNotifierSource }, { type: i2.ResizeRef }, { type: i1._CoalescedStyleScheduler, decorators: [{
55
57
  type: Inject,
@@ -57,5 +59,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
57
59
  }] }, { type: undefined, decorators: [{
58
60
  type: Inject,
59
61
  args: [DOCUMENT]
60
- }] }]; } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1oYW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtZXhwZXJpbWVudGFsL2NvbHVtbi1yZXNpemUvb3ZlcmxheS1oYW5kbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsWUFBWSxFQUNaLHdCQUF3QixFQUN4QiwwQkFBMEIsR0FDM0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUNMLFlBQVksRUFDWiwwQkFBMEIsRUFDMUIsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQixTQUFTLEdBQ1YsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7QUFJakQ7OztHQUdHO0FBT0gsTUFBTSxPQUFPLDRCQUE2QixTQUFRLG1CQUFtQjtJQUduRSxZQUNxQixTQUF1QixFQUN2QixZQUEwQixFQUMxQixjQUE4QixFQUM5QixVQUFzQixFQUN0QixlQUF5QyxFQUN6QyxNQUFjLEVBQ2QsY0FBMEMsRUFDMUMsU0FBb0IsRUFFcEIsY0FBd0MsRUFDekMsUUFBYTtRQUUvQixLQUFLLEVBQUUsQ0FBQztRQVpXLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDdkIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQTBCO1FBQ3pDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBNEI7UUFDMUMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUVwQixtQkFBYyxHQUFkLGNBQWMsQ0FBMEI7UUFJM0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVrQixrQkFBa0IsQ0FBQyxNQUFlO1FBQ25ELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7WUFDbkMsTUFBTSxFQUFFLE1BQU07Z0JBQ1osQ0FBQyxDQUFFLElBQUksQ0FBQyxZQUF3QyxDQUFDLGNBQWMsRUFBRTtnQkFDakUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWMsQ0FBQyxZQUFZO1NBQ3RELENBQUMsQ0FBQztJQUNMLENBQUM7O3lIQTVCVSw0QkFBNEIsbVFBWTdCLDBCQUEwQixhQUUxQixRQUFROzZHQWRQLDRCQUE0Qix3SUFGN0IsRUFBRTsyRkFFRCw0QkFBNEI7a0JBTnhDLFNBQVM7bUJBQUM7b0JBQ1QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxJQUFJLEVBQUUsRUFBQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUM7b0JBQ2xELFFBQVEsRUFBRSxFQUFFO2lCQUNiOzswQkFhSSxNQUFNOzJCQUFDLDBCQUEwQjs7MEJBRWpDLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIE5nWm9uZSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENka0NvbHVtbkRlZixcbiAgX0NvYWxlc2NlZFN0eWxlU2NoZWR1bGVyLFxuICBfQ09BTEVTQ0VEX1NUWUxFX1NDSEVEVUxFUixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcbmltcG9ydCB7RGlyZWN0aW9uYWxpdHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7XG4gIENvbHVtblJlc2l6ZSxcbiAgQ29sdW1uUmVzaXplTm90aWZpZXJTb3VyY2UsXG4gIEhlYWRlclJvd0V2ZW50RGlzcGF0Y2hlcixcbiAgUmVzaXplT3ZlcmxheUhhbmRsZSxcbiAgUmVzaXplUmVmLFxufSBmcm9tICdAYW5ndWxhci9jZGstZXhwZXJpbWVudGFsL2NvbHVtbi1yZXNpemUnO1xuXG5pbXBvcnQge0Fic3RyYWN0TWF0Q29sdW1uUmVzaXplfSBmcm9tICcuL2NvbHVtbi1yZXNpemUtZGlyZWN0aXZlcy9jb21tb24nO1xuXG4vKipcbiAqIENvbXBvbmVudCBzaG93biBvdmVyIHRoZSBlZGdlIG9mIGEgcmVzaXphYmxlIGNvbHVtbiB0aGF0IGlzIHJlc3BvbnNpYmxlXG4gKiBmb3IgaGFuZGxpbmcgY29sdW1uIHJlc2l6ZSBtb3VzZSBldmVudHMgYW5kIGRpc3BsYXlpbmcgYSB2ZXJ0aWNhbCBsaW5lIGFsb25nIHRoZSBjb2x1bW4gZWRnZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7J2NsYXNzJzogJ21hdC1jb2x1bW4tcmVzaXplLW92ZXJsYXktdGh1bWInfSxcbiAgdGVtcGxhdGU6ICcnLFxufSlcbmV4cG9ydCBjbGFzcyBNYXRDb2x1bW5SZXNpemVPdmVybGF5SGFuZGxlIGV4dGVuZHMgUmVzaXplT3ZlcmxheUhhbmRsZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbHVtbkRlZjogQ2RrQ29sdW1uRGVmLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBjb2x1bW5SZXNpemU6IENvbHVtblJlc2l6ZSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGlyZWN0aW9uYWxpdHk6IERpcmVjdGlvbmFsaXR5LFxuICAgIHByb3RlY3RlZCByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBldmVudERpc3BhdGNoZXI6IEhlYWRlclJvd0V2ZW50RGlzcGF0Y2hlcixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlc2l6ZU5vdGlmaWVyOiBDb2x1bW5SZXNpemVOb3RpZmllclNvdXJjZSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVzaXplUmVmOiBSZXNpemVSZWYsXG4gICAgQEluamVjdChfQ09BTEVTQ0VEX1NUWUxFX1NDSEVEVUxFUilcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3R5bGVTY2hlZHVsZXI6IF9Db2FsZXNjZWRTdHlsZVNjaGVkdWxlcixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55LFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVSZXNpemVBY3RpdmUoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgc3VwZXIudXBkYXRlUmVzaXplQWN0aXZlKGFjdGl2ZSk7XG5cbiAgICB0aGlzLnJlc2l6ZVJlZi5vdmVybGF5UmVmLnVwZGF0ZVNpemUoe1xuICAgICAgaGVpZ2h0OiBhY3RpdmVcbiAgICAgICAgPyAodGhpcy5jb2x1bW5SZXNpemUgYXMgQWJzdHJhY3RNYXRDb2x1bW5SZXNpemUpLmdldFRhYmxlSGVpZ2h0KClcbiAgICAgICAgOiB0aGlzLnJlc2l6ZVJlZi5vcmlnaW4ubmF0aXZlRWxlbWVudCEub2Zmc2V0SGVpZ2h0LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
62
+ }] }]; }, propDecorators: { topElement: [{
63
+ type: ViewChild,
64
+ args: ['top', { static: true }]
65
+ }] } });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1oYW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtZXhwZXJpbWVudGFsL2NvbHVtbi1yZXNpemUvb3ZlcmxheS1oYW5kbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUNMLFlBQVksRUFDWix3QkFBd0IsRUFDeEIsMEJBQTBCLEdBQzNCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFDTCxZQUFZLEVBQ1osMEJBQTBCLEVBQzFCLHdCQUF3QixFQUN4QixtQkFBbUIsRUFDbkIsU0FBUyxHQUNWLE1BQU0seUNBQXlDLENBQUM7Ozs7O0FBSWpEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxtQkFBbUI7SUFLbkUsWUFDcUIsU0FBdUIsRUFDdkIsWUFBMEIsRUFDMUIsY0FBOEIsRUFDOUIsVUFBc0IsRUFDdEIsZUFBeUMsRUFDekMsTUFBYyxFQUNkLGNBQTBDLEVBQzFDLFNBQW9CLEVBRXBCLGNBQXdDLEVBQ3pDLFFBQWE7UUFFL0IsS0FBSyxFQUFFLENBQUM7UUFaVyxjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ3ZCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLG9CQUFlLEdBQWYsZUFBZSxDQUEwQjtRQUN6QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQTRCO1FBQzFDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFFcEIsbUJBQWMsR0FBZCxjQUFjLENBQTBCO1FBSTNELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFa0Isa0JBQWtCLENBQUMsTUFBZTtRQUNuRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztRQUN0RSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsWUFBWSxJQUFJLENBQUM7UUFDakUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1lBQ25DLE1BQU0sRUFBRSxNQUFNO2dCQUNaLENBQUMsQ0FBRSxJQUFJLENBQUMsWUFBd0MsQ0FBQyxjQUFjLEVBQUU7Z0JBQ2pFLENBQUMsQ0FBQyxZQUFZO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7O3lIQWhDVSw0QkFBNEIsbVFBYzdCLDBCQUEwQixhQUUxQixRQUFROzZHQWhCUCw0QkFBNEIseVBBRjdCLDhEQUE4RDsyRkFFN0QsNEJBQTRCO2tCQU54QyxTQUFTO21CQUFDO29CQUNULGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsSUFBSSxFQUFFLEVBQUMsT0FBTyxFQUFFLGlDQUFpQyxFQUFDO29CQUNsRCxRQUFRLEVBQUUsOERBQThEO2lCQUN6RTs7MEJBZUksTUFBTTsyQkFBQywwQkFBMEI7OzBCQUVqQyxNQUFNOzJCQUFDLFFBQVE7NENBYmdCLFVBQVU7c0JBQTNDLFNBQVM7dUJBQUMsS0FBSyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIE5nWm9uZSxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2RrQ29sdW1uRGVmLFxuICBfQ29hbGVzY2VkU3R5bGVTY2hlZHVsZXIsXG4gIF9DT0FMRVNDRURfU1RZTEVfU0NIRURVTEVSLFxufSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xuaW1wb3J0IHtEaXJlY3Rpb25hbGl0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHtcbiAgQ29sdW1uUmVzaXplLFxuICBDb2x1bW5SZXNpemVOb3RpZmllclNvdXJjZSxcbiAgSGVhZGVyUm93RXZlbnREaXNwYXRjaGVyLFxuICBSZXNpemVPdmVybGF5SGFuZGxlLFxuICBSZXNpemVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay1leHBlcmltZW50YWwvY29sdW1uLXJlc2l6ZSc7XG5cbmltcG9ydCB7QWJzdHJhY3RNYXRDb2x1bW5SZXNpemV9IGZyb20gJy4vY29sdW1uLXJlc2l6ZS1kaXJlY3RpdmVzL2NvbW1vbic7XG5cbi8qKlxuICogQ29tcG9uZW50IHNob3duIG92ZXIgdGhlIGVkZ2Ugb2YgYSByZXNpemFibGUgY29sdW1uIHRoYXQgaXMgcmVzcG9uc2libGVcbiAqIGZvciBoYW5kbGluZyBjb2x1bW4gcmVzaXplIG1vdXNlIGV2ZW50cyBhbmQgZGlzcGxheWluZyBhIHZlcnRpY2FsIGxpbmUgYWxvbmcgdGhlIGNvbHVtbiBlZGdlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsnY2xhc3MnOiAnbWF0LWNvbHVtbi1yZXNpemUtb3ZlcmxheS10aHVtYid9LFxuICB0ZW1wbGF0ZTogJzxkaXYgI3RvcCBjbGFzcz1cIm1hdC1jb2x1bW4tcmVzaXplLW92ZXJsYXktdGh1bWItdG9wXCI+PC9kaXY+Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWF0Q29sdW1uUmVzaXplT3ZlcmxheUhhbmRsZSBleHRlbmRzIFJlc2l6ZU92ZXJsYXlIYW5kbGUge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3RvcCcsIHtzdGF0aWM6IHRydWV9KSB0b3BFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29sdW1uRGVmOiBDZGtDb2x1bW5EZWYsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbHVtblJlc2l6ZTogQ29sdW1uUmVzaXplLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBkaXJlY3Rpb25hbGl0eTogRGlyZWN0aW9uYWxpdHksXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGV2ZW50RGlzcGF0Y2hlcjogSGVhZGVyUm93RXZlbnREaXNwYXRjaGVyLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVzaXplTm90aWZpZXI6IENvbHVtblJlc2l6ZU5vdGlmaWVyU291cmNlLFxuICAgIHByb3RlY3RlZCByZWFkb25seSByZXNpemVSZWY6IFJlc2l6ZVJlZixcbiAgICBASW5qZWN0KF9DT0FMRVNDRURfU1RZTEVfU0NIRURVTEVSKVxuICAgIHByb3RlY3RlZCByZWFkb25seSBzdHlsZVNjaGVkdWxlcjogX0NvYWxlc2NlZFN0eWxlU2NoZWR1bGVyLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBhbnksXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50O1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZVJlc2l6ZUFjdGl2ZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBzdXBlci51cGRhdGVSZXNpemVBY3RpdmUoYWN0aXZlKTtcblxuICAgIGNvbnN0IG9yaWdpbkhlaWdodCA9IHRoaXMucmVzaXplUmVmLm9yaWdpbi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICB0aGlzLnRvcEVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHtvcmlnaW5IZWlnaHR9cHhgO1xuICAgIHRoaXMucmVzaXplUmVmLm92ZXJsYXlSZWYudXBkYXRlU2l6ZSh7XG4gICAgICBoZWlnaHQ6IGFjdGl2ZVxuICAgICAgICA/ICh0aGlzLmNvbHVtblJlc2l6ZSBhcyBBYnN0cmFjdE1hdENvbHVtblJlc2l6ZSkuZ2V0VGFibGVIZWlnaHQoKVxuICAgICAgICA6IG9yaWdpbkhlaWdodCxcbiAgICB9KTtcbiAgfVxufVxuIl19