@clr/angular 17.10.0 → 17.11.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/clarity.api.md +96 -40
- package/data/datagrid/datagrid-column.d.ts +6 -1
- package/data/datagrid/datagrid-filter.d.ts +2 -9
- package/data/datagrid/datagrid-row.d.ts +1 -0
- package/data/datagrid/datagrid-virtual-scroll.directive.d.ts +2 -0
- package/data/datagrid/datagrid.d.ts +4 -1
- package/data/datagrid/utils/datagrid-filter-registrar.d.ts +1 -1
- package/data/datagrid/utils/key-navigation-grid.controller.d.ts +7 -8
- package/data/datagrid/utils/key-navigation-strategies/expanded-columns-row.d.ts +0 -2
- package/data/datagrid/utils/key-navigation-strategies/expanded-row.d.ts +0 -2
- package/data/datagrid/utils/key-navigation-utils.d.ts +2 -0
- package/esm2020/accordion/stepper/stepper-panel.mjs +3 -3
- package/esm2020/button/button-group/button.mjs +20 -4
- package/esm2020/data/datagrid/datagrid-column.mjs +33 -17
- package/esm2020/data/datagrid/datagrid-detail-header.mjs +3 -3
- package/esm2020/data/datagrid/datagrid-filter.mjs +2 -21
- package/esm2020/data/datagrid/datagrid-pagination.mjs +35 -31
- package/esm2020/data/datagrid/datagrid-row.mjs +6 -7
- package/esm2020/data/datagrid/datagrid-virtual-scroll.directive.mjs +30 -32
- package/esm2020/data/datagrid/datagrid.mjs +43 -11
- package/esm2020/data/datagrid/utils/datagrid-filter-registrar.mjs +1 -1
- package/esm2020/data/datagrid/utils/key-navigation-grid.controller.mjs +32 -34
- package/esm2020/data/datagrid/utils/key-navigation-strategies/expanded-columns-row.mjs +1 -4
- package/esm2020/data/datagrid/utils/key-navigation-strategies/expanded-row.mjs +1 -4
- package/esm2020/data/datagrid/utils/key-navigation-utils.mjs +15 -2
- package/esm2020/data/stack-view/stack-block.mjs +3 -3
- package/esm2020/emphasis/alert/alert.mjs +3 -3
- package/esm2020/forms/combobox/combobox.mjs +3 -3
- package/esm2020/forms/combobox/combobox.module.mjs +20 -3
- package/esm2020/forms/combobox/index.mjs +2 -1
- package/esm2020/forms/combobox/option-group.mjs +42 -0
- package/esm2020/forms/combobox/option-items.directive.mjs +5 -1
- package/esm2020/forms/combobox/options.mjs +3 -3
- package/esm2020/forms/common/abstract-control.mjs +1 -1
- package/esm2020/forms/common/if-control-state/abstract-if-state.mjs +1 -1
- package/esm2020/forms/datepicker/datepicker-view-manager.mjs +3 -3
- package/esm2020/forms/file-input/file-input-container.mjs +2 -2
- package/esm2020/forms/file-input/file-input.mjs +11 -4
- package/esm2020/forms/number-input/number-input-container.mjs +6 -3
- package/esm2020/forms/number-input/number-input.mjs +10 -3
- package/esm2020/layout/breadcrumbs/breadcrumbs.mjs +2 -2
- package/esm2020/modal/index.mjs +2 -2
- package/esm2020/modal/modal-host.component.mjs +29 -0
- package/esm2020/modal/modal.mjs +7 -3
- package/esm2020/modal/modal.module.mjs +4 -4
- package/esm2020/modal/side-panel.mjs +102 -47
- package/esm2020/popover/common/abstract-popover.mjs +8 -2
- package/esm2020/popover/dropdown/dropdown-item.mjs +10 -4
- package/esm2020/popover/dropdown/dropdown-trigger.mjs +12 -4
- package/esm2020/popover/dropdown/utils/content-wrapping.mjs +22 -0
- package/esm2020/utils/animations/expandable-animation/base-expandable-animation.mjs +9 -1
- package/esm2020/utils/animations/expandable-animation/expandable-animation.mjs +5 -6
- package/esm2020/utils/chocolate/oompa-loompa.mjs +1 -1
- package/esm2020/utils/i18n/common-strings.default.mjs +2 -1
- package/esm2020/utils/i18n/common-strings.interface.mjs +1 -1
- package/esm2020/wizard/wizard-stepnav-item.mjs +60 -24
- package/esm2020/wizard/wizard.mjs +3 -3
- package/fesm2015/clr-angular.mjs +594 -315
- package/fesm2015/clr-angular.mjs.map +1 -1
- package/fesm2020/clr-angular.mjs +589 -313
- package/fesm2020/clr-angular.mjs.map +1 -1
- package/forms/combobox/combobox.module.d.ts +12 -11
- package/forms/combobox/index.d.ts +1 -0
- package/forms/combobox/option-group.d.ts +9 -0
- package/forms/combobox/option-items.directive.d.ts +1 -0
- package/forms/common/abstract-control.d.ts +1 -1
- package/forms/common/if-control-state/abstract-if-state.d.ts +1 -1
- package/forms/file-input/file-input.d.ts +2 -0
- package/forms/number-input/number-input-container.d.ts +1 -0
- package/forms/number-input/number-input.d.ts +2 -0
- package/modal/index.d.ts +1 -1
- package/modal/modal-host.component.d.ts +5 -0
- package/modal/modal.module.d.ts +2 -2
- package/modal/side-panel.d.ts +18 -10
- package/package.json +2 -2
- package/popover/common/abstract-popover.d.ts +1 -1
- package/popover/dropdown/dropdown-item.d.ts +5 -1
- package/popover/dropdown/dropdown-trigger.d.ts +5 -2
- package/popover/dropdown/utils/content-wrapping.d.ts +2 -0
- package/utils/animations/expandable-animation/base-expandable-animation.d.ts +3 -0
- package/utils/animations/expandable-animation/expandable-animation.d.ts +0 -3
- package/utils/chocolate/oompa-loompa.d.ts +1 -1
- package/utils/i18n/common-strings.interface.d.ts +4 -0
- package/wizard/wizard-stepnav-item.d.ts +16 -2
- package/esm2020/modal/modal-host.directive.mjs +0 -20
- package/modal/modal-host.directive.d.ts +0 -5
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* This software is released under MIT license.
|
|
5
5
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
6
6
|
*/
|
|
7
|
-
import { Injectable } from '@angular/core';
|
|
7
|
+
import { EventEmitter, Injectable } from '@angular/core';
|
|
8
8
|
import { fromEvent, Subject } from 'rxjs';
|
|
9
|
-
import {
|
|
9
|
+
import { takeUntil } from 'rxjs/operators';
|
|
10
10
|
import { Keys } from '../../../utils/enums/keys.enum';
|
|
11
11
|
import { KeyNavigationUtils } from './key-navigation-utils';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
@@ -35,15 +35,16 @@ function isActionableItem(el) {
|
|
|
35
35
|
export class KeyNavigationGridController {
|
|
36
36
|
constructor(zone) {
|
|
37
37
|
this.zone = zone;
|
|
38
|
+
this.nextCellCoordsEmitter = new EventEmitter(false);
|
|
38
39
|
this.skipItemFocus = false;
|
|
39
|
-
this.
|
|
40
|
-
this.destroy$ = new Subject();
|
|
41
|
-
this._activeCell = null;
|
|
40
|
+
this.preventScrollOnFocus = false;
|
|
42
41
|
this.config = {
|
|
43
42
|
keyGridRows: '[role=row]:not(.datagrid-placeholder):not([style*="display: none"])',
|
|
44
43
|
keyGridCells: '[role=gridcell]:not(.datagrid-hidden-column):not(.datagrid-placeholder-content), [role=columnheader]:not(.datagrid-hidden-column):not(.datagrid-placeholder-content), .datagrid-detail-caret',
|
|
45
44
|
keyGrid: '[role=grid]',
|
|
46
45
|
};
|
|
46
|
+
this.listenersAdded = false;
|
|
47
|
+
this.destroy$ = new Subject();
|
|
47
48
|
}
|
|
48
49
|
ngOnDestroy() {
|
|
49
50
|
this.destroy$.next();
|
|
@@ -63,22 +64,17 @@ export class KeyNavigationGridController {
|
|
|
63
64
|
? Array.from(this.keyNavUtils.cells).find(c => c === e.target || c === e.target.closest(this.config.keyGridCells))
|
|
64
65
|
: null;
|
|
65
66
|
if (activeCell) {
|
|
66
|
-
this.setActiveCell(activeCell
|
|
67
|
+
this.setActiveCell(activeCell);
|
|
68
|
+
if (!isActionableItem(e.target)) {
|
|
69
|
+
this.focusElement(activeCell);
|
|
70
|
+
}
|
|
67
71
|
}
|
|
68
72
|
}
|
|
69
73
|
});
|
|
70
74
|
fromEvent(this.keyNavUtils.grid, 'wheel')
|
|
71
75
|
.pipe(takeUntil(this.destroy$))
|
|
72
76
|
.subscribe(() => {
|
|
73
|
-
this.
|
|
74
|
-
});
|
|
75
|
-
fromEvent(this.keyNavUtils.grid, 'focusout')
|
|
76
|
-
.pipe(debounceTime(0), takeUntil(this.destroy$))
|
|
77
|
-
.subscribe(() => {
|
|
78
|
-
if (this.keyNavUtils.grid.contains(document.activeElement)) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
this.removeActiveCell();
|
|
77
|
+
this.nextCellCoordsEmitter.emit(null);
|
|
82
78
|
});
|
|
83
79
|
fromEvent(this.keyNavUtils.grid, 'keydown')
|
|
84
80
|
.pipe(takeUntil(this.destroy$))
|
|
@@ -97,11 +93,17 @@ export class KeyNavigationGridController {
|
|
|
97
93
|
e.key === Keys.PageUp ||
|
|
98
94
|
e.key === Keys.PageDown) {
|
|
99
95
|
const nextCellCoords = this.keyNavUtils.getNextItemCoordinate(e);
|
|
96
|
+
if (nextCellCoords.y > 0 &&
|
|
97
|
+
(e.key === Keys.ArrowUp || e.key === Keys.ArrowDown || e.key === Keys.PageUp || e.key === Keys.PageDown)) {
|
|
98
|
+
this.keyNavUtils.setAriaRowIndexTo(nextCellCoords);
|
|
99
|
+
this.nextCellCoordsEmitter.emit(nextCellCoords);
|
|
100
|
+
}
|
|
100
101
|
const activeItem = this.keyNavUtils.rows
|
|
101
102
|
? Array.from(this.keyNavUtils.getCellsForRow(nextCellCoords.y))[nextCellCoords.x]
|
|
102
103
|
: null;
|
|
103
104
|
if (activeItem) {
|
|
104
105
|
this.setActiveCell(activeItem);
|
|
106
|
+
this.focusElement(activeItem, { preventScroll: this.preventScrollOnFocus });
|
|
105
107
|
}
|
|
106
108
|
e.preventDefault();
|
|
107
109
|
}
|
|
@@ -119,13 +121,7 @@ export class KeyNavigationGridController {
|
|
|
119
121
|
const firstCell = this.keyNavUtils.cells ? this.keyNavUtils.cells[0] : null;
|
|
120
122
|
firstCell?.setAttribute('tabindex', '0');
|
|
121
123
|
}
|
|
122
|
-
|
|
123
|
-
this._activeCell = null;
|
|
124
|
-
}
|
|
125
|
-
getActiveCell() {
|
|
126
|
-
return this._activeCell;
|
|
127
|
-
}
|
|
128
|
-
setActiveCell(activeCell, { keepFocus } = { keepFocus: false }) {
|
|
124
|
+
setActiveCell(activeCell) {
|
|
129
125
|
const prior = this.keyNavUtils.cells
|
|
130
126
|
? Array.from(this.keyNavUtils.cells).find(c => c.getAttribute('tabindex') === '0')
|
|
131
127
|
: null;
|
|
@@ -133,18 +129,20 @@ export class KeyNavigationGridController {
|
|
|
133
129
|
prior.setAttribute('tabindex', '-1');
|
|
134
130
|
}
|
|
135
131
|
activeCell.setAttribute('tabindex', '0');
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
132
|
+
}
|
|
133
|
+
focusElement(activeCell, options = { preventScroll: false }) {
|
|
134
|
+
if (this.skipItemFocus) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
let elementToFocus;
|
|
138
|
+
if (activeCell.getAttribute('role') === 'columnheader') {
|
|
139
|
+
elementToFocus = activeCell;
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const tabbableElements = getTabbableItems(activeCell);
|
|
143
|
+
elementToFocus = tabbableElements.length ? tabbableElements[0] : activeCell;
|
|
147
144
|
}
|
|
145
|
+
elementToFocus.focus(options);
|
|
148
146
|
}
|
|
149
147
|
}
|
|
150
148
|
KeyNavigationGridController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: KeyNavigationGridController, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -152,4 +150,4 @@ KeyNavigationGridController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "1
|
|
|
152
150
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: KeyNavigationGridController, decorators: [{
|
|
153
151
|
type: Injectable
|
|
154
152
|
}], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LW5hdmlnYXRpb24tZ3JpZC5jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS9kYXRhZ3JpZC91dGlscy9rZXktbmF2aWdhdGlvbi1ncmlkLmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFNUQsTUFBTSx1QkFBdUIsR0FBRztJQUM5QixTQUFTO0lBQ1QsWUFBWTtJQUNaLHVCQUF1QjtJQUN2Qix3QkFBd0I7SUFDeEIsd0JBQXdCO0lBQ3hCLDBCQUEwQjtJQUMxQixRQUFRO0lBQ1IsUUFBUTtJQUNSLE9BQU87SUFDUCx3QkFBd0I7SUFDeEIsK0JBQStCO0NBQ2hDLENBQUM7QUFFRixNQUFNLFVBQVUsZ0JBQWdCLENBQUMsRUFBZTtJQUM5QyxNQUFNLHFCQUFxQixHQUFHLENBQUMsR0FBRyx1QkFBdUIsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQzdGLE1BQU0sZ0JBQWdCLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBa0IsQ0FBQztBQUM1RSxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxFQUFlO0lBQ3ZDLE1BQU0sa0JBQWtCLEdB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QUFDLEtBQUs7WUFDbEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQztZQUNsRixDQUFDLENBQUMsSUFBSSxDQUFDO1FBRVQsSUFBSSxLQUFLLEVBQUU7WUFDVCxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN0QztRQUVELFVBQVUsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3JDLElBQUksY0FBMkIsQ0FBQztZQUVoQyxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssY0FBYyxFQUFFO2dCQUN0RCxjQUFjLEdBQUcsVUFBVSxDQUFDO2FBQzdCO2lCQUFNO2dCQUNMLE1BQU0sZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3RELGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7YUFDN0U7WUFFRCxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDOzt3SEE5SVUsMkJBQTJCOzRIQUEzQiwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEtleXMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9lbnVtcy9rZXlzLmVudW0nO1xuaW1wb3J0IHsgS2V5TmF2aWdhdGlvblV0aWxzIH0gZnJvbSAnLi9rZXktbmF2aWdhdGlvbi11dGlscyc7XG5cbmNvbnN0IGFjdGlvbmFibGVJdGVtU2VsZWN0b3JzID0gW1xuICAnYVtocmVmXScsXG4gICdhcmVhW2hyZWZdJyxcbiAgJ2lucHV0Om5vdChbZGlzYWJsZWRdKScsXG4gICdidXR0b246bm90KFtkaXNhYmxlZF0pJyxcbiAgJ3NlbGVjdDpub3QoW2Rpc2FibGVkXSknLFxuICAndGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pJyxcbiAgJ2lmcmFtZScsXG4gICdvYmplY3QnLFxuICAnZW1iZWQnLFxuICAnW2NvbnRlbnRlZGl0YWJsZT10cnVlXScsXG4gICdbcm9sZT1idXR0b25dOm5vdChbZGlzYWJsZWRdKScsXG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGFiYmFibGVJdGVtcyhlbDogSFRNTEVsZW1lbnQpIHtcbiAgY29uc3QgdGFiYmFibGVJdGVtU2VsZWN0b3JzID0gWy4uLmFjdGlvbmFibGVJdGVtU2VsZWN0b3JzLCAnW3RhYmluZGV4PVwiMFwiXTpub3QoW2Rpc2FibGVkXSknXTtcbiAgY29uc3QgdGFiYmFibGVTZWxlY3RvciA9IHRhYmJhYmxlSXRlbVNlbGVjdG9ycy5qb2luKCcsJyk7XG4gIHJldHVybiBBcnJheS5mcm9tKGVsLnF1ZXJ5U2VsZWN0b3JBbGwodGFiYmFibGVTZWxlY3RvcikpIGFzIEhUTUxFbGVtZW50W107XG59XG5cbmZ1bmN0aW9uIGlzQWN0aW9uYWJsZUl0ZW0oZWw6IEhUTUxFbGVtZW50KSB7XG4gIGNvbnN0IGFjdGlvbmFibGVTZWxlY3RvciA9IGFjdGlvbmFibGVJdGVtU2VsZWN0b3JzLmpvaW4oJywnKTtcbiAgcmV0dXJuIGVsLm1hdGNoZXMoYWN0aW9uYWJsZVNlbGVjdG9yKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlOYXZpZ2F0aW9uR3JpZENvbmZpZyB7XG4gIGtleUdyaWQ6IHN0cmluZztcbiAga2V5R3JpZFJvd3M6IHN0cmluZztcbiAga2V5R3JpZENlbGxzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbENvb3JkaW5hdGVzIHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBLZXlOYXZpZ2F0aW9uR3JpZENvbnRyb2xsZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBza2lwSXRlbUZvY3VzID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBrZXlOYXZVdGlsczogS2V5TmF2aWdhdGlvblV0aWxzO1xuICBwcml2YXRlIGNvbmZpZzogS2V5TmF2aWdhdGlvbkdyaWRDb25maWc7XG4gIHByaXZhdGUgbGlzdGVuZXJzQWRkZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgX2FjdGl2ZUNlbGw6IEhUTUxFbGVtZW50ID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSkge1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAga2V5R3JpZFJvd3M6ICdbcm9sZT1yb3ddOm5vdCguZGF0YWdyaWQtcGxhY2Vob2xkZXIpOm5vdChbc3R5bGUqPVwiZGlzcGxheTogbm9uZVwiXSknLFxuICAgICAga2V5R3JpZENlbGxzOlxuICAgICAgICAnW3JvbGU9Z3JpZGNlbGxdOm5vdCguZGF0YWdyaWQtaGlkZGVuLWNvbHVtbik6bm90KC5kYXRhZ3JpZC1wbGFjZWhvbGRlci1jb250ZW50KSwgW3JvbGU9Y29sdW1uaGVhZGVyXTpub3QoLmRhdGFncmlkLWhpZGRlbi1jb2x1bW4pOm5vdCguZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGVudCksIC5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQnLFxuICAgICAga2V5R3JpZDogJ1tyb2xlPWdyaWRdJyxcbiAgICB9O1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgYWRkTGlzdGVuZXJzKCkge1xuICAgIGlmICh0aGlzLmxpc3RlbmVyc0FkZGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGZyb21FdmVudCh0aGlzLmtleU5hdlV0aWxzLmdyaWQsICdtb3VzZWRvd24nKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAvLyBwcmVzZXJ2ZSByaWdodCBjbGljayBmb3IgY29udGV4dCBtZW51cyAmIGtleWJvYXJkIG1vdXNlIGNvbnRyb2wgaHR0cHM6Ly9hcHBsZS5zdGFja2V4Y2hhbmdlLmNvbS9xdWVzdGlvbnMvMzI3MTUvaG93LWRvLWktb3Blbi10aGUtY29udGV4dC1tZW51LWZyb20tYS1tYWMta2V5Ym9hcmRcbiAgICAgICAgICBpZiAoZS5idXR0b25zID09PSAxICYmICFlLmN0cmxLZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUNlbGwgPSB0aGlzLmtleU5hdlV0aWxzLmNlbGxzXG4gICAgICAgICAgICAgID8gQXJyYXkuZnJvbSh0aGlzLmtleU5hdlV0aWxzLmNlbGxzKS5maW5kKFxuICAgICAgICAgICAgICAgICAgYyA9PiBjID09PSBlLnRhcmdldCB8fCBjID09PSAoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QodGhpcy5jb25maWcua2V5R3JpZENlbGxzKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGFjdGl2ZUNlbGwpIHtcbiAgICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVDZWxsKGFjdGl2ZUNlbGwsIHsga2VlcEZvY3VzOiBpc0FjdGlvbmFibGVJdGVtKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBmcm9tRXZlbnQodGhpcy5rZXlOYXZVdGlscy5ncmlkLCAnd2hlZWwnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWN0aXZlQ2VsbCgpO1xuICAgICAgICB9KTtcblxuICAgICAgZnJvbUV2ZW50KHRoaXMua2V5TmF2VXRpbHMuZ3JpZCwgJ2ZvY3Vzb3V0JylcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDApLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmtleU5hdlV0aWxzLmdyaWQuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnJlbW92ZUFjdGl2ZUNlbGwoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGZyb21FdmVudCh0aGlzLmtleU5hdlV0aWxzLmdyaWQsICdrZXlkb3duJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgLy8gU2tpcCBjb2x1bW4gcmVzaXplIGV2ZW50c1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0LmNvbnRhaW5zKCdkcmFnLWhhbmRsZScpICYmXG4gICAgICAgICAgICAoZS5rZXkgPT09IEtleXMuQXJyb3dMZWZ0IHx8IGUua2V5ID09PSBLZXlzLkFycm93UmlnaHQpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUua2V5ID09PSBLZXlzLkFycm93VXAgfHxcbiAgICAgICAgICAgIGUua2V5ID09PSBLZXlzLkFycm93RG93biB8fFxuICAgICAgICAgICAgZS5rZXkgPT09IEtleXMuQXJyb3dMZWZ0IHx8XG4gICAgICAgICAgICBlLmtleSA9PT0gS2V5cy5BcnJvd1JpZ2h0IHx8XG4gICAgICAgICAgICBlLmtleSA9PT0gS2V5cy5FbmQgfHxcbiAgICAgICAgICAgIGUua2V5ID09PSBLZXlzLkhvbWUgfHxcbiAgICAgICAgICAgIGUua2V5ID09PSBLZXlzLlBhZ2VVcCB8fFxuICAgICAgICAgICAgZS5rZXkgPT09IEtleXMuUGFnZURvd25cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRDZWxsQ29vcmRzID0gdGhpcy5rZXlOYXZVdGlscy5nZXROZXh0SXRlbUNvb3JkaW5hdGUoZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSB0aGlzLmtleU5hdlV0aWxzLnJvd3NcbiAgICAgICAgICAgICAgPyAoQXJyYXkuZnJvbSh0aGlzLmtleU5hdlV0aWxzLmdldENlbGxzRm9yUm93KG5leHRDZWxsQ29vcmRzLnkpKVtuZXh0Q2VsbENvb3Jkcy54XSBhcyBIVE1MRWxlbWVudClcbiAgICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgICAgICBpZiAoYWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgICB0aGlzLnNldEFjdGl2ZUNlbGwoYWN0aXZlSXRlbSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMubGlzdGVuZXJzQWRkZWQgPSB0cnVlO1xuICB9XG5cbiAgaW5pdGlhbGl6ZUtleUdyaWQoaG9zdDogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLmtleU5hdlV0aWxzID0gbmV3IEtleU5hdmlnYXRpb25VdGlscyhob3N0LCB0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5hZGRMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnJlc2V0S2V5R3JpZCgpO1xuICB9XG5cbiAgcmVzZXRLZXlHcmlkKCkge1xuICAgIHRoaXMua2V5TmF2VXRpbHMuY2VsbHM/LmZvckVhY2goKGk6IEhUTUxFbGVtZW50KSA9PiBpLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnLTEnKSk7XG4gICAgY29uc3QgZmlyc3RDZWxsID0gdGhpcy5rZXlOYXZVdGlscy5jZWxscyA/IHRoaXMua2V5TmF2VXRpbHMuY2VsbHNbMF0gOiBudWxsO1xuICAgIGZpcnN0Q2VsbD8uc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gIH1cblxuICByZW1vdmVBY3RpdmVDZWxsKCkge1xuICAgIHRoaXMuX2FjdGl2ZUNlbGwgPSBudWxsO1xuICB9XG5cbiAgZ2V0QWN0aXZlQ2VsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlQ2VsbDtcbiAgfVxuXG4gIHNldEFjdGl2ZUNlbGwoYWN0aXZlQ2VsbDogSFRNTEVsZW1lbnQsIHsga2VlcEZvY3VzIH0gPSB7IGtlZXBGb2N1czogZmFsc2UgfSkge1xuICAgIGNvbnN0IHByaW9yID0gdGhpcy5rZXlOYXZVdGlscy5jZWxsc1xuICAgICAgPyBBcnJheS5mcm9tKHRoaXMua2V5TmF2VXRpbHMuY2VsbHMpLmZpbmQoYyA9PiBjLmdldEF0dHJpYnV0ZSgndGFiaW5kZXgnKSA9PT0gJzAnKVxuICAgICAgOiBudWxsO1xuXG4gICAgaWYgKHByaW9yKSB7XG4gICAgICBwcmlvci5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJy0xJyk7XG4gICAgfVxuXG4gICAgYWN0aXZlQ2VsbC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICB0aGlzLl9hY3RpdmVDZWxsID0gYWN0aXZlQ2VsbDtcblxuICAgIGlmICghdGhpcy5za2lwSXRlbUZvY3VzICYmICFrZWVwRm9jdXMpIHtcbiAgICAgIGxldCBlbGVtZW50VG9Gb2N1czogSFRNTEVsZW1lbnQ7XG5cbiAgICAgIGlmIChhY3RpdmVDZWxsLmdldEF0dHJpYnV0ZSgncm9sZScpID09PSAnY29sdW1uaGVhZGVyJykge1xuICAgICAgICBlbGVtZW50VG9Gb2N1cyA9IGFjdGl2ZUNlbGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB0YWJiYWJsZUVsZW1lbnRzID0gZ2V0VGFiYmFibGVJdGVtcyhhY3RpdmVDZWxsKTtcbiAgICAgICAgZWxlbWVudFRvRm9jdXMgPSB0YWJiYWJsZUVsZW1lbnRzLmxlbmd0aCA/IHRhYmJhYmxlRWxlbWVudHNbMF0gOiBhY3RpdmVDZWxsO1xuICAgICAgfVxuXG4gICAgICBlbGVtZW50VG9Gb2N1cy5mb2N1cygpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LW5hdmlnYXRpb24tZ3JpZC5jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS9kYXRhZ3JpZC91dGlscy9rZXktbmF2aWdhdGlvbi1ncmlkLmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFNUQsTUFBTSx1QkFBdUIsR0FBRztJQUM5QixTQUFTO0lBQ1QsWUFBWTtJQUNaLHVCQUF1QjtJQUN2Qix3QkFBd0I7SUFDeEIsd0JBQXdCO0lBQ3hCLDBCQUEwQjtJQUMxQixRQUFRO0lBQ1IsUUFBUTtJQUNSLE9BQU87SUFDUCx3QkFBd0I7SUFDeEIsK0JBQStCO0NBQ2hDLENBQUM7QUFFRixNQUFNLFVBQVUsZ0JBQWdCLENBQUMsRUFBZTtJQUM5QyxNQUFNLHFCQUFxQixHQUFHLENBQUMsR0FBRyx1QkFBdUIsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQzdGLE1BQU0sZ0JBQWdCLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBa0IsQ0FBQztBQUM1RSxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxFQUFlO0lBQ3ZDLE1BQU0sa0JBQWtCLEdB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YWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBLZXlzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZW51bXMva2V5cy5lbnVtJztcbmltcG9ydCB7IEtleU5hdmlnYXRpb25VdGlscyB9IGZyb20gJy4va2V5LW5hdmlnYXRpb24tdXRpbHMnO1xuXG5jb25zdCBhY3Rpb25hYmxlSXRlbVNlbGVjdG9ycyA9IFtcbiAgJ2FbaHJlZl0nLFxuICAnYXJlYVtocmVmXScsXG4gICdpbnB1dDpub3QoW2Rpc2FibGVkXSknLFxuICAnYnV0dG9uOm5vdChbZGlzYWJsZWRdKScsXG4gICdzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyxcbiAgJ3RleHRhcmVhOm5vdChbZGlzYWJsZWRdKScsXG4gICdpZnJhbWUnLFxuICAnb2JqZWN0JyxcbiAgJ2VtYmVkJyxcbiAgJ1tjb250ZW50ZWRpdGFibGU9dHJ1ZV0nLFxuICAnW3JvbGU9YnV0dG9uXTpub3QoW2Rpc2FibGVkXSknLFxuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRhYmJhYmxlSXRlbXMoZWw6IEhUTUxFbGVtZW50KSB7XG4gIGNvbnN0IHRhYmJhYmxlSXRlbVNlbGVjdG9ycyA9IFsuLi5hY3Rpb25hYmxlSXRlbVNlbGVjdG9ycywgJ1t0YWJpbmRleD1cIjBcIl06bm90KFtkaXNhYmxlZF0pJ107XG4gIGNvbnN0IHRhYmJhYmxlU2VsZWN0b3IgPSB0YWJiYWJsZUl0ZW1TZWxlY3RvcnMuam9pbignLCcpO1xuICByZXR1cm4gQXJyYXkuZnJvbShlbC5xdWVyeVNlbGVjdG9yQWxsKHRhYmJhYmxlU2VsZWN0b3IpKSBhcyBIVE1MRWxlbWVudFtdO1xufVxuXG5mdW5jdGlvbiBpc0FjdGlvbmFibGVJdGVtKGVsOiBIVE1MRWxlbWVudCkge1xuICBjb25zdCBhY3Rpb25hYmxlU2VsZWN0b3IgPSBhY3Rpb25hYmxlSXRlbVNlbGVjdG9ycy5qb2luKCcsJyk7XG4gIHJldHVybiBlbC5tYXRjaGVzKGFjdGlvbmFibGVTZWxlY3Rvcik7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5TmF2aWdhdGlvbkdyaWRDb25maWcge1xuICBrZXlHcmlkOiBzdHJpbmc7XG4gIGtleUdyaWRSb3dzOiBzdHJpbmc7XG4gIGtleUdyaWRDZWxsczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENlbGxDb29yZGluYXRlcyB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICBhcmlhUm93SW5kZXg/OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBLZXlOYXZpZ2F0aW9uR3JpZENvbnRyb2xsZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBuZXh0Q2VsbENvb3Jkc0VtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPENlbGxDb29yZGluYXRlcz4oZmFsc2UpO1xuXG4gIHNraXBJdGVtRm9jdXMgPSBmYWxzZTtcbiAgcHJldmVudFNjcm9sbE9uRm9jdXMgPSBmYWxzZTtcblxuICBjb25maWc6IEtleU5hdmlnYXRpb25HcmlkQ29uZmlnID0ge1xuICAgIGtleUdyaWRSb3dzOiAnW3JvbGU9cm93XTpub3QoLmRhdGFncmlkLXBsYWNlaG9sZGVyKTpub3QoW3N0eWxlKj1cImRpc3BsYXk6IG5vbmVcIl0pJyxcbiAgICBrZXlHcmlkQ2VsbHM6XG4gICAgICAnW3JvbGU9Z3JpZGNlbGxdOm5vdCguZGF0YWdyaWQtaGlkZGVuLWNvbHVtbik6bm90KC5kYXRhZ3JpZC1wbGFjZWhvbGRlci1jb250ZW50KSwgW3JvbGU9Y29sdW1uaGVhZGVyXTpub3QoLmRhdGFncmlkLWhpZGRlbi1jb2x1bW4pOm5vdCguZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGVudCksIC5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQnLFxuICAgIGtleUdyaWQ6ICdbcm9sZT1ncmlkXScsXG4gIH07XG4gIHByaXZhdGUga2V5TmF2VXRpbHM6IEtleU5hdmlnYXRpb25VdGlscztcbiAgcHJpdmF0ZSBsaXN0ZW5lcnNBZGRlZCA9IGZhbHNlO1xuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSkge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBhZGRMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKHRoaXMubGlzdGVuZXJzQWRkZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZnJvbUV2ZW50KHRoaXMua2V5TmF2VXRpbHMuZ3JpZCwgJ21vdXNlZG93bicpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIC8vIHByZXNlcnZlIHJpZ2h0IGNsaWNrIGZvciBjb250ZXh0IG1lbnVzICYga2V5Ym9hcmQgbW91c2UgY29udHJvbCBodHRwczovL2FwcGxlLnN0YWNrZXhjaGFuZ2UuY29tL3F1ZXN0aW9ucy8zMjcxNS9ob3ctZG8taS1vcGVuLXRoZS1jb250ZXh0LW1lbnUtZnJvbS1hLW1hYy1rZXlib2FyZFxuICAgICAgICAgIGlmIChlLmJ1dHRvbnMgPT09IDEgJiYgIWUuY3RybEtleSkge1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlQ2VsbCA9IHRoaXMua2V5TmF2VXRpbHMuY2VsbHNcbiAgICAgICAgICAgICAgPyBBcnJheS5mcm9tKHRoaXMua2V5TmF2VXRpbHMuY2VsbHMpLmZpbmQoXG4gICAgICAgICAgICAgICAgICBjID0+IGMgPT09IGUudGFyZ2V0IHx8IGMgPT09IChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdCh0aGlzLmNvbmZpZy5rZXlHcmlkQ2VsbHMpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICBpZiAoYWN0aXZlQ2VsbCkge1xuICAgICAgICAgICAgICB0aGlzLnNldEFjdGl2ZUNlbGwoYWN0aXZlQ2VsbCk7XG5cbiAgICAgICAgICAgICAgaWYgKCFpc0FjdGlvbmFibGVJdGVtKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNFbGVtZW50KGFjdGl2ZUNlbGwpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgZnJvbUV2ZW50KHRoaXMua2V5TmF2VXRpbHMuZ3JpZCwgJ3doZWVsJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLm5leHRDZWxsQ29vcmRzRW1pdHRlci5lbWl0KG51bGwpO1xuICAgICAgICB9KTtcblxuICAgICAgZnJvbUV2ZW50KHRoaXMua2V5TmF2VXRpbHMuZ3JpZCwgJ2tleWRvd24nKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAvLyBTa2lwIGNvbHVtbiByZXNpemUgZXZlbnRzXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbGFzc0xpc3QuY29udGFpbnMoJ2RyYWctaGFuZGxlJykgJiZcbiAgICAgICAgICAgIChlLmtleSA9PT0gS2V5cy5BcnJvd0xlZnQgfHwgZS5rZXkgPT09IEtleXMuQXJyb3dSaWdodClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZS5rZXkgPT09IEtleXMuQXJyb3dVcCB8fFxuICAgICAgICAgICAgZS5rZXkgPT09IEtleXMuQXJyb3dEb3duIHx8XG4gICAgICAgICAgICBlLmtleSA9PT0gS2V5cy5BcnJvd0xlZnQgfHxcbiAgICAgICAgICAgIGUua2V5ID09PSBLZXlzLkFycm93UmlnaHQgfHxcbiAgICAgICAgICAgIGUua2V5ID09PSBLZXlzLkVuZCB8fFxuICAgICAgICAgICAgZS5rZXkgPT09IEtleXMuSG9tZSB8fFxuICAgICAgICAgICAgZS5rZXkgPT09IEtleXMuUGFnZVVwIHx8XG4gICAgICAgICAgICBlLmtleSA9PT0gS2V5cy5QYWdlRG93blxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgbmV4dENlbGxDb29yZHMgPSB0aGlzLmtleU5hdlV0aWxzLmdldE5leHRJdGVtQ29vcmRpbmF0ZShlKTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBuZXh0Q2VsbENvb3Jkcy55ID4gMCAmJlxuICAgICAgICAgICAgICAoZS5rZXkgPT09IEtleXMuQXJyb3dVcCB8fCBlLmtleSA9PT0gS2V5cy5BcnJvd0Rvd24gfHwgZS5rZXkgPT09IEtleXMuUGFnZVVwIHx8IGUua2V5ID09PSBLZXlzLlBhZ2VEb3duKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHRoaXMua2V5TmF2VXRpbHMuc2V0QXJpYVJvd0luZGV4VG8obmV4dENlbGxDb29yZHMpO1xuXG4gICAgICAgICAgICAgIHRoaXMubmV4dENlbGxDb29yZHNFbWl0dGVyLmVtaXQobmV4dENlbGxDb29yZHMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBhY3RpdmVJdGVtID0gdGhpcy5rZXlOYXZVdGlscy5yb3dzXG4gICAgICAgICAgICAgID8gKEFycmF5LmZyb20odGhpcy5rZXlOYXZVdGlscy5nZXRDZWxsc0ZvclJvdyhuZXh0Q2VsbENvb3Jkcy55KSlbbmV4dENlbGxDb29yZHMueF0gYXMgSFRNTEVsZW1lbnQpXG4gICAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICAgICAgaWYgKGFjdGl2ZUl0ZW0pIHtcbiAgICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVDZWxsKGFjdGl2ZUl0ZW0pO1xuICAgICAgICAgICAgICB0aGlzLmZvY3VzRWxlbWVudChhY3RpdmVJdGVtLCB7IHByZXZlbnRTY3JvbGw6IHRoaXMucHJldmVudFNjcm9sbE9uRm9jdXMgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMubGlzdGVuZXJzQWRkZWQgPSB0cnVlO1xuICB9XG5cbiAgaW5pdGlhbGl6ZUtleUdyaWQoaG9zdDogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLmtleU5hdlV0aWxzID0gbmV3IEtleU5hdmlnYXRpb25VdGlscyhob3N0LCB0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5hZGRMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnJlc2V0S2V5R3JpZCgpO1xuICB9XG5cbiAgcmVzZXRLZXlHcmlkKCkge1xuICAgIHRoaXMua2V5TmF2VXRpbHMuY2VsbHM/LmZvckVhY2goKGk6IEhUTUxFbGVtZW50KSA9PiBpLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnLTEnKSk7XG4gICAgY29uc3QgZmlyc3RDZWxsID0gdGhpcy5rZXlOYXZVdGlscy5jZWxscyA/IHRoaXMua2V5TmF2VXRpbHMuY2VsbHNbMF0gOiBudWxsO1xuICAgIGZpcnN0Q2VsbD8uc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gIH1cblxuICBzZXRBY3RpdmVDZWxsKGFjdGl2ZUNlbGw6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3QgcHJpb3IgPSB0aGlzLmtleU5hdlV0aWxzLmNlbGxzXG4gICAgICA/IEFycmF5LmZyb20odGhpcy5rZXlOYXZVdGlscy5jZWxscykuZmluZChjID0+IGMuZ2V0QXR0cmlidXRlKCd0YWJpbmRleCcpID09PSAnMCcpXG4gICAgICA6IG51bGw7XG5cbiAgICBpZiAocHJpb3IpIHtcbiAgICAgIHByaW9yLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnLTEnKTtcbiAgICB9XG5cbiAgICBhY3RpdmVDZWxsLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICB9XG5cbiAgZm9jdXNFbGVtZW50KGFjdGl2ZUNlbGw6IEhUTUxFbGVtZW50LCBvcHRpb25zOiBGb2N1c09wdGlvbnMgPSB7IHByZXZlbnRTY3JvbGw6IGZhbHNlIH0pIHtcbiAgICBpZiAodGhpcy5za2lwSXRlbUZvY3VzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGVsZW1lbnRUb0ZvY3VzOiBIVE1MRWxlbWVudDtcblxuICAgIGlmIChhY3RpdmVDZWxsLmdldEF0dHJpYnV0ZSgncm9sZScpID09PSAnY29sdW1uaGVhZGVyJykge1xuICAgICAgZWxlbWVudFRvRm9jdXMgPSBhY3RpdmVDZWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0YWJiYWJsZUVsZW1lbnRzID0gZ2V0VGFiYmFibGVJdGVtcyhhY3RpdmVDZWxsKTtcbiAgICAgIGVsZW1lbnRUb0ZvY3VzID0gdGFiYmFibGVFbGVtZW50cy5sZW5ndGggPyB0YWJiYWJsZUVsZW1lbnRzWzBdIDogYWN0aXZlQ2VsbDtcbiAgICB9XG5cbiAgICBlbGVtZW50VG9Gb2N1cy5mb2N1cyhvcHRpb25zKTtcbiAgfVxufVxuIl19
|
|
@@ -6,9 +6,6 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { ExpandedRowKeyNavigationStrategy } from './expanded-row';
|
|
8
8
|
export class ExpandedColumnsRowKeyNavigationStrategy extends ExpandedRowKeyNavigationStrategy {
|
|
9
|
-
constructor(utils) {
|
|
10
|
-
super(utils);
|
|
11
|
-
}
|
|
12
9
|
keyUp(currentCellCoords) {
|
|
13
10
|
const nextCellCoords = this.utils.createNextCellCoords(currentCellCoords);
|
|
14
11
|
if (currentCellCoords.y === 0) {
|
|
@@ -129,4 +126,4 @@ export class ExpandedColumnsRowKeyNavigationStrategy extends ExpandedRowKeyNavig
|
|
|
129
126
|
return nextCellCoords;
|
|
130
127
|
}
|
|
131
128
|
}
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kZWQtY29sdW1ucy1yb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9kYXRhL2RhdGFncmlkL3V0aWxzL2tleS1uYXZpZ2F0aW9uLXN0cmF0ZWdpZXMvZXhwYW5kZWQtY29sdW1ucy1yb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFJSCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxNQUFNLE9BQU8sdUNBQXdDLFNBQVEsZ0NBQWdDO0lBQzNGLFlBQVksS0FBeUI7UUFDbkMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVRLEtBQUssQ0FBQyxpQkFBa0M7UUFDL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTFFLElBQUksaUJBQWlCLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM3QixPQUFPLGNBQWMsQ0FBQztTQUN2QjtRQUVELGNBQWMsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUzQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3ZDO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVoRSxJQUFJLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0QsY0FBYyxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FB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KiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ2VsbENvb3JkaW5hdGVzIH0gZnJvbSAnLi4va2V5LW5hdmlnYXRpb24tZ3JpZC5jb250cm9sbGVyJztcbmltcG9ydCB7IEtleU5hdmlnYXRpb25VdGlscyB9IGZyb20gJy4uL2tleS1uYXZpZ2F0aW9uLXV0aWxzJztcbmltcG9ydCB7IEV4cGFuZGVkUm93S2V5TmF2aWdhdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9leHBhbmRlZC1yb3cnO1xuXG5leHBvcnQgY2xhc3MgRXhwYW5kZWRDb2x1bW5zUm93S2V5TmF2aWdhdGlvblN0cmF0ZWd5IGV4dGVuZHMgRXhwYW5kZWRSb3dLZXlOYXZpZ2F0aW9uU3RyYXRlZ3kge1xuICBjb25zdHJ1Y3Rvcih1dGlsczogS2V5TmF2aWdhdGlvblV0aWxzKSB7XG4gICAgc3VwZXIodXRpbHMpO1xuICB9XG5cbiAgb3ZlcnJpZGUga2V5VXAoY3VycmVudENlbGxDb29yZHM6IENlbGxDb29yZGluYXRlcykge1xuICAgIGNvbnN0IG5leHRDZWxsQ29vcmRzID0gdGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhjdXJyZW50Q2VsbENvb3Jkcyk7XG5cbiAgICBpZiAoY3VycmVudENlbGxDb29yZHMueSA9PT0gMCkge1xuICAgICAgcmV0dXJuIG5leHRDZWxsQ29vcmRzO1xuICAgIH1cblxuICAgIG5leHRDZWxsQ29vcmRzLnkgPSBjdXJyZW50Q2VsbENvb3Jkcy55IC0gMTtcblxuICAgIGlmICh0aGlzLnV0aWxzLmlzU2luZ2xlQ2VsbEV4cGFuZGVkUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICByZXR1cm4gc3VwZXIua2V5VXAoY3VycmVudENlbGxDb29yZHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGlzQWN0aW9uQ2VsbCA9IHRoaXMudXRpbHMuaXNBY3Rpb25DZWxsKGN1cnJlbnRDZWxsQ29vcmRzKTtcblxuICAgIGlmIChpc0FjdGlvbkNlbGwgJiYgdGhpcy51dGlscy5pc0RldGFpbHNSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgIG5leHRDZWxsQ29vcmRzLnkgPSBuZXh0Q2VsbENvb3Jkcy55IC0gMTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudXRpbHMuaXNSb3dSZXBsYWNlZChuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgbmV4dENlbGxDb29yZHMueSA9IG5leHRDZWxsQ29vcmRzLnkgLSAxO1xuXG4gICAgICBpZiAoIXRoaXMudXRpbHMuaXNEZXRhaWxzUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgIG5leHRDZWxsQ29vcmRzLnggPSBjdXJyZW50Q2VsbENvb3Jkcy54ICsgdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQobmV4dENlbGxDb29yZHMueSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhjdXJyZW50Q2VsbENvb3Jkcy55KSAmJiAhdGhpcy51dGlscy5pc0RldGFpbHNSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgIG5leHRDZWxsQ29vcmRzLnggPSBjdXJyZW50Q2VsbENvb3Jkcy54ICsgdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQobmV4dENlbGxDb29yZHMueSk7XG4gICAgfSBlbHNlIGlmICghaXNBY3Rpb25DZWxsICYmIHRoaXMudXRpbHMuaXNEZXRhaWxzUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICBuZXh0Q2VsbENvb3Jkcy54ID0gY3VycmVudENlbGxDb29yZHMueCAtIHRoaXMudXRpbHMuYWN0aW9uQ2VsbENvdW50KGN1cnJlbnRDZWxsQ29vcmRzLnkpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0Q2VsbENvb3JkcztcbiAgfVxuXG4gIG92ZXJyaWRlIGtleURvd24oY3VycmVudENlbGxDb29yZHM6IENlbGxDb29yZGluYXRlcykge1xuICAgIGNvbnN0IG5leHRDZWxsQ29vcmRzID0gdGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhjdXJyZW50Q2VsbENvb3Jkcyk7XG5cbiAgICBjb25zdCBudW1PZlJvd3MgPSB0aGlzLnV0aWxzLnJvd3MgPyB0aGlzLnV0aWxzLnJvd3MubGVuZ3RoIC0gMSA6IDA7XG4gICAgY29uc3QgbnVtT2ZDb2x1bW5zID0gbnVtT2ZSb3dzID8gdGhpcy51dGlscy5nZXRDZWxsc0ZvclJvdygwKS5sZW5ndGggLSAxIDogMDtcblxuICAgIGlmIChjdXJyZW50Q2VsbENvb3Jkcy55ID49IG51bU9mUm93cykge1xuICAgICAgcmV0dXJuIG5leHRDZWxsQ29vcmRzO1xuICAgIH1cblxuICAgIG5leHRDZWxsQ29vcmRzLnkgPSBjdXJyZW50Q2VsbENvb3Jkcy55ICsgMTtcblxuICAgIGlmICh0aGlzLnV0aWxzLmlzU2luZ2xlQ2VsbEV4cGFuZGVkUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICByZXR1cm4gc3VwZXIua2V5RG93bihjdXJyZW50Q2VsbENvb3Jkcyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnV0aWxzLmlzQWN0aW9uQ2VsbChjdXJyZW50Q2VsbENvb3JkcykpIHtcbiAgICAgIGlmICh0aGlzLnV0aWxzLmlzUm93UmVwbGFjZWQobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgICAgbmV4dENlbGxDb29yZHMueSA9IG5leHRDZWxsQ29vcmRzLnkgPCBudW1PZlJvd3MgPyBuZXh0Q2VsbENvb3Jkcy55ICsgMSA6IG5leHRDZWxsQ29vcmRzLnkgLSAxO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnV0aWxzLmdldENlbGxzRm9yUm93KGN1cnJlbnRDZWxsQ29vcmRzLnkpLmxlbmd0aCA+IG51bU9mQ29sdW1ucykge1xuICAgICAgICBuZXh0Q2VsbENvb3Jkcy54ID0gY3VycmVudENlbGxDb29yZHMueCAtIHRoaXMudXRpbHMuYWN0aW9uQ2VsbENvdW50KGN1cnJlbnRDZWxsQ29vcmRzLnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV4dENlbGxDb29yZHMueCA9IGN1cnJlbnRDZWxsQ29vcmRzLnggKyB0aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChuZXh0Q2VsbENvb3Jkcy55KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dENlbGxDb29yZHMueSA9IG5leHRDZWxsQ29vcmRzLnkgPCBudW1PZlJvd3MgPyBuZXh0Q2VsbENvb3Jkcy55ICsgMSA6IG5leHRDZWxsQ29vcmRzLnkgLSAxO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0Q2VsbENvb3JkcztcbiAgfVxuXG4gIG92ZXJyaWRlIGtleUxlZnQoY3VycmVudENlbGxDb29yZHM6IENlbGxDb29yZGluYXRlcykge1xuICAgIHJldHVybiBzdXBlci5rZXlMZWZ0KGN1cnJlbnRDZWxsQ29vcmRzKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGtleVJpZ2h0KGN1cnJlbnRDZWxsQ29vcmRzOiBDZWxsQ29vcmRpbmF0ZXMpIHtcbiAgICByZXR1cm4gc3VwZXIua2V5UmlnaHQoY3VycmVudENlbGxDb29yZHMpO1xuICB9XG5cbiAgb3ZlcnJpZGUga2V5RW5kKGN1cnJlbnRDZWxsQ29vcmRzOiBDZWxsQ29vcmRpbmF0ZXMsIGN0cmxLZXk6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gc3VwZXIua2V5RW5kKGN1cnJlbnRDZWxsQ29vcmRzLCBjdHJsS2V5KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGtleUhvbWUoY3VycmVudENlbGxDb29yZHM6IENlbGxDb29yZGluYXRlcywgY3RybEtleTogYm9vbGVhbikge1xuICAgIHJldHVybiBzdXBlci5rZXlIb21lKGN1cnJlbnRDZWxsQ29vcmRzLCBjdHJsS2V5KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGtleVBhZ2VVcChjdXJyZW50Q2VsbENvb3JkczogQ2VsbENvb3JkaW5hdGVzKSB7XG4gICAgY29uc3QgbmV4dENlbGxDb29yZHMgPSB0aGlzLnV0aWxzLmNyZWF0ZU5leHRDZWxsQ29vcmRzKGN1cnJlbnRDZWxsQ29vcmRzKTtcbiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSB0aGlzLnV0aWxzLml0ZW1zUGVyUGFnZTtcblxuICAgIG5leHRDZWxsQ29vcmRzLnkgPSBjdXJyZW50Q2VsbENvb3Jkcy55IC0gaXRlbXNQZXJQYWdlID4gMCA/IGN1cnJlbnRDZWxsQ29vcmRzLnkgLSBpdGVtc1BlclBhZ2UgKyAxIDogMTtcblxuICAgIGlmICh0aGlzLnV0aWxzLmlzU2luZ2xlQ2VsbEV4cGFuZGVkUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICByZXR1cm4gc3VwZXIua2V5UGFnZVVwKGN1cnJlbnRDZWxsQ29vcmRzKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMudXRpbHMuaXNBY3Rpb25DZWxsKGN1cnJlbnRDZWxsQ29vcmRzKSkge1xuICAgICAgaWYgKHRoaXMudXRpbHMuaXNSb3dSZXBsYWNlZChuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgICBpZiAoIXRoaXMudXRpbHMuaXNEZXRhaWxzUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgICAgbmV4dENlbGxDb29yZHMueSA9IG5leHRDZWxsQ29vcmRzLnkgKyAxO1xuICAgICAgICAgIG5leHRDZWxsQ29vcmRzLnggPSBjdXJyZW50Q2VsbENvb3Jkcy54ICsgdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQobmV4dENlbGxDb29yZHMueSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy51dGlscy5pc0RldGFpbHNSb3coY3VycmVudENlbGxDb29yZHMueSkgJiYgIXRoaXMudXRpbHMuaXNEZXRhaWxzUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgIG5leHRDZWxsQ29vcmRzLnggPSBjdXJyZW50Q2VsbENvb3Jkcy54ICsgdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQobmV4dENlbGxDb29yZHMueSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudXRpbHMuaXNEZXRhaWxzUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgIG5leHRDZWxsQ29vcmRzLnggPSBjdXJyZW50Q2VsbENvb3Jkcy54IC0gdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQoY3VycmVudENlbGxDb29yZHMueSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgbmV4dENlbGxDb29yZHMueSA9IG5leHRDZWxsQ29vcmRzLnkgLSAxO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0Q2VsbENvb3JkcztcbiAgfVxuXG4gIG92ZXJyaWRlIGtleVBhZ2VEb3duKGN1cnJlbnRDZWxsQ29vcmRzOiBDZWxsQ29vcmRpbmF0ZXMpIHtcbiAgICBjb25zdCBuZXh0Q2VsbENvb3JkcyA9IHRoaXMudXRpbHMuY3JlYXRlTmV4dENlbGxDb29yZHMoY3VycmVudENlbGxDb29yZHMpO1xuXG4gICAgY29uc3QgbnVtT2ZSb3dzID0gdGhpcy51dGlscy5yb3dzID8gdGhpcy51dGlscy5yb3dzLmxlbmd0aCAtIDEgOiAwO1xuICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSA9IHRoaXMudXRpbHMuaXRlbXNQZXJQYWdlO1xuXG4gICAgbmV4dENlbGxDb29yZHMueSA9IGN1cnJlbnRDZWxsQ29vcmRzLnkgKyBpdGVtc1BlclBhZ2UgPj0gbnVtT2ZSb3dzID8gbnVtT2ZSb3dzIDogY3VycmVudENlbGxDb29yZHMueSArIGl0ZW1zUGVyUGFnZTtcblxuICAgIGlmICh0aGlzLnV0aWxzLmlzU2luZ2xlQ2VsbEV4cGFuZGVkUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICByZXR1cm4gc3VwZXIua2V5UGFnZURvd24oY3VycmVudENlbGxDb29yZHMpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy51dGlscy5pc0FjdGlvbkNlbGwoY3VycmVudENlbGxDb29yZHMpKSB7XG4gICAgICBpZiAodGhpcy51dGlscy5pc1Jvd1JlcGxhY2VkKG5leHRDZWxsQ29vcmRzLnkpICYmICF0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgICBpZiAobmV4dENlbGxDb29yZHMueSA8IG51bU9mUm93cykge1xuICAgICAgICAgIG5leHRDZWxsQ29vcmRzLnkgPSBuZXh0Q2VsbENvb3Jkcy55ICsgMTtcbiAgICAgICAgICBuZXh0Q2VsbENvb3Jkcy54ID0gY3VycmVudENlbGxDb29yZHMueCArIHRoaXMudXRpbHMuYWN0aW9uQ2VsbENvdW50KG5leHRDZWxsQ29vcmRzLnkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudXRpbHMuaXNEZXRhaWxzUm93KGN1cnJlbnRDZWxsQ29vcmRzLnkpICYmICF0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgICBuZXh0Q2VsbENvb3Jkcy54ID0gY3VycmVudENlbGxDb29yZHMueCArIHRoaXMudXRpbHMuYWN0aW9uQ2VsbENvdW50KG5leHRDZWxsQ29vcmRzLnkpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgICBuZXh0Q2VsbENvb3Jkcy54ID0gY3VycmVudENlbGxDb29yZHMueCAtIHRoaXMudXRpbHMuYWN0aW9uQ2VsbENvdW50KGN1cnJlbnRDZWxsQ29vcmRzLnkpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy51dGlscy5pc0RldGFpbHNSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgIG5leHRDZWxsQ29vcmRzLnkgPSBuZXh0Q2VsbENvb3Jkcy55IC0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dENlbGxDb29yZHM7XG4gIH1cbn1cbiJdfQ==
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kZWQtY29sdW1ucy1yb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9kYXRhL2RhdGFncmlkL3V0aWxzL2tleS1uYXZpZ2F0aW9uLXN0cmF0ZWdpZXMvZXhwYW5kZWQtY29sdW1ucy1yb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFHSCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxNQUFNLE9BQU8sdUNBQXdDLFNBQVEsZ0NBQWdDO0lBQ2xGLEtBQUssQ0FBQyxpQkFBa0M7UUFDL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTFFLElBQUksaUJBQWlCLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM3QixPQUFPLGNBQWMsQ0FBQztTQUN2QjtRQUVELGNBQWMsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUzQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3ZDO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVoRSxJQUFJLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0QsY0FBYyxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QzthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JELGNBQWMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDOUMsY0FBYyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZGO1NBQ0Y7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JHLGNBQWMsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2RjthQUFNLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JFLGNBQWMsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzFGO1FBRUQsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVRLE9BQU8sQ0FBQyxpQkFBa0M7UUFDakQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTFFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkUsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFN0UsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDLElBQUksU0FBUyxFQUFFO1lBQ3BDLE9BQU8sY0FBYyxDQUFDO1NBQ3ZCO1FBRUQsY0FBYyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTNDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDeEQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDekM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUMvQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDOUMsY0FBYyxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQy9GO2lCQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLFlBQVksRUFBRTtnQkFDL0UsY0FBYyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUY7aUJBQU07Z0JBQ0wsY0FBYyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZGO1NBQ0Y7YUFBTTtZQUNMLGNBQWMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMvRjtRQUVELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFUSxPQUFPLENBQUMsaUJBQWtDO1FBQ2pELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFUSxRQUFRLENBQUMsaUJBQWtDO1FBQ2xELE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFUSxNQUFNLENBQUMsaUJBQWtDLEVBQUUsT0FBZ0I7UUFDbEUsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFUSxPQUFPLENBQUMsaUJBQWtDLEVBQUUsT0FBZ0I7UUFDbkUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFUSxTQUFTLENBQUMsaUJBQWtDO1FBQ25ELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMxRSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUU3QyxjQUFjLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDeEQsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDM0M7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUMvQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDOUMsY0FBYyxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEMsY0FBYyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN2RjthQUNGO2lCQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JHLGNBQWMsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN2RjtpQkFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDcEQsY0FBYyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUY7U0FDRjthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BELGNBQWMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekM7UUFFRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRVEsV0FBVyxDQUFDLGlCQUFrQztRQUNyRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFMUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUU3QyxjQUFjLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsR0FBRyxZQUFZLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxZQUFZLENBQUM7UUFFcEgsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4RCxPQUFPLEtBQUssQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUM3QztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQy9DLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM1RixJQUFJLGNBQWMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxFQUFFO29CQUNoQyxjQUFjLENBQUMsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN4QyxjQUFjLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3ZGO2FBQ0Y7aUJBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDckcsY0FBYyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZGO2lCQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNwRCxjQUFjLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxRjtTQUNGO2FBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEQsY0FBYyxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QztRQUVELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ2VsbENvb3JkaW5hdGVzIH0gZnJvbSAnLi4va2V5LW5hdmlnYXRpb24tZ3JpZC5jb250cm9sbGVyJztcbmltcG9ydCB7IEV4cGFuZGVkUm93S2V5TmF2aWdhdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9leHBhbmRlZC1yb3cnO1xuXG5leHBvcnQgY2xhc3MgRXhwYW5kZWRDb2x1bW5zUm93S2V5TmF2aWdhdGlvblN0cmF0ZWd5IGV4dGVuZHMgRXhwYW5kZWRSb3dLZXlOYXZpZ2F0aW9uU3RyYXRlZ3kge1xuICBvdmVycmlkZSBrZXlVcChjdXJyZW50Q2VsbENvb3JkczogQ2VsbENvb3JkaW5hdGVzKSB7XG4gICAgY29uc3QgbmV4dENlbGxDb29yZHMgPSB0aGlzLnV0aWxzLmNyZWF0ZU5leHRDZWxsQ29vcmRzKGN1cnJlbnRDZWxsQ29vcmRzKTtcblxuICAgIGlmIChjdXJyZW50Q2VsbENvb3Jkcy55ID09PSAwKSB7XG4gICAgICByZXR1cm4gbmV4dENlbGxDb29yZHM7XG4gICAgfVxuXG4gICAgbmV4dENlbGxDb29yZHMueSA9IGN1cnJlbnRDZWxsQ29vcmRzLnkgLSAxO1xuXG4gICAgaWYgKHRoaXMudXRpbHMuaXNTaW5nbGVDZWxsRXhwYW5kZWRSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgIHJldHVybiBzdXBlci5rZXlVcChjdXJyZW50Q2VsbENvb3Jkcyk7XG4gICAgfVxuXG4gICAgY29uc3QgaXNBY3Rpb25DZWxsID0gdGhpcy51dGlscy5pc0FjdGlvbkNlbGwoY3VycmVudENlbGxDb29yZHMpO1xuXG4gICAgaWYgKGlzQWN0aW9uQ2VsbCAmJiB0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgbmV4dENlbGxDb29yZHMueSA9IG5leHRDZWxsQ29vcmRzLnkgLSAxO1xuICAgIH0gZWxzZSBpZiAodGhpcy51dGlscy5pc1Jvd1JlcGxhY2VkKG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICBuZXh0Q2VsbENvb3Jkcy55ID0gbmV4dENlbGxDb29yZHMueSAtIDE7XG5cbiAgICAgIGlmICghdGhpcy51dGlscy5pc0RldGFpbHNSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgICAgbmV4dENlbGxDb29yZHMueCA9IGN1cnJlbnRDZWxsQ29vcmRzLnggKyB0aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChuZXh0Q2VsbENvb3Jkcy55KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMudXRpbHMuaXNEZXRhaWxzUm93KGN1cnJlbnRDZWxsQ29vcmRzLnkpICYmICF0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgbmV4dENlbGxDb29yZHMueCA9IGN1cnJlbnRDZWxsQ29vcmRzLnggKyB0aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChuZXh0Q2VsbENvb3Jkcy55KTtcbiAgICB9IGVsc2UgaWYgKCFpc0FjdGlvbkNlbGwgJiYgdGhpcy51dGlscy5pc0RldGFpbHNSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgIG5leHRDZWxsQ29vcmRzLnggPSBjdXJyZW50Q2VsbENvb3Jkcy54IC0gdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQoY3VycmVudENlbGxDb29yZHMueSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHRDZWxsQ29vcmRzO1xuICB9XG5cbiAgb3ZlcnJpZGUga2V5RG93bihjdXJyZW50Q2VsbENvb3JkczogQ2VsbENvb3JkaW5hdGVzKSB7XG4gICAgY29uc3QgbmV4dENlbGxDb29yZHMgPSB0aGlzLnV0aWxzLmNyZWF0ZU5leHRDZWxsQ29vcmRzKGN1cnJlbnRDZWxsQ29vcmRzKTtcblxuICAgIGNvbnN0IG51bU9mUm93cyA9IHRoaXMudXRpbHMucm93cyA/IHRoaXMudXRpbHMucm93cy5sZW5ndGggLSAxIDogMDtcbiAgICBjb25zdCBudW1PZkNvbHVtbnMgPSBudW1PZlJvd3MgPyB0aGlzLnV0aWxzLmdldENlbGxzRm9yUm93KDApLmxlbmd0aCAtIDEgOiAwO1xuXG4gICAgaWYgKGN1cnJlbnRDZWxsQ29vcmRzLnkgPj0gbnVtT2ZSb3dzKSB7XG4gICAgICByZXR1cm4gbmV4dENlbGxDb29yZHM7XG4gICAgfVxuXG4gICAgbmV4dENlbGxDb29yZHMueSA9IGN1cnJlbnRDZWxsQ29vcmRzLnkgKyAxO1xuXG4gICAgaWYgKHRoaXMudXRpbHMuaXNTaW5nbGVDZWxsRXhwYW5kZWRSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgIHJldHVybiBzdXBlci5rZXlEb3duKGN1cnJlbnRDZWxsQ29vcmRzKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMudXRpbHMuaXNBY3Rpb25DZWxsKGN1cnJlbnRDZWxsQ29vcmRzKSkge1xuICAgICAgaWYgKHRoaXMudXRpbHMuaXNSb3dSZXBsYWNlZChuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgICBuZXh0Q2VsbENvb3Jkcy55ID0gbmV4dENlbGxDb29yZHMueSA8IG51bU9mUm93cyA/IG5leHRDZWxsQ29vcmRzLnkgKyAxIDogbmV4dENlbGxDb29yZHMueSAtIDE7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudXRpbHMuZ2V0Q2VsbHNGb3JSb3coY3VycmVudENlbGxDb29yZHMueSkubGVuZ3RoID4gbnVtT2ZDb2x1bW5zKSB7XG4gICAgICAgIG5leHRDZWxsQ29vcmRzLnggPSBjdXJyZW50Q2VsbENvb3Jkcy54IC0gdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQoY3VycmVudENlbGxDb29yZHMueSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0Q2VsbENvb3Jkcy54ID0gY3VycmVudENlbGxDb29yZHMueCArIHRoaXMudXRpbHMuYWN0aW9uQ2VsbENvdW50KG5leHRDZWxsQ29vcmRzLnkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0Q2VsbENvb3Jkcy55ID0gbmV4dENlbGxDb29yZHMueSA8IG51bU9mUm93cyA/IG5leHRDZWxsQ29vcmRzLnkgKyAxIDogbmV4dENlbGxDb29yZHMueSAtIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHRDZWxsQ29vcmRzO1xuICB9XG5cbiAgb3ZlcnJpZGUga2V5TGVmdChjdXJyZW50Q2VsbENvb3JkczogQ2VsbENvb3JkaW5hdGVzKSB7XG4gICAgcmV0dXJuIHN1cGVyLmtleUxlZnQoY3VycmVudENlbGxDb29yZHMpO1xuICB9XG5cbiAgb3ZlcnJpZGUga2V5UmlnaHQoY3VycmVudENlbGxDb29yZHM6IENlbGxDb29yZGluYXRlcykge1xuICAgIHJldHVybiBzdXBlci5rZXlSaWdodChjdXJyZW50Q2VsbENvb3Jkcyk7XG4gIH1cblxuICBvdmVycmlkZSBrZXlFbmQoY3VycmVudENlbGxDb29yZHM6IENlbGxDb29yZGluYXRlcywgY3RybEtleTogYm9vbGVhbikge1xuICAgIHJldHVybiBzdXBlci5rZXlFbmQoY3VycmVudENlbGxDb29yZHMsIGN0cmxLZXkpO1xuICB9XG5cbiAgb3ZlcnJpZGUga2V5SG9tZShjdXJyZW50Q2VsbENvb3JkczogQ2VsbENvb3JkaW5hdGVzLCBjdHJsS2V5OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHN1cGVyLmtleUhvbWUoY3VycmVudENlbGxDb29yZHMsIGN0cmxLZXkpO1xuICB9XG5cbiAgb3ZlcnJpZGUga2V5UGFnZVVwKGN1cnJlbnRDZWxsQ29vcmRzOiBDZWxsQ29vcmRpbmF0ZXMpIHtcbiAgICBjb25zdCBuZXh0Q2VsbENvb3JkcyA9IHRoaXMudXRpbHMuY3JlYXRlTmV4dENlbGxDb29yZHMoY3VycmVudENlbGxDb29yZHMpO1xuICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSA9IHRoaXMudXRpbHMuaXRlbXNQZXJQYWdlO1xuXG4gICAgbmV4dENlbGxDb29yZHMueSA9IGN1cnJlbnRDZWxsQ29vcmRzLnkgLSBpdGVtc1BlclBhZ2UgPiAwID8gY3VycmVudENlbGxDb29yZHMueSAtIGl0ZW1zUGVyUGFnZSArIDEgOiAxO1xuXG4gICAgaWYgKHRoaXMudXRpbHMuaXNTaW5nbGVDZWxsRXhwYW5kZWRSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgIHJldHVybiBzdXBlci5rZXlQYWdlVXAoY3VycmVudENlbGxDb29yZHMpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy51dGlscy5pc0FjdGlvbkNlbGwoY3VycmVudENlbGxDb29yZHMpKSB7XG4gICAgICBpZiAodGhpcy51dGlscy5pc1Jvd1JlcGxhY2VkKG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgIGlmICghdGhpcy51dGlscy5pc0RldGFpbHNSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgICAgICBuZXh0Q2VsbENvb3Jkcy55ID0gbmV4dENlbGxDb29yZHMueSArIDE7XG4gICAgICAgICAgbmV4dENlbGxDb29yZHMueCA9IGN1cnJlbnRDZWxsQ29vcmRzLnggKyB0aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChuZXh0Q2VsbENvb3Jkcy55KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhjdXJyZW50Q2VsbENvb3Jkcy55KSAmJiAhdGhpcy51dGlscy5pc0RldGFpbHNSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgICAgbmV4dENlbGxDb29yZHMueCA9IGN1cnJlbnRDZWxsQ29vcmRzLnggKyB0aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChuZXh0Q2VsbENvb3Jkcy55KTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy51dGlscy5pc0RldGFpbHNSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgICAgbmV4dENlbGxDb29yZHMueCA9IGN1cnJlbnRDZWxsQ29vcmRzLnggLSB0aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChjdXJyZW50Q2VsbENvb3Jkcy55KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMudXRpbHMuaXNEZXRhaWxzUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICBuZXh0Q2VsbENvb3Jkcy55ID0gbmV4dENlbGxDb29yZHMueSAtIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHRDZWxsQ29vcmRzO1xuICB9XG5cbiAgb3ZlcnJpZGUga2V5UGFnZURvd24oY3VycmVudENlbGxDb29yZHM6IENlbGxDb29yZGluYXRlcykge1xuICAgIGNvbnN0IG5leHRDZWxsQ29vcmRzID0gdGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhjdXJyZW50Q2VsbENvb3Jkcyk7XG5cbiAgICBjb25zdCBudW1PZlJvd3MgPSB0aGlzLnV0aWxzLnJvd3MgPyB0aGlzLnV0aWxzLnJvd3MubGVuZ3RoIC0gMSA6IDA7XG4gICAgY29uc3QgaXRlbXNQZXJQYWdlID0gdGhpcy51dGlscy5pdGVtc1BlclBhZ2U7XG5cbiAgICBuZXh0Q2VsbENvb3Jkcy55ID0gY3VycmVudENlbGxDb29yZHMueSArIGl0ZW1zUGVyUGFnZSA+PSBudW1PZlJvd3MgPyBudW1PZlJvd3MgOiBjdXJyZW50Q2VsbENvb3Jkcy55ICsgaXRlbXNQZXJQYWdlO1xuXG4gICAgaWYgKHRoaXMudXRpbHMuaXNTaW5nbGVDZWxsRXhwYW5kZWRSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgIHJldHVybiBzdXBlci5rZXlQYWdlRG93bihjdXJyZW50Q2VsbENvb3Jkcyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnV0aWxzLmlzQWN0aW9uQ2VsbChjdXJyZW50Q2VsbENvb3JkcykpIHtcbiAgICAgIGlmICh0aGlzLnV0aWxzLmlzUm93UmVwbGFjZWQobmV4dENlbGxDb29yZHMueSkgJiYgIXRoaXMudXRpbHMuaXNEZXRhaWxzUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgIGlmIChuZXh0Q2VsbENvb3Jkcy55IDwgbnVtT2ZSb3dzKSB7XG4gICAgICAgICAgbmV4dENlbGxDb29yZHMueSA9IG5leHRDZWxsQ29vcmRzLnkgKyAxO1xuICAgICAgICAgIG5leHRDZWxsQ29vcmRzLnggPSBjdXJyZW50Q2VsbENvb3Jkcy54ICsgdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQobmV4dENlbGxDb29yZHMueSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy51dGlscy5pc0RldGFpbHNSb3coY3VycmVudENlbGxDb29yZHMueSkgJiYgIXRoaXMudXRpbHMuaXNEZXRhaWxzUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgIG5leHRDZWxsQ29vcmRzLnggPSBjdXJyZW50Q2VsbENvb3Jkcy54ICsgdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQobmV4dENlbGxDb29yZHMueSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudXRpbHMuaXNEZXRhaWxzUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgIG5leHRDZWxsQ29vcmRzLnggPSBjdXJyZW50Q2VsbENvb3Jkcy54IC0gdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQoY3VycmVudENlbGxDb29yZHMueSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgbmV4dENlbGxDb29yZHMueSA9IG5leHRDZWxsQ29vcmRzLnkgLSAxO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0Q2VsbENvb3JkcztcbiAgfVxufVxuIl19
|
|
@@ -6,9 +6,6 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { DefaultKeyNavigationStrategy } from './default';
|
|
8
8
|
export class ExpandedRowKeyNavigationStrategy extends DefaultKeyNavigationStrategy {
|
|
9
|
-
constructor(utils) {
|
|
10
|
-
super(utils);
|
|
11
|
-
}
|
|
12
9
|
keyUp(currentCellCoords) {
|
|
13
10
|
const nextCellCoords = this.utils.createNextCellCoords(currentCellCoords);
|
|
14
11
|
if (currentCellCoords.y === 0) {
|
|
@@ -165,4 +162,4 @@ export class ExpandedRowKeyNavigationStrategy extends DefaultKeyNavigationStrate
|
|
|
165
162
|
return nextCellCoords;
|
|
166
163
|
}
|
|
167
164
|
}
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kZWQtcm93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS9kYXRhZ3JpZC91dGlscy9rZXktbmF2aWdhdGlvbi1zdHJhdGVnaWVzL2V4cGFuZGVkLXJvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUlILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6RCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsNEJBQTRCO0lBQ2hGLFlBQVksS0FBeUI7UUFDbkMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVRLEtBQUssQ0FBQyxpQkFBa0M7UUFDL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTFFLElBQUksaUJBQWlCLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM3QixPQUFPLGNBQWMsQ0FBQztTQUN2QjtRQUVELGNBQWMsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUzQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUMvQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNqRCxjQUFjLENBQUMsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3pDO1lBRUQsUUFBUSxJQUFJLEVBQUU7Z0JBQ1osS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO29CQUM1QyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDckIsTUFBTTtnQkFDUixLQUFLLElB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c0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDI1IEJyb2FkY29tLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhlIHRlcm0gXCJCcm9hZGNvbVwiIHJlZmVycyB0byBCcm9hZGNvbSBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVzLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBDZWxsQ29vcmRpbmF0ZXMgfSBmcm9tICcuLi9rZXktbmF2aWdhdGlvbi1ncmlkLmNvbnRyb2xsZXInO1xuaW1wb3J0IHsgS2V5TmF2aWdhdGlvblV0aWxzIH0gZnJvbSAnLi4va2V5LW5hdmlnYXRpb24tdXRpbHMnO1xuaW1wb3J0IHsgRGVmYXVsdEtleU5hdmlnYXRpb25TdHJhdGVneSB9IGZyb20gJy4vZGVmYXVsdCc7XG5cbmV4cG9ydCBjbGFzcyBFeHBhbmRlZFJvd0tleU5hdmlnYXRpb25TdHJhdGVneSBleHRlbmRzIERlZmF1bHRLZXlOYXZpZ2F0aW9uU3RyYXRlZ3kge1xuICBjb25zdHJ1Y3Rvcih1dGlsczogS2V5TmF2aWdhdGlvblV0aWxzKSB7XG4gICAgc3VwZXIodXRpbHMpO1xuICB9XG5cbiAgb3ZlcnJpZGUga2V5VXAoY3VycmVudENlbGxDb29yZHM6IENlbGxDb29yZGluYXRlcykge1xuICAgIGNvbnN0IG5leHRDZWxsQ29vcmRzID0gdGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhjdXJyZW50Q2VsbENvb3Jkcyk7XG5cbiAgICBpZiAoY3VycmVudENlbGxDb29yZHMueSA9PT0gMCkge1xuICAgICAgcmV0dXJuIG5leHRDZWxsQ29vcmRzO1xuICAgIH1cblxuICAgIG5leHRDZWxsQ29vcmRzLnkgPSBjdXJyZW50Q2VsbENvb3Jkcy55IC0gMTtcblxuICAgIGlmICghdGhpcy51dGlscy5pc0FjdGlvbkNlbGwoY3VycmVudENlbGxDb29yZHMpKSB7XG4gICAgICBpZiAodGhpcy51dGlscy5pc1Jvd1JlcGxhY2VkKGN1cnJlbnRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgIG5leHRDZWxsQ29vcmRzLnkgPSBuZXh0Q2VsbENvb3Jkcy55IC0gMTtcbiAgICAgIH1cblxuICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgIGNhc2UgdGhpcy51dGlscy5pc0RldGFpbHNSb3cobmV4dENlbGxDb29yZHMueSk6XG4gICAgICAgICAgbmV4dENlbGxDb29yZHMueCA9IDA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgdGhpcy51dGlscy5pc0RldGFpbHNSb3coY3VycmVudENlbGxDb29yZHMueSkgPT09IGZhbHNlOlxuICAgICAgICAgIG5leHRDZWxsQ29vcmRzLnggPSBjdXJyZW50Q2VsbENvb3Jkcy54O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIG5leHRDZWxsQ29vcmRzLnggPSB0aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChuZXh0Q2VsbENvb3Jkcy55KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMudXRpbHMuaXNEZXRhaWxzUm93KG5leHRDZWxsQ29vcmRzLnkpICYmIG5leHRDZWxsQ29vcmRzLnkgPiAwKSB7XG4gICAgICBuZXh0Q2VsbENvb3Jkcy55ID0gbmV4dENlbGxDb29yZHMueSAtIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHRDZWxsQ29vcmRzO1xuICB9XG5cbiAgb3ZlcnJpZGUga2V5RG93bihjdXJyZW50Q2VsbENvb3JkczogQ2VsbENvb3JkaW5hdGVzKSB7XG4gICAgY29uc3QgbmV4dENlbGxDb29yZHMgPSB0aGlzLnV0aWxzLmNyZWF0ZU5leHRDZWxsQ29vcmRzKGN1cnJlbnRDZWxsQ29vcmRzKTtcblxuICAgIGNvbnN0IG51bU9mUm93cyA9IHRoaXMudXRpbHMucm93cyA/IHRoaXMudXRpbHMucm93cy5sZW5ndGggLSAxIDogMDtcbiAgICBpZiAoY3VycmVudENlbGxDb29yZHMueSA+PSBudW1PZlJvd3MpIHtcbiAgICAgIHJldHVybiBuZXh0Q2VsbENvb3JkcztcbiAgICB9XG5cbiAgICBuZXh0Q2VsbENvb3Jkcy55ID0gY3VycmVudENlbGxDb29yZHMueSArIDE7XG5cbiAgICBpZiAoIXRoaXMudXRpbHMuaXNBY3Rpb25DZWxsKGN1cnJlbnRDZWxsQ29vcmRzKSkge1xuICAgICAgaWYgKHRoaXMudXRpbHMuaXNSb3dSZXBsYWNlZChuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgICBuZXh0Q2VsbENvb3Jkcy55ID0gbmV4dENlbGxDb29yZHMueSArIDE7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgICBuZXh0Q2VsbENvb3Jkcy54ID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRDZWxsQ29vcmRzLnggPSB0aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChuZXh0Q2VsbENvb3Jkcy55KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dENlbGxDb29yZHMueSA9IG5leHRDZWxsQ29vcmRzLnkgPCBudW1PZlJvd3MgPyBuZXh0Q2VsbENvb3Jkcy55ICsgMSA6IG5leHRDZWxsQ29vcmRzLnk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHRDZWxsQ29vcmRzO1xuICB9XG5cbiAgb3ZlcnJpZGUga2V5TGVmdChjdXJyZW50Q2VsbENvb3JkczogQ2VsbENvb3JkaW5hdGVzKSB7XG4gICAgY29uc3QgbmV4dENlbGxDb29yZHMgPSB0aGlzLnV0aWxzLmNyZWF0ZU5leHRDZWxsQ29vcmRzKGN1cnJlbnRDZWxsQ29vcmRzKTtcblxuICAgIGlmICghdGhpcy51dGlscy5pc0RldGFpbHNSb3coY3VycmVudENlbGxDb29yZHMueSkgJiYgIXRoaXMudXRpbHMuaXNSb3dSZXBsYWNlZChjdXJyZW50Q2VsbENvb3Jkcy55KSkge1xuICAgICAgcmV0dXJuIHN1cGVyLmtleUxlZnQoY3VycmVudENlbGxDb29yZHMpO1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50Q2VsbENvb3Jkcy54ICE9PSAwKSB7XG4gICAgICBuZXh0Q2VsbENvb3Jkcy54ID0gY3VycmVudENlbGxDb29yZHMueCAtIDE7XG4gICAgfSBlbHNlIGlmICghdGhpcy51dGlscy5pc0FjdGlvbkNlbGwoY3VycmVudENlbGxDb29yZHMpKSB7XG4gICAgICBuZXh0Q2VsbENvb3Jkcy55ID0gY3VycmVudENlbGxDb29yZHMueSAtIDE7XG4gICAgICBuZXh0Q2VsbENvb3Jkcy54ID0gdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQobmV4dENlbGxDb29yZHMueSkgLSAxO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0Q2VsbENvb3JkcztcbiAgfVxuXG4gIG92ZXJyaWRlIGtleVJpZ2h0KGN1cnJlbnRDZWxsQ29vcmRzOiBDZWxsQ29vcmRpbmF0ZXMpIHtcbiAgICBjb25zdCBuZXh0Q2VsbENvb3JkcyA9IHRoaXMudXRpbHMuY3JlYXRlTmV4dENlbGxDb29yZHMoY3VycmVudENlbGxDb29yZHMpO1xuXG4gICAgaWYgKCF0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhjdXJyZW50Q2VsbENvb3Jkcy55KSAmJiAhdGhpcy51dGlscy5pc1Jvd1JlcGxhY2VkKGN1cnJlbnRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICByZXR1cm4gc3VwZXIua2V5UmlnaHQoY3VycmVudENlbGxDb29yZHMpO1xuICAgIH1cblxuICAgIC8vIGNhbGN1bGF0ZSBudW1PZkNvbHVtbnMgYmFzZWQgb24gaGVhZGVyIGNlbGxzLlxuICAgIGNvbnN0IG51bU9mQ29sdW1ucyA9IHRoaXMudXRpbHMucm93cz8ubGVuZ3RoIC0gMSA/IHRoaXMudXRpbHMuZ2V0Q2VsbHNGb3JSb3coMCkubGVuZ3RoIC0gMSA6IDA7XG5cbiAgICBpZiAoY3VycmVudENlbGxDb29yZHMueCA+PSBudW1PZkNvbHVtbnMpIHtcbiAgICAgIHJldHVybiBuZXh0Q2VsbENvb3JkcztcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLnV0aWxzLmlzQWN0aW9uQ2VsbChjdXJyZW50Q2VsbENvb3JkcykgJiZcbiAgICAgIGN1cnJlbnRDZWxsQ29vcmRzLnggPT09IHRoaXMudXRpbHMuYWN0aW9uQ2VsbENvdW50KGN1cnJlbnRDZWxsQ29vcmRzLngpIC0gMSAmJlxuICAgICAgdGhpcy51dGlscy5pc1Jvd1JlcGxhY2VkKGN1cnJlbnRDZWxsQ29vcmRzLnkpICYmXG4gICAgICAhdGhpcy51dGlscy5pc0RldGFpbHNSb3coY3VycmVudENlbGxDb29yZHMueSlcbiAgICApIHtcbiAgICAgIG5leHRDZWxsQ29vcmRzLnkgPSBjdXJyZW50Q2VsbENvb3Jkcy55ICsgMTtcbiAgICAgIG5leHRDZWxsQ29vcmRzLnggPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0Q2VsbENvb3Jkcy54ID0gY3VycmVudENlbGxDb29yZHMueCArIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHRDZWxsQ29vcmRzO1xuICB9XG5cbiAgb3ZlcnJpZGUga2V5RW5kKGN1cnJlbnRDZWxsQ29vcmRzOiBDZWxsQ29vcmRpbmF0ZXMsIGN0cmxLZXk6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBuZXh0Q2VsbENvb3JkcyA9IHRoaXMudXRpbHMuY3JlYXRlTmV4dENlbGxDb29yZHMoY3VycmVudENlbGxDb29yZHMpO1xuXG4gICAgaWYgKCghdGhpcy51dGlscy5pc0RldGFpbHNSb3coY3VycmVudENlbGxDb29yZHMueSkgJiYgIXRoaXMudXRpbHMuaXNSb3dSZXBsYWNlZChjdXJyZW50Q2VsbENvb3Jkcy55KSkgfHwgY3RybEtleSkge1xuICAgICAgcmV0dXJuIHN1cGVyLmtleUVuZChjdXJyZW50Q2VsbENvb3JkcywgY3RybEtleSk7XG4gICAgfVxuXG4gICAgbmV4dENlbGxDb29yZHMueCA9IHRoaXMudXRpbHMuZ2V0Q2VsbHNGb3JSb3coY3VycmVudENlbGxDb29yZHMueSkubGVuZ3RoIC0gMTtcblxuICAgIHJldHVybiBuZXh0Q2VsbENvb3JkcztcbiAgfVxuXG4gIG92ZXJyaWRlIGtleUhvbWUoY3VycmVudENlbGxDb29yZHM6IENlbGxDb29yZGluYXRlcywgY3RybEtleTogYm9vbGVhbikge1xuICAgIGNvbnN0IG5leHRDZWxsQ29vcmRzID0gdGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhjdXJyZW50Q2VsbENvb3Jkcyk7XG5cbiAgICBpZiAoIXRoaXMudXRpbHMuaXNEZXRhaWxzUm93KGN1cnJlbnRDZWxsQ29vcmRzLnkpICYmICF0aGlzLnV0aWxzLmlzUm93UmVwbGFjZWQoY3VycmVudENlbGxDb29yZHMueSkpIHtcbiAgICAgIHJldHVybiBzdXBlci5rZXlIb21lKGN1cnJlbnRDZWxsQ29vcmRzLCBjdHJsS2V5KTtcbiAgICB9XG5cbiAgICBuZXh0Q2VsbENvb3Jkcy54ID0gMDtcbiAgICBuZXh0Q2VsbENvb3Jkcy55ID0gY3VycmVudENlbGxDb29yZHMueSAtIDE7XG5cbiAgICBpZiAoY3RybEtleSkge1xuICAgICAgbmV4dENlbGxDb29yZHMueSA9IDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHRDZWxsQ29vcmRzO1xuICB9XG5cbiAgb3ZlcnJpZGUga2V5UGFnZVVwKGN1cnJlbnRDZWxsQ29vcmRzOiBDZWxsQ29vcmRpbmF0ZXMpIHtcbiAgICBjb25zdCBuZXh0Q2VsbENvb3JkcyA9IHRoaXMudXRpbHMuY3JlYXRlTmV4dENlbGxDb29yZHMoY3VycmVudENlbGxDb29yZHMpO1xuICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSA9IHRoaXMudXRpbHMuaXRlbXNQZXJQYWdlO1xuXG4gICAgbmV4dENlbGxDb29yZHMueSA9IGN1cnJlbnRDZWxsQ29vcmRzLnkgLSBpdGVtc1BlclBhZ2UgPiAwID8gY3VycmVudENlbGxDb29yZHMueSAtIGl0ZW1zUGVyUGFnZSArIDEgOiAxO1xuXG4gICAgaWYgKCF0aGlzLnV0aWxzLmlzQWN0aW9uQ2VsbChjdXJyZW50Q2VsbENvb3JkcykpIHtcbiAgICAgIGlmICh0aGlzLnV0aWxzLmlzUm93UmVwbGFjZWQobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgICAgaWYgKCF0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgICAgIG5leHRDZWxsQ29vcmRzLnkgPSBuZXh0Q2VsbENvb3Jkcy55ICsgMTtcbiAgICAgICAgICBuZXh0Q2VsbENvb3Jkcy54ID0gMDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICghdGhpcy51dGlscy5pc0RldGFpbHNSb3coY3VycmVudENlbGxDb29yZHMueSkpIHtcbiAgICAgICAgaWYgKHRoaXMudXRpbHMuaXNEZXRhaWxzUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgICAgbmV4dENlbGxDb29yZHMueCA9IDA7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy51dGlscy5pc0RldGFpbHNSb3coY3VycmVudENlbGxDb29yZHMueSkpIHtcbiAgICAgICAgaWYgKCF0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgICAgIG5leHRDZWxsQ29vcmRzLnggPSB0aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChuZXh0Q2VsbENvb3Jkcy55KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy51dGlscy5pc0RldGFpbHNSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgIG5leHRDZWxsQ29vcmRzLnkgPSBuZXh0Q2VsbENvb3Jkcy55IC0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dENlbGxDb29yZHM7XG4gIH1cblxuICBvdmVycmlkZSBrZXlQYWdlRG93bihjdXJyZW50Q2VsbENvb3JkczogQ2VsbENvb3JkaW5hdGVzKSB7XG4gICAgY29uc3QgbmV4dENlbGxDb29yZHMgPSB0aGlzLnV0aWxzLmNyZWF0ZU5leHRDZWxsQ29vcmRzKGN1cnJlbnRDZWxsQ29vcmRzKTtcblxuICAgIGNvbnN0IG51bU9mUm93cyA9IHRoaXMudXRpbHMucm93cyA/IHRoaXMudXRpbHMucm93cy5sZW5ndGggLSAxIDogMDtcbiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSB0aGlzLnV0aWxzLml0ZW1zUGVyUGFnZTtcblxuICAgIG5leHRDZWxsQ29vcmRzLnkgPSBjdXJyZW50Q2VsbENvb3Jkcy55ICsgaXRlbXNQZXJQYWdlID49IG51bU9mUm93cyA/IG51bU9mUm93cyA6IGN1cnJlbnRDZWxsQ29vcmRzLnkgKyBpdGVtc1BlclBhZ2U7XG5cbiAgICBpZiAoIXRoaXMudXRpbHMuaXNBY3Rpb25DZWxsKGN1cnJlbnRDZWxsQ29vcmRzKSkge1xuICAgICAgaWYgKHRoaXMudXRpbHMuaXNSb3dSZXBsYWNlZChuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgICBpZiAobmV4dENlbGxDb29yZHMueSA8IG51bU9mUm93cyAmJiAhdGhpcy51dGlscy5pc0RldGFpbHNSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgICAgICBuZXh0Q2VsbENvb3Jkcy55ID0gbmV4dENlbGxDb29yZHMueSArIDE7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy51dGlscy5pc0RldGFpbHNSb3coY3VycmVudENlbGxDb29yZHMueSkgJiYgIXRoaXMudXRpbHMuaXNEZXRhaWxzUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgIG5leHRDZWxsQ29vcmRzLnggPSBjdXJyZW50Q2VsbENvb3Jkcy54ICsgdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQobmV4dENlbGxDb29yZHMueSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudXRpbHMuaXNEZXRhaWxzUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgIG5leHRDZWxsQ29vcmRzLnggPSAwO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy51dGlscy5pc0RldGFpbHNSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgIG5leHRDZWxsQ29vcmRzLnkgPSBuZXh0Q2VsbENvb3Jkcy55IC0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dENlbGxDb29yZHM7XG4gIH1cbn1cbiJdfQ==
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kZWQtcm93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS9kYXRhZ3JpZC91dGlscy9rZXktbmF2aWdhdGlvbi1zdHJhdGVnaWVzL2V4cGFuZGVkLXJvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUdILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6RCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsNEJBQTRCO0lBQ3ZFLEtBQUssQ0FBQyxpQkFBa0M7UUFDL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTFFLElBQUksaUJBQWlCLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM3QixPQUFPLGNBQWMsQ0FBQztTQUN2QjtRQUVELGNBQWMsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUzQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUMvQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNqRCxjQUFjLENBQUMsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3pDO1lBRUQsUUFBUSxJQUFJLEVBQUU7Z0JBQ1osS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO29CQUM1QyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDckIsTUFBTTtnQkFDUixLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxLQUFLLEtB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UmlnaHRzIFJlc2VydmVkLlxuICogVGhlIHRlcm0gXCJCcm9hZGNvbVwiIHJlZmVycyB0byBCcm9hZGNvbSBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVzLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBDZWxsQ29vcmRpbmF0ZXMgfSBmcm9tICcuLi9rZXktbmF2aWdhdGlvbi1ncmlkLmNvbnRyb2xsZXInO1xuaW1wb3J0IHsgRGVmYXVsdEtleU5hdmlnYXRpb25TdHJhdGVneSB9IGZyb20gJy4vZGVmYXVsdCc7XG5cbmV4cG9ydCBjbGFzcyBFeHBhbmRlZFJvd0tleU5hdmlnYXRpb25TdHJhdGVneSBleHRlbmRzIERlZmF1bHRLZXlOYXZpZ2F0aW9uU3RyYXRlZ3kge1xuICBvdmVycmlkZSBrZXlVcChjdXJyZW50Q2VsbENvb3JkczogQ2VsbENvb3JkaW5hdGVzKSB7XG4gICAgY29uc3QgbmV4dENlbGxDb29yZHMgPSB0aGlzLnV0aWxzLmNyZWF0ZU5leHRDZWxsQ29vcmRzKGN1cnJlbnRDZWxsQ29vcmRzKTtcblxuICAgIGlmIChjdXJyZW50Q2VsbENvb3Jkcy55ID09PSAwKSB7XG4gICAgICByZXR1cm4gbmV4dENlbGxDb29yZHM7XG4gICAgfVxuXG4gICAgbmV4dENlbGxDb29yZHMueSA9IGN1cnJlbnRDZWxsQ29vcmRzLnkgLSAxO1xuXG4gICAgaWYgKCF0aGlzLnV0aWxzLmlzQWN0aW9uQ2VsbChjdXJyZW50Q2VsbENvb3JkcykpIHtcbiAgICAgIGlmICh0aGlzLnV0aWxzLmlzUm93UmVwbGFjZWQoY3VycmVudENlbGxDb29yZHMueSkpIHtcbiAgICAgICAgbmV4dENlbGxDb29yZHMueSA9IG5leHRDZWxsQ29vcmRzLnkgLSAxO1xuICAgICAgfVxuXG4gICAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgY2FzZSB0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhuZXh0Q2VsbENvb3Jkcy55KTpcbiAgICAgICAgICBuZXh0Q2VsbENvb3Jkcy54ID0gMDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSB0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhjdXJyZW50Q2VsbENvb3Jkcy55KSA9PT0gZmFsc2U6XG4gICAgICAgICAgbmV4dENlbGxDb29yZHMueCA9IGN1cnJlbnRDZWxsQ29vcmRzLng7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgbmV4dENlbGxDb29yZHMueCA9IHRoaXMudXRpbHMuYWN0aW9uQ2VsbENvdW50KG5leHRDZWxsQ29vcmRzLnkpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy51dGlscy5pc0RldGFpbHNSb3cobmV4dENlbGxDb29yZHMueSkgJiYgbmV4dENlbGxDb29yZHMueSA+IDApIHtcbiAgICAgIG5leHRDZWxsQ29vcmRzLnkgPSBuZXh0Q2VsbENvb3Jkcy55IC0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dENlbGxDb29yZHM7XG4gIH1cblxuICBvdmVycmlkZSBrZXlEb3duKGN1cnJlbnRDZWxsQ29vcmRzOiBDZWxsQ29vcmRpbmF0ZXMpIHtcbiAgICBjb25zdCBuZXh0Q2VsbENvb3JkcyA9IHRoaXMudXRpbHMuY3JlYXRlTmV4dENlbGxDb29yZHMoY3VycmVudENlbGxDb29yZHMpO1xuXG4gICAgY29uc3QgbnVtT2ZSb3dzID0gdGhpcy51dGlscy5yb3dzID8gdGhpcy51dGlscy5yb3dzLmxlbmd0aCAtIDEgOiAwO1xuICAgIGlmIChjdXJyZW50Q2VsbENvb3Jkcy55ID49IG51bU9mUm93cykge1xuICAgICAgcmV0dXJuIG5leHRDZWxsQ29vcmRzO1xuICAgIH1cblxuICAgIG5leHRDZWxsQ29vcmRzLnkgPSBjdXJyZW50Q2VsbENvb3Jkcy55ICsgMTtcblxuICAgIGlmICghdGhpcy51dGlscy5pc0FjdGlvbkNlbGwoY3VycmVudENlbGxDb29yZHMpKSB7XG4gICAgICBpZiAodGhpcy51dGlscy5pc1Jvd1JlcGxhY2VkKG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgIG5leHRDZWxsQ29vcmRzLnkgPSBuZXh0Q2VsbENvb3Jkcy55ICsgMTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMudXRpbHMuaXNEZXRhaWxzUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgIG5leHRDZWxsQ29vcmRzLnggPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV4dENlbGxDb29yZHMueCA9IHRoaXMudXRpbHMuYWN0aW9uQ2VsbENvdW50KG5leHRDZWxsQ29vcmRzLnkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0Q2VsbENvb3Jkcy55ID0gbmV4dENlbGxDb29yZHMueSA8IG51bU9mUm93cyA/IG5leHRDZWxsQ29vcmRzLnkgKyAxIDogbmV4dENlbGxDb29yZHMueTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dENlbGxDb29yZHM7XG4gIH1cblxuICBvdmVycmlkZSBrZXlMZWZ0KGN1cnJlbnRDZWxsQ29vcmRzOiBDZWxsQ29vcmRpbmF0ZXMpIHtcbiAgICBjb25zdCBuZXh0Q2VsbENvb3JkcyA9IHRoaXMudXRpbHMuY3JlYXRlTmV4dENlbGxDb29yZHMoY3VycmVudENlbGxDb29yZHMpO1xuXG4gICAgaWYgKCF0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhjdXJyZW50Q2VsbENvb3Jkcy55KSAmJiAhdGhpcy51dGlscy5pc1Jvd1JlcGxhY2VkKGN1cnJlbnRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICByZXR1cm4gc3VwZXIua2V5TGVmdChjdXJyZW50Q2VsbENvb3Jkcyk7XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRDZWxsQ29vcmRzLnggIT09IDApIHtcbiAgICAgIG5leHRDZWxsQ29vcmRzLnggPSBjdXJyZW50Q2VsbENvb3Jkcy54IC0gMTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLnV0aWxzLmlzQWN0aW9uQ2VsbChjdXJyZW50Q2VsbENvb3JkcykpIHtcbiAgICAgIG5leHRDZWxsQ29vcmRzLnkgPSBjdXJyZW50Q2VsbENvb3Jkcy55IC0gMTtcbiAgICAgIG5leHRDZWxsQ29vcmRzLnggPSB0aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChuZXh0Q2VsbENvb3Jkcy55KSAtIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHRDZWxsQ29vcmRzO1xuICB9XG5cbiAgb3ZlcnJpZGUga2V5UmlnaHQoY3VycmVudENlbGxDb29yZHM6IENlbGxDb29yZGluYXRlcykge1xuICAgIGNvbnN0IG5leHRDZWxsQ29vcmRzID0gdGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhjdXJyZW50Q2VsbENvb3Jkcyk7XG5cbiAgICBpZiAoIXRoaXMudXRpbHMuaXNEZXRhaWxzUm93KGN1cnJlbnRDZWxsQ29vcmRzLnkpICYmICF0aGlzLnV0aWxzLmlzUm93UmVwbGFjZWQoY3VycmVudENlbGxDb29yZHMueSkpIHtcbiAgICAgIHJldHVybiBzdXBlci5rZXlSaWdodChjdXJyZW50Q2VsbENvb3Jkcyk7XG4gICAgfVxuXG4gICAgLy8gY2FsY3VsYXRlIG51bU9mQ29sdW1ucyBiYXNlZCBvbiBoZWFkZXIgY2VsbHMuXG4gICAgY29uc3QgbnVtT2ZDb2x1bW5zID0gdGhpcy51dGlscy5yb3dzPy5sZW5ndGggLSAxID8gdGhpcy51dGlscy5nZXRDZWxsc0ZvclJvdygwKS5sZW5ndGggLSAxIDogMDtcblxuICAgIGlmIChjdXJyZW50Q2VsbENvb3Jkcy54ID49IG51bU9mQ29sdW1ucykge1xuICAgICAgcmV0dXJuIG5leHRDZWxsQ29vcmRzO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMudXRpbHMuaXNBY3Rpb25DZWxsKGN1cnJlbnRDZWxsQ29vcmRzKSAmJlxuICAgICAgY3VycmVudENlbGxDb29yZHMueCA9PT0gdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQoY3VycmVudENlbGxDb29yZHMueCkgLSAxICYmXG4gICAgICB0aGlzLnV0aWxzLmlzUm93UmVwbGFjZWQoY3VycmVudENlbGxDb29yZHMueSkgJiZcbiAgICAgICF0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhjdXJyZW50Q2VsbENvb3Jkcy55KVxuICAgICkge1xuICAgICAgbmV4dENlbGxDb29yZHMueSA9IGN1cnJlbnRDZWxsQ29vcmRzLnkgKyAxO1xuICAgICAgbmV4dENlbGxDb29yZHMueCA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRDZWxsQ29vcmRzLnggPSBjdXJyZW50Q2VsbENvb3Jkcy54ICsgMTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dENlbGxDb29yZHM7XG4gIH1cblxuICBvdmVycmlkZSBrZXlFbmQoY3VycmVudENlbGxDb29yZHM6IENlbGxDb29yZGluYXRlcywgY3RybEtleTogYm9vbGVhbikge1xuICAgIGNvbnN0IG5leHRDZWxsQ29vcmRzID0gdGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhjdXJyZW50Q2VsbENvb3Jkcyk7XG5cbiAgICBpZiAoKCF0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhjdXJyZW50Q2VsbENvb3Jkcy55KSAmJiAhdGhpcy51dGlscy5pc1Jvd1JlcGxhY2VkKGN1cnJlbnRDZWxsQ29vcmRzLnkpKSB8fCBjdHJsS2V5KSB7XG4gICAgICByZXR1cm4gc3VwZXIua2V5RW5kKGN1cnJlbnRDZWxsQ29vcmRzLCBjdHJsS2V5KTtcbiAgICB9XG5cbiAgICBuZXh0Q2VsbENvb3Jkcy54ID0gdGhpcy51dGlscy5nZXRDZWxsc0ZvclJvdyhjdXJyZW50Q2VsbENvb3Jkcy55KS5sZW5ndGggLSAxO1xuXG4gICAgcmV0dXJuIG5leHRDZWxsQ29vcmRzO1xuICB9XG5cbiAgb3ZlcnJpZGUga2V5SG9tZShjdXJyZW50Q2VsbENvb3JkczogQ2VsbENvb3JkaW5hdGVzLCBjdHJsS2V5OiBib29sZWFuKSB7XG4gICAgY29uc3QgbmV4dENlbGxDb29yZHMgPSB0aGlzLnV0aWxzLmNyZWF0ZU5leHRDZWxsQ29vcmRzKGN1cnJlbnRDZWxsQ29vcmRzKTtcblxuICAgIGlmICghdGhpcy51dGlscy5pc0RldGFpbHNSb3coY3VycmVudENlbGxDb29yZHMueSkgJiYgIXRoaXMudXRpbHMuaXNSb3dSZXBsYWNlZChjdXJyZW50Q2VsbENvb3Jkcy55KSkge1xuICAgICAgcmV0dXJuIHN1cGVyLmtleUhvbWUoY3VycmVudENlbGxDb29yZHMsIGN0cmxLZXkpO1xuICAgIH1cblxuICAgIG5leHRDZWxsQ29vcmRzLnggPSAwO1xuICAgIG5leHRDZWxsQ29vcmRzLnkgPSBjdXJyZW50Q2VsbENvb3Jkcy55IC0gMTtcblxuICAgIGlmIChjdHJsS2V5KSB7XG4gICAgICBuZXh0Q2VsbENvb3Jkcy55ID0gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dENlbGxDb29yZHM7XG4gIH1cblxuICBvdmVycmlkZSBrZXlQYWdlVXAoY3VycmVudENlbGxDb29yZHM6IENlbGxDb29yZGluYXRlcykge1xuICAgIGNvbnN0IG5leHRDZWxsQ29vcmRzID0gdGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhjdXJyZW50Q2VsbENvb3Jkcyk7XG4gICAgY29uc3QgaXRlbXNQZXJQYWdlID0gdGhpcy51dGlscy5pdGVtc1BlclBhZ2U7XG5cbiAgICBuZXh0Q2VsbENvb3Jkcy55ID0gY3VycmVudENlbGxDb29yZHMueSAtIGl0ZW1zUGVyUGFnZSA+IDAgPyBjdXJyZW50Q2VsbENvb3Jkcy55IC0gaXRlbXNQZXJQYWdlICsgMSA6IDE7XG5cbiAgICBpZiAoIXRoaXMudXRpbHMuaXNBY3Rpb25DZWxsKGN1cnJlbnRDZWxsQ29vcmRzKSkge1xuICAgICAgaWYgKHRoaXMudXRpbHMuaXNSb3dSZXBsYWNlZChuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgICBpZiAoIXRoaXMudXRpbHMuaXNEZXRhaWxzUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgICAgbmV4dENlbGxDb29yZHMueSA9IG5leHRDZWxsQ29vcmRzLnkgKyAxO1xuICAgICAgICAgIG5leHRDZWxsQ29vcmRzLnggPSAwO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhjdXJyZW50Q2VsbENvb3Jkcy55KSkge1xuICAgICAgICBpZiAodGhpcy51dGlscy5pc0RldGFpbHNSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgICAgICBuZXh0Q2VsbENvb3Jkcy54ID0gMDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhjdXJyZW50Q2VsbENvb3Jkcy55KSkge1xuICAgICAgICBpZiAoIXRoaXMudXRpbHMuaXNEZXRhaWxzUm93KG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgICAgbmV4dENlbGxDb29yZHMueCA9IHRoaXMudXRpbHMuYWN0aW9uQ2VsbENvdW50KG5leHRDZWxsQ29vcmRzLnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgbmV4dENlbGxDb29yZHMueSA9IG5leHRDZWxsQ29vcmRzLnkgLSAxO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0Q2VsbENvb3JkcztcbiAgfVxuXG4gIG92ZXJyaWRlIGtleVBhZ2VEb3duKGN1cnJlbnRDZWxsQ29vcmRzOiBDZWxsQ29vcmRpbmF0ZXMpIHtcbiAgICBjb25zdCBuZXh0Q2VsbENvb3JkcyA9IHRoaXMudXRpbHMuY3JlYXRlTmV4dENlbGxDb29yZHMoY3VycmVudENlbGxDb29yZHMpO1xuXG4gICAgY29uc3QgbnVtT2ZSb3dzID0gdGhpcy51dGlscy5yb3dzID8gdGhpcy51dGlscy5yb3dzLmxlbmd0aCAtIDEgOiAwO1xuICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSA9IHRoaXMudXRpbHMuaXRlbXNQZXJQYWdlO1xuXG4gICAgbmV4dENlbGxDb29yZHMueSA9IGN1cnJlbnRDZWxsQ29vcmRzLnkgKyBpdGVtc1BlclBhZ2UgPj0gbnVtT2ZSb3dzID8gbnVtT2ZSb3dzIDogY3VycmVudENlbGxDb29yZHMueSArIGl0ZW1zUGVyUGFnZTtcblxuICAgIGlmICghdGhpcy51dGlscy5pc0FjdGlvbkNlbGwoY3VycmVudENlbGxDb29yZHMpKSB7XG4gICAgICBpZiAodGhpcy51dGlscy5pc1Jvd1JlcGxhY2VkKG5leHRDZWxsQ29vcmRzLnkpKSB7XG4gICAgICAgIGlmIChuZXh0Q2VsbENvb3Jkcy55IDwgbnVtT2ZSb3dzICYmICF0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgICAgIG5leHRDZWxsQ29vcmRzLnkgPSBuZXh0Q2VsbENvb3Jkcy55ICsgMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhjdXJyZW50Q2VsbENvb3Jkcy55KSAmJiAhdGhpcy51dGlscy5pc0RldGFpbHNSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgICAgbmV4dENlbGxDb29yZHMueCA9IGN1cnJlbnRDZWxsQ29vcmRzLnggKyB0aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChuZXh0Q2VsbENvb3Jkcy55KTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy51dGlscy5pc0RldGFpbHNSb3cobmV4dENlbGxDb29yZHMueSkpIHtcbiAgICAgICAgbmV4dENlbGxDb29yZHMueCA9IDA7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhuZXh0Q2VsbENvb3Jkcy55KSkge1xuICAgICAgbmV4dENlbGxDb29yZHMueSA9IG5leHRDZWxsQ29vcmRzLnkgLSAxO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0Q2VsbENvb3JkcztcbiAgfVxufVxuIl19
|
|
@@ -33,8 +33,21 @@ export class KeyNavigationUtils {
|
|
|
33
33
|
};
|
|
34
34
|
return coordinates;
|
|
35
35
|
}
|
|
36
|
+
get averageRowHeight() {
|
|
37
|
+
const heightSum = Array.from(this.rows.values()).reduce((sum, row) => {
|
|
38
|
+
return sum + row.clientHeight;
|
|
39
|
+
}, 0);
|
|
40
|
+
return Math.round(heightSum / this.rows.length);
|
|
41
|
+
}
|
|
36
42
|
get itemsPerPage() {
|
|
37
|
-
return Math.floor(this.host?.querySelector('.datagrid').clientHeight / this.
|
|
43
|
+
return Math.floor(this.host?.querySelector('.datagrid').clientHeight / this.averageRowHeight) - 1 || 0;
|
|
44
|
+
}
|
|
45
|
+
setAriaRowIndexTo(cellCoords) {
|
|
46
|
+
let ariaRowIndex = this.rows[cellCoords.y].getAttribute('aria-rowindex');
|
|
47
|
+
if (!ariaRowIndex) {
|
|
48
|
+
ariaRowIndex = this.rows[cellCoords.y - 1].getAttribute('aria-rowindex');
|
|
49
|
+
}
|
|
50
|
+
cellCoords.ariaRowIndex = ariaRowIndex;
|
|
38
51
|
}
|
|
39
52
|
getNextItemCoordinate(e) {
|
|
40
53
|
const currentCellCoords = this.currentCellCoordinates;
|
|
@@ -105,4 +118,4 @@ export class KeyNavigationUtils {
|
|
|
105
118
|
}
|
|
106
119
|
}
|
|
107
120
|
}
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LW5hdmlnYXRpb24tdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9kYXRhL2RhdGFncmlkL3V0aWxzL2tleS1uYXZpZ2F0aW9uLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3RELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTVGLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFBbUIsSUFBaUIsRUFBUyxNQUErQjtRQUF6RCxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBeUI7SUFBRyxDQUFDO0lBRWhGLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUE0QixDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQTRCLENBQUM7SUFDMUYsQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUss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SSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyw0RUFBNEUsQ0FBQyxDQUNoSCxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FBQyxVQUEyQjtRQUN0QyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsVUFBMkI7UUFDOUMsT0FBTztZQUNMLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNmLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxpQkFBa0M7UUFDdkQsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BELE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwRCxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxJQUFJLHVDQUF1QyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNEO2dCQUNFLE9BQU8sSUFBSSw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqRDtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgS2V5cyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2VudW1zL2tleXMuZW51bSc7XG5pbXBvcnQgeyBLZXlOYXZpZ2F0aW9uR3JpZFN0cmF0ZWd5SW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9rZXktbmF2LWdyaWQtc3RyYXRlZ3kuaW50ZXJmYWNlJztcbmltcG9ydCB7IENlbGxDb29yZGluYXRlcywgS2V5TmF2aWdhdGlvbkdyaWRDb25maWcgfSBmcm9tICcuL2tleS1uYXZpZ2F0aW9uLWdyaWQuY29udHJvbGxlcic7XG5pbXBvcnQgeyBEZWZhdWx0S2V5TmF2aWdhdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9rZXktbmF2aWdhdGlvbi1zdHJhdGVnaWVzL2RlZmF1bHQnO1xuaW1wb3J0IHsgRXhwYW5kZWRDb2x1bW5zUm93S2V5TmF2aWdhdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9rZXktbmF2aWdhdGlvbi1zdHJhdGVnaWVzL2V4cGFuZGVkLWNvbHVtbnMtcm93JztcbmltcG9ydCB7IEV4cGFuZGVkUm93S2V5TmF2aWdhdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9rZXktbmF2aWdhdGlvbi1zdHJhdGVnaWVzL2V4cGFuZGVkLXJvdyc7XG5cbmV4cG9ydCBjbGFzcyBLZXlOYXZpZ2F0aW9uVXRpbHMge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgaG9zdDogSFRNTEVsZW1lbnQsIHB1YmxpYyBjb25maWc6IEtleU5hdmlnYXRpb25HcmlkQ29uZmlnKSB7fVxuXG4gIGdldCBncmlkKCkge1xuICAgIHJldHVybiB0aGlzLmhvc3Q/LnF1ZXJ5U2VsZWN0b3IodGhpcy5jb25maWcua2V5R3JpZCk7XG4gIH1cblxuICBnZXQgcm93cygpIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0Py5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuY29uZmlnLmtleUdyaWRSb3dzKSBhcyBOb2RlTGlzdE9mPEhUTUxFbGVtZW50PjtcbiAgfVxuXG4gIGdldCBjZWxscygpIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0Py5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuY29uZmlnLmtleUdyaWRDZWxscykgYXMgTm9kZUxpc3RPZjxIVE1MRWxlbWVudD47XG4gIH1cblxuICBnZXQgY3VycmVudENlbGxDb29yZGluYXRlcygpIHtcbiAgICBjb25zdCBjdXJyZW50Q2VsbCA9IHRoaXMuY2VsbHMgPyBBcnJheS5mcm9tKHRoaXMuY2VsbHMpLmZpbmQoaSA9PiBpLmdldEF0dHJpYnV0ZSgndGFiaW5kZXgnKSA9PT0gJzAnKSA6IG51bGw7XG4gICAgY29uc3QgY3VycmVudFJvdzogSFRNTEVsZW1lbnQgPSBjdXJyZW50Q2VsbCA/IGN1cnJlbnRDZWxsLmNsb3Nlc3QodGhpcy5jb25maWcua2V5R3JpZFJvd3MpIDogbnVsbDtcblxuICAgIGNvbnN0IGNvb3JkaW5hdGVzOiBDZWxsQ29vcmRpbmF0ZXMgPSB7XG4gICAgICB4OlxuICAgICAgICBjdXJyZW50Um93ICYmIGN1cnJlbnRDZWxsXG4gICAgICAgICAgPyBBcnJheS5mcm9tKGN1cnJlbnRSb3cucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5rZXlHcmlkQ2VsbHMpKS5pbmRleE9mKGN1cnJlbnRDZWxsKVxuICAgICAgICAgIDogMCxcbiAgICAgIHk6IGN1cnJlbnRSb3cgJiYgY3VycmVudENlbGwgJiYgdGhpcy5yb3dzID8gQXJyYXkuZnJvbSh0aGlzLnJvd3MpLmluZGV4T2YoY3VycmVudFJvdykgOiAwLFxuICAgIH07XG5cbiAgICByZXR1cm4gY29vcmRpbmF0ZXM7XG4gIH1cblxuICBnZXQgaXRlbXNQZXJQYWdlKCkge1xuICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMuaG9zdD8ucXVlcnlTZWxlY3RvcignLmRhdGFncmlkJykuY2xpZW50SGVpZ2h0IC8gdGhpcy5yb3dzWzBdLmNsaWVudEhlaWdodCkgLSAxIHx8IDA7XG4gIH1cblxuICBnZXROZXh0SXRlbUNvb3JkaW5hdGUoZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIGNvbnN0IGN1cnJlbnRDZWxsQ29vcmRzID0gdGhpcy5jdXJyZW50Q2VsbENvb3JkaW5hdGVzO1xuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5nZXROYXZTdHJhdGVneShjdXJyZW50Q2VsbENvb3Jkcyk7XG5cbiAgICBjb25zdCBpbmxpbmVTdGFydCA9IHRoaXMuaG9zdC5kaXIgPT09ICdydGwnID8gS2V5cy5BcnJvd1JpZ2h0IDogS2V5cy5BcnJvd0xlZnQ7XG4gICAgY29uc3QgaW5saW5lRW5kID0gdGhpcy5ob3N0LmRpciA9PT0gJ3J0bCcgPyBLZXlzLkFycm93TGVmdCA6IEtleXMuQXJyb3dSaWdodDtcblxuICAgIHN3aXRjaCAoZS5rZXkpIHtcbiAgICAgIGNhc2UgS2V5cy5BcnJvd1VwOlxuICAgICAgICByZXR1cm4gc3RyYXRlZ3kua2V5VXAoY3VycmVudENlbGxDb29yZHMpO1xuICAgICAgY2FzZSBLZXlzLkFycm93RG93bjpcbiAgICAgICAgcmV0dXJuIHN0cmF0ZWd5LmtleURvd24oY3VycmVudENlbGxDb29yZHMpO1xuICAgICAgY2FzZSBpbmxpbmVTdGFydDpcbiAgICAgICAgcmV0dXJuIHN0cmF0ZWd5LmtleUxlZnQoY3VycmVudENlbGxDb29yZHMpO1xuICAgICAgY2FzZSBpbmxpbmVFbmQ6XG4gICAgICAgIHJldHVybiBzdHJhdGVneS5rZXlSaWdodChjdXJyZW50Q2VsbENvb3Jkcyk7XG4gICAgICBjYXNlIEtleXMuSG9tZTpcbiAgICAgICAgcmV0dXJuIHN0cmF0ZWd5LmtleUhvbWUoY3VycmVudENlbGxDb29yZHMsIGUuY3RybEtleSk7XG4gICAgICBjYXNlIEtleXMuRW5kOlxuICAgICAgICByZXR1cm4gc3RyYXRlZ3kua2V5RW5kKGN1cnJlbnRDZWxsQ29vcmRzLCBlLmN0cmxLZXkpO1xuICAgICAgY2FzZSBLZXlzLlBhZ2VVcDpcbiAgICAgICAgcmV0dXJuIHN0cmF0ZWd5LmtleVBhZ2VVcChjdXJyZW50Q2VsbENvb3Jkcyk7XG4gICAgICBjYXNlIEtleXMuUGFnZURvd246XG4gICAgICAgIHJldHVybiBzdHJhdGVneS5rZXlQYWdlRG93bihjdXJyZW50Q2VsbENvb3Jkcyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gY3VycmVudENlbGxDb29yZHM7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q2VsbHNGb3JSb3coaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLnJvd3NbaW5kZXhdLnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5jb25maWcua2V5R3JpZENlbGxzKTtcbiAgfVxuXG4gIGlzRXhwYW5kZWRSb3coaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLnJvd3NbaW5kZXhdLnF1ZXJ5U2VsZWN0b3IoJy5kYXRhZ3JpZC1yb3ctZGV0YWlsJyk7XG5cbiAgICByZXR1cm4gc2VsZWN0ZWRFbGVtZW50ID8gc2VsZWN0ZWRFbGVtZW50LnN0eWxlLmRpc3BsYXkgIT09ICdub25lJyA6IGZhbHNlO1xuICB9XG5cbiAgaXNEZXRhaWxzUm93KGluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5yb3dzW2luZGV4XS5jbGFzc0xpc3QuY29udGFpbnMoJ2RhdGFncmlkLXJvdy1kZXRhaWwnKTtcbiAgfVxuXG4gIGlzUm93UmVwbGFjZWQoaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiAhIXRoaXMucm93c1tpbmRleF0uY2xvc2VzdCgnY2xyLWRnLXJvdy5kYXRhZ3JpZC1yb3ctcmVwbGFjZWQnKTtcbiAgfVxuXG4gIGlzU2luZ2xlQ2VsbEV4cGFuZGVkUm93KGluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5yb3dzW2luZGV4XT8ucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5rZXlHcmlkQ2VsbHMpLmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIGFjdGlvbkNlbGxDb3VudChpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uQ2VsbHNBc0FycmF5KGluZGV4KS5sZW5ndGg7XG4gIH1cblxuICBhY3Rpb25DZWxsc0FzQXJyYXkoaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5yb3dzW2luZGV4XS5xdWVyeVNlbGVjdG9yQWxsKCcuZGF0YWdyaWQtcm93LXN0aWNreSAuZGF0YWdyaWQtY2VsbCwgLmRhdGFncmlkLXJvdy1zdGlja3kgLmRhdGFncmlkLWNvbHVtbicpXG4gICAgKTtcbiAgfVxuXG4gIGlzQWN0aW9uQ2VsbChjZWxsQ29vcmRzOiBDZWxsQ29vcmRpbmF0ZXMpIHtcbiAgICByZXR1cm4gISF0aGlzLmFjdGlvbkNlbGxzQXNBcnJheShjZWxsQ29vcmRzLnkpW2NlbGxDb29yZHMueF07XG4gIH1cblxuICBjcmVhdGVOZXh0Q2VsbENvb3JkcyhjZWxsQ29vcmRzOiBDZWxsQ29vcmRpbmF0ZXMpOiBDZWxsQ29vcmRpbmF0ZXMge1xuICAgIHJldHVybiB7XG4gICAgICB4OiBjZWxsQ29vcmRzLngsXG4gICAgICB5OiBjZWxsQ29vcmRzLnksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TmF2U3RyYXRlZ3koY3VycmVudENlbGxDb29yZHM6IENlbGxDb29yZGluYXRlcyk6IEtleU5hdmlnYXRpb25HcmlkU3RyYXRlZ3lJbnRlcmZhY2Uge1xuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSB0aGlzLmlzU2luZ2xlQ2VsbEV4cGFuZGVkUm93KGN1cnJlbnRDZWxsQ29vcmRzLnkpOlxuICAgICAgICByZXR1cm4gbmV3IEV4cGFuZGVkUm93S2V5TmF2aWdhdGlvblN0cmF0ZWd5KHRoaXMpO1xuICAgICAgY2FzZSB0aGlzLmlzRGV0YWlsc1JvdyhjdXJyZW50Q2VsbENvb3Jkcy55KTpcbiAgICAgIGNhc2UgdGhpcy5pc0V4cGFuZGVkUm93KGN1cnJlbnRDZWxsQ29vcmRzLnkpOlxuICAgICAgICByZXR1cm4gbmV3IEV4cGFuZGVkQ29sdW1uc1Jvd0tleU5hdmlnYXRpb25TdHJhdGVneSh0aGlzKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBuZXcgRGVmYXVsdEtleU5hdmlnYXRpb25TdHJhdGVneSh0aGlzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LW5hdmlnYXRpb24tdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9kYXRhL2RhdGFncmlkL3V0aWxzL2tleS1uYXZpZ2F0aW9uLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3RELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTVGLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFBbUIsSUFBaUIsRUFBUyxNQUErQjtRQUF6RCxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBeUI7SUFBRyxDQUFDO0lBRWhGLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUE0QixDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQTRCLENBQUM7SUFDMUYsQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUss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UUFDdkQsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BELE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwRCxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxJQUFJLHVDQUF1QyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNEO2dCQUNFLE9BQU8sSUFBSSw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqRDtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgS2V5cyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2VudW1zL2tleXMuZW51bSc7XG5pbXBvcnQgeyBLZXlOYXZpZ2F0aW9uR3JpZFN0cmF0ZWd5SW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9rZXktbmF2LWdyaWQtc3RyYXRlZ3kuaW50ZXJmYWNlJztcbmltcG9ydCB7IENlbGxDb29yZGluYXRlcywgS2V5TmF2aWdhdGlvbkdyaWRDb25maWcgfSBmcm9tICcuL2tleS1uYXZpZ2F0aW9uLWdyaWQuY29udHJvbGxlcic7XG5pbXBvcnQgeyBEZWZhdWx0S2V5TmF2aWdhdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9rZXktbmF2aWdhdGlvbi1zdHJhdGVnaWVzL2RlZmF1bHQnO1xuaW1wb3J0IHsgRXhwYW5kZWRDb2x1bW5zUm93S2V5TmF2aWdhdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9rZXktbmF2aWdhdGlvbi1zdHJhdGVnaWVzL2V4cGFuZGVkLWNvbHVtbnMtcm93JztcbmltcG9ydCB7IEV4cGFuZGVkUm93S2V5TmF2aWdhdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9rZXktbmF2aWdhdGlvbi1zdHJhdGVnaWVzL2V4cGFuZGVkLXJvdyc7XG5cbmV4cG9ydCBjbGFzcyBLZXlOYXZpZ2F0aW9uVXRpbHMge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgaG9zdDogSFRNTEVsZW1lbnQsIHB1YmxpYyBjb25maWc6IEtleU5hdmlnYXRpb25HcmlkQ29uZmlnKSB7fVxuXG4gIGdldCBncmlkKCkge1xuICAgIHJldHVybiB0aGlzLmhvc3Q/LnF1ZXJ5U2VsZWN0b3IodGhpcy5jb25maWcua2V5R3JpZCk7XG4gIH1cblxuICBnZXQgcm93cygpIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0Py5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuY29uZmlnLmtleUdyaWRSb3dzKSBhcyBOb2RlTGlzdE9mPEhUTUxFbGVtZW50PjtcbiAgfVxuXG4gIGdldCBjZWxscygpIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0Py5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuY29uZmlnLmtleUdyaWRDZWxscykgYXMgTm9kZUxpc3RPZjxIVE1MRWxlbWVudD47XG4gIH1cblxuICBnZXQgY3VycmVudENlbGxDb29yZGluYXRlcygpIHtcbiAgICBjb25zdCBjdXJyZW50Q2VsbCA9IHRoaXMuY2VsbHMgPyBBcnJheS5mcm9tKHRoaXMuY2VsbHMpLmZpbmQoaSA9PiBpLmdldEF0dHJpYnV0ZSgndGFiaW5kZXgnKSA9PT0gJzAnKSA6IG51bGw7XG4gICAgY29uc3QgY3VycmVudFJvdzogSFRNTEVsZW1lbnQgPSBjdXJyZW50Q2VsbCA/IGN1cnJlbnRDZWxsLmNsb3Nlc3QodGhpcy5jb25maWcua2V5R3JpZFJvd3MpIDogbnVsbDtcblxuICAgIGNvbnN0IGNvb3JkaW5hdGVzOiBDZWxsQ29vcmRpbmF0ZXMgPSB7XG4gICAgICB4OlxuICAgICAgICBjdXJyZW50Um93ICYmIGN1cnJlbnRDZWxsXG4gICAgICAgICAgPyBBcnJheS5mcm9tKGN1cnJlbnRSb3cucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5rZXlHcmlkQ2VsbHMpKS5pbmRleE9mKGN1cnJlbnRDZWxsKVxuICAgICAgICAgIDogMCxcbiAgICAgIHk6IGN1cnJlbnRSb3cgJiYgY3VycmVudENlbGwgJiYgdGhpcy5yb3dzID8gQXJyYXkuZnJvbSh0aGlzLnJvd3MpLmluZGV4T2YoY3VycmVudFJvdykgOiAwLFxuICAgIH07XG5cbiAgICByZXR1cm4gY29vcmRpbmF0ZXM7XG4gIH1cblxuICBnZXQgYXZlcmFnZVJvd0hlaWdodCgpIHtcbiAgICBjb25zdCBoZWlnaHRTdW0gPSBBcnJheS5mcm9tKHRoaXMucm93cy52YWx1ZXMoKSkucmVkdWNlKChzdW0sIHJvdykgPT4ge1xuICAgICAgcmV0dXJuIHN1bSArIHJvdy5jbGllbnRIZWlnaHQ7XG4gICAgfSwgMCk7XG5cbiAgICByZXR1cm4gTWF0aC5yb3VuZChoZWlnaHRTdW0gLyB0aGlzLnJvd3MubGVuZ3RoKTtcbiAgfVxuXG4gIGdldCBpdGVtc1BlclBhZ2UoKSB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IodGhpcy5ob3N0Py5xdWVyeVNlbGVjdG9yKCcuZGF0YWdyaWQnKS5jbGllbnRIZWlnaHQgLyB0aGlzLmF2ZXJhZ2VSb3dIZWlnaHQpIC0gMSB8fCAwO1xuICB9XG5cbiAgc2V0QXJpYVJvd0luZGV4VG8oY2VsbENvb3JkczogQ2VsbENvb3JkaW5hdGVzKSB7XG4gICAgbGV0IGFyaWFSb3dJbmRleCA9IHRoaXMucm93c1tjZWxsQ29vcmRzLnldLmdldEF0dHJpYnV0ZSgnYXJpYS1yb3dpbmRleCcpO1xuXG4gICAgaWYgKCFhcmlhUm93SW5kZXgpIHtcbiAgICAgIGFyaWFSb3dJbmRleCA9IHRoaXMucm93c1tjZWxsQ29vcmRzLnkgLSAxXS5nZXRBdHRyaWJ1dGUoJ2FyaWEtcm93aW5kZXgnKTtcbiAgICB9XG5cbiAgICBjZWxsQ29vcmRzLmFyaWFSb3dJbmRleCA9IGFyaWFSb3dJbmRleDtcbiAgfVxuXG4gIGdldE5leHRJdGVtQ29vcmRpbmF0ZShlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3QgY3VycmVudENlbGxDb29yZHMgPSB0aGlzLmN1cnJlbnRDZWxsQ29vcmRpbmF0ZXM7XG4gICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLmdldE5hdlN0cmF0ZWd5KGN1cnJlbnRDZWxsQ29vcmRzKTtcblxuICAgIGNvbnN0IGlubGluZVN0YXJ0ID0gdGhpcy5ob3N0LmRpciA9PT0gJ3J0bCcgPyBLZXlzLkFycm93UmlnaHQgOiBLZXlzLkFycm93TGVmdDtcbiAgICBjb25zdCBpbmxpbmVFbmQgPSB0aGlzLmhvc3QuZGlyID09PSAncnRsJyA/IEtleXMuQXJyb3dMZWZ0IDogS2V5cy5BcnJvd1JpZ2h0O1xuXG4gICAgc3dpdGNoIChlLmtleSkge1xuICAgICAgY2FzZSBLZXlzLkFycm93VXA6XG4gICAgICAgIHJldHVybiBzdHJhdGVneS5rZXlVcChjdXJyZW50Q2VsbENvb3Jkcyk7XG4gICAgICBjYXNlIEtleXMuQXJyb3dEb3duOlxuICAgICAgICByZXR1cm4gc3RyYXRlZ3kua2V5RG93bihjdXJyZW50Q2VsbENvb3Jkcyk7XG4gICAgICBjYXNlIGlubGluZVN0YXJ0OlxuICAgICAgICByZXR1cm4gc3RyYXRlZ3kua2V5TGVmdChjdXJyZW50Q2VsbENvb3Jkcyk7XG4gICAgICBjYXNlIGlubGluZUVuZDpcbiAgICAgICAgcmV0dXJuIHN0cmF0ZWd5LmtleVJpZ2h0KGN1cnJlbnRDZWxsQ29vcmRzKTtcbiAgICAgIGNhc2UgS2V5cy5Ib21lOlxuICAgICAgICByZXR1cm4gc3RyYXRlZ3kua2V5SG9tZShjdXJyZW50Q2VsbENvb3JkcywgZS5jdHJsS2V5KTtcbiAgICAgIGNhc2UgS2V5cy5FbmQ6XG4gICAgICAgIHJldHVybiBzdHJhdGVneS5rZXlFbmQoY3VycmVudENlbGxDb29yZHMsIGUuY3RybEtleSk7XG4gICAgICBjYXNlIEtleXMuUGFnZVVwOlxuICAgICAgICByZXR1cm4gc3RyYXRlZ3kua2V5UGFnZVVwKGN1cnJlbnRDZWxsQ29vcmRzKTtcbiAgICAgIGNhc2UgS2V5cy5QYWdlRG93bjpcbiAgICAgICAgcmV0dXJuIHN0cmF0ZWd5LmtleVBhZ2VEb3duKGN1cnJlbnRDZWxsQ29vcmRzKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBjdXJyZW50Q2VsbENvb3JkcztcbiAgICB9XG4gIH1cblxuICBnZXRDZWxsc0ZvclJvdyhpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMucm93c1tpbmRleF0ucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5rZXlHcmlkQ2VsbHMpO1xuICB9XG5cbiAgaXNFeHBhbmRlZFJvdyhpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50OiBIVE1MRWxlbWVudCA9IHRoaXMucm93c1tpbmRleF0ucXVlcnlTZWxlY3RvcignLmRhdGFncmlkLXJvdy1kZXRhaWwnKTtcblxuICAgIHJldHVybiBzZWxlY3RlZEVsZW1lbnQgPyBzZWxlY3RlZEVsZW1lbnQuc3R5bGUuZGlzcGxheSAhPT0gJ25vbmUnIDogZmFsc2U7XG4gIH1cblxuICBpc0RldGFpbHNSb3coaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLnJvd3NbaW5kZXhdLmNsYXNzTGlzdC5jb250YWlucygnZGF0YWdyaWQtcm93LWRldGFpbCcpO1xuICB9XG5cbiAgaXNSb3dSZXBsYWNlZChpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuICEhdGhpcy5yb3dzW2luZGV4XS5jbG9zZXN0KCdjbHItZGctcm93LmRhdGFncmlkLXJvdy1yZXBsYWNlZCcpO1xuICB9XG5cbiAgaXNTaW5nbGVDZWxsRXhwYW5kZWRSb3coaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLnJvd3NbaW5kZXhdPy5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuY29uZmlnLmtleUdyaWRDZWxscykubGVuZ3RoID09PSAxO1xuICB9XG5cbiAgYWN0aW9uQ2VsbENvdW50KGluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25DZWxsc0FzQXJyYXkoaW5kZXgpLmxlbmd0aDtcbiAgfVxuXG4gIGFjdGlvbkNlbGxzQXNBcnJheShpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICB0aGlzLnJvd3NbaW5kZXhdLnF1ZXJ5U2VsZWN0b3JBbGwoJy5kYXRhZ3JpZC1yb3ctc3RpY2t5IC5kYXRhZ3JpZC1jZWxsLCAuZGF0YWdyaWQtcm93LXN0aWNreSAuZGF0YWdyaWQtY29sdW1uJylcbiAgICApO1xuICB9XG5cbiAgaXNBY3Rpb25DZWxsKGNlbGxDb29yZHM6IENlbGxDb29yZGluYXRlcykge1xuICAgIHJldHVybiAhIXRoaXMuYWN0aW9uQ2VsbHNBc0FycmF5KGNlbGxDb29yZHMueSlbY2VsbENvb3Jkcy54XTtcbiAgfVxuXG4gIGNyZWF0ZU5leHRDZWxsQ29vcmRzKGNlbGxDb29yZHM6IENlbGxDb29yZGluYXRlcyk6IENlbGxDb29yZGluYXRlcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IGNlbGxDb29yZHMueCxcbiAgICAgIHk6IGNlbGxDb29yZHMueSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROYXZTdHJhdGVneShjdXJyZW50Q2VsbENvb3JkczogQ2VsbENvb3JkaW5hdGVzKTogS2V5TmF2aWdhdGlvbkdyaWRTdHJhdGVneUludGVyZmFjZSB7XG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlIHRoaXMuaXNTaW5nbGVDZWxsRXhwYW5kZWRSb3coY3VycmVudENlbGxDb29yZHMueSk6XG4gICAgICAgIHJldHVybiBuZXcgRXhwYW5kZWRSb3dLZXlOYXZpZ2F0aW9uU3RyYXRlZ3kodGhpcyk7XG4gICAgICBjYXNlIHRoaXMuaXNEZXRhaWxzUm93KGN1cnJlbnRDZWxsQ29vcmRzLnkpOlxuICAgICAgY2FzZSB0aGlzLmlzRXhwYW5kZWRSb3coY3VycmVudENlbGxDb29yZHMueSk6XG4gICAgICAgIHJldHVybiBuZXcgRXhwYW5kZWRDb2x1bW5zUm93S2V5TmF2aWdhdGlvblN0cmF0ZWd5KHRoaXMpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG5ldyBEZWZhdWx0S2V5TmF2aWdhdGlvblN0cmF0ZWd5KHRoaXMpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -121,7 +121,7 @@ ClrStackBlock.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
121
121
|
[attr.aria-expanded]="ariaExpanded"
|
|
122
122
|
[attr.aria-controls]="getStackChildrenId()"
|
|
123
123
|
>
|
|
124
|
-
<cds-icon shape="angle" class="stack-block-caret"
|
|
124
|
+
<cds-icon shape="angle" class="stack-block-caret" [attr.direction]="caretDirection"></cds-icon>
|
|
125
125
|
<span class="clr-sr-only" *ngIf="getChangedValue">{{ commonStrings.keys.stackViewChanged }}</span>
|
|
126
126
|
<div class="stack-view-key">
|
|
127
127
|
<!-- This structure changed to fix #3567 and the a11y request was to move away from dl's -->
|
|
@@ -164,7 +164,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
164
164
|
[attr.aria-expanded]="ariaExpanded"
|
|
165
165
|
[attr.aria-controls]="getStackChildrenId()"
|
|
166
166
|
>
|
|
167
|
-
<cds-icon shape="angle" class="stack-block-caret"
|
|
167
|
+
<cds-icon shape="angle" class="stack-block-caret" [attr.direction]="caretDirection"></cds-icon>
|
|
168
168
|
<span class="clr-sr-only" *ngIf="getChangedValue">{{ commonStrings.keys.stackViewChanged }}</span>
|
|
169
169
|
<div class="stack-view-key">
|
|
170
170
|
<!-- This structure changed to fix #3567 and the a11y request was to move away from dl's -->
|
|
@@ -233,4 +233,4 @@ function eventIsInputEvent(event) {
|
|
|
233
233
|
? ['INPUT', 'TEXTAREA', 'BUTTON', 'A', 'SELECT', 'OPTION'].includes(targetElement.tagName)
|
|
234
234
|
: false;
|
|
235
235
|
}
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9kYXRhL3N0YWNrLXZpZXcvc3RhY2stYmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQTREN0QsTUFBTSxPQUFPLGFBQWE7SUFvQnhCOzs7O09BSUc7SUFDSCxZQUdVLE1BQXFCLEVBQ3RCLGFBQXNDO1FBRHJDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBNUJvQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQU8zRCxtQkFBYyxHQUFHLElBQUksWUFBWSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBSWpGLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsYUFBUSxHQUFHLGVBQWUsRUFBRSxDQUFDO1FBRXJCLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUNyQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQWF2QixJQUFJLE1BQU0sRUFBRTtZQUNWLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFRCxJQUNJLGVBQWUsQ0FBQyxLQUFjO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXRCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMs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RSxpQkFBaUIsWUFDakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Q1QsUUFVSzt3QkFDSixxQkFBcUIsRUFBRSxNQUFNO3dCQUM3QixhQUFhLEVBQUUsV0FBVzt3QkFDMUIsbUJBQW1CLEVBQUUsY0FBYztxQkFDcEM7OzBCQTRCRSxRQUFROzswQkFDUixRQUFRO2tGQTFCd0QsUUFBUTtzQkFBMUUsS0FBSzt1QkFBQyxlQUFlOztzQkFBRyxXQUFXO3VCQUFDLDRCQUE0QjtnQkFDTSxVQUFVO3NCQUFoRixLQUFLO3VCQUFDLGlCQUFpQjs7c0JBQUcsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBS3pDLFNBQVM7c0JBQXBDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUVLLGNBQWM7c0JBQTVDLE1BQU07dUJBQUMscUJBQXFCO2dCQUVJLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCO2dCQTBCM0IsZUFBZTtzQkFEbEIsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBY3RCLGVBQWU7c0JBRGxCLFdBQVc7dUJBQUMsMkJBQTJCO2dCQU1wQyxpQkFBaUI7c0JBRHBCLFdBQVc7dUJBQUMsZ0JBQWdCOztBQXVFL0IsU0FBUyxpQkFBaUIsQ0FBQyxLQUFhO0lBQ3RDLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxNQUFxQixDQUFDO0lBRW5ELE9BQU8sYUFBYSxFQUFFLE9BQU87UUFDM0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztRQUMxRixDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNraXBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9pMThuL2NvbW1vbi1zdHJpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgdW5pcXVlSWRGYWN0b3J5IH0gZnJvbSAnLi4vLi4vdXRpbHMvaWQtZ2VuZXJhdG9yL2lkLWdlbmVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IENsclN0YWNrVmlld0xhYmVsIH0gZnJvbSAnLi9zdGFjay12aWV3LWN1c3RvbS10YWdzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLXN0YWNrLWJsb2NrJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8IS0tIFRoZSAncHJldmVudERlZmF1bHQnIGZvciB0aGUgc3BhY2Uga2V5ZG93biBldmVudCBwcmV2ZW50cyB0aGUgcGFnZVxuICAgICAgICAgZnJvbSBzY3JvbGxpbmcgd2hlbiBhIHN0YWNrIGJsb2NrIGlzIHRvZ2dsZWQgdmlhIHRoZSBzcGFjZSBrZXkuIC0tPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic3RhY2stYmxvY2stbGFiZWxcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZCgkZXZlbnQpXCJcbiAgICAgIChrZXl1cC5lbnRlcik9XCJ0b2dnbGVFeHBhbmQoJGV2ZW50KVwiXG4gICAgICAoa2V5dXAuc3BhY2UpPVwidG9nZ2xlRXhwYW5kKCRldmVudClcIlxuICAgICAgKGtleWRvd24uc3BhY2UpPVwicHJldmVudERlZmF1bHRJZk5vdElucHV0RXZlbnQoJGV2ZW50KVwiXG4gICAgICAoZm9jdXMpPVwiZm9jdXNlZCA9IHRydWVcIlxuICAgICAgKGJsdXIpPVwiZm9jdXNlZCA9IGZhbHNlXCJcbiAgICAgIFtpZF09XCJ1bmlxdWVJZFwiXG4gICAgICBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXhcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJhcmlhRXhwYW5kZWRcIlxuICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJnZXRTdGFja0NoaWxkcmVuSWQoKVwiXG4gICAgPlxuICAgICAgPGNkcy1pY29uIHNoYXBlPVwiYW5nbGVcIiBjbGFzcz1cInN0YWNrLWJsb2NrLWNhcmV0XCIgKm5nSWY9XCJleHBhbmRhYmxlXCIgW2F0dHIuZGlyZWN0aW9uXT1cImNhcmV0RGlyZWN0aW9uXCI+PC9jZHMtaWNvbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY2xyLXNyLW9ubHlcIiAqbmdJZj1cImdldENoYW5nZWRWYWx1ZVwiPnt7IGNvbW1vblN0cmluZ3Mua2V5cy5zdGFja1ZpZXdDaGFuZ2VkIH19PC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cInN0YWNrLXZpZXcta2V5XCI+XG4gICAgICAgIDwhLS0gVGhpcyBzdHJ1Y3R1cmUgY2hhbmdlZCB0byBmaXggIzM1NjcgYW5kIHRoZSBhMTF5IHJlcXVlc3Qgd2FzIHRvIG1vdmUgYXdheSBmcm9tIGRsJ3MgLS0+XG4gICAgICAgIDwhLS0gSSBhZGRlZCB0aGUga2V5IGNsYXNzIHRvIHVwZGF0ZSBjc3MgdGFyZ2V0cyBmb3IgdGhlIG9yaWdpbmFsIGNvbXBvbmVudCBzdHlsZSAtLT5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLXN0YWNrLWxhYmVsXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RhY2stYmxvY2stY29udGVudFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxjbHItZXhwYW5kYWJsZS1hbmltYXRpb24gW2NsckV4cGFuZFRyaWdnZXJdPVwiZXhwYW5kZWRcIiBjbGFzcz1cInN0YWNrLWNoaWxkcmVuXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiZXhwYW5kZWQgPyAnYXV0bycgOiAwXCJcbiAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICpuZ0lmPVwiZXhwYW5kZWRcIlxuICAgICAgICBbYXR0ci5pZF09XCJnZXRTdGFja0NoaWxkcmVuSWQoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbGxlZEJ5SWRcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJjbHItc3RhY2stYmxvY2tcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Nsci1leHBhbmRhYmxlLWFuaW1hdGlvbj5cbiAgYCxcbiAgLy8gQ3VzdG9tIGVsZW1lbnRzIGFyZSBpbmxpbmUgYnkgZGVmYXVsdFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG4gIC8vIE1ha2Ugc3VyZSB0aGUgaG9zdCBoYXMgdGhlIHByb3BlciBjbGFzcyBmb3Igc3R5bGluZyBwdXJwb3Nlc1xuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5zdGFjay1ibG9ja10nOiAndHJ1ZScsXG4gICAgJ1thdHRyLnJvbGVdJzogJ1wiaGVhZGluZ1wiJyxcbiAgICAnW2F0dHIuYXJpYS1sZXZlbF0nOiAnaGVhZGluZ0xldmVsJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyU3RhY2tCbG9jayBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgnY2xyU2JFeHBhbmRlZCcpIEBIb3N0QmluZGluZygnY2xhc3Muc3RhY2stYmxvY2stZXhwYW5kZWQnKSBleHBhbmRlZCA9IGZhbHNlO1xuICBASW5wdXQoJ2NsclNiRXhwYW5kYWJsZScpIEBIb3N0QmluZGluZygnY2xhc3Muc3RhY2stYmxvY2stZXhwYW5kYWJsZScpIGV4cGFuZGFibGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogRGVwdGggb2YgdGhlIHN0YWNrIHZpZXcgc3RhcnRpbmcgZnJvbSAxIGZvciBmaXJzdCBsZXZlbFxuICAgKi9cbiAgQElucHV0KCdjbHJTdGFja1ZpZXdMZXZlbCcpIGFyaWFMZXZlbDogbnVtYmVyO1xuXG4gIEBPdXRwdXQoJ2NsclNiRXhwYW5kZWRDaGFuZ2UnKSBleHBhbmRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBDb250ZW50Q2hpbGQoQ2xyU3RhY2tWaWV3TGFiZWwpIHN0YWNrQmxvY2tUaXRsZTogYW55O1xuXG4gIGZvY3VzZWQgPSBmYWxzZTtcbiAgdW5pcXVlSWQgPSB1bmlxdWVJZEZhY3RvcnkoKTtcblxuICBwcml2YXRlIF9jaGFuZ2VkQ2hpbGRyZW4gPSAwO1xuICBwcml2YXRlIF9mdWxseUluaXRpYWxpemVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2NoYW5nZWQgPSBmYWxzZTtcblxuICAvKlxuICAgKiBUaGlzIHdvdWxkIGJlIG1vcmUgZWZmaWNpZW50IHdpdGggQENvbnRlbnRDaGlsZHJlbiwgd2l0aCB0aGUgcGFyZW50IENsclN0YWNrQmxvY2tcbiAgICogcXVlcnlpbmcgZm9yIGNoaWxkcmVuIFN0YWNrQmxvY2tzLCBidXQgdGhpcyBmZWF0dXJlIGlzIG5vdCBhdmFpbGFibGUgd2hlbiBkb3duZ3JhZGluZ1xuICAgKiB0aGUgY29tcG9uZW50IGZvciBBbmd1bGFyIDEuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBAU2tpcFNlbGYoKVxuICAgIEBPcHRpb25hbCgpXG4gICAgcHJpdmF0ZSBwYXJlbnQ6IENsclN0YWNrQmxvY2ssXG4gICAgcHVibGljIGNvbW1vblN0cmluZ3M6IENsckNvbW1vblN0cmluZ3NTZXJ2aWNlXG4gICkge1xuICAgIGlmIChwYXJlbnQpIHtcbiAgICAgIHBhcmVudC5hZGRDaGlsZCgpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnY2xyU2JOb3RpZnlDaGFuZ2UnKVxuICBzZXQgc2V0Q2hhbmdlZFZhbHVlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2hhbmdlZCA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMucGFyZW50ICYmIHRoaXMuX2Z1bGx5SW5pdGlhbGl6ZWQpIHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB0aGlzLnBhcmVudC5fY2hhbmdlZENoaWxkcmVuKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBhcmVudC5fY2hhbmdlZENoaWxkcmVuLS07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zdGFjay1ibG9jay1jaGFuZ2VkJylcbiAgZ2V0IGdldENoYW5nZWRWYWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2hhbmdlZCB8fCAodGhpcy5fY2hhbmdlZENoaWxkcmVuID4gMCAmJiAhdGhpcy5leHBhbmRlZCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm9uLWZvY3VzJylcbiAgZ2V0IG9uU3RhY2tMYWJlbEZvY3VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmV4cGFuZGFibGUgJiYgIXRoaXMuZXhwYW5kZWQgJiYgdGhpcy5mb2N1c2VkO1xuICB9XG5cbiAgZ2V0IGxhYmVsbGVkQnlJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGFja0Jsb2NrVGl0bGUuaWQ7XG4gIH1cblxuICBnZXQgaGVhZGluZ0xldmVsKCkge1xuICAgIGlmICh0aGlzLmFyaWFMZXZlbCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXJpYUxldmVsICsgJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucGFyZW50ID8gJzQnIDogJzMnO1xuICB9XG5cbiAgZ2V0IGNhcmV0RGlyZWN0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kZWQgPyAnZG93bicgOiAncmlnaHQnO1xuICB9XG5cbiAgZ2V0IHJvbGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5leHBhbmRhYmxlID8gJ2J1dHRvbicgOiBudWxsO1xuICB9XG5cbiAgZ2V0IHRhYkluZGV4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kYWJsZSA/ICcwJyA6IG51bGw7XG4gIH1cblxuICBnZXQgYXJpYUV4cGFuZGVkKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmV4cGFuZGFibGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5leHBhbmRlZCA/ICd0cnVlJyA6ICdmYWxzZSc7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gaW4gb3JkZXIgdG8gYWNjZXNzIHRoZSBwYXJlbnQgQ2xyU3RhY2tCbG9jaydzIHByb3BlcnRpZXMsXG4gICAgLy8gdGhlIGNoaWxkIENsclN0YWNrQmxvY2sgaGFzIHRvIGJlIGZ1bGx5IGluaXRpYWxpemVkIGF0IGZpcnN0LlxuICAgIHRoaXMuX2Z1bGx5SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgYWRkQ2hpbGQoKTogdm9pZCB7XG4gICAgdGhpcy5leHBhbmRhYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIHRvZ2dsZUV4cGFuZChldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50SXNJbnB1dEV2ZW50KGV2ZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmV4cGFuZGFibGUpIHtcbiAgICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDtcbiAgICAgIHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdCh0aGlzLmV4cGFuZGVkKTtcbiAgICB9XG4gIH1cblxuICBnZXRTdGFja0NoaWxkcmVuSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kZWQgPyBgY2xyLXN0YWNrLWNoaWxkcmVuLSR7dGhpcy51bmlxdWVJZH1gIDogbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBwcmV2ZW50RGVmYXVsdElmTm90SW5wdXRFdmVudChldmVudDogRXZlbnQpIHtcbiAgICBpZiAoZXZlbnRJc0lucHV0RXZlbnQoZXZlbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBldmVudElzSW5wdXRFdmVudChldmVudD86IEV2ZW50KSB7XG4gIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBldmVudD8udGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gIHJldHVybiB0YXJnZXRFbGVtZW50Py50YWdOYW1lXG4gICAgPyBbJ0lOUFVUJywgJ1RFWFRBUkVBJywgJ0JVVFRPTicsICdBJywgJ1NFTEVDVCcsICdPUFRJT04nXS5pbmNsdWRlcyh0YXJnZXRFbGVtZW50LnRhZ05hbWUpXG4gICAgOiBmYWxzZTtcbn1cbiJdfQ==
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9kYXRhL3N0YWNrLXZpZXcvc3RhY2stYmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQTREN0QsTUFBTSxPQUFPLGFBQWE7SUFvQnhCOzs7O09BSUc7SUFDSCxZQUdVLE1BQXFCLEVBQ3RCLGFBQXNDO1FBRHJDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBNUJvQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQU8zRCxtQkFBYyxHQUFHLElBQUksWUFBWSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBSWpGLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsYUFBUSxHQUFHLGVBQWUsRUFBRSxDQUFDO1FBRXJCLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUNyQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQWF2QixJQUFJLE1BQU0sRUFBRTtZQUNWLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFRCxJQUNJLGVBQWUsQ0FBQyxLQUFjO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXRCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMs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RSxpQkFBaUIsWUFDakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Q1QsUUFVSzt3QkFDSixxQkFBcUIsRUFBRSxNQUFNO3dCQUM3QixhQUFhLEVBQUUsV0FBVzt3QkFDMUIsbUJBQW1CLEVBQUUsY0FBYztxQkFDcEM7OzBCQTRCRSxRQUFROzswQkFDUixRQUFRO2tGQTFCd0QsUUFBUTtzQkFBMUUsS0FBSzt1QkFBQyxlQUFlOztzQkFBRyxXQUFXO3VCQUFDLDRCQUE0QjtnQkFDTSxVQUFVO3NCQUFoRixLQUFLO3VCQUFDLGlCQUFpQjs7c0JBQUcsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBS3pDLFNBQVM7c0JBQXBDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUVLLGNBQWM7c0JBQTVDLE1BQU07dUJBQUMscUJBQXFCO2dCQUVJLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCO2dCQTBCM0IsZUFBZTtzQkFEbEIsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBY3RCLGVBQWU7c0JBRGxCLFdBQVc7dUJBQUMsMkJBQTJCO2dCQU1wQyxpQkFBaUI7c0JBRHBCLFdBQVc7dUJBQUMsZ0JBQWdCOztBQXVFL0IsU0FBUyxpQkFBaUIsQ0FBQyxLQUFhO0lBQ3RDLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxNQUFxQixDQUFDO0lBRW5ELE9BQU8sYUFBYSxFQUFFLE9BQU87UUFDM0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztRQUMxRixDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNraXBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9pMThuL2NvbW1vbi1zdHJpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgdW5pcXVlSWRGYWN0b3J5IH0gZnJvbSAnLi4vLi4vdXRpbHMvaWQtZ2VuZXJhdG9yL2lkLWdlbmVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IENsclN0YWNrVmlld0xhYmVsIH0gZnJvbSAnLi9zdGFjay12aWV3LWN1c3RvbS10YWdzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLXN0YWNrLWJsb2NrJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8IS0tIFRoZSAncHJldmVudERlZmF1bHQnIGZvciB0aGUgc3BhY2Uga2V5ZG93biBldmVudCBwcmV2ZW50cyB0aGUgcGFnZVxuICAgICAgICAgZnJvbSBzY3JvbGxpbmcgd2hlbiBhIHN0YWNrIGJsb2NrIGlzIHRvZ2dsZWQgdmlhIHRoZSBzcGFjZSBrZXkuIC0tPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic3RhY2stYmxvY2stbGFiZWxcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZCgkZXZlbnQpXCJcbiAgICAgIChrZXl1cC5lbnRlcik9XCJ0b2dnbGVFeHBhbmQoJGV2ZW50KVwiXG4gICAgICAoa2V5dXAuc3BhY2UpPVwidG9nZ2xlRXhwYW5kKCRldmVudClcIlxuICAgICAgKGtleWRvd24uc3BhY2UpPVwicHJldmVudERlZmF1bHRJZk5vdElucHV0RXZlbnQoJGV2ZW50KVwiXG4gICAgICAoZm9jdXMpPVwiZm9jdXNlZCA9IHRydWVcIlxuICAgICAgKGJsdXIpPVwiZm9jdXNlZCA9IGZhbHNlXCJcbiAgICAgIFtpZF09XCJ1bmlxdWVJZFwiXG4gICAgICBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXhcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJhcmlhRXhwYW5kZWRcIlxuICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJnZXRTdGFja0NoaWxkcmVuSWQoKVwiXG4gICAgPlxuICAgICAgPGNkcy1pY29uIHNoYXBlPVwiYW5nbGVcIiBjbGFzcz1cInN0YWNrLWJsb2NrLWNhcmV0XCIgW2F0dHIuZGlyZWN0aW9uXT1cImNhcmV0RGlyZWN0aW9uXCI+PC9jZHMtaWNvbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY2xyLXNyLW9ubHlcIiAqbmdJZj1cImdldENoYW5nZWRWYWx1ZVwiPnt7IGNvbW1vblN0cmluZ3Mua2V5cy5zdGFja1ZpZXdDaGFuZ2VkIH19PC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cInN0YWNrLXZpZXcta2V5XCI+XG4gICAgICAgIDwhLS0gVGhpcyBzdHJ1Y3R1cmUgY2hhbmdlZCB0byBmaXggIzM1NjcgYW5kIHRoZSBhMTF5IHJlcXVlc3Qgd2FzIHRvIG1vdmUgYXdheSBmcm9tIGRsJ3MgLS0+XG4gICAgICAgIDwhLS0gSSBhZGRlZCB0aGUga2V5IGNsYXNzIHRvIHVwZGF0ZSBjc3MgdGFyZ2V0cyBmb3IgdGhlIG9yaWdpbmFsIGNvbXBvbmVudCBzdHlsZSAtLT5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLXN0YWNrLWxhYmVsXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RhY2stYmxvY2stY29udGVudFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxjbHItZXhwYW5kYWJsZS1hbmltYXRpb24gW2NsckV4cGFuZFRyaWdnZXJdPVwiZXhwYW5kZWRcIiBjbGFzcz1cInN0YWNrLWNoaWxkcmVuXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiZXhwYW5kZWQgPyAnYXV0bycgOiAwXCJcbiAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICpuZ0lmPVwiZXhwYW5kZWRcIlxuICAgICAgICBbYXR0ci5pZF09XCJnZXRTdGFja0NoaWxkcmVuSWQoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbGxlZEJ5SWRcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJjbHItc3RhY2stYmxvY2tcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Nsci1leHBhbmRhYmxlLWFuaW1hdGlvbj5cbiAgYCxcbiAgLy8gQ3VzdG9tIGVsZW1lbnRzIGFyZSBpbmxpbmUgYnkgZGVmYXVsdFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG4gIC8vIE1ha2Ugc3VyZSB0aGUgaG9zdCBoYXMgdGhlIHByb3BlciBjbGFzcyBmb3Igc3R5bGluZyBwdXJwb3Nlc1xuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5zdGFjay1ibG9ja10nOiAndHJ1ZScsXG4gICAgJ1thdHRyLnJvbGVdJzogJ1wiaGVhZGluZ1wiJyxcbiAgICAnW2F0dHIuYXJpYS1sZXZlbF0nOiAnaGVhZGluZ0xldmVsJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyU3RhY2tCbG9jayBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgnY2xyU2JFeHBhbmRlZCcpIEBIb3N0QmluZGluZygnY2xhc3Muc3RhY2stYmxvY2stZXhwYW5kZWQnKSBleHBhbmRlZCA9IGZhbHNlO1xuICBASW5wdXQoJ2NsclNiRXhwYW5kYWJsZScpIEBIb3N0QmluZGluZygnY2xhc3Muc3RhY2stYmxvY2stZXhwYW5kYWJsZScpIGV4cGFuZGFibGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogRGVwdGggb2YgdGhlIHN0YWNrIHZpZXcgc3RhcnRpbmcgZnJvbSAxIGZvciBmaXJzdCBsZXZlbFxuICAgKi9cbiAgQElucHV0KCdjbHJTdGFja1ZpZXdMZXZlbCcpIGFyaWFMZXZlbDogbnVtYmVyO1xuXG4gIEBPdXRwdXQoJ2NsclNiRXhwYW5kZWRDaGFuZ2UnKSBleHBhbmRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBDb250ZW50Q2hpbGQoQ2xyU3RhY2tWaWV3TGFiZWwpIHN0YWNrQmxvY2tUaXRsZTogYW55O1xuXG4gIGZvY3VzZWQgPSBmYWxzZTtcbiAgdW5pcXVlSWQgPSB1bmlxdWVJZEZhY3RvcnkoKTtcblxuICBwcml2YXRlIF9jaGFuZ2VkQ2hpbGRyZW4gPSAwO1xuICBwcml2YXRlIF9mdWxseUluaXRpYWxpemVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2NoYW5nZWQgPSBmYWxzZTtcblxuICAvKlxuICAgKiBUaGlzIHdvdWxkIGJlIG1vcmUgZWZmaWNpZW50IHdpdGggQENvbnRlbnRDaGlsZHJlbiwgd2l0aCB0aGUgcGFyZW50IENsclN0YWNrQmxvY2tcbiAgICogcXVlcnlpbmcgZm9yIGNoaWxkcmVuIFN0YWNrQmxvY2tzLCBidXQgdGhpcyBmZWF0dXJlIGlzIG5vdCBhdmFpbGFibGUgd2hlbiBkb3duZ3JhZGluZ1xuICAgKiB0aGUgY29tcG9uZW50IGZvciBBbmd1bGFyIDEuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBAU2tpcFNlbGYoKVxuICAgIEBPcHRpb25hbCgpXG4gICAgcHJpdmF0ZSBwYXJlbnQ6IENsclN0YWNrQmxvY2ssXG4gICAgcHVibGljIGNvbW1vblN0cmluZ3M6IENsckNvbW1vblN0cmluZ3NTZXJ2aWNlXG4gICkge1xuICAgIGlmIChwYXJlbnQpIHtcbiAgICAgIHBhcmVudC5hZGRDaGlsZCgpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnY2xyU2JOb3RpZnlDaGFuZ2UnKVxuICBzZXQgc2V0Q2hhbmdlZFZhbHVlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2hhbmdlZCA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMucGFyZW50ICYmIHRoaXMuX2Z1bGx5SW5pdGlhbGl6ZWQpIHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB0aGlzLnBhcmVudC5fY2hhbmdlZENoaWxkcmVuKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBhcmVudC5fY2hhbmdlZENoaWxkcmVuLS07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zdGFjay1ibG9jay1jaGFuZ2VkJylcbiAgZ2V0IGdldENoYW5nZWRWYWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2hhbmdlZCB8fCAodGhpcy5fY2hhbmdlZENoaWxkcmVuID4gMCAmJiAhdGhpcy5leHBhbmRlZCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm9uLWZvY3VzJylcbiAgZ2V0IG9uU3RhY2tMYWJlbEZvY3VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmV4cGFuZGFibGUgJiYgIXRoaXMuZXhwYW5kZWQgJiYgdGhpcy5mb2N1c2VkO1xuICB9XG5cbiAgZ2V0IGxhYmVsbGVkQnlJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGFja0Jsb2NrVGl0bGUuaWQ7XG4gIH1cblxuICBnZXQgaGVhZGluZ0xldmVsKCkge1xuICAgIGlmICh0aGlzLmFyaWFMZXZlbCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXJpYUxldmVsICsgJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucGFyZW50ID8gJzQnIDogJzMnO1xuICB9XG5cbiAgZ2V0IGNhcmV0RGlyZWN0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kZWQgPyAnZG93bicgOiAncmlnaHQnO1xuICB9XG5cbiAgZ2V0IHJvbGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5leHBhbmRhYmxlID8gJ2J1dHRvbicgOiBudWxsO1xuICB9XG5cbiAgZ2V0IHRhYkluZGV4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kYWJsZSA/ICcwJyA6IG51bGw7XG4gIH1cblxuICBnZXQgYXJpYUV4cGFuZGVkKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmV4cGFuZGFibGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5leHBhbmRlZCA/ICd0cnVlJyA6ICdmYWxzZSc7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gaW4gb3JkZXIgdG8gYWNjZXNzIHRoZSBwYXJlbnQgQ2xyU3RhY2tCbG9jaydzIHByb3BlcnRpZXMsXG4gICAgLy8gdGhlIGNoaWxkIENsclN0YWNrQmxvY2sgaGFzIHRvIGJlIGZ1bGx5IGluaXRpYWxpemVkIGF0IGZpcnN0LlxuICAgIHRoaXMuX2Z1bGx5SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgYWRkQ2hpbGQoKTogdm9pZCB7XG4gICAgdGhpcy5leHBhbmRhYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIHRvZ2dsZUV4cGFuZChldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50SXNJbnB1dEV2ZW50KGV2ZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmV4cGFuZGFibGUpIHtcbiAgICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDtcbiAgICAgIHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdCh0aGlzLmV4cGFuZGVkKTtcbiAgICB9XG4gIH1cblxuICBnZXRTdGFja0NoaWxkcmVuSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kZWQgPyBgY2xyLXN0YWNrLWNoaWxkcmVuLSR7dGhpcy51bmlxdWVJZH1gIDogbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBwcmV2ZW50RGVmYXVsdElmTm90SW5wdXRFdmVudChldmVudDogRXZlbnQpIHtcbiAgICBpZiAoZXZlbnRJc0lucHV0RXZlbnQoZXZlbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBldmVudElzSW5wdXRFdmVudChldmVudD86IEV2ZW50KSB7XG4gIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBldmVudD8udGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gIHJldHVybiB0YXJnZXRFbGVtZW50Py50YWdOYW1lXG4gICAgPyBbJ0lOUFVUJywgJ1RFWFRBUkVBJywgJ0JVVFRPTicsICdBJywgJ1NFTEVDVCcsICdPUFRJT04nXS5pbmNsdWRlcyh0YXJnZXRFbGVtZW50LnRhZ05hbWUpXG4gICAgOiBmYWxzZTtcbn1cbiJdfQ==
|