@skyux/ag-grid 11.1.0 → 11.3.0
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/css/sky-ag-grid.css +67 -32
- package/documentation.json +708 -640
- package/esm2022/lib/modules/ag-grid/ag-grid-adapter.service.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/ag-grid-row-delete.component.mjs +6 -6
- package/esm2022/lib/modules/ag-grid/ag-grid-row-delete.directive.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/ag-grid-wrapper.component.mjs +23 -40
- package/esm2022/lib/modules/ag-grid/ag-grid.module.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/ag-grid.service.mjs +17 -4
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.module.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.module.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.module.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.module.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-template/cell-renderer-template.component.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator.module.mjs +4 -4
- package/esm2022/lib/modules/ag-grid/header/header-group.component.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/header/header.component.mjs +5 -5
- package/esm2022/lib/modules/ag-grid/loading/loading.component.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/types/autocomplete-properties.mjs +1 -1
- package/esm2022/lib/modules/ag-grid/types/datepicker-properties.mjs +1 -1
- package/esm2022/lib/modules/ag-grid/types/header-group-info.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/types/header-info.mjs +3 -3
- package/esm2022/lib/modules/ag-grid/types/last-focused.cell.mjs +2 -0
- package/esm2022/lib/modules/shared/sky-ag-grid-resources.module.mjs +4 -4
- package/fesm2022/skyux-ag-grid.mjs +159 -163
- package/fesm2022/skyux-ag-grid.mjs.map +1 -1
- package/lib/modules/ag-grid/types/last-focused.cell.d.ts +4 -0
- package/package.json +16 -16
|
@@ -48,10 +48,10 @@ export class SkyAgGridAdapterService {
|
|
|
48
48
|
focusableChildren[0].focus();
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
52
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
51
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyAgGridAdapterService, deps: [{ token: i1.SkyCoreAdapterService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
52
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyAgGridAdapterService, providedIn: 'root' }); }
|
|
53
53
|
}
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyAgGridAdapterService, decorators: [{
|
|
55
55
|
type: Injectable,
|
|
56
56
|
args: [{
|
|
57
57
|
providedIn: 'root',
|
|
@@ -298,10 +298,10 @@ export class SkyAgGridDataManagerAdapterDirective {
|
|
|
298
298
|
}
|
|
299
299
|
return gridColumnLimits;
|
|
300
300
|
}
|
|
301
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
302
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.
|
|
301
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDataManagerService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
302
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: SkyAgGridDataManagerAdapterDirective, selector: "[skyAgGridDataManagerAdapter]", inputs: { viewId: "viewId" }, queries: [{ propertyName: "agGridList", predicate: AgGridAngular, descendants: true }, { propertyName: "skyAgGridWrapperList", predicate: SkyAgGridWrapperComponent, descendants: true }], ngImport: i0 }); }
|
|
303
303
|
}
|
|
304
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
304
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, decorators: [{
|
|
305
305
|
type: Directive,
|
|
306
306
|
args: [{
|
|
307
307
|
selector: '[skyAgGridDataManagerAdapter]',
|
|
@@ -9,15 +9,15 @@ import * as i2 from "@skyux/layout";
|
|
|
9
9
|
* @internal
|
|
10
10
|
*/
|
|
11
11
|
export class SkyAgGridRowDeleteComponent {
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
13
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyAgGridRowDeleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: SkyAgGridRowDeleteComponent, isStandalone: true, selector: "sky-ag-grid-row-delete", viewQueries: [{ propertyName: "inlineDeleteTemplateRef", first: true, predicate: ["inlineDeleteTemplateRef"], descendants: true, read: TemplateRef }, { propertyName: "inlineDeleteRefs", predicate: ["inlineDeleteRef"], descendants: true }], ngImport: i0, template: `
|
|
14
14
|
<ng-template
|
|
15
|
+
#inlineDeleteTemplateRef
|
|
15
16
|
let-row
|
|
16
17
|
let-tableWidth="tableWidth()"
|
|
17
18
|
let-getRowDeleteItem="getRowDeleteItem"
|
|
18
19
|
let-cancelRowDelete="cancelRowDelete"
|
|
19
20
|
let-confirmRowDelete="confirmRowDelete"
|
|
20
|
-
#inlineDeleteTemplateRef
|
|
21
21
|
>
|
|
22
22
|
<div
|
|
23
23
|
#inlineDeleteRef
|
|
@@ -38,19 +38,19 @@ export class SkyAgGridRowDeleteComponent {
|
|
|
38
38
|
</ng-template>
|
|
39
39
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: SkyInlineDeleteModule }, { kind: "component", type: i2.λ8, selector: "sky-inline-delete", inputs: ["pending"], outputs: ["cancelTriggered", "deleteTriggered"] }] }); }
|
|
40
40
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyAgGridRowDeleteComponent, decorators: [{
|
|
42
42
|
type: Component,
|
|
43
43
|
args: [{
|
|
44
44
|
standalone: true,
|
|
45
45
|
selector: 'sky-ag-grid-row-delete',
|
|
46
46
|
template: `
|
|
47
47
|
<ng-template
|
|
48
|
+
#inlineDeleteTemplateRef
|
|
48
49
|
let-row
|
|
49
50
|
let-tableWidth="tableWidth()"
|
|
50
51
|
let-getRowDeleteItem="getRowDeleteItem"
|
|
51
52
|
let-cancelRowDelete="cancelRowDelete"
|
|
52
53
|
let-confirmRowDelete="confirmRowDelete"
|
|
53
|
-
#inlineDeleteTemplateRef
|
|
54
54
|
>
|
|
55
55
|
<div
|
|
56
56
|
#inlineDeleteRef
|
|
@@ -79,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
|
|
|
79
79
|
type: ViewChild,
|
|
80
80
|
args: ['inlineDeleteTemplateRef', { read: TemplateRef }]
|
|
81
81
|
}] } });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1yb3ctZGVsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtcm93LWRlbGV0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBR1QsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBRXREOzs7R0FHRztBQWlDSCxNQUFNLE9BQU8sMkJBQTJCOzhHQUEzQiwyQkFBMkI7a0dBQTNCLDJCQUEyQixpTUFJUSxXQUFXLHNIQWpDL0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJULDJEQUNTLFlBQVksbUhBQUUscUJBQXFCOzsyRkFFbEMsMkJBQTJCO2tCQWhDdkMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUscUJBQXFCLENBQUM7aUJBQy9DOzhCQUdRLGdCQUFnQjtzQkFEdEIsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBSXhCLHVCQUF1QjtzQkFEN0IsU0FBUzt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lJbmxpbmVEZWxldGVNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGF5b3V0JztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIHJlbmRlcmluZyB0aGUgaW5saW5lIGRlbGV0ZSB0ZW1wbGF0ZSBpbiB0aGUgb3ZlcmxheS5cbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1yb3ctZGVsZXRlJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICNpbmxpbmVEZWxldGVUZW1wbGF0ZVJlZlxuICAgICAgbGV0LXJvd1xuICAgICAgbGV0LXRhYmxlV2lkdGg9XCJ0YWJsZVdpZHRoKClcIlxuICAgICAgbGV0LWdldFJvd0RlbGV0ZUl0ZW09XCJnZXRSb3dEZWxldGVJdGVtXCJcbiAgICAgIGxldC1jYW5jZWxSb3dEZWxldGU9XCJjYW5jZWxSb3dEZWxldGVcIlxuICAgICAgbGV0LWNvbmZpcm1Sb3dEZWxldGU9XCJjb25maXJtUm93RGVsZXRlXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgICNpbmxpbmVEZWxldGVSZWZcbiAgICAgICAgY2xhc3M9XCJza3ktYWctZ3JpZC1yb3ctZGVsZXRlXCJcbiAgICAgICAgW2lkXT1cIidyb3ctZGVsZXRlLXJlZi0nICsgcm93LmlkXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgIGhlaWdodDogcm93LnJvd0hlaWdodCArICdweCcsXG4gICAgICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAgICAgd2lkdGg6IHRhYmxlV2lkdGggKyAncHgnLFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPHNreS1pbmxpbmUtZGVsZXRlXG4gICAgICAgICAgW3BlbmRpbmddPVwiZ2V0Um93RGVsZXRlSXRlbShyb3cpLnBlbmRpbmdcIlxuICAgICAgICAgIChjYW5jZWxUcmlnZ2VyZWQpPVwiY2FuY2VsUm93RGVsZXRlKHJvdylcIlxuICAgICAgICAgIChkZWxldGVUcmlnZ2VyZWQpPVwiY29uZmlybVJvd0RlbGV0ZShyb3cpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNreUlubGluZURlbGV0ZU1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFJvd0RlbGV0ZUNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGRyZW4oJ2lubGluZURlbGV0ZVJlZicpXG4gIHB1YmxpYyBpbmxpbmVEZWxldGVSZWZzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnaW5saW5lRGVsZXRlVGVtcGxhdGVSZWYnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHB1YmxpYyBpbmxpbmVEZWxldGVUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG59XG4iXX0=
|
|
@@ -237,10 +237,10 @@ export class SkyAgGridRowDeleteDirective {
|
|
|
237
237
|
});
|
|
238
238
|
this.#changeDetector.markForCheck();
|
|
239
239
|
}
|
|
240
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
241
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.
|
|
240
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyAgGridRowDeleteDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
241
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: SkyAgGridRowDeleteDirective, selector: "[skyAgGridRowDelete]", inputs: { rowDeleteIds: "rowDeleteIds" }, outputs: { rowDeleteCancel: "rowDeleteCancel", rowDeleteConfirm: "rowDeleteConfirm", rowDeleteIdsChange: "rowDeleteIdsChange" }, queries: [{ propertyName: "agGrid", first: true, predicate: AgGridAngular, descendants: true }], ngImport: i0 }); }
|
|
242
242
|
}
|
|
243
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyAgGridRowDeleteDirective, decorators: [{
|
|
244
244
|
type: Directive,
|
|
245
245
|
args: [{
|
|
246
246
|
selector: '[skyAgGridRowDelete]',
|
|
@@ -3,7 +3,7 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, El
|
|
|
3
3
|
import { SkyMutationObserverService } from '@skyux/core';
|
|
4
4
|
import { SkyThemeService, } from '@skyux/theme';
|
|
5
5
|
import { AgGridAngular } from 'ag-grid-angular';
|
|
6
|
-
import {
|
|
6
|
+
import { ModuleNames, ModuleRegistry, } from 'ag-grid-community';
|
|
7
7
|
import { BehaviorSubject, ReplaySubject, Subject, combineLatest, distinctUntilChanged, of, take, takeUntil, } from 'rxjs';
|
|
8
8
|
import { agGridTheme } from '../../styles/ag-grid-theme';
|
|
9
9
|
import { SkyAgGridAdapterService } from './ag-grid-adapter.service';
|
|
@@ -58,7 +58,6 @@ export class SkyAgGridWrapperComponent {
|
|
|
58
58
|
#mutationObserverService;
|
|
59
59
|
#isCompact;
|
|
60
60
|
#hasEditableClass;
|
|
61
|
-
#lastFocusedCell;
|
|
62
61
|
constructor() {
|
|
63
62
|
this.isNormalLayout = false;
|
|
64
63
|
this.#_viewkeeperClasses = [];
|
|
@@ -144,23 +143,24 @@ export class SkyAgGridWrapperComponent {
|
|
|
144
143
|
this.agGrid.cellFocused
|
|
145
144
|
.pipe(takeUntil(this.#ngUnsubscribe))
|
|
146
145
|
.subscribe((event) => {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
}
|
|
153
|
-
|
|
146
|
+
event.context ??= {};
|
|
147
|
+
event.context['lastFocusedCell'] = {
|
|
148
|
+
rowIndex: event.rowIndex,
|
|
149
|
+
column: typeof event.column === 'object'
|
|
150
|
+
? event.column?.getColId()
|
|
151
|
+
: `${event.column}`,
|
|
152
|
+
};
|
|
154
153
|
});
|
|
155
154
|
this.agGrid.headerFocused
|
|
156
155
|
.pipe(takeUntil(this.#ngUnsubscribe))
|
|
157
156
|
.subscribe((event) => {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
157
|
+
event.context ??= {};
|
|
158
|
+
event.context['lastFocusedCell'] = {
|
|
159
|
+
rowIndex: null,
|
|
160
|
+
column: event.column?.getUniqueId
|
|
161
|
+
? event.column.getUniqueId()
|
|
162
|
+
: `${event.column}`,
|
|
163
|
+
};
|
|
164
164
|
});
|
|
165
165
|
}
|
|
166
166
|
}
|
|
@@ -214,31 +214,14 @@ export class SkyAgGridWrapperComponent {
|
|
|
214
214
|
this.#adapterService.setFocusedElementById(this.#elementRef.nativeElement, idToFocus);
|
|
215
215
|
}
|
|
216
216
|
}
|
|
217
|
+
// eslint-disable-next-line complexity
|
|
217
218
|
onAnchorFocus(event) {
|
|
218
219
|
const relatedTarget = event.relatedTarget;
|
|
219
220
|
const previousWasGrid = relatedTarget && this.#elementRef.nativeElement.contains(relatedTarget);
|
|
220
221
|
if (this.agGrid && !previousWasGrid) {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
rowIndex: 'header',
|
|
225
|
-
};
|
|
226
|
-
if (focusOn.column &&
|
|
227
|
-
displayedColumns.some((col) => col.getId() === focusOn.column)) {
|
|
228
|
-
if (focusOn.column instanceof AgColumn ||
|
|
229
|
-
typeof focusOn.column === 'string') {
|
|
230
|
-
this.agGrid.api.ensureColumnVisible(focusOn.column);
|
|
231
|
-
}
|
|
232
|
-
if (focusOn.rowIndex === 'header') {
|
|
233
|
-
this.agGrid.api.setFocusedHeader(focusOn.column);
|
|
234
|
-
}
|
|
235
|
-
else if (this.agGrid.api.getDisplayedRowAtIndex(focusOn.rowIndex) &&
|
|
236
|
-
(focusOn.column instanceof AgColumn ||
|
|
237
|
-
typeof focusOn.column === 'string')) {
|
|
238
|
-
this.agGrid.api.ensureIndexVisible(focusOn.rowIndex, 'top');
|
|
239
|
-
this.agGrid.api.setFocusedCell(focusOn.rowIndex, focusOn.column);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
222
|
+
this.#elementRef.nativeElement
|
|
223
|
+
.querySelector('.ag-tab-guard.ag-tab-guard-top')
|
|
224
|
+
?.focus();
|
|
242
225
|
}
|
|
243
226
|
}
|
|
244
227
|
#moveHorizontalScroll() {
|
|
@@ -289,10 +272,10 @@ export class SkyAgGridWrapperComponent {
|
|
|
289
272
|
return false;
|
|
290
273
|
}
|
|
291
274
|
}
|
|
292
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
293
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.
|
|
275
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyAgGridWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
276
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.5", type: SkyAgGridWrapperComponent, selector: "sky-ag-grid-wrapper", inputs: { compact: ["compact", "compact", booleanAttribute] }, 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 tabindex=\"0\"\n [class.sky-ag-grid-top-scrollbar]=\"\n agGrid?.gridOptions?.context &&\n agGrid?.gridOptions?.context['enableTopScroll']\n \"\n [ngClass]=\"wrapperClasses$ | async\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n (keydown)=\"onGridKeydown($event)\"\n (keyup.escape)=\"onKeyUpEscape($event)\"\n>\n <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 }); }
|
|
294
277
|
}
|
|
295
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
278
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyAgGridWrapperComponent, decorators: [{
|
|
296
279
|
type: Component,
|
|
297
280
|
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 tabindex=\"0\"\n [class.sky-ag-grid-top-scrollbar]=\"\n agGrid?.gridOptions?.context &&\n agGrid?.gridOptions?.context['enableTopScroll']\n \"\n [ngClass]=\"wrapperClasses$ | async\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n (keydown)=\"onGridKeydown($event)\"\n (keyup.escape)=\"onKeyUpEscape($event)\"\n>\n <ng-content />\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n" }]
|
|
298
281
|
}], ctorParameters: () => [], propDecorators: { agGrid: [{
|
|
@@ -307,4 +290,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
|
|
|
307
290
|
type: Input,
|
|
308
291
|
args: [{ transform: booleanAttribute }]
|
|
309
292
|
}] } });
|
|
310
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBR0wsZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxFQUNMLGVBQWUsR0FHaEIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFDTCxRQUFRLEVBT1IsV0FBVyxFQUNYLGNBQWMsR0FDZixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFDTCxlQUFlLEVBRWYsYUFBYSxFQUNiLE9BQU8sRUFDUCxhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLEVBQUUsRUFDRixJQUFJLEVBQ0osU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXpELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUs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Y0FBYztzQkFEcEIsV0FBVzt1QkFBQyxpQ0FBaUM7Z0JBUW5DLE9BQU87c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TXV0YXRpb25PYnNlcnZlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQge1xuICBTa3lUaGVtZVNlcnZpY2UsXG4gIFNreVRoZW1lU2V0dGluZ3MsXG4gIFNreVRoZW1lU2V0dGluZ3NDaGFuZ2UsXG59IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQWdDb2x1bW4sXG4gIENlbGxFZGl0aW5nU3RhcnRlZEV2ZW50LFxuICBDZWxsRm9jdXNlZEV2ZW50LFxuICBDb2x1bW4sXG4gIENvbHVtbkdyb3VwLFxuICBEZXRhaWxHcmlkSW5mbyxcbiAgSGVhZGVyRm9jdXNlZEV2ZW50LFxuICBNb2R1bGVOYW1lcyxcbiAgTW9kdWxlUmVnaXN0cnksXG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgUmVwbGF5U3ViamVjdCxcbiAgU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG9mLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBhZ0dyaWRUaGVtZSB9IGZyb20gJy4uLy4uL3N0eWxlcy9hZy1ncmlkLXRoZW1lJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2FnLWdyaWQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreUNlbGxUeXBlIH0gZnJvbSAnLi90eXBlcy9jZWxsLXR5cGUnO1xuXG5sZXQgaWRJbmRleCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdFxue1xuICBAQ29udGVudENoaWxkKEFnR3JpZEFuZ3VsYXIsIHtcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHB1YmxpYyBhZ0dyaWQ6IEFnR3JpZEFuZ3VsYXIgfCB1bmRlZmluZWQ7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5za3ktYWctZ3JpZC1sYXlvdXQtbm9ybWFsJylcbiAgcHVibGljIGlzTm9ybWFsTGF5b3V0ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBhIGNvbXBhY3QgbGF5b3V0IGZvciB0aGUgZ3JpZCB3aGVuIHVzaW5nIG1vZGVybiB0aGVtZS4gQ29tcGFjdCBsYXlvdXQgdXNlc1xuICAgKiBhIHNtYWxsZXIgZm9udCBzaXplIGFuZCByb3cgaGVpZ2h0IHRvIGRpc3BsYXkgbW9yZSBkYXRhIGluIGEgc21hbGxlciBzcGFjZS5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IGNvbXBhY3QodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNpc0NvbXBhY3QubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgYWZ0ZXJBbmNob3JJZDogc3RyaW5nO1xuICBwdWJsaWMgYmVmb3JlQW5jaG9ySWQ6IHN0cmluZztcbiAgcHVibGljIGdyaWRJZDogc3RyaW5nO1xuICBwdWJsaWMgd3JhcHBlckNsYXNzZXMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICBwdWJsaWMgZ2V0IHZpZXdrZWVwZXJDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy4jX3ZpZXdrZWVwZXJDbGFzc2VzO1xuICB9XG5cbiAgcHVibGljIHNldCB2aWV3a2VlcGVyQ2xhc3Nlcyh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICB0aGlzLiNfdmlld2tlZXBlckNsYXNzZXMgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCAjaXNJbkVkaXRNb2RlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmFnR3JpZCAmJiB0aGlzLmFnR3JpZC5hcGkpIHtcbiAgICAgIGNvbnN0IHByaW1hcnlHcmlkRWRpdGluZyA9IHRoaXMuYWdHcmlkLmFwaS5nZXRFZGl0aW5nQ2VsbHMoKS5sZW5ndGggPiAwO1xuICAgICAgaWYgKHByaW1hcnlHcmlkRWRpdGluZykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIE1vZHVsZVJlZ2lzdHJ5Ll9faXNSZWdpc3RlcmVkKFxuICAgICAgICAgIE1vZHVsZU5hbWVzLkVudGVycHJpc2VDb3JlTW9kdWxlLFxuICAgICAgICAgICdza3ktYWctZ3JpZC13cmFwcGVyJyxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIC8vIEFHIEdyaWQgMzIrIHRocm93cyBhbiBlcnJvciBmb3IgY2FsbGluZyB0aGlzIEFQSSB3aXRob3V0IGVudGVycHJpc2UgbW9kdWxlcy5cbiAgICAgICAgbGV0IGlubmVyRWRpdGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFnR3JpZC5hcGkuZm9yRWFjaERldGFpbEdyaWRJbmZvKChkZXRhaWxHcmlkOiBEZXRhaWxHcmlkSW5mbykgPT4ge1xuICAgICAgICAgIGlmIChkZXRhaWxHcmlkPy5hcGkgJiYgZGV0YWlsR3JpZC5hcGkuZ2V0RWRpdGluZ0NlbGxzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaW5uZXJFZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBpbm5lckVkaXRpbmc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICNfdmlld2tlZXBlckNsYXNzZXM6IHN0cmluZ1tdID0gW107XG4gIHJlYWRvbmx5ICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcmVhZG9ubHkgI3RoZW1lU3ZjID0gaW5qZWN0KFNreVRoZW1lU2VydmljZSwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICB9KTtcbiAgcmVhZG9ubHkgI3dyYXBwZXJDbGFzc2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW1xuICAgIGBhZy10aGVtZS1za3ktZGF0YS1ncmlkLWRlZmF1bHRgLFxuICBdKTtcbiAgcmVhZG9ubHkgI2FkYXB0ZXJTZXJ2aWNlID0gaW5qZWN0KFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgI3BhcmVudENoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgc2tpcFNlbGY6IHRydWUsXG4gIH0pO1xuICByZWFkb25seSAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG4gIHJlYWRvbmx5ICNkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHJlYWRvbmx5ICNtdXRhdGlvbk9ic2VydmVyU2VydmljZSA9IGluamVjdChTa3lNdXRhdGlvbk9ic2VydmVyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNpc0NvbXBhY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgI2hhc0VkaXRhYmxlQ2xhc3MgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcbiAgI2xhc3RGb2N1c2VkQ2VsbDpcbiAgICB8IHsgcm93SW5kZXg6IG51bWJlciB8ICdoZWFkZXInOyBjb2x1bW46IENvbHVtbiB8IENvbHVtbkdyb3VwIHwgc3RyaW5nIH1cbiAgICB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZEluZGV4Kys7XG4gICAgdGhpcy5hZnRlckFuY2hvcklkID0gJ3NreS1hZy1ncmlkLW5hdi1hbmNob3ItYWZ0ZXItJyArIGlkSW5kZXg7XG4gICAgdGhpcy5iZWZvcmVBbmNob3JJZCA9ICdza3ktYWctZ3JpZC1uYXYtYW5jaG9yLWJlZm9yZS0nICsgaWRJbmRleDtcbiAgICB0aGlzLmdyaWRJZCA9ICdza3ktYWctZ3JpZC0nICsgaWRJbmRleDtcbiAgICB0aGlzLndyYXBwZXJDbGFzc2VzJCA9IHRoaXMuI3dyYXBwZXJDbGFzc2VzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQpIHtcbiAgICAgIGNvbnN0IGRvbUxheW91dCA9IHRoaXMuYWdHcmlkLmdyaWRPcHRpb25zPy5kb21MYXlvdXQ7XG4gICAgICBpZiAoZG9tTGF5b3V0ID09PSAnYXV0b0hlaWdodCcpIHtcbiAgICAgICAgaWYgKHRoaXMuYWdHcmlkLmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVUb3BTY3JvbGwpIHtcbiAgICAgICAgICB0aGlzLnZpZXdrZWVwZXJDbGFzc2VzLnB1c2goXG4gICAgICAgICAgICAnLmFnLWhlYWRlcicsXG4gICAgICAgICAgICAnLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwnLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52aWV3a2VlcGVyQ2xhc3Nlcy5wdXNoKCcuYWctaGVhZGVyJyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZG9tTGF5b3V0ID09PSAnbm9ybWFsJykge1xuICAgICAgICB0aGlzLmlzTm9ybWFsTGF5b3V0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy4jcGFyZW50Q2hhbmdlRGV0ZWN0b3I/LmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWdHcmlkLmdyaWRSZWFkeVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQuZmlyc3REYXRhUmVuZGVyZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLnJvd0RhdGFVcGRhdGVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbW92ZUhvcml6b250YWxTY3JvbGwoKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5jZWxsRWRpdGluZ1N0YXJ0ZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChwYXJhbXM6IENlbGxFZGl0aW5nU3RhcnRlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHBhcmFtcy5jb2xEZWYudHlwZSkge1xuICAgICAgICAgICAgY29uc3QgdHlwZXMgPSBBcnJheS5pc0FycmF5KHBhcmFtcy5jb2xEZWYudHlwZSlcbiAgICAgICAgICAgICAgPyBwYXJhbXMuY29sRGVmLnR5cGVcbiAgICAgICAgICAgICAgOiBbcGFyYW1zLmNvbERlZi50eXBlXTtcbiAgICAgICAgICAgIGNvbnN0IGFkZENsYXNzZXMgPSB0eXBlcy5tYXAoXG4gICAgICAgICAgICAgICh0KSA9PiBgc2t5LWFnLWdyaWQtY2VsbC1lZGl0aW5nLSR7dH1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLm5leHQoW1xuICAgICAgICAgICAgICAuLi50aGlzLiN3cmFwcGVyQ2xhc3Nlcy5nZXRWYWx1ZSgpLFxuICAgICAgICAgICAgICAuLi5hZGRDbGFzc2VzLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHR5cGVzLmluY2x1ZGVzKFNreUNlbGxUeXBlLlRlbXBsYXRlKSAmJlxuICAgICAgICAgICAgICBwYXJhbXMucm93SW5kZXggIT09IG51bGxcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aGlzLmFnR3JpZD8uYXBpLnNldEZvY3VzZWRDZWxsKHBhcmFtcy5yb3dJbmRleCwgcGFyYW1zLmNvbHVtbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmNlbGxFZGl0aW5nU3RvcHBlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLm5leHQoXG4gICAgICAgICAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlc1xuICAgICAgICAgICAgICAuZ2V0VmFsdWUoKVxuICAgICAgICAgICAgICAuZmlsdGVyKChjKSA9PiAhYy5zdGFydHNXaXRoKCdza3ktYWctZ3JpZC1jZWxsLWVkaXRpbmctJykpLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQuY2VsbEZvY3VzZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudDogQ2VsbEZvY3VzZWRFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuI2xhc3RGb2N1c2VkQ2VsbCA9XG4gICAgICAgICAgICBOdW1iZXIuaXNJbnRlZ2VyKGV2ZW50LnJvd0luZGV4KSAmJiBldmVudC5jb2x1bW5cbiAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICByb3dJbmRleDogZXZlbnQucm93SW5kZXggYXMgbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgY29sdW1uOiBldmVudC5jb2x1bW4sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5oZWFkZXJGb2N1c2VkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IEhlYWRlckZvY3VzZWRFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuI2xhc3RGb2N1c2VkQ2VsbCA9IGV2ZW50LmNvbHVtblxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgcm93SW5kZXg6ICdoZWFkZXInLFxuICAgICAgICAgICAgICAgIGNvbHVtbjogZXZlbnQuY29sdW1uLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLiNoYXNFZGl0YWJsZUNsYXNzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jaXNDb21wYWN0LmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jd3JhcHBlckNsYXNzZXMuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb21iaW5lTGF0ZXN0PFtib29sZWFuLCBib29sZWFuLCBTa3lUaGVtZVNldHRpbmdzQ2hhbmdlIHwgdW5kZWZpbmVkXT4oW1xuICAgICAgdGhpcy4jaGFzRWRpdGFibGVDbGFzcy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgdGhpcy4jaXNDb21wYWN0LnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICB0aGlzLiN0aGVtZVN2Yz8uc2V0dGluZ3NDaGFuZ2UgPz8gb2YodW5kZWZpbmVkKSxcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoW2hhc0VkaXRhYmxlQ2xhc3MsIGlzQ29tcGFjdCwgc2V0dGluZ3NdKSA9PiB7XG4gICAgICAgIHRoaXMuI3VwZGF0ZUdyaWRUaGVtZShcbiAgICAgICAgICBoYXNFZGl0YWJsZUNsYXNzLFxuICAgICAgICAgIGlzQ29tcGFjdCxcbiAgICAgICAgICBzZXR0aW5ncz8uY3VycmVudFNldHRpbmdzLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGFnR3JpZEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID1cbiAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdhZy1ncmlkLWFuZ3VsYXInKTtcbiAgICBjb25zdCBjYWxsYmFjayA9ICgpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMuI2hhc0VkaXRhYmxlQ2xhc3MubmV4dChcbiAgICAgICAgISFhZ0dyaWRFbGVtZW50Py5jbGFzc0xpc3QuY29udGFpbnMoJ3NreS1hZy1ncmlkLWVkaXRhYmxlJyksXG4gICAgICApO1xuICAgIH07XG4gICAgaWYgKGFnR3JpZEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGFnR3JpZENsYXNzT2JzZXJ2ZXIgPVxuICAgICAgICB0aGlzLiNtdXRhdGlvbk9ic2VydmVyU2VydmljZS5jcmVhdGUoY2FsbGJhY2spO1xuICAgICAgYWdHcmlkQ2xhc3NPYnNlcnZlci5vYnNlcnZlKGFnR3JpZEVsZW1lbnQsIHtcbiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJ10sXG4gICAgICB9KTtcbiAgICAgIHRoaXMuI25nVW5zdWJzY3JpYmUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBhZ0dyaWRDbGFzc09ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnQgY2xvc2luZyBhIG1vZGFsIHdoZW4gZm9jdXNlZCBpbiBBRyBHcmlkLlxuICAgKi9cbiAgcHVibGljIG9uS2V5VXBFc2NhcGUoJGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmFnR3JpZD8uYXBpLnN0b3BFZGl0aW5nKHRydWUpO1xuICB9XG5cbiAgcHVibGljIG9uR3JpZEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQgJiYgIXRoaXMuI2lzSW5FZGl0TW9kZSAmJiBldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICBjb25zdCBpZFRvRm9jdXMgPSBldmVudC5zaGlmdEtleVxuICAgICAgICA/IHRoaXMuYmVmb3JlQW5jaG9ySWRcbiAgICAgICAgOiB0aGlzLmFmdGVyQW5jaG9ySWQ7XG4gICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRGb2N1c2VkRWxlbWVudEJ5SWQoXG4gICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgaWRUb0ZvY3VzLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25BbmNob3JGb2N1cyhldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSBldmVudC5yZWxhdGVkVGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHByZXZpb3VzV2FzR3JpZCA9XG4gICAgICByZWxhdGVkVGFyZ2V0ICYmIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhyZWxhdGVkVGFyZ2V0KTtcblxuICAgIGlmICh0aGlzLmFnR3JpZCAmJiAhcHJldmlvdXNXYXNHcmlkKSB7XG4gICAgICBjb25zdCBkaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5hZ0dyaWQuYXBpLmdldEFsbERpc3BsYXllZENvbHVtbnMoKTtcbiAgICAgIGNvbnN0IGZvY3VzT24gPSB0aGlzLiNsYXN0Rm9jdXNlZENlbGwgPz8ge1xuICAgICAgICBjb2x1bW46IGRpc3BsYXllZENvbHVtbnM/LlswXT8uZ2V0Q29sSWQoKSxcbiAgICAgICAgcm93SW5kZXg6ICdoZWFkZXInLFxuICAgICAgfTtcbiAgICAgIGlmIChcbiAgICAgICAgZm9jdXNPbi5jb2x1bW4gJiZcbiAgICAgICAgZGlzcGxheWVkQ29sdW1ucy5zb21lKChjb2wpID0+IGNvbC5nZXRJZCgpID09PSBmb2N1c09uLmNvbHVtbilcbiAgICAgICkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZm9jdXNPbi5jb2x1bW4gaW5zdGFuY2VvZiBBZ0NvbHVtbiB8fFxuICAgICAgICAgIHR5cGVvZiBmb2N1c09uLmNvbHVtbiA9PT0gJ3N0cmluZydcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5hZ0dyaWQuYXBpLmVuc3VyZUNvbHVtblZpc2libGUoZm9jdXNPbi5jb2x1bW4pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb2N1c09uLnJvd0luZGV4ID09PSAnaGVhZGVyJykge1xuICAgICAgICAgIHRoaXMuYWdHcmlkLmFwaS5zZXRGb2N1c2VkSGVhZGVyKGZvY3VzT24uY29sdW1uKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICB0aGlzLmFnR3JpZC5hcGkuZ2V0RGlzcGxheWVkUm93QXRJbmRleChmb2N1c09uLnJvd0luZGV4KSAmJlxuICAgICAgICAgIChmb2N1c09uLmNvbHVtbiBpbnN0YW5jZW9mIEFnQ29sdW1uIHx8XG4gICAgICAgICAgICB0eXBlb2YgZm9jdXNPbi5jb2x1bW4gPT09ICdzdHJpbmcnKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmFnR3JpZC5hcGkuZW5zdXJlSW5kZXhWaXNpYmxlKGZvY3VzT24ucm93SW5kZXgsICd0b3AnKTtcbiAgICAgICAgICB0aGlzLmFnR3JpZC5hcGkuc2V0Rm9jdXNlZENlbGwoZm9jdXNPbi5yb3dJbmRleCwgZm9jdXNPbi5jb2x1bW4pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk6IHZvaWQge1xuICAgIGNvbnN0IHRvVG9wID0gISF0aGlzLmFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHQ/LmVuYWJsZVRvcFNjcm9sbDtcbiAgICBjb25zdCByb290ID0gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZy1yb290Jyk7XG4gICAgY29uc3QgaGVhZGVyID0gcm9vdD8ucXVlcnlTZWxlY3RvcignLmFnLWhlYWRlcicpO1xuICAgIGNvbnN0IGZsb2F0aW5nQm90dG9tID0gcm9vdD8ucXVlcnlTZWxlY3RvcignLmFnLWZsb2F0aW5nLWJvdHRvbScpO1xuICAgIGNvbnN0IHNjcm9sbGJhciA9IHJvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyk7XG4gICAgaWYgKHJvb3QgJiYgaGVhZGVyICYmIGZsb2F0aW5nQm90dG9tICYmIHNjcm9sbGJhcikge1xuICAgICAgaWYgKFxuICAgICAgICBzY3JvbGxiYXIuc3R5bGUuaGVpZ2h0ICE9PVxuICAgICAgICBzY3JvbGxiYXIuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgICAgICAnLS1za3ktYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbC13aWR0aCcsXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICBzY3JvbGxiYXIuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgJy0tc2t5LWFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwtd2lkdGgnLFxuICAgICAgICAgIHNjcm9sbGJhci5zdHlsZS5oZWlnaHQsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBpc1RvcCA9IHJvb3QuY2hpbGRyZW5bMV0ubWF0Y2hlcygnLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwnKTtcbiAgICAgIGlmICh0b1RvcCAmJiAhaXNUb3ApIHtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSB0aGlzLiNkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKHNjcm9sbGJhcik7XG4gICAgICAgIGhlYWRlci5hZnRlcihmcmFnbWVudCk7XG4gICAgICB9IGVsc2UgaWYgKCF0b1RvcCAmJiBpc1RvcCkge1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMuI2RvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoc2Nyb2xsYmFyKTtcbiAgICAgICAgZmxvYXRpbmdCb3R0b20uYWZ0ZXIoZnJhZ21lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVHcmlkVGhlbWUoXG4gICAgaGFzRWRpdGFibGVDbGFzczogYm9vbGVhbixcbiAgICBpc0NvbXBhY3Q6IGJvb2xlYW4sXG4gICAgdGhlbWVTZXR0aW5ncz86IFNreVRoZW1lU2V0dGluZ3MsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGFnVGhlbWUgPSBhZ0dyaWRUaGVtZShoYXNFZGl0YWJsZUNsYXNzLCB0aGVtZVNldHRpbmdzLCBpc0NvbXBhY3QpO1xuICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5nZXRWYWx1ZSgpO1xuICAgIGxldCB2YWx1ZSA9IFtcbiAgICAgIC4uLnByZXZpb3VzVmFsdWUuZmlsdGVyKChjKSA9PiAhYy5zdGFydHNXaXRoKCdhZy10aGVtZS0nKSksXG4gICAgICBhZ1RoZW1lLFxuICAgIF07XG4gICAgY29uc3QgdGV4dFNlbGVjdGlvbkNsYXNzID0gJ3NreS1hZy1ncmlkLXRleHQtc2VsZWN0aW9uJztcbiAgICBpZiAodGhpcy4jZ2V0VGV4dFNlbGVjdGlvbihoYXNFZGl0YWJsZUNsYXNzKSkge1xuICAgICAgdmFsdWUucHVzaCh0ZXh0U2VsZWN0aW9uQ2xhc3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcigoYykgPT4gYyAhPT0gdGV4dFNlbGVjdGlvbkNsYXNzKTtcbiAgICB9XG4gICAgdGhpcy4jd3JhcHBlckNsYXNzZXMubmV4dChbLi4ubmV3IFNldCh2YWx1ZSldKTtcbiAgfVxuXG4gICNnZXRUZXh0U2VsZWN0aW9uKGhhc0VkaXRhYmxlQ2xhc3M6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQ/LmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVDZWxsVGV4dFNlbGVjdGlvbikge1xuICAgICAgcmV0dXJuICFoYXNFZGl0YWJsZUNsYXNzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8c3BhblxuICBjbGFzcz1cIm5hdi1hbmNob3JcIlxuICB0YWJpbmRleD1cIjBcIlxuICBbaWRdPVwiYmVmb3JlQW5jaG9ySWRcIlxuICAoZm9jdXNpbik9XCJvbkFuY2hvckZvY3VzKCRldmVudClcIlxuPlxuPC9zcGFuPlxuPGRpdlxuICBjbGFzcz1cInNreS1hZy1ncmlkXCJcbiAgdGFiaW5kZXg9XCIwXCJcbiAgW2NsYXNzLnNreS1hZy1ncmlkLXRvcC1zY3JvbGxiYXJdPVwiXG4gICAgYWdHcmlkPy5ncmlkT3B0aW9ucz8uY29udGV4dCAmJlxuICAgIGFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHRbJ2VuYWJsZVRvcFNjcm9sbCddXG4gIFwiXG4gIFtuZ0NsYXNzXT1cIndyYXBwZXJDbGFzc2VzJCB8IGFzeW5jXCJcbiAgW2lkXT1cImdyaWRJZFwiXG4gIFtza3lWaWV3a2VlcGVyXT1cInZpZXdrZWVwZXJDbGFzc2VzXCJcbiAgKGtleWRvd24pPVwib25HcmlkS2V5ZG93bigkZXZlbnQpXCJcbiAgKGtleXVwLmVzY2FwZSk9XCJvbktleVVwRXNjYXBlKCRldmVudClcIlxuPlxuICA8bmctY29udGVudCAvPlxuPC9kaXY+XG48c3BhblxuICB0YWJpbmRleD1cIjBcIlxuICBjbGFzcz1cIm5hdi1hbmNob3JcIlxuICBbaWRdPVwiYWZ0ZXJBbmNob3JJZFwiXG4gIChmb2N1c2luKT1cIm9uQW5jaG9yRm9jdXMoJGV2ZW50KVwiXG4+XG48L3NwYW4+XG4iXX0=
|
|
293
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBR0wsZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxFQUNMLGVBQWUsR0FHaEIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFLTCxXQUFXLEVBQ1gsY0FBYyxHQUNmLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLGVBQWUsRUFFZixhQUFhLEVBQ2IsT0FBTyxFQUNQLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsRUFBRSxFQUNGLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFt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QXlCO2tCQUxyQyxTQUFTOytCQUNFLHFCQUFxQixtQkFFZCx1QkFBdUIsQ0FBQyxNQUFNO3dEQVF4QyxNQUFNO3NCQUhaLFlBQVk7dUJBQUMsYUFBYSxFQUFFO3dCQUMzQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFJTSxjQUFjO3NCQURwQixXQUFXO3VCQUFDLGlDQUFpQztnQkFRbkMsT0FBTztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lNdXRhdGlvbk9ic2VydmVyU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7XG4gIFNreVRoZW1lU2VydmljZSxcbiAgU2t5VGhlbWVTZXR0aW5ncyxcbiAgU2t5VGhlbWVTZXR0aW5nc0NoYW5nZSxcbn0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQge1xuICBDZWxsRWRpdGluZ1N0YXJ0ZWRFdmVudCxcbiAgQ2VsbEZvY3VzZWRFdmVudCxcbiAgRGV0YWlsR3JpZEluZm8sXG4gIEhlYWRlckZvY3VzZWRFdmVudCxcbiAgTW9kdWxlTmFtZXMsXG4gIE1vZHVsZVJlZ2lzdHJ5LFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIE9ic2VydmFibGUsXG4gIFJlcGxheVN1YmplY3QsXG4gIFN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBvZixcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgYWdHcmlkVGhlbWUgfSBmcm9tICcuLi8uLi9zdHlsZXMvYWctZ3JpZC10aGVtZSc7XG5cbmltcG9ydCB7IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9hZy1ncmlkLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lDZWxsVHlwZSB9IGZyb20gJy4vdHlwZXMvY2VsbC10eXBlJztcblxubGV0IGlkSW5kZXggPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC13cmFwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXRcbntcbiAgQENvbnRlbnRDaGlsZChBZ0dyaWRBbmd1bGFyLCB7XG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgYWdHcmlkOiBBZ0dyaWRBbmd1bGFyIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2t5LWFnLWdyaWQtbGF5b3V0LW5vcm1hbCcpXG4gIHB1YmxpYyBpc05vcm1hbExheW91dCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgYSBjb21wYWN0IGxheW91dCBmb3IgdGhlIGdyaWQgd2hlbiB1c2luZyBtb2Rlcm4gdGhlbWUuIENvbXBhY3QgbGF5b3V0IHVzZXNcbiAgICogYSBzbWFsbGVyIGZvbnQgc2l6ZSBhbmQgcm93IGhlaWdodCB0byBkaXNwbGF5IG1vcmUgZGF0YSBpbiBhIHNtYWxsZXIgc3BhY2UuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHNldCBjb21wYWN0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jaXNDb21wYWN0Lm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGFmdGVyQW5jaG9ySWQ6IHN0cmluZztcbiAgcHVibGljIGJlZm9yZUFuY2hvcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBncmlkSWQ6IHN0cmluZztcbiAgcHVibGljIHdyYXBwZXJDbGFzc2VzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG5cbiAgcHVibGljIGdldCB2aWV3a2VlcGVyQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuI192aWV3a2VlcGVyQ2xhc3NlcztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmlld2tlZXBlckNsYXNzZXModmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy4jX3ZpZXdrZWVwZXJDbGFzc2VzID0gdmFsdWU7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZXQgI2lzSW5FZGl0TW9kZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQgJiYgdGhpcy5hZ0dyaWQuYXBpKSB7XG4gICAgICBjb25zdCBwcmltYXJ5R3JpZEVkaXRpbmcgPSB0aGlzLmFnR3JpZC5hcGkuZ2V0RWRpdGluZ0NlbGxzKCkubGVuZ3RoID4gMDtcbiAgICAgIGlmIChwcmltYXJ5R3JpZEVkaXRpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBNb2R1bGVSZWdpc3RyeS5fX2lzUmVnaXN0ZXJlZChcbiAgICAgICAgICBNb2R1bGVOYW1lcy5FbnRlcnByaXNlQ29yZU1vZHVsZSxcbiAgICAgICAgICAnc2t5LWFnLWdyaWQtd3JhcHBlcicsXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICAvLyBBRyBHcmlkIDMyKyB0aHJvd3MgYW4gZXJyb3IgZm9yIGNhbGxpbmcgdGhpcyBBUEkgd2l0aG91dCBlbnRlcnByaXNlIG1vZHVsZXMuXG4gICAgICAgIGxldCBpbm5lckVkaXRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hZ0dyaWQuYXBpLmZvckVhY2hEZXRhaWxHcmlkSW5mbygoZGV0YWlsR3JpZDogRGV0YWlsR3JpZEluZm8pID0+IHtcbiAgICAgICAgICBpZiAoZGV0YWlsR3JpZD8uYXBpICYmIGRldGFpbEdyaWQuYXBpLmdldEVkaXRpbmdDZWxscygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlubmVyRWRpdGluZyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gaW5uZXJFZGl0aW5nO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAjX3ZpZXdrZWVwZXJDbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICByZWFkb25seSAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5ICN0aGVtZVN2YyA9IGluamVjdChTa3lUaGVtZVNlcnZpY2UsIHtcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgfSk7XG4gIHJlYWRvbmx5ICN3cmFwcGVyQ2xhc3NlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KFtcbiAgICBgYWctdGhlbWUtc2t5LWRhdGEtZ3JpZC1kZWZhdWx0YCxcbiAgXSk7XG4gIHJlYWRvbmx5ICNhZGFwdGVyU2VydmljZSA9IGluamVjdChTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNwYXJlbnRDaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZiwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHNraXBTZWxmOiB0cnVlLFxuICB9KTtcbiAgcmVhZG9ubHkgI2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuICByZWFkb25seSAjZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICByZWFkb25seSAjbXV0YXRpb25PYnNlcnZlclNlcnZpY2UgPSBpbmplY3QoU2t5TXV0YXRpb25PYnNlcnZlclNlcnZpY2UpO1xuICByZWFkb25seSAjaXNDb21wYWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5ICNoYXNFZGl0YWJsZUNsYXNzID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWRJbmRleCsrO1xuICAgIHRoaXMuYWZ0ZXJBbmNob3JJZCA9ICdza3ktYWctZ3JpZC1uYXYtYW5jaG9yLWFmdGVyLScgKyBpZEluZGV4O1xuICAgIHRoaXMuYmVmb3JlQW5jaG9ySWQgPSAnc2t5LWFnLWdyaWQtbmF2LWFuY2hvci1iZWZvcmUtJyArIGlkSW5kZXg7XG4gICAgdGhpcy5ncmlkSWQgPSAnc2t5LWFnLWdyaWQtJyArIGlkSW5kZXg7XG4gICAgdGhpcy53cmFwcGVyQ2xhc3NlcyQgPSB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWdHcmlkKSB7XG4gICAgICBjb25zdCBkb21MYXlvdXQgPSB0aGlzLmFnR3JpZC5ncmlkT3B0aW9ucz8uZG9tTGF5b3V0O1xuICAgICAgaWYgKGRvbUxheW91dCA9PT0gJ2F1dG9IZWlnaHQnKSB7XG4gICAgICAgIGlmICh0aGlzLmFnR3JpZC5ncmlkT3B0aW9ucz8uY29udGV4dD8uZW5hYmxlVG9wU2Nyb2xsKSB7XG4gICAgICAgICAgdGhpcy52aWV3a2VlcGVyQ2xhc3Nlcy5wdXNoKFxuICAgICAgICAgICAgJy5hZy1oZWFkZXInLFxuICAgICAgICAgICAgJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmlld2tlZXBlckNsYXNzZXMucHVzaCgnLmFnLWhlYWRlcicpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGRvbUxheW91dCA9PT0gJ25vcm1hbCcpIHtcbiAgICAgICAgdGhpcy5pc05vcm1hbExheW91dCA9IHRydWU7XG4gICAgICAgIHRoaXMuI3BhcmVudENoYW5nZURldGVjdG9yPy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmFnR3JpZC5ncmlkUmVhZHlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmZpcnN0RGF0YVJlbmRlcmVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbW92ZUhvcml6b250YWxTY3JvbGwoKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5yb3dEYXRhVXBkYXRlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQuY2VsbEVkaXRpbmdTdGFydGVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgocGFyYW1zOiBDZWxsRWRpdGluZ1N0YXJ0ZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChwYXJhbXMuY29sRGVmLnR5cGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVzID0gQXJyYXkuaXNBcnJheShwYXJhbXMuY29sRGVmLnR5cGUpXG4gICAgICAgICAgICAgID8gcGFyYW1zLmNvbERlZi50eXBlXG4gICAgICAgICAgICAgIDogW3BhcmFtcy5jb2xEZWYudHlwZV07XG4gICAgICAgICAgICBjb25zdCBhZGRDbGFzc2VzID0gdHlwZXMubWFwKFxuICAgICAgICAgICAgICAodCkgPT4gYHNreS1hZy1ncmlkLWNlbGwtZWRpdGluZy0ke3R9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5uZXh0KFtcbiAgICAgICAgICAgICAgLi4udGhpcy4jd3JhcHBlckNsYXNzZXMuZ2V0VmFsdWUoKSxcbiAgICAgICAgICAgICAgLi4uYWRkQ2xhc3NlcyxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0eXBlcy5pbmNsdWRlcyhTa3lDZWxsVHlwZS5UZW1wbGF0ZSkgJiZcbiAgICAgICAgICAgICAgcGFyYW1zLnJvd0luZGV4ICE9PSBudWxsXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhpcy5hZ0dyaWQ/LmFwaS5zZXRGb2N1c2VkQ2VsbChwYXJhbXMucm93SW5kZXgsIHBhcmFtcy5jb2x1bW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5jZWxsRWRpdGluZ1N0b3BwZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5uZXh0KFxuICAgICAgICAgICAgdGhpcy4jd3JhcHBlckNsYXNzZXNcbiAgICAgICAgICAgICAgLmdldFZhbHVlKClcbiAgICAgICAgICAgICAgLmZpbHRlcigoYykgPT4gIWMuc3RhcnRzV2l0aCgnc2t5LWFnLWdyaWQtY2VsbC1lZGl0aW5nLScpKSxcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmNlbGxGb2N1c2VkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IENlbGxGb2N1c2VkRXZlbnQpID0+IHtcbiAgICAgICAgICBldmVudC5jb250ZXh0ID8/PSB7fTtcbiAgICAgICAgICBldmVudC5jb250ZXh0WydsYXN0Rm9jdXNlZENlbGwnXSA9IHtcbiAgICAgICAgICAgIHJvd0luZGV4OiBldmVudC5yb3dJbmRleCxcbiAgICAgICAgICAgIGNvbHVtbjpcbiAgICAgICAgICAgICAgdHlwZW9mIGV2ZW50LmNvbHVtbiA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgICA/IGV2ZW50LmNvbHVtbj8uZ2V0Q29sSWQoKVxuICAgICAgICAgICAgICAgIDogYCR7ZXZlbnQuY29sdW1ufWAsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5oZWFkZXJGb2N1c2VkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IEhlYWRlckZvY3VzZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGV2ZW50LmNvbnRleHQgPz89IHt9O1xuICAgICAgICAgIGV2ZW50LmNvbnRleHRbJ2xhc3RGb2N1c2VkQ2VsbCddID0ge1xuICAgICAgICAgICAgcm93SW5kZXg6IG51bGwsXG4gICAgICAgICAgICBjb2x1bW46IGV2ZW50LmNvbHVtbj8uZ2V0VW5pcXVlSWRcbiAgICAgICAgICAgICAgPyBldmVudC5jb2x1bW4uZ2V0VW5pcXVlSWQoKVxuICAgICAgICAgICAgICA6IGAke2V2ZW50LmNvbHVtbn1gLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jaGFzRWRpdGFibGVDbGFzcy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2lzQ29tcGFjdC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdDxbYm9vbGVhbiwgYm9vbGVhbiwgU2t5VGhlbWVTZXR0aW5nc0NoYW5nZSB8IHVuZGVmaW5lZF0+KFtcbiAgICAgIHRoaXMuI2hhc0VkaXRhYmxlQ2xhc3MucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgIHRoaXMuI2lzQ29tcGFjdC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgdGhpcy4jdGhlbWVTdmM/LnNldHRpbmdzQ2hhbmdlID8/IG9mKHVuZGVmaW5lZCksXG4gICAgXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtoYXNFZGl0YWJsZUNsYXNzLCBpc0NvbXBhY3QsIHNldHRpbmdzXSkgPT4ge1xuICAgICAgICB0aGlzLiN1cGRhdGVHcmlkVGhlbWUoXG4gICAgICAgICAgaGFzRWRpdGFibGVDbGFzcyxcbiAgICAgICAgICBpc0NvbXBhY3QsXG4gICAgICAgICAgc2V0dGluZ3M/LmN1cnJlbnRTZXR0aW5ncyxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBhZ0dyaWRFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9XG4gICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignYWctZ3JpZC1hbmd1bGFyJyk7XG4gICAgY29uc3QgY2FsbGJhY2sgPSAoKTogdm9pZCA9PiB7XG4gICAgICB0aGlzLiNoYXNFZGl0YWJsZUNsYXNzLm5leHQoXG4gICAgICAgICEhYWdHcmlkRWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCdza3ktYWctZ3JpZC1lZGl0YWJsZScpLFxuICAgICAgKTtcbiAgICB9O1xuICAgIGlmIChhZ0dyaWRFbGVtZW50KSB7XG4gICAgICBjb25zdCBhZ0dyaWRDbGFzc09ic2VydmVyID1cbiAgICAgICAgdGhpcy4jbXV0YXRpb25PYnNlcnZlclNlcnZpY2UuY3JlYXRlKGNhbGxiYWNrKTtcbiAgICAgIGFnR3JpZENsYXNzT2JzZXJ2ZXIub2JzZXJ2ZShhZ0dyaWRFbGVtZW50LCB7XG4gICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydjbGFzcyddLFxuICAgICAgfSk7XG4gICAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgYWdHcmlkQ2xhc3NPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgY2FsbGJhY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IGNsb3NpbmcgYSBtb2RhbCB3aGVuIGZvY3VzZWQgaW4gQUcgR3JpZC5cbiAgICovXG4gIHB1YmxpYyBvbktleVVwRXNjYXBlKCRldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5hZ0dyaWQ/LmFwaS5zdG9wRWRpdGluZyh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkdyaWRLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWdHcmlkICYmICF0aGlzLiNpc0luRWRpdE1vZGUgJiYgZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgY29uc3QgaWRUb0ZvY3VzID0gZXZlbnQuc2hpZnRLZXlcbiAgICAgICAgPyB0aGlzLmJlZm9yZUFuY2hvcklkXG4gICAgICAgIDogdGhpcy5hZnRlckFuY2hvcklkO1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0Rm9jdXNlZEVsZW1lbnRCeUlkKFxuICAgICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIGlkVG9Gb2N1cyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgcHVibGljIG9uQW5jaG9yRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0gZXZlbnQucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBwcmV2aW91c1dhc0dyaWQgPVxuICAgICAgcmVsYXRlZFRhcmdldCAmJiB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMocmVsYXRlZFRhcmdldCk7XG5cbiAgICBpZiAodGhpcy5hZ0dyaWQgJiYgIXByZXZpb3VzV2FzR3JpZCkge1xuICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgIC5xdWVyeVNlbGVjdG9yKCcuYWctdGFiLWd1YXJkLmFnLXRhYi1ndWFyZC10b3AnKVxuICAgICAgICA/LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk6IHZvaWQge1xuICAgIGNvbnN0IHRvVG9wID0gISF0aGlzLmFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHQ/LmVuYWJsZVRvcFNjcm9sbDtcbiAgICBjb25zdCByb290ID0gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZy1yb290Jyk7XG4gICAgY29uc3QgaGVhZGVyID0gcm9vdD8ucXVlcnlTZWxlY3RvcignLmFnLWhlYWRlcicpO1xuICAgIGNvbnN0IGZsb2F0aW5nQm90dG9tID0gcm9vdD8ucXVlcnlTZWxlY3RvcignLmFnLWZsb2F0aW5nLWJvdHRvbScpO1xuICAgIGNvbnN0IHNjcm9sbGJhciA9IHJvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyk7XG4gICAgaWYgKHJvb3QgJiYgaGVhZGVyICYmIGZsb2F0aW5nQm90dG9tICYmIHNjcm9sbGJhcikge1xuICAgICAgaWYgKFxuICAgICAgICBzY3JvbGxiYXIuc3R5bGUuaGVpZ2h0ICE9PVxuICAgICAgICBzY3JvbGxiYXIuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgICAgICAnLS1za3ktYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbC13aWR0aCcsXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICBzY3JvbGxiYXIuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgJy0tc2t5LWFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwtd2lkdGgnLFxuICAgICAgICAgIHNjcm9sbGJhci5zdHlsZS5oZWlnaHQsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBpc1RvcCA9IHJvb3QuY2hpbGRyZW5bMV0ubWF0Y2hlcygnLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwnKTtcbiAgICAgIGlmICh0b1RvcCAmJiAhaXNUb3ApIHtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSB0aGlzLiNkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKHNjcm9sbGJhcik7XG4gICAgICAgIGhlYWRlci5hZnRlcihmcmFnbWVudCk7XG4gICAgICB9IGVsc2UgaWYgKCF0b1RvcCAmJiBpc1RvcCkge1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMuI2RvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoc2Nyb2xsYmFyKTtcbiAgICAgICAgZmxvYXRpbmdCb3R0b20uYWZ0ZXIoZnJhZ21lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVHcmlkVGhlbWUoXG4gICAgaGFzRWRpdGFibGVDbGFzczogYm9vbGVhbixcbiAgICBpc0NvbXBhY3Q6IGJvb2xlYW4sXG4gICAgdGhlbWVTZXR0aW5ncz86IFNreVRoZW1lU2V0dGluZ3MsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGFnVGhlbWUgPSBhZ0dyaWRUaGVtZShoYXNFZGl0YWJsZUNsYXNzLCB0aGVtZVNldHRpbmdzLCBpc0NvbXBhY3QpO1xuICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5nZXRWYWx1ZSgpO1xuICAgIGxldCB2YWx1ZSA9IFtcbiAgICAgIC4uLnByZXZpb3VzVmFsdWUuZmlsdGVyKChjKSA9PiAhYy5zdGFydHNXaXRoKCdhZy10aGVtZS0nKSksXG4gICAgICBhZ1RoZW1lLFxuICAgIF07XG4gICAgY29uc3QgdGV4dFNlbGVjdGlvbkNsYXNzID0gJ3NreS1hZy1ncmlkLXRleHQtc2VsZWN0aW9uJztcbiAgICBpZiAodGhpcy4jZ2V0VGV4dFNlbGVjdGlvbihoYXNFZGl0YWJsZUNsYXNzKSkge1xuICAgICAgdmFsdWUucHVzaCh0ZXh0U2VsZWN0aW9uQ2xhc3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcigoYykgPT4gYyAhPT0gdGV4dFNlbGVjdGlvbkNsYXNzKTtcbiAgICB9XG4gICAgdGhpcy4jd3JhcHBlckNsYXNzZXMubmV4dChbLi4ubmV3IFNldCh2YWx1ZSldKTtcbiAgfVxuXG4gICNnZXRUZXh0U2VsZWN0aW9uKGhhc0VkaXRhYmxlQ2xhc3M6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQ/LmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVDZWxsVGV4dFNlbGVjdGlvbikge1xuICAgICAgcmV0dXJuICFoYXNFZGl0YWJsZUNsYXNzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8c3BhblxuICBjbGFzcz1cIm5hdi1hbmNob3JcIlxuICB0YWJpbmRleD1cIjBcIlxuICBbaWRdPVwiYmVmb3JlQW5jaG9ySWRcIlxuICAoZm9jdXNpbik9XCJvbkFuY2hvckZvY3VzKCRldmVudClcIlxuPlxuPC9zcGFuPlxuPGRpdlxuICBjbGFzcz1cInNreS1hZy1ncmlkXCJcbiAgdGFiaW5kZXg9XCIwXCJcbiAgW2NsYXNzLnNreS1hZy1ncmlkLXRvcC1zY3JvbGxiYXJdPVwiXG4gICAgYWdHcmlkPy5ncmlkT3B0aW9ucz8uY29udGV4dCAmJlxuICAgIGFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHRbJ2VuYWJsZVRvcFNjcm9sbCddXG4gIFwiXG4gIFtuZ0NsYXNzXT1cIndyYXBwZXJDbGFzc2VzJCB8IGFzeW5jXCJcbiAgW2lkXT1cImdyaWRJZFwiXG4gIFtza3lWaWV3a2VlcGVyXT1cInZpZXdrZWVwZXJDbGFzc2VzXCJcbiAgKGtleWRvd24pPVwib25HcmlkS2V5ZG93bigkZXZlbnQpXCJcbiAgKGtleXVwLmVzY2FwZSk9XCJvbktleVVwRXNjYXBlKCRldmVudClcIlxuPlxuICA8bmctY29udGVudCAvPlxuPC9kaXY+XG48c3BhblxuICB0YWJpbmRleD1cIjBcIlxuICBjbGFzcz1cIm5hdi1hbmNob3JcIlxuICBbaWRdPVwiYWZ0ZXJBbmNob3JJZFwiXG4gIChmb2N1c2luKT1cIm9uQW5jaG9yRm9jdXMoJGV2ZW50KVwiXG4+XG48L3NwYW4+XG4iXX0=
|
|
@@ -27,8 +27,8 @@ import { SkyAgGridHeaderGroupComponent } from './header/header-group.component';
|
|
|
27
27
|
import { SkyAgGridHeaderComponent } from './header/header.component';
|
|
28
28
|
import * as i0 from "@angular/core";
|
|
29
29
|
export class SkyAgGridModule {
|
|
30
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
31
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
30
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
31
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: SkyAgGridModule, declarations: [SkyAgGridDataManagerAdapterDirective,
|
|
32
32
|
SkyAgGridHeaderComponent,
|
|
33
33
|
SkyAgGridHeaderGroupComponent,
|
|
34
34
|
SkyAgGridRowDeleteDirective,
|
|
@@ -58,7 +58,7 @@ export class SkyAgGridModule {
|
|
|
58
58
|
SkyAgGridWrapperComponent,
|
|
59
59
|
SkyAgGridHeaderComponent,
|
|
60
60
|
SkyAgGridHeaderGroupComponent] }); }
|
|
61
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
61
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyAgGridModule, imports: [AgGridModule,
|
|
62
62
|
CommonModule,
|
|
63
63
|
SkyAgGridCellEditorAutocompleteModule,
|
|
64
64
|
SkyAgGridCellEditorDatepickerModule,
|
|
@@ -80,7 +80,7 @@ export class SkyAgGridModule {
|
|
|
80
80
|
SkyViewkeeperModule,
|
|
81
81
|
SkyThemeModule] }); }
|
|
82
82
|
}
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyAgGridModule, decorators: [{
|
|
84
84
|
type: NgModule,
|
|
85
85
|
args: [{
|
|
86
86
|
declarations: [
|