@skyux/ag-grid 8.0.0-alpha.2 → 8.0.0-alpha.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/css/sky-ag-grid.css +936 -232
  2. package/documentation.json +668 -689
  3. package/esm2020/lib/modules/ag-grid/ag-grid-adapter.service.mjs +3 -3
  4. package/esm2020/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.mjs +3 -3
  5. package/esm2020/lib/modules/ag-grid/ag-grid-row-delete.component.mjs +3 -3
  6. package/esm2020/lib/modules/ag-grid/ag-grid-row-delete.directive.mjs +57 -53
  7. package/esm2020/lib/modules/ag-grid/ag-grid-wrapper.component.mjs +73 -62
  8. package/esm2020/lib/modules/ag-grid/ag-grid.module.mjs +4 -4
  9. package/esm2020/lib/modules/ag-grid/ag-grid.service.mjs +21 -12
  10. package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.mjs +3 -3
  11. package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.mjs +4 -4
  12. package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.mjs +3 -3
  13. package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.module.mjs +4 -4
  14. package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.mjs +3 -3
  15. package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.module.mjs +4 -4
  16. package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.mjs +3 -3
  17. package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.mjs +4 -4
  18. package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.mjs +3 -3
  19. package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.module.mjs +4 -4
  20. package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.mjs +3 -3
  21. package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.module.mjs +4 -4
  22. package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.mjs +7 -7
  23. package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.mjs +3 -3
  24. package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.mjs +4 -4
  25. package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.mjs +3 -3
  26. package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.mjs +4 -4
  27. package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.mjs +35 -24
  28. package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module.mjs +4 -4
  29. package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.mjs +7 -7
  30. package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module.mjs +4 -4
  31. package/esm2020/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.mjs +11 -11
  32. package/esm2020/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator.module.mjs +4 -4
  33. package/esm2020/lib/modules/ag-grid/header/header-group.component.mjs +4 -4
  34. package/esm2020/lib/modules/ag-grid/header/header.component.mjs +5 -5
  35. package/esm2020/lib/modules/ag-grid/icons/icon-map.mjs +70 -0
  36. package/esm2020/lib/modules/ag-grid/types/header-group-info.mjs +4 -4
  37. package/esm2020/lib/modules/ag-grid/types/header-info.mjs +4 -4
  38. package/esm2020/lib/modules/shared/sky-ag-grid-resources.module.mjs +4 -4
  39. package/fesm2015/skyux-ag-grid.mjs +376 -273
  40. package/fesm2015/skyux-ag-grid.mjs.map +1 -1
  41. package/fesm2020/skyux-ag-grid.mjs +374 -271
  42. package/fesm2020/skyux-ag-grid.mjs.map +1 -1
  43. package/lib/modules/ag-grid/ag-grid-wrapper.component.d.ts +5 -7
  44. package/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.d.ts +3 -4
  45. package/lib/modules/ag-grid/icons/icon-map.d.ts +7 -0
  46. package/package.json +16 -16
@@ -1,52 +1,55 @@
1
- var _SkyAgGridWrapperComponent_instances, _SkyAgGridWrapperComponent_isInEditMode_get, _SkyAgGridWrapperComponent__viewkeeperClasses, _SkyAgGridWrapperComponent_agGridService, _SkyAgGridWrapperComponent_ngUnsubscribe, _SkyAgGridWrapperComponent_themeSvc, _SkyAgGridWrapperComponent_wrapperClasses, _SkyAgGridWrapperComponent_currentTheme, _SkyAgGridWrapperComponent_adapterService, _SkyAgGridWrapperComponent_changeDetector, _SkyAgGridWrapperComponent_parentChangeDetector, _SkyAgGridWrapperComponent_elementRef, _SkyAgGridWrapperComponent_document, _SkyAgGridWrapperComponent_moveHorizontalScroll;
1
+ var _SkyAgGridWrapperComponent_instances, _SkyAgGridWrapperComponent_isInEditMode_get, _SkyAgGridWrapperComponent__viewkeeperClasses, _SkyAgGridWrapperComponent_agGridService, _SkyAgGridWrapperComponent_ngUnsubscribe, _SkyAgGridWrapperComponent_themeSvc, _SkyAgGridWrapperComponent_wrapperClasses, _SkyAgGridWrapperComponent_currentTheme, _SkyAgGridWrapperComponent_adapterService, _SkyAgGridWrapperComponent_changeDetector, _SkyAgGridWrapperComponent_parentChangeDetector, _SkyAgGridWrapperComponent_elementRef, _SkyAgGridWrapperComponent_document, _SkyAgGridWrapperComponent_mutationObserverService, _SkyAgGridWrapperComponent_hasEditableClass, _SkyAgGridWrapperComponent_moveHorizontalScroll, _SkyAgGridWrapperComponent_updateGridTheme;
2
2
  import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
3
  import { DOCUMENT } from '@angular/common';
4
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, HostBinding, Inject, Optional, SkipSelf, } from '@angular/core';
4
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, HostBinding, inject, } from '@angular/core';
5
+ import { SkyMutationObserverService } from '@skyux/core';
6
+ import { SkyThemeService } from '@skyux/theme';
5
7
  import { AgGridAngular } from 'ag-grid-angular';
6
8
  import { BehaviorSubject, Subject } from 'rxjs';
7
- import { takeUntil } from 'rxjs/operators';
9
+ import { take, takeUntil } from 'rxjs/operators';
10
+ import { SkyAgGridAdapterService } from './ag-grid-adapter.service';
11
+ import { SkyAgGridService } from './ag-grid.service';
8
12
  import * as i0 from "@angular/core";
9
- import * as i1 from "./ag-grid-adapter.service";
10
- import * as i2 from "./ag-grid.service";
11
- import * as i3 from "@skyux/theme";
12
- import * as i4 from "@angular/common";
13
- import * as i5 from "@skyux/core";
13
+ import * as i1 from "@angular/common";
14
+ import * as i2 from "@skyux/core";
14
15
  let idIndex = 0;
15
16
  export class SkyAgGridWrapperComponent {
16
- constructor(adapterService, changeDetector, elementRef, document, agGridService, themeSvc, parentChangeDetector) {
17
+ get viewkeeperClasses() {
18
+ return __classPrivateFieldGet(this, _SkyAgGridWrapperComponent__viewkeeperClasses, "f");
19
+ }
20
+ set viewkeeperClasses(value) {
21
+ __classPrivateFieldSet(this, _SkyAgGridWrapperComponent__viewkeeperClasses, value, "f");
22
+ __classPrivateFieldGet(this, _SkyAgGridWrapperComponent_changeDetector, "f").markForCheck();
23
+ }
24
+ constructor() {
17
25
  _SkyAgGridWrapperComponent_instances.add(this);
18
26
  this.isNormalLayout = false;
19
27
  _SkyAgGridWrapperComponent__viewkeeperClasses.set(this, []);
20
- _SkyAgGridWrapperComponent_agGridService.set(this, void 0);
28
+ _SkyAgGridWrapperComponent_agGridService.set(this, inject(SkyAgGridService));
21
29
  _SkyAgGridWrapperComponent_ngUnsubscribe.set(this, new Subject());
22
- _SkyAgGridWrapperComponent_themeSvc.set(this, void 0);
23
- _SkyAgGridWrapperComponent_wrapperClasses.set(this, new BehaviorSubject([`ag-theme-sky-default`]));
30
+ _SkyAgGridWrapperComponent_themeSvc.set(this, inject(SkyThemeService, {
31
+ optional: true,
32
+ }));
33
+ _SkyAgGridWrapperComponent_wrapperClasses.set(this, new BehaviorSubject([
34
+ `ag-theme-sky-data-grid-default`,
35
+ ]));
24
36
  _SkyAgGridWrapperComponent_currentTheme.set(this, undefined);
25
- _SkyAgGridWrapperComponent_adapterService.set(this, void 0);
26
- _SkyAgGridWrapperComponent_changeDetector.set(this, void 0);
27
- _SkyAgGridWrapperComponent_parentChangeDetector.set(this, void 0);
28
- _SkyAgGridWrapperComponent_elementRef.set(this, void 0);
29
- _SkyAgGridWrapperComponent_document.set(this, void 0);
30
- __classPrivateFieldSet(this, _SkyAgGridWrapperComponent_adapterService, adapterService, "f");
31
- __classPrivateFieldSet(this, _SkyAgGridWrapperComponent_changeDetector, changeDetector, "f");
32
- __classPrivateFieldSet(this, _SkyAgGridWrapperComponent_parentChangeDetector, parentChangeDetector, "f");
33
- __classPrivateFieldSet(this, _SkyAgGridWrapperComponent_elementRef, elementRef, "f");
34
- __classPrivateFieldSet(this, _SkyAgGridWrapperComponent_document, document, "f");
37
+ _SkyAgGridWrapperComponent_adapterService.set(this, inject(SkyAgGridAdapterService));
38
+ _SkyAgGridWrapperComponent_changeDetector.set(this, inject(ChangeDetectorRef));
39
+ _SkyAgGridWrapperComponent_parentChangeDetector.set(this, inject(ChangeDetectorRef, {
40
+ optional: true,
41
+ skipSelf: true,
42
+ }));
43
+ _SkyAgGridWrapperComponent_elementRef.set(this, inject(ElementRef));
44
+ _SkyAgGridWrapperComponent_document.set(this, inject(DOCUMENT));
45
+ _SkyAgGridWrapperComponent_mutationObserverService.set(this, inject(SkyMutationObserverService));
46
+ _SkyAgGridWrapperComponent_hasEditableClass.set(this, false);
35
47
  idIndex++;
36
48
  this.afterAnchorId = 'sky-ag-grid-nav-anchor-after-' + idIndex;
37
49
  this.beforeAnchorId = 'sky-ag-grid-nav-anchor-before-' + idIndex;
38
50
  this.gridId = 'sky-ag-grid-' + idIndex;
39
- __classPrivateFieldSet(this, _SkyAgGridWrapperComponent_agGridService, agGridService, "f");
40
- __classPrivateFieldSet(this, _SkyAgGridWrapperComponent_themeSvc, themeSvc, "f");
41
51
  this.wrapperClasses$ = __classPrivateFieldGet(this, _SkyAgGridWrapperComponent_wrapperClasses, "f").asObservable();
42
52
  }
43
- get viewkeeperClasses() {
44
- return __classPrivateFieldGet(this, _SkyAgGridWrapperComponent__viewkeeperClasses, "f");
45
- }
46
- set viewkeeperClasses(value) {
47
- __classPrivateFieldSet(this, _SkyAgGridWrapperComponent__viewkeeperClasses, value, "f");
48
- __classPrivateFieldGet(this, _SkyAgGridWrapperComponent_changeDetector, "f").markForCheck();
49
- }
50
53
  ngAfterContentInit() {
51
54
  if (this.agGrid) {
52
55
  const domLayout = this.agGrid.gridOptions?.domLayout;
@@ -108,19 +111,7 @@ export class SkyAgGridWrapperComponent {
108
111
  __classPrivateFieldGet(this, _SkyAgGridWrapperComponent_themeSvc, "f")?.settingsChange
109
112
  .pipe(takeUntil(__classPrivateFieldGet(this, _SkyAgGridWrapperComponent_ngUnsubscribe, "f")))
110
113
  .subscribe((settings) => {
111
- let agThemeClass;
112
- if (settings.currentSettings.theme.name === 'modern') {
113
- agThemeClass = `ag-theme-sky-modern-${settings.currentSettings.mode.name}`;
114
- }
115
- else {
116
- agThemeClass = `ag-theme-sky-default`;
117
- }
118
- __classPrivateFieldGet(this, _SkyAgGridWrapperComponent_wrapperClasses, "f").next([
119
- ...__classPrivateFieldGet(this, _SkyAgGridWrapperComponent_wrapperClasses, "f")
120
- .getValue()
121
- .filter((c) => !c.startsWith('ag-theme-')),
122
- agThemeClass,
123
- ]);
114
+ __classPrivateFieldGet(this, _SkyAgGridWrapperComponent_instances, "m", _SkyAgGridWrapperComponent_updateGridTheme).call(this, settings.currentSettings);
124
115
  if (!__classPrivateFieldGet(this, _SkyAgGridWrapperComponent_currentTheme, "f")) {
125
116
  // Initial theme settings.
126
117
  __classPrivateFieldSet(this, _SkyAgGridWrapperComponent_currentTheme, settings.currentSettings, "f");
@@ -134,6 +125,23 @@ export class SkyAgGridWrapperComponent {
134
125
  }
135
126
  });
136
127
  }
128
+ ngAfterViewInit() {
129
+ const agGridElement = __classPrivateFieldGet(this, _SkyAgGridWrapperComponent_elementRef, "f").nativeElement.querySelector('ag-grid-angular');
130
+ const callback = () => {
131
+ __classPrivateFieldSet(this, _SkyAgGridWrapperComponent_hasEditableClass, !!agGridElement?.classList.contains('sky-ag-grid-editable'), "f");
132
+ __classPrivateFieldGet(this, _SkyAgGridWrapperComponent_instances, "m", _SkyAgGridWrapperComponent_updateGridTheme).call(this, __classPrivateFieldGet(this, _SkyAgGridWrapperComponent_currentTheme, "f"));
133
+ };
134
+ if (agGridElement) {
135
+ const agGridClassObserver = __classPrivateFieldGet(this, _SkyAgGridWrapperComponent_mutationObserverService, "f").create(callback);
136
+ agGridClassObserver.observe(agGridElement, {
137
+ attributes: true,
138
+ });
139
+ __classPrivateFieldGet(this, _SkyAgGridWrapperComponent_ngUnsubscribe, "f").pipe(take(1)).subscribe(() => {
140
+ agGridClassObserver.disconnect();
141
+ });
142
+ }
143
+ setTimeout(callback);
144
+ }
137
145
  /**
138
146
  * Prevent closing a modal when focused in AG Grid.
139
147
  */
@@ -165,7 +173,7 @@ export class SkyAgGridWrapperComponent {
165
173
  }
166
174
  }
167
175
  }
168
- _SkyAgGridWrapperComponent__viewkeeperClasses = new WeakMap(), _SkyAgGridWrapperComponent_agGridService = new WeakMap(), _SkyAgGridWrapperComponent_ngUnsubscribe = new WeakMap(), _SkyAgGridWrapperComponent_themeSvc = new WeakMap(), _SkyAgGridWrapperComponent_wrapperClasses = new WeakMap(), _SkyAgGridWrapperComponent_currentTheme = new WeakMap(), _SkyAgGridWrapperComponent_adapterService = new WeakMap(), _SkyAgGridWrapperComponent_changeDetector = new WeakMap(), _SkyAgGridWrapperComponent_parentChangeDetector = new WeakMap(), _SkyAgGridWrapperComponent_elementRef = new WeakMap(), _SkyAgGridWrapperComponent_document = new WeakMap(), _SkyAgGridWrapperComponent_instances = new WeakSet(), _SkyAgGridWrapperComponent_isInEditMode_get = function _SkyAgGridWrapperComponent_isInEditMode_get() {
176
+ _SkyAgGridWrapperComponent__viewkeeperClasses = new WeakMap(), _SkyAgGridWrapperComponent_agGridService = new WeakMap(), _SkyAgGridWrapperComponent_ngUnsubscribe = new WeakMap(), _SkyAgGridWrapperComponent_themeSvc = new WeakMap(), _SkyAgGridWrapperComponent_wrapperClasses = new WeakMap(), _SkyAgGridWrapperComponent_currentTheme = new WeakMap(), _SkyAgGridWrapperComponent_adapterService = new WeakMap(), _SkyAgGridWrapperComponent_changeDetector = new WeakMap(), _SkyAgGridWrapperComponent_parentChangeDetector = new WeakMap(), _SkyAgGridWrapperComponent_elementRef = new WeakMap(), _SkyAgGridWrapperComponent_document = new WeakMap(), _SkyAgGridWrapperComponent_mutationObserverService = new WeakMap(), _SkyAgGridWrapperComponent_hasEditableClass = new WeakMap(), _SkyAgGridWrapperComponent_instances = new WeakSet(), _SkyAgGridWrapperComponent_isInEditMode_get = function _SkyAgGridWrapperComponent_isInEditMode_get() {
169
177
  /* istanbul ignore else */
170
178
  if (this.agGrid && this.agGrid.api) {
171
179
  const primaryGridEditing = this.agGrid.api.getEditingCells().length > 0;
@@ -210,25 +218,28 @@ _SkyAgGridWrapperComponent__viewkeeperClasses = new WeakMap(), _SkyAgGridWrapper
210
218
  }
211
219
  }
212
220
  }
221
+ }, _SkyAgGridWrapperComponent_updateGridTheme = function _SkyAgGridWrapperComponent_updateGridTheme(themeSettings) {
222
+ let agTheme;
223
+ if (themeSettings?.theme.name === 'modern') {
224
+ agTheme = `modern-${themeSettings.mode.name}`;
225
+ }
226
+ else {
227
+ agTheme = `default`;
228
+ }
229
+ const variation = __classPrivateFieldGet(this, _SkyAgGridWrapperComponent_hasEditableClass, "f") ? 'data-entry-grid' : 'data-grid';
230
+ __classPrivateFieldGet(this, _SkyAgGridWrapperComponent_wrapperClasses, "f").next([
231
+ ...__classPrivateFieldGet(this, _SkyAgGridWrapperComponent_wrapperClasses, "f")
232
+ .getValue()
233
+ .filter((c) => !c.startsWith('ag-theme-')),
234
+ `ag-theme-sky-${variation}-${agTheme}`,
235
+ ]);
213
236
  };
214
- SkyAgGridWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyAgGridWrapperComponent, deps: [{ token: i1.SkyAgGridAdapterService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: DOCUMENT }, { token: i2.SkyAgGridService }, { token: i3.SkyThemeService, optional: true }, { token: ChangeDetectorRef, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
215
- SkyAgGridWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: SkyAgGridWrapperComponent, selector: "sky-ag-grid-wrapper", host: { properties: { "class.sky-ag-grid-layout-normal": "this.isNormalLayout" } }, queries: [{ propertyName: "agGrid", first: true, predicate: AgGridAngular, descendants: true, static: true }], ngImport: i0, template: "<span\n class=\"nav-anchor\"\n tabindex=\"0\"\n [id]=\"beforeAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n<div\n class=\"sky-ag-grid\"\n [class.sky-ag-grid-top-scrollbar]=\"\n agGrid?.gridOptions?.context &&\n agGrid?.gridOptions?.context['enableTopScroll']\n \"\n [ngClass]=\"wrapperClasses$ | async\"\n tabindex=\"0\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n (keydown)=\"onGridKeydown($event)\"\n (keyup.escape)=\"onKeyUpEscape($event)\"\n>\n <ng-content></ng-content>\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyAgGridWrapperComponent, decorators: [{
237
+ SkyAgGridWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyAgGridWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
238
+ SkyAgGridWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyAgGridWrapperComponent, selector: "sky-ag-grid-wrapper", host: { properties: { "class.sky-ag-grid-layout-normal": "this.isNormalLayout" } }, queries: [{ propertyName: "agGrid", first: true, predicate: AgGridAngular, descendants: true, static: true }], ngImport: i0, template: "<span\n class=\"nav-anchor\"\n tabindex=\"0\"\n [id]=\"beforeAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n<div\n class=\"sky-ag-grid\"\n [class.sky-ag-grid-top-scrollbar]=\"\n agGrid?.gridOptions?.context &&\n agGrid?.gridOptions?.context['enableTopScroll']\n \"\n [ngClass]=\"wrapperClasses$ | async\"\n tabindex=\"0\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n (keydown)=\"onGridKeydown($event)\"\n (keyup.escape)=\"onKeyUpEscape($event)\"\n>\n <ng-content></ng-content>\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
239
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyAgGridWrapperComponent, decorators: [{
217
240
  type: Component,
218
241
  args: [{ selector: 'sky-ag-grid-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n class=\"nav-anchor\"\n tabindex=\"0\"\n [id]=\"beforeAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n<div\n class=\"sky-ag-grid\"\n [class.sky-ag-grid-top-scrollbar]=\"\n agGrid?.gridOptions?.context &&\n agGrid?.gridOptions?.context['enableTopScroll']\n \"\n [ngClass]=\"wrapperClasses$ | async\"\n tabindex=\"0\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n (keydown)=\"onGridKeydown($event)\"\n (keyup.escape)=\"onKeyUpEscape($event)\"\n>\n <ng-content></ng-content>\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n" }]
219
- }], ctorParameters: function () { return [{ type: i1.SkyAgGridAdapterService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: Document, decorators: [{
220
- type: Inject,
221
- args: [DOCUMENT]
222
- }] }, { type: i2.SkyAgGridService }, { type: i3.SkyThemeService, decorators: [{
223
- type: Optional
224
- }] }, { type: i0.ChangeDetectorRef, decorators: [{
225
- type: Optional
226
- }, {
227
- type: SkipSelf
228
- }, {
229
- type: Inject,
230
- args: [ChangeDetectorRef]
231
- }] }]; }, propDecorators: { agGrid: [{
242
+ }], ctorParameters: function () { return []; }, propDecorators: { agGrid: [{
232
243
  type: ContentChild,
233
244
  args: [AgGridAngular, {
234
245
  static: true,
@@ -237,4 +248,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
237
248
  type: HostBinding,
238
249
  args: ['class.sky-ag-grid-layout-normal']
239
250
  }] } });
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFFWixXQUFXLEVBQ1gsTUFBTSxFQUdOLFFBQVEsRUFDUixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQUszQyxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7QUFPaEIsTUFBTSxPQUFPLHlCQUF5QjtJQTJEcEMsWUFDRSxjQUF1QyxFQUN2QyxjQUFpQyxFQUNqQyxVQUFzQixFQUNKLFFBQWtCLEVBQ3BDLGFBQStCLEVBQ25CLFFBQTBCLEVBSXRDLG9CQUF3Qzs7UUE1RG5DLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBcUM5Qix3REFBZ0MsRUFBRSxFQUFDO1FBRW5DLDJEQUFpQztRQUNqQyxtREFBaUIsSUFBSSxPQUFPLEVBQVEsRUFBQztRQUNyQyxzREFBdUM7UUFDdkMsb0RBQWtCLElBQUksZUFBZSxDQUFXLENB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QUksQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFO2dCQUMxQixNQUFNLFFBQVEsR0FBRyx1QkFBQSxJQUFJLDJDQUFVLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDekQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDaEMsY0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNoQztTQUNGO0tBQ0Y7QUFDSCxDQUFDO3NIQW5RVSx5QkFBeUIsb0hBK0QxQixRQUFRLDRGQUtSLGlCQUFpQjswR0FwRWhCLHlCQUF5QixtTEFHdEIsYUFBYSw4RENuQzdCLHdwQkE2QkE7MkZER2EseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHFCQUFxQixtQkFFZCx1QkFBdUIsQ0FBQyxNQUFNOzswQkFpRTVDLE1BQU07MkJBQUMsUUFBUTs7MEJBRWYsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxpQkFBaUI7NENBOURwQixNQUFNO3NCQUhaLFlBQVk7dUJBQUMsYUFBYSxFQUFFO3dCQUMzQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFJTSxjQUFjO3NCQURwQixXQUFXO3VCQUFDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU2tpcFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5VGhlbWVTZXJ2aWNlLCBTa3lUaGVtZVNldHRpbmdzIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBDZWxsRWRpdGluZ1N0YXJ0ZWRFdmVudCwgRGV0YWlsR3JpZEluZm8gfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2FnLWdyaWQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreUFnR3JpZFNlcnZpY2UgfSBmcm9tICcuL2FnLWdyaWQuc2VydmljZSc7XG5cbmxldCBpZEluZGV4ID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSwgT25Jbml0XG57XG4gIEBDb250ZW50Q2hpbGQoQWdHcmlkQW5ndWxhciwge1xuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGFnR3JpZDogQWdHcmlkQW5ndWxhciB8IHVuZGVmaW5lZDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1hZy1ncmlkLWxheW91dC1ub3JtYWwnKVxuICBwdWJsaWMgaXNOb3JtYWxMYXlvdXQgPSBmYWxzZTtcblxuICBwdWJsaWMgYWZ0ZXJBbmNob3JJZDogc3RyaW5nO1xuICBwdWJsaWMgYmVmb3JlQW5jaG9ySWQ6IHN0cmluZztcbiAgcHVibGljIGdyaWRJZDogc3RyaW5nO1xuICBwdWJsaWMgd3JhcHBlckNsYXNzZXMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICBwdWJsaWMgZ2V0IHZpZXdrZWVwZXJDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy4jX3ZpZXdrZWVwZXJDbGFzc2VzO1xuICB9XG5cbiAgcHVibGljIHNldCB2aWV3a2VlcGVyQ2xhc3Nlcyh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICB0aGlzLiNfdmlld2tlZXBlckNsYXNzZXMgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCAjaXNJbkVkaXRNb2RlKCk6IGJvb2xlYW4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuYWdHcmlkICYmIHRoaXMuYWdHcmlkLmFwaSkge1xuICAgICAgY29uc3QgcHJpbWFyeUdyaWRFZGl0aW5nID0gdGhpcy5hZ0dyaWQuYXBpLmdldEVkaXRpbmdDZWxscygpLmxlbmd0aCA+IDA7XG4gICAgICBpZiAocHJpbWFyeUdyaWRFZGl0aW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGlubmVyRWRpdGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFnR3JpZC5hcGkuZm9yRWFjaERldGFpbEdyaWRJbmZvKChkZXRhaWxHcmlkOiBEZXRhaWxHcmlkSW5mbykgPT4ge1xuICAgICAgICAgIGlmIChkZXRhaWxHcmlkPy5hcGkgJiYgZGV0YWlsR3JpZC5hcGkuZ2V0RWRpdGluZ0NlbGxzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaW5uZXJFZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBpbm5lckVkaXRpbmc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAjX3ZpZXdrZWVwZXJDbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICNhZ0dyaWRTZXJ2aWNlOiBTa3lBZ0dyaWRTZXJ2aWNlO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICN0aGVtZVN2YzogU2t5VGhlbWVTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuICAjd3JhcHBlckNsYXNzZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPihbYGFnLXRoZW1lLXNreS1kZWZhdWx0YF0pO1xuICAjY3VycmVudFRoZW1lOiBTa3lUaGVtZVNldHRpbmdzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAjYWRhcHRlclNlcnZpY2U6IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlO1xuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuICAjcGFyZW50Q2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmIHwgdW5kZWZpbmVkO1xuICAjZWxlbWVudFJlZjogRWxlbWVudFJlZjtcbiAgI2RvY3VtZW50OiBEb2N1bWVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhZGFwdGVyU2VydmljZTogU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UsXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIGFnR3JpZFNlcnZpY2U6IFNreUFnR3JpZFNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgdGhlbWVTdmM/OiBTa3lUaGVtZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKClcbiAgICBAU2tpcFNlbGYoKVxuICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpXG4gICAgcGFyZW50Q2hhbmdlRGV0ZWN0b3I/OiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZSA9IGFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jcGFyZW50Q2hhbmdlRGV0ZWN0b3IgPSBwYXJlbnRDaGFuZ2VEZXRlY3RvcjtcbiAgICB0aGlzLiNlbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgICB0aGlzLiNkb2N1bWVudCA9IGRvY3VtZW50O1xuXG4gICAgaWRJbmRleCsrO1xuICAgIHRoaXMuYWZ0ZXJBbmNob3JJZCA9ICdza3ktYWctZ3JpZC1uYXYtYW5jaG9yLWFmdGVyLScgKyBpZEluZGV4O1xuICAgIHRoaXMuYmVmb3JlQW5jaG9ySWQgPSAnc2t5LWFnLWdyaWQtbmF2LWFuY2hvci1iZWZvcmUtJyArIGlkSW5kZXg7XG4gICAgdGhpcy5ncmlkSWQgPSAnc2t5LWFnLWdyaWQtJyArIGlkSW5kZXg7XG4gICAgdGhpcy4jYWdHcmlkU2VydmljZSA9IGFnR3JpZFNlcnZpY2U7XG4gICAgdGhpcy4jdGhlbWVTdmMgPSB0aGVtZVN2YztcbiAgICB0aGlzLndyYXBwZXJDbGFzc2VzJCA9IHRoaXMuI3dyYXBwZXJDbGFzc2VzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQpIHtcbiAgICAgIGNvbnN0IGRvbUxheW91dCA9IHRoaXMuYWdHcmlkLmdyaWRPcHRpb25zPy5kb21MYXlvdXQ7XG4gICAgICBpZiAoZG9tTGF5b3V0ID09PSAnYXV0b0hlaWdodCcpIHtcbiAgICAgICAgaWYgKHRoaXMuYWdHcmlkLmdyaWRPcHRpb25zLmNvbnRleHQ/LmVuYWJsZVRvcFNjcm9sbCkge1xuICAgICAgICAgIHRoaXMudmlld2tlZXBlckNsYXNzZXMucHVzaChcbiAgICAgICAgICAgICcuYWctaGVhZGVyJyxcbiAgICAgICAgICAgICcuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCdcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmlld2tlZXBlckNsYXNzZXMucHVzaCgnLmFnLWhlYWRlcicpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGRvbUxheW91dCA9PT0gJ25vcm1hbCcpIHtcbiAgICAgICAgdGhpcy5pc05vcm1hbExheW91dCA9IHRydWU7XG4gICAgICAgIHRoaXMuI3BhcmVudENoYW5nZURldGVjdG9yPy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmFnR3JpZC5ncmlkUmVhZHlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmZpcnN0RGF0YVJlbmRlcmVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbW92ZUhvcml6b250YWxTY3JvbGwoKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5yb3dEYXRhVXBkYXRlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQuY2VsbEVkaXRpbmdTdGFydGVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgocGFyYW1zOiBDZWxsRWRpdGluZ1N0YXJ0ZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChwYXJhbXMuY29sRGVmLnR5cGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVzID0gQXJyYXkuaXNBcnJheShwYXJhbXMuY29sRGVmLnR5cGUpXG4gICAgICAgICAgICAgID8gcGFyYW1zLmNvbERlZi50eXBlXG4gICAgICAgICAgICAgIDogW3BhcmFtcy5jb2xEZWYudHlwZV07XG4gICAgICAgICAgICBjb25zdCBhZGRDbGFzc2VzID0gdHlwZXMubWFwKFxuICAgICAgICAgICAgICAodCkgPT4gYHNreS1hZy1ncmlkLWNlbGwtZWRpdGluZy0ke3R9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLm5leHQoW1xuICAgICAgICAgICAgICAuLi50aGlzLiN3cmFwcGVyQ2xhc3Nlcy5nZXRWYWx1ZSgpLFxuICAgICAgICAgICAgICAuLi5hZGRDbGFzc2VzLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmNlbGxFZGl0aW5nU3RvcHBlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLm5leHQoXG4gICAgICAgICAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlc1xuICAgICAgICAgICAgICAuZ2V0VmFsdWUoKVxuICAgICAgICAgICAgICAuZmlsdGVyKChjKSA9PiBjLnN0YXJ0c1dpdGgoJ2FnLXRoZW1lLScpKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jdGhlbWVTdmM/LnNldHRpbmdzQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChzZXR0aW5ncykgPT4ge1xuICAgICAgICBsZXQgYWdUaGVtZUNsYXNzOiBzdHJpbmc7XG4gICAgICAgIGlmIChzZXR0aW5ncy5jdXJyZW50U2V0dGluZ3MudGhlbWUubmFtZSA9PT0gJ21vZGVybicpIHtcbiAgICAgICAgICBhZ1RoZW1lQ2xhc3MgPSBgYWctdGhlbWUtc2t5LW1vZGVybi0ke3NldHRpbmdzLmN1cnJlbnRTZXR0aW5ncy5tb2RlLm5hbWV9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhZ1RoZW1lQ2xhc3MgPSBgYWctdGhlbWUtc2t5LWRlZmF1bHRgO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLm5leHQoW1xuICAgICAgICAgIC4uLnRoaXMuI3dyYXBwZXJDbGFzc2VzXG4gICAgICAgICAgICAuZ2V0VmFsdWUoKVxuICAgICAgICAgICAgLmZpbHRlcigoYykgPT4gIWMuc3RhcnRzV2l0aCgnYWctdGhlbWUtJykpLFxuICAgICAgICAgIGFnVGhlbWVDbGFzcyxcbiAgICAgICAgXSk7XG4gICAgICAgIGlmICghdGhpcy4jY3VycmVudFRoZW1lKSB7XG4gICAgICAgICAgLy8gSW5pdGlhbCB0aGVtZSBzZXR0aW5ncy5cbiAgICAgICAgICB0aGlzLiNjdXJyZW50VGhlbWUgPSBzZXR0aW5ncy5jdXJyZW50U2V0dGluZ3M7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5hZ0dyaWQ/LmFwaSkge1xuICAgICAgICAgIC8vIE9uIHN1YnNlcXVlbnQgdGhlbWUgY2hhbmdlcywgd2UgbmVlZCB0byBjYWxsIHRoZSBhcGkgdG8gcmUtcmVuZGVyIHRoZSBncmlkLlxuICAgICAgICAgIHRoaXMuI2N1cnJlbnRUaGVtZSA9IHNldHRpbmdzLmN1cnJlbnRTZXR0aW5ncztcbiAgICAgICAgICB0aGlzLmFnR3JpZC5hcGkuc2V0SGVhZGVySGVpZ2h0KFxuICAgICAgICAgICAgdGhpcy4jYWdHcmlkU2VydmljZS5nZXRIZWFkZXJIZWlnaHQoKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5hZ0dyaWQuYXBpLnJlc2V0Um93SGVpZ2h0cygpO1xuICAgICAgICAgIHRoaXMuYWdHcmlkLmFwaS5yZWZyZXNoQ2VsbHMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUHJldmVudCBjbG9zaW5nIGEgbW9kYWwgd2hlbiBmb2N1c2VkIGluIEFHIEdyaWQuXG4gICAqL1xuICBwdWJsaWMgb25LZXlVcEVzY2FwZSgkZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuYWdHcmlkPy5hcGkuc3RvcEVkaXRpbmcodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25HcmlkS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFnR3JpZCAmJiAhdGhpcy4jaXNJbkVkaXRNb2RlICYmIGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgIGNvbnN0IGlkVG9Gb2N1cyA9IGV2ZW50LnNoaWZ0S2V5XG4gICAgICAgID8gdGhpcy5iZWZvcmVBbmNob3JJZFxuICAgICAgICA6IHRoaXMuYWZ0ZXJBbmNob3JJZDtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLnNldEZvY3VzZWRFbGVtZW50QnlJZChcbiAgICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICBpZFRvRm9jdXNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQW5jaG9yRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBncmlkSWQgPSB0aGlzLmdyaWRJZDtcbiAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0gZXZlbnQucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBwcmV2aW91c0ZvY3VzZWRJZCA9IHJlbGF0ZWRUYXJnZXQgJiYgcmVsYXRlZFRhcmdldC5pZDtcbiAgICBjb25zdCBwcmV2aW91c1dhc0NlbGwgPVxuICAgICAgcmVsYXRlZFRhcmdldCAmJlxuICAgICAgISF0aGlzLiNhZGFwdGVyU2VydmljZS5nZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoXG4gICAgICAgIHJlbGF0ZWRUYXJnZXQsXG4gICAgICAgICdhZy1jZWxsJ1xuICAgICAgKTtcblxuICAgIGlmIChwcmV2aW91c0ZvY3VzZWRJZCAhPT0gZ3JpZElkICYmICFwcmV2aW91c1dhc0NlbGwpIHtcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmFnR3JpZD8uY29sdW1uQXBpLmdldEFsbERpc3BsYXllZENvbHVtbnMoKTtcbiAgICAgIGNvbnN0IGZpcnN0Q29sdW1uID0gY29sdW1ucz8uWzBdO1xuICAgICAgY29uc3Qgcm93SW5kZXggPSB0aGlzLmFnR3JpZD8uYXBpLmdldEZpcnN0RGlzcGxheWVkUm93KCk7XG5cbiAgICAgIGlmIChmaXJzdENvbHVtbiAmJiByb3dJbmRleCAhPT0gdW5kZWZpbmVkICYmIHJvd0luZGV4ID49IDApIHtcbiAgICAgICAgdGhpcy5hZ0dyaWQ/LmFwaS5zZXRGb2N1c2VkQ2VsbChyb3dJbmRleCwgZmlyc3RDb2x1bW4pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQgJiYgdGhpcy5hZ0dyaWQuYXBpKSB7XG4gICAgICBjb25zdCB0b1RvcCA9ICEhdGhpcy5hZ0dyaWQuZ3JpZE9wdGlvbnMuY29udGV4dD8uZW5hYmxlVG9wU2Nyb2xsO1xuICAgICAgY29uc3Qgcm9vdDogSFRNTEVsZW1lbnQgPVxuICAgICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmFnLXJvb3QnKTtcbiAgICAgIGNvbnN0IGhlYWRlcjogSFRNTERpdkVsZW1lbnQgfCBudWxsID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcuYWctaGVhZGVyJyk7XG4gICAgICBjb25zdCBmbG9hdGluZ0JvdHRvbTogSFRNTERpdkVsZW1lbnQgfCBudWxsID0gcm9vdC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnLmFnLWZsb2F0aW5nLWJvdHRvbSdcbiAgICAgICk7XG4gICAgICBjb25zdCBzY3JvbGxiYXI6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCA9IHJvb3QucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJ1xuICAgICAgKTtcbiAgICAgIGlmIChoZWFkZXIgJiYgZmxvYXRpbmdCb3R0b20gJiYgc2Nyb2xsYmFyKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBzY3JvbGxiYXIuc3R5bGUuaGVpZ2h0ICE9PVxuICAgICAgICAgIHNjcm9sbGJhci5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKFxuICAgICAgICAgICAgJy0tc2t5LWFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwtd2lkdGgnXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICBzY3JvbGxiYXIuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAnLS1za3ktYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbC13aWR0aCcsXG4gICAgICAgICAgICBzY3JvbGxiYXIuc3R5bGUuaGVpZ2h0XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc1RvcCA9ICEhcm9vdC5jaGlsZHJlblsxXS5tYXRjaGVzKCcuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCcpO1xuICAgICAgICBpZiAodG9Ub3AgJiYgIWlzVG9wKSB7XG4gICAgICAgICAgY29uc3QgZnJhZ21lbnQgPSB0aGlzLiNkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoc2Nyb2xsYmFyKTtcbiAgICAgICAgICBoZWFkZXIuYWZ0ZXIoZnJhZ21lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKCF0b1RvcCAmJiBpc1RvcCkge1xuICAgICAgICAgIGNvbnN0IGZyYWdtZW50ID0gdGhpcy4jZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKHNjcm9sbGJhcik7XG4gICAgICAgICAgZmxvYXRpbmdCb3R0b20uYWZ0ZXIoZnJhZ21lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8c3BhblxuICBjbGFzcz1cIm5hdi1hbmNob3JcIlxuICB0YWJpbmRleD1cIjBcIlxuICBbaWRdPVwiYmVmb3JlQW5jaG9ySWRcIlxuICAoZm9jdXNpbik9XCJvbkFuY2hvckZvY3VzKCRldmVudClcIlxuPlxuPC9zcGFuPlxuPGRpdlxuICBjbGFzcz1cInNreS1hZy1ncmlkXCJcbiAgW2NsYXNzLnNreS1hZy1ncmlkLXRvcC1zY3JvbGxiYXJdPVwiXG4gICAgYWdHcmlkPy5ncmlkT3B0aW9ucz8uY29udGV4dCAmJlxuICAgIGFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHRbJ2VuYWJsZVRvcFNjcm9sbCddXG4gIFwiXG4gIFtuZ0NsYXNzXT1cIndyYXBwZXJDbGFzc2VzJCB8IGFzeW5jXCJcbiAgdGFiaW5kZXg9XCIwXCJcbiAgW2lkXT1cImdyaWRJZFwiXG4gIFtza3lWaWV3a2VlcGVyXT1cInZpZXdrZWVwZXJDbGFzc2VzXCJcbiAgKGtleWRvd24pPVwib25HcmlkS2V5ZG93bigkZXZlbnQpXCJcbiAgKGtleXVwLmVzY2FwZSk9XCJvbktleVVwRXNjYXBlKCRldmVudClcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxzcGFuXG4gIHRhYmluZGV4PVwiMFwiXG4gIGNsYXNzPVwibmF2LWFuY2hvclwiXG4gIFtpZF09XCJhZnRlckFuY2hvcklkXCJcbiAgKGZvY3VzaW4pPVwib25BbmNob3JGb2N1cygkZXZlbnQpXCJcbj5cbjwvc3Bhbj5cbiJdfQ==
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUdMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUdYLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBb0IsTUFBTSxjQUFjLENBQUM7QUFFakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFFckQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBT2hCLE1BQU0sT0FBTyx5QkFBeUI7SUFnQnBDLElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sdUJBQUEsSUFBSSxxREFBb0IsQ0FBQztJQUNsQyxD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LGlCQUFpQixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDM0UsdUJBQUEsSUFBSSxpREFBZ0IsQ0FBQyxJQUFJLENBQUM7UUFDeEIsR0FBRyx1QkFBQSxJQUFJLGlEQUFnQjthQUNwQixRQUFRLEVBQUU7YUFDVixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxnQkFBZ0IsU0FBUyxJQUFJLE9BQU8sRUFBRTtLQUN2QyxDQUFDLENBQUM7QUFDTCxDQUFDO3NIQXRSVSx5QkFBeUI7MEdBQXpCLHlCQUF5QixtTEFHdEIsYUFBYSw4RENuQzdCLHdwQkE2QkE7MkZER2EseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHFCQUFxQixtQkFFZCx1QkFBdUIsQ0FBQyxNQUFNOzBFQVF4QyxNQUFNO3NCQUhaLFlBQVk7dUJBQUMsYUFBYSxFQUFFO3dCQUMzQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFJTSxjQUFjO3NCQURwQixXQUFXO3VCQUFDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreU11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5VGhlbWVTZXJ2aWNlLCBTa3lUaGVtZVNldHRpbmdzIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBDZWxsRWRpdGluZ1N0YXJ0ZWRFdmVudCwgRGV0YWlsR3JpZEluZm8gfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2FnLWdyaWQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreUFnR3JpZFNlcnZpY2UgfSBmcm9tICcuL2FnLWdyaWQuc2VydmljZSc7XG5cbmxldCBpZEluZGV4ID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0XG57XG4gIEBDb250ZW50Q2hpbGQoQWdHcmlkQW5ndWxhciwge1xuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGFnR3JpZDogQWdHcmlkQW5ndWxhciB8IHVuZGVmaW5lZDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1hZy1ncmlkLWxheW91dC1ub3JtYWwnKVxuICBwdWJsaWMgaXNOb3JtYWxMYXlvdXQgPSBmYWxzZTtcblxuICBwdWJsaWMgYWZ0ZXJBbmNob3JJZDogc3RyaW5nO1xuICBwdWJsaWMgYmVmb3JlQW5jaG9ySWQ6IHN0cmluZztcbiAgcHVibGljIGdyaWRJZDogc3RyaW5nO1xuICBwdWJsaWMgd3JhcHBlckNsYXNzZXMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICBwdWJsaWMgZ2V0IHZpZXdrZWVwZXJDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy4jX3ZpZXdrZWVwZXJDbGFzc2VzO1xuICB9XG5cbiAgcHVibGljIHNldCB2aWV3a2VlcGVyQ2xhc3Nlcyh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICB0aGlzLiNfdmlld2tlZXBlckNsYXNzZXMgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCAjaXNJbkVkaXRNb2RlKCk6IGJvb2xlYW4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuYWdHcmlkICYmIHRoaXMuYWdHcmlkLmFwaSkge1xuICAgICAgY29uc3QgcHJpbWFyeUdyaWRFZGl0aW5nID0gdGhpcy5hZ0dyaWQuYXBpLmdldEVkaXRpbmdDZWxscygpLmxlbmd0aCA+IDA7XG4gICAgICBpZiAocHJpbWFyeUdyaWRFZGl0aW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGlubmVyRWRpdGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFnR3JpZC5hcGkuZm9yRWFjaERldGFpbEdyaWRJbmZvKChkZXRhaWxHcmlkOiBEZXRhaWxHcmlkSW5mbykgPT4ge1xuICAgICAgICAgIGlmIChkZXRhaWxHcmlkPy5hcGkgJiYgZGV0YWlsR3JpZC5hcGkuZ2V0RWRpdGluZ0NlbGxzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaW5uZXJFZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBpbm5lckVkaXRpbmc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAjX3ZpZXdrZWVwZXJDbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICNhZ0dyaWRTZXJ2aWNlID0gaW5qZWN0KFNreUFnR3JpZFNlcnZpY2UpO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICN0aGVtZVN2YyA9IGluamVjdChTa3lUaGVtZVNlcnZpY2UsIHtcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgfSk7XG4gICN3cmFwcGVyQ2xhc3NlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KFtcbiAgICBgYWctdGhlbWUtc2t5LWRhdGEtZ3JpZC1kZWZhdWx0YCxcbiAgXSk7XG4gICNjdXJyZW50VGhlbWU6IFNreVRoZW1lU2V0dGluZ3MgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICNhZGFwdGVyU2VydmljZSA9IGluamVjdChTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSk7XG4gICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICNwYXJlbnRDaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZiwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHNraXBTZWxmOiB0cnVlLFxuICB9KTtcbiAgI2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICNkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gICNtdXRhdGlvbk9ic2VydmVyU2VydmljZSA9IGluamVjdChTa3lNdXRhdGlvbk9ic2VydmVyU2VydmljZSk7XG4gICNoYXNFZGl0YWJsZUNsYXNzID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWRJbmRleCsrO1xuICAgIHRoaXMuYWZ0ZXJBbmNob3JJZCA9ICdza3ktYWctZ3JpZC1uYXYtYW5jaG9yLWFmdGVyLScgKyBpZEluZGV4O1xuICAgIHRoaXMuYmVmb3JlQW5jaG9ySWQgPSAnc2t5LWFnLWdyaWQtbmF2LWFuY2hvci1iZWZvcmUtJyArIGlkSW5kZXg7XG4gICAgdGhpcy5ncmlkSWQgPSAnc2t5LWFnLWdyaWQtJyArIGlkSW5kZXg7XG4gICAgdGhpcy53cmFwcGVyQ2xhc3NlcyQgPSB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWdHcmlkKSB7XG4gICAgICBjb25zdCBkb21MYXlvdXQgPSB0aGlzLmFnR3JpZC5ncmlkT3B0aW9ucz8uZG9tTGF5b3V0O1xuICAgICAgaWYgKGRvbUxheW91dCA9PT0gJ2F1dG9IZWlnaHQnKSB7XG4gICAgICAgIGlmICh0aGlzLmFnR3JpZC5ncmlkT3B0aW9ucy5jb250ZXh0Py5lbmFibGVUb3BTY3JvbGwpIHtcbiAgICAgICAgICB0aGlzLnZpZXdrZWVwZXJDbGFzc2VzLnB1c2goXG4gICAgICAgICAgICAnLmFnLWhlYWRlcicsXG4gICAgICAgICAgICAnLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwnXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZXdrZWVwZXJDbGFzc2VzLnB1c2goJy5hZy1oZWFkZXInKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChkb21MYXlvdXQgPT09ICdub3JtYWwnKSB7XG4gICAgICAgIHRoaXMuaXNOb3JtYWxMYXlvdXQgPSB0cnVlO1xuICAgICAgICB0aGlzLiNwYXJlbnRDaGFuZ2VEZXRlY3Rvcj8uZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgICAgdGhpcy5hZ0dyaWQuZ3JpZFJlYWR5XG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbW92ZUhvcml6b250YWxTY3JvbGwoKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5maXJzdERhdGFSZW5kZXJlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQucm93RGF0YVVwZGF0ZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmNlbGxFZGl0aW5nU3RhcnRlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHBhcmFtczogQ2VsbEVkaXRpbmdTdGFydGVkRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAocGFyYW1zLmNvbERlZi50eXBlKSB7XG4gICAgICAgICAgICBjb25zdCB0eXBlcyA9IEFycmF5LmlzQXJyYXkocGFyYW1zLmNvbERlZi50eXBlKVxuICAgICAgICAgICAgICA/IHBhcmFtcy5jb2xEZWYudHlwZVxuICAgICAgICAgICAgICA6IFtwYXJhbXMuY29sRGVmLnR5cGVdO1xuICAgICAgICAgICAgY29uc3QgYWRkQ2xhc3NlcyA9IHR5cGVzLm1hcChcbiAgICAgICAgICAgICAgKHQpID0+IGBza3ktYWctZ3JpZC1jZWxsLWVkaXRpbmctJHt0fWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5uZXh0KFtcbiAgICAgICAgICAgICAgLi4udGhpcy4jd3JhcHBlckNsYXNzZXMuZ2V0VmFsdWUoKSxcbiAgICAgICAgICAgICAgLi4uYWRkQ2xhc3NlcyxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5jZWxsRWRpdGluZ1N0b3BwZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5uZXh0KFxuICAgICAgICAgICAgdGhpcy4jd3JhcHBlckNsYXNzZXNcbiAgICAgICAgICAgICAgLmdldFZhbHVlKClcbiAgICAgICAgICAgICAgLmZpbHRlcigoYykgPT4gYy5zdGFydHNXaXRoKCdhZy10aGVtZS0nKSlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI3RoZW1lU3ZjPy5zZXR0aW5nc0NoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoc2V0dGluZ3MpID0+IHtcbiAgICAgICAgdGhpcy4jdXBkYXRlR3JpZFRoZW1lKHNldHRpbmdzLmN1cnJlbnRTZXR0aW5ncyk7XG4gICAgICAgIGlmICghdGhpcy4jY3VycmVudFRoZW1lKSB7XG4gICAgICAgICAgLy8gSW5pdGlhbCB0aGVtZSBzZXR0aW5ncy5cbiAgICAgICAgICB0aGlzLiNjdXJyZW50VGhlbWUgPSBzZXR0aW5ncy5jdXJyZW50U2V0dGluZ3M7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5hZ0dyaWQ/LmFwaSkge1xuICAgICAgICAgIC8vIE9uIHN1YnNlcXVlbnQgdGhlbWUgY2hhbmdlcywgd2UgbmVlZCB0byBjYWxsIHRoZSBhcGkgdG8gcmUtcmVuZGVyIHRoZSBncmlkLlxuICAgICAgICAgIHRoaXMuI2N1cnJlbnRUaGVtZSA9IHNldHRpbmdzLmN1cnJlbnRTZXR0aW5ncztcbiAgICAgICAgICB0aGlzLmFnR3JpZC5hcGkuc2V0SGVhZGVySGVpZ2h0KFxuICAgICAgICAgICAgdGhpcy4jYWdHcmlkU2VydmljZS5nZXRIZWFkZXJIZWlnaHQoKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5hZ0dyaWQuYXBpLnJlc2V0Um93SGVpZ2h0cygpO1xuICAgICAgICAgIHRoaXMuYWdHcmlkLmFwaS5yZWZyZXNoQ2VsbHMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGFnR3JpZEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID1cbiAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdhZy1ncmlkLWFuZ3VsYXInKTtcbiAgICBjb25zdCBjYWxsYmFjayA9ICgpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMuI2hhc0VkaXRhYmxlQ2xhc3MgPSAhIWFnR3JpZEVsZW1lbnQ/LmNsYXNzTGlzdC5jb250YWlucyhcbiAgICAgICAgJ3NreS1hZy1ncmlkLWVkaXRhYmxlJ1xuICAgICAgKTtcbiAgICAgIHRoaXMuI3VwZGF0ZUdyaWRUaGVtZSh0aGlzLiNjdXJyZW50VGhlbWUpO1xuICAgIH07XG4gICAgaWYgKGFnR3JpZEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGFnR3JpZENsYXNzT2JzZXJ2ZXIgPVxuICAgICAgICB0aGlzLiNtdXRhdGlvbk9ic2VydmVyU2VydmljZS5jcmVhdGUoY2FsbGJhY2spO1xuICAgICAgYWdHcmlkQ2xhc3NPYnNlcnZlci5vYnNlcnZlKGFnR3JpZEVsZW1lbnQsIHtcbiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy4jbmdVbnN1YnNjcmliZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGFnR3JpZENsYXNzT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHNldFRpbWVvdXQoY2FsbGJhY2spO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnQgY2xvc2luZyBhIG1vZGFsIHdoZW4gZm9jdXNlZCBpbiBBRyBHcmlkLlxuICAgKi9cbiAgcHVibGljIG9uS2V5VXBFc2NhcGUoJGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmFnR3JpZD8uYXBpLnN0b3BFZGl0aW5nKHRydWUpO1xuICB9XG5cbiAgcHVibGljIG9uR3JpZEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQgJiYgIXRoaXMuI2lzSW5FZGl0TW9kZSAmJiBldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICBjb25zdCBpZFRvRm9jdXMgPSBldmVudC5zaGlmdEtleVxuICAgICAgICA/IHRoaXMuYmVmb3JlQW5jaG9ySWRcbiAgICAgICAgOiB0aGlzLmFmdGVyQW5jaG9ySWQ7XG4gICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRGb2N1c2VkRWxlbWVudEJ5SWQoXG4gICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgaWRUb0ZvY3VzXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkFuY2hvckZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZ3JpZElkID0gdGhpcy5ncmlkSWQ7XG4gICAgY29uc3QgcmVsYXRlZFRhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgcHJldmlvdXNGb2N1c2VkSWQgPSByZWxhdGVkVGFyZ2V0ICYmIHJlbGF0ZWRUYXJnZXQuaWQ7XG4gICAgY29uc3QgcHJldmlvdXNXYXNDZWxsID1cbiAgICAgIHJlbGF0ZWRUYXJnZXQgJiZcbiAgICAgICEhdGhpcy4jYWRhcHRlclNlcnZpY2UuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKFxuICAgICAgICByZWxhdGVkVGFyZ2V0LFxuICAgICAgICAnYWctY2VsbCdcbiAgICAgICk7XG5cbiAgICBpZiAocHJldmlvdXNGb2N1c2VkSWQgIT09IGdyaWRJZCAmJiAhcHJldmlvdXNXYXNDZWxsKSB7XG4gICAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5hZ0dyaWQ/LmNvbHVtbkFwaS5nZXRBbGxEaXNwbGF5ZWRDb2x1bW5zKCk7XG4gICAgICBjb25zdCBmaXJzdENvbHVtbiA9IGNvbHVtbnM/LlswXTtcbiAgICAgIGNvbnN0IHJvd0luZGV4ID0gdGhpcy5hZ0dyaWQ/LmFwaS5nZXRGaXJzdERpc3BsYXllZFJvdygpO1xuXG4gICAgICBpZiAoZmlyc3RDb2x1bW4gJiYgcm93SW5kZXggIT09IHVuZGVmaW5lZCAmJiByb3dJbmRleCA+PSAwKSB7XG4gICAgICAgIHRoaXMuYWdHcmlkPy5hcGkuc2V0Rm9jdXNlZENlbGwocm93SW5kZXgsIGZpcnN0Q29sdW1uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjbW92ZUhvcml6b250YWxTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWdHcmlkICYmIHRoaXMuYWdHcmlkLmFwaSkge1xuICAgICAgY29uc3QgdG9Ub3AgPSAhIXRoaXMuYWdHcmlkLmdyaWRPcHRpb25zLmNvbnRleHQ/LmVuYWJsZVRvcFNjcm9sbDtcbiAgICAgIGNvbnN0IHJvb3Q6IEhUTUxFbGVtZW50ID1cbiAgICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZy1yb290Jyk7XG4gICAgICBjb25zdCBoZWFkZXI6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCA9IHJvb3QucXVlcnlTZWxlY3RvcignLmFnLWhlYWRlcicpO1xuICAgICAgY29uc3QgZmxvYXRpbmdCb3R0b206IEhUTUxEaXZFbGVtZW50IHwgbnVsbCA9IHJvb3QucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJy5hZy1mbG9hdGluZy1ib3R0b20nXG4gICAgICApO1xuICAgICAgY29uc3Qgc2Nyb2xsYmFyOiBIVE1MRGl2RWxlbWVudCB8IG51bGwgPSByb290LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCdcbiAgICAgICk7XG4gICAgICBpZiAoaGVhZGVyICYmIGZsb2F0aW5nQm90dG9tICYmIHNjcm9sbGJhcikge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc2Nyb2xsYmFyLnN0eWxlLmhlaWdodCAhPT1cbiAgICAgICAgICBzY3JvbGxiYXIuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgICAgICAgICctLXNreS1hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsLXdpZHRoJ1xuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2Nyb2xsYmFyLnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgJy0tc2t5LWFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwtd2lkdGgnLFxuICAgICAgICAgICAgc2Nyb2xsYmFyLnN0eWxlLmhlaWdodFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNUb3AgPSAhIXJvb3QuY2hpbGRyZW5bMV0ubWF0Y2hlcygnLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwnKTtcbiAgICAgICAgaWYgKHRvVG9wICYmICFpc1RvcCkge1xuICAgICAgICAgIGNvbnN0IGZyYWdtZW50ID0gdGhpcy4jZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKHNjcm9sbGJhcik7XG4gICAgICAgICAgaGVhZGVyLmFmdGVyKGZyYWdtZW50KTtcbiAgICAgICAgfSBlbHNlIGlmICghdG9Ub3AgJiYgaXNUb3ApIHtcbiAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMuI2RvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChzY3JvbGxiYXIpO1xuICAgICAgICAgIGZsb2F0aW5nQm90dG9tLmFmdGVyKGZyYWdtZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVHcmlkVGhlbWUodGhlbWVTZXR0aW5ncz86IFNreVRoZW1lU2V0dGluZ3MpOiB2b2lkIHtcbiAgICBsZXQgYWdUaGVtZTogJ2RlZmF1bHQnIHwgJ21vZGVybi1saWdodCcgfCAnbW9kZXJuLWRhcmsnO1xuICAgIGlmICh0aGVtZVNldHRpbmdzPy50aGVtZS5uYW1lID09PSAnbW9kZXJuJykge1xuICAgICAgYWdUaGVtZSA9IGBtb2Rlcm4tJHt0aGVtZVNldHRpbmdzLm1vZGUubmFtZX1gIGFzXG4gICAgICAgIHwgJ21vZGVybi1saWdodCdcbiAgICAgICAgfCAnbW9kZXJuLWRhcmsnO1xuICAgIH0gZWxzZSB7XG4gICAgICBhZ1RoZW1lID0gYGRlZmF1bHRgO1xuICAgIH1cbiAgICBjb25zdCB2YXJpYXRpb24gPSB0aGlzLiNoYXNFZGl0YWJsZUNsYXNzID8gJ2RhdGEtZW50cnktZ3JpZCcgOiAnZGF0YS1ncmlkJztcbiAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5uZXh0KFtcbiAgICAgIC4uLnRoaXMuI3dyYXBwZXJDbGFzc2VzXG4gICAgICAgIC5nZXRWYWx1ZSgpXG4gICAgICAgIC5maWx0ZXIoKGMpID0+ICFjLnN0YXJ0c1dpdGgoJ2FnLXRoZW1lLScpKSxcbiAgICAgIGBhZy10aGVtZS1za3ktJHt2YXJpYXRpb259LSR7YWdUaGVtZX1gLFxuICAgIF0pO1xuICB9XG59XG4iLCI8c3BhblxuICBjbGFzcz1cIm5hdi1hbmNob3JcIlxuICB0YWJpbmRleD1cIjBcIlxuICBbaWRdPVwiYmVmb3JlQW5jaG9ySWRcIlxuICAoZm9jdXNpbik9XCJvbkFuY2hvckZvY3VzKCRldmVudClcIlxuPlxuPC9zcGFuPlxuPGRpdlxuICBjbGFzcz1cInNreS1hZy1ncmlkXCJcbiAgW2NsYXNzLnNreS1hZy1ncmlkLXRvcC1zY3JvbGxiYXJdPVwiXG4gICAgYWdHcmlkPy5ncmlkT3B0aW9ucz8uY29udGV4dCAmJlxuICAgIGFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHRbJ2VuYWJsZVRvcFNjcm9sbCddXG4gIFwiXG4gIFtuZ0NsYXNzXT1cIndyYXBwZXJDbGFzc2VzJCB8IGFzeW5jXCJcbiAgdGFiaW5kZXg9XCIwXCJcbiAgW2lkXT1cImdyaWRJZFwiXG4gIFtza3lWaWV3a2VlcGVyXT1cInZpZXdrZWVwZXJDbGFzc2VzXCJcbiAgKGtleWRvd24pPVwib25HcmlkS2V5ZG93bigkZXZlbnQpXCJcbiAgKGtleXVwLmVzY2FwZSk9XCJvbktleVVwRXNjYXBlKCRldmVudClcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxzcGFuXG4gIHRhYmluZGV4PVwiMFwiXG4gIGNsYXNzPVwibmF2LWFuY2hvclwiXG4gIFtpZF09XCJhZnRlckFuY2hvcklkXCJcbiAgKGZvY3VzaW4pPVwib25BbmNob3JGb2N1cygkZXZlbnQpXCJcbj5cbjwvc3Bhbj5cbiJdfQ==
@@ -27,8 +27,8 @@ import { SkyAgGridHeaderComponent } from './header/header.component';
27
27
  import * as i0 from "@angular/core";
28
28
  export class SkyAgGridModule {
29
29
  }
30
- SkyAgGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
31
- SkyAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.4", ngImport: i0, type: SkyAgGridModule, declarations: [SkyAgGridDataManagerAdapterDirective,
30
+ SkyAgGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
31
+ SkyAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: SkyAgGridModule, declarations: [SkyAgGridDataManagerAdapterDirective,
32
32
  SkyAgGridHeaderComponent,
33
33
  SkyAgGridHeaderGroupComponent,
34
34
  SkyAgGridRowDeleteComponent,
@@ -57,7 +57,7 @@ SkyAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
57
57
  SkyAgGridWrapperComponent,
58
58
  SkyAgGridHeaderComponent,
59
59
  SkyAgGridHeaderGroupComponent] });
60
- SkyAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyAgGridModule, imports: [AgGridModule,
60
+ SkyAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyAgGridModule, imports: [AgGridModule,
61
61
  CommonModule,
62
62
  SkyAgGridCellEditorAutocompleteModule,
63
63
  SkyAgGridCellEditorDatepickerModule,
@@ -76,7 +76,7 @@ SkyAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
76
76
  SkyInlineDeleteModule,
77
77
  SkyViewkeeperModule,
78
78
  SkyThemeModule] });
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyAgGridModule, decorators: [{
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyAgGridModule, decorators: [{
80
80
  type: NgModule,
81
81
  args: [{
82
82
  declarations: [