From c4f898b512ec8b8645af9528ed75ca1e19b9f593 Mon Sep 17 00:00:00 2001 From: Wagner Maciel Date: Thu, 17 Jul 2025 11:18:12 -0400 Subject: [PATCH 1/3] refactor(cdk-experimental/ui-patterns): create event manager index file --- src/cdk-experimental/ui-patterns/accordion/accordion.ts | 3 +-- .../ui-patterns/behaviors/event-manager/index.ts | 3 +++ src/cdk-experimental/ui-patterns/listbox/listbox.ts | 8 +++++--- .../ui-patterns/radio-group/radio-group.ts | 3 +-- src/cdk-experimental/ui-patterns/tabs/tabs.ts | 3 +-- src/cdk-experimental/ui-patterns/tree/tree.ts | 8 +++++--- 6 files changed, 16 insertions(+), 12 deletions(-) create mode 100644 src/cdk-experimental/ui-patterns/behaviors/event-manager/index.ts diff --git a/src/cdk-experimental/ui-patterns/accordion/accordion.ts b/src/cdk-experimental/ui-patterns/accordion/accordion.ts index 2d3a8ebe711c..6664161f250d 100644 --- a/src/cdk-experimental/ui-patterns/accordion/accordion.ts +++ b/src/cdk-experimental/ui-patterns/accordion/accordion.ts @@ -7,8 +7,7 @@ */ import {computed} from '@angular/core'; -import {KeyboardEventManager} from '../behaviors/event-manager/keyboard-event-manager'; -import {PointerEventManager} from '../behaviors/event-manager/pointer-event-manager'; +import {KeyboardEventManager, PointerEventManager} from '../behaviors/event-manager'; import { ExpansionItem, ExpansionControl, diff --git a/src/cdk-experimental/ui-patterns/behaviors/event-manager/index.ts b/src/cdk-experimental/ui-patterns/behaviors/event-manager/index.ts new file mode 100644 index 000000000000..458ec2e0f07e --- /dev/null +++ b/src/cdk-experimental/ui-patterns/behaviors/event-manager/index.ts @@ -0,0 +1,3 @@ +export {ModifierKey} from './event-manager'; +export {KeyboardEventManager} from './keyboard-event-manager'; +export {PointerEventManager} from './pointer-event-manager'; diff --git a/src/cdk-experimental/ui-patterns/listbox/listbox.ts b/src/cdk-experimental/ui-patterns/listbox/listbox.ts index b15657af095b..1ddd9e74cb6b 100644 --- a/src/cdk-experimental/ui-patterns/listbox/listbox.ts +++ b/src/cdk-experimental/ui-patterns/listbox/listbox.ts @@ -6,9 +6,11 @@ * found in the LICENSE file at https://angular.dev/license */ -import {ModifierKey as Modifier} from '../behaviors/event-manager/event-manager'; -import {KeyboardEventManager} from '../behaviors/event-manager/keyboard-event-manager'; -import {PointerEventManager} from '../behaviors/event-manager/pointer-event-manager'; +import { + KeyboardEventManager, + PointerEventManager, + ModifierKey as Modifier, +} from '../behaviors/event-manager'; import {OptionPattern} from './option'; import {ListSelection, ListSelectionInputs} from '../behaviors/list-selection/list-selection'; import {ListTypeahead, ListTypeaheadInputs} from '../behaviors/list-typeahead/list-typeahead'; diff --git a/src/cdk-experimental/ui-patterns/radio-group/radio-group.ts b/src/cdk-experimental/ui-patterns/radio-group/radio-group.ts index 2317769d3f07..16590939c149 100644 --- a/src/cdk-experimental/ui-patterns/radio-group/radio-group.ts +++ b/src/cdk-experimental/ui-patterns/radio-group/radio-group.ts @@ -7,8 +7,7 @@ */ import {computed} from '@angular/core'; -import {KeyboardEventManager} from '../behaviors/event-manager/keyboard-event-manager'; -import {PointerEventManager} from '../behaviors/event-manager/pointer-event-manager'; +import {KeyboardEventManager, PointerEventManager} from '../behaviors/event-manager'; import {ListFocus, ListFocusInputs} from '../behaviors/list-focus/list-focus'; import {ListNavigation, ListNavigationInputs} from '../behaviors/list-navigation/list-navigation'; import {ListSelection, ListSelectionInputs} from '../behaviors/list-selection/list-selection'; diff --git a/src/cdk-experimental/ui-patterns/tabs/tabs.ts b/src/cdk-experimental/ui-patterns/tabs/tabs.ts index e4e9d45c5327..22553affb257 100644 --- a/src/cdk-experimental/ui-patterns/tabs/tabs.ts +++ b/src/cdk-experimental/ui-patterns/tabs/tabs.ts @@ -7,8 +7,7 @@ */ import {computed} from '@angular/core'; -import {KeyboardEventManager} from '../behaviors/event-manager/keyboard-event-manager'; -import {PointerEventManager} from '../behaviors/event-manager/pointer-event-manager'; +import {KeyboardEventManager, PointerEventManager} from '../behaviors/event-manager'; import {ListFocus, ListFocusInputs, ListFocusItem} from '../behaviors/list-focus/list-focus'; import { ListNavigation, diff --git a/src/cdk-experimental/ui-patterns/tree/tree.ts b/src/cdk-experimental/ui-patterns/tree/tree.ts index 9656e74a782f..d5e159271657 100644 --- a/src/cdk-experimental/ui-patterns/tree/tree.ts +++ b/src/cdk-experimental/ui-patterns/tree/tree.ts @@ -25,9 +25,11 @@ import { ListTypeaheadItem, } from '../behaviors/list-typeahead/list-typeahead'; import {ExpansionItem, ExpansionControl, ListExpansion} from '../behaviors/expansion/expansion'; -import {KeyboardEventManager} from '../behaviors/event-manager/keyboard-event-manager'; -import {PointerEventManager} from '../behaviors/event-manager/pointer-event-manager'; -import {ModifierKey as Modifier} from '../behaviors/event-manager/event-manager'; +import { + KeyboardEventManager, + PointerEventManager, + ModifierKey as Modifier, +} from '../behaviors/event-manager'; /** Represents the required inputs for a tree item. */ export interface TreeItemInputs From 8754c95fd6fcf4457f5a970e2fe42988bb3e42fe Mon Sep 17 00:00:00 2001 From: Wagner Maciel Date: Thu, 17 Jul 2025 17:42:31 -0400 Subject: [PATCH 2/3] fixup! refactor(cdk-experimental/ui-patterns): create event manager index file --- .../ui-patterns/behaviors/event-manager/index.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/cdk-experimental/ui-patterns/behaviors/event-manager/index.ts b/src/cdk-experimental/ui-patterns/behaviors/event-manager/index.ts index 458ec2e0f07e..2ec8758516f1 100644 --- a/src/cdk-experimental/ui-patterns/behaviors/event-manager/index.ts +++ b/src/cdk-experimental/ui-patterns/behaviors/event-manager/index.ts @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + export {ModifierKey} from './event-manager'; export {KeyboardEventManager} from './keyboard-event-manager'; export {PointerEventManager} from './pointer-event-manager'; From 964ea8d7aa9014d5282d2b6ad32436c01e470961 Mon Sep 17 00:00:00 2001 From: Wagner Maciel Date: Fri, 18 Jul 2025 13:00:59 -0400 Subject: [PATCH 3/3] refactor(cdk-experimental/ui-patterns): rename ModifierKey --- .../behaviors/event-manager/event-manager.ts | 14 +++++++------- .../ui-patterns/behaviors/event-manager/index.ts | 2 +- .../event-manager/keyboard-event-manager.ts | 4 ++-- .../event-manager/pointer-event-manager.ts | 4 ++-- .../ui-patterns/listbox/listbox.ts | 6 +----- src/cdk-experimental/ui-patterns/tree/tree.ts | 6 +----- 6 files changed, 14 insertions(+), 22 deletions(-) diff --git a/src/cdk-experimental/ui-patterns/behaviors/event-manager/event-manager.ts b/src/cdk-experimental/ui-patterns/behaviors/event-manager/event-manager.ts index 539744a648b6..f6718617cc8f 100644 --- a/src/cdk-experimental/ui-patterns/behaviors/event-manager/event-manager.ts +++ b/src/cdk-experimental/ui-patterns/behaviors/event-manager/event-manager.ts @@ -41,7 +41,7 @@ export interface EventHandlerConfig extends EventHandlerOptions } /** Bit flag representation of the possible modifier keys that can be present on an event. */ -export enum ModifierKey { +export enum Modifier { None = 0, Ctrl = 0b1, Shift = 0b10, @@ -50,7 +50,7 @@ export enum ModifierKey { Any = 'Any', } -export type ModifierInputs = ModifierKey | ModifierKey[]; +export type ModifierInputs = Modifier | Modifier[]; /** * Abstract base class for all event managers. @@ -86,10 +86,10 @@ export abstract class EventManager { /** Gets bit flag representation of the modifier keys present on the given event. */ export function getModifiers(event: EventWithModifiers): number { return ( - (+event.ctrlKey && ModifierKey.Ctrl) | - (+event.shiftKey && ModifierKey.Shift) | - (+event.altKey && ModifierKey.Alt) | - (+event.metaKey && ModifierKey.Meta) + (+event.ctrlKey && Modifier.Ctrl) | + (+event.shiftKey && Modifier.Shift) | + (+event.altKey && Modifier.Alt) | + (+event.metaKey && Modifier.Meta) ); } @@ -101,7 +101,7 @@ export function hasModifiers(event: EventWithModifiers, modifiers: ModifierInput const eventModifiers = getModifiers(event); const modifiersList = Array.isArray(modifiers) ? modifiers : [modifiers]; - if (modifiersList.includes(ModifierKey.Any)) { + if (modifiersList.includes(Modifier.Any)) { return true; } diff --git a/src/cdk-experimental/ui-patterns/behaviors/event-manager/index.ts b/src/cdk-experimental/ui-patterns/behaviors/event-manager/index.ts index 2ec8758516f1..d396497d2d16 100644 --- a/src/cdk-experimental/ui-patterns/behaviors/event-manager/index.ts +++ b/src/cdk-experimental/ui-patterns/behaviors/event-manager/index.ts @@ -6,6 +6,6 @@ * found in the LICENSE file at https://angular.dev/license */ -export {ModifierKey} from './event-manager'; +export {Modifier} from './event-manager'; export {KeyboardEventManager} from './keyboard-event-manager'; export {PointerEventManager} from './pointer-event-manager'; diff --git a/src/cdk-experimental/ui-patterns/behaviors/event-manager/keyboard-event-manager.ts b/src/cdk-experimental/ui-patterns/behaviors/event-manager/keyboard-event-manager.ts index 38943ffaadb1..86cf3329ade5 100644 --- a/src/cdk-experimental/ui-patterns/behaviors/event-manager/keyboard-event-manager.ts +++ b/src/cdk-experimental/ui-patterns/behaviors/event-manager/keyboard-event-manager.ts @@ -13,7 +13,7 @@ import { EventManager, hasModifiers, ModifierInputs, - ModifierKey, + Modifier, } from './event-manager'; /** @@ -55,7 +55,7 @@ export class KeyboardEventManager extends EventManager< private _normalizeInputs(...args: any[]) { const key = args.length === 3 ? args[1] : args[0]; const handler = args.length === 3 ? args[2] : args[1]; - const modifiers = args.length === 3 ? args[0] : ModifierKey.None; + const modifiers = args.length === 3 ? args[0] : Modifier.None; return { key: key as KeyCode, diff --git a/src/cdk-experimental/ui-patterns/behaviors/event-manager/pointer-event-manager.ts b/src/cdk-experimental/ui-patterns/behaviors/event-manager/pointer-event-manager.ts index 7631f048e027..d03464562c15 100644 --- a/src/cdk-experimental/ui-patterns/behaviors/event-manager/pointer-event-manager.ts +++ b/src/cdk-experimental/ui-patterns/behaviors/event-manager/pointer-event-manager.ts @@ -12,7 +12,7 @@ import { EventManager, hasModifiers, ModifierInputs, - ModifierKey, + Modifier, } from './event-manager'; /** @@ -80,7 +80,7 @@ export class PointerEventManager extends EventManager return { button: MouseButton.Main, - modifiers: ModifierKey.None, + modifiers: Modifier.None, handler: args[0] as EventHandler, }; } diff --git a/src/cdk-experimental/ui-patterns/listbox/listbox.ts b/src/cdk-experimental/ui-patterns/listbox/listbox.ts index 1ddd9e74cb6b..2af7f4b5e1f3 100644 --- a/src/cdk-experimental/ui-patterns/listbox/listbox.ts +++ b/src/cdk-experimental/ui-patterns/listbox/listbox.ts @@ -6,12 +6,8 @@ * found in the LICENSE file at https://angular.dev/license */ -import { - KeyboardEventManager, - PointerEventManager, - ModifierKey as Modifier, -} from '../behaviors/event-manager'; import {OptionPattern} from './option'; +import {KeyboardEventManager, PointerEventManager, Modifier} from '../behaviors/event-manager'; import {ListSelection, ListSelectionInputs} from '../behaviors/list-selection/list-selection'; import {ListTypeahead, ListTypeaheadInputs} from '../behaviors/list-typeahead/list-typeahead'; import {ListNavigation, ListNavigationInputs} from '../behaviors/list-navigation/list-navigation'; diff --git a/src/cdk-experimental/ui-patterns/tree/tree.ts b/src/cdk-experimental/ui-patterns/tree/tree.ts index d5e159271657..c66203cfc52d 100644 --- a/src/cdk-experimental/ui-patterns/tree/tree.ts +++ b/src/cdk-experimental/ui-patterns/tree/tree.ts @@ -25,11 +25,7 @@ import { ListTypeaheadItem, } from '../behaviors/list-typeahead/list-typeahead'; import {ExpansionItem, ExpansionControl, ListExpansion} from '../behaviors/expansion/expansion'; -import { - KeyboardEventManager, - PointerEventManager, - ModifierKey as Modifier, -} from '../behaviors/event-manager'; +import {KeyboardEventManager, PointerEventManager, Modifier} from '../behaviors/event-manager'; /** Represents the required inputs for a tree item. */ export interface TreeItemInputs