@fundamental-ngx/cdk 0.54.2 → 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,17 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { FocusKeyManagerItemDirective } from './focus-key-manager-item.directive';
|
|
3
|
-
import { FocusKeyManagerListDirective } from './focus-key-manager-list.directive';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class FocusKeyManagerHelpersModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusKeyManagerHelpersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: FocusKeyManagerHelpersModule, imports: [FocusKeyManagerItemDirective, FocusKeyManagerListDirective], exports: [FocusKeyManagerItemDirective, FocusKeyManagerListDirective] }); }
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusKeyManagerHelpersModule }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusKeyManagerHelpersModule, decorators: [{
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
imports: [FocusKeyManagerItemDirective, FocusKeyManagerListDirective],
|
|
14
|
-
exports: [FocusKeyManagerItemDirective, FocusKeyManagerListDirective]
|
|
15
|
-
}]
|
|
16
|
-
}] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMta2V5LW1hbmFnZXItaGVscGVycy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2ZvY3VzLWtleS1tYW5hZ2VyL2ZvY3VzLWtleS1tYW5hZ2VyLWhlbHBlcnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBTWxGLE1BQU0sT0FBTyw0QkFBNEI7OEdBQTVCLDRCQUE0QjsrR0FBNUIsNEJBQTRCLFlBSDNCLDRCQUE0QixFQUFFLDRCQUE0QixhQUMxRCw0QkFBNEIsRUFBRSw0QkFBNEI7K0dBRTNELDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFKeEMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSw0QkFBNEIsQ0FBQztvQkFDckUsT0FBTyxFQUFFLENBQUMsNEJBQTRCLEVBQUUsNEJBQTRCLENBQUM7aUJBQ3hFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VySXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vZm9jdXMta2V5LW1hbmFnZXItaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyTGlzdERpcmVjdGl2ZSB9IGZyb20gJy4vZm9jdXMta2V5LW1hbmFnZXItbGlzdC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtGb2N1c0tleU1hbmFnZXJJdGVtRGlyZWN0aXZlLCBGb2N1c0tleU1hbmFnZXJMaXN0RGlyZWN0aXZlXSxcbiAgICBleHBvcnRzOiBbRm9jdXNLZXlNYW5hZ2VySXRlbURpcmVjdGl2ZSwgRm9jdXNLZXlNYW5hZ2VyTGlzdERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNLZXlNYW5hZ2VySGVscGVyc01vZHVsZSB7fVxuIl19
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { booleanAttribute, Directive, ElementRef, forwardRef, HostBinding, HostListener, Input } from '@angular/core';
|
|
2
|
-
import { FocusKeyManagerListDirective } from './focus-key-manager-list.directive';
|
|
3
|
-
import { FOCUSABLE_ITEM } from './focus-key-manager.tokens';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./focus-key-manager-list.directive";
|
|
6
|
-
/** Directive to apply Angular Material FocusKeyManager to lists.
|
|
7
|
-
* To be used with FocusKeyManagerItemDirective
|
|
8
|
-
*/
|
|
9
|
-
export class FocusKeyManagerItemDirective {
|
|
10
|
-
/** @hidden */
|
|
11
|
-
get _tabindex() {
|
|
12
|
-
return this.initialFocus ? 0 : this.nativeElement?.tabIndex ?? -1;
|
|
13
|
-
}
|
|
14
|
-
/** Native element of the item */
|
|
15
|
-
get nativeElement() {
|
|
16
|
-
return this._elRef?.nativeElement;
|
|
17
|
-
}
|
|
18
|
-
/** @hidden */
|
|
19
|
-
get _focusKeyManager() {
|
|
20
|
-
return this._list.focusKeyManager;
|
|
21
|
-
}
|
|
22
|
-
/** @hidden */
|
|
23
|
-
constructor(_list, _elRef) {
|
|
24
|
-
this._list = _list;
|
|
25
|
-
this._elRef = _elRef;
|
|
26
|
-
/** Whether item should be initially focused */
|
|
27
|
-
this.initialFocus = false;
|
|
28
|
-
}
|
|
29
|
-
/** @hidden */
|
|
30
|
-
_onFocus() {
|
|
31
|
-
// For cases where initially selected item doesn't have 0 index
|
|
32
|
-
this._focusKeyManager?.updateActiveItem(this);
|
|
33
|
-
}
|
|
34
|
-
/** @hidden */
|
|
35
|
-
_onKeydown(event) {
|
|
36
|
-
this._focusKeyManager?.onKeydown(event);
|
|
37
|
-
}
|
|
38
|
-
/** Focus current item native element */
|
|
39
|
-
focus() {
|
|
40
|
-
this._elRef?.nativeElement.focus();
|
|
41
|
-
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusKeyManagerItemDirective, deps: [{ token: i1.FocusKeyManagerListDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
43
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.3", type: FocusKeyManagerItemDirective, isStandalone: true, selector: "[fdkFocusKeyManagerItem]", inputs: { initialFocus: ["initialFocus", "initialFocus", booleanAttribute], _tabindex: "_tabindex" }, host: { listeners: { "focus": "_onFocus()", "keydown": "_onKeydown($event)" }, properties: { "attr.tabindex": "this._tabindex" } }, providers: [{ provide: FOCUSABLE_ITEM, useExisting: forwardRef(() => FocusKeyManagerItemDirective) }], ngImport: i0 }); }
|
|
44
|
-
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusKeyManagerItemDirective, decorators: [{
|
|
46
|
-
type: Directive,
|
|
47
|
-
args: [{
|
|
48
|
-
selector: '[fdkFocusKeyManagerItem]',
|
|
49
|
-
standalone: true,
|
|
50
|
-
providers: [{ provide: FOCUSABLE_ITEM, useExisting: forwardRef(() => FocusKeyManagerItemDirective) }]
|
|
51
|
-
}]
|
|
52
|
-
}], ctorParameters: () => [{ type: i1.FocusKeyManagerListDirective }, { type: i0.ElementRef }], propDecorators: { initialFocus: [{
|
|
53
|
-
type: Input,
|
|
54
|
-
args: [{ transform: booleanAttribute }]
|
|
55
|
-
}], _tabindex: [{
|
|
56
|
-
type: Input
|
|
57
|
-
}, {
|
|
58
|
-
type: HostBinding,
|
|
59
|
-
args: ['attr.tabindex']
|
|
60
|
-
}], _onFocus: [{
|
|
61
|
-
type: HostListener,
|
|
62
|
-
args: ['focus']
|
|
63
|
-
}], _onKeydown: [{
|
|
64
|
-
type: HostListener,
|
|
65
|
-
args: ['keydown', ['$event']]
|
|
66
|
-
}] } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMta2V5LW1hbmFnZXItaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2ZvY3VzLWtleS1tYW5hZ2VyL2ZvY3VzLWtleS1tYW5hZ2VyLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUU1RDs7R0FFRztBQU1ILE1BQU0sT0FBTyw0QkFBNEI7SUFLckMsY0FBYztJQUNkLElBRUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsaUNBQWlDO0lBQ2pDLElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUM7SUFDdEMsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUFZLGdCQUFnQjtRQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxjQUFjO0lBQ2QsWUFDcUIsS0FBbUMsRUFDbkMsTUFBa0I7UUFEbEIsVUFBSyxHQUFMLEtBQUssQ0FBOEI7UUFDbkMsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQXhCdkMsK0NBQStDO1FBRS9DLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0lBdUJsQixDQUFDO0lBRUosY0FBYztJQUVkLFFBQVE7UUFDSiwrREFBK0Q7UUFDL0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxjQUFjO0lBRWQsVUFBVSxDQUFDLEtBQW9CO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxLQUFLO1FBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkMsQ0FBQzs4R0E1Q1EsNEJBQTRCO2tHQUE1Qiw0QkFBNEIscUhBRWpCLGdCQUFnQiw0S0FKekIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLENBQUM7OzJGQUU1Riw0QkFBNEI7a0JBTHhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw2QkFBNkIsQ0FBQyxFQUFFLENBQUM7aUJBQ3hHOzBIQUlHLFlBQVk7c0JBRFgsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNbEMsU0FBUztzQkFGWixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGVBQWU7Z0JBdUI1QixRQUFRO3NCQURQLFlBQVk7dUJBQUMsT0FBTztnQkFRckIsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzYWJsZU9wdGlvbiwgRm9jdXNLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyTGlzdERpcmVjdGl2ZSB9IGZyb20gJy4vZm9jdXMta2V5LW1hbmFnZXItbGlzdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRk9DVVNBQkxFX0lURU0gfSBmcm9tICcuL2ZvY3VzLWtleS1tYW5hZ2VyLnRva2Vucyc7XG5cbi8qKiBEaXJlY3RpdmUgdG8gYXBwbHkgQW5ndWxhciBNYXRlcmlhbCBGb2N1c0tleU1hbmFnZXIgdG8gbGlzdHMuXG4gKiBUbyBiZSB1c2VkIHdpdGggRm9jdXNLZXlNYW5hZ2VySXRlbURpcmVjdGl2ZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtGb2N1c0tleU1hbmFnZXJJdGVtXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEZPQ1VTQUJMRV9JVEVNLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb2N1c0tleU1hbmFnZXJJdGVtRGlyZWN0aXZlKSB9XVxufSlcbmV4cG9ydCBjbGFzcyBGb2N1c0tleU1hbmFnZXJJdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgRm9jdXNhYmxlT3B0aW9uIHtcbiAgICAvKiogV2hldGhlciBpdGVtIHNob3VsZCBiZSBpbml0aWFsbHkgZm9jdXNlZCAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIGluaXRpYWxGb2N1cyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gICAgZ2V0IF90YWJpbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pbml0aWFsRm9jdXMgPyAwIDogdGhpcy5uYXRpdmVFbGVtZW50Py50YWJJbmRleCA/PyAtMTtcbiAgICB9XG5cbiAgICAvKiogTmF0aXZlIGVsZW1lbnQgb2YgdGhlIGl0ZW0gKi9cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGdldCBfZm9jdXNLZXlNYW5hZ2VyKCk6IEZvY3VzS2V5TWFuYWdlcjxGb2N1c2FibGVPcHRpb24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xpc3QuZm9jdXNLZXlNYW5hZ2VyO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2xpc3Q6IEZvY3VzS2V5TWFuYWdlckxpc3REaXJlY3RpdmUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsUmVmOiBFbGVtZW50UmVmXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gICAgX29uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIC8vIEZvciBjYXNlcyB3aGVyZSBpbml0aWFsbHkgc2VsZWN0ZWQgaXRlbSBkb2Vzbid0IGhhdmUgMCBpbmRleFxuICAgICAgICB0aGlzLl9mb2N1c0tleU1hbmFnZXI/LnVwZGF0ZUFjdGl2ZUl0ZW0odGhpcyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBfb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZvY3VzS2V5TWFuYWdlcj8ub25LZXlkb3duKGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKiogRm9jdXMgY3VycmVudCBpdGVtIG5hdGl2ZSBlbGVtZW50ICovXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VsUmVmPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { FocusKeyManager } from '@angular/cdk/a11y';
|
|
2
|
-
import { ChangeDetectorRef, ContentChildren, DestroyRef, Directive, inject, Input, Optional, QueryList } from '@angular/core';
|
|
3
|
-
import { filter } from 'rxjs/operators';
|
|
4
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
|
-
import { RtlService } from '../../services/rtl.service';
|
|
6
|
-
import { FOCUSABLE_ITEM } from './focus-key-manager.tokens';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../services/rtl.service";
|
|
9
|
-
/** Directive to apply Angular Material FocusKeyManager to lists.
|
|
10
|
-
* To be used with FocusKeyManagerItemDirective
|
|
11
|
-
*/
|
|
12
|
-
export class FocusKeyManagerListDirective {
|
|
13
|
-
/** @hidden */
|
|
14
|
-
get focusKeyManager() {
|
|
15
|
-
return this._focusKeyManager;
|
|
16
|
-
}
|
|
17
|
-
/** @hidden */
|
|
18
|
-
constructor(_rtlService, _cdr) {
|
|
19
|
-
this._rtlService = _rtlService;
|
|
20
|
-
this._cdr = _cdr;
|
|
21
|
-
/** @hidden */
|
|
22
|
-
this._onDestroy$ = inject(DestroyRef);
|
|
23
|
-
}
|
|
24
|
-
/** @hidden */
|
|
25
|
-
ngOnChanges(changes) {
|
|
26
|
-
if (!this._focusKeyManager) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
if ('orientation' in changes) {
|
|
30
|
-
this._applyOrientation();
|
|
31
|
-
}
|
|
32
|
-
if ('skiPredicate' in changes) {
|
|
33
|
-
this._focusKeyManager.skipPredicate(this.skipPredicate);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
/** @hidden */
|
|
37
|
-
ngAfterContentInit() {
|
|
38
|
-
this._focusKeyManager = new FocusKeyManager(this._items).skipPredicate(this.skipPredicate);
|
|
39
|
-
this._applyOrientation();
|
|
40
|
-
this._cdr.detectChanges();
|
|
41
|
-
this._rtlService?.rtl
|
|
42
|
-
.pipe(filter(() => this.orientation === 'horizontal'), takeUntilDestroyed(this._onDestroy$))
|
|
43
|
-
.subscribe(() => this._applyOrientation());
|
|
44
|
-
}
|
|
45
|
-
/** @hidden */
|
|
46
|
-
ngOnDestroy() {
|
|
47
|
-
this._focusKeyManager.destroy();
|
|
48
|
-
}
|
|
49
|
-
/** Focus certain list's item */
|
|
50
|
-
focusItem(item) {
|
|
51
|
-
if (typeof item === 'number') {
|
|
52
|
-
this._focusKeyManager.setActiveItem(item);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
this._focusKeyManager.setActiveItem(item);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/** @hidden */
|
|
59
|
-
_applyOrientation() {
|
|
60
|
-
switch (this.orientation) {
|
|
61
|
-
case 'horizontal':
|
|
62
|
-
this._focusKeyManager.withHorizontalOrientation(this._rtlService?.rtl.value ? 'rtl' : 'ltr');
|
|
63
|
-
break;
|
|
64
|
-
case 'vertical':
|
|
65
|
-
this._focusKeyManager.withVerticalOrientation(true);
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusKeyManagerListDirective, deps: [{ token: i1.RtlService, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
70
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: FocusKeyManagerListDirective, isStandalone: true, selector: "[fdkFocusKeyManagerList]", inputs: { orientation: "orientation", skipPredicate: "skipPredicate" }, queries: [{ propertyName: "_items", predicate: FOCUSABLE_ITEM }], usesOnChanges: true, ngImport: i0 }); }
|
|
71
|
-
}
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusKeyManagerListDirective, decorators: [{
|
|
73
|
-
type: Directive,
|
|
74
|
-
args: [{
|
|
75
|
-
selector: `[fdkFocusKeyManagerList]`,
|
|
76
|
-
standalone: true
|
|
77
|
-
}]
|
|
78
|
-
}], ctorParameters: () => [{ type: i1.RtlService, decorators: [{
|
|
79
|
-
type: Optional
|
|
80
|
-
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { orientation: [{
|
|
81
|
-
type: Input
|
|
82
|
-
}], skipPredicate: [{
|
|
83
|
-
type: Input
|
|
84
|
-
}], _items: [{
|
|
85
|
-
type: ContentChildren,
|
|
86
|
-
args: [FOCUSABLE_ITEM]
|
|
87
|
-
}] } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMta2V5LW1hbmFnZXItbGlzdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2ZvY3VzLWtleS1tYW5hZ2VyL2ZvY3VzLWtleS1tYW5hZ2VyLWxpc3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckUsT0FBTyxFQUVILGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsVUFBVSxFQUNWLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixTQUFTLEVBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUU1RDs7R0FFRztBQUtILE1BQU0sT0FBTyw0QkFBNEI7SUFlckMsY0FBYztJQUNkLElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFRRCxjQUFjO0lBQ2QsWUFDaUMsV0FBdUIsRUFDbkMsSUFBdUI7UUFEWCxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUNuQyxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQU41QyxjQUFjO1FBQ0csZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFNL0MsQ0FBQztJQUVKLGNBQWM7SUFDZCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3pCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxhQUFhLElBQUksT0FBTyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELElBQUksY0FBYyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVELENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNkLGtCQUFrQjtRQUNkLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBUSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVsRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRzthQUNoQixJQUFJLENBQ0QsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssWUFBWSxDQUFDLEVBQy9DLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDdkM7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDUCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELGdDQUFnQztJQUNoQyxTQUFTLENBQUMsSUFBb0I7UUFDMUIsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDTixpQkFBaUI7UUFDckIsUUFBUSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkIsS0FBSyxZQUFZO2dCQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdGLE1BQU07WUFDVixLQUFLLFVBQVU7Z0JBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwRCxNQUFNO1FBQ2QsQ0FBQztJQUNMLENBQUM7OEdBdkZRLDRCQUE0QjtrR0FBNUIsNEJBQTRCLG1MQVlwQixjQUFjOzsyRkFadEIsNEJBQTRCO2tCQUp4QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBNkJRLFFBQVE7eUVBdkJiLFdBQVc7c0JBRFYsS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBS0csTUFBTTtzQkFEZCxlQUFlO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c2FibGVPcHRpb24sIEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFJ0bFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ydGwuc2VydmljZSc7XG5pbXBvcnQgeyBGT0NVU0FCTEVfSVRFTSB9IGZyb20gJy4vZm9jdXMta2V5LW1hbmFnZXIudG9rZW5zJztcblxuLyoqIERpcmVjdGl2ZSB0byBhcHBseSBBbmd1bGFyIE1hdGVyaWFsIEZvY3VzS2V5TWFuYWdlciB0byBsaXN0cy5cbiAqIFRvIGJlIHVzZWQgd2l0aCBGb2N1c0tleU1hbmFnZXJJdGVtRGlyZWN0aXZlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBgW2Zka0ZvY3VzS2V5TWFuYWdlckxpc3RdYCxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEZvY3VzS2V5TWFuYWdlckxpc3REaXJlY3RpdmU8VEl0ZW0gZXh0ZW5kcyBGb2N1c2FibGVPcHRpb24gPSBSZWNvcmQ8YW55LCBhbnk+ICYgRm9jdXNhYmxlT3B0aW9uPlxuICAgIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3lcbntcbiAgICAvKiogT3JpZW50YXRpb24gZm9yIHRoZSBGb2N1c0tleU1hbmFnZXIgKi9cbiAgICBASW5wdXQoKVxuICAgIG9yaWVudGF0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnO1xuXG4gICAgLyoqIFNraXAgcHJlZGljYXRlIGZvciB0aGUgRm9jdXNLZXlNYW5hZ2VyICovXG4gICAgQElucHV0KClcbiAgICBza2lwUHJlZGljYXRlOiAoaXRlbTogVEl0ZW0pID0+IGJvb2xlYW47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRk9DVVNBQkxFX0lURU0pXG4gICAgcmVhZG9ubHkgX2l0ZW1zOiBRdWVyeUxpc3Q8VEl0ZW0+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgZm9jdXNLZXlNYW5hZ2VyKCk6IEZvY3VzS2V5TWFuYWdlcjxUSXRlbT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9jdXNLZXlNYW5hZ2VyO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9jdXNLZXlNYW5hZ2VyOiBGb2N1c0tleU1hbmFnZXI8VEl0ZW0+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBfcnRsU2VydmljZTogUnRsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2ZvY3VzS2V5TWFuYWdlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCdvcmllbnRhdGlvbicgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5fYXBwbHlPcmllbnRhdGlvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCdza2lQcmVkaWNhdGUnIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzS2V5TWFuYWdlci5za2lwUHJlZGljYXRlKHRoaXMuc2tpcFByZWRpY2F0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9jdXNLZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcjxUSXRlbT4odGhpcy5faXRlbXMpLnNraXBQcmVkaWNhdGUodGhpcy5za2lwUHJlZGljYXRlKTtcblxuICAgICAgICB0aGlzLl9hcHBseU9yaWVudGF0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLl9ydGxTZXJ2aWNlPy5ydGxcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9hcHBseU9yaWVudGF0aW9uKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZvY3VzS2V5TWFuYWdlci5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqIEZvY3VzIGNlcnRhaW4gbGlzdCdzIGl0ZW0gKi9cbiAgICBmb2N1c0l0ZW0oaXRlbTogbnVtYmVyIHwgVEl0ZW0pOiBhbnkge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c0tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShpdGVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzS2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGl0ZW0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hcHBseU9yaWVudGF0aW9uKCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKHRoaXMub3JpZW50YXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ2hvcml6b250YWwnOlxuICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzS2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuX3J0bFNlcnZpY2U/LnJ0bC52YWx1ZSA/ICdydGwnIDogJ2x0cicpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndmVydGljYWwnOlxuICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzS2V5TWFuYWdlci53aXRoVmVydGljYWxPcmllbnRhdGlvbih0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const FOCUSABLE_ITEM = new InjectionToken('Focusable Option');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMta2V5LW1hbmFnZXIudG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy9mb2N1cy1rZXktbWFuYWdlci9mb2N1cy1rZXktbWFuYWdlci50b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWtCLGtCQUFrQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c2FibGVPcHRpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgRk9DVVNBQkxFX0lURU0gPSBuZXcgSW5qZWN0aW9uVG9rZW48Rm9jdXNhYmxlT3B0aW9uPignRm9jdXNhYmxlIE9wdGlvbicpO1xuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './focus-key-manager-helpers.module';
|
|
2
|
-
export * from './focus-key-manager-item.directive';
|
|
3
|
-
export * from './focus-key-manager-list.directive';
|
|
4
|
-
export * from './focus-key-manager.tokens';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2ZvY3VzLWtleS1tYW5hZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZvY3VzLWtleS1tYW5hZ2VyLWhlbHBlcnMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXMta2V5LW1hbmFnZXItaXRlbS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb2N1cy1rZXktbWFuYWdlci1saXN0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZvY3VzLWtleS1tYW5hZ2VyLnRva2Vucyc7XG4iXX0=
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import { DOWN_ARROW, LEFT_ARROW, PAGE_DOWN, PAGE_UP, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';
|
|
2
|
-
import { ContentChildren, DestroyRef, Directive, EventEmitter, Input, Output, QueryList, booleanAttribute, inject } from '@angular/core';
|
|
3
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
-
import { findLastIndex } from 'lodash-es';
|
|
5
|
-
import { merge, startWith, switchMap } from 'rxjs';
|
|
6
|
-
import { KeyUtil } from '../../functions';
|
|
7
|
-
import { FDK_FOCUSABLE_LIST_DIRECTIVE } from '../focusable-list';
|
|
8
|
-
import { FDK_FOCUSABLE_GRID_DIRECTIVE } from './focusable-grid.tokens';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export class FocusableGridDirective {
|
|
11
|
-
constructor() {
|
|
12
|
-
/** Direction of the content. */
|
|
13
|
-
this.contentDirection = 'ltr';
|
|
14
|
-
/** Whether the item in the previous/next row should be selected when going out of the first/last cell in the row. Default is false. */
|
|
15
|
-
this.wrapHorizontally = false;
|
|
16
|
-
/** Specify which item to select in prev/next row if its length smaller than current index. Nullish value means do not select. Default is null. */
|
|
17
|
-
this.shortRowFocus = null;
|
|
18
|
-
/** Event emitted when item focused, contains item's position info. */
|
|
19
|
-
this.itemFocused = new EventEmitter();
|
|
20
|
-
/** Event emitted when whole row focused, contains row's position info. */
|
|
21
|
-
this.rowFocused = new EventEmitter();
|
|
22
|
-
/** @hidden */
|
|
23
|
-
this._destroyRef = inject(DestroyRef);
|
|
24
|
-
}
|
|
25
|
-
/** @hidden */
|
|
26
|
-
ngAfterViewInit() {
|
|
27
|
-
this._focusableLists.changes
|
|
28
|
-
.pipe(startWith(this._focusableLists), takeUntilDestroyed(this._destroyRef))
|
|
29
|
-
.subscribe((lists) => lists.forEach((list, index) => list._setGridPosition({ rowIndex: index, totalRows: this._focusableLists.length })));
|
|
30
|
-
this._focusableLists.changes
|
|
31
|
-
.pipe(startWith(this._focusableLists), switchMap((queryList) => merge(...queryList.toArray().map((list) => list._gridListFocused$))), takeUntilDestroyed(this._destroyRef))
|
|
32
|
-
.subscribe((focusedEvent) => {
|
|
33
|
-
this.rowFocused.emit(focusedEvent);
|
|
34
|
-
this._focusableLists.forEach((list) => list.setTabbable(false));
|
|
35
|
-
this._focusableLists.forEach((list) => list._setItemsTabbable(false));
|
|
36
|
-
});
|
|
37
|
-
this._focusableLists.changes
|
|
38
|
-
.pipe(startWith(this._focusableLists), switchMap((queryList) => merge(...queryList.toArray().map((list) => list._gridItemFocused$))), takeUntilDestroyed(this._destroyRef))
|
|
39
|
-
.subscribe((focusedEvent) => {
|
|
40
|
-
this.itemFocused.emit(focusedEvent);
|
|
41
|
-
this._focusableLists.forEach((list) => list.setTabbable(false));
|
|
42
|
-
this._focusableLists.forEach((list) => list._setItemsTabbable(false));
|
|
43
|
-
});
|
|
44
|
-
this._focusableLists.changes
|
|
45
|
-
.pipe(startWith(this._focusableLists), switchMap((queryList) => merge(...queryList.toArray().map((list) => list._keydown$))), takeUntilDestroyed(this._destroyRef))
|
|
46
|
-
.subscribe(({ event, list, activeItemIndex }) => this._onKeydown(event, list, activeItemIndex));
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Focus cell by position.
|
|
50
|
-
* @param position position of the cell
|
|
51
|
-
*/
|
|
52
|
-
focusCell(position) {
|
|
53
|
-
const list = this._focusableLists.get(position.rowIndex);
|
|
54
|
-
if (list) {
|
|
55
|
-
list.setActiveItem(position.colIndex);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/** @hidden */
|
|
59
|
-
_onKeydown(event, list, activeItemIndex) {
|
|
60
|
-
if (!KeyUtil.isKeyCode(event, [UP_ARROW, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, PAGE_DOWN, PAGE_UP])) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
const lists = this._focusableLists.toArray();
|
|
64
|
-
const currentRowIndex = lists.findIndex((item) => item === list);
|
|
65
|
-
let nextRowIndex;
|
|
66
|
-
let nextRowItemIndex = activeItemIndex ?? 0;
|
|
67
|
-
let scrollIntoView;
|
|
68
|
-
const isFirstItemLtr = activeItemIndex === 0 && this.contentDirection !== 'rtl';
|
|
69
|
-
const isLastItemRtl = activeItemIndex === list._focusableItems.length - 1 && this.contentDirection === 'rtl';
|
|
70
|
-
const isFirstItemRtl = activeItemIndex === 0 && this.contentDirection === 'rtl';
|
|
71
|
-
const isLastItemLtr = activeItemIndex === list._focusableItems.length - 1 && this.contentDirection !== 'rtl';
|
|
72
|
-
switch (event.keyCode) {
|
|
73
|
-
case UP_ARROW:
|
|
74
|
-
event.preventDefault();
|
|
75
|
-
nextRowIndex = currentRowIndex - 1;
|
|
76
|
-
break;
|
|
77
|
-
case DOWN_ARROW:
|
|
78
|
-
event.preventDefault();
|
|
79
|
-
nextRowIndex = currentRowIndex + 1;
|
|
80
|
-
break;
|
|
81
|
-
case LEFT_ARROW:
|
|
82
|
-
if (this.wrapHorizontally && (isFirstItemLtr || isLastItemRtl)) {
|
|
83
|
-
event.preventDefault();
|
|
84
|
-
nextRowIndex = currentRowIndex - 1;
|
|
85
|
-
nextRowItemIndex = lists[nextRowIndex]?._focusableItems.length - 1;
|
|
86
|
-
}
|
|
87
|
-
break;
|
|
88
|
-
case RIGHT_ARROW:
|
|
89
|
-
if (this.wrapHorizontally && (isFirstItemRtl || isLastItemLtr)) {
|
|
90
|
-
event.preventDefault();
|
|
91
|
-
nextRowIndex = currentRowIndex + 1;
|
|
92
|
-
nextRowItemIndex = 0;
|
|
93
|
-
}
|
|
94
|
-
break;
|
|
95
|
-
case PAGE_DOWN:
|
|
96
|
-
event.preventDefault();
|
|
97
|
-
nextRowIndex = findLastIndex(lists, (item) => item._isVisible);
|
|
98
|
-
scrollIntoView = 'top';
|
|
99
|
-
break;
|
|
100
|
-
case PAGE_UP:
|
|
101
|
-
event.preventDefault();
|
|
102
|
-
nextRowIndex = lists.findIndex((item) => item._isVisible);
|
|
103
|
-
scrollIntoView = 'bottom';
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
const nextRow = lists[nextRowIndex ?? -1];
|
|
107
|
-
if (nextRow) {
|
|
108
|
-
if (nextRow.focusable) {
|
|
109
|
-
nextRow.focus(scrollIntoView);
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
const itemIndex = this._getItemIndex(nextRow, nextRowItemIndex);
|
|
113
|
-
if (itemIndex != null) {
|
|
114
|
-
nextRow.setActiveItem(itemIndex, scrollIntoView);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
/** @hidden */
|
|
119
|
-
_getItemIndex(list, activeIndex) {
|
|
120
|
-
if (activeIndex >= 0 && activeIndex < list._focusableItems.length) {
|
|
121
|
-
return activeIndex;
|
|
122
|
-
}
|
|
123
|
-
if (this.shortRowFocus == null) {
|
|
124
|
-
return null;
|
|
125
|
-
}
|
|
126
|
-
return this.shortRowFocus === 'first' ? 0 : list._focusableItems.length - 1;
|
|
127
|
-
}
|
|
128
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusableGridDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
129
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.3", type: FocusableGridDirective, isStandalone: true, selector: "[fdkFocusableGrid]", inputs: { contentDirection: "contentDirection", wrapHorizontally: ["wrapHorizontally", "wrapHorizontally", booleanAttribute], shortRowFocus: "shortRowFocus" }, outputs: { itemFocused: "itemFocused", rowFocused: "rowFocused" }, providers: [
|
|
130
|
-
{
|
|
131
|
-
provide: FDK_FOCUSABLE_GRID_DIRECTIVE,
|
|
132
|
-
useExisting: FocusableGridDirective
|
|
133
|
-
}
|
|
134
|
-
], queries: [{ propertyName: "_focusableLists", predicate: FDK_FOCUSABLE_LIST_DIRECTIVE, descendants: true }], exportAs: ["fdkFocusableGrid"], ngImport: i0 }); }
|
|
135
|
-
}
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusableGridDirective, decorators: [{
|
|
137
|
-
type: Directive,
|
|
138
|
-
args: [{
|
|
139
|
-
selector: '[fdkFocusableGrid]',
|
|
140
|
-
exportAs: 'fdkFocusableGrid',
|
|
141
|
-
standalone: true,
|
|
142
|
-
providers: [
|
|
143
|
-
{
|
|
144
|
-
provide: FDK_FOCUSABLE_GRID_DIRECTIVE,
|
|
145
|
-
useExisting: FocusableGridDirective
|
|
146
|
-
}
|
|
147
|
-
]
|
|
148
|
-
}]
|
|
149
|
-
}], propDecorators: { contentDirection: [{
|
|
150
|
-
type: Input
|
|
151
|
-
}], wrapHorizontally: [{
|
|
152
|
-
type: Input,
|
|
153
|
-
args: [{ transform: booleanAttribute }]
|
|
154
|
-
}], shortRowFocus: [{
|
|
155
|
-
type: Input
|
|
156
|
-
}], itemFocused: [{
|
|
157
|
-
type: Output
|
|
158
|
-
}], rowFocused: [{
|
|
159
|
-
type: Output
|
|
160
|
-
}], _focusableLists: [{
|
|
161
|
-
type: ContentChildren,
|
|
162
|
-
args: [FDK_FOCUSABLE_LIST_DIRECTIVE, { descendants: true }]
|
|
163
|
-
}] } });
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWdyaWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy9mb2N1c2FibGUtZ3JpZC9mb2N1c2FibGUtZ3JpZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUcsT0FBTyxFQUVILGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcxQyxPQUFPLEVBQUUsNEJBQTRCLEVBQTBDLE1BQU0sbUJBQW1CLENBQUM7QUFDekcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBa0J2RSxNQUFNLE9BQU8sc0JBQXNCO0lBWG5DO1FBWUksZ0NBQWdDO1FBRWhDLHFCQUFnQixHQUF5QixLQUFLLENBQUM7UUFFL0MsdUlBQXVJO1FBRXZJLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUV6QixrSkFBa0o7UUFFbEosa0JBQWEsR0FBK0IsSUFBSSxDQUFDO1FBRWpELHNFQUFzRTtRQUU3RCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBRWpF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QUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hFLE9BQU8sV0FBVyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7OEdBeEtRLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGlLQU1YLGdCQUFnQixtSEFiekI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsNEJBQTRCO2dCQUNyQyxXQUFXLEVBQUUsc0JBQXNCO2FBQ3RDO1NBQ0osMERBd0JnQiw0QkFBNEI7OzJGQXRCcEMsc0JBQXNCO2tCQVhsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLDRCQUE0Qjs0QkFDckMsV0FBVyx3QkFBd0I7eUJBQ3RDO3FCQUNKO2lCQUNKOzhCQUlHLGdCQUFnQjtzQkFEZixLQUFLO2dCQUtOLGdCQUFnQjtzQkFEZixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUt0QyxhQUFhO3NCQURaLEtBQUs7Z0JBS0csV0FBVztzQkFEbkIsTUFBTTtnQkFLRSxVQUFVO3NCQURsQixNQUFNO2dCQUtVLGVBQWU7c0JBRC9CLGVBQWU7dUJBQUMsNEJBQTRCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9XTl9BUlJPVywgTEVGVF9BUlJPVywgUEFHRV9ET1dOLCBQQUdFX1VQLCBSSUdIVF9BUlJPVywgVVBfQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGZpbmRMYXN0SW5kZXggfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgbWVyZ2UsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL251bGxhYmxlJztcbmltcG9ydCB7IEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbiwgRm9jdXNhYmxlTGlzdFBvc2l0aW9uIH0gZnJvbSAnLi4vZm9jdXNhYmxlLWl0ZW0nO1xuaW1wb3J0IHsgRkRLX0ZPQ1VTQUJMRV9MSVNUX0RJUkVDVElWRSwgRm9jdXNhYmxlTGlzdERpcmVjdGl2ZSwgU2Nyb2xsUG9zaXRpb24gfSBmcm9tICcuLi9mb2N1c2FibGUtbGlzdCc7XG5pbXBvcnQgeyBGREtfRk9DVVNBQkxFX0dSSURfRElSRUNUSVZFIH0gZnJvbSAnLi9mb2N1c2FibGUtZ3JpZC50b2tlbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvY3VzYWJsZUNlbGxQb3NpdGlvbiB7XG4gICAgcm93SW5kZXg6IG51bWJlcjtcbiAgICBjb2xJbmRleDogbnVtYmVyO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtGb2N1c2FibGVHcmlkXScsXG4gICAgZXhwb3J0QXM6ICdmZGtGb2N1c2FibGVHcmlkJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGREtfRk9DVVNBQkxFX0dSSURfRElSRUNUSVZFLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEZvY3VzYWJsZUdyaWREaXJlY3RpdmVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNhYmxlR3JpZERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBEaXJlY3Rpb24gb2YgdGhlIGNvbnRlbnQuICovXG4gICAgQElucHV0KClcbiAgICBjb250ZW50RGlyZWN0aW9uOiAnbHRyJyB8ICdydGwnIHwgbnVsbCA9ICdsdHInO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGl0ZW0gaW4gdGhlIHByZXZpb3VzL25leHQgcm93IHNob3VsZCBiZSBzZWxlY3RlZCB3aGVuIGdvaW5nIG91dCBvZiB0aGUgZmlyc3QvbGFzdCBjZWxsIGluIHRoZSByb3cuIERlZmF1bHQgaXMgZmFsc2UuICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgd3JhcEhvcml6b250YWxseSA9IGZhbHNlO1xuXG4gICAgLyoqIFNwZWNpZnkgd2hpY2ggaXRlbSB0byBzZWxlY3QgaW4gcHJldi9uZXh0IHJvdyBpZiBpdHMgbGVuZ3RoIHNtYWxsZXIgdGhhbiBjdXJyZW50IGluZGV4LiBOdWxsaXNoIHZhbHVlIG1lYW5zIGRvIG5vdCBzZWxlY3QuIERlZmF1bHQgaXMgbnVsbC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3J0Um93Rm9jdXM6IE51bGxhYmxlPCdmaXJzdCcgfCAnbGFzdCc+ID0gbnVsbDtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gaXRlbSBmb2N1c2VkLCBjb250YWlucyBpdGVtJ3MgcG9zaXRpb24gaW5mby4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpdGVtRm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNhYmxlSXRlbVBvc2l0aW9uPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB3aG9sZSByb3cgZm9jdXNlZCwgY29udGFpbnMgcm93J3MgcG9zaXRpb24gaW5mby4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSByb3dGb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c2FibGVMaXN0UG9zaXRpb24+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRkRLX0ZPQ1VTQUJMRV9MSVNUX0RJUkVDVElWRSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzYWJsZUxpc3RzOiBRdWVyeUxpc3Q8Rm9jdXNhYmxlTGlzdERpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlTGlzdHMuY2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKHRoaXMuX2ZvY3VzYWJsZUxpc3RzKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgobGlzdHMpID0+XG4gICAgICAgICAgICAgICAgbGlzdHMuZm9yRWFjaCgobGlzdCwgaW5kZXgpID0+XG4gICAgICAgICAgICAgICAgICAgIGxpc3QuX3NldEdyaWRQb3NpdGlvbih7IHJvd0luZGV4OiBpbmRleCwgdG90YWxSb3dzOiB0aGlzLl9mb2N1c2FibGVMaXN0cy5sZW5ndGggfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZUxpc3RzLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLl9mb2N1c2FibGVMaXN0cyksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChxdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxGb2N1c2FibGVMaXN0RGlyZWN0aXZlPikgPT5cbiAgICAgICAgICAgICAgICAgICAgbWVyZ2UoLi4ucXVlcnlMaXN0LnRvQXJyYXkoKS5tYXAoKGxpc3QpID0+IGxpc3QuX2dyaWRMaXN0Rm9jdXNlZCQpKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChmb2N1c2VkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvd0ZvY3VzZWQuZW1pdChmb2N1c2VkRXZlbnQpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNhYmxlTGlzdHMuZm9yRWFjaCgobGlzdCkgPT4gbGlzdC5zZXRUYWJiYWJsZShmYWxzZSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzYWJsZUxpc3RzLmZvckVhY2goKGxpc3QpID0+IGxpc3QuX3NldEl0ZW1zVGFiYmFibGUoZmFsc2UpKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZUxpc3RzLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLl9mb2N1c2FibGVMaXN0cyksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChxdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxGb2N1c2FibGVMaXN0RGlyZWN0aXZlPikgPT5cbiAgICAgICAgICAgICAgICAgICAgbWVyZ2UoLi4ucXVlcnlMaXN0LnRvQXJyYXkoKS5tYXAoKGxpc3QpID0+IGxpc3QuX2dyaWRJdGVtRm9jdXNlZCQpKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChmb2N1c2VkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1Gb2N1c2VkLmVtaXQoZm9jdXNlZEV2ZW50KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzYWJsZUxpc3RzLmZvckVhY2goKGxpc3QpID0+IGxpc3Quc2V0VGFiYmFibGUoZmFsc2UpKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9mb2N1c2FibGVMaXN0cy5mb3JFYWNoKChsaXN0KSA9PiBsaXN0Ll9zZXRJdGVtc1RhYmJhYmxlKGZhbHNlKSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9mb2N1c2FibGVMaXN0cy5jaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgodGhpcy5fZm9jdXNhYmxlTGlzdHMpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgocXVlcnlMaXN0OiBRdWVyeUxpc3Q8Rm9jdXNhYmxlTGlzdERpcmVjdGl2ZT4pID0+XG4gICAgICAgICAgICAgICAgICAgIG1lcmdlKC4uLnF1ZXJ5TGlzdC50b0FycmF5KCkubWFwKChsaXN0KSA9PiBsaXN0Ll9rZXlkb3duJCkpXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHsgZXZlbnQsIGxpc3QsIGFjdGl2ZUl0ZW1JbmRleCB9KSA9PiB0aGlzLl9vbktleWRvd24oZXZlbnQsIGxpc3QsIGFjdGl2ZUl0ZW1JbmRleCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZvY3VzIGNlbGwgYnkgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHBvc2l0aW9uIHBvc2l0aW9uIG9mIHRoZSBjZWxsXG4gICAgICovXG4gICAgZm9jdXNDZWxsKHBvc2l0aW9uOiBGb2N1c2FibGVDZWxsUG9zaXRpb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbGlzdCA9IHRoaXMuX2ZvY3VzYWJsZUxpc3RzLmdldChwb3NpdGlvbi5yb3dJbmRleCk7XG4gICAgICAgIGlmIChsaXN0KSB7XG4gICAgICAgICAgICBsaXN0LnNldEFjdGl2ZUl0ZW0ocG9zaXRpb24uY29sSW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBsaXN0OiBGb2N1c2FibGVMaXN0RGlyZWN0aXZlLCBhY3RpdmVJdGVtSW5kZXg6IE51bGxhYmxlPG51bWJlcj4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW1VQX0FSUk9XLCBET1dOX0FSUk9XLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPVywgUEFHRV9ET1dOLCBQQUdFX1VQXSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxpc3RzID0gdGhpcy5fZm9jdXNhYmxlTGlzdHMudG9BcnJheSgpO1xuICAgICAgICBjb25zdCBjdXJyZW50Um93SW5kZXggPSBsaXN0cy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0gPT09IGxpc3QpO1xuICAgICAgICBsZXQgbmV4dFJvd0luZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBuZXh0Um93SXRlbUluZGV4ID0gYWN0aXZlSXRlbUluZGV4ID8/IDA7XG4gICAgICAgIGxldCBzY3JvbGxJbnRvVmlldzogU2Nyb2xsUG9zaXRpb247XG5cbiAgICAgICAgY29uc3QgaXNGaXJzdEl0ZW1MdHIgPSBhY3RpdmVJdGVtSW5kZXggPT09IDAgJiYgdGhpcy5jb250ZW50RGlyZWN0aW9uICE9PSAncnRsJztcbiAgICAgICAgY29uc3QgaXNMYXN0SXRlbVJ0bCA9IGFjdGl2ZUl0ZW1JbmRleCA9PT0gbGlzdC5fZm9jdXNhYmxlSXRlbXMubGVuZ3RoIC0gMSAmJiB0aGlzLmNvbnRlbnREaXJlY3Rpb24gPT09ICdydGwnO1xuXG4gICAgICAgIGNvbnN0IGlzRmlyc3RJdGVtUnRsID0gYWN0aXZlSXRlbUluZGV4ID09PSAwICYmIHRoaXMuY29udGVudERpcmVjdGlvbiA9PT0gJ3J0bCc7XG4gICAgICAgIGNvbnN0IGlzTGFzdEl0ZW1MdHIgPSBhY3RpdmVJdGVtSW5kZXggPT09IGxpc3QuX2ZvY3VzYWJsZUl0ZW1zLmxlbmd0aCAtIDEgJiYgdGhpcy5jb250ZW50RGlyZWN0aW9uICE9PSAncnRsJztcblxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcbiAgICAgICAgICAgIGNhc2UgVVBfQVJST1c6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBuZXh0Um93SW5kZXggPSBjdXJyZW50Um93SW5kZXggLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBET1dOX0FSUk9XOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgbmV4dFJvd0luZGV4ID0gY3VycmVudFJvd0luZGV4ICsgMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgTEVGVF9BUlJPVzpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy53cmFwSG9yaXpvbnRhbGx5ICYmIChpc0ZpcnN0SXRlbUx0ciB8fCBpc0xhc3RJdGVtUnRsKSkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBuZXh0Um93SW5kZXggPSBjdXJyZW50Um93SW5kZXggLSAxO1xuICAgICAgICAgICAgICAgICAgICBuZXh0Um93SXRlbUluZGV4ID0gbGlzdHNbbmV4dFJvd0luZGV4XT8uX2ZvY3VzYWJsZUl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBSSUdIVF9BUlJPVzpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy53cmFwSG9yaXpvbnRhbGx5ICYmIChpc0ZpcnN0SXRlbVJ0bCB8fCBpc0xhc3RJdGVtTHRyKSkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBuZXh0Um93SW5kZXggPSBjdXJyZW50Um93SW5kZXggKyAxO1xuICAgICAgICAgICAgICAgICAgICBuZXh0Um93SXRlbUluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBBR0VfRE9XTjpcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIG5leHRSb3dJbmRleCA9IGZpbmRMYXN0SW5kZXgobGlzdHMsIChpdGVtKSA9PiBpdGVtLl9pc1Zpc2libGUpO1xuICAgICAgICAgICAgICAgIHNjcm9sbEludG9WaWV3ID0gJ3RvcCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBBR0VfVVA6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBuZXh0Um93SW5kZXggPSBsaXN0cy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uX2lzVmlzaWJsZSk7XG4gICAgICAgICAgICAgICAgc2Nyb2xsSW50b1ZpZXcgPSAnYm90dG9tJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5leHRSb3cgPSBsaXN0c1tuZXh0Um93SW5kZXggPz8gLTFdO1xuICAgICAgICBpZiAobmV4dFJvdykge1xuICAgICAgICAgICAgaWYgKG5leHRSb3cuZm9jdXNhYmxlKSB7XG4gICAgICAgICAgICAgICAgbmV4dFJvdy5mb2N1cyhzY3JvbGxJbnRvVmlldyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLl9nZXRJdGVtSW5kZXgobmV4dFJvdywgbmV4dFJvd0l0ZW1JbmRleCk7XG4gICAgICAgICAgICBpZiAoaXRlbUluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBuZXh0Um93LnNldEFjdGl2ZUl0ZW0oaXRlbUluZGV4LCBzY3JvbGxJbnRvVmlldyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEl0ZW1JbmRleChsaXN0OiBGb2N1c2FibGVMaXN0RGlyZWN0aXZlLCBhY3RpdmVJbmRleDogbnVtYmVyKTogTnVsbGFibGU8bnVtYmVyPiB7XG4gICAgICAgIGlmIChhY3RpdmVJbmRleCA+PSAwICYmIGFjdGl2ZUluZGV4IDwgbGlzdC5fZm9jdXNhYmxlSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gYWN0aXZlSW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zaG9ydFJvd0ZvY3VzID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvcnRSb3dGb2N1cyA9PT0gJ2ZpcnN0JyA/IDAgOiBsaXN0Ll9mb2N1c2FibGVJdGVtcy5sZW5ndGggLSAxO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { FocusableListModule } from '../focusable-list';
|
|
3
|
-
import { FocusableGridDirective } from './focusable-grid.directive';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class FocusableGridModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusableGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: FocusableGridModule, imports: [FocusableListModule, FocusableGridDirective], exports: [FocusableListModule, FocusableGridDirective] }); }
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusableGridModule, imports: [FocusableListModule, FocusableListModule] }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusableGridModule, decorators: [{
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
imports: [FocusableListModule, FocusableGridDirective],
|
|
14
|
-
exports: [FocusableListModule, FocusableGridDirective]
|
|
15
|
-
}]
|
|
16
|
-
}] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWdyaWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy9mb2N1c2FibGUtZ3JpZC9mb2N1c2FibGUtZ3JpZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFNcEUsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUIsWUFIbEIsbUJBQW1CLEVBQUUsc0JBQXNCLGFBQzNDLG1CQUFtQixFQUFFLHNCQUFzQjsrR0FFNUMsbUJBQW1CLFlBSGxCLG1CQUFtQixFQUNuQixtQkFBbUI7OzJGQUVwQixtQkFBbUI7a0JBSi9CLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsc0JBQXNCLENBQUM7b0JBQ3RELE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLHNCQUFzQixDQUFDO2lCQUN6RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2N1c2FibGVMaXN0TW9kdWxlIH0gZnJvbSAnLi4vZm9jdXNhYmxlLWxpc3QnO1xuaW1wb3J0IHsgRm9jdXNhYmxlR3JpZERpcmVjdGl2ZSB9IGZyb20gJy4vZm9jdXNhYmxlLWdyaWQuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbRm9jdXNhYmxlTGlzdE1vZHVsZSwgRm9jdXNhYmxlR3JpZERpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW0ZvY3VzYWJsZUxpc3RNb2R1bGUsIEZvY3VzYWJsZUdyaWREaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIEZvY3VzYWJsZUdyaWRNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const FDK_FOCUSABLE_GRID_DIRECTIVE = new InjectionToken('Focusable grid directive token');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWdyaWQudG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy9mb2N1c2FibGUtZ3JpZC9mb2N1c2FibGUtZ3JpZC50b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEZES19GT0NVU0FCTEVfR1JJRF9ESVJFQ1RJVkUgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0ZvY3VzYWJsZSBncmlkIGRpcmVjdGl2ZSB0b2tlbicpO1xuIl19
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from './focusable-grid.directive';
|
|
2
|
-
export * from './focusable-grid.module';
|
|
3
|
-
export * from './focusable-grid.tokens';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1ncmlkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mb2N1c2FibGUtZ3JpZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb2N1c2FibGUtZ3JpZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb2N1c2FibGUtZ3JpZC50b2tlbnMnO1xuIl19
|