@clr/angular 13.0.3 → 13.2.1
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/button/button-group/button-group.d.ts +5 -3
- package/clarity.api.md +145 -48
- package/clr-angular.module.d.ts +13 -12
- package/data/datagrid/built-in/filters/datagrid-numeric-filter.d.ts +11 -3
- package/data/datagrid/built-in/filters/datagrid-string-filter.d.ts +9 -3
- package/data/datagrid/datagrid-column.d.ts +10 -1
- package/data/datagrid/render/main-renderer.d.ts +3 -2
- package/data/stack-view/stack-control.d.ts +7 -2
- package/data/tree-view/models/tree-node.model.d.ts +1 -0
- package/data/tree-view/tree-focus-manager.service.d.ts +6 -0
- package/data/tree-view/tree-node.d.ts +10 -5
- package/esm2020/accordion/stepper/models/stepper.model.mjs +1 -1
- package/esm2020/accordion/stepper/providers/stepper.service.mjs +1 -1
- package/esm2020/accordion/stepper/stepper-panel.mjs +1 -1
- package/esm2020/button/button-group/button-group.mjs +17 -11
- package/esm2020/clr-angular.module.mjs +5 -1
- package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter.mjs +37 -16
- package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter.mjs +27 -13
- package/esm2020/data/datagrid/datagrid-column-toggle.mjs +7 -3
- package/esm2020/data/datagrid/datagrid-column.mjs +28 -3
- package/esm2020/data/datagrid/datagrid-filter.mjs +1 -1
- package/esm2020/data/datagrid/datagrid-if-expanded.service.mjs +1 -1
- package/esm2020/data/datagrid/render/main-renderer.mjs +9 -6
- package/esm2020/data/stack-view/stack-control.mjs +13 -3
- package/esm2020/data/stack-view/stack-input.mjs +1 -1
- package/esm2020/data/stack-view/stack-select.mjs +1 -1
- package/esm2020/data/tree-view/models/declarative-tree-node.model.mjs +1 -1
- package/esm2020/data/tree-view/models/recursive-tree-node.model.mjs +1 -1
- package/esm2020/data/tree-view/models/tree-node.model.mjs +1 -1
- package/esm2020/data/tree-view/tree-focus-manager.service.mjs +69 -1
- package/esm2020/data/tree-view/tree-node.mjs +55 -22
- package/esm2020/forms/checkbox/checkbox-container.mjs +1 -1
- package/esm2020/forms/checkbox/checkbox.mjs +1 -1
- package/esm2020/forms/combobox/combobox-container.mjs +1 -1
- package/esm2020/forms/combobox/combobox.mjs +3 -6
- package/esm2020/forms/combobox/model/pseudo-focus.model.mjs +1 -1
- package/esm2020/forms/common/control.mjs +1 -1
- package/esm2020/forms/common/error.mjs +1 -1
- package/esm2020/forms/common/helper.mjs +1 -1
- package/esm2020/forms/common/if-control-state/if-error.mjs +1 -1
- package/esm2020/forms/common/if-control-state/if-success.mjs +1 -1
- package/esm2020/forms/common/success.mjs +1 -1
- package/esm2020/forms/datalist/datalist-container.mjs +1 -1
- package/esm2020/forms/datalist/datalist-input.mjs +1 -1
- package/esm2020/forms/datepicker/calendar.mjs +3 -3
- package/esm2020/forms/datepicker/date-container.mjs +1 -1
- package/esm2020/forms/datepicker/date-input.mjs +1 -1
- package/esm2020/forms/input/input.mjs +1 -1
- package/esm2020/forms/password/password-container.mjs +3 -11
- package/esm2020/forms/password/password.mjs +1 -1
- package/esm2020/forms/radio/radio-container.mjs +1 -1
- package/esm2020/forms/range/range-container.mjs +1 -1
- package/esm2020/forms/select/select-container.mjs +1 -1
- package/esm2020/forms/select/select.mjs +1 -1
- package/esm2020/forms/textarea/textarea.mjs +1 -1
- package/esm2020/layout/nav/aria-current-link.mjs +28 -0
- package/esm2020/layout/nav/header.mjs +25 -8
- package/esm2020/layout/nav/index.mjs +2 -1
- package/esm2020/layout/nav/nav-level.mjs +110 -8
- package/esm2020/layout/nav/navigation.module.mjs +5 -1
- package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +3 -3
- package/esm2020/layout/vertical-nav/vertical-nav-link.mjs +25 -15
- package/esm2020/modal/modal-body.mjs +5 -2
- package/esm2020/popover/common/abstract-popover.mjs +15 -6
- package/esm2020/popover/dropdown/dropdown-menu.mjs +1 -1
- package/esm2020/popover/dropdown/providers/dropdown-focus-handler.service.mjs +5 -3
- package/esm2020/popover/signpost/signpost-content.mjs +2 -1
- package/esm2020/utils/breakpoints/breakpoints.mjs +15 -1
- package/esm2020/utils/destroy/destroy.service.mjs +44 -0
- package/esm2020/utils/destroy/index.mjs +7 -0
- package/esm2020/utils/drag-and-drop/providers/drag-event-listener.service.mjs +7 -7
- package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.mjs +21 -16
- package/esm2020/utils/focus/key-focus/roving-tabindex.mjs +1 -1
- package/esm2020/utils/focus/key-focus/util.mjs +6 -1
- package/esm2020/utils/focus-trap/focus-trap.mjs +141 -0
- package/esm2020/utils/for-type-ahead/for-type-ahead.mjs +54 -0
- package/esm2020/utils/for-type-ahead/for-type-ahead.module.mjs +23 -0
- package/esm2020/utils/for-type-ahead/for-type-ahead.service.mjs +29 -0
- package/esm2020/utils/for-type-ahead/index.mjs +8 -0
- package/esm2020/utils/index.mjs +3 -1
- package/esm2020/utils/popover/popover-content.mjs +14 -8
- package/fesm2015/clr-angular.mjs +831 -182
- package/fesm2015/clr-angular.mjs.map +1 -1
- package/fesm2020/clr-angular.mjs +828 -181
- package/fesm2020/clr-angular.mjs.map +1 -1
- package/forms/combobox/combobox.d.ts +0 -1
- package/layout/nav/aria-current-link.d.ts +13 -0
- package/layout/nav/header.d.ts +6 -0
- package/layout/nav/index.d.ts +1 -0
- package/layout/nav/nav-level.d.ts +16 -4
- package/layout/nav/navigation.module.d.ts +7 -6
- package/layout/vertical-nav/vertical-nav-link.d.ts +6 -5
- package/modal/modal-body.d.ts +1 -0
- package/package.json +4 -4
- package/popover/common/abstract-popover.d.ts +3 -1
- package/popover/dropdown/providers/dropdown-focus-handler.service.d.ts +2 -2
- package/utils/breakpoints/breakpoints.d.ts +14 -0
- package/utils/destroy/destroy.service.d.ts +32 -0
- package/utils/destroy/index.d.ts +1 -0
- package/utils/focus/focus-on-view-init/focus-on-view-init.d.ts +5 -4
- package/utils/focus/key-focus/util.d.ts +1 -0
- package/utils/focus-trap/focus-trap.d.ts +29 -0
- package/utils/for-type-ahead/for-type-ahead.d.ts +15 -0
- package/utils/for-type-ahead/for-type-ahead.module.d.ts +8 -0
- package/utils/for-type-ahead/for-type-ahead.service.d.ts +11 -0
- package/utils/for-type-ahead/index.d.ts +2 -0
- package/utils/index.d.ts +2 -0
- package/utils/popover/popover-content.d.ts +2 -1
|
@@ -4,17 +4,20 @@
|
|
|
4
4
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
5
|
*/
|
|
6
6
|
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
7
|
-
import { Directive,
|
|
7
|
+
import { Directive, Inject, Input, PLATFORM_ID, } from '@angular/core';
|
|
8
|
+
import { fromEvent, Subject } from 'rxjs';
|
|
9
|
+
import { takeUntil } from 'rxjs/operators';
|
|
8
10
|
import { FOCUS_ON_VIEW_INIT } from './focus-on-view-init.provider';
|
|
9
11
|
import * as i0 from "@angular/core";
|
|
10
12
|
/* This directive is for guiding the document focus to the newly added content when its view is initialized
|
|
11
13
|
so that assistive technologies can read its content. */
|
|
12
14
|
export class ClrFocusOnViewInit {
|
|
13
|
-
constructor(el, platformId, focusOnViewInit, document, renderer) {
|
|
15
|
+
constructor(el, platformId, focusOnViewInit, document, renderer, ngZone) {
|
|
14
16
|
this.el = el;
|
|
15
17
|
this.platformId = platformId;
|
|
16
18
|
this.focusOnViewInit = focusOnViewInit;
|
|
17
19
|
this.renderer = renderer;
|
|
20
|
+
this.destroy$ = new Subject();
|
|
18
21
|
this.directFocus = true; // true if the element gets focused without need to set tabindex;
|
|
19
22
|
this._isEnabled = this.focusOnViewInit;
|
|
20
23
|
// Angular compiler doesn't understand the type Document
|
|
@@ -22,13 +25,15 @@ export class ClrFocusOnViewInit {
|
|
|
22
25
|
// even though it understands the injection token DOCUMENT
|
|
23
26
|
// https://github.com/angular/angular/issues/20351
|
|
24
27
|
this.document = document;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
ngZone.runOutsideAngular(() => fromEvent(el.nativeElement, 'focusout')
|
|
29
|
+
.pipe(takeUntil(this.destroy$))
|
|
30
|
+
.subscribe(() => {
|
|
31
|
+
if (!this.directFocus) {
|
|
32
|
+
// manually set attributes and styles should be removed
|
|
33
|
+
this.renderer.removeAttribute(this.el.nativeElement, 'tabindex');
|
|
34
|
+
this.renderer.setStyle(this.el.nativeElement, 'outline', null);
|
|
35
|
+
}
|
|
36
|
+
}));
|
|
32
37
|
}
|
|
33
38
|
set isEnabled(value) {
|
|
34
39
|
if (this.focusOnViewInit && typeof value === 'boolean') {
|
|
@@ -38,6 +43,9 @@ export class ClrFocusOnViewInit {
|
|
|
38
43
|
ngAfterViewInit() {
|
|
39
44
|
this.focus();
|
|
40
45
|
}
|
|
46
|
+
ngOnDestroy() {
|
|
47
|
+
this.destroy$.next();
|
|
48
|
+
}
|
|
41
49
|
focus() {
|
|
42
50
|
if (!isPlatformBrowser(this.platformId)) {
|
|
43
51
|
return;
|
|
@@ -58,8 +66,8 @@ export class ClrFocusOnViewInit {
|
|
|
58
66
|
}
|
|
59
67
|
}
|
|
60
68
|
}
|
|
61
|
-
ClrFocusOnViewInit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrFocusOnViewInit, deps: [{ token: i0.ElementRef }, { token: PLATFORM_ID }, { token: FOCUS_ON_VIEW_INIT }, { token: DOCUMENT }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
62
|
-
ClrFocusOnViewInit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrFocusOnViewInit, selector: "[clrFocusOnViewInit]", inputs: { isEnabled: ["clrFocusOnViewInit", "isEnabled"] },
|
|
69
|
+
ClrFocusOnViewInit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrFocusOnViewInit, deps: [{ token: i0.ElementRef }, { token: PLATFORM_ID }, { token: FOCUS_ON_VIEW_INIT }, { token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
70
|
+
ClrFocusOnViewInit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrFocusOnViewInit, selector: "[clrFocusOnViewInit]", inputs: { isEnabled: ["clrFocusOnViewInit", "isEnabled"] }, ngImport: i0 });
|
|
63
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrFocusOnViewInit, decorators: [{
|
|
64
72
|
type: Directive,
|
|
65
73
|
args: [{
|
|
@@ -74,11 +82,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
74
82
|
}] }, { type: undefined, decorators: [{
|
|
75
83
|
type: Inject,
|
|
76
84
|
args: [DOCUMENT]
|
|
77
|
-
}] }, { type: i0.Renderer2 }]; }, propDecorators: {
|
|
78
|
-
type: HostListener,
|
|
79
|
-
args: ['focusout']
|
|
80
|
-
}], isEnabled: [{
|
|
85
|
+
}] }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { isEnabled: [{
|
|
81
86
|
type: Input,
|
|
82
87
|
args: ['clrFocusOnViewInit']
|
|
83
88
|
}] } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtb24tdmlldy1pbml0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvZm9jdXMvZm9jdXMtb24tdmlldy1pbml0L2ZvY3VzLW9uLXZpZXctaW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFFTCxTQUFTLEVBRVQsTUFBTSxFQUNOLEtBQUssRUFHTCxXQUFXLEdBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUVuRTsyREFDMkQ7QUFJM0QsTUFBTSxPQUFPLGtCQUFrQjtJQUc3QixZQUNVLEVBQWMsRUFDTyxVQUFlLEVBQ1IsZUFBd0IsRUFDMUMsUUFBYSxFQUN2QixRQUFtQixFQUMzQixNQUFjO1FBTE4sT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNPLGVBQVUsR0FBVixVQUFVLENBQUs7UUFDUixvQkFBZSxHQUFmLGVBQWUsQ0FBUztRQUVwRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBUHJCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBZ0MvQixnQkFBVyxHQUFHLElBQUksQ0FBQyxDQUFDLGlFQUFpRTtRQXRCM0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBRXZDLHdEQUF3RDtRQUN4RCwyREFBMkQ7UUFDM0QsMERBQTBEO1FBQzFELGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUV6QixNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQzVCLFNBQVMsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQzthQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3JCLHVEQUF1RDtnQkFDdkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ2pFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUNoRTtRQUNILENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDSixDQUFDO0lBTUQsSUFDSSxTQUFTLENBQUMsS0FBdUI7UUFDbkMsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN0RCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxLQUFLO1FBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN2QyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixPQUFPO1NBQ1I7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUU7WUFDMUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRTtnQkFDekQsOEVBQThFO2dCQUM5RSxvQ0FBb0M7Z0JBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3BFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDakUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDL0I7U0FDRjtJQUNILENBQUM7OytHQXJFVSxrQkFBa0IsNENBS25CLFdBQVcsYUFDWCxrQkFBa0IsYUFDbEIsUUFBUTttR0FQUCxrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFIOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQzs7MEJBTUksTUFBTTsyQkFBQyxXQUFXOzswQkFDbEIsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUN6QixNQUFNOzJCQUFDLFFBQVE7eUZBOEJkLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBQTEFURk9STV9JRCxcbiAgUmVuZGVyZXIyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGT0NVU19PTl9WSUVXX0lOSVQgfSBmcm9tICcuL2ZvY3VzLW9uLXZpZXctaW5pdC5wcm92aWRlcic7XG5cbi8qICBUaGlzIGRpcmVjdGl2ZSBpcyBmb3IgZ3VpZGluZyB0aGUgZG9jdW1lbnQgZm9jdXMgdG8gdGhlIG5ld2x5IGFkZGVkIGNvbnRlbnQgd2hlbiBpdHMgdmlldyBpcyBpbml0aWFsaXplZFxuICAgIHNvIHRoYXQgYXNzaXN0aXZlIHRlY2hub2xvZ2llcyBjYW4gcmVhZCBpdHMgY29udGVudC4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjbHJGb2N1c09uVmlld0luaXRdJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRm9jdXNPblZpZXdJbml0IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSxcbiAgICBASW5qZWN0KEZPQ1VTX09OX1ZJRVdfSU5JVCkgcHJpdmF0ZSBmb2N1c09uVmlld0luaXQ6IGJvb2xlYW4sXG4gICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IGFueSxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgbmdab25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgdGhpcy5faXNFbmFibGVkID0gdGhpcy5mb2N1c09uVmlld0luaXQ7XG5cbiAgICAvLyBBbmd1bGFyIGNvbXBpbGVyIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGUgdHlwZSBEb2N1bWVudFxuICAgIC8vIHdoZW4gd29ya2luZyBvdXQgdGhlIG1ldGFkYXRhIGZvciBpbmplY3RhYmxlIHBhcmFtZXRlcnMsXG4gICAgLy8gZXZlbiB0aG91Z2ggaXQgdW5kZXJzdGFuZHMgdGhlIGluamVjdGlvbiB0b2tlbiBET0NVTUVOVFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzIwMzUxXG4gICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50O1xuXG4gICAgbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICBmcm9tRXZlbnQoZWwubmF0aXZlRWxlbWVudCwgJ2ZvY3Vzb3V0JylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMuZGlyZWN0Rm9jdXMpIHtcbiAgICAgICAgICAgIC8vIG1hbnVhbGx5IHNldCBhdHRyaWJ1dGVzIGFuZCBzdHlsZXMgc2hvdWxkIGJlIHJlbW92ZWRcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3RhYmluZGV4Jyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ291dGxpbmUnLCBudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50O1xuICBwcml2YXRlIGRpcmVjdEZvY3VzID0gdHJ1ZTsgLy8gdHJ1ZSBpZiB0aGUgZWxlbWVudCBnZXRzIGZvY3VzZWQgd2l0aG91dCBuZWVkIHRvIHNldCB0YWJpbmRleDtcblxuICBwcml2YXRlIF9pc0VuYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgnY2xyRm9jdXNPblZpZXdJbml0JylcbiAgc2V0IGlzRW5hYmxlZCh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZykge1xuICAgIGlmICh0aGlzLmZvY3VzT25WaWV3SW5pdCAmJiB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgdGhpcy5faXNFbmFibGVkID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuZm9jdXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1cygpIHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9pc0VuYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZG9jdW1lbnQgJiYgdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgaWYgKHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gdGhpcy5lbC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgIC8vIGlmIGl0J3Mgbm90IGRpcmVjdGx5IGZvY3VzZWQgbm93LCBpdCBtZWFucyBpdCB3YXMgYSBub24taW50ZXJhY3RpdmUgZWxlbWVudFxuICAgICAgICAvLyBzbyB3ZSBuZWVkIHRvIGdpdmUgaXQgYSB0YWJpbmRleC5cbiAgICAgICAgdGhpcy5kaXJlY3RGb2N1cyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd0YWJpbmRleCcsICctMScpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ291dGxpbmUnLCAnbm9uZScpO1xuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -99,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
99
99
|
type: Input,
|
|
100
100
|
args: ['clrRovingTabindexDisabled']
|
|
101
101
|
}] } });
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm92aW5nLXRhYmluZGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvZm9jdXMva2V5LWZvY3VzL3JvdmluZy10YWJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBeUIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQU8xQyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBVztJQUNoRCxZQUFZLFVBQXNCLEVBQVUsUUFBbUI7UUFDN0QsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRHdCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFjdkQsYUFBUSxHQUFHLEtBQUssQ0FBQztJQVp6QixDQUFDO0lBRUQsdUZBQXVGO0lBQ3ZGLElBQ0ksZ0JBQWdCLENBQUMsUUFBdUM7UUFDMUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFnQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUlELElBQ0ksc0JBQXNCLENBQUMsUUFBaUI7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFUSxtQkFBbUIsQ0FBQyxLQUFvQjtRQUMvQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFLEVBQUU7WUFDbkUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3ZDO2FBQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxFQUFFO1lBQ3pFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN2QzthQUFNLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEI7YUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFUSxxQkFBcUIsQ0FBQyxLQUFVO1FBQ3ZDLElBQUksUUFBZ0IsQ0FBQztRQUVyQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFO1lBQ3hDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3RGO2FBQU07WUFDTCxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3REO1FBRUQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMvQjtRQUNELEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRWtCLGVBQWU7UUFDaEMsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFO1lBQ3JELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1lBRUgsdUZBQXVGO1lBQ3ZGLHlFQUF5RTtZQUN6RSw2RUFBNkU7WUFDN0UsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFO2dCQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzthQUMvQztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN2QztTQUNGO1FBQ0QsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxjQUFjLENBQUMsUUFBZ0I7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTyxXQUFXLENBQUMsSUFBbUIsRUFBRSxLQUFhO1FBQ3BELElBQUksSUFBSSxZQUFZLFdBQVcsRUFBRTtZQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ2hFO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUM5RTtJQUNILENBQUM7OzhHQW5GVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiw0T0FGbEIsMkJBQTJCOzJGQUUxQixpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLDJCQUEyQjtpQkFDdEM7eUhBUUssZ0JBQWdCO3NCQURuQixLQUFLO3VCQUFDLG1CQUFtQjtnQkFZdEIsc0JBQXNCO3NCQUR6QixLQUFLO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEtleUNvZGVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZW51bXMva2V5LWNvZGVzLmVudW0nO1xuaW1wb3J0IHsgQ2xyS2V5Rm9jdXMgfSBmcm9tICcuL2tleS1mb2N1cyc7XG5pbXBvcnQgeyBGb2N1c2FibGVJdGVtIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW2NsclJvdmluZ1RhYmluZGV4XScsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG59KVxuZXhwb3J0IGNsYXNzIENsclJvdmluZ1RhYmluZGV4IGV4dGVuZHMgQ2xyS2V5Rm9jdXMge1xuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICBzdXBlcihlbGVtZW50UmVmKTtcbiAgfVxuXG4gIC8vIFByb3h5IHRoZSBpbnB1dCwgYXMgdGhlIHNlbGVjdG9yIG5hbWUgZnJvbSBwYXJlbnQgY2xhc3Mgd2lsbCBzdGlsbCBiZSBcImNscktleUZvY3VzXCIuXG4gIEBJbnB1dCgnY2xyUm92aW5nVGFiaW5kZXgnKVxuICBzZXQgcm92aW5nSW5kZXhJdGVtcyhlbGVtZW50czogQXJyYXk8Rm9jdXNhYmxlSXRlbT4gfCBzdHJpbmcpIHtcbiAgICB0aGlzLmZvY3VzYWJsZUl0ZW1zID0gZWxlbWVudHMgYXMgQXJyYXk8Rm9jdXNhYmxlSXRlbT47XG4gIH1cblxuICBnZXQgcm92aW5nSW5kZXhJdGVtcygpOiBBcnJheTxGb2N1c2FibGVJdGVtPiB8IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9jdXNhYmxlSXRlbXM7XG4gIH1cblxuICBwcml2YXRlIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCdjbHJSb3ZpbmdUYWJpbmRleERpc2FibGVkJylcbiAgc2V0IHJvdmluZ1RhYmluZGV4RGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgaWYgKHRoaXMuY3VycmVudEl0ZW0pIHtcbiAgICAgIHRoaXMuc2V0VGFiaW5kZXgodGhpcy5jdXJyZW50SXRlbSwgZGlzYWJsZWQgPyAtMSA6IDApO1xuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5wcmV2S2V5UHJlc3NlZChldmVudCkgJiYgdGhpcy5jdXJyZW50Rm9jdXNJc05vdEZpcnN0SXRlbSgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZVRhYmluZGV4KHRoaXMuY3VycmVudCAtIDEpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5uZXh0S2V5UHJlc3NlZChldmVudCkgJiYgdGhpcy5jdXJyZW50Rm9jdXNJc05vdExhc3RJdGVtKCkpIHtcbiAgICAgIHRoaXMudXBkYXRlVGFiaW5kZXgodGhpcy5jdXJyZW50ICsgMSk7XG4gICAgfSBlbHNlIGlmIChldmVudC5jb2RlID09PSBLZXlDb2Rlcy5Ib21lKSB7XG4gICAgICB0aGlzLnVwZGF0ZVRhYmluZGV4KDApO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuY29kZSA9PT0gS2V5Q29kZXMuRW5kKSB7XG4gICAgICB0aGlzLnVwZGF0ZVRhYmluZGV4KHRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RoIC0gMSk7XG4gICAgfVxuICAgIHN1cGVyLmhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQpO1xuICB9XG5cbiAgb3ZlcnJpZGUgc2V0Q2xpY2tlZEl0ZW1DdXJyZW50KGV2ZW50OiBhbnkpIHtcbiAgICBsZXQgcG9zaXRpb246IG51bWJlcjtcblxuICAgIGlmICh0aGlzLmZvY3VzYWJsZUl0ZW1zWzBdLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHBvc2l0aW9uID0gdGhpcy5mb2N1c2FibGVJdGVtcy5tYXAoaXRlbSA9PiBpdGVtLm5hdGl2ZUVsZW1lbnQpLmluZGV4T2YoZXZlbnQudGFyZ2V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcG9zaXRpb24gPSB0aGlzLmZvY3VzYWJsZUl0ZW1zLmluZGV4T2YoZXZlbnQudGFyZ2V0KTtcbiAgICB9XG5cbiAgICBpZiAocG9zaXRpb24gPiAtMSkge1xuICAgICAgdGhpcy51cGRhdGVUYWJpbmRleChwb3NpdGlvbik7XG4gICAgfVxuICAgIHN1cGVyLnNldENsaWNrZWRJdGVtQ3VycmVudChldmVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaW5pdGlhbGl6ZUZvY3VzKCkge1xuICAgIGlmICh0aGlzLmZvY3VzYWJsZUl0ZW1zICYmIHRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZvY3VzYWJsZUl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIHRoaXMuc2V0VGFiaW5kZXgoaXRlbSwgLTEpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGZvY3VzIHdhcyBvbiBhbiBlbGVtZW50LCB3aG9zZSBpbmRleCBpcyBubyBsb25nZXIgYXZhaWxhYmxlLlxuICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIHdoZW4gc29tZSBvZiB0aGUgZm9jdXNhYmxlIGVsZW1lbnRzIGFyZSBiZWluZyByZW1vdmVkLlxuICAgICAgLy8gSW4gc3VjaCBjYXNlcywgdGhlIG5ldyBmb2N1cyBpcyBpbml0aWFsaXplZCBvbiB0aGUgbGFzdCBmb2N1c2FibGUgZWxlbWVudC5cbiAgICAgIGlmICh0aGlzLmN1cnJlbnQgPj0gdGhpcy5mb2N1c2FibGVJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gdGhpcy5mb2N1c2FibGVJdGVtcy5sZW5ndGggLSAxO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmRpc2FibGVkICYmIHRoaXMuY3VycmVudEl0ZW0pIHtcbiAgICAgICAgdGhpcy5zZXRUYWJpbmRleCh0aGlzLmN1cnJlbnRJdGVtLCAwKTtcbiAgICAgIH1cbiAgICB9XG4gICAgc3VwZXIuaW5pdGlhbGl6ZUZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVRhYmluZGV4KG5ld0luZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFRhYmluZGV4KHRoaXMuY3VycmVudEl0ZW0sIC0xKTtcbiAgICB0aGlzLnNldFRhYmluZGV4KHRoaXMuZm9jdXNhYmxlSXRlbXNbbmV3SW5kZXhdLCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGFiaW5kZXgoaXRlbTogRm9jdXNhYmxlSXRlbSwgdmFsdWU6IG51bWJlcikge1xuICAgIGlmIChpdGVtIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGl0ZW0sICd0YWJpbmRleCcsIHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShpdGVtLm5hdGl2ZUVsZW1lbnQsICd0YWJpbmRleCcsIHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -39,4 +39,9 @@ export function preventArrowKeyScroll(event) {
|
|
|
39
39
|
event.preventDefault();
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
|
|
42
|
+
export function isKeyEitherLetterOrNumber(event) {
|
|
43
|
+
const char = event.key;
|
|
44
|
+
// Only letter characters differ when they switch between lowercase and uppercase, whether it's an English or non-English letter.
|
|
45
|
+
return char.toLowerCase() !== char.toUpperCase() || (char >= '0' && char <= '9');
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL2ZvY3VzL2tleS1mb2N1cy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXBFLE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBVztJQUN0QyxJQUFJLEdBQUcsS0FBSyxRQUFRLENBQUMsT0FBTyxJQUFJLEdBQUcsS0FBSyxVQUFVLENBQUMsT0FBTyxFQUFFO1FBQzFELE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQztLQUN6QjtTQUFNLElBQUksR0FBRyxLQUFLLFFBQVEsQ0FBQyxTQUFTLElBQUksR0FBRyxLQUFLLFVBQVUsQ0FBQyxTQUFTLEVBQUU7UUFDckUsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDO0tBQzNCO1NBQU0sSUFBSSxHQUFHLEtBQUssUUFBUSxDQUFDLFVBQVUsSUFBSSxHQUFHLEtBQUssVUFBVSxDQUFDLFVBQVUsRUFBRTtRQUN2RSxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUM7S0FDNUI7U0FBTSxJQUFJLEdBQUcsS0FBSyxRQUFRLENBQUMsU0FBUyxJQUFJLEdBQUcsS0FBSyxVQUFVLENBQUMsU0FBUyxFQUFFO1FBQ3JFLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQztLQUMzQjtTQUFNLElBQUksR0FBRyxLQUFLLFFBQVEsQ0FBQyxLQUFLLElBQUksR0FBRyxLQUFLLFVBQVUsQ0FBQyxLQUFLLEVBQUU7UUFDN0QsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDO0tBQ3ZCO1NBQU0sSUFBSSxHQUFHLEtBQUssUUFBUSxDQUFDLE1BQU0sSUFBSSxHQUFHLEtBQUssVUFBVSxDQUFDLE1BQU0sRUFBRTtRQUMvRCxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUM7S0FDeEI7U0FBTTtRQUNMLE9BQU8sR0FBRyxDQUFDO0tBQ1o7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEtBQW9CO0lBQ3hELE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFekMsSUFDRSxRQUFRLEtBQUssUUFBUSxDQUFDLE9BQU87UUFDN0IsUUFBUSxLQUFLLFFBQVEsQ0FBQyxTQUFTO1FBQy9CLFFBQVEsS0FBSyxRQUFRLENBQUMsU0FBUztRQUMvQixRQUFRLEtBQUssUUFBUSxDQUFDLFVBQVUsRUFDaEM7UUFDQSxtQ0FBbUM7UUFDbkMsb0ZBQW9GO1FBQ3BGLG1HQUFtRztRQUNuRyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7S0FDeEI7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLEtBQW9CO0lBQzVELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDdkIsaUlBQWlJO0lBQ2pJLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0FBQ25GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEtleUNvZGVzLCBJRUtleUNvZGVzIH0gZnJvbSAnLi8uLi8uLi9lbnVtcy9rZXktY29kZXMuZW51bSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBrZXlWYWxpZGF0b3Ioa2V5OiBzdHJpbmcpIHtcbiAgaWYgKGtleSA9PT0gS2V5Q29kZXMuQXJyb3dVcCB8fCBrZXkgPT09IElFS2V5Q29kZXMuQXJyb3dVcCkge1xuICAgIHJldHVybiBLZXlDb2Rlcy5BcnJvd1VwO1xuICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5Q29kZXMuQXJyb3dEb3duIHx8IGtleSA9PT0gSUVLZXlDb2Rlcy5BcnJvd0Rvd24pIHtcbiAgICByZXR1cm4gS2V5Q29kZXMuQXJyb3dEb3duO1xuICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5Q29kZXMuQXJyb3dSaWdodCB8fCBrZXkgPT09IElFS2V5Q29kZXMuQXJyb3dSaWdodCkge1xuICAgIHJldHVybiBLZXlDb2Rlcy5BcnJvd1JpZ2h0O1xuICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5Q29kZXMuQXJyb3dMZWZ0IHx8IGtleSA9PT0gSUVLZXlDb2Rlcy5BcnJvd0xlZnQpIHtcbiAgICByZXR1cm4gS2V5Q29kZXMuQXJyb3dMZWZ0O1xuICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5Q29kZXMuU3BhY2UgfHwga2V5ID09PSBJRUtleUNvZGVzLlNwYWNlKSB7XG4gICAgcmV0dXJuIEtleUNvZGVzLlNwYWNlO1xuICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5Q29kZXMuRXNjYXBlIHx8IGtleSA9PT0gSUVLZXlDb2Rlcy5Fc2NhcGUpIHtcbiAgICByZXR1cm4gS2V5Q29kZXMuRXNjYXBlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBrZXk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXZlbnRBcnJvd0tleVNjcm9sbChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICBjb25zdCB2YWxpZEtleSA9IGtleVZhbGlkYXRvcihldmVudC5rZXkpO1xuXG4gIGlmIChcbiAgICB2YWxpZEtleSA9PT0gS2V5Q29kZXMuQXJyb3dVcCB8fFxuICAgIHZhbGlkS2V5ID09PSBLZXlDb2Rlcy5BcnJvd0Rvd24gfHxcbiAgICB2YWxpZEtleSA9PT0gS2V5Q29kZXMuQXJyb3dMZWZ0IHx8XG4gICAgdmFsaWRLZXkgPT09IEtleUNvZGVzLkFycm93UmlnaHRcbiAgKSB7XG4gICAgLy8gcHJldmVudCBlbGVtZW50IGNvbnRhaW5lciBzY3JvbGxcbiAgICAvLyBNRE4gcmVmZXJlbmNlcyB0aGlzIGlzIHJlYWxseSB0aGUgb25seSB3YXkgdG8gcHJldmVudCBuYXRpdmUgYnJvd3NlciBpbnRlcmFjdGlvbnNcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BY2Nlc3NpYmlsaXR5L0tleWJvYXJkLW5hdmlnYWJsZV9KYXZhU2NyaXB0X3dpZGdldHNcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0tleUVpdGhlckxldHRlck9yTnVtYmVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gIGNvbnN0IGNoYXIgPSBldmVudC5rZXk7XG4gIC8vIE9ubHkgbGV0dGVyIGNoYXJhY3RlcnMgZGlmZmVyIHdoZW4gdGhleSBzd2l0Y2ggYmV0d2VlbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSwgd2hldGhlciBpdCdzIGFuIEVuZ2xpc2ggb3Igbm9uLUVuZ2xpc2ggbGV0dGVyLlxuICByZXR1cm4gY2hhci50b0xvd2VyQ2FzZSgpICE9PSBjaGFyLnRvVXBwZXJDYXNlKCkgfHwgKGNoYXIgPj0gJzAnICYmIGNoYXIgPD0gJzknKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
3
|
+
* This software is released under MIT license.
|
|
4
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
+
*/
|
|
6
|
+
import { createId, FocusTrapTrackerService, isFocusable, isHTMLElement } from '@cds/core/internal';
|
|
7
|
+
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
8
|
+
import { Injectable } from '@angular/core';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export function refocusIfOutsideFocusTrapElement(focusedElement, focusTrapElement, elementToRefocus) {
|
|
11
|
+
const focusTrapIsCurrent = FocusTrapTrackerService.getCurrent() === focusTrapElement;
|
|
12
|
+
const elementToFocusIsOutsideFocusTrap = elementIsOutsideFocusTrapElement(focusedElement, focusTrapElement);
|
|
13
|
+
if (focusTrapIsCurrent && elementToFocusIsOutsideFocusTrap) {
|
|
14
|
+
elementToRefocus = elementToRefocus || focusTrapElement;
|
|
15
|
+
elementToRefocus.focus();
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
focusedElement.focus();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export function elementIsOutsideFocusTrapElement(focusedElement, focusTrapElement) {
|
|
22
|
+
if (focusedElement === focusTrapElement.topReboundElement ||
|
|
23
|
+
focusedElement === focusTrapElement.bottomReboundElement) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
const elementIsInFocusTrapLightDom = focusTrapElement.contains(focusedElement);
|
|
27
|
+
if (elementIsInFocusTrapLightDom) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
if (focusTrapElement !== null && focusTrapElement.contains(focusedElement)) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
export function createFocusTrapReboundElement(document) {
|
|
36
|
+
const offScreenSpan = document.createElement('span');
|
|
37
|
+
offScreenSpan.setAttribute('tabindex', '0');
|
|
38
|
+
offScreenSpan.classList.add('offscreen-focus-rebounder');
|
|
39
|
+
return offScreenSpan;
|
|
40
|
+
}
|
|
41
|
+
export function addReboundElementsToFocusTrapElement(document, focusTrapElement) {
|
|
42
|
+
if (focusTrapElement && !focusTrapElement.topReboundElement && !focusTrapElement.bottomReboundElement) {
|
|
43
|
+
focusTrapElement.topReboundElement = createFocusTrapReboundElement(document);
|
|
44
|
+
focusTrapElement.bottomReboundElement = createFocusTrapReboundElement(document);
|
|
45
|
+
const parent = focusTrapElement.parentElement;
|
|
46
|
+
const sibling = focusTrapElement.nextSibling;
|
|
47
|
+
if (parent) {
|
|
48
|
+
parent.insertBefore(focusTrapElement.topReboundElement, focusTrapElement);
|
|
49
|
+
if (sibling) {
|
|
50
|
+
parent.insertBefore(focusTrapElement.bottomReboundElement, sibling);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
parent.appendChild(focusTrapElement.bottomReboundElement);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export function removeReboundElementsFromFocusTrapElement(focusTrapElement) {
|
|
59
|
+
if (focusTrapElement) {
|
|
60
|
+
const parent = focusTrapElement.parentElement;
|
|
61
|
+
if (parent) {
|
|
62
|
+
const topRebound = focusTrapElement.topReboundElement;
|
|
63
|
+
const bottomRebound = focusTrapElement.bottomReboundElement;
|
|
64
|
+
if (topRebound) {
|
|
65
|
+
parent.removeChild(topRebound);
|
|
66
|
+
}
|
|
67
|
+
if (bottomRebound) {
|
|
68
|
+
parent.removeChild(bottomRebound);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// These are here to to make sure that we completely delete all traces of the removed DOM objects.
|
|
72
|
+
delete focusTrapElement.topReboundElement;
|
|
73
|
+
delete focusTrapElement.bottomReboundElement;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// this helper exists to enable the focus trap class to handle vanilla html elements
|
|
77
|
+
// it's primary concern is to keep TS happy.
|
|
78
|
+
export function castHtmlElementToFocusTrapElement(el) {
|
|
79
|
+
return el;
|
|
80
|
+
}
|
|
81
|
+
export class FocusTrap {
|
|
82
|
+
constructor(renderer, injector, platformId, hostElement) {
|
|
83
|
+
this.renderer = renderer;
|
|
84
|
+
this.active = false;
|
|
85
|
+
if (isPlatformBrowser(platformId)) {
|
|
86
|
+
this._document = injector.get(DOCUMENT);
|
|
87
|
+
}
|
|
88
|
+
hostElement = castHtmlElementToFocusTrapElement(hostElement);
|
|
89
|
+
if (!hostElement.focusTrapId) {
|
|
90
|
+
hostElement.focusTrapId = createId();
|
|
91
|
+
}
|
|
92
|
+
this.focusTrapElement = hostElement;
|
|
93
|
+
}
|
|
94
|
+
enableFocusTrap() {
|
|
95
|
+
const fte = this.focusTrapElement;
|
|
96
|
+
const firstFocusElement = fte.querySelector('[cds-first-focus]');
|
|
97
|
+
const activeEl = this._document.activeElement;
|
|
98
|
+
if (FocusTrapTrackerService.getCurrent() === fte) {
|
|
99
|
+
throw new Error('Focus trap is already enabled for this instance.');
|
|
100
|
+
}
|
|
101
|
+
this.firstFocusElement = firstFocusElement || this.focusTrapElement;
|
|
102
|
+
addReboundElementsToFocusTrapElement(this._document, fte);
|
|
103
|
+
if (!isFocusable(fte)) {
|
|
104
|
+
fte.setAttribute('tabindex', '-1');
|
|
105
|
+
}
|
|
106
|
+
if (activeEl && isHTMLElement(activeEl)) {
|
|
107
|
+
this.previousFocus = activeEl;
|
|
108
|
+
}
|
|
109
|
+
FocusTrapTrackerService.setCurrent(fte);
|
|
110
|
+
// setTimeout here is required for Safari which may try to set focus on
|
|
111
|
+
// element before it is visible...
|
|
112
|
+
const focusTimer = setTimeout(() => {
|
|
113
|
+
this.firstFocusElement.focus();
|
|
114
|
+
clearTimeout(focusTimer);
|
|
115
|
+
}, 10);
|
|
116
|
+
this.onFocusInEvent = this.onFocusIn.bind(this);
|
|
117
|
+
this.unlisten = this.renderer.listen(this._document, 'focusin', this.onFocusInEvent);
|
|
118
|
+
this.active = true;
|
|
119
|
+
}
|
|
120
|
+
removeFocusTrap() {
|
|
121
|
+
if (this.unlisten) {
|
|
122
|
+
this.unlisten();
|
|
123
|
+
}
|
|
124
|
+
removeReboundElementsFromFocusTrapElement(this.focusTrapElement);
|
|
125
|
+
this.renderer.removeAttribute(this.focusTrapElement, 'tabindex');
|
|
126
|
+
FocusTrapTrackerService.activatePreviousCurrent();
|
|
127
|
+
this.active = false;
|
|
128
|
+
if (this.previousFocus) {
|
|
129
|
+
this.previousFocus.focus();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
onFocusIn(event) {
|
|
133
|
+
refocusIfOutsideFocusTrapElement(event.composedPath()[0], this.focusTrapElement, this.firstFocusElement);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
FocusTrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FocusTrap, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
|
|
137
|
+
FocusTrap.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FocusTrap });
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FocusTrap, decorators: [{
|
|
139
|
+
type: Injectable
|
|
140
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.Injector }, { type: undefined }, { type: undefined }]; } });
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL2ZvY3VzLXRyYXAvZm9jdXMtdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkcsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQXVCLE1BQU0sZUFBZSxDQUFDOztBQVFoRSxNQUFNLFVBQVUsZ0NBQWdDLENBQzlDLGNBQTJCLEVBQzNCLGdCQUFrQyxFQUNsQyxnQkFBOEI7SUFFOUIsTUFBTSxrQkFBa0IsR0FBRyx1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsS0FBSyxnQkFBZ0IsQ0FBQztJQUNyRixNQUFNLGdDQUFnQyxHQUFHLGdDQUFnQyxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTVHLElBQUksa0JBQWtCLElBQUksZ0NBQWdDLEVBQUU7UUFDMUQsZ0JBQWdCLEdBQUcsZ0JBQWdCLElBQUksZ0JBQWdCLENBQUM7UUFDeEQsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7S0FDMUI7U0FBTTtRQUNMLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZ0NBQWdDLENBQzlDLGNBQTJCLEVBQzNCLGdCQUFrQztJQUVsQyxJQUNFLGNBQWMsS0FBSyxnQkFBZ0IsQ0FBQyxpQkFBaUI7UUFDckQsY0FBYyxLQUFLLGdCQUFnQixDQUFDLG9CQUFvQixFQUN4RDtRQUNBLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLDRCQUE0QixHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMs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QUFDLENBQUM7UUFFUCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtRQUVELHlDQUF5QyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNqRSx1QkFBdUIsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxLQUFpQjtRQUNqQyxnQ0FBZ0MsQ0FDOUIsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBZ0IsRUFDdEMsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQ3ZCLENBQUM7SUFDSixDQUFDOztzR0FqRlUsU0FBUzswR0FBVCxTQUFTOzJGQUFULFNBQVM7a0JBRHJCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IGNyZWF0ZUlkLCBGb2N1c1RyYXBUcmFja2VyU2VydmljZSwgaXNGb2N1c2FibGUsIGlzSFRNTEVsZW1lbnQgfSBmcm9tICdAY2RzL2NvcmUvaW50ZXJuYWwnO1xuaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBGb2N1c1RyYXBFbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQge1xuICB0b3BSZWJvdW5kRWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gIGJvdHRvbVJlYm91bmRFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgZm9jdXNUcmFwSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZm9jdXNJZk91dHNpZGVGb2N1c1RyYXBFbGVtZW50KFxuICBmb2N1c2VkRWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGZvY3VzVHJhcEVsZW1lbnQ6IEZvY3VzVHJhcEVsZW1lbnQsXG4gIGVsZW1lbnRUb1JlZm9jdXM/OiBIVE1MRWxlbWVudFxuKSB7XG4gIGNvbnN0IGZvY3VzVHJhcElzQ3VycmVudCA9IEZvY3VzVHJhcFRyYWNrZXJTZXJ2aWNlLmdldEN1cnJlbnQoKSA9PT0gZm9jdXNUcmFwRWxlbWVudDtcbiAgY29uc3QgZWxlbWVudFRvRm9jdXNJc091dHNpZGVGb2N1c1RyYXAgPSBlbGVtZW50SXNPdXRzaWRlRm9jdXNUcmFwRWxlbWVudChmb2N1c2VkRWxlbWVudCwgZm9jdXNUcmFwRWxlbWVudCk7XG5cbiAgaWYgKGZvY3VzVHJhcElzQ3VycmVudCAmJiBlbGVtZW50VG9Gb2N1c0lzT3V0c2lkZUZvY3VzVHJhcCkge1xuICAgIGVsZW1lbnRUb1JlZm9jdXMgPSBlbGVtZW50VG9SZWZvY3VzIHx8IGZvY3VzVHJhcEVsZW1lbnQ7XG4gICAgZWxlbWVudFRvUmVmb2N1cy5mb2N1cygpO1xuICB9IGVsc2Uge1xuICAgIGZvY3VzZWRFbGVtZW50LmZvY3VzKCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVsZW1lbnRJc091dHNpZGVGb2N1c1RyYXBFbGVtZW50KFxuICBmb2N1c2VkRWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGZvY3VzVHJhcEVsZW1lbnQ6IEZvY3VzVHJhcEVsZW1lbnRcbik6IGJvb2xlYW4ge1xuICBpZiAoXG4gICAgZm9jdXNlZEVsZW1lbnQgPT09IGZvY3VzVHJhcEVsZW1lbnQudG9wUmVib3VuZEVsZW1lbnQgfHxcbiAgICBmb2N1c2VkRWxlbWVudCA9PT0gZm9jdXNUcmFwRWxlbWVudC5ib3R0b21SZWJvdW5kRWxlbWVudFxuICApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IGVsZW1lbnRJc0luRm9jdXNUcmFwTGlnaHREb20gPSBmb2N1c1RyYXBFbGVtZW50LmNvbnRhaW5zKGZvY3VzZWRFbGVtZW50KTtcblxuICBpZiAoZWxlbWVudElzSW5Gb2N1c1RyYXBMaWdodERvbSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChmb2N1c1RyYXBFbGVtZW50ICE9PSBudWxsICYmIGZvY3VzVHJhcEVsZW1lbnQuY29udGFpbnMoZm9jdXNlZEVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb2N1c1RyYXBSZWJvdW5kRWxlbWVudChkb2N1bWVudDogRG9jdW1lbnQpIHtcbiAgY29uc3Qgb2ZmU2NyZWVuU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgb2ZmU2NyZWVuU3Bhbi5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgb2ZmU2NyZWVuU3Bhbi5jbGFzc0xpc3QuYWRkKCdvZmZzY3JlZW4tZm9jdXMtcmVib3VuZGVyJyk7XG4gIHJldHVybiBvZmZTY3JlZW5TcGFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkUmVib3VuZEVsZW1lbnRzVG9Gb2N1c1RyYXBFbGVtZW50KGRvY3VtZW50OiBEb2N1bWVudCwgZm9jdXNUcmFwRWxlbWVudDogRm9jdXNUcmFwRWxlbWVudCkge1xuICBpZiAoZm9jdXNUcmFwRWxlbWVudCAmJiAhZm9jdXNUcmFwRWxlbWVudC50b3BSZWJvdW5kRWxlbWVudCAmJiAhZm9jdXNUcmFwRWxlbWVudC5ib3R0b21SZWJvdW5kRWxlbWVudCkge1xuICAgIGZvY3VzVHJhcEVsZW1lbnQudG9wUmVib3VuZEVsZW1lbnQgPSBjcmVhdGVGb2N1c1RyYXBSZWJvdW5kRWxlbWVudChkb2N1bWVudCk7XG4gICAgZm9jdXNUcmFwRWxlbWVudC5ib3R0b21SZWJvdW5kRWxlbWVudCA9IGNyZWF0ZUZvY3VzVHJhcFJlYm91bmRFbGVtZW50KGRvY3VtZW50KTtcblxuICAgIGNvbnN0IHBhcmVudCA9IGZvY3VzVHJhcEVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICBjb25zdCBzaWJsaW5nID0gZm9jdXNUcmFwRWxlbWVudC5uZXh0U2libGluZztcblxuICAgIGlmIChwYXJlbnQpIHtcbiAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoZm9jdXNUcmFwRWxlbWVudC50b3BSZWJvdW5kRWxlbWVudCwgZm9jdXNUcmFwRWxlbWVudCk7XG4gICAgICBpZiAoc2libGluZykge1xuICAgICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKGZvY3VzVHJhcEVsZW1lbnQuYm90dG9tUmVib3VuZEVsZW1lbnQsIHNpYmxpbmcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKGZvY3VzVHJhcEVsZW1lbnQuYm90dG9tUmVib3VuZEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUmVib3VuZEVsZW1lbnRzRnJvbUZvY3VzVHJhcEVsZW1lbnQoZm9jdXNUcmFwRWxlbWVudDogRm9jdXNUcmFwRWxlbWVudCkge1xuICBpZiAoZm9jdXNUcmFwRWxlbWVudCkge1xuICAgIGNvbnN0IHBhcmVudCA9IGZvY3VzVHJhcEVsZW1lbnQucGFyZW50RWxlbWVudDtcblxuICAgIGlmIChwYXJlbnQpIHtcbiAgICAgIGNvbnN0IHRvcFJlYm91bmQgPSBmb2N1c1RyYXBFbGVtZW50LnRvcFJlYm91bmRFbGVtZW50O1xuICAgICAgY29uc3QgYm90dG9tUmVib3VuZCA9IGZvY3VzVHJhcEVsZW1lbnQuYm90dG9tUmVib3VuZEVsZW1lbnQ7XG4gICAgICBpZiAodG9wUmVib3VuZCkge1xuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodG9wUmVib3VuZCk7XG4gICAgICB9XG4gICAgICBpZiAoYm90dG9tUmVib3VuZCkge1xuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQoYm90dG9tUmVib3VuZCk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFRoZXNlIGFyZSBoZXJlIHRvIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIGNvbXBsZXRlbHkgZGVsZXRlIGFsbCB0cmFjZXMgb2YgdGhlIHJlbW92ZWQgRE9NIG9iamVjdHMuXG4gICAgZGVsZXRlIGZvY3VzVHJhcEVsZW1lbnQudG9wUmVib3VuZEVsZW1lbnQ7XG4gICAgZGVsZXRlIGZvY3VzVHJhcEVsZW1lbnQuYm90dG9tUmVib3VuZEVsZW1lbnQ7XG4gIH1cbn1cblxuLy8gdGhpcyBoZWxwZXIgZXhpc3RzIHRvIGVuYWJsZSB0aGUgZm9jdXMgdHJhcCBjbGFzcyB0byBoYW5kbGUgdmFuaWxsYSBodG1sIGVsZW1lbnRzXG4vLyBpdCdzIHByaW1hcnkgY29uY2VybiBpcyB0byBrZWVwIFRTIGhhcHB5LlxuZXhwb3J0IGZ1bmN0aW9uIGNhc3RIdG1sRWxlbWVudFRvRm9jdXNUcmFwRWxlbWVudChlbDogSFRNTEVsZW1lbnQpOiBGb2N1c1RyYXBFbGVtZW50IHtcbiAgcmV0dXJuIGVsIGFzIEZvY3VzVHJhcEVsZW1lbnQ7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGb2N1c1RyYXAge1xuICBmb2N1c1RyYXBFbGVtZW50OiBGb2N1c1RyYXBFbGVtZW50O1xuICBwcml2YXRlIHByZXZpb3VzRm9jdXM6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIG9uRm9jdXNJbkV2ZW50OiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIHVubGlzdGVuOiAoKSA9PiB2b2lkO1xuXG4gIHByb3RlY3RlZCBfZG9jdW1lbnQ6IERvY3VtZW50O1xuXG4gIGZpcnN0Rm9jdXNFbGVtZW50OiBIVE1MRWxlbWVudCB8IEZvY3VzVHJhcEVsZW1lbnQ7XG5cbiAgYWN0aXZlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsIGluamVjdG9yOiBJbmplY3RvciwgcGxhdGZvcm1JZDogYW55LCBob3N0RWxlbWVudDogRm9jdXNUcmFwRWxlbWVudCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5fZG9jdW1lbnQgPSBpbmplY3Rvci5nZXQoRE9DVU1FTlQpO1xuICAgIH1cblxuICAgIGhvc3RFbGVtZW50ID0gY2FzdEh0bWxFbGVtZW50VG9Gb2N1c1RyYXBFbGVtZW50KGhvc3RFbGVtZW50KTtcblxuICAgIGlmICghaG9zdEVsZW1lbnQuZm9jdXNUcmFwSWQpIHtcbiAgICAgIGhvc3RFbGVtZW50LmZvY3VzVHJhcElkID0gY3JlYXRlSWQoKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvY3VzVHJhcEVsZW1lbnQgPSBob3N0RWxlbWVudDtcbiAgfVxuXG4gIGVuYWJsZUZvY3VzVHJhcCgpIHtcbiAgICBjb25zdCBmdGUgPSB0aGlzLmZvY3VzVHJhcEVsZW1lbnQ7XG4gICAgY29uc3QgZmlyc3RGb2N1c0VsZW1lbnQgPSBmdGUucXVlcnlTZWxlY3RvcignW2Nkcy1maXJzdC1mb2N1c10nKTtcbiAgICBjb25zdCBhY3RpdmVFbCA9IHRoaXMuX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAoRm9jdXNUcmFwVHJhY2tlclNlcnZpY2UuZ2V0Q3VycmVudCgpID09PSBmdGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRm9jdXMgdHJhcCBpcyBhbHJlYWR5IGVuYWJsZWQgZm9yIHRoaXMgaW5zdGFuY2UuJyk7XG4gICAgfVxuXG4gICAgdGhpcy5maXJzdEZvY3VzRWxlbWVudCA9IChmaXJzdEZvY3VzRWxlbWVudCBhcyBIVE1MRWxlbWVudCkgfHwgdGhpcy5mb2N1c1RyYXBFbGVtZW50O1xuXG4gICAgYWRkUmVib3VuZEVsZW1lbnRzVG9Gb2N1c1RyYXBFbGVtZW50KHRoaXMuX2RvY3VtZW50LCBmdGUpO1xuXG4gICAgaWYgKCFpc0ZvY3VzYWJsZShmdGUpKSB7XG4gICAgICBmdGUuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuICAgIH1cblxuICAgIGlmIChhY3RpdmVFbCAmJiBpc0hUTUxFbGVtZW50KGFjdGl2ZUVsKSkge1xuICAgICAgdGhpcy5wcmV2aW91c0ZvY3VzID0gYWN0aXZlRWwgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgRm9jdXNUcmFwVHJhY2tlclNlcnZpY2Uuc2V0Q3VycmVudChmdGUpO1xuXG4gICAgLy8gc2V0VGltZW91dCBoZXJlIGlzIHJlcXVpcmVkIGZvciBTYWZhcmkgd2hpY2ggbWF5IHRyeSB0byBzZXQgZm9jdXMgb25cbiAgICAvLyBlbGVtZW50IGJlZm9yZSBpdCBpcyB2aXNpYmxlLi4uXG4gICAgY29uc3QgZm9jdXNUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5maXJzdEZvY3VzRWxlbWVudC5mb2N1cygpO1xuICAgICAgY2xlYXJUaW1lb3V0KGZvY3VzVGltZXIpO1xuICAgIH0sIDEwKTtcblxuICAgIHRoaXMub25Gb2N1c0luRXZlbnQgPSB0aGlzLm9uRm9jdXNJbi5iaW5kKHRoaXMpO1xuICAgIHRoaXMudW5saXN0ZW4gPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLl9kb2N1bWVudCwgJ2ZvY3VzaW4nLCB0aGlzLm9uRm9jdXNJbkV2ZW50KTtcbiAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gIH1cblxuICByZW1vdmVGb2N1c1RyYXAoKSB7XG4gICAgaWYgKHRoaXMudW5saXN0ZW4pIHtcbiAgICAgIHRoaXMudW5saXN0ZW4oKTtcbiAgICB9XG5cbiAgICByZW1vdmVSZWJvdW5kRWxlbWVudHNGcm9tRm9jdXNUcmFwRWxlbWVudCh0aGlzLmZvY3VzVHJhcEVsZW1lbnQpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZm9jdXNUcmFwRWxlbWVudCwgJ3RhYmluZGV4Jyk7XG4gICAgRm9jdXNUcmFwVHJhY2tlclNlcnZpY2UuYWN0aXZhdGVQcmV2aW91c0N1cnJlbnQoKTtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgIGlmICh0aGlzLnByZXZpb3VzRm9jdXMpIHtcbiAgICAgIHRoaXMucHJldmlvdXNGb2N1cy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Gb2N1c0luKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgcmVmb2N1c0lmT3V0c2lkZUZvY3VzVHJhcEVsZW1lbnQoXG4gICAgICBldmVudC5jb21wb3NlZFBhdGgoKVswXSBhcyBIVE1MRWxlbWVudCxcbiAgICAgIHRoaXMuZm9jdXNUcmFwRWxlbWVudCxcbiAgICAgIHRoaXMuZmlyc3RGb2N1c0VsZW1lbnRcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
3
|
+
* This software is released under MIT license.
|
|
4
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
+
*/
|
|
6
|
+
import { Directive, Input } from '@angular/core';
|
|
7
|
+
import { ForTypeAheadProvider } from './for-type-ahead.service';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "./for-type-ahead.service";
|
|
10
|
+
// The purpose of this directive is to provide the text content of its host element
|
|
11
|
+
// or text content that's passed to its input.
|
|
12
|
+
// This directive must stay optional. So do not embed this directive in a component module by default.
|
|
13
|
+
// If users need to use this directive, they should import its module on their side.
|
|
14
|
+
export class ClrForTypeAhead {
|
|
15
|
+
constructor(el, forTypeAheadProvider) {
|
|
16
|
+
this.el = el;
|
|
17
|
+
this.forTypeAheadProvider = forTypeAheadProvider;
|
|
18
|
+
}
|
|
19
|
+
trimAndLowerCase(value) {
|
|
20
|
+
return value.toLocaleLowerCase().trim();
|
|
21
|
+
}
|
|
22
|
+
get content() {
|
|
23
|
+
return this._content;
|
|
24
|
+
}
|
|
25
|
+
set content(value) {
|
|
26
|
+
if (value) {
|
|
27
|
+
this._content = this.trimAndLowerCase(value);
|
|
28
|
+
this.forTypeAheadProvider.textContent = this._content;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
this._content = this.trimAndLowerCase(this.el.nativeElement.textContent);
|
|
32
|
+
this.forTypeAheadProvider.textContent = this._content;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
ngOnInit() {
|
|
36
|
+
if (!this._content) {
|
|
37
|
+
this._content = this.trimAndLowerCase(this.el.nativeElement.textContent);
|
|
38
|
+
this.forTypeAheadProvider.textContent = this._content;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
ClrForTypeAhead.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrForTypeAhead, deps: [{ token: i0.ElementRef }, { token: i1.ForTypeAheadProvider }], target: i0.ɵɵFactoryTarget.Directive });
|
|
43
|
+
ClrForTypeAhead.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrForTypeAhead, selector: "[clrForTypeAhead]", inputs: { content: ["clrForTypeAhead", "content"] }, providers: [ForTypeAheadProvider], ngImport: i0 });
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrForTypeAhead, decorators: [{
|
|
45
|
+
type: Directive,
|
|
46
|
+
args: [{
|
|
47
|
+
providers: [ForTypeAheadProvider],
|
|
48
|
+
selector: '[clrForTypeAhead]',
|
|
49
|
+
}]
|
|
50
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ForTypeAheadProvider }]; }, propDecorators: { content: [{
|
|
51
|
+
type: Input,
|
|
52
|
+
args: ['clrForTypeAhead']
|
|
53
|
+
}] } });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLXR5cGUtYWhlYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91dGlscy9mb3ItdHlwZS1haGVhZC9mb3ItdHlwZS1haGVhZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQUVoRSxtRkFBbUY7QUFDbkYsOENBQThDO0FBRTlDLHNHQUFzRztBQUN0RyxvRkFBb0Y7QUFNcEYsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFBb0IsRUFBYyxFQUFVLG9CQUEwQztRQUFsRSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtJQUFHLENBQUM7SUFFbEYsZ0JBQWdCLENBQUMsS0FBYTtRQUNwQyxPQUFPLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFJRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQThCLE9BQU8sQ0FBQyxLQUFhO1FBQ2pELElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6RSxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDdkQ7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN2RDtJQUNILENBQUM7OzRHQTVCVSxlQUFlO2dHQUFmLGVBQWUsaUdBSGYsQ0FBQyxvQkFBb0IsQ0FBQzsyRkFHdEIsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDVCxTQUFTLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDakMsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7b0lBYytCLE9BQU87c0JBQXBDLEtBQUs7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JUeXBlQWhlYWRQcm92aWRlciB9IGZyb20gJy4vZm9yLXR5cGUtYWhlYWQuc2VydmljZSc7XG5cbi8vIFRoZSBwdXJwb3NlIG9mIHRoaXMgZGlyZWN0aXZlIGlzIHRvIHByb3ZpZGUgdGhlIHRleHQgY29udGVudCBvZiBpdHMgaG9zdCBlbGVtZW50XG4vLyBvciB0ZXh0IGNvbnRlbnQgdGhhdCdzIHBhc3NlZCB0byBpdHMgaW5wdXQuXG5cbi8vIFRoaXMgZGlyZWN0aXZlIG11c3Qgc3RheSBvcHRpb25hbC4gU28gZG8gbm90IGVtYmVkIHRoaXMgZGlyZWN0aXZlIGluIGEgY29tcG9uZW50IG1vZHVsZSBieSBkZWZhdWx0LlxuLy8gSWYgdXNlcnMgbmVlZCB0byB1c2UgdGhpcyBkaXJlY3RpdmUsIHRoZXkgc2hvdWxkIGltcG9ydCBpdHMgbW9kdWxlIG9uIHRoZWlyIHNpZGUuXG5cbkBEaXJlY3RpdmUoe1xuICBwcm92aWRlcnM6IFtGb3JUeXBlQWhlYWRQcm92aWRlcl0sXG4gIHNlbGVjdG9yOiAnW2NsckZvclR5cGVBaGVhZF0nLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJGb3JUeXBlQWhlYWQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIGZvclR5cGVBaGVhZFByb3ZpZGVyOiBGb3JUeXBlQWhlYWRQcm92aWRlcikge31cblxuICBwcml2YXRlIHRyaW1BbmRMb3dlckNhc2UodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpLnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbnRlbnQ6IHN0cmluZztcblxuICBnZXQgY29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudDtcbiAgfVxuXG4gIEBJbnB1dCgnY2xyRm9yVHlwZUFoZWFkJykgc2V0IGNvbnRlbnQodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fY29udGVudCA9IHRoaXMudHJpbUFuZExvd2VyQ2FzZSh2YWx1ZSk7XG4gICAgICB0aGlzLmZvclR5cGVBaGVhZFByb3ZpZGVyLnRleHRDb250ZW50ID0gdGhpcy5fY29udGVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fY29udGVudCA9IHRoaXMudHJpbUFuZExvd2VyQ2FzZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQpO1xuICAgICAgdGhpcy5mb3JUeXBlQWhlYWRQcm92aWRlci50ZXh0Q29udGVudCA9IHRoaXMuX2NvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLl9jb250ZW50KSB7XG4gICAgICB0aGlzLl9jb250ZW50ID0gdGhpcy50cmltQW5kTG93ZXJDYXNlKHRoaXMuZWwubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudCk7XG4gICAgICB0aGlzLmZvclR5cGVBaGVhZFByb3ZpZGVyLnRleHRDb250ZW50ID0gdGhpcy5fY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
3
|
+
* This software is released under MIT license.
|
|
4
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
+
*/
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import { NgModule } from '@angular/core';
|
|
8
|
+
import { ClrForTypeAhead } from './for-type-ahead';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class ClrForTypeAheadModule {
|
|
11
|
+
}
|
|
12
|
+
ClrForTypeAheadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrForTypeAheadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
|
+
ClrForTypeAheadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrForTypeAheadModule, declarations: [ClrForTypeAhead], imports: [CommonModule], exports: [ClrForTypeAhead] });
|
|
14
|
+
ClrForTypeAheadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrForTypeAheadModule, imports: [[CommonModule]] });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrForTypeAheadModule, decorators: [{
|
|
16
|
+
type: NgModule,
|
|
17
|
+
args: [{
|
|
18
|
+
imports: [CommonModule],
|
|
19
|
+
declarations: [ClrForTypeAhead],
|
|
20
|
+
exports: [ClrForTypeAhead],
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLXR5cGUtYWhlYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvZm9yLXR5cGUtYWhlYWQvZm9yLXR5cGUtYWhlYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBTW5ELE1BQU0sT0FBTyxxQkFBcUI7O2tIQUFyQixxQkFBcUI7bUhBQXJCLHFCQUFxQixpQkFIakIsZUFBZSxhQURwQixZQUFZLGFBRVosZUFBZTttSEFFZCxxQkFBcUIsWUFKdkIsQ0FBQyxZQUFZLENBQUM7MkZBSVoscUJBQXFCO2tCQUxqQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMvQixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsckZvclR5cGVBaGVhZCB9IGZyb20gJy4vZm9yLXR5cGUtYWhlYWQnO1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW0NsckZvclR5cGVBaGVhZF0sXG4gIGV4cG9ydHM6IFtDbHJGb3JUeXBlQWhlYWRdLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJGb3JUeXBlQWhlYWRNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
3
|
+
* This software is released under MIT license.
|
|
4
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
+
*/
|
|
6
|
+
import { Injectable } from '@angular/core';
|
|
7
|
+
import { Subject } from 'rxjs';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class ForTypeAheadProvider {
|
|
10
|
+
constructor() {
|
|
11
|
+
this._textContentChange = new Subject();
|
|
12
|
+
}
|
|
13
|
+
get textContentChange() {
|
|
14
|
+
return this._textContentChange.asObservable();
|
|
15
|
+
}
|
|
16
|
+
get textContent() {
|
|
17
|
+
return this._textContent;
|
|
18
|
+
}
|
|
19
|
+
set textContent(value) {
|
|
20
|
+
this._textContent = value;
|
|
21
|
+
this._textContentChange.next(value);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
ForTypeAheadProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ForTypeAheadProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
25
|
+
ForTypeAheadProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ForTypeAheadProvider });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ForTypeAheadProvider, decorators: [{
|
|
27
|
+
type: Injectable
|
|
28
|
+
}] });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLXR5cGUtYWhlYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL2Zvci10eXBlLWFoZWFkL2Zvci10eXBlLWFoZWFkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLG9CQUFvQjtJQURqQztRQUVVLHVCQUFrQixHQUFvQixJQUFJLE9BQU8sRUFBVSxDQUFDO0tBZ0JyRTtJQWRDLElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFJRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDOztpSEFoQlUsb0JBQW9CO3FIQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRm9yVHlwZUFoZWFkUHJvdmlkZXIge1xuICBwcml2YXRlIF90ZXh0Q29udGVudENoYW5nZTogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gIGdldCB0ZXh0Q29udGVudENoYW5nZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl90ZXh0Q29udGVudENoYW5nZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3RleHRDb250ZW50OiBzdHJpbmc7XG5cbiAgZ2V0IHRleHRDb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLl90ZXh0Q29udGVudDtcbiAgfVxuXG4gIHNldCB0ZXh0Q29udGVudCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdGV4dENvbnRlbnQgPSB2YWx1ZTtcbiAgICB0aGlzLl90ZXh0Q29udGVudENoYW5nZS5uZXh0KHZhbHVlKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
3
|
+
* This software is released under MIT license.
|
|
4
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
+
*/
|
|
6
|
+
export { ClrForTypeAhead } from './for-type-ahead';
|
|
7
|
+
export { ClrForTypeAheadModule } from './for-type-ahead.module';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91dGlscy9mb3ItdHlwZS1haGVhZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5leHBvcnQgeyBDbHJGb3JUeXBlQWhlYWQgfSBmcm9tICcuL2Zvci10eXBlLWFoZWFkJztcbmV4cG9ydCB7IENsckZvclR5cGVBaGVhZE1vZHVsZSB9IGZyb20gJy4vZm9yLXR5cGUtYWhlYWQubW9kdWxlJztcbiJdfQ==
|
package/esm2020/utils/index.mjs
CHANGED
|
@@ -12,4 +12,6 @@ export * from './drag-and-drop/index';
|
|
|
12
12
|
export * from './popover/index';
|
|
13
13
|
export * from './focus/focus-on-view-init/index';
|
|
14
14
|
export * from './focus-trap/index';
|
|
15
|
-
|
|
15
|
+
export * from './destroy';
|
|
16
|
+
export * from './for-type-ahead/index';
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2FuaW1hdGlvbnMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FkaW5nL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29uZGl0aW9uYWwvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9pMThuL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vYTExeS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2RyYWctYW5kLWRyb3AvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9wb3BvdmVyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXMvZm9jdXMtb24tdmlldy1pbml0L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXMtdHJhcC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2Rlc3Ryb3knO1xuZXhwb3J0ICogZnJvbSAnLi9mb3ItdHlwZS1haGVhZC9pbmRleCc7XG4iXX0=
|