@clr/angular 13.11.1 → 13.11.2
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 +4 -3
- package/esm2020/data/datagrid/datagrid-column-separator.mjs +5 -4
- package/esm2020/data/datagrid/datagrid-detail.mjs +3 -3
- package/esm2020/data/tree-view/tree-node.mjs +13 -13
- package/esm2020/forms/combobox/combobox.mjs +3 -3
- package/esm2020/forms/combobox/providers/combobox-focus-handler.service.mjs +11 -11
- package/esm2020/forms/datepicker/calendar.mjs +8 -7
- package/esm2020/forms/datepicker/monthpicker.mjs +8 -7
- package/esm2020/forms/datepicker/yearpicker.mjs +8 -7
- package/esm2020/layout/tabs/tabs.mjs +3 -3
- package/esm2020/popover/common/abstract-popover.mjs +4 -3
- package/esm2020/popover/dropdown/providers/dropdown-focus-handler.service.mjs +6 -6
- package/esm2020/popover/tooltip/providers/tooltip-mouse.service.mjs +43 -0
- package/esm2020/popover/tooltip/tooltip-content.mjs +20 -6
- package/esm2020/popover/tooltip/tooltip-trigger.mjs +21 -13
- package/esm2020/popover/tooltip/tooltip.mjs +14 -3
- package/esm2020/utils/enums/keys.enum.mjs +30 -0
- package/esm2020/utils/focus/key-focus/key-focus.mjs +13 -13
- package/esm2020/utils/focus/key-focus/roving-tabindex.mjs +4 -4
- package/esm2020/utils/focus/key-focus/util.mjs +17 -20
- package/fesm2015/clr-angular.mjs +196 -150
- package/fesm2015/clr-angular.mjs.map +1 -1
- package/fesm2020/clr-angular.mjs +196 -150
- package/fesm2020/clr-angular.mjs.map +1 -1
- package/package.json +1 -1
- package/popover/tooltip/providers/tooltip-mouse.service.d.ts +15 -0
- package/popover/tooltip/tooltip-content.d.ts +6 -2
- package/popover/tooltip/tooltip-trigger.d.ts +6 -2
- package/utils/enums/{key-codes.enum.d.ts → keys.enum.d.ts} +3 -7
- package/utils/focus/key-focus/util.d.ts +1 -1
- package/esm2020/utils/enums/key-codes.enum.mjs +0 -34
- package/esm2020/utils/key-codes/key-codes.mjs +0 -16
- package/utils/key-codes/key-codes.d.ts +0 -10
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
5
|
*/
|
|
6
6
|
import { Component, ContentChildren, EventEmitter, HostListener, Input, Output, } from '@angular/core';
|
|
7
|
-
import {
|
|
7
|
+
import { Keys } from '../../enums/keys.enum';
|
|
8
8
|
import { ClrFocusDirection } from './enums/focus-direction.enum';
|
|
9
9
|
import { ClrKeyFocusItem } from './key-focus-item';
|
|
10
|
-
import {
|
|
10
|
+
import { normalizeKey, preventArrowKeyScroll } from './util';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
export class ClrKeyFocus {
|
|
13
13
|
constructor(elementRef) {
|
|
@@ -84,10 +84,10 @@ export class ClrKeyFocus {
|
|
|
84
84
|
else if (this.nextKeyPressed(event) && this.currentFocusIsNotLastItem()) {
|
|
85
85
|
this.moveTo(this.current + 1);
|
|
86
86
|
}
|
|
87
|
-
else if (event.code ===
|
|
87
|
+
else if (event.code === Keys.Home) {
|
|
88
88
|
this.moveTo(0);
|
|
89
89
|
}
|
|
90
|
-
else if (event.code ===
|
|
90
|
+
else if (event.code === Keys.End) {
|
|
91
91
|
this.moveTo(this.focusableItems.length - 1);
|
|
92
92
|
}
|
|
93
93
|
preventArrowKeyScroll(event);
|
|
@@ -135,27 +135,27 @@ export class ClrKeyFocus {
|
|
|
135
135
|
});
|
|
136
136
|
}
|
|
137
137
|
nextKeyPressed(event) {
|
|
138
|
-
const key =
|
|
138
|
+
const key = normalizeKey(event.key);
|
|
139
139
|
switch (this.direction) {
|
|
140
140
|
case ClrFocusDirection.VERTICAL:
|
|
141
|
-
return key ===
|
|
141
|
+
return key === Keys.ArrowDown;
|
|
142
142
|
case ClrFocusDirection.HORIZONTAL:
|
|
143
|
-
return key ===
|
|
143
|
+
return key === Keys.ArrowRight;
|
|
144
144
|
case ClrFocusDirection.BOTH:
|
|
145
|
-
return key ===
|
|
145
|
+
return key === Keys.ArrowDown || key === Keys.ArrowRight;
|
|
146
146
|
default:
|
|
147
147
|
return false;
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
prevKeyPressed(event) {
|
|
151
|
-
const key =
|
|
151
|
+
const key = normalizeKey(event.key);
|
|
152
152
|
switch (this.direction) {
|
|
153
153
|
case ClrFocusDirection.VERTICAL:
|
|
154
|
-
return key ===
|
|
154
|
+
return key === Keys.ArrowUp;
|
|
155
155
|
case ClrFocusDirection.HORIZONTAL:
|
|
156
|
-
return key ===
|
|
156
|
+
return key === Keys.ArrowLeft;
|
|
157
157
|
case ClrFocusDirection.BOTH:
|
|
158
|
-
return key ===
|
|
158
|
+
return key === Keys.ArrowUp || key === Keys.ArrowLeft;
|
|
159
159
|
default:
|
|
160
160
|
return false;
|
|
161
161
|
}
|
|
@@ -191,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
191
191
|
type: HostListener,
|
|
192
192
|
args: ['click', ['$event']]
|
|
193
193
|
}] } });
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWZvY3VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvZm9jdXMva2V5LWZvY3VzL2tleS1mb2N1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFNN0QsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNuQixjQUFTLEdBQStCLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQUNqRSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNYLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFnQ3pGLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFnQ1gsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBbkVBLENBQUM7SUFROUMsSUFLSSxjQUFjLENBQUMsUUFBb0M7UUFDckQsaUhBQWlIO1FBQ2pILHVGQUF1RjtRQUN2Riw0R0FBNEc7UUFDNUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFnQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7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LFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFcEMsUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3RCLEtBQUssaUJBQWlCLENBQUMsUUFBUTtnQkFDN0IsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUNsQyxLQUFLLGlCQUFpQixDQUFDLFVBQVU7Z0JBQy9CLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDcEMsS0FBSyxpQkFBaUIsQ0FBQyxJQUFJO2dCQUN6QixPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsT0FBTyxJQUFJLEdBQUcsS0FBSyxRQUFRLENBQUMsU0FBUyxDQUFDO1lBQ2hFO2dCQUNFLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQzs7eUdBckxVLFdBQVc7NkZBQVgsV0FBVyx3WUFLTCxlQUFlLGdEQVB0QiwyQkFBMkI7NEZBRTFCLFdBQVc7a0JBSnZCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDO2lHQUd3QixTQUFTO3NCQUEvQixLQUFLO3VCQUFDLGNBQWM7Z0JBQ0ksV0FBVztzQkFBbkMsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBQ1csV0FBVztzQkFBNUMsTUFBTTt1QkFBQyxnQkFBZ0I7Z0JBRWQsZ0JBQWdCO3NCQUR6QixlQUFlO3VCQUFDLGVBQWUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBU25ELGNBQWM7c0JBTGpCLEtBQUs7dUJBQUMsYUFBYTtnQkF1RXBCLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBd0JuQyxxQkFBcUI7c0JBRHBCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgS2V5Q29kZXMgfSBmcm9tICcuLi8uLi9lbnVtcy9rZXktY29kZXMuZW51bSc7XG5pbXBvcnQgeyBDbHJGb2N1c0RpcmVjdGlvbiB9IGZyb20gJy4vZW51bXMvZm9jdXMtZGlyZWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgRm9jdXNhYmxlSXRlbSB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDbHJLZXlGb2N1c0l0ZW0gfSBmcm9tICcuL2tleS1mb2N1cy1pdGVtJztcbmltcG9ydCB7IGtleVZhbGlkYXRvciwgcHJldmVudEFycm93S2V5U2Nyb2xsIH0gZnJvbSAnLi91dGlsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW2NscktleUZvY3VzXScsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG59KVxuZXhwb3J0IGNsYXNzIENscktleUZvY3VzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuICBASW5wdXQoJ2NsckRpcmVjdGlvbicpIGRpcmVjdGlvbjogQ2xyRm9jdXNEaXJlY3Rpb24gfCBzdHJpbmcgPSBDbHJGb2N1c0RpcmVjdGlvbi5WRVJUSUNBTDtcbiAgQElucHV0KCdjbHJGb2N1c09uTG9hZCcpIGZvY3VzT25Mb2FkID0gZmFsc2U7XG4gIEBPdXRwdXQoJ2NsckZvY3VzQ2hhbmdlJykgcHJpdmF0ZSBmb2N1c0NoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQENvbnRlbnRDaGlsZHJlbihDbHJLZXlGb2N1c0l0ZW0sIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIGNscktleUZvY3VzSXRlbXM6IFF1ZXJ5TGlzdDxDbHJLZXlGb2N1c0l0ZW0+O1xuXG4gIHByaXZhdGUgX2ZvY3VzYWJsZUl0ZW1zOiBBcnJheTxGb2N1c2FibGVJdGVtPjtcbiAgQElucHV0KCdjbHJLZXlGb2N1cycpXG4gIC8qKlxuICAgKiBIZXJlIHdlIHVzZSBgYW55YCBjYXVzZSBhbnkgb3RoZXIgdHlwZSByZXF1aXJlIHJld29ya2luZyBhbGwgbWV0aG9kcyBiZWxvdyBhbmQgYSBsb3Qgb2YgbW9yZSBpZnMuXG4gICAqIHRoaXMgbWV0aG9kIHdpbGwgb25seSB3b3JrIHdpdGggYXJyYXkgd2l0aCBGb2N1c2FibGVJdGVtcyBhbnl3YXkgc28gYW55IG90aGVyIHZhbHVlIHdpbGwgYmUgaWdub3JlZC5cbiAgICovXG4gIHNldCBmb2N1c2FibGVJdGVtcyhlbGVtZW50czogQXJyYXk8Rm9jdXNhYmxlSXRlbT4gfCBhbnkpIHtcbiAgICAvLyBXZSBhY2NlcHQgYSBsaXN0IG9mIGZvY3VzYWJsZSBlbGVtZW50cyAoSFRNTEVsZW1lbnRzIG9yIGV4aXN0aW5nIERpcmVjdGl2ZXMpIG9yIGF1dG8gcXVlcnkgZm9yIGNscktleUZvY3VzSXRlbVxuICAgIC8vIFdlIGFjY2VwdCBhIGxpc3QgcmVmZXJlbmNlIGluIHRoZSBjYXNlcyB3aGVyZSB3ZSBjYW5ub3QgdXNlIENvbnRlbnRDaGlsZHJlbiB0byBxdWVyeVxuICAgIC8vIENvbnRlbnRDaGlsZHJlbiBjYW4gYmUgdW5hdmFpbGFibGUgaWYgY29udGVudCBpcyBwcm9qZWN0ZWQgb3V0c2lkZSB0aGUgc2NvcGUgb2YgdGhlIGNvbXBvbmVudCAoc2VlIHRhYnMpLlxuICAgIGlmIChBcnJheS5pc0FycmF5KGVsZW1lbnRzKSAmJiBlbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX2ZvY3VzYWJsZUl0ZW1zID0gZWxlbWVudHMgYXMgQXJyYXk8Rm9jdXNhYmxlSXRlbT47XG4gICAgICB0aGlzLmluaXRpYWxpemVGb2N1cygpO1xuICAgIH1cbiAgfVxuICBnZXQgZm9jdXNhYmxlSXRlbXMoKSB7XG4gICAgaWYgKHRoaXMuX2ZvY3VzYWJsZUl0ZW1zKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZm9jdXNhYmxlSXRlbXM7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNscktleUZvY3VzSXRlbXMpIHtcbiAgICAgIHJldHVybiB0aGlzLmNscktleUZvY3VzSXRlbXMudG9BcnJheSgpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBnZXQgbmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBfY3VycmVudCA9IDA7XG5cbiAgZ2V0IGN1cnJlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnQ7XG4gIH1cblxuICBzZXQgY3VycmVudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuX2N1cnJlbnQgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl9jdXJyZW50ID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGN1cnJlbnRJdGVtKCkge1xuICAgIHJldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW1zW3RoaXMuX2N1cnJlbnRdO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRJdGVtRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEl0ZW0ubmF0aXZlRWxlbWVudCA/IHRoaXMuY3VycmVudEl0ZW0ubmF0aXZlRWxlbWVudCA6ICh0aGlzLmN1cnJlbnRJdGVtIGFzIEhUTUxFbGVtZW50KTtcbiAgfVxuXG4gIGZvY3VzQ3VycmVudCgpIHtcbiAgICB0aGlzLmN1cnJlbnRJdGVtLmZvY3VzKCk7XG4gICAgdGhpcy5mb2N1c0NoYW5nZS5uZXh0KHRoaXMuX2N1cnJlbnQpO1xuICB9XG5cbiAgbW92ZVRvKHBvc2l0aW9uOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5wb3NpdGlvbkluUmFuZ2UocG9zaXRpb24pKSB7XG4gICAgICB0aGlzLmN1cnJlbnQgPSBwb3NpdGlvbjtcbiAgICAgIHRoaXMuZm9jdXNDdXJyZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubGlzdGVuRm9ySXRlbVVwZGF0ZXMoKSk7XG4gICAgdGhpcy5pbml0aWFsaXplRm9jdXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgLy8gTWFrZSBzdXJlIGV2ZW50IHdhcyBvcmlnaW5hdGVkIG9uIHRoZSBjdXJyZW50IGl0ZW0ncyBlbGVtZW50XG4gICAgaWYgKHRoaXMuY3VycmVudEl0ZW1FbGVtZW50ICE9PSBldmVudC50YXJnZXQpIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5nZXRJdGVtUG9zaXRpb24oZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgIGlmICh0aGlzLnBvc2l0aW9uSW5SYW5nZShwb3NpdGlvbikpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gcG9zaXRpb247XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJldktleVByZXNzZWQoZXZlbnQpICYmIHRoaXMuY3VycmVudEZvY3VzSXNOb3RGaXJzdEl0ZW0oKSkge1xuICAgICAgdGhpcy5tb3ZlVG8odGhpcy5jdXJyZW50IC0gMSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5leHRLZXlQcmVzc2VkKGV2ZW50KSAmJiB0aGlzLmN1cnJlbnRGb2N1c0lzTm90TGFzdEl0ZW0oKSkge1xuICAgICAgdGhpcy5tb3ZlVG8odGhpcy5jdXJyZW50ICsgMSk7XG4gICAgfSBlbHNlIGlmIChldmVudC5jb2RlID09PSBLZXlDb2Rlcy5Ib21lKSB7XG4gICAgICB0aGlzLm1vdmVUbygwKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09IEtleUNvZGVzLkVuZCkge1xuICAgICAgdGhpcy5tb3ZlVG8odGhpcy5mb2N1c2FibGVJdGVtcy5sZW5ndGggLSAxKTtcbiAgICB9XG5cbiAgICBwcmV2ZW50QXJyb3dLZXlTY3JvbGwoZXZlbnQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBzZXRDbGlja2VkSXRlbUN1cnJlbnQoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5nZXRJdGVtUG9zaXRpb24oZXZlbnQudGFyZ2V0KTtcblxuICAgIGlmIChwb3NpdGlvbiA+IC0xKSB7XG4gICAgICB0aGlzLm1vdmVUbyhwb3NpdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJdGVtUG9zaXRpb24oaXRlbTogSFRNTEVsZW1lbnQpIHtcbiAgICBpZiAodGhpcy5fZm9jdXNhYmxlSXRlbXMpIHtcbiAgICAgIHJldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW1zLm1hcChfaXRlbSA9PiBfaXRlbS5uYXRpdmVFbGVtZW50KS5pbmRleE9mKGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwb3NpdGlvbkluUmFuZ2UocG9zaXRpb246IG51bWJlcikge1xuICAgIHJldHVybiBwb3NpdGlvbiA+PSAwICYmIHBvc2l0aW9uIDwgdGhpcy5mb2N1c2FibGVJdGVtcy5sZW5ndGg7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3VycmVudEZvY3VzSXNOb3RGaXJzdEl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnQgLSAxID49IDA7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3VycmVudEZvY3VzSXNOb3RMYXN0SXRlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudCArIDEgPCB0aGlzLmZvY3VzYWJsZUl0ZW1zLmxlbmd0aDtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0aWFsaXplRm9jdXMoKSB7XG4gICAgaWYgKHRoaXMuZm9jdXNhYmxlSXRlbXMgJiYgdGhpcy5mb2N1c2FibGVJdGVtcy5sZW5ndGgpIHtcbiAgICAgIC8vIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGZvY3VzIHdhcyBvbiBhbiBlbGVtZW50LCB3aG9zZSBpbmRleCBpcyBubyBsb25nZXIgYXZhaWxhYmxlLlxuICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIHdoZW4gc29tZSBvZiB0aGUgZm9jdXNhYmxlIGVsZW1lbnRzIGFyZSBiZWluZyByZW1vdmVkLlxuICAgICAgLy8gSW4gc3VjaCBjYXNlcywgdGhlIG5ldyBmb2N1cyBpcyBpbml0aWFsaXplZCBvbiB0aGUgbGFzdCBmb2N1c2FibGUgZWxlbWVudC5cbiAgICAgIGlmICh0aGlzLl9jdXJyZW50ID49IHRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnQgPSB0aGlzLmZvY3VzYWJsZUl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmZvY3VzT25Mb2FkKSB7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW0uZm9jdXMoKTtcbiAgICAgICAgdGhpcy5mb2N1c0NoYW5nZS5uZXh0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Gb3JJdGVtVXBkYXRlcygpIHtcbiAgICByZXR1cm4gdGhpcy5jbHJLZXlGb2N1c0l0ZW1zLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvY3VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmV4dEtleVByZXNzZWQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBrZXkgPSBrZXlWYWxpZGF0b3IoZXZlbnQua2V5KTtcblxuICAgIHN3aXRjaCAodGhpcy5kaXJlY3Rpb24pIHtcbiAgICAgIGNhc2UgQ2xyRm9jdXNEaXJlY3Rpb24uVkVSVElDQUw6XG4gICAgICAgIHJldHVybiBrZXkgPT09IEtleUNvZGVzLkFycm93RG93bjtcbiAgICAgIGNhc2UgQ2xyRm9jdXNEaXJlY3Rpb24uSE9SSVpPTlRBTDpcbiAgICAgICAgcmV0dXJuIGtleSA9PT0gS2V5Q29kZXMuQXJyb3dSaWdodDtcbiAgICAgIGNhc2UgQ2xyRm9jdXNEaXJlY3Rpb24uQk9USDpcbiAgICAgICAgcmV0dXJuIGtleSA9PT0gS2V5Q29kZXMuQXJyb3dEb3duIHx8IGtleSA9PT0gS2V5Q29kZXMuQXJyb3dSaWdodDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJldktleVByZXNzZWQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBrZXkgPSBrZXlWYWxpZGF0b3IoZXZlbnQua2V5KTtcblxuICAgIHN3aXRjaCAodGhpcy5kaXJlY3Rpb24pIHtcbiAgICAgIGNhc2UgQ2xyRm9jdXNEaXJlY3Rpb24uVkVSVElDQUw6XG4gICAgICAgIHJldHVybiBrZXkgPT09IEtleUNvZGVzLkFycm93VXA7XG4gICAgICBjYXNlIENsckZvY3VzRGlyZWN0aW9uLkhPUklaT05UQUw6XG4gICAgICAgIHJldHVybiBrZXkgPT09IEtleUNvZGVzLkFycm93TGVmdDtcbiAgICAgIGNhc2UgQ2xyRm9jdXNEaXJlY3Rpb24uQk9USDpcbiAgICAgICAgcmV0dXJuIGtleSA9PT0gS2V5Q29kZXMuQXJyb3dVcCB8fCBrZXkgPT09IEtleUNvZGVzLkFycm93TGVmdDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWZvY3VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvZm9jdXMva2V5LWZvY3VzL2tleS1mb2N1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFNN0QsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNuQixjQUFTLEdBQStCLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQUNqRSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNYLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFnQ3pGLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFnQ1gsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBbkVBLENBQUM7SUFROUMsSUFLSSxjQUFjLENBQUMsUUFBb0M7UUFDckQsaUhBQWlIO1FBQ2pILHVGQUF1RjtRQUN2Riw0R0FBNEc7UUFDNUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFnQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7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LFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFcEMsUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3RCLEtBQUssaUJBQWlCLENBQUMsUUFBUTtnQkFDN0IsT0FBTyxHQUFHLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM5QixLQUFLLGlCQUFpQixDQUFDLFVBQVU7Z0JBQy9CLE9BQU8sR0FBRyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDaEMsS0FBSyxpQkFBaUIsQ0FBQyxJQUFJO2dCQUN6QixPQUFPLEdBQUcsS0FBSyxJQUFJLENBQUMsT0FBTyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3hEO2dCQUNFLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQzs7eUdBckxVLFdBQVc7NkZBQVgsV0FBVyx3WUFLTCxlQUFlLGdEQVB0QiwyQkFBMkI7NEZBRTFCLFdBQVc7a0JBSnZCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDO2lHQUd3QixTQUFTO3NCQUEvQixLQUFLO3VCQUFDLGNBQWM7Z0JBQ0ksV0FBVztzQkFBbkMsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBQ1csV0FBVztzQkFBNUMsTUFBTTt1QkFBQyxnQkFBZ0I7Z0JBRWQsZ0JBQWdCO3NCQUR6QixlQUFlO3VCQUFDLGVBQWUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBU25ELGNBQWM7c0JBTGpCLEtBQUs7dUJBQUMsYUFBYTtnQkF1RXBCLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBd0JuQyxxQkFBcUI7c0JBRHBCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgS2V5cyB9IGZyb20gJy4uLy4uL2VudW1zL2tleXMuZW51bSc7XG5pbXBvcnQgeyBDbHJGb2N1c0RpcmVjdGlvbiB9IGZyb20gJy4vZW51bXMvZm9jdXMtZGlyZWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgRm9jdXNhYmxlSXRlbSB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDbHJLZXlGb2N1c0l0ZW0gfSBmcm9tICcuL2tleS1mb2N1cy1pdGVtJztcbmltcG9ydCB7IG5vcm1hbGl6ZUtleSwgcHJldmVudEFycm93S2V5U2Nyb2xsIH0gZnJvbSAnLi91dGlsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW2NscktleUZvY3VzXScsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG59KVxuZXhwb3J0IGNsYXNzIENscktleUZvY3VzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuICBASW5wdXQoJ2NsckRpcmVjdGlvbicpIGRpcmVjdGlvbjogQ2xyRm9jdXNEaXJlY3Rpb24gfCBzdHJpbmcgPSBDbHJGb2N1c0RpcmVjdGlvbi5WRVJUSUNBTDtcbiAgQElucHV0KCdjbHJGb2N1c09uTG9hZCcpIGZvY3VzT25Mb2FkID0gZmFsc2U7XG4gIEBPdXRwdXQoJ2NsckZvY3VzQ2hhbmdlJykgcHJpdmF0ZSBmb2N1c0NoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQENvbnRlbnRDaGlsZHJlbihDbHJLZXlGb2N1c0l0ZW0sIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIGNscktleUZvY3VzSXRlbXM6IFF1ZXJ5TGlzdDxDbHJLZXlGb2N1c0l0ZW0+O1xuXG4gIHByaXZhdGUgX2ZvY3VzYWJsZUl0ZW1zOiBBcnJheTxGb2N1c2FibGVJdGVtPjtcbiAgQElucHV0KCdjbHJLZXlGb2N1cycpXG4gIC8qKlxuICAgKiBIZXJlIHdlIHVzZSBgYW55YCBjYXVzZSBhbnkgb3RoZXIgdHlwZSByZXF1aXJlIHJld29ya2luZyBhbGwgbWV0aG9kcyBiZWxvdyBhbmQgYSBsb3Qgb2YgbW9yZSBpZnMuXG4gICAqIHRoaXMgbWV0aG9kIHdpbGwgb25seSB3b3JrIHdpdGggYXJyYXkgd2l0aCBGb2N1c2FibGVJdGVtcyBhbnl3YXkgc28gYW55IG90aGVyIHZhbHVlIHdpbGwgYmUgaWdub3JlZC5cbiAgICovXG4gIHNldCBmb2N1c2FibGVJdGVtcyhlbGVtZW50czogQXJyYXk8Rm9jdXNhYmxlSXRlbT4gfCBhbnkpIHtcbiAgICAvLyBXZSBhY2NlcHQgYSBsaXN0IG9mIGZvY3VzYWJsZSBlbGVtZW50cyAoSFRNTEVsZW1lbnRzIG9yIGV4aXN0aW5nIERpcmVjdGl2ZXMpIG9yIGF1dG8gcXVlcnkgZm9yIGNscktleUZvY3VzSXRlbVxuICAgIC8vIFdlIGFjY2VwdCBhIGxpc3QgcmVmZXJlbmNlIGluIHRoZSBjYXNlcyB3aGVyZSB3ZSBjYW5ub3QgdXNlIENvbnRlbnRDaGlsZHJlbiB0byBxdWVyeVxuICAgIC8vIENvbnRlbnRDaGlsZHJlbiBjYW4gYmUgdW5hdmFpbGFibGUgaWYgY29udGVudCBpcyBwcm9qZWN0ZWQgb3V0c2lkZSB0aGUgc2NvcGUgb2YgdGhlIGNvbXBvbmVudCAoc2VlIHRhYnMpLlxuICAgIGlmIChBcnJheS5pc0FycmF5KGVsZW1lbnRzKSAmJiBlbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX2ZvY3VzYWJsZUl0ZW1zID0gZWxlbWVudHMgYXMgQXJyYXk8Rm9jdXNhYmxlSXRlbT47XG4gICAgICB0aGlzLmluaXRpYWxpemVGb2N1cygpO1xuICAgIH1cbiAgfVxuICBnZXQgZm9jdXNhYmxlSXRlbXMoKSB7XG4gICAgaWYgKHRoaXMuX2ZvY3VzYWJsZUl0ZW1zKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZm9jdXNhYmxlSXRlbXM7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNscktleUZvY3VzSXRlbXMpIHtcbiAgICAgIHJldHVybiB0aGlzLmNscktleUZvY3VzSXRlbXMudG9BcnJheSgpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBnZXQgbmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBfY3VycmVudCA9IDA7XG5cbiAgZ2V0IGN1cnJlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnQ7XG4gIH1cblxuICBzZXQgY3VycmVudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuX2N1cnJlbnQgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl9jdXJyZW50ID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGN1cnJlbnRJdGVtKCkge1xuICAgIHJldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW1zW3RoaXMuX2N1cnJlbnRdO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRJdGVtRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEl0ZW0ubmF0aXZlRWxlbWVudCA/IHRoaXMuY3VycmVudEl0ZW0ubmF0aXZlRWxlbWVudCA6ICh0aGlzLmN1cnJlbnRJdGVtIGFzIEhUTUxFbGVtZW50KTtcbiAgfVxuXG4gIGZvY3VzQ3VycmVudCgpIHtcbiAgICB0aGlzLmN1cnJlbnRJdGVtLmZvY3VzKCk7XG4gICAgdGhpcy5mb2N1c0NoYW5nZS5uZXh0KHRoaXMuX2N1cnJlbnQpO1xuICB9XG5cbiAgbW92ZVRvKHBvc2l0aW9uOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5wb3NpdGlvbkluUmFuZ2UocG9zaXRpb24pKSB7XG4gICAgICB0aGlzLmN1cnJlbnQgPSBwb3NpdGlvbjtcbiAgICAgIHRoaXMuZm9jdXNDdXJyZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubGlzdGVuRm9ySXRlbVVwZGF0ZXMoKSk7XG4gICAgdGhpcy5pbml0aWFsaXplRm9jdXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgLy8gTWFrZSBzdXJlIGV2ZW50IHdhcyBvcmlnaW5hdGVkIG9uIHRoZSBjdXJyZW50IGl0ZW0ncyBlbGVtZW50XG4gICAgaWYgKHRoaXMuY3VycmVudEl0ZW1FbGVtZW50ICE9PSBldmVudC50YXJnZXQpIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5nZXRJdGVtUG9zaXRpb24oZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgIGlmICh0aGlzLnBvc2l0aW9uSW5SYW5nZShwb3NpdGlvbikpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gcG9zaXRpb247XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJldktleVByZXNzZWQoZXZlbnQpICYmIHRoaXMuY3VycmVudEZvY3VzSXNOb3RGaXJzdEl0ZW0oKSkge1xuICAgICAgdGhpcy5tb3ZlVG8odGhpcy5jdXJyZW50IC0gMSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5leHRLZXlQcmVzc2VkKGV2ZW50KSAmJiB0aGlzLmN1cnJlbnRGb2N1c0lzTm90TGFzdEl0ZW0oKSkge1xuICAgICAgdGhpcy5tb3ZlVG8odGhpcy5jdXJyZW50ICsgMSk7XG4gICAgfSBlbHNlIGlmIChldmVudC5jb2RlID09PSBLZXlzLkhvbWUpIHtcbiAgICAgIHRoaXMubW92ZVRvKDApO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuY29kZSA9PT0gS2V5cy5FbmQpIHtcbiAgICAgIHRoaXMubW92ZVRvKHRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RoIC0gMSk7XG4gICAgfVxuXG4gICAgcHJldmVudEFycm93S2V5U2Nyb2xsKGV2ZW50KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgc2V0Q2xpY2tlZEl0ZW1DdXJyZW50KGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuZ2V0SXRlbVBvc2l0aW9uKGV2ZW50LnRhcmdldCk7XG5cbiAgICBpZiAocG9zaXRpb24gPiAtMSkge1xuICAgICAgdGhpcy5tb3ZlVG8ocG9zaXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0SXRlbVBvc2l0aW9uKGl0ZW06IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKHRoaXMuX2ZvY3VzYWJsZUl0ZW1zKSB7XG4gICAgICByZXR1cm4gdGhpcy5mb2N1c2FibGVJdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5mb2N1c2FibGVJdGVtcy5tYXAoX2l0ZW0gPT4gX2l0ZW0ubmF0aXZlRWxlbWVudCkuaW5kZXhPZihpdGVtKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcG9zaXRpb25JblJhbmdlKHBvc2l0aW9uOiBudW1iZXIpIHtcbiAgICByZXR1cm4gcG9zaXRpb24gPj0gMCAmJiBwb3NpdGlvbiA8IHRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RoO1xuICB9XG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRGb2N1c0lzTm90Rmlyc3RJdGVtKCkge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50IC0gMSA+PSAwO1xuICB9XG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRGb2N1c0lzTm90TGFzdEl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnQgKyAxIDwgdGhpcy5mb2N1c2FibGVJdGVtcy5sZW5ndGg7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZUZvY3VzKCkge1xuICAgIGlmICh0aGlzLmZvY3VzYWJsZUl0ZW1zICYmIHRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RoKSB7XG4gICAgICAvLyBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBmb2N1cyB3YXMgb24gYW4gZWxlbWVudCwgd2hvc2UgaW5kZXggaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZS5cbiAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHNvbWUgb2YgdGhlIGZvY3VzYWJsZSBlbGVtZW50cyBhcmUgYmVpbmcgcmVtb3ZlZC5cbiAgICAgIC8vIEluIHN1Y2ggY2FzZXMsIHRoZSBuZXcgZm9jdXMgaXMgaW5pdGlhbGl6ZWQgb24gdGhlIGxhc3QgZm9jdXNhYmxlIGVsZW1lbnQuXG4gICAgICBpZiAodGhpcy5fY3VycmVudCA+PSB0aGlzLmZvY3VzYWJsZUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9jdXJyZW50ID0gdGhpcy5mb2N1c2FibGVJdGVtcy5sZW5ndGggLSAxO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5mb2N1c09uTG9hZCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRJdGVtLmZvY3VzKCk7XG4gICAgICAgIHRoaXMuZm9jdXNDaGFuZ2UubmV4dCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuRm9ySXRlbVVwZGF0ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xyS2V5Rm9jdXNJdGVtcy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmluaXRpYWxpemVGb2N1cygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5leHRLZXlQcmVzc2VkKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3Qga2V5ID0gbm9ybWFsaXplS2V5KGV2ZW50LmtleSk7XG5cbiAgICBzd2l0Y2ggKHRoaXMuZGlyZWN0aW9uKSB7XG4gICAgICBjYXNlIENsckZvY3VzRGlyZWN0aW9uLlZFUlRJQ0FMOlxuICAgICAgICByZXR1cm4ga2V5ID09PSBLZXlzLkFycm93RG93bjtcbiAgICAgIGNhc2UgQ2xyRm9jdXNEaXJlY3Rpb24uSE9SSVpPTlRBTDpcbiAgICAgICAgcmV0dXJuIGtleSA9PT0gS2V5cy5BcnJvd1JpZ2h0O1xuICAgICAgY2FzZSBDbHJGb2N1c0RpcmVjdGlvbi5CT1RIOlxuICAgICAgICByZXR1cm4ga2V5ID09PSBLZXlzLkFycm93RG93biB8fCBrZXkgPT09IEtleXMuQXJyb3dSaWdodDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJldktleVByZXNzZWQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBrZXkgPSBub3JtYWxpemVLZXkoZXZlbnQua2V5KTtcblxuICAgIHN3aXRjaCAodGhpcy5kaXJlY3Rpb24pIHtcbiAgICAgIGNhc2UgQ2xyRm9jdXNEaXJlY3Rpb24uVkVSVElDQUw6XG4gICAgICAgIHJldHVybiBrZXkgPT09IEtleXMuQXJyb3dVcDtcbiAgICAgIGNhc2UgQ2xyRm9jdXNEaXJlY3Rpb24uSE9SSVpPTlRBTDpcbiAgICAgICAgcmV0dXJuIGtleSA9PT0gS2V5cy5BcnJvd0xlZnQ7XG4gICAgICBjYXNlIENsckZvY3VzRGlyZWN0aW9uLkJPVEg6XG4gICAgICAgIHJldHVybiBrZXkgPT09IEtleXMuQXJyb3dVcCB8fCBrZXkgPT09IEtleXMuQXJyb3dMZWZ0O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
5
|
*/
|
|
6
6
|
import { Component, Input } from '@angular/core';
|
|
7
|
-
import {
|
|
7
|
+
import { Keys } from '../../../utils/enums/keys.enum';
|
|
8
8
|
import { ClrKeyFocus } from './key-focus';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
export class ClrRovingTabindex extends ClrKeyFocus {
|
|
@@ -33,10 +33,10 @@ export class ClrRovingTabindex extends ClrKeyFocus {
|
|
|
33
33
|
else if (this.nextKeyPressed(event) && this.currentFocusIsNotLastItem()) {
|
|
34
34
|
this.updateTabindex(this.current + 1);
|
|
35
35
|
}
|
|
36
|
-
else if (event.code ===
|
|
36
|
+
else if (event.code === Keys.Home) {
|
|
37
37
|
this.updateTabindex(0);
|
|
38
38
|
}
|
|
39
|
-
else if (event.code ===
|
|
39
|
+
else if (event.code === Keys.End) {
|
|
40
40
|
this.updateTabindex(this.focusableItems.length - 1);
|
|
41
41
|
}
|
|
42
42
|
super.handleKeyboardEvent(event);
|
|
@@ -99,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
99
99
|
type: Input,
|
|
100
100
|
args: ['clrRovingTabindexDisabled']
|
|
101
101
|
}] } });
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm92aW5nLXRhYmluZGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvZm9jdXMva2V5LWZvY3VzL3JvdmluZy10YWJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXRELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBTTFDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxXQUFXO0lBQ2hELFlBQVksVUFBc0IsRUFBVSxRQUFtQjtRQUM3RCxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFEd0IsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWN2RCxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBWnpCLENBQUM7SUFFRCx1RkFBdUY7SUFDdkYsSUFDSSxnQkFBZ0IsQ0FBQyxRQUF1QztRQUMxRCxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQWdDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBSUQsSUFDSSxzQkFBc0IsQ0FBQyxRQUFpQjtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZEO0lBQ0gsQ0FBQztJQUVRLG1CQUFtQixDQUFDLEtBQW9CO1FBQy9DLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFL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QUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDaEU7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQzlFO0lBQ0gsQ0FBQzs7K0dBbkZVLGlCQUFpQjttR0FBakIsaUJBQWlCLDRPQUZsQiwyQkFBMkI7NEZBRTFCLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsMkJBQTJCO2lCQUN0Qzt5SEFRSyxnQkFBZ0I7c0JBRG5CLEtBQUs7dUJBQUMsbUJBQW1CO2dCQVl0QixzQkFBc0I7c0JBRHpCLEtBQUs7dUJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgS2V5cyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2VudW1zL2tleXMuZW51bSc7XG5pbXBvcnQgeyBGb2N1c2FibGVJdGVtIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENscktleUZvY3VzIH0gZnJvbSAnLi9rZXktZm9jdXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbY2xyUm92aW5nVGFiaW5kZXhdJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyUm92aW5nVGFiaW5kZXggZXh0ZW5kcyBDbHJLZXlGb2N1cyB7XG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xuICB9XG5cbiAgLy8gUHJveHkgdGhlIGlucHV0LCBhcyB0aGUgc2VsZWN0b3IgbmFtZSBmcm9tIHBhcmVudCBjbGFzcyB3aWxsIHN0aWxsIGJlIFwiY2xyS2V5Rm9jdXNcIi5cbiAgQElucHV0KCdjbHJSb3ZpbmdUYWJpbmRleCcpXG4gIHNldCByb3ZpbmdJbmRleEl0ZW1zKGVsZW1lbnRzOiBBcnJheTxGb2N1c2FibGVJdGVtPiB8IHN0cmluZykge1xuICAgIHRoaXMuZm9jdXNhYmxlSXRlbXMgPSBlbGVtZW50cyBhcyBBcnJheTxGb2N1c2FibGVJdGVtPjtcbiAgfVxuXG4gIGdldCByb3ZpbmdJbmRleEl0ZW1zKCk6IEFycmF5PEZvY3VzYWJsZUl0ZW0+IHwgc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c2FibGVJdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoJ2NsclJvdmluZ1RhYmluZGV4RGlzYWJsZWQnKVxuICBzZXQgcm92aW5nVGFiaW5kZXhEaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICBpZiAodGhpcy5jdXJyZW50SXRlbSkge1xuICAgICAgdGhpcy5zZXRUYWJpbmRleCh0aGlzLmN1cnJlbnRJdGVtLCBkaXNhYmxlZCA/IC0xIDogMCk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLnByZXZLZXlQcmVzc2VkKGV2ZW50KSAmJiB0aGlzLmN1cnJlbnRGb2N1c0lzTm90Rmlyc3RJdGVtKCkpIHtcbiAgICAgIHRoaXMudXBkYXRlVGFiaW5kZXgodGhpcy5jdXJyZW50IC0gMSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5leHRLZXlQcmVzc2VkKGV2ZW50KSAmJiB0aGlzLmN1cnJlbnRGb2N1c0lzTm90TGFzdEl0ZW0oKSkge1xuICAgICAgdGhpcy51cGRhdGVUYWJpbmRleCh0aGlzLmN1cnJlbnQgKyAxKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09IEtleXMuSG9tZSkge1xuICAgICAgdGhpcy51cGRhdGVUYWJpbmRleCgwKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09IEtleXMuRW5kKSB7XG4gICAgICB0aGlzLnVwZGF0ZVRhYmluZGV4KHRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RoIC0gMSk7XG4gICAgfVxuICAgIHN1cGVyLmhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQpO1xuICB9XG5cbiAgb3ZlcnJpZGUgc2V0Q2xpY2tlZEl0ZW1DdXJyZW50KGV2ZW50OiBhbnkpIHtcbiAgICBsZXQgcG9zaXRpb246IG51bWJlcjtcblxuICAgIGlmICh0aGlzLmZvY3VzYWJsZUl0ZW1zWzBdLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHBvc2l0aW9uID0gdGhpcy5mb2N1c2FibGVJdGVtcy5tYXAoaXRlbSA9PiBpdGVtLm5hdGl2ZUVsZW1lbnQpLmluZGV4T2YoZXZlbnQudGFyZ2V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcG9zaXRpb24gPSB0aGlzLmZvY3VzYWJsZUl0ZW1zLmluZGV4T2YoZXZlbnQudGFyZ2V0KTtcbiAgICB9XG5cbiAgICBpZiAocG9zaXRpb24gPiAtMSkge1xuICAgICAgdGhpcy51cGRhdGVUYWJpbmRleChwb3NpdGlvbik7XG4gICAgfVxuICAgIHN1cGVyLnNldENsaWNrZWRJdGVtQ3VycmVudChldmVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaW5pdGlhbGl6ZUZvY3VzKCkge1xuICAgIGlmICh0aGlzLmZvY3VzYWJsZUl0ZW1zICYmIHRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZvY3VzYWJsZUl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIHRoaXMuc2V0VGFiaW5kZXgoaXRlbSwgLTEpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGZvY3VzIHdhcyBvbiBhbiBlbGVtZW50LCB3aG9zZSBpbmRleCBpcyBubyBsb25nZXIgYXZhaWxhYmxlLlxuICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIHdoZW4gc29tZSBvZiB0aGUgZm9jdXNhYmxlIGVsZW1lbnRzIGFyZSBiZWluZyByZW1vdmVkLlxuICAgICAgLy8gSW4gc3VjaCBjYXNlcywgdGhlIG5ldyBmb2N1cyBpcyBpbml0aWFsaXplZCBvbiB0aGUgbGFzdCBmb2N1c2FibGUgZWxlbWVudC5cbiAgICAgIGlmICh0aGlzLmN1cnJlbnQgPj0gdGhpcy5mb2N1c2FibGVJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gdGhpcy5mb2N1c2FibGVJdGVtcy5sZW5ndGggLSAxO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmRpc2FibGVkICYmIHRoaXMuY3VycmVudEl0ZW0pIHtcbiAgICAgICAgdGhpcy5zZXRUYWJpbmRleCh0aGlzLmN1cnJlbnRJdGVtLCAwKTtcbiAgICAgIH1cbiAgICB9XG4gICAgc3VwZXIuaW5pdGlhbGl6ZUZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVRhYmluZGV4KG5ld0luZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFRhYmluZGV4KHRoaXMuY3VycmVudEl0ZW0sIC0xKTtcbiAgICB0aGlzLnNldFRhYmluZGV4KHRoaXMuZm9jdXNhYmxlSXRlbXNbbmV3SW5kZXhdLCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGFiaW5kZXgoaXRlbTogRm9jdXNhYmxlSXRlbSwgdmFsdWU6IG51bWJlcikge1xuICAgIGlmIChpdGVtIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGl0ZW0sICd0YWJpbmRleCcsIHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShpdGVtLm5hdGl2ZUVsZW1lbnQsICd0YWJpbmRleCcsIHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -3,36 +3,33 @@
|
|
|
3
3
|
* This software is released under MIT license.
|
|
4
4
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
export function
|
|
8
|
-
if (key ===
|
|
9
|
-
return
|
|
6
|
+
import { IEKeys, Keys } from '../../enums/keys.enum';
|
|
7
|
+
export function normalizeKey(key) {
|
|
8
|
+
if (key === Keys.ArrowUp || key === IEKeys.ArrowUp) {
|
|
9
|
+
return Keys.ArrowUp;
|
|
10
10
|
}
|
|
11
|
-
else if (key ===
|
|
12
|
-
return
|
|
11
|
+
else if (key === Keys.ArrowDown || key === IEKeys.ArrowDown) {
|
|
12
|
+
return Keys.ArrowDown;
|
|
13
13
|
}
|
|
14
|
-
else if (key ===
|
|
15
|
-
return
|
|
14
|
+
else if (key === Keys.ArrowRight || key === IEKeys.ArrowRight) {
|
|
15
|
+
return Keys.ArrowRight;
|
|
16
16
|
}
|
|
17
|
-
else if (key ===
|
|
18
|
-
return
|
|
17
|
+
else if (key === Keys.ArrowLeft || key === IEKeys.ArrowLeft) {
|
|
18
|
+
return Keys.ArrowLeft;
|
|
19
19
|
}
|
|
20
|
-
else if (key ===
|
|
21
|
-
return
|
|
20
|
+
else if (key === Keys.Space || key === IEKeys.Space) {
|
|
21
|
+
return Keys.Space;
|
|
22
22
|
}
|
|
23
|
-
else if (key ===
|
|
24
|
-
return
|
|
23
|
+
else if (key === Keys.Escape || key === IEKeys.Escape) {
|
|
24
|
+
return Keys.Escape;
|
|
25
25
|
}
|
|
26
26
|
else {
|
|
27
27
|
return key;
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
export function preventArrowKeyScroll(event) {
|
|
31
|
-
const
|
|
32
|
-
if (
|
|
33
|
-
validKey === KeyCodes.ArrowDown ||
|
|
34
|
-
validKey === KeyCodes.ArrowLeft ||
|
|
35
|
-
validKey === KeyCodes.ArrowRight) {
|
|
31
|
+
const key = normalizeKey(event.key);
|
|
32
|
+
if (key === Keys.ArrowUp || key === Keys.ArrowDown || key === Keys.ArrowLeft || key === Keys.ArrowRight) {
|
|
36
33
|
// prevent element container scroll
|
|
37
34
|
// MDN references this is really the only way to prevent native browser interactions
|
|
38
35
|
// https://developer.mozilla.org/en-US/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets
|
|
@@ -44,4 +41,4 @@ export function isKeyEitherLetterOrNumber(event) {
|
|
|
44
41
|
// Only letter characters differ when they switch between lowercase and uppercase, whether it's an English or non-English letter.
|
|
45
42
|
return char.toLowerCase() !== char.toUpperCase() || (char >= '0' && char <= '9');
|
|
46
43
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL2ZvY3VzL2tleS1mb2N1cy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBVztJQUN0QyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsT0FBTyxJQUFJLEdBQUcsS0FBSyxNQUFNLENBQUMsT0FBTyxFQUFFO1FBQ2xELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztLQUNyQjtTQUFNLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxTQUFTLElBQUksR0FBRyxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUU7UUFDN0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0tBQ3ZCO1NBQU0sSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFVBQVUsSUFBSSxHQUFHLEtBQUssTUFBTSxDQUFDLFVBQVUsRUFBRTtRQUMvRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7S0FDeEI7U0FBTSxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsU0FBUyxJQUFJLEdBQUcsS0FBSyxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQzdELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztLQUN2QjtTQUFNLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxLQUFLLElBQUksR0FBRyxLQUFLLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDckQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0tBQ25CO1NBQU0sSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLE1BQU0sSUFBSSxHQUFHLEtBQUssTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUN2RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7S0FDcEI7U0FBTTtRQUNMLE9BQU8sR0FBRyxDQUFDO0tBQ1o7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEtBQW9CO0lBQ3hELE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFcEMsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLE9BQU8sSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFNBQVMsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFNBQVMsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUN2RyxtQ0FBbUM7UUFDbkMsb0ZBQW9GO1FBQ3BGLG1HQUFtRztRQUNuRyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7S0FDeEI7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLEtBQW9CO0lBQzVELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDdkIsaUlBQWlJO0lBQ2pJLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0FBQ25GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IElFS2V5cywgS2V5cyB9IGZyb20gJy4uLy4uL2VudW1zL2tleXMuZW51bSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVLZXkoa2V5OiBzdHJpbmcpIHtcbiAgaWYgKGtleSA9PT0gS2V5cy5BcnJvd1VwIHx8IGtleSA9PT0gSUVLZXlzLkFycm93VXApIHtcbiAgICByZXR1cm4gS2V5cy5BcnJvd1VwO1xuICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5cy5BcnJvd0Rvd24gfHwga2V5ID09PSBJRUtleXMuQXJyb3dEb3duKSB7XG4gICAgcmV0dXJuIEtleXMuQXJyb3dEb3duO1xuICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5cy5BcnJvd1JpZ2h0IHx8IGtleSA9PT0gSUVLZXlzLkFycm93UmlnaHQpIHtcbiAgICByZXR1cm4gS2V5cy5BcnJvd1JpZ2h0O1xuICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5cy5BcnJvd0xlZnQgfHwga2V5ID09PSBJRUtleXMuQXJyb3dMZWZ0KSB7XG4gICAgcmV0dXJuIEtleXMuQXJyb3dMZWZ0O1xuICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5cy5TcGFjZSB8fCBrZXkgPT09IElFS2V5cy5TcGFjZSkge1xuICAgIHJldHVybiBLZXlzLlNwYWNlO1xuICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5cy5Fc2NhcGUgfHwga2V5ID09PSBJRUtleXMuRXNjYXBlKSB7XG4gICAgcmV0dXJuIEtleXMuRXNjYXBlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBrZXk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXZlbnRBcnJvd0tleVNjcm9sbChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICBjb25zdCBrZXkgPSBub3JtYWxpemVLZXkoZXZlbnQua2V5KTtcblxuICBpZiAoa2V5ID09PSBLZXlzLkFycm93VXAgfHwga2V5ID09PSBLZXlzLkFycm93RG93biB8fCBrZXkgPT09IEtleXMuQXJyb3dMZWZ0IHx8IGtleSA9PT0gS2V5cy5BcnJvd1JpZ2h0KSB7XG4gICAgLy8gcHJldmVudCBlbGVtZW50IGNvbnRhaW5lciBzY3JvbGxcbiAgICAvLyBNRE4gcmVmZXJlbmNlcyB0aGlzIGlzIHJlYWxseSB0aGUgb25seSB3YXkgdG8gcHJldmVudCBuYXRpdmUgYnJvd3NlciBpbnRlcmFjdGlvbnNcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BY2Nlc3NpYmlsaXR5L0tleWJvYXJkLW5hdmlnYWJsZV9KYXZhU2NyaXB0X3dpZGdldHNcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0tleUVpdGhlckxldHRlck9yTnVtYmVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gIGNvbnN0IGNoYXIgPSBldmVudC5rZXk7XG4gIC8vIE9ubHkgbGV0dGVyIGNoYXJhY3RlcnMgZGlmZmVyIHdoZW4gdGhleSBzd2l0Y2ggYmV0d2VlbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSwgd2hldGhlciBpdCdzIGFuIEVuZ2xpc2ggb3Igbm9uLUVuZ2xpc2ggbGV0dGVyLlxuICByZXR1cm4gY2hhci50b0xvd2VyQ2FzZSgpICE9PSBjaGFyLnRvVXBwZXJDYXNlKCkgfHwgKGNoYXIgPj0gJzAnICYmIGNoYXIgPD0gJzknKTtcbn1cbiJdfQ==
|