@fundamental-ngx/cdk 0.54.2-rc.9 → 0.55.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/fundamental-ngx-cdk-data-source.mjs +7 -7
- package/fesm2022/fundamental-ngx-cdk-forms.mjs +21 -14
- package/fesm2022/fundamental-ngx-cdk-forms.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-cdk-utils.mjs +361 -312
- package/fesm2022/fundamental-ngx-cdk-utils.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-cdk.mjs +4 -4
- package/forms/cva/cva.directive.d.ts +7 -3
- package/package.json +8 -16
- package/utils/abstract-fd-ngx-class.d.ts +1 -1
- package/utils/directives/overflow-list/overflow-list.directive.d.ts +7 -0
- package/utils/drag-and-drop/dnd-item/dnd-item.directive.d.ts +1 -1
- package/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.d.ts +1 -1
- package/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.d.ts +1 -1
- package/utils/drag-and-drop/dnd-list/dnd-list.directive.d.ts +1 -1
- package/utils/drag-and-drop/drag-and-drop.module.d.ts +7 -7
- package/utils/toast/base-toast-positions.d.ts +16 -16
- package/utils/toast/classes/base-toast-animated-container.component.d.ts +1 -1
- package/utils/toast/classes/base-toast-container.component.d.ts +1 -1
- package/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-container.component.d.ts +1 -1
- package/esm2022/data-source/base/abstract-data-provider.class.mjs +0 -142
- package/esm2022/data-source/base/base-data-source.class.mjs +0 -112
- package/esm2022/data-source/data-source.directive.mjs +0 -95
- package/esm2022/data-source/data-source.module.mjs +0 -16
- package/esm2022/data-source/fundamental-ngx-cdk-data-source.mjs +0 -5
- package/esm2022/data-source/helpers/apply-datasource-directive.mjs +0 -7
- package/esm2022/data-source/helpers/common.mjs +0 -17
- package/esm2022/data-source/helpers/is-datasource.mjs +0 -7
- package/esm2022/data-source/index.mjs +0 -9
- package/esm2022/data-source/models/data-source-provider.mjs +0 -2
- package/esm2022/data-source/models/data-source.mjs +0 -2
- package/esm2022/data-source/models/index.mjs +0 -4
- package/esm2022/data-source/models/matching-strategy.mjs +0 -7
- package/esm2022/data-source/tokens.mjs +0 -6
- package/esm2022/forms/cva/cva-control.class.mjs +0 -42
- package/esm2022/forms/cva/cva.directive.mjs +0 -321
- package/esm2022/forms/forms.module.mjs +0 -16
- package/esm2022/forms/fundamental-ngx-cdk-forms.mjs +0 -5
- package/esm2022/forms/helpers/state.mjs +0 -7
- package/esm2022/forms/index.mjs +0 -13
- package/esm2022/forms/models/control-type.model.mjs +0 -2
- package/esm2022/forms/models/cva.mjs +0 -2
- package/esm2022/forms/models/form-error.mjs +0 -2
- package/esm2022/forms/models/form-field.mjs +0 -9
- package/esm2022/forms/models/form-state.mjs +0 -2
- package/esm2022/forms/models/select-item.mjs +0 -14
- package/esm2022/forms/tokens/form-field-control.token.mjs +0 -3
- package/esm2022/forms/tokens/form-field.token.mjs +0 -3
- package/esm2022/fundamental-ngx-cdk.mjs +0 -5
- package/esm2022/fundamental-ngx.module.mjs +0 -19
- package/esm2022/index.mjs +0 -5
- package/esm2022/utils/abstract-fd-ngx-class.mjs +0 -61
- package/esm2022/utils/async-strategy/function-strategy.class.mjs +0 -12
- package/esm2022/utils/async-strategy/index.mjs +0 -7
- package/esm2022/utils/async-strategy/observable-strategy.class.mjs +0 -13
- package/esm2022/utils/async-strategy/promise-strategy.class.mjs +0 -12
- package/esm2022/utils/async-strategy/select-strategy.class.mjs +0 -23
- package/esm2022/utils/async-strategy/subscription-strategy.interface.mjs +0 -2
- package/esm2022/utils/async-strategy/value-strategy.class.mjs +0 -10
- package/esm2022/utils/coercion/array.mjs +0 -7
- package/esm2022/utils/components/dynamic-portal/dynamic-portal.component.mjs +0 -98
- package/esm2022/utils/components/index.mjs +0 -2
- package/esm2022/utils/consts/error-messages.mjs +0 -6
- package/esm2022/utils/consts/index.mjs +0 -5
- package/esm2022/utils/consts/overflow-priority-score.mjs +0 -8
- package/esm2022/utils/consts/unicode-letters.regex.mjs +0 -11
- package/esm2022/utils/consts/unicode-numbers.regex.mjs +0 -8
- package/esm2022/utils/datatypes/color-accent.datatype.mjs +0 -2
- package/esm2022/utils/datatypes/hash.datatype.mjs +0 -2
- package/esm2022/utils/datatypes/index.mjs +0 -5
- package/esm2022/utils/datatypes/object-nesting.types.mjs +0 -2
- package/esm2022/utils/datatypes/size.datatype.mjs +0 -2
- package/esm2022/utils/decorators/apply-css-class.decorator.mjs +0 -61
- package/esm2022/utils/decorators/apply-css-style.decorator.mjs +0 -26
- package/esm2022/utils/decorators/coerce-boolean.mjs +0 -7
- package/esm2022/utils/decorators/coerce-css-pixel.mjs +0 -4
- package/esm2022/utils/decorators/index.mjs +0 -6
- package/esm2022/utils/decorators/setter-alternator.mjs +0 -18
- package/esm2022/utils/deprecated-selector.class.mjs +0 -35
- package/esm2022/utils/directives/auto-complete/auto-complete.directive.mjs +0 -135
- package/esm2022/utils/directives/auto-complete/auto-complete.module.mjs +0 -17
- package/esm2022/utils/directives/breakpoints/breakpoint.directive.mjs +0 -156
- package/esm2022/utils/directives/breakpoints/responsive-breakpoints.mjs +0 -19
- package/esm2022/utils/directives/clicked/clicked-behavior.module.mjs +0 -35
- package/esm2022/utils/directives/clicked/clicked-event.plugin.mjs +0 -79
- package/esm2022/utils/directives/clicked/clicked.directive.mjs +0 -36
- package/esm2022/utils/directives/clicked/element-click.observable.mjs +0 -21
- package/esm2022/utils/directives/clicked/fdk-clicked-provider.service.mjs +0 -48
- package/esm2022/utils/directives/clicked/index.mjs +0 -6
- package/esm2022/utils/directives/clicked/provide-fdk-clicked.mjs +0 -29
- package/esm2022/utils/directives/disabled/default-disabled-view-modifier.mjs +0 -12
- package/esm2022/utils/directives/disabled/disabled-behavior.directive.mjs +0 -84
- package/esm2022/utils/directives/disabled/disabled-behavior.interface.mjs +0 -2
- package/esm2022/utils/directives/disabled/disabled-behavior.module.mjs +0 -16
- package/esm2022/utils/directives/disabled/disabled-view-modifier.interface.mjs +0 -2
- package/esm2022/utils/directives/disabled/disabled.observer.mjs +0 -35
- package/esm2022/utils/directives/disabled/fdk-disabled-provider.service.mjs +0 -101
- package/esm2022/utils/directives/disabled/fdk-disabled.token.mjs +0 -3
- package/esm2022/utils/directives/disabled/index.mjs +0 -9
- package/esm2022/utils/directives/disabled/set-disabled-state.mjs +0 -18
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager-helpers.module.mjs +0 -17
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager-item.directive.mjs +0 -67
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager-list.directive.mjs +0 -88
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager.tokens.mjs +0 -3
- package/esm2022/utils/directives/focus-key-manager/index.mjs +0 -5
- package/esm2022/utils/directives/focusable-grid/focusable-grid.directive.mjs +0 -164
- package/esm2022/utils/directives/focusable-grid/focusable-grid.module.mjs +0 -17
- package/esm2022/utils/directives/focusable-grid/focusable-grid.tokens.mjs +0 -3
- package/esm2022/utils/directives/focusable-grid/index.mjs +0 -4
- package/esm2022/utils/directives/focusable-item/focusable-item.directive.mjs +0 -198
- package/esm2022/utils/directives/focusable-item/focusable-item.module.mjs +0 -16
- package/esm2022/utils/directives/focusable-item/focusable-item.tokens.mjs +0 -3
- package/esm2022/utils/directives/focusable-item/focusable-list.position.mjs +0 -2
- package/esm2022/utils/directives/focusable-item/focusable.item.mjs +0 -2
- package/esm2022/utils/directives/focusable-item/focusable.observer.mjs +0 -46
- package/esm2022/utils/directives/focusable-item/get-item-element.mjs +0 -14
- package/esm2022/utils/directives/focusable-item/index.mjs +0 -9
- package/esm2022/utils/directives/focusable-item/indirect-focusable-item.directive.mjs +0 -44
- package/esm2022/utils/directives/focusable-item/is-element-focusable-by-default.mjs +0 -32
- package/esm2022/utils/directives/focusable-item/is-item-focusable.mjs +0 -8
- package/esm2022/utils/directives/focusable-list/focusable-list.directive.mjs +0 -300
- package/esm2022/utils/directives/focusable-list/focusable-list.module.mjs +0 -17
- package/esm2022/utils/directives/focusable-list/focusable-list.tokens.mjs +0 -3
- package/esm2022/utils/directives/focusable-list/index.mjs +0 -6
- package/esm2022/utils/directives/focusable-list/indirect-focusable-list.directive.mjs +0 -59
- package/esm2022/utils/directives/focusable-list/scroll.mjs +0 -43
- package/esm2022/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.mjs +0 -55
- package/esm2022/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.mjs +0 -16
- package/esm2022/utils/directives/ignore-click-on-selection/tokens.mjs +0 -3
- package/esm2022/utils/directives/index.mjs +0 -35
- package/esm2022/utils/directives/initial-focus/initial-focus.directive.mjs +0 -99
- package/esm2022/utils/directives/initial-focus/initial-focus.module.mjs +0 -16
- package/esm2022/utils/directives/intersection-spy/intersection-spy.directive.mjs +0 -42
- package/esm2022/utils/directives/line-clamp/line-clamp.directive.mjs +0 -213
- package/esm2022/utils/directives/line-clamp/line-clamp.module.mjs +0 -16
- package/esm2022/utils/directives/only-digits/only-digits.directive.mjs +0 -206
- package/esm2022/utils/directives/only-digits/only-digits.module.mjs +0 -16
- package/esm2022/utils/directives/overflow-list/overflow-list-item.directive.mjs +0 -18
- package/esm2022/utils/directives/overflow-list/overflow-list.directive.mjs +0 -114
- package/esm2022/utils/directives/overflow-list/overflow-list.module.mjs +0 -17
- package/esm2022/utils/directives/readonly/default-readonly-view-modifier.mjs +0 -12
- package/esm2022/utils/directives/readonly/fdk-readonly-provider.service.mjs +0 -101
- package/esm2022/utils/directives/readonly/fdk-readonly.token.mjs +0 -3
- package/esm2022/utils/directives/readonly/index.mjs +0 -10
- package/esm2022/utils/directives/readonly/readonly-behavior.directive.mjs +0 -67
- package/esm2022/utils/directives/readonly/readonly-behavior.interface.mjs +0 -2
- package/esm2022/utils/directives/readonly/readonly-behavior.module.mjs +0 -16
- package/esm2022/utils/directives/readonly/readonly-view-modifier.interface.mjs +0 -2
- package/esm2022/utils/directives/readonly/readonly.observer.mjs +0 -33
- package/esm2022/utils/directives/readonly/set-readonly-state.mjs +0 -14
- package/esm2022/utils/directives/repeat/repeat.directive.mjs +0 -34
- package/esm2022/utils/directives/repeat/repeat.module.mjs +0 -16
- package/esm2022/utils/directives/resize/resize-handle.directive.mjs +0 -18
- package/esm2022/utils/directives/resize/resize.directive.mjs +0 -241
- package/esm2022/utils/directives/resize/resize.module.mjs +0 -17
- package/esm2022/utils/directives/resize-observer/index.mjs +0 -2
- package/esm2022/utils/directives/resize-observer/resize-observer.directive.mjs +0 -29
- package/esm2022/utils/directives/selectable-list/index.mjs +0 -8
- package/esm2022/utils/directives/selectable-list/select-component-root.token.mjs +0 -3
- package/esm2022/utils/directives/selectable-list/selectable-item.directive.mjs +0 -147
- package/esm2022/utils/directives/selectable-list/selectable-item.token.mjs +0 -3
- package/esm2022/utils/directives/selectable-list/selectable-list.directive.mjs +0 -85
- package/esm2022/utils/directives/selectable-list/selectable-list.module.mjs +0 -17
- package/esm2022/utils/directives/selectable-list/selectable-list.tokens.mjs +0 -3
- package/esm2022/utils/directives/selectable-list/selection.service.mjs +0 -138
- package/esm2022/utils/directives/template/template.directive.mjs +0 -25
- package/esm2022/utils/directives/template/template.module.mjs +0 -16
- package/esm2022/utils/directives/truncate/truncate.directive.mjs +0 -94
- package/esm2022/utils/directives/truncate/truncate.module.mjs +0 -16
- package/esm2022/utils/drag-and-drop/dnd-item/dnd-item.directive.mjs +0 -274
- package/esm2022/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.mjs +0 -88
- package/esm2022/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.mjs +0 -83
- package/esm2022/utils/drag-and-drop/dnd-list/dnd-list.directive.mjs +0 -378
- package/esm2022/utils/drag-and-drop/dnd.interfaces.mjs +0 -2
- package/esm2022/utils/drag-and-drop/drag-and-drop.module.mjs +0 -22
- package/esm2022/utils/drag-and-drop/index.mjs +0 -8
- package/esm2022/utils/drag-and-drop/tokens.mjs +0 -4
- package/esm2022/utils/dynamic-component/dynamic-component-config.mjs +0 -2
- package/esm2022/utils/dynamic-component/dynamic-component-container.mjs +0 -32
- package/esm2022/utils/dynamic-component/dynamic-component-injector.mjs +0 -20
- package/esm2022/utils/dynamic-component/dynamic-component.service.mjs +0 -100
- package/esm2022/utils/dynamic-component/index.mjs +0 -5
- package/esm2022/utils/functions/consumer-provider-factory.mjs +0 -12
- package/esm2022/utils/functions/element-size.mjs +0 -23
- package/esm2022/utils/functions/get-document-font-size.mjs +0 -9
- package/esm2022/utils/functions/index.mjs +0 -14
- package/esm2022/utils/functions/intersection-observable.mjs +0 -26
- package/esm2022/utils/functions/is-compact-density.mjs +0 -11
- package/esm2022/utils/functions/is-odd.mjs +0 -9
- package/esm2022/utils/functions/key-util.mjs +0 -90
- package/esm2022/utils/functions/module-deprecations-provider.mjs +0 -18
- package/esm2022/utils/functions/parser-file-size.mjs +0 -37
- package/esm2022/utils/functions/random-color-accent.mjs +0 -5
- package/esm2022/utils/functions/resize-observable.mjs +0 -33
- package/esm2022/utils/functions/scroll.mjs +0 -19
- package/esm2022/utils/functions/uuidv4-generator.mjs +0 -12
- package/esm2022/utils/fundamental-ngx-cdk-utils.mjs +0 -5
- package/esm2022/utils/helpers/destroy-observable.mjs +0 -12
- package/esm2022/utils/helpers/dfs.mjs +0 -47
- package/esm2022/utils/helpers/get-native-element.mjs +0 -19
- package/esm2022/utils/helpers/index.mjs +0 -6
- package/esm2022/utils/helpers/range-selector.mjs +0 -117
- package/esm2022/utils/helpers/warn-once.mjs +0 -9
- package/esm2022/utils/index.mjs +0 -25
- package/esm2022/utils/interfaces/content-density.mjs +0 -2
- package/esm2022/utils/interfaces/css-class-builder.interface.mjs +0 -2
- package/esm2022/utils/interfaces/css-style-builder.interface.mjs +0 -2
- package/esm2022/utils/interfaces/has-element-ref.interface.mjs +0 -2
- package/esm2022/utils/interfaces/index.mjs +0 -8
- package/esm2022/utils/interfaces/keyboard-support-item.interface.mjs +0 -2
- package/esm2022/utils/interfaces/module-deprecation.interface.mjs +0 -2
- package/esm2022/utils/interfaces/require.interface.mjs +0 -2
- package/esm2022/utils/list-item/list-item-utils.mjs +0 -3
- package/esm2022/utils/models/nullable.mjs +0 -2
- package/esm2022/utils/pipes/async-or-sync.pipe.mjs +0 -35
- package/esm2022/utils/pipes/displayFn.pipe.mjs +0 -18
- package/esm2022/utils/pipes/filter-strings.pipe.mjs +0 -31
- package/esm2022/utils/pipes/index.mjs +0 -12
- package/esm2022/utils/pipes/is-compact.pipe.mjs +0 -16
- package/esm2022/utils/pipes/make-async.pipe.mjs +0 -24
- package/esm2022/utils/pipes/pipe.module.mjs +0 -65
- package/esm2022/utils/pipes/safe.pipe.mjs +0 -37
- package/esm2022/utils/pipes/search-highlight.pipe.mjs +0 -40
- package/esm2022/utils/pipes/truncate.pipe.mjs +0 -18
- package/esm2022/utils/pipes/two-digits.pipe.mjs +0 -23
- package/esm2022/utils/pipes/value-by-path.pipe.mjs +0 -16
- package/esm2022/utils/services/content-density.service.mjs +0 -35
- package/esm2022/utils/services/destroyed.service.mjs +0 -26
- package/esm2022/utils/services/focus-trap.service.mjs +0 -92
- package/esm2022/utils/services/index.mjs +0 -10
- package/esm2022/utils/services/keyboard-support/keyboard-support.service.mjs +0 -73
- package/esm2022/utils/services/local-storage.service.mjs +0 -38
- package/esm2022/utils/services/observers/attribute.observer.mjs +0 -81
- package/esm2022/utils/services/resize-observer.service.mjs +0 -92
- package/esm2022/utils/services/rtl.service.mjs +0 -32
- package/esm2022/utils/services/tabbable-element.service.mjs +0 -43
- package/esm2022/utils/toast/base-toast-animations.mjs +0 -22
- package/esm2022/utils/toast/base-toast-positions.mjs +0 -108
- package/esm2022/utils/toast/base-toast.service.mjs +0 -261
- package/esm2022/utils/toast/classes/action-dismissible/base-toast-action-dismissible-ref.mjs +0 -36
- package/esm2022/utils/toast/classes/base-toast-animated-container.component.mjs +0 -87
- package/esm2022/utils/toast/classes/base-toast-config.mjs +0 -23
- package/esm2022/utils/toast/classes/base-toast-container.component.mjs +0 -72
- package/esm2022/utils/toast/classes/base-toast-overlay-container.mjs +0 -25
- package/esm2022/utils/toast/classes/base-toast-ref.mjs +0 -45
- package/esm2022/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-config.mjs +0 -19
- package/esm2022/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-container.component.mjs +0 -39
- package/esm2022/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-ref.mjs +0 -23
- package/esm2022/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible.service.mjs +0 -25
- package/esm2022/utils/toast/index.mjs +0 -16
- package/esm2022/utils/toast/interfaces/toast-container-component.interface.mjs +0 -2
- package/esm2022/utils/toast/interfaces/toast-duration-dismissible-container-component.interface.mjs +0 -2
- package/esm2022/utils/toast/interfaces/toast-text-component.interface.mjs +0 -2
- package/esm2022/utils/tokens/module-deprecations.token.mjs +0 -3
- package/esm2022/utils/tokens/viewport-size.observable.mjs +0 -20
- package/esm2022/utils/typecheck.mjs +0 -75
- package/esm2022/utils/utils.module.mjs +0 -131
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
import { LiveAnnouncer } from '@angular/cdk/a11y';
|
|
2
|
-
import { ENTER, ESCAPE, F2, MAC_ENTER } from '@angular/cdk/keycodes';
|
|
3
|
-
import { DOCUMENT } from '@angular/common';
|
|
4
|
-
import { DestroyRef, Directive, ElementRef, EventEmitter, Input, NgZone, Output, Renderer2, booleanAttribute, inject } from '@angular/core';
|
|
5
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
|
-
import { Subject, fromEvent } from 'rxjs';
|
|
7
|
-
import { KeyUtil } from '../../functions';
|
|
8
|
-
import { TabbableElementService } from '../../services';
|
|
9
|
-
import { FDK_FOCUSABLE_ITEM_DIRECTIVE } from './focusable-item.tokens';
|
|
10
|
-
import { FocusableObserver } from './focusable.observer';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
export class FocusableItemDirective {
|
|
13
|
-
/** Whether the item is focusable. Default is true. */
|
|
14
|
-
set fdkFocusableItem(val) {
|
|
15
|
-
this._focusable = val;
|
|
16
|
-
this.setTabbable(this._focusable);
|
|
17
|
-
}
|
|
18
|
-
get fdkFocusableItem() {
|
|
19
|
-
return this._focusable;
|
|
20
|
-
}
|
|
21
|
-
/** @hidden */
|
|
22
|
-
constructor() {
|
|
23
|
-
/** Function, which returns a string to be announced by screen-reader whenever an item which is in grid receives focus. */
|
|
24
|
-
this.cellFocusedEventAnnouncer = this._defaultItemFocusedEventAnnouncer;
|
|
25
|
-
/** Event emitted when the cell receives focus, not being emitted when focus moves between item's children. */
|
|
26
|
-
this.cellFocused = new EventEmitter();
|
|
27
|
-
/** Element reference. */
|
|
28
|
-
this.elementRef = inject(ElementRef);
|
|
29
|
-
/** @hidden */
|
|
30
|
-
this.keydown = new Subject();
|
|
31
|
-
/** @hidden */
|
|
32
|
-
this._destroyRef = inject(DestroyRef);
|
|
33
|
-
/** @hidden */
|
|
34
|
-
this._zone = inject(NgZone);
|
|
35
|
-
/** @hidden */
|
|
36
|
-
this._focusable = true;
|
|
37
|
-
/** @hidden */
|
|
38
|
-
this._tabbableElements = new Map();
|
|
39
|
-
/** @hidden */
|
|
40
|
-
this._tabbable = true;
|
|
41
|
-
/** @hidden */
|
|
42
|
-
this._focusableObserver = inject(FocusableObserver);
|
|
43
|
-
/** @hidden */
|
|
44
|
-
this._tabbableElementService = inject(TabbableElementService);
|
|
45
|
-
/** @hidden */
|
|
46
|
-
this._liveAnnouncer = inject(LiveAnnouncer);
|
|
47
|
-
/** @hidden */
|
|
48
|
-
this._renderer2 = inject(Renderer2);
|
|
49
|
-
/** @hidden */
|
|
50
|
-
this._document = inject(DOCUMENT);
|
|
51
|
-
/** @hidden */
|
|
52
|
-
this.element = () => this.elementRef.nativeElement;
|
|
53
|
-
this._focusableObserver
|
|
54
|
-
.observe(this.elementRef, false)
|
|
55
|
-
.pipe(takeUntilDestroyed())
|
|
56
|
-
.subscribe((isFocusable) => {
|
|
57
|
-
if (!isFocusable && isFocusable !== this.fdkFocusableItem) {
|
|
58
|
-
this.fdkFocusableItem = isFocusable;
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
this._zone.runOutsideAngular(() => {
|
|
62
|
-
fromEvent(this.elementRef.nativeElement, 'focusin')
|
|
63
|
-
.pipe(takeUntilDestroyed())
|
|
64
|
-
.subscribe(async () => {
|
|
65
|
-
await this._onFocusin();
|
|
66
|
-
});
|
|
67
|
-
fromEvent(this.elementRef.nativeElement, 'focusout')
|
|
68
|
-
.pipe(takeUntilDestroyed())
|
|
69
|
-
.subscribe(() => {
|
|
70
|
-
this._onFocusout();
|
|
71
|
-
});
|
|
72
|
-
fromEvent(this.elementRef.nativeElement, 'keydown')
|
|
73
|
-
.pipe(takeUntilDestroyed())
|
|
74
|
-
.subscribe((event) => {
|
|
75
|
-
this._onKeydown(event);
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
/** @hidden */
|
|
80
|
-
isFocusable() {
|
|
81
|
-
return this._focusable;
|
|
82
|
-
}
|
|
83
|
-
/** @hidden */
|
|
84
|
-
focus() {
|
|
85
|
-
this.elementRef.nativeElement.focus();
|
|
86
|
-
}
|
|
87
|
-
/** Set tabbable state */
|
|
88
|
-
setTabbable(state) {
|
|
89
|
-
this._tabbable = state;
|
|
90
|
-
this._renderer2.setAttribute(this.elementRef.nativeElement, 'tabindex', this._tabbable ? '0' : '-1');
|
|
91
|
-
if (state) {
|
|
92
|
-
this._enableTabbableElements();
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
this._disableTabbableElements();
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
/** @hidden */
|
|
99
|
-
async _onFocusin() {
|
|
100
|
-
if (!this.fdkFocusableItem) {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
if (this._timerId != null) {
|
|
104
|
-
clearTimeout(this._timerId);
|
|
105
|
-
this._timerId = null;
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
if (this._position) {
|
|
109
|
-
this.cellFocused.next(this._position);
|
|
110
|
-
if (this.cellFocusedEventAnnouncer) {
|
|
111
|
-
this._liveAnnouncer.clear();
|
|
112
|
-
await this._liveAnnouncer.announce(this.cellFocusedEventAnnouncer(this._position));
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/** @hidden */
|
|
117
|
-
_onFocusout() {
|
|
118
|
-
if (!this.fdkFocusableItem) {
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
// Timeout is needed to prevent focusout event from being emitted when focus moves between item's children.
|
|
122
|
-
this._timerId = setTimeout(() => (this._timerId = null));
|
|
123
|
-
}
|
|
124
|
-
/** @hidden */
|
|
125
|
-
_onKeydown(event) {
|
|
126
|
-
if (!this.fdkFocusableItem) {
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
const isFocused = this._document.activeElement === this.elementRef.nativeElement;
|
|
130
|
-
const shouldFocusChild = KeyUtil.isKeyCode(event, [ENTER, MAC_ENTER, F2]) && !event.shiftKey && isFocused;
|
|
131
|
-
const shouldFocusCell = ((KeyUtil.isKeyCode(event, F2) && event.shiftKey) || KeyUtil.isKeyCode(event, ESCAPE)) && !isFocused;
|
|
132
|
-
if (shouldFocusChild) {
|
|
133
|
-
event.stopPropagation();
|
|
134
|
-
const tabbableElement = this._tabbableElementService.getTabbableElement(this.elementRef.nativeElement, false, true);
|
|
135
|
-
tabbableElement?.focus();
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
else if (shouldFocusCell) {
|
|
139
|
-
event.stopPropagation();
|
|
140
|
-
this.elementRef.nativeElement.focus();
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
if (isFocused) {
|
|
144
|
-
this.keydown.next(event);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
/** @hidden */
|
|
148
|
-
_enableTabbableElements() {
|
|
149
|
-
if (this._tabbableElements.size === 0) {
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
this._tabbableElements.forEach((tabIndex, element) => (element.tabIndex = tabIndex));
|
|
153
|
-
this._tabbable = false;
|
|
154
|
-
}
|
|
155
|
-
/** @hidden */
|
|
156
|
-
_disableTabbableElements() {
|
|
157
|
-
// Since we cannot select by tabindex attribute (links, inputs, buttons might not have one but still can be focusable),
|
|
158
|
-
// Select all elements from the cell and filter by tabIndex property.
|
|
159
|
-
Array.from(this.elementRef.nativeElement.querySelectorAll('*'))
|
|
160
|
-
.filter((elm) => elm.tabIndex >= 0)
|
|
161
|
-
.forEach((elm) => {
|
|
162
|
-
this._tabbableElements.set(elm, elm.tabIndex);
|
|
163
|
-
elm.tabIndex = -1;
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
/** @hidden */
|
|
167
|
-
_defaultItemFocusedEventAnnouncer(position) {
|
|
168
|
-
return `Column ${position.colIndex + 1} of ${position.totalCols}, row: ${position.rowIndex + 1} of ${position.totalRows}`;
|
|
169
|
-
}
|
|
170
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusableItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
171
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.3", type: FocusableItemDirective, isStandalone: true, selector: "[fdkFocusableItem]", inputs: { fdkFocusableItem: ["fdkFocusableItem", "fdkFocusableItem", booleanAttribute], cellFocusedEventAnnouncer: "cellFocusedEventAnnouncer" }, outputs: { cellFocused: "cellFocused" }, providers: [
|
|
172
|
-
{
|
|
173
|
-
provide: FDK_FOCUSABLE_ITEM_DIRECTIVE,
|
|
174
|
-
useExisting: FocusableItemDirective
|
|
175
|
-
}
|
|
176
|
-
], ngImport: i0 }); }
|
|
177
|
-
}
|
|
178
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusableItemDirective, decorators: [{
|
|
179
|
-
type: Directive,
|
|
180
|
-
args: [{
|
|
181
|
-
selector: '[fdkFocusableItem]',
|
|
182
|
-
standalone: true,
|
|
183
|
-
providers: [
|
|
184
|
-
{
|
|
185
|
-
provide: FDK_FOCUSABLE_ITEM_DIRECTIVE,
|
|
186
|
-
useExisting: FocusableItemDirective
|
|
187
|
-
}
|
|
188
|
-
]
|
|
189
|
-
}]
|
|
190
|
-
}], ctorParameters: () => [], propDecorators: { fdkFocusableItem: [{
|
|
191
|
-
type: Input,
|
|
192
|
-
args: [{ transform: booleanAttribute }]
|
|
193
|
-
}], cellFocusedEventAnnouncer: [{
|
|
194
|
-
type: Input
|
|
195
|
-
}], cellFocused: [{
|
|
196
|
-
type: Output
|
|
197
|
-
}] } });
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy9mb2N1c2FibGUtaXRlbS9mb2N1c2FibGUtaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNILFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHMUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBcUJ6RCxNQUFNLE9BQU8sc0JBQXNCO0lBQy9CLHNEQUFzRDtJQUN0RCxJQUNJLGdCQUFnQixDQUFDLEdBQVk7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBK0NELGNBQWM7SUFDZDtRQTlDQSwwSEFBMEg7UUFFMUgsOEJBQXlCLEdBQThCLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQztRQUU5Riw4R0FBOEc7UUFFckcsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUVqRSx5QkFBeUI7UUFDaEIsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFFbEUsY0FBYztRQUNMLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQUtoRCxjQUFjO1FBQ0ssZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEQsY0FBYztRQUNLLFVBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFMUMsY0FBYztRQUNOLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFMUIsY0FBYztRQUNOLHNCQUFpQixHQUFHLElBQUksR0FBRyxFQUF1QixDQUFDO1FBRTNELGNBQWM7UUFDTixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBR3pCLGNBQWM7UUFDRyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoRSxjQUFjO1FBQ0csNEJBQXVCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDMUUsY0FBYztRQUNHLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXhELGNBQWM7UUFDRyxlQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWhELGNBQWM7UUFDRyxjQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBa0M5QyxjQUFjO1FBQ2QsWUFBTyxHQUFHLEdBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQS9CdkQsSUFBSSxDQUFDLGtCQUFrQjthQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUM7YUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDMUIsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLEtBQUssSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXLENBQUM7WUFDeEMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDOUIsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQztpQkFDOUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7aUJBQzFCLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDbEIsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7WUFFUCxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDO2lCQUMvQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztpQkFDMUIsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7WUFFUCxTQUFTLENBQWdCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQztpQkFDN0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7aUJBQzFCLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBS0QsY0FBYztJQUNkLFdBQVc7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELGNBQWM7SUFDZCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELHlCQUF5QjtJQUN6QixXQUFXLENBQUMsS0FBYztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVyRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDTixLQUFLLENBQUMsVUFBVTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDekIsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDeEIsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV0QyxJQUFJLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM1QixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN2RixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ04sV0FBVztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN6QixPQUFPO1FBQ1gsQ0FBQztRQUVELDJHQUEyRztRQUMzRyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsY0FBYztJQUNOLFVBQVUsQ0FBQyxLQUFvQjtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDekIsT0FBTztRQUNYLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUNqRixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxTQUFTLENBQUM7UUFDMUcsTUFBTSxlQUFlLEdBQ2pCLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUV6RyxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDbkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBRXhCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsQ0FDbkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLEtBQUssRUFDTCxJQUFJLENBQ1AsQ0FBQztZQUVGLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUV6QixPQUFPO1FBQ1gsQ0FBQzthQUFNLElBQUksZUFBZSxFQUFFLENBQUM7WUFDekIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBRXhCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRXRDLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNOLHVCQUF1QjtRQUMzQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEMsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELGNBQWM7SUFDTix3QkFBd0I7UUFDNUIsdUhBQXVIO1FBQ3ZILHFFQUFxRTtRQUNyRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFjLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUM7YUFDbEMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDYixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxjQUFjO0lBQ04saUNBQWlDLENBQUMsUUFBK0I7UUFDckUsT0FBTyxVQUFVLFFBQVEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxPQUFPLFFBQVEsQ0FBQyxTQUFTLFVBQVUsUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLE9BQzFGLFFBQVEsQ0FBQyxTQUNiLEVBQUUsQ0FBQztJQUNQLENBQUM7OEdBak5RLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDJIQUVYLGdCQUFnQixpSEFUekI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsNEJBQTRCO2dCQUNyQyxXQUFXLEVBQUUsc0JBQXNCO2FBQ3RDO1NBQ0o7OzJGQUVRLHNCQUFzQjtrQkFWbEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSw0QkFBNEI7NEJBQ3JDLFdBQVcsd0JBQXdCO3lCQUN0QztxQkFDSjtpQkFDSjt3REFJTyxnQkFBZ0I7c0JBRG5CLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBWXRDLHlCQUF5QjtzQkFEeEIsS0FBSztnQkFLRyxXQUFXO3NCQURuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGl2ZUFubm91bmNlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEVOVEVSLCBFU0NBUEUsIEYyLCBNQUNfRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgS2V5VXRpbCB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBIYXNFbGVtZW50UmVmIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9oYXMtZWxlbWVudC1yZWYuaW50ZXJmYWNlJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL251bGxhYmxlJztcbmltcG9ydCB7IFRhYmJhYmxlRWxlbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFIH0gZnJvbSAnLi9mb2N1c2FibGUtaXRlbS50b2tlbnMnO1xuaW1wb3J0IHsgRm9jdXNhYmxlSXRlbSB9IGZyb20gJy4vZm9jdXNhYmxlLml0ZW0nO1xuaW1wb3J0IHsgRm9jdXNhYmxlT2JzZXJ2ZXIgfSBmcm9tICcuL2ZvY3VzYWJsZS5vYnNlcnZlcic7XG5cbmV4cG9ydCB0eXBlIENlbGxGb2N1c2VkRXZlbnRBbm5vdW5jZXIgPSBOdWxsYWJsZTwocG9zaXRpb246IEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbikgPT4gc3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBGb2N1c2FibGVJdGVtUG9zaXRpb24ge1xuICAgIHJvd0luZGV4OiBudW1iZXI7XG4gICAgY29sSW5kZXg6IG51bWJlcjtcbiAgICB0b3RhbFJvd3M6IG51bWJlcjtcbiAgICB0b3RhbENvbHM6IG51bWJlcjtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrRm9jdXNhYmxlSXRlbV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogRm9jdXNhYmxlSXRlbURpcmVjdGl2ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2N1c2FibGVJdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgRm9jdXNhYmxlSXRlbSwgSGFzRWxlbWVudFJlZiB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGl0ZW0gaXMgZm9jdXNhYmxlLiBEZWZhdWx0IGlzIHRydWUuICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IGZka0ZvY3VzYWJsZUl0ZW0odmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZSA9IHZhbDtcbiAgICAgICAgdGhpcy5zZXRUYWJiYWJsZSh0aGlzLl9mb2N1c2FibGUpO1xuICAgIH1cblxuICAgIGdldCBmZGtGb2N1c2FibGVJdGVtKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9jdXNhYmxlO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiwgd2hpY2ggcmV0dXJucyBhIHN0cmluZyB0byBiZSBhbm5vdW5jZWQgYnkgc2NyZWVuLXJlYWRlciB3aGVuZXZlciBhbiBpdGVtIHdoaWNoIGlzIGluIGdyaWQgcmVjZWl2ZXMgZm9jdXMuICovXG4gICAgQElucHV0KClcbiAgICBjZWxsRm9jdXNlZEV2ZW50QW5ub3VuY2VyOiBDZWxsRm9jdXNlZEV2ZW50QW5ub3VuY2VyID0gdGhpcy5fZGVmYXVsdEl0ZW1Gb2N1c2VkRXZlbnRBbm5vdW5jZXI7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBjZWxsIHJlY2VpdmVzIGZvY3VzLCBub3QgYmVpbmcgZW1pdHRlZCB3aGVuIGZvY3VzIG1vdmVzIGJldHdlZW4gaXRlbSdzIGNoaWxkcmVuLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGNlbGxGb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c2FibGVJdGVtUG9zaXRpb24+KCk7XG5cbiAgICAvKiogRWxlbWVudCByZWZlcmVuY2UuICovXG4gICAgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IGtleWRvd24gPSBuZXcgU3ViamVjdDxLZXlib2FyZEV2ZW50PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcG9zaXRpb246IEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF96b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzYWJsZSA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RhYmJhYmxlRWxlbWVudHMgPSBuZXcgTWFwPEhUTUxFbGVtZW50LCBudW1iZXI+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RhYmJhYmxlID0gdHJ1ZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RpbWVySWQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbDtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzYWJsZU9ic2VydmVyID0gaW5qZWN0KEZvY3VzYWJsZU9ic2VydmVyKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYmJhYmxlRWxlbWVudFNlcnZpY2UgPSBpbmplY3QoVGFiYmFibGVFbGVtZW50U2VydmljZSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9saXZlQW5ub3VuY2VyID0gaW5qZWN0KExpdmVBbm5vdW5jZXIpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZW5kZXJlcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlT2JzZXJ2ZXJcbiAgICAgICAgICAgIC5vYnNlcnZlKHRoaXMuZWxlbWVudFJlZiwgZmFsc2UpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGlzRm9jdXNhYmxlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc0ZvY3VzYWJsZSAmJiBpc0ZvY3VzYWJsZSAhPT0gdGhpcy5mZGtGb2N1c2FibGVJdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmRrRm9jdXNhYmxlSXRlbSA9IGlzRm9jdXNhYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZm9jdXNpbicpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX29uRm9jdXNpbigpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdmb2N1c291dCcpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29uRm9jdXNvdXQoKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAna2V5ZG93bicpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBlbGVtZW50ID0gKCk6IEhUTUxFbGVtZW50ID0+IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBpc0ZvY3VzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzYWJsZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKiBTZXQgdGFiYmFibGUgc3RhdGUgKi9cbiAgICBzZXRUYWJiYWJsZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJiYWJsZSA9IHN0YXRlO1xuICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndGFiaW5kZXgnLCB0aGlzLl90YWJiYWJsZSA/ICcwJyA6ICctMScpO1xuXG4gICAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5fZW5hYmxlVGFiYmFibGVFbGVtZW50cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZVRhYmJhYmxlRWxlbWVudHMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBhc3luYyBfb25Gb2N1c2luKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoIXRoaXMuZmRrRm9jdXNhYmxlSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3RpbWVySWQgIT0gbnVsbCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVySWQpO1xuICAgICAgICAgICAgdGhpcy5fdGltZXJJZCA9IG51bGw7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fcG9zaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY2VsbEZvY3VzZWQubmV4dCh0aGlzLl9wb3NpdGlvbik7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNlbGxGb2N1c2VkRXZlbnRBbm5vdW5jZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9saXZlQW5ub3VuY2VyLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbGl2ZUFubm91bmNlci5hbm5vdW5jZSh0aGlzLmNlbGxGb2N1c2VkRXZlbnRBbm5vdW5jZXIodGhpcy5fcG9zaXRpb24pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb25Gb2N1c291dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZka0ZvY3VzYWJsZUl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRpbWVvdXQgaXMgbmVlZGVkIHRvIHByZXZlbnQgZm9jdXNvdXQgZXZlbnQgZnJvbSBiZWluZyBlbWl0dGVkIHdoZW4gZm9jdXMgbW92ZXMgYmV0d2VlbiBpdGVtJ3MgY2hpbGRyZW4uXG4gICAgICAgIHRoaXMuX3RpbWVySWQgPSBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLl90aW1lcklkID0gbnVsbCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mZGtGb2N1c2FibGVJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc0ZvY3VzZWQgPSB0aGlzLl9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2hvdWxkRm9jdXNDaGlsZCA9IEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIE1BQ19FTlRFUiwgRjJdKSAmJiAhZXZlbnQuc2hpZnRLZXkgJiYgaXNGb2N1c2VkO1xuICAgICAgICBjb25zdCBzaG91bGRGb2N1c0NlbGwgPVxuICAgICAgICAgICAgKChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgRjIpICYmIGV2ZW50LnNoaWZ0S2V5KSB8fCBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgRVNDQVBFKSkgJiYgIWlzRm9jdXNlZDtcblxuICAgICAgICBpZiAoc2hvdWxkRm9jdXNDaGlsZCkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHRhYmJhYmxlRWxlbWVudCA9IHRoaXMuX3RhYmJhYmxlRWxlbWVudFNlcnZpY2UuZ2V0VGFiYmFibGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRhYmJhYmxlRWxlbWVudD8uZm9jdXMoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKHNob3VsZEZvY3VzQ2VsbCkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMua2V5ZG93bi5uZXh0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZW5hYmxlVGFiYmFibGVFbGVtZW50cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3RhYmJhYmxlRWxlbWVudHMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdGFiYmFibGVFbGVtZW50cy5mb3JFYWNoKCh0YWJJbmRleCwgZWxlbWVudCkgPT4gKGVsZW1lbnQudGFiSW5kZXggPSB0YWJJbmRleCkpO1xuICAgICAgICB0aGlzLl90YWJiYWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGlzYWJsZVRhYmJhYmxlRWxlbWVudHMoKTogdm9pZCB7XG4gICAgICAgIC8vIFNpbmNlIHdlIGNhbm5vdCBzZWxlY3QgYnkgdGFiaW5kZXggYXR0cmlidXRlIChsaW5rcywgaW5wdXRzLCBidXR0b25zIG1pZ2h0IG5vdCBoYXZlIG9uZSBidXQgc3RpbGwgY2FuIGJlIGZvY3VzYWJsZSksXG4gICAgICAgIC8vIFNlbGVjdCBhbGwgZWxlbWVudHMgZnJvbSB0aGUgY2VsbCBhbmQgZmlsdGVyIGJ5IHRhYkluZGV4IHByb3BlcnR5LlxuICAgICAgICBBcnJheS5mcm9tKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KCcqJykpXG4gICAgICAgICAgICAuZmlsdGVyKChlbG0pID0+IGVsbS50YWJJbmRleCA+PSAwKVxuICAgICAgICAgICAgLmZvckVhY2goKGVsbSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmJhYmxlRWxlbWVudHMuc2V0KGVsbSwgZWxtLnRhYkluZGV4KTtcbiAgICAgICAgICAgICAgICBlbG0udGFiSW5kZXggPSAtMTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVmYXVsdEl0ZW1Gb2N1c2VkRXZlbnRBbm5vdW5jZXIocG9zaXRpb246IEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgQ29sdW1uICR7cG9zaXRpb24uY29sSW5kZXggKyAxfSBvZiAke3Bvc2l0aW9uLnRvdGFsQ29sc30sIHJvdzogJHtwb3NpdGlvbi5yb3dJbmRleCArIDF9IG9mICR7XG4gICAgICAgICAgICBwb3NpdGlvbi50b3RhbFJvd3NcbiAgICAgICAgfWA7XG4gICAgfVxufVxuIl19
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { FocusableItemDirective } from './focusable-item.directive';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class FocusableItemModule {
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusableItemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: FocusableItemModule, imports: [FocusableItemDirective], exports: [FocusableItemDirective] }); }
|
|
7
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusableItemModule }); }
|
|
8
|
-
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusableItemModule, decorators: [{
|
|
10
|
-
type: NgModule,
|
|
11
|
-
args: [{
|
|
12
|
-
imports: [FocusableItemDirective],
|
|
13
|
-
exports: [FocusableItemDirective]
|
|
14
|
-
}]
|
|
15
|
-
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWl0ZW0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy9mb2N1c2FibGUtaXRlbS9mb2N1c2FibGUtaXRlbS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFNcEUsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUIsWUFIbEIsc0JBQXNCLGFBQ3RCLHNCQUFzQjsrR0FFdkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUovQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vZm9jdXNhYmxlLWl0ZW0uZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbRm9jdXNhYmxlSXRlbURpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW0ZvY3VzYWJsZUl0ZW1EaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIEZvY3VzYWJsZUl0ZW1Nb2R1bGUge31cbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const FDK_FOCUSABLE_ITEM_DIRECTIVE = new InjectionToken('Focusable directive token');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWl0ZW0udG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy9mb2N1c2FibGUtaXRlbS9mb2N1c2FibGUtaXRlbS50b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0ZvY3VzYWJsZSBkaXJlY3RpdmUgdG9rZW4nKTtcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWxpc3QucG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1pdGVtL2ZvY3VzYWJsZS1saXN0LnBvc2l0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZvY3VzYWJsZUxpc3RQb3NpdGlvbiB7XG4gICAgcm93SW5kZXg6IG51bWJlcjtcbiAgICB0b3RhbFJvd3M6IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLml0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1pdGVtL2ZvY3VzYWJsZS5pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c2FibGVPcHRpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb2N1c2FibGVJdGVtUG9zaXRpb24gfSBmcm9tICcuL2ZvY3VzYWJsZS1pdGVtLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9jdXNhYmxlSXRlbSBleHRlbmRzIEZvY3VzYWJsZU9wdGlvbiB7XG4gICAgX3Bvc2l0aW9uPzogRm9jdXNhYmxlSXRlbVBvc2l0aW9uO1xuICAgIGlzRm9jdXNhYmxlOiAoKCkgPT4gYm9vbGVhbikgfCBib29sZWFuO1xuICAgIGtleWRvd246IE9ic2VydmFibGU8S2V5Ym9hcmRFdmVudD47XG4gICAgc2V0VGFiYmFibGU6ICh0YWJiYWJsZTogYm9vbGVhbikgPT4gdm9pZDtcbiAgICBlbGVtZW50OiAoKCkgPT4gSFRNTEVsZW1lbnQpIHwgSFRNTEVsZW1lbnQ7XG59XG4iXX0=
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { distinctUntilChanged, map } from 'rxjs/operators';
|
|
3
|
-
import { getNativeElement } from '../../helpers/get-native-element';
|
|
4
|
-
import { AttributeObserver } from '../../services/observers/attribute.observer';
|
|
5
|
-
import { DisabledObserver } from '../disabled/disabled.observer';
|
|
6
|
-
import { isElementFocusableByDefault } from './is-element-focusable-by-default';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../services/observers/attribute.observer";
|
|
9
|
-
export class FocusableObserver {
|
|
10
|
-
/** @hidden */
|
|
11
|
-
constructor(_attributeObserver) {
|
|
12
|
-
this._attributeObserver = _attributeObserver;
|
|
13
|
-
}
|
|
14
|
-
/** @Hidden */
|
|
15
|
-
static isFocusable(element, respectTabIndex) {
|
|
16
|
-
if (DisabledObserver.isDisabled(element)) {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
if (!respectTabIndex) {
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
const tabIndex = parseInt(element.getAttribute('tabindex') + '', 10);
|
|
23
|
-
if (isNaN(tabIndex)) {
|
|
24
|
-
return isElementFocusableByDefault(element);
|
|
25
|
-
}
|
|
26
|
-
return tabIndex > -1;
|
|
27
|
-
}
|
|
28
|
-
/** @hidden */
|
|
29
|
-
observe(element, respectTabIndex = true) {
|
|
30
|
-
const nativeElement = getNativeElement(element);
|
|
31
|
-
return this._attributeObserver.observe(nativeElement).pipe(map(() => FocusableObserver.isFocusable(nativeElement, respectTabIndex)), distinctUntilChanged());
|
|
32
|
-
}
|
|
33
|
-
/** @hidden */
|
|
34
|
-
unobserve(element) {
|
|
35
|
-
this._attributeObserver.unobserve(element);
|
|
36
|
-
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusableObserver, deps: [{ token: i1.AttributeObserver }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
38
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusableObserver, providedIn: 'root' }); }
|
|
39
|
-
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusableObserver, decorators: [{
|
|
41
|
-
type: Injectable,
|
|
42
|
-
args: [{
|
|
43
|
-
providedIn: 'root'
|
|
44
|
-
}]
|
|
45
|
-
}], ctorParameters: () => [{ type: i1.AttributeObserver }] });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLm9ic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy9mb2N1c2FibGUtaXRlbS9mb2N1c2FibGUub2JzZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQUtoRixNQUFNLE9BQU8saUJBQWlCO0lBQzFCLGNBQWM7SUFDZCxZQUFvQixrQkFBcUM7UUFBckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtJQUFHLENBQUM7SUFFN0QsY0FBYztJQUNkLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBZ0IsRUFBRSxlQUF3QjtRQUN6RCxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDbkIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVELE9BQU8sUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxjQUFjO0lBQ2QsT0FBTyxDQUNILE9BQStELEVBQy9ELGVBQWUsR0FBRyxJQUFJO1FBRXRCLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQ3RELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDLEVBQ3hFLG9CQUFvQixFQUFFLENBQ3pCLENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYztJQUNkLFNBQVMsQ0FBQyxPQUErRDtRQUNyRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7OEdBckNRLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmQsTUFBTTs7MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBnZXROYXRpdmVFbGVtZW50IH0gZnJvbSAnLi4vLi4vaGVscGVycy9nZXQtbmF0aXZlLWVsZW1lbnQnO1xuaW1wb3J0IHsgSGFzRWxlbWVudFJlZiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaGFzLWVsZW1lbnQtcmVmLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBdHRyaWJ1dGVPYnNlcnZlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29ic2VydmVycy9hdHRyaWJ1dGUub2JzZXJ2ZXInO1xuaW1wb3J0IHsgRGlzYWJsZWRPYnNlcnZlciB9IGZyb20gJy4uL2Rpc2FibGVkL2Rpc2FibGVkLm9ic2VydmVyJztcbmltcG9ydCB7IGlzRWxlbWVudEZvY3VzYWJsZUJ5RGVmYXVsdCB9IGZyb20gJy4vaXMtZWxlbWVudC1mb2N1c2FibGUtYnktZGVmYXVsdCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNhYmxlT2JzZXJ2ZXIge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXR0cmlidXRlT2JzZXJ2ZXI6IEF0dHJpYnV0ZU9ic2VydmVyKSB7fVxuXG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBzdGF0aWMgaXNGb2N1c2FibGUoZWxlbWVudDogRWxlbWVudCwgcmVzcGVjdFRhYkluZGV4OiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChEaXNhYmxlZE9ic2VydmVyLmlzRGlzYWJsZWQoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcmVzcGVjdFRhYkluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhYkluZGV4ID0gcGFyc2VJbnQoZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JykgKyAnJywgMTApO1xuICAgICAgICBpZiAoaXNOYU4odGFiSW5kZXgpKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNFbGVtZW50Rm9jdXNhYmxlQnlEZWZhdWx0KGVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRhYkluZGV4ID4gLTE7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvYnNlcnZlKFxuICAgICAgICBlbGVtZW50OiBIYXNFbGVtZW50UmVmPEVsZW1lbnQ+IHwgRWxlbWVudCB8IEVsZW1lbnRSZWY8RWxlbWVudD4sXG4gICAgICAgIHJlc3BlY3RUYWJJbmRleCA9IHRydWVcbiAgICApOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IGdldE5hdGl2ZUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdHRyaWJ1dGVPYnNlcnZlci5vYnNlcnZlKG5hdGl2ZUVsZW1lbnQpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKCkgPT4gRm9jdXNhYmxlT2JzZXJ2ZXIuaXNGb2N1c2FibGUobmF0aXZlRWxlbWVudCwgcmVzcGVjdFRhYkluZGV4KSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB1bm9ic2VydmUoZWxlbWVudDogSGFzRWxlbWVudFJlZjxFbGVtZW50PiB8IEVsZW1lbnQgfCBFbGVtZW50UmVmPEVsZW1lbnQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2F0dHJpYnV0ZU9ic2VydmVyLnVub2JzZXJ2ZShlbGVtZW50KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns the element of the item.
|
|
3
|
-
* @param item
|
|
4
|
-
*/
|
|
5
|
-
export function getItemElement(item) {
|
|
6
|
-
if (!item) {
|
|
7
|
-
return null;
|
|
8
|
-
}
|
|
9
|
-
if (typeof item.element === 'function') {
|
|
10
|
-
return item.element();
|
|
11
|
-
}
|
|
12
|
-
return item.element;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWl0ZW0tZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3V0aWxzL2RpcmVjdGl2ZXMvZm9jdXNhYmxlLWl0ZW0vZ2V0LWl0ZW0tZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLElBQThCO0lBQ3pELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNSLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uLy4uL21vZGVscy9udWxsYWJsZSc7XG5pbXBvcnQgeyBGb2N1c2FibGVJdGVtIH0gZnJvbSAnLi9mb2N1c2FibGUuaXRlbSc7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZWxlbWVudCBvZiB0aGUgaXRlbS5cbiAqIEBwYXJhbSBpdGVtXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJdGVtRWxlbWVudChpdGVtPzogTnVsbGFibGU8Rm9jdXNhYmxlSXRlbT4pOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGlmICghaXRlbSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBpdGVtLmVsZW1lbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uZWxlbWVudCgpO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtLmVsZW1lbnQ7XG59XG4iXX0=
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export * from './focusable-item.directive';
|
|
2
|
-
export * from './focusable-item.module';
|
|
3
|
-
export * from './focusable-item.tokens';
|
|
4
|
-
export * from './focusable-list.position';
|
|
5
|
-
export * from './focusable.item';
|
|
6
|
-
export * from './focusable.observer';
|
|
7
|
-
export * from './indirect-focusable-item.directive';
|
|
8
|
-
export * from './is-item-focusable';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1pdGVtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9jdXNhYmxlLWl0ZW0uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXNhYmxlLWl0ZW0ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXNhYmxlLWl0ZW0udG9rZW5zJztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXNhYmxlLWxpc3QucG9zaXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9mb2N1c2FibGUuaXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL2ZvY3VzYWJsZS5vYnNlcnZlcic7XG5leHBvcnQgKiBmcm9tICcuL2luZGlyZWN0LWZvY3VzYWJsZS1pdGVtLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2lzLWl0ZW0tZm9jdXNhYmxlJztcbiJdfQ==
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { DestroyRef, Directive, inject, InjectionToken } from '@angular/core';
|
|
2
|
-
import { IndirectFocusableListDirective } from '../focusable-list/indirect-focusable-list.directive';
|
|
3
|
-
import { FDK_FOCUSABLE_ITEM_DIRECTIVE } from './focusable-item.tokens';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export const FDK_INDIRECT_FOCUSABLE_ITEM_ORDER = new InjectionToken('FDK_INDIRECT_FOCUSABLE_ITEM_ORDER');
|
|
6
|
-
/**
|
|
7
|
-
* Directive, to mark the focusable item in the focusable list, which
|
|
8
|
-
* is not the direct child of the focusable list.
|
|
9
|
-
*
|
|
10
|
-
* Useful in cases, when you need to make the item focusable, and
|
|
11
|
-
* you do not have the access to the focusable list.
|
|
12
|
-
*/
|
|
13
|
-
export class IndirectFocusableItemDirective {
|
|
14
|
-
/** @hidden */
|
|
15
|
-
constructor() {
|
|
16
|
-
/** @hidden */
|
|
17
|
-
this._focusableItem = inject(FDK_FOCUSABLE_ITEM_DIRECTIVE, { optional: true });
|
|
18
|
-
/** @hidden */
|
|
19
|
-
this._indirectFocusableList = inject(IndirectFocusableListDirective, { optional: true });
|
|
20
|
-
/** @hidden */
|
|
21
|
-
this._order = inject(FDK_INDIRECT_FOCUSABLE_ITEM_ORDER, { optional: true });
|
|
22
|
-
/** @hidden */
|
|
23
|
-
this._destroyRef = inject(DestroyRef);
|
|
24
|
-
if (!this._focusableItem) {
|
|
25
|
-
throw new Error('fdkIndirectFocusableItem directive must be used in conjunction with fdkFocusableItem directive');
|
|
26
|
-
}
|
|
27
|
-
if (this._indirectFocusableList && this._order) {
|
|
28
|
-
const focusableItem = this._focusableItem;
|
|
29
|
-
const indirectFocusableList = this._indirectFocusableList;
|
|
30
|
-
indirectFocusableList.register(this._focusableItem, this._order);
|
|
31
|
-
this._destroyRef.onDestroy(() => indirectFocusableList.unregister(focusableItem));
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: IndirectFocusableItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
35
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: IndirectFocusableItemDirective, isStandalone: true, selector: "[fdkIndirectFocusableItem]", ngImport: i0 }); }
|
|
36
|
-
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: IndirectFocusableItemDirective, decorators: [{
|
|
38
|
-
type: Directive,
|
|
39
|
-
args: [{
|
|
40
|
-
selector: '[fdkIndirectFocusableItem]',
|
|
41
|
-
standalone: true
|
|
42
|
-
}]
|
|
43
|
-
}], ctorParameters: () => [] });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kaXJlY3QtZm9jdXNhYmxlLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy9mb2N1c2FibGUtaXRlbS9pbmRpcmVjdC1mb2N1c2FibGUtaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFHdkUsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUcsSUFBSSxjQUFjLENBQy9ELG1DQUFtQyxDQUN0QyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBS0gsTUFBTSxPQUFPLDhCQUE4QjtJQVV2QyxjQUFjO0lBQ2Q7UUFWQSxjQUFjO1FBQ0osbUJBQWMsR0FBRyxNQUFNLENBQWdCLDRCQUE0QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkcsY0FBYztRQUNKLDJCQUFzQixHQUFHLE1BQU0sQ0FBQyw4QkFBOEIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlGLGNBQWM7UUFDSixXQUFNLEdBQW1DLE1BQU0sQ0FBQyxpQ0FBaUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pILGNBQWM7UUFDSixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUl2QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQ1gsZ0dBQWdHLENBQ25HLENBQUM7UUFDTixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsc0JBQXNCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDMUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7WUFDMUQscUJBQXFCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLENBQUM7SUFDTCxDQUFDOzhHQXZCUSw4QkFBOEI7a0dBQTlCLDhCQUE4Qjs7MkZBQTlCLDhCQUE4QjtrQkFKMUMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEluZGlyZWN0Rm9jdXNhYmxlTGlzdERpcmVjdGl2ZSB9IGZyb20gJy4uL2ZvY3VzYWJsZS1saXN0L2luZGlyZWN0LWZvY3VzYWJsZS1saXN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFIH0gZnJvbSAnLi9mb2N1c2FibGUtaXRlbS50b2tlbnMnO1xuaW1wb3J0IHsgRm9jdXNhYmxlSXRlbSB9IGZyb20gJy4vZm9jdXNhYmxlLml0ZW0nO1xuXG5leHBvcnQgY29uc3QgRkRLX0lORElSRUNUX0ZPQ1VTQUJMRV9JVEVNX09SREVSID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlciB8ICgoKSA9PiBudW1iZXIpPihcbiAgICAnRkRLX0lORElSRUNUX0ZPQ1VTQUJMRV9JVEVNX09SREVSJ1xuKTtcblxuLyoqXG4gKiBEaXJlY3RpdmUsIHRvIG1hcmsgdGhlIGZvY3VzYWJsZSBpdGVtIGluIHRoZSBmb2N1c2FibGUgbGlzdCwgd2hpY2hcbiAqIGlzIG5vdCB0aGUgZGlyZWN0IGNoaWxkIG9mIHRoZSBmb2N1c2FibGUgbGlzdC5cbiAqXG4gKiBVc2VmdWwgaW4gY2FzZXMsIHdoZW4geW91IG5lZWQgdG8gbWFrZSB0aGUgaXRlbSBmb2N1c2FibGUsIGFuZFxuICogeW91IGRvIG5vdCBoYXZlIHRoZSBhY2Nlc3MgdG8gdGhlIGZvY3VzYWJsZSBsaXN0LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtJbmRpcmVjdEZvY3VzYWJsZUl0ZW1dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEluZGlyZWN0Rm9jdXNhYmxlSXRlbURpcmVjdGl2ZSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2ZvY3VzYWJsZUl0ZW0gPSBpbmplY3Q8Rm9jdXNhYmxlSXRlbT4oRkRLX0ZPQ1VTQUJMRV9JVEVNX0RJUkVDVElWRSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfaW5kaXJlY3RGb2N1c2FibGVMaXN0ID0gaW5qZWN0KEluZGlyZWN0Rm9jdXNhYmxlTGlzdERpcmVjdGl2ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfb3JkZXI6IG51bWJlciB8ICgoKSA9PiBudW1iZXIpIHwgbnVsbCA9IGluamVjdChGREtfSU5ESVJFQ1RfRk9DVVNBQkxFX0lURU1fT1JERVIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoIXRoaXMuX2ZvY3VzYWJsZUl0ZW0pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAnZmRrSW5kaXJlY3RGb2N1c2FibGVJdGVtIGRpcmVjdGl2ZSBtdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBmZGtGb2N1c2FibGVJdGVtIGRpcmVjdGl2ZSdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2luZGlyZWN0Rm9jdXNhYmxlTGlzdCAmJiB0aGlzLl9vcmRlcikge1xuICAgICAgICAgICAgY29uc3QgZm9jdXNhYmxlSXRlbSA9IHRoaXMuX2ZvY3VzYWJsZUl0ZW07XG4gICAgICAgICAgICBjb25zdCBpbmRpcmVjdEZvY3VzYWJsZUxpc3QgPSB0aGlzLl9pbmRpcmVjdEZvY3VzYWJsZUxpc3Q7XG4gICAgICAgICAgICBpbmRpcmVjdEZvY3VzYWJsZUxpc3QucmVnaXN0ZXIodGhpcy5fZm9jdXNhYmxlSXRlbSwgdGhpcy5fb3JkZXIpO1xuICAgICAgICAgICAgdGhpcy5fZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gaW5kaXJlY3RGb2N1c2FibGVMaXN0LnVucmVnaXN0ZXIoZm9jdXNhYmxlSXRlbSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
2
|
-
import { getNativeElement } from '../../helpers/get-native-element';
|
|
3
|
-
const focusableTagnamesByDefault = new Set(['select', 'textarea', 'input', 'button', 'audio', 'video']);
|
|
4
|
-
const focusableTagOptions = [
|
|
5
|
-
{
|
|
6
|
-
tag: 'div',
|
|
7
|
-
attributes: [
|
|
8
|
-
{
|
|
9
|
-
name: 'contenteditable',
|
|
10
|
-
valueMatcher: (value) => coerceBooleanProperty(value)
|
|
11
|
-
}
|
|
12
|
-
]
|
|
13
|
-
}
|
|
14
|
-
];
|
|
15
|
-
/** @hidden */
|
|
16
|
-
export function isElementFocusableByDefault(el) {
|
|
17
|
-
const element = getNativeElement(el);
|
|
18
|
-
const tagName = element.tagName.toLowerCase();
|
|
19
|
-
if (focusableTagnamesByDefault.has(tagName)) {
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
return focusableTagOptions.some((tagOptions) => {
|
|
23
|
-
if (tagOptions.tag === tagName) {
|
|
24
|
-
return tagOptions.attributes.some((attribute) => {
|
|
25
|
-
const attrVal = element.getAttribute(attribute.name);
|
|
26
|
-
return attrVal && attribute.valueMatcher(attrVal);
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
return false;
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZWxlbWVudC1mb2N1c2FibGUtYnktZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3V0aWxzL2RpcmVjdGl2ZXMvZm9jdXNhYmxlLWl0ZW0vaXMtZWxlbWVudC1mb2N1c2FibGUtYnktZGVmYXVsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUdwRSxNQUFNLDBCQUEwQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBRXhHLE1BQU0sbUJBQW1CLEdBQUc7SUFDeEI7UUFDSSxHQUFHLEVBQUUsS0FBSztRQUNWLFVBQVUsRUFBRTtZQUNSO2dCQUNJLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLFlBQVksRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDO2FBQ2hFO1NBQ0o7S0FDSjtDQUNKLENBQUM7QUFFRixjQUFjO0FBQ2QsTUFBTSxVQUFVLDJCQUEyQixDQUFDLEVBQTBEO0lBQ2xHLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUMsSUFBSSwwQkFBMEIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtRQUMzQyxJQUFJLFVBQVUsQ0FBQyxHQUFHLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDN0IsT0FBTyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUM1QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckQsT0FBTyxPQUFPLElBQUksU0FBUyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0RCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0TmF0aXZlRWxlbWVudCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LW5hdGl2ZS1lbGVtZW50JztcbmltcG9ydCB7IEhhc0VsZW1lbnRSZWYgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuY29uc3QgZm9jdXNhYmxlVGFnbmFtZXNCeURlZmF1bHQgPSBuZXcgU2V0KFsnc2VsZWN0JywgJ3RleHRhcmVhJywgJ2lucHV0JywgJ2J1dHRvbicsICdhdWRpbycsICd2aWRlbyddKTtcblxuY29uc3QgZm9jdXNhYmxlVGFnT3B0aW9ucyA9IFtcbiAgICB7XG4gICAgICAgIHRhZzogJ2RpdicsXG4gICAgICAgIGF0dHJpYnV0ZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnY29udGVudGVkaXRhYmxlJyxcbiAgICAgICAgICAgICAgICB2YWx1ZU1hdGNoZXI6ICh2YWx1ZTogc3RyaW5nKSA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpXG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9XG5dO1xuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudEZvY3VzYWJsZUJ5RGVmYXVsdChlbDogSGFzRWxlbWVudFJlZjxFbGVtZW50PiB8IEVsZW1lbnQgfCBFbGVtZW50UmVmPEVsZW1lbnQ+KTogYm9vbGVhbiB7XG4gICAgY29uc3QgZWxlbWVudCA9IGdldE5hdGl2ZUVsZW1lbnQoZWwpO1xuICAgIGNvbnN0IHRhZ05hbWUgPSBlbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoZm9jdXNhYmxlVGFnbmFtZXNCeURlZmF1bHQuaGFzKHRhZ05hbWUpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmb2N1c2FibGVUYWdPcHRpb25zLnNvbWUoKHRhZ09wdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKHRhZ09wdGlvbnMudGFnID09PSB0YWdOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFnT3B0aW9ucy5hdHRyaWJ1dGVzLnNvbWUoKGF0dHJpYnV0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dHJWYWwgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUubmFtZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJWYWwgJiYgYXR0cmlidXRlLnZhbHVlTWF0Y2hlcihhdHRyVmFsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbn1cbiJdfQ==
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns true if the item configured to be focusable.
|
|
3
|
-
* @param item
|
|
4
|
-
*/
|
|
5
|
-
export function isItemFocusable(item) {
|
|
6
|
-
return Boolean(typeof item.isFocusable === 'function' ? item.isFocusable() : item.isFocusable);
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtaXRlbS1mb2N1c2FibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1pdGVtL2lzLWl0ZW0tZm9jdXNhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7R0FHRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsSUFBbUI7SUFDL0MsT0FBTyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDbkcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzYWJsZUl0ZW0gfSBmcm9tICcuL2ZvY3VzYWJsZS5pdGVtJztcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGl0ZW0gY29uZmlndXJlZCB0byBiZSBmb2N1c2FibGUuXG4gKiBAcGFyYW0gaXRlbVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNJdGVtRm9jdXNhYmxlKGl0ZW06IEZvY3VzYWJsZUl0ZW0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gQm9vbGVhbih0eXBlb2YgaXRlbS5pc0ZvY3VzYWJsZSA9PT0gJ2Z1bmN0aW9uJyA/IGl0ZW0uaXNGb2N1c2FibGUoKSA6IGl0ZW0uaXNGb2N1c2FibGUpO1xufVxuIl19
|