@angular/cdk-experimental 21.0.0-next.4 → 21.0.0-next.6

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.
Files changed (89) hide show
  1. package/fesm2022/{accordion2.mjs → _accordion-chunk.mjs} +4 -3
  2. package/fesm2022/_accordion-chunk.mjs.map +1 -0
  3. package/fesm2022/_combobox-chunk.mjs +278 -0
  4. package/fesm2022/_combobox-chunk.mjs.map +1 -0
  5. package/fesm2022/{option.mjs → _combobox-listbox-chunk.mjs} +55 -8
  6. package/fesm2022/_combobox-listbox-chunk.mjs.map +1 -0
  7. package/fesm2022/_combobox-tree-chunk.mjs +398 -0
  8. package/fesm2022/_combobox-tree-chunk.mjs.map +1 -0
  9. package/fesm2022/{expansion.mjs → _expansion-chunk.mjs} +2 -2
  10. package/fesm2022/_expansion-chunk.mjs.map +1 -0
  11. package/fesm2022/{list.mjs → _list-chunk.mjs} +9 -5
  12. package/fesm2022/_list-chunk.mjs.map +1 -0
  13. package/fesm2022/_list-navigation-chunk.mjs +131 -0
  14. package/fesm2022/_list-navigation-chunk.mjs.map +1 -0
  15. package/fesm2022/{list-navigation.mjs → _pointer-event-manager-chunk.mjs} +2 -118
  16. package/fesm2022/_pointer-event-manager-chunk.mjs.map +1 -0
  17. package/fesm2022/{polyfill.mjs → _polyfill-chunk.mjs} +1 -1
  18. package/fesm2022/_polyfill-chunk.mjs.map +1 -0
  19. package/fesm2022/{tabs2.mjs → _tabs-chunk.mjs} +4 -4
  20. package/fesm2022/_tabs-chunk.mjs.map +1 -0
  21. package/fesm2022/_toolbar-chunk.mjs +273 -0
  22. package/fesm2022/_toolbar-chunk.mjs.map +1 -0
  23. package/fesm2022/_toolbar-radio-group-chunk.mjs +222 -0
  24. package/fesm2022/_toolbar-radio-group-chunk.mjs.map +1 -0
  25. package/fesm2022/accordion.mjs +4 -3
  26. package/fesm2022/accordion.mjs.map +1 -1
  27. package/fesm2022/cdk-experimental.mjs +1 -1
  28. package/fesm2022/cdk-experimental.mjs.map +1 -1
  29. package/fesm2022/column-resize.mjs +1 -1
  30. package/fesm2022/combobox.mjs +99 -308
  31. package/fesm2022/combobox.mjs.map +1 -1
  32. package/fesm2022/deferred-content.mjs +6 -7
  33. package/fesm2022/deferred-content.mjs.map +1 -1
  34. package/fesm2022/listbox.mjs +53 -12
  35. package/fesm2022/listbox.mjs.map +1 -1
  36. package/fesm2022/popover-edit.mjs +1 -1
  37. package/fesm2022/radio-group.mjs +42 -47
  38. package/fesm2022/radio-group.mjs.map +1 -1
  39. package/fesm2022/tabs.mjs +5 -4
  40. package/fesm2022/tabs.mjs.map +1 -1
  41. package/fesm2022/toolbar.mjs +69 -19
  42. package/fesm2022/toolbar.mjs.map +1 -1
  43. package/fesm2022/tree.mjs +57 -344
  44. package/fesm2022/tree.mjs.map +1 -1
  45. package/fesm2022/ui-patterns.mjs +11 -8
  46. package/fesm2022/ui-patterns.mjs.map +1 -1
  47. package/package.json +18 -18
  48. package/{accordion.d.d.ts → types/_accordion-chunk.d.ts} +3 -2
  49. package/types/_combobox-chunk.d.ts +138 -0
  50. package/{expansion.d.d.ts → types/_expansion-chunk.d.ts} +2 -2
  51. package/{list.d.d.ts → types/_list-chunk.d.ts} +4 -2
  52. package/{pointer-event-manager.d.d.ts → types/_list-navigation-chunk.d.ts} +7 -96
  53. package/{listbox.d.d.ts → types/_listbox-chunk.d.ts} +8 -4
  54. package/types/_pointer-event-manager-chunk.d.ts +98 -0
  55. package/types/_radio-group-chunk.d.ts +92 -0
  56. package/{tabs.d.d.ts → types/_tabs-chunk.d.ts} +4 -3
  57. package/types/_toolbar-chunk.d.ts +150 -0
  58. package/types/_tree-chunk.d.ts +139 -0
  59. package/{accordion/index.d.ts → types/accordion.d.ts} +4 -3
  60. package/types/combobox.d.ts +54 -0
  61. package/{deferred-content/index.d.ts → types/deferred-content.d.ts} +3 -3
  62. package/{listbox/index.d.ts → types/listbox.d.ts} +15 -5
  63. package/{radio-group/index.d.ts → types/radio-group.d.ts} +21 -23
  64. package/{tabs/index.d.ts → types/tabs.d.ts} +5 -4
  65. package/types/toolbar.d.ts +115 -0
  66. package/{tree/index.d.ts → types/tree.d.ts} +17 -137
  67. package/types/ui-patterns.d.ts +157 -0
  68. package/combobox/index.d.ts +0 -94
  69. package/fesm2022/accordion2.mjs.map +0 -1
  70. package/fesm2022/expansion.mjs.map +0 -1
  71. package/fesm2022/list-navigation.mjs.map +0 -1
  72. package/fesm2022/list.mjs.map +0 -1
  73. package/fesm2022/option.mjs.map +0 -1
  74. package/fesm2022/polyfill.mjs.map +0 -1
  75. package/fesm2022/radio-group2.mjs +0 -143
  76. package/fesm2022/radio-group2.mjs.map +0 -1
  77. package/fesm2022/tabs2.mjs.map +0 -1
  78. package/fesm2022/toolbar2.mjs +0 -224
  79. package/fesm2022/toolbar2.mjs.map +0 -1
  80. package/radio-group.d.d.ts +0 -80
  81. package/toolbar/index.d.ts +0 -91
  82. package/toolbar.d.d.ts +0 -136
  83. package/ui-patterns/index.d.ts +0 -9
  84. /package/{index.d.ts → types/cdk-experimental.d.ts} +0 -0
  85. /package/{column-resize/index.d.ts → types/column-resize.d.ts} +0 -0
  86. /package/{popover-edit/index.d.ts → types/popover-edit.d.ts} +0 -0
  87. /package/{scrolling/index.d.ts → types/scrolling.d.ts} +0 -0
  88. /package/{selection/index.d.ts → types/selection.d.ts} +0 -0
  89. /package/{table-scroll-container/index.d.ts → types/table-scroll-container.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_toolbar-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/ui-patterns/toolbar/toolbar-widget.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/ui-patterns/toolbar/toolbar-widget-group.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/ui-patterns/toolbar/toolbar.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {computed} from '@angular/core';\nimport {SignalLike} from '../behaviors/signal-like/signal-like';\nimport {ListItem} from '../behaviors/list/list';\nimport type {ToolbarPattern} from './toolbar';\n\n/** Represents the required inputs for a toolbar widget in a toolbar. */\nexport interface ToolbarWidgetInputs<V>\n extends Omit<ListItem<V>, 'searchTerm' | 'value' | 'index'> {\n /** A reference to the parent toolbar. */\n toolbar: SignalLike<ToolbarPattern<V>>;\n}\n\nexport class ToolbarWidgetPattern<V> implements ListItem<V> {\n /** A unique identifier for the widget. */\n readonly id: SignalLike<string>;\n\n /** The html element that should receive focus. */\n readonly element: SignalLike<HTMLElement>;\n\n /** Whether the widget is disabled. */\n readonly disabled: SignalLike<boolean>;\n\n /** A reference to the parent toolbar. */\n readonly toolbar: SignalLike<ToolbarPattern<V>>;\n\n /** The tabindex of the widgdet. */\n readonly tabindex = computed(() => this.toolbar().listBehavior.getItemTabindex(this));\n\n /** The text used by the typeahead search. */\n readonly searchTerm = () => ''; // Unused because toolbar does not support typeahead.\n\n /** The value associated with the widget. */\n readonly value = () => '' as V; // Unused because toolbar does not support selection.\n\n /** The position of the widget within the toolbar. */\n readonly index = computed(() => this.toolbar().inputs.items().indexOf(this) ?? -1);\n\n /** Whether the widget is currently the active one (focused). */\n readonly active = computed(() => this.toolbar().inputs.activeItem() === this);\n\n constructor(readonly inputs: ToolbarWidgetInputs<V>) {\n this.id = inputs.id;\n this.element = inputs.element;\n this.disabled = inputs.disabled;\n this.toolbar = inputs.toolbar;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {computed} from '@angular/core';\nimport {SignalLike} from '../behaviors/signal-like/signal-like';\nimport {ListItem} from '../behaviors/list/list';\nimport type {ToolbarPattern} from './toolbar';\n\n/** An interface that allows sub patterns to expose the necessary controls for the toolbar. */\nexport interface ToolbarWidgetGroupControls {\n /** Whether the widget group is currently on the first item. */\n isOnFirstItem(): boolean;\n\n /** Whether the widget group is currently on the last item. */\n isOnLastItem(): boolean;\n\n /** Navigates to the next widget in the group. */\n next(wrap: boolean): void;\n\n /** Navigates to the previous widget in the group. */\n prev(wrap: boolean): void;\n\n /** Navigates to the first widget in the group. */\n first(): void;\n\n /** Navigates to the last widget in the group. */\n last(): void;\n\n /** Removes focus from the widget group. */\n unfocus(): void;\n\n /** Triggers the action of the currently active widget in the group. */\n trigger(): void;\n\n /** Navigates to the widget targeted by a pointer event. */\n goto(event: PointerEvent): void;\n\n /** Sets the widget group to its default initial state. */\n setDefaultState(): void;\n}\n\n/** Represents the required inputs for a toolbar widget group. */\nexport interface ToolbarWidgetGroupInputs<V>\n extends Omit<ListItem<V>, 'searchTerm' | 'value' | 'index'> {\n /** A reference to the parent toolbar. */\n toolbar: SignalLike<ToolbarPattern<V> | undefined>;\n\n /** The controls for the sub patterns associated with the toolbar. */\n controls: SignalLike<ToolbarWidgetGroupControls | undefined>;\n}\n\n/** A group of widgets within a toolbar that provides nested navigation. */\nexport class ToolbarWidgetGroupPattern<V> implements ListItem<V> {\n /** A unique identifier for the widget. */\n readonly id: SignalLike<string>;\n\n /** The html element that should receive focus. */\n readonly element: SignalLike<HTMLElement>;\n\n /** Whether the widget is disabled. */\n readonly disabled: SignalLike<boolean>;\n\n /** A reference to the parent toolbar. */\n readonly toolbar: SignalLike<ToolbarPattern<V> | undefined>;\n\n /** The text used by the typeahead search. */\n readonly searchTerm = () => ''; // Unused because toolbar does not support typeahead.\n\n /** The value associated with the widget. */\n readonly value = () => '' as V; // Unused because toolbar does not support selection.\n\n /** The position of the widget within the toolbar. */\n readonly index = computed(() => this.toolbar()?.inputs.items().indexOf(this) ?? -1);\n\n /** The actions that can be performed on the widget group. */\n readonly controls: SignalLike<ToolbarWidgetGroupControls> = computed(\n () => this.inputs.controls() ?? this._defaultControls,\n );\n\n /** Default toolbar widget group controls when no controls provided. */\n private readonly _defaultControls: ToolbarWidgetGroupControls = {\n isOnFirstItem: () => true,\n isOnLastItem: () => true,\n next: () => {},\n prev: () => {},\n first: () => {},\n last: () => {},\n unfocus: () => {},\n trigger: () => {},\n goto: () => {},\n setDefaultState: () => {},\n };\n\n constructor(readonly inputs: ToolbarWidgetGroupInputs<V>) {\n this.id = inputs.id;\n this.element = inputs.element;\n this.disabled = inputs.disabled;\n this.toolbar = inputs.toolbar;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {computed, signal} from '@angular/core';\nimport {SignalLike} from '../behaviors/signal-like/signal-like';\nimport {KeyboardEventManager, PointerEventManager} from '../behaviors/event-manager';\nimport {List, ListInputs} from '../behaviors/list/list';\nimport {ToolbarWidgetPattern} from './toolbar-widget';\nimport {ToolbarWidgetGroupPattern} from './toolbar-widget-group';\n\n/** Represents the required inputs for a toolbar. */\nexport type ToolbarInputs<V> = Omit<\n ListInputs<ToolbarWidgetPattern<V> | ToolbarWidgetGroupPattern<V>, V>,\n 'multi' | 'typeaheadDelay' | 'value' | 'selectionMode' | 'focusMode'\n> & {\n /** A function that returns the toolbar item associated with a given element. */\n getItem: (e: Element) => ToolbarWidgetPattern<V> | ToolbarWidgetGroupPattern<V> | undefined;\n};\n\n/** Controls the state of a toolbar. */\nexport class ToolbarPattern<V> {\n /** The list behavior for the toolbar. */\n readonly listBehavior: List<ToolbarWidgetPattern<V> | ToolbarWidgetGroupPattern<V>, V>;\n\n /** Whether the tablist is vertically or horizontally oriented. */\n readonly orientation: SignalLike<'vertical' | 'horizontal'>;\n\n /** Whether disabled items in the group should be skipped when navigating. */\n readonly skipDisabled: SignalLike<boolean>;\n\n /** Whether the toolbar is disabled. */\n readonly disabled = computed(() => this.listBehavior.disabled());\n\n /** The tabindex of the toolbar (if using activedescendant). */\n readonly tabindex = computed(() => this.listBehavior.tabindex());\n\n /** The id of the current active widget (if using activedescendant). */\n readonly activedescendant = computed(() => this.listBehavior.activedescendant());\n\n /** The key used to navigate to the previous widget. */\n private readonly _prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key used to navigate to the next widget. */\n private readonly _nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The alternate key used to navigate to the previous widget. */\n private readonly _altPrevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n }\n return 'ArrowUp';\n });\n\n /** The alternate key used to navigate to the next widget. */\n private readonly _altNextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n }\n return 'ArrowDown';\n });\n\n /** The keydown event manager for the toolbar. */\n private readonly _keydown = computed(() => {\n const manager = new KeyboardEventManager();\n\n return manager\n .on(this._nextKey, () => this._next())\n .on(this._prevKey, () => this._prev())\n .on(this._altNextKey, () => this._groupNext())\n .on(this._altPrevKey, () => this._groupPrev())\n .on(' ', () => this._trigger())\n .on('Enter', () => this._trigger())\n .on('Home', () => this._first())\n .on('End', () => this._last());\n });\n\n /** The pointerdown event manager for the toolbar. */\n private readonly _pointerdown = computed(() => new PointerEventManager().on(e => this._goto(e)));\n\n /** Navigates to the next widget in the toolbar. */\n private _next() {\n const item = this.inputs.activeItem();\n if (item instanceof ToolbarWidgetGroupPattern) {\n if (!item.disabled() && !item.controls().isOnLastItem()) {\n item.controls().next(false);\n return;\n }\n item.controls().unfocus();\n }\n\n this.listBehavior.next();\n const newItem = this.inputs.activeItem();\n if (newItem instanceof ToolbarWidgetGroupPattern) {\n newItem.controls().first();\n }\n }\n\n /** Navigates to the previous widget in the toolbar. */\n private _prev() {\n const item = this.inputs.activeItem();\n if (item instanceof ToolbarWidgetGroupPattern) {\n if (!item.disabled() && !item.controls().isOnFirstItem()) {\n item.controls().prev(false);\n return;\n }\n item.controls().unfocus();\n }\n\n this.listBehavior.prev();\n const newItem = this.inputs.activeItem();\n if (newItem instanceof ToolbarWidgetGroupPattern) {\n newItem.controls().last();\n }\n }\n\n private _groupNext() {\n const item = this.inputs.activeItem();\n if (item instanceof ToolbarWidgetPattern) return;\n item?.controls().next(true);\n }\n\n private _groupPrev() {\n const item = this.inputs.activeItem();\n if (item instanceof ToolbarWidgetPattern) return;\n item?.controls().prev(true);\n }\n\n /** Triggers the action of the currently active widget. */\n private _trigger() {\n const item = this.inputs.activeItem();\n if (item instanceof ToolbarWidgetGroupPattern) {\n item.controls().trigger();\n }\n }\n\n /** Navigates to the first widget in the toolbar. */\n private _first() {\n const item = this.inputs.activeItem();\n if (item instanceof ToolbarWidgetGroupPattern) {\n item.controls().unfocus();\n }\n\n this.listBehavior.first();\n const newItem = this.inputs.activeItem();\n if (newItem instanceof ToolbarWidgetGroupPattern) {\n newItem.controls().first();\n }\n }\n\n /** Navigates to the last widget in the toolbar. */\n private _last() {\n const item = this.inputs.activeItem();\n if (item instanceof ToolbarWidgetGroupPattern) {\n item.controls().unfocus();\n }\n\n this.listBehavior.last();\n const newItem = this.inputs.activeItem();\n if (newItem instanceof ToolbarWidgetGroupPattern) {\n newItem.controls().last();\n }\n }\n\n /** Navigates to the widget targeted by a pointer event. */\n private _goto(e: PointerEvent) {\n const item = this.inputs.getItem(e.target as Element);\n if (!item) return;\n\n this.listBehavior.goto(item);\n if (item instanceof ToolbarWidgetGroupPattern) {\n item.controls().goto(e);\n }\n }\n\n constructor(readonly inputs: ToolbarInputs<V>) {\n this.orientation = inputs.orientation;\n this.skipDisabled = inputs.skipDisabled;\n\n this.listBehavior = new List({\n ...inputs,\n multi: () => false,\n focusMode: () => 'roving',\n selectionMode: () => 'explicit',\n value: signal([] as V[]),\n typeaheadDelay: () => 0, // Toolbar widgets do not support typeahead.\n });\n }\n\n /** Handles keydown events for the toolbar. */\n onKeydown(event: KeyboardEvent) {\n if (this.disabled()) return;\n this._keydown().handle(event);\n }\n\n /** Handles pointerdown events for the toolbar. */\n onPointerdown(event: PointerEvent) {\n if (this.disabled()) return;\n this._pointerdown().handle(event);\n }\n\n /**\n * Sets the toolbar to its default initial state.\n *\n * Sets the active index to the selected widget if one exists and is focusable.\n * Otherwise, sets the active index to the first focusable widget.\n */\n setDefaultState() {\n let firstItem: ToolbarWidgetPattern<V> | ToolbarWidgetGroupPattern<V> | null = null;\n\n for (const item of this.inputs.items()) {\n if (this.listBehavior.isFocusable(item)) {\n if (!firstItem) {\n firstItem = item;\n }\n }\n }\n\n if (firstItem) {\n this.inputs.activeItem.set(firstItem);\n }\n if (firstItem instanceof ToolbarWidgetGroupPattern) {\n firstItem.controls().setDefaultState();\n }\n }\n\n /** Validates the state of the toolbar and returns a list of accessibility violations. */\n validate(): string[] {\n const violations: string[] = [];\n\n return violations;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,222 @@
1
+ import { signal, computed } from '@angular/core';
2
+ import { List } from './_list-chunk.mjs';
3
+ import { KeyboardEventManager, PointerEventManager } from './_pointer-event-manager-chunk.mjs';
4
+
5
+ /** Controls the state of a radio group. */
6
+ class RadioGroupPattern {
7
+ inputs;
8
+ /** The list behavior for the radio group. */
9
+ listBehavior;
10
+ /** Whether the radio group is vertically or horizontally oriented. */
11
+ orientation;
12
+ /** Whether focus should wrap when navigating. */
13
+ wrap = signal(false);
14
+ /** The selection strategy used by the radio group. */
15
+ selectionMode = signal('follow');
16
+ /** Whether the radio group is disabled. */
17
+ disabled = computed(() => this.inputs.disabled() || this.listBehavior.disabled());
18
+ /** The currently selected radio button. */
19
+ selectedItem = computed(() => this.listBehavior.selectionBehavior.selectedItems()[0]);
20
+ /** Whether the radio group is readonly. */
21
+ readonly = computed(() => this.selectedItem()?.disabled() || this.inputs.readonly());
22
+ /** The tabindex of the radio group. */
23
+ tabindex = computed(() => this.listBehavior.tabindex());
24
+ /** The id of the current active radio button (if using activedescendant). */
25
+ activedescendant = computed(() => this.listBehavior.activedescendant());
26
+ /** The key used to navigate to the previous radio button. */
27
+ _prevKey = computed(() => {
28
+ if (this.inputs.orientation() === 'vertical') {
29
+ return 'ArrowUp';
30
+ }
31
+ return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';
32
+ });
33
+ /** The key used to navigate to the next radio button. */
34
+ _nextKey = computed(() => {
35
+ if (this.inputs.orientation() === 'vertical') {
36
+ return 'ArrowDown';
37
+ }
38
+ return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';
39
+ });
40
+ /** The keydown event manager for the radio group. */
41
+ keydown = computed(() => {
42
+ const manager = new KeyboardEventManager();
43
+ // Readonly mode allows navigation but not selection changes.
44
+ if (this.readonly()) {
45
+ return manager
46
+ .on(this._prevKey, () => this.listBehavior.prev())
47
+ .on(this._nextKey, () => this.listBehavior.next())
48
+ .on('Home', () => this.listBehavior.first())
49
+ .on('End', () => this.listBehavior.last());
50
+ }
51
+ // Default behavior: navigate and select on arrow keys, home, end.
52
+ // Space/Enter also select the focused item.
53
+ return manager
54
+ .on(this._prevKey, () => this.listBehavior.prev({ selectOne: true }))
55
+ .on(this._nextKey, () => this.listBehavior.next({ selectOne: true }))
56
+ .on('Home', () => this.listBehavior.first({ selectOne: true }))
57
+ .on('End', () => this.listBehavior.last({ selectOne: true }))
58
+ .on(' ', () => this.listBehavior.selectOne())
59
+ .on('Enter', () => this.listBehavior.selectOne());
60
+ });
61
+ /** The pointerdown event manager for the radio group. */
62
+ pointerdown = computed(() => {
63
+ const manager = new PointerEventManager();
64
+ if (this.readonly()) {
65
+ // Navigate focus only in readonly mode.
66
+ return manager.on(e => this.listBehavior.goto(this.inputs.getItem(e)));
67
+ }
68
+ // Default behavior: navigate and select on click.
69
+ return manager.on(e => this.listBehavior.goto(this.inputs.getItem(e), { selectOne: true }));
70
+ });
71
+ constructor(inputs) {
72
+ this.inputs = inputs;
73
+ this.orientation = inputs.orientation;
74
+ this.listBehavior = new List({
75
+ ...inputs,
76
+ wrap: this.wrap,
77
+ selectionMode: this.selectionMode,
78
+ multi: () => false,
79
+ typeaheadDelay: () => 0, // Radio groups do not support typeahead.
80
+ });
81
+ }
82
+ /** Handles keydown events for the radio group. */
83
+ onKeydown(event) {
84
+ if (!this.disabled()) {
85
+ this.keydown().handle(event);
86
+ }
87
+ }
88
+ /** Handles pointerdown events for the radio group. */
89
+ onPointerdown(event) {
90
+ if (!this.disabled()) {
91
+ this.pointerdown().handle(event);
92
+ }
93
+ }
94
+ /**
95
+ * Sets the radio group to its default initial state.
96
+ *
97
+ * Sets the active index to the selected radio button if one exists and is focusable.
98
+ * Otherwise, sets the active index to the first focusable radio button.
99
+ */
100
+ setDefaultState() {
101
+ let firstItem = null;
102
+ for (const item of this.inputs.items()) {
103
+ if (this.listBehavior.isFocusable(item)) {
104
+ if (!firstItem) {
105
+ firstItem = item;
106
+ }
107
+ if (item.selected()) {
108
+ this.inputs.activeItem.set(item);
109
+ return;
110
+ }
111
+ }
112
+ }
113
+ if (firstItem) {
114
+ this.inputs.activeItem.set(firstItem);
115
+ }
116
+ }
117
+ /** Validates the state of the radio group and returns a list of accessibility violations. */
118
+ validate() {
119
+ const violations = [];
120
+ if (this.selectedItem()?.disabled() && this.inputs.skipDisabled()) {
121
+ violations.push("Accessibility Violation: The selected radio button is disabled while 'skipDisabled' is true, making the selection unreachable via keyboard.");
122
+ }
123
+ return violations;
124
+ }
125
+ }
126
+
127
+ /** Represents a radio button within a radio group. */
128
+ class RadioButtonPattern {
129
+ inputs;
130
+ /** A unique identifier for the radio button. */
131
+ id;
132
+ /** The value associated with the radio button. */
133
+ value;
134
+ /** The position of the radio button within the group. */
135
+ index = computed(() => this.group()?.listBehavior.inputs.items().indexOf(this) ?? -1);
136
+ /** Whether the radio button is currently the active one (focused). */
137
+ active = computed(() => this.group()?.listBehavior.inputs.activeItem() === this);
138
+ /** Whether the radio button is selected. */
139
+ selected = computed(() => !!this.group()?.listBehavior.inputs.value().includes(this.value()));
140
+ /** Whether the radio button is disabled. */
141
+ disabled;
142
+ /** A reference to the parent radio group. */
143
+ group;
144
+ /** The tabindex of the radio button. */
145
+ tabindex = computed(() => this.group()?.listBehavior.getItemTabindex(this));
146
+ /** The HTML element associated with the radio button. */
147
+ element;
148
+ /** The search term for typeahead. */
149
+ searchTerm = () => ''; // Radio groups do not support typeahead.
150
+ constructor(inputs) {
151
+ this.inputs = inputs;
152
+ this.id = inputs.id;
153
+ this.value = inputs.value;
154
+ this.group = inputs.group;
155
+ this.element = inputs.element;
156
+ this.disabled = inputs.disabled;
157
+ }
158
+ }
159
+
160
+ /** Controls the state of a radio group in a toolbar. */
161
+ class ToolbarRadioGroupPattern extends RadioGroupPattern {
162
+ inputs;
163
+ constructor(inputs) {
164
+ if (!!inputs.toolbar()) {
165
+ inputs.orientation = inputs.toolbar().orientation;
166
+ inputs.skipDisabled = inputs.toolbar().skipDisabled;
167
+ }
168
+ super(inputs);
169
+ this.inputs = inputs;
170
+ }
171
+ /** Noop. The toolbar handles keydown events. */
172
+ onKeydown(_) { }
173
+ /** Noop. The toolbar handles pointerdown events. */
174
+ onPointerdown(_) { }
175
+ /** Whether the radio group is currently on the first item. */
176
+ isOnFirstItem() {
177
+ return this.listBehavior.navigationBehavior.peekPrev() === undefined;
178
+ }
179
+ /** Whether the radio group is currently on the last item. */
180
+ isOnLastItem() {
181
+ return this.listBehavior.navigationBehavior.peekNext() === undefined;
182
+ }
183
+ /** Navigates to the next radio button in the group. */
184
+ next(wrap) {
185
+ this.wrap.set(wrap);
186
+ this.listBehavior.next();
187
+ this.wrap.set(false);
188
+ }
189
+ /** Navigates to the previous radio button in the group. */
190
+ prev(wrap) {
191
+ this.wrap.set(wrap);
192
+ this.listBehavior.prev();
193
+ this.wrap.set(false);
194
+ }
195
+ /** Navigates to the first radio button in the group. */
196
+ first() {
197
+ this.listBehavior.first();
198
+ }
199
+ /** Navigates to the last radio button in the group. */
200
+ last() {
201
+ this.listBehavior.last();
202
+ }
203
+ /** Removes focus from the radio group. */
204
+ unfocus() {
205
+ this.inputs.activeItem.set(undefined);
206
+ }
207
+ /** Triggers the action of the currently active radio button in the group. */
208
+ trigger() {
209
+ if (this.readonly())
210
+ return;
211
+ this.listBehavior.selectOne();
212
+ }
213
+ /** Navigates to the radio button targeted by a pointer event. */
214
+ goto(e) {
215
+ this.listBehavior.goto(this.inputs.getItem(e), {
216
+ selectOne: !this.readonly(),
217
+ });
218
+ }
219
+ }
220
+
221
+ export { RadioButtonPattern, RadioGroupPattern, ToolbarRadioGroupPattern };
222
+ //# sourceMappingURL=_toolbar-radio-group-chunk.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_toolbar-radio-group-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/ui-patterns/radio-group/radio-group.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/ui-patterns/radio-group/radio-button.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/ui-patterns/radio-group/toolbar-radio-group.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {computed, signal} from '@angular/core';\nimport {KeyboardEventManager, PointerEventManager} from '../behaviors/event-manager';\nimport {List, ListInputs} from '../behaviors/list/list';\nimport {SignalLike} from '../behaviors/signal-like/signal-like';\nimport {RadioButtonPattern} from './radio-button';\n\n/** Represents the required inputs for a radio group. */\nexport type RadioGroupInputs<V> = Omit<\n ListInputs<RadioButtonPattern<V>, V>,\n 'multi' | 'selectionMode' | 'wrap' | 'typeaheadDelay'\n> & {\n /** Whether the radio group is disabled. */\n disabled: SignalLike<boolean>;\n\n /** Whether the radio group is readonly. */\n readonly: SignalLike<boolean>;\n\n /** A function that returns the radio button associated with a given element. */\n getItem: (e: PointerEvent) => RadioButtonPattern<V> | undefined;\n};\n\n/** Controls the state of a radio group. */\nexport class RadioGroupPattern<V> {\n /** The list behavior for the radio group. */\n readonly listBehavior: List<RadioButtonPattern<V>, V>;\n\n /** Whether the radio group is vertically or horizontally oriented. */\n readonly orientation: SignalLike<'vertical' | 'horizontal'>;\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = signal(false);\n\n /** The selection strategy used by the radio group. */\n readonly selectionMode = signal<'follow' | 'explicit'>('follow');\n\n /** Whether the radio group is disabled. */\n readonly disabled = computed(() => this.inputs.disabled() || this.listBehavior.disabled());\n\n /** The currently selected radio button. */\n readonly selectedItem = computed(() => this.listBehavior.selectionBehavior.selectedItems()[0]);\n\n /** Whether the radio group is readonly. */\n readonly readonly = computed(() => this.selectedItem()?.disabled() || this.inputs.readonly());\n\n /** The tabindex of the radio group. */\n readonly tabindex = computed(() => this.listBehavior.tabindex());\n\n /** The id of the current active radio button (if using activedescendant). */\n readonly activedescendant = computed(() => this.listBehavior.activedescendant());\n\n /** The key used to navigate to the previous radio button. */\n private readonly _prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key used to navigate to the next radio button. */\n private readonly _nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The keydown event manager for the radio group. */\n readonly keydown = computed(() => {\n const manager = new KeyboardEventManager();\n\n // Readonly mode allows navigation but not selection changes.\n if (this.readonly()) {\n return manager\n .on(this._prevKey, () => this.listBehavior.prev())\n .on(this._nextKey, () => this.listBehavior.next())\n .on('Home', () => this.listBehavior.first())\n .on('End', () => this.listBehavior.last());\n }\n\n // Default behavior: navigate and select on arrow keys, home, end.\n // Space/Enter also select the focused item.\n return manager\n .on(this._prevKey, () => this.listBehavior.prev({selectOne: true}))\n .on(this._nextKey, () => this.listBehavior.next({selectOne: true}))\n .on('Home', () => this.listBehavior.first({selectOne: true}))\n .on('End', () => this.listBehavior.last({selectOne: true}))\n .on(' ', () => this.listBehavior.selectOne())\n .on('Enter', () => this.listBehavior.selectOne());\n });\n\n /** The pointerdown event manager for the radio group. */\n readonly pointerdown = computed(() => {\n const manager = new PointerEventManager();\n\n if (this.readonly()) {\n // Navigate focus only in readonly mode.\n return manager.on(e => this.listBehavior.goto(this.inputs.getItem(e)!));\n }\n\n // Default behavior: navigate and select on click.\n return manager.on(e => this.listBehavior.goto(this.inputs.getItem(e)!, {selectOne: true}));\n });\n\n constructor(readonly inputs: RadioGroupInputs<V>) {\n this.orientation = inputs.orientation;\n this.listBehavior = new List({\n ...inputs,\n wrap: this.wrap,\n selectionMode: this.selectionMode,\n multi: () => false,\n typeaheadDelay: () => 0, // Radio groups do not support typeahead.\n });\n }\n\n /** Handles keydown events for the radio group. */\n onKeydown(event: KeyboardEvent) {\n if (!this.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n /** Handles pointerdown events for the radio group. */\n onPointerdown(event: PointerEvent) {\n if (!this.disabled()) {\n this.pointerdown().handle(event);\n }\n }\n\n /**\n * Sets the radio group to its default initial state.\n *\n * Sets the active index to the selected radio button if one exists and is focusable.\n * Otherwise, sets the active index to the first focusable radio button.\n */\n setDefaultState() {\n let firstItem: RadioButtonPattern<V> | null = null;\n\n for (const item of this.inputs.items()) {\n if (this.listBehavior.isFocusable(item)) {\n if (!firstItem) {\n firstItem = item;\n }\n if (item.selected()) {\n this.inputs.activeItem.set(item);\n return;\n }\n }\n }\n\n if (firstItem) {\n this.inputs.activeItem.set(firstItem);\n }\n }\n\n /** Validates the state of the radio group and returns a list of accessibility violations. */\n validate(): string[] {\n const violations: string[] = [];\n\n if (this.selectedItem()?.disabled() && this.inputs.skipDisabled()) {\n violations.push(\n \"Accessibility Violation: The selected radio button is disabled while 'skipDisabled' is true, making the selection unreachable via keyboard.\",\n );\n }\n\n return violations;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {computed} from '@angular/core';\nimport {SignalLike} from '../behaviors/signal-like/signal-like';\nimport {ListItem} from '../behaviors/list/list';\nimport type {RadioGroupPattern} from './radio-group';\n\n/** Represents the required inputs for a radio button in a radio group. */\nexport interface RadioButtonInputs<V> extends Omit<ListItem<V>, 'searchTerm' | 'index'> {\n /** A reference to the parent radio group. */\n group: SignalLike<RadioGroupPattern<V> | undefined>;\n}\n\n/** Represents a radio button within a radio group. */\nexport class RadioButtonPattern<V> {\n /** A unique identifier for the radio button. */\n readonly id: SignalLike<string>;\n\n /** The value associated with the radio button. */\n readonly value: SignalLike<V>;\n\n /** The position of the radio button within the group. */\n readonly index: SignalLike<number> = computed(\n () => this.group()?.listBehavior.inputs.items().indexOf(this) ?? -1,\n );\n\n /** Whether the radio button is currently the active one (focused). */\n readonly active = computed(() => this.group()?.listBehavior.inputs.activeItem() === this);\n\n /** Whether the radio button is selected. */\n readonly selected: SignalLike<boolean> = computed(\n () => !!this.group()?.listBehavior.inputs.value().includes(this.value()),\n );\n\n /** Whether the radio button is disabled. */\n readonly disabled: SignalLike<boolean>;\n\n /** A reference to the parent radio group. */\n readonly group: SignalLike<RadioGroupPattern<V> | undefined>;\n\n /** The tabindex of the radio button. */\n readonly tabindex = computed(() => this.group()?.listBehavior.getItemTabindex(this));\n\n /** The HTML element associated with the radio button. */\n readonly element: SignalLike<HTMLElement>;\n\n /** The search term for typeahead. */\n readonly searchTerm = () => ''; // Radio groups do not support typeahead.\n\n constructor(readonly inputs: RadioButtonInputs<V>) {\n this.id = inputs.id;\n this.value = inputs.value;\n this.group = inputs.group;\n this.element = inputs.element;\n this.disabled = inputs.disabled;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {SignalLike} from '../behaviors/signal-like/signal-like';\nimport {RadioGroupInputs, RadioGroupPattern} from './radio-group';\nimport type {ToolbarPattern} from '../toolbar/toolbar';\nimport type {ToolbarWidgetGroupControls} from '../toolbar/toolbar-widget-group';\n\n/** Represents the required inputs for a toolbar controlled radio group. */\nexport type ToolbarRadioGroupInputs<V> = RadioGroupInputs<V> & {\n /** The toolbar controlling the radio group. */\n toolbar: SignalLike<ToolbarPattern<V> | undefined>;\n};\n\n/** Controls the state of a radio group in a toolbar. */\nexport class ToolbarRadioGroupPattern<V>\n extends RadioGroupPattern<V>\n implements ToolbarWidgetGroupControls\n{\n constructor(override readonly inputs: ToolbarRadioGroupInputs<V>) {\n if (!!inputs.toolbar()) {\n inputs.orientation = inputs.toolbar()!.orientation;\n inputs.skipDisabled = inputs.toolbar()!.skipDisabled;\n }\n\n super(inputs);\n }\n\n /** Noop. The toolbar handles keydown events. */\n override onKeydown(_: KeyboardEvent): void {}\n\n /** Noop. The toolbar handles pointerdown events. */\n override onPointerdown(_: PointerEvent): void {}\n\n /** Whether the radio group is currently on the first item. */\n isOnFirstItem() {\n return this.listBehavior.navigationBehavior.peekPrev() === undefined;\n }\n\n /** Whether the radio group is currently on the last item. */\n isOnLastItem() {\n return this.listBehavior.navigationBehavior.peekNext() === undefined;\n }\n\n /** Navigates to the next radio button in the group. */\n next(wrap: boolean) {\n this.wrap.set(wrap);\n this.listBehavior.next();\n this.wrap.set(false);\n }\n\n /** Navigates to the previous radio button in the group. */\n prev(wrap: boolean) {\n this.wrap.set(wrap);\n this.listBehavior.prev();\n this.wrap.set(false);\n }\n\n /** Navigates to the first radio button in the group. */\n first() {\n this.listBehavior.first();\n }\n\n /** Navigates to the last radio button in the group. */\n last() {\n this.listBehavior.last();\n }\n\n /** Removes focus from the radio group. */\n unfocus() {\n this.inputs.activeItem.set(undefined);\n }\n\n /** Triggers the action of the currently active radio button in the group. */\n trigger() {\n if (this.readonly()) return;\n this.listBehavior.selectOne();\n }\n\n /** Navigates to the radio button targeted by a pointer event. */\n goto(e: PointerEvent) {\n this.listBehavior.goto(this.inputs.getItem(e)!, {\n selectOne: !this.readonly(),\n });\n }\n}\n"],"names":[],"mappings":"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"}
@@ -4,9 +4,10 @@ import { _IdGenerator } from '@angular/cdk/a11y';
4
4
  import { Directionality } from '@angular/cdk/bidi';
5
5
  import * as i1 from '@angular/cdk-experimental/deferred-content';
6
6
  import { DeferredContentAware, DeferredContent } from '@angular/cdk-experimental/deferred-content';
7
- import { AccordionPanelPattern, AccordionTriggerPattern, AccordionGroupPattern } from './accordion2.mjs';
8
- import './expansion.mjs';
9
- import './list-navigation.mjs';
7
+ import { AccordionPanelPattern, AccordionTriggerPattern, AccordionGroupPattern } from './_accordion-chunk.mjs';
8
+ import './_expansion-chunk.mjs';
9
+ import './_list-navigation-chunk.mjs';
10
+ import './_pointer-event-manager-chunk.mjs';
10
11
 
11
12
  /**
12
13
  * Represents the content panel of an accordion item. It is controlled by an
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/accordion/accordion.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n input,\n ElementRef,\n inject,\n contentChildren,\n afterRenderEffect,\n signal,\n model,\n booleanAttribute,\n computed,\n WritableSignal,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {DeferredContent, DeferredContentAware} from '@angular/cdk-experimental/deferred-content';\nimport {\n AccordionGroupPattern,\n AccordionPanelPattern,\n AccordionTriggerPattern,\n} from '../ui-patterns/';\n\n/**\n * Represents the content panel of an accordion item. It is controlled by an\n * associated `CdkAccordionTrigger`.\n */\n@Directive({\n selector: '[cdkAccordionPanel]',\n exportAs: 'cdkAccordionPanel',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n 'class': 'cdk-accordion-panel',\n 'role': 'region',\n '[attr.id]': 'pattern.id()',\n '[attr.aria-labelledby]': 'pattern.accordionTrigger()?.id()',\n '[attr.inert]': 'pattern.hidden() ? true : null',\n },\n})\nexport class CdkAccordionPanel {\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** A global unique identifier for the panel. */\n private readonly _id = inject(_IdGenerator).getId('cdk-accordion-trigger-');\n\n /** A local unique identifier for the panel, used to match with its trigger's value. */\n value = input.required<string>();\n\n /** The parent accordion trigger pattern that controls this panel. This is set by CdkAccordionGroup. */\n readonly accordionTrigger: WritableSignal<AccordionTriggerPattern | undefined> =\n signal(undefined);\n\n /** The UI pattern instance for this panel. */\n readonly pattern: AccordionPanelPattern = new AccordionPanelPattern({\n id: () => this._id,\n value: this.value,\n accordionTrigger: () => this.accordionTrigger(),\n });\n\n constructor() {\n // Connect the panel's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this._deferredContentAware.contentVisible.set(!this.pattern.hidden());\n });\n }\n}\n\n/**\n * Represents the trigger button for an accordion item. It controls the expansion\n * state of an associated `CdkAccordionPanel`.\n */\n@Directive({\n selector: '[cdkAccordionTrigger]',\n exportAs: 'cdkAccordionTrigger',\n host: {\n 'class': 'cdk-accordion-trigger',\n '[class.cdk-active]': 'pattern.active()',\n 'role': 'button',\n '[id]': 'pattern.id()',\n '[attr.aria-expanded]': 'pattern.expanded()',\n '[attr.aria-controls]': 'pattern.controls()',\n '[attr.aria-disabled]': 'pattern.disabled()',\n '[attr.disabled]': 'hardDisabled() ? true : null',\n '[attr.tabindex]': 'pattern.tabindex()',\n '(keydown)': 'pattern.onKeydown($event)',\n '(pointerdown)': 'pattern.onPointerdown($event)',\n '(focusin)': 'pattern.onFocus($event)',\n },\n})\nexport class CdkAccordionTrigger {\n /** A global unique identifier for the trigger. */\n private readonly _id = inject(_IdGenerator).getId('cdk-accordion-trigger-');\n\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The parent CdkAccordionGroup. */\n private readonly _accordionGroup = inject(CdkAccordionGroup);\n\n /** A local unique identifier for the trigger, used to match with its panel's value. */\n value = input.required<string>();\n\n /** Whether the trigger is disabled. */\n disabled = input(false, {transform: booleanAttribute});\n\n /**\n * Whether this trigger is completely inaccessible.\n *\n * TODO(ok7sai): Consider move this to UI patterns.\n */\n readonly hardDisabled = computed(() => this.pattern.disabled() && this.pattern.tabindex() < 0);\n\n /** The accordion panel pattern controlled by this trigger. This is set by CdkAccordionGroup. */\n readonly accordionPanel: WritableSignal<AccordionPanelPattern | undefined> = signal(undefined);\n\n /** The UI pattern instance for this trigger. */\n readonly pattern: AccordionTriggerPattern = new AccordionTriggerPattern({\n id: () => this._id,\n value: this.value,\n disabled: this.disabled,\n element: () => this._elementRef.nativeElement,\n accordionGroup: computed(() => this._accordionGroup.pattern),\n accordionPanel: this.accordionPanel,\n });\n}\n\n/**\n * Container for a group of accordion items. It manages the overall state and\n * interactions of the accordion, such as keyboard navigation and expansion mode.\n */\n@Directive({\n selector: '[cdkAccordionGroup]',\n exportAs: 'cdkAccordionGroup',\n host: {\n 'class': 'cdk-accordion-group',\n },\n})\nexport class CdkAccordionGroup {\n /** A reference to the group element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The CdkAccordionTriggers nested inside this group. */\n protected readonly _triggers = contentChildren(CdkAccordionTrigger, {descendants: true});\n\n /** The CdkAccordionPanels nested inside this group. */\n protected readonly _panels = contentChildren(CdkAccordionPanel, {descendants: true});\n\n /** The text direction (ltr or rtl). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the entire accordion group is disabled. */\n disabled = input(false, {transform: booleanAttribute});\n\n /** Whether multiple accordion items can be expanded simultaneously. */\n multiExpandable = input(true, {transform: booleanAttribute});\n\n /** The values of the current selected/expanded accordions. */\n value = model<string[]>([]);\n\n /** Whether disabled items should be skipped during keyboard navigation. */\n skipDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether keyboard navigation should wrap around from the last item to the first, and vice-versa. */\n wrap = input(false, {transform: booleanAttribute});\n\n /** The UI pattern instance for this accordion group. */\n readonly pattern: AccordionGroupPattern = new AccordionGroupPattern({\n ...this,\n // TODO(ok7sai): Consider making `activeItem` an internal state in the pattern and call\n // `setDefaultState` in the CDK.\n activeItem: signal(undefined),\n items: computed(() => this._triggers().map(trigger => trigger.pattern)),\n expandedIds: this.value,\n // TODO(ok7sai): Investigate whether an accordion should support horizontal mode.\n orientation: () => 'vertical',\n element: () => this._elementRef.nativeElement,\n });\n\n constructor() {\n // Effect to link triggers with their corresponding panels and update the group's items.\n afterRenderEffect(() => {\n const triggers = this._triggers();\n const panels = this._panels();\n\n for (const trigger of triggers) {\n const panel = panels.find(p => p.value() === trigger.value());\n trigger.accordionPanel.set(panel?.pattern);\n if (panel) {\n panel.accordionTrigger.set(trigger.pattern);\n }\n }\n });\n }\n}\n\n/**\n * A structural directive that marks the `ng-template` to be used as the content\n * for a `CdkAccordionPanel`. This content can be lazily loaded.\n */\n@Directive({\n selector: 'ng-template[cdkAccordionContent]',\n hostDirectives: [DeferredContent],\n})\nexport class CdkAccordionContent {}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accordion.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/accordion/accordion.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n input,\n ElementRef,\n inject,\n contentChildren,\n afterRenderEffect,\n signal,\n model,\n booleanAttribute,\n computed,\n WritableSignal,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {DeferredContent, DeferredContentAware} from '@angular/cdk-experimental/deferred-content';\nimport {\n AccordionGroupPattern,\n AccordionPanelPattern,\n AccordionTriggerPattern,\n} from '../ui-patterns';\n\n/**\n * Represents the content panel of an accordion item. It is controlled by an\n * associated `CdkAccordionTrigger`.\n */\n@Directive({\n selector: '[cdkAccordionPanel]',\n exportAs: 'cdkAccordionPanel',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n 'class': 'cdk-accordion-panel',\n 'role': 'region',\n '[attr.id]': 'pattern.id()',\n '[attr.aria-labelledby]': 'pattern.accordionTrigger()?.id()',\n '[attr.inert]': 'pattern.hidden() ? true : null',\n },\n})\nexport class CdkAccordionPanel {\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** A global unique identifier for the panel. */\n private readonly _id = inject(_IdGenerator).getId('cdk-accordion-trigger-');\n\n /** A local unique identifier for the panel, used to match with its trigger's value. */\n value = input.required<string>();\n\n /** The parent accordion trigger pattern that controls this panel. This is set by CdkAccordionGroup. */\n readonly accordionTrigger: WritableSignal<AccordionTriggerPattern | undefined> =\n signal(undefined);\n\n /** The UI pattern instance for this panel. */\n readonly pattern: AccordionPanelPattern = new AccordionPanelPattern({\n id: () => this._id,\n value: this.value,\n accordionTrigger: () => this.accordionTrigger(),\n });\n\n constructor() {\n // Connect the panel's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this._deferredContentAware.contentVisible.set(!this.pattern.hidden());\n });\n }\n}\n\n/**\n * Represents the trigger button for an accordion item. It controls the expansion\n * state of an associated `CdkAccordionPanel`.\n */\n@Directive({\n selector: '[cdkAccordionTrigger]',\n exportAs: 'cdkAccordionTrigger',\n host: {\n 'class': 'cdk-accordion-trigger',\n '[class.cdk-active]': 'pattern.active()',\n 'role': 'button',\n '[id]': 'pattern.id()',\n '[attr.aria-expanded]': 'pattern.expanded()',\n '[attr.aria-controls]': 'pattern.controls()',\n '[attr.aria-disabled]': 'pattern.disabled()',\n '[attr.disabled]': 'hardDisabled() ? true : null',\n '[attr.tabindex]': 'pattern.tabindex()',\n '(keydown)': 'pattern.onKeydown($event)',\n '(pointerdown)': 'pattern.onPointerdown($event)',\n '(focusin)': 'pattern.onFocus($event)',\n },\n})\nexport class CdkAccordionTrigger {\n /** A global unique identifier for the trigger. */\n private readonly _id = inject(_IdGenerator).getId('cdk-accordion-trigger-');\n\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The parent CdkAccordionGroup. */\n private readonly _accordionGroup = inject(CdkAccordionGroup);\n\n /** A local unique identifier for the trigger, used to match with its panel's value. */\n value = input.required<string>();\n\n /** Whether the trigger is disabled. */\n disabled = input(false, {transform: booleanAttribute});\n\n /**\n * Whether this trigger is completely inaccessible.\n *\n * TODO(ok7sai): Consider move this to UI patterns.\n */\n readonly hardDisabled = computed(() => this.pattern.disabled() && this.pattern.tabindex() < 0);\n\n /** The accordion panel pattern controlled by this trigger. This is set by CdkAccordionGroup. */\n readonly accordionPanel: WritableSignal<AccordionPanelPattern | undefined> = signal(undefined);\n\n /** The UI pattern instance for this trigger. */\n readonly pattern: AccordionTriggerPattern = new AccordionTriggerPattern({\n id: () => this._id,\n value: this.value,\n disabled: this.disabled,\n element: () => this._elementRef.nativeElement,\n accordionGroup: computed(() => this._accordionGroup.pattern),\n accordionPanel: this.accordionPanel,\n });\n}\n\n/**\n * Container for a group of accordion items. It manages the overall state and\n * interactions of the accordion, such as keyboard navigation and expansion mode.\n */\n@Directive({\n selector: '[cdkAccordionGroup]',\n exportAs: 'cdkAccordionGroup',\n host: {\n 'class': 'cdk-accordion-group',\n },\n})\nexport class CdkAccordionGroup {\n /** A reference to the group element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The CdkAccordionTriggers nested inside this group. */\n protected readonly _triggers = contentChildren(CdkAccordionTrigger, {descendants: true});\n\n /** The CdkAccordionPanels nested inside this group. */\n protected readonly _panels = contentChildren(CdkAccordionPanel, {descendants: true});\n\n /** The text direction (ltr or rtl). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the entire accordion group is disabled. */\n disabled = input(false, {transform: booleanAttribute});\n\n /** Whether multiple accordion items can be expanded simultaneously. */\n multiExpandable = input(true, {transform: booleanAttribute});\n\n /** The values of the current selected/expanded accordions. */\n value = model<string[]>([]);\n\n /** Whether disabled items should be skipped during keyboard navigation. */\n skipDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether keyboard navigation should wrap around from the last item to the first, and vice-versa. */\n wrap = input(false, {transform: booleanAttribute});\n\n /** The UI pattern instance for this accordion group. */\n readonly pattern: AccordionGroupPattern = new AccordionGroupPattern({\n ...this,\n // TODO(ok7sai): Consider making `activeItem` an internal state in the pattern and call\n // `setDefaultState` in the CDK.\n activeItem: signal(undefined),\n items: computed(() => this._triggers().map(trigger => trigger.pattern)),\n expandedIds: this.value,\n // TODO(ok7sai): Investigate whether an accordion should support horizontal mode.\n orientation: () => 'vertical',\n element: () => this._elementRef.nativeElement,\n });\n\n constructor() {\n // Effect to link triggers with their corresponding panels and update the group's items.\n afterRenderEffect(() => {\n const triggers = this._triggers();\n const panels = this._panels();\n\n for (const trigger of triggers) {\n const panel = panels.find(p => p.value() === trigger.value());\n trigger.accordionPanel.set(panel?.pattern);\n if (panel) {\n panel.accordionTrigger.set(trigger.pattern);\n }\n }\n });\n }\n}\n\n/**\n * A structural directive that marks the `ng-template` to be used as the content\n * for a `CdkAccordionPanel`. This content can be lazily loaded.\n */\n@Directive({\n selector: 'ng-template[cdkAccordionContent]',\n hostDirectives: [DeferredContent],\n})\nexport class CdkAccordionContent {}\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Version } from '@angular/core';
2
2
 
3
3
  /** Current version of the CDK Experimental package. */
4
- const VERSION = new Version('21.0.0-next.4');
4
+ const VERSION = new Version('21.0.0-next.6');
5
5
 
6
6
  export { VERSION };
7
7
  //# sourceMappingURL=cdk-experimental.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cdk-experimental.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/version.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Version} from '@angular/core';\n\n/** Current version of the CDK Experimental package. */\nexport const VERSION = new Version('21.0.0-next.4');\n"],"names":[],"mappings":";;AAUA;MACa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB;;;;"}
1
+ {"version":3,"file":"cdk-experimental.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/version.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Version} from '@angular/core';\n\n/** Current version of the CDK Experimental package. */\nexport const VERSION = new Version('21.0.0-next.6');\n"],"names":[],"mappings":";;AAUA;MACa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB;;;;"}
@@ -3,7 +3,7 @@ import { InjectionToken, inject, Renderer2, Directive, Input, Injectable, NgZone
3
3
  import { _IdGenerator } from '@angular/cdk/a11y';
4
4
  import { Subject, merge, combineLatest, Observable } from 'rxjs';
5
5
  import { mapTo, take, takeUntil, startWith, pairwise, distinctUntilChanged, share, map, skip, filter } from 'rxjs/operators';
6
- import { closest } from './polyfill.mjs';
6
+ import { closest } from './_polyfill-chunk.mjs';
7
7
  import { CdkTable } from '@angular/cdk/table';
8
8
  import { coerceCssPixelValue } from '@angular/cdk/coercion';
9
9
  import { ComponentPortal } from '@angular/cdk/portal';