@angular/cdk-experimental 21.0.0-next.6 → 21.0.0-next.9
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/_polyfill-chunk.mjs.map +1 -1
- package/fesm2022/cdk-experimental.mjs +1 -1
- package/fesm2022/cdk-experimental.mjs.map +1 -1
- package/fesm2022/column-resize.mjs.map +1 -1
- package/fesm2022/popover-edit.mjs.map +1 -1
- package/fesm2022/scrolling.mjs.map +1 -1
- package/fesm2022/selection.mjs.map +1 -1
- package/fesm2022/table-scroll-container.mjs.map +1 -1
- package/package.json +3 -38
- package/types/column-resize.d.ts +37 -37
- package/types/popover-edit.d.ts +30 -30
- package/types/scrolling.d.ts +6 -6
- package/types/selection.d.ts +14 -14
- package/types/table-scroll-container.d.ts +6 -6
- package/fesm2022/_accordion-chunk.mjs +0 -153
- package/fesm2022/_accordion-chunk.mjs.map +0 -1
- package/fesm2022/_combobox-chunk.mjs +0 -278
- package/fesm2022/_combobox-chunk.mjs.map +0 -1
- package/fesm2022/_combobox-listbox-chunk.mjs +0 -278
- package/fesm2022/_combobox-listbox-chunk.mjs.map +0 -1
- package/fesm2022/_combobox-tree-chunk.mjs +0 -398
- package/fesm2022/_combobox-tree-chunk.mjs.map +0 -1
- package/fesm2022/_expansion-chunk.mjs +0 -87
- package/fesm2022/_expansion-chunk.mjs.map +0 -1
- package/fesm2022/_list-chunk.mjs +0 -374
- package/fesm2022/_list-chunk.mjs.map +0 -1
- package/fesm2022/_list-navigation-chunk.mjs +0 -131
- package/fesm2022/_list-navigation-chunk.mjs.map +0 -1
- package/fesm2022/_pointer-event-manager-chunk.mjs +0 -145
- package/fesm2022/_pointer-event-manager-chunk.mjs.map +0 -1
- package/fesm2022/_tabs-chunk.mjs +0 -211
- package/fesm2022/_tabs-chunk.mjs.map +0 -1
- package/fesm2022/_toolbar-chunk.mjs +0 -273
- package/fesm2022/_toolbar-chunk.mjs.map +0 -1
- package/fesm2022/_toolbar-radio-group-chunk.mjs +0 -222
- package/fesm2022/_toolbar-radio-group-chunk.mjs.map +0 -1
- package/fesm2022/accordion.mjs +0 -195
- package/fesm2022/accordion.mjs.map +0 -1
- package/fesm2022/combobox.mjs +0 -131
- package/fesm2022/combobox.mjs.map +0 -1
- package/fesm2022/deferred-content.mjs +0 -59
- package/fesm2022/deferred-content.mjs.map +0 -1
- package/fesm2022/listbox.mjs +0 -204
- package/fesm2022/listbox.mjs.map +0 -1
- package/fesm2022/radio-group.mjs +0 -200
- package/fesm2022/radio-group.mjs.map +0 -1
- package/fesm2022/tabs.mjs +0 -303
- package/fesm2022/tabs.mjs.map +0 -1
- package/fesm2022/toolbar.mjs +0 -221
- package/fesm2022/toolbar.mjs.map +0 -1
- package/fesm2022/tree.mjs +0 -333
- package/fesm2022/tree.mjs.map +0 -1
- package/fesm2022/ui-patterns.mjs +0 -24
- package/fesm2022/ui-patterns.mjs.map +0 -1
- package/types/_accordion-chunk.d.ts +0 -90
- package/types/_combobox-chunk.d.ts +0 -138
- package/types/_expansion-chunk.d.ts +0 -71
- package/types/_list-chunk.d.ts +0 -209
- package/types/_list-navigation-chunk.d.ts +0 -101
- package/types/_listbox-chunk.d.ts +0 -105
- package/types/_pointer-event-manager-chunk.d.ts +0 -98
- package/types/_radio-group-chunk.d.ts +0 -92
- package/types/_tabs-chunk.d.ts +0 -138
- package/types/_toolbar-chunk.d.ts +0 -150
- package/types/_tree-chunk.d.ts +0 -139
- package/types/accordion.d.ts +0 -95
- package/types/combobox.d.ts +0 -54
- package/types/deferred-content.d.ts +0 -37
- package/types/listbox.d.ts +0 -99
- package/types/radio-group.d.ts +0 -85
- package/types/tabs.d.ts +0 -160
- package/types/toolbar.d.ts +0 -115
- package/types/tree.d.ts +0 -155
- package/types/ui-patterns.d.ts +0 -157
package/fesm2022/tabs.mjs
DELETED
|
@@ -1,303 +0,0 @@
|
|
|
1
|
-
import * as i1 from '@angular/cdk-experimental/deferred-content';
|
|
2
|
-
import { DeferredContentAware, DeferredContent } from '@angular/cdk-experimental/deferred-content';
|
|
3
|
-
import { _IdGenerator } from '@angular/cdk/a11y';
|
|
4
|
-
import { Directionality } from '@angular/cdk/bidi';
|
|
5
|
-
import * as i0 from '@angular/core';
|
|
6
|
-
import { signal, computed, Directive, inject, ElementRef, linkedSignal, input, booleanAttribute, model, afterRenderEffect } from '@angular/core';
|
|
7
|
-
import { TabListPattern, TabPattern, TabPanelPattern } from './_tabs-chunk.mjs';
|
|
8
|
-
import './_expansion-chunk.mjs';
|
|
9
|
-
import './_list-chunk.mjs';
|
|
10
|
-
import './_list-navigation-chunk.mjs';
|
|
11
|
-
import './_pointer-event-manager-chunk.mjs';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Sort directives by their document order.
|
|
15
|
-
*/
|
|
16
|
-
function sortDirectives(a, b) {
|
|
17
|
-
return (a.element().compareDocumentPosition(b.element()) & Node.DOCUMENT_POSITION_PRECEDING) > 0
|
|
18
|
-
? 1
|
|
19
|
-
: -1;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* A Tabs container.
|
|
23
|
-
*
|
|
24
|
-
* Represents a set of layered sections of content. The CdkTabs is a container meant to be used with
|
|
25
|
-
* CdkTabList, CdkTab, and CdkTabPanel as follows:
|
|
26
|
-
*
|
|
27
|
-
* ```html
|
|
28
|
-
* <div cdkTabs>
|
|
29
|
-
* <ul cdkTabList>
|
|
30
|
-
* <li cdkTab value="tab1">Tab 1</li>
|
|
31
|
-
* <li cdkTab value="tab2">Tab 2</li>
|
|
32
|
-
* <li cdkTab value="tab3">Tab 3</li>
|
|
33
|
-
* </ul>
|
|
34
|
-
*
|
|
35
|
-
* <div cdkTabPanel value="tab1">
|
|
36
|
-
* <ng-template cdkTabContent>Tab content 1</ng-template>
|
|
37
|
-
* </div>
|
|
38
|
-
* <div cdkTabPanel value="tab2">
|
|
39
|
-
* <ng-template cdkTabContent>Tab content 2</ng-template>
|
|
40
|
-
* </div>
|
|
41
|
-
* <div cdkTabPanel value="tab3">
|
|
42
|
-
* <ng-template cdkTabContent>Tab content 3</ng-template>
|
|
43
|
-
* </div>
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
class CdkTabs {
|
|
47
|
-
/** The CdkTabList nested inside of the container. */
|
|
48
|
-
_tablist = signal(undefined, ...(ngDevMode ? [{ debugName: "_tablist" }] : []));
|
|
49
|
-
/** The CdkTabPanels nested inside of the container. */
|
|
50
|
-
_unorderedPanels = signal(new Set(), ...(ngDevMode ? [{ debugName: "_unorderedPanels" }] : []));
|
|
51
|
-
/** The Tab UIPattern of the child Tabs. */
|
|
52
|
-
tabs = computed(() => this._tablist()?.tabs(), ...(ngDevMode ? [{ debugName: "tabs" }] : []));
|
|
53
|
-
/** The TabPanel UIPattern of the child TabPanels. */
|
|
54
|
-
unorderedTabpanels = computed(() => [...this._unorderedPanels()].map(tabpanel => tabpanel.pattern), ...(ngDevMode ? [{ debugName: "unorderedTabpanels" }] : []));
|
|
55
|
-
register(child) {
|
|
56
|
-
if (child instanceof CdkTabList) {
|
|
57
|
-
this._tablist.set(child);
|
|
58
|
-
}
|
|
59
|
-
if (child instanceof CdkTabPanel) {
|
|
60
|
-
this._unorderedPanels().add(child);
|
|
61
|
-
this._unorderedPanels.set(new Set(this._unorderedPanels()));
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
deregister(child) {
|
|
65
|
-
if (child instanceof CdkTabList) {
|
|
66
|
-
this._tablist.set(undefined);
|
|
67
|
-
}
|
|
68
|
-
if (child instanceof CdkTabPanel) {
|
|
69
|
-
this._unorderedPanels().delete(child);
|
|
70
|
-
this._unorderedPanels.set(new Set(this._unorderedPanels()));
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTabs, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
74
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: CdkTabs, isStandalone: true, selector: "[cdkTabs]", host: { classAttribute: "cdk-tabs" }, exportAs: ["cdkTabs"], ngImport: i0 });
|
|
75
|
-
}
|
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTabs, decorators: [{
|
|
77
|
-
type: Directive,
|
|
78
|
-
args: [{
|
|
79
|
-
selector: '[cdkTabs]',
|
|
80
|
-
exportAs: 'cdkTabs',
|
|
81
|
-
host: {
|
|
82
|
-
'class': 'cdk-tabs',
|
|
83
|
-
},
|
|
84
|
-
}]
|
|
85
|
-
}] });
|
|
86
|
-
/**
|
|
87
|
-
* A TabList container.
|
|
88
|
-
*
|
|
89
|
-
* Controls a list of CdkTab(s).
|
|
90
|
-
*/
|
|
91
|
-
class CdkTabList {
|
|
92
|
-
/** A reference to the tab list element. */
|
|
93
|
-
_elementRef = inject(ElementRef);
|
|
94
|
-
/** The parent CdkTabs. */
|
|
95
|
-
_cdkTabs = inject(CdkTabs);
|
|
96
|
-
/** The CdkTabs nested inside of the CdkTabList. */
|
|
97
|
-
_unorderedTabs = signal(new Set(), ...(ngDevMode ? [{ debugName: "_unorderedTabs" }] : []));
|
|
98
|
-
/** The internal tab selection state. */
|
|
99
|
-
_selection = linkedSignal(() => (this.tab() ? [this.tab()] : []));
|
|
100
|
-
/** Text direction. */
|
|
101
|
-
textDirection = inject(Directionality).valueSignal;
|
|
102
|
-
/** The Tab UIPatterns of the child Tabs. */
|
|
103
|
-
tabs = computed(() => [...this._unorderedTabs()].sort(sortDirectives).map(tab => tab.pattern), ...(ngDevMode ? [{ debugName: "tabs" }] : []));
|
|
104
|
-
/** Whether the tablist is vertically or horizontally oriented. */
|
|
105
|
-
orientation = input('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : []));
|
|
106
|
-
/** Whether focus should wrap when navigating. */
|
|
107
|
-
wrap = input(true, ...(ngDevMode ? [{ debugName: "wrap", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
108
|
-
/** Whether disabled items in the list should be skipped when navigating. */
|
|
109
|
-
skipDisabled = input(true, ...(ngDevMode ? [{ debugName: "skipDisabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
110
|
-
/** The focus strategy used by the tablist. */
|
|
111
|
-
focusMode = input('roving', ...(ngDevMode ? [{ debugName: "focusMode" }] : []));
|
|
112
|
-
/** The selection strategy used by the tablist. */
|
|
113
|
-
selectionMode = input('follow', ...(ngDevMode ? [{ debugName: "selectionMode" }] : []));
|
|
114
|
-
/** Whether the tablist is disabled. */
|
|
115
|
-
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
116
|
-
/** The current selected tab. */
|
|
117
|
-
tab = model(...(ngDevMode ? [undefined, { debugName: "tab" }] : []));
|
|
118
|
-
/** The TabList UIPattern. */
|
|
119
|
-
pattern = new TabListPattern({
|
|
120
|
-
...this,
|
|
121
|
-
items: this.tabs,
|
|
122
|
-
value: this._selection,
|
|
123
|
-
activeItem: signal(undefined),
|
|
124
|
-
element: () => this._elementRef.nativeElement,
|
|
125
|
-
});
|
|
126
|
-
/** Whether the tree has received focus yet. */
|
|
127
|
-
_hasFocused = signal(false, ...(ngDevMode ? [{ debugName: "_hasFocused" }] : []));
|
|
128
|
-
constructor() {
|
|
129
|
-
afterRenderEffect(() => this.tab.set(this._selection()[0]));
|
|
130
|
-
afterRenderEffect(() => {
|
|
131
|
-
if (!this._hasFocused()) {
|
|
132
|
-
this.pattern.setDefaultState();
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
onFocus() {
|
|
137
|
-
this._hasFocused.set(true);
|
|
138
|
-
}
|
|
139
|
-
ngOnInit() {
|
|
140
|
-
this._cdkTabs.register(this);
|
|
141
|
-
}
|
|
142
|
-
ngOnDestroy() {
|
|
143
|
-
this._cdkTabs.deregister(this);
|
|
144
|
-
}
|
|
145
|
-
register(child) {
|
|
146
|
-
this._unorderedTabs().add(child);
|
|
147
|
-
this._unorderedTabs.set(new Set(this._unorderedTabs()));
|
|
148
|
-
}
|
|
149
|
-
deregister(child) {
|
|
150
|
-
this._unorderedTabs().delete(child);
|
|
151
|
-
this._unorderedTabs.set(new Set(this._unorderedTabs()));
|
|
152
|
-
}
|
|
153
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTabList, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
154
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-next.2", type: CdkTabList, isStandalone: true, selector: "[cdkTabList]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null }, skipDisabled: { classPropertyName: "skipDisabled", publicName: "skipDisabled", isSignal: true, isRequired: false, transformFunction: null }, focusMode: { classPropertyName: "focusMode", publicName: "focusMode", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, tab: { classPropertyName: "tab", publicName: "tab", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tab: "tabChange" }, host: { attributes: { "role": "tablist" }, listeners: { "keydown": "pattern.onKeydown($event)", "pointerdown": "pattern.onPointerdown($event)", "focusin": "onFocus()" }, properties: { "attr.tabindex": "pattern.tabindex()", "attr.aria-disabled": "pattern.disabled()", "attr.aria-orientation": "pattern.orientation()", "attr.aria-activedescendant": "pattern.activedescendant()" }, classAttribute: "cdk-tablist" }, exportAs: ["cdkTabList"], ngImport: i0 });
|
|
155
|
-
}
|
|
156
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTabList, decorators: [{
|
|
157
|
-
type: Directive,
|
|
158
|
-
args: [{
|
|
159
|
-
selector: '[cdkTabList]',
|
|
160
|
-
exportAs: 'cdkTabList',
|
|
161
|
-
host: {
|
|
162
|
-
'role': 'tablist',
|
|
163
|
-
'class': 'cdk-tablist',
|
|
164
|
-
'[attr.tabindex]': 'pattern.tabindex()',
|
|
165
|
-
'[attr.aria-disabled]': 'pattern.disabled()',
|
|
166
|
-
'[attr.aria-orientation]': 'pattern.orientation()',
|
|
167
|
-
'[attr.aria-activedescendant]': 'pattern.activedescendant()',
|
|
168
|
-
'(keydown)': 'pattern.onKeydown($event)',
|
|
169
|
-
'(pointerdown)': 'pattern.onPointerdown($event)',
|
|
170
|
-
'(focusin)': 'onFocus()',
|
|
171
|
-
},
|
|
172
|
-
}]
|
|
173
|
-
}], ctorParameters: () => [] });
|
|
174
|
-
/** A selectable tab in a TabList. */
|
|
175
|
-
class CdkTab {
|
|
176
|
-
/** A reference to the tab element. */
|
|
177
|
-
_elementRef = inject(ElementRef);
|
|
178
|
-
/** The parent CdkTabs. */
|
|
179
|
-
_cdkTabs = inject(CdkTabs);
|
|
180
|
-
/** The parent CdkTabList. */
|
|
181
|
-
_cdkTabList = inject(CdkTabList);
|
|
182
|
-
/** A global unique identifier for the tab. */
|
|
183
|
-
_id = inject(_IdGenerator).getId('cdk-tab-');
|
|
184
|
-
/** The host native element. */
|
|
185
|
-
element = computed(() => this._elementRef.nativeElement, ...(ngDevMode ? [{ debugName: "element" }] : []));
|
|
186
|
-
/** The parent TabList UIPattern. */
|
|
187
|
-
tablist = computed(() => this._cdkTabList.pattern, ...(ngDevMode ? [{ debugName: "tablist" }] : []));
|
|
188
|
-
/** The TabPanel UIPattern associated with the tab */
|
|
189
|
-
tabpanel = computed(() => this._cdkTabs.unorderedTabpanels().find(tabpanel => tabpanel.value() === this.value()), ...(ngDevMode ? [{ debugName: "tabpanel" }] : []));
|
|
190
|
-
/** Whether a tab is disabled. */
|
|
191
|
-
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
192
|
-
/** A local unique identifier for the tab. */
|
|
193
|
-
value = input.required(...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
194
|
-
/** The Tab UIPattern. */
|
|
195
|
-
pattern = new TabPattern({
|
|
196
|
-
...this,
|
|
197
|
-
id: () => this._id,
|
|
198
|
-
tablist: this.tablist,
|
|
199
|
-
tabpanel: this.tabpanel,
|
|
200
|
-
value: this.value,
|
|
201
|
-
});
|
|
202
|
-
ngOnInit() {
|
|
203
|
-
this._cdkTabList.register(this);
|
|
204
|
-
}
|
|
205
|
-
ngOnDestroy() {
|
|
206
|
-
this._cdkTabList.deregister(this);
|
|
207
|
-
}
|
|
208
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTab, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
209
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-next.2", type: CdkTab, isStandalone: true, selector: "[cdkTab]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "role": "tab" }, properties: { "class.cdk-active": "pattern.active()", "attr.id": "pattern.id()", "attr.tabindex": "pattern.tabindex()", "attr.aria-selected": "pattern.selected()", "attr.aria-disabled": "pattern.disabled()", "attr.aria-controls": "pattern.controls()" }, classAttribute: "cdk-tab" }, exportAs: ["cdkTab"], ngImport: i0 });
|
|
210
|
-
}
|
|
211
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTab, decorators: [{
|
|
212
|
-
type: Directive,
|
|
213
|
-
args: [{
|
|
214
|
-
selector: '[cdkTab]',
|
|
215
|
-
exportAs: 'cdkTab',
|
|
216
|
-
host: {
|
|
217
|
-
'role': 'tab',
|
|
218
|
-
'class': 'cdk-tab',
|
|
219
|
-
'[class.cdk-active]': 'pattern.active()',
|
|
220
|
-
'[attr.id]': 'pattern.id()',
|
|
221
|
-
'[attr.tabindex]': 'pattern.tabindex()',
|
|
222
|
-
'[attr.aria-selected]': 'pattern.selected()',
|
|
223
|
-
'[attr.aria-disabled]': 'pattern.disabled()',
|
|
224
|
-
'[attr.aria-controls]': 'pattern.controls()',
|
|
225
|
-
},
|
|
226
|
-
}]
|
|
227
|
-
}] });
|
|
228
|
-
/**
|
|
229
|
-
* A TabPanel container for the resources of layered content associated with a tab.
|
|
230
|
-
*
|
|
231
|
-
* If a tabpanel is hidden due to its corresponding tab is not activated, the `inert` attribute
|
|
232
|
-
* will be applied to the tabpanel element to remove it from the accessibility tree and stop
|
|
233
|
-
* all the keyboard and pointer interactions. Note that this does not visually hide the tabpenl
|
|
234
|
-
* and a proper styling is required.
|
|
235
|
-
*/
|
|
236
|
-
class CdkTabPanel {
|
|
237
|
-
/** The DeferredContentAware host directive. */
|
|
238
|
-
_deferredContentAware = inject(DeferredContentAware);
|
|
239
|
-
/** The parent CdkTabs. */
|
|
240
|
-
_cdkTabs = inject(CdkTabs);
|
|
241
|
-
/** A global unique identifier for the tab. */
|
|
242
|
-
_id = inject(_IdGenerator).getId('cdk-tabpanel-');
|
|
243
|
-
/** The Tab UIPattern associated with the tabpanel */
|
|
244
|
-
tab = computed(() => this._cdkTabs.tabs()?.find(tab => tab.value() === this.value()), ...(ngDevMode ? [{ debugName: "tab" }] : []));
|
|
245
|
-
/** A local unique identifier for the tabpanel. */
|
|
246
|
-
value = input.required(...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
247
|
-
/** The TabPanel UIPattern. */
|
|
248
|
-
pattern = new TabPanelPattern({
|
|
249
|
-
...this,
|
|
250
|
-
id: () => this._id,
|
|
251
|
-
tab: this.tab,
|
|
252
|
-
});
|
|
253
|
-
constructor() {
|
|
254
|
-
afterRenderEffect(() => this._deferredContentAware.contentVisible.set(!this.pattern.hidden()));
|
|
255
|
-
}
|
|
256
|
-
ngOnInit() {
|
|
257
|
-
this._cdkTabs.register(this);
|
|
258
|
-
}
|
|
259
|
-
ngOnDestroy() {
|
|
260
|
-
this._cdkTabs.deregister(this);
|
|
261
|
-
}
|
|
262
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTabPanel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
263
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-next.2", type: CdkTabPanel, isStandalone: true, selector: "[cdkTabPanel]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "role": "tabpanel" }, properties: { "attr.id": "pattern.id()", "attr.tabindex": "pattern.tabindex()", "attr.inert": "pattern.hidden() ? true : null", "attr.aria-labelledby": "pattern.labelledBy()" }, classAttribute: "cdk-tabpanel" }, exportAs: ["cdkTabPanel"], hostDirectives: [{ directive: i1.DeferredContentAware, inputs: ["preserveContent", "preserveContent"] }], ngImport: i0 });
|
|
264
|
-
}
|
|
265
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTabPanel, decorators: [{
|
|
266
|
-
type: Directive,
|
|
267
|
-
args: [{
|
|
268
|
-
selector: '[cdkTabPanel]',
|
|
269
|
-
exportAs: 'cdkTabPanel',
|
|
270
|
-
host: {
|
|
271
|
-
'role': 'tabpanel',
|
|
272
|
-
'class': 'cdk-tabpanel',
|
|
273
|
-
'[attr.id]': 'pattern.id()',
|
|
274
|
-
'[attr.tabindex]': 'pattern.tabindex()',
|
|
275
|
-
'[attr.inert]': 'pattern.hidden() ? true : null',
|
|
276
|
-
'[attr.aria-labelledby]': 'pattern.labelledBy()',
|
|
277
|
-
},
|
|
278
|
-
hostDirectives: [
|
|
279
|
-
{
|
|
280
|
-
directive: DeferredContentAware,
|
|
281
|
-
inputs: ['preserveContent'],
|
|
282
|
-
},
|
|
283
|
-
],
|
|
284
|
-
}]
|
|
285
|
-
}], ctorParameters: () => [] });
|
|
286
|
-
/**
|
|
287
|
-
* A TabContent container for the lazy-loaded content.
|
|
288
|
-
*/
|
|
289
|
-
class CdkTabContent {
|
|
290
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTabContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
291
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: CdkTabContent, isStandalone: true, selector: "ng-template[cdkTabContent]", exportAs: ["cdTabContent"], hostDirectives: [{ directive: i1.DeferredContent }], ngImport: i0 });
|
|
292
|
-
}
|
|
293
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTabContent, decorators: [{
|
|
294
|
-
type: Directive,
|
|
295
|
-
args: [{
|
|
296
|
-
selector: 'ng-template[cdkTabContent]',
|
|
297
|
-
exportAs: 'cdTabContent',
|
|
298
|
-
hostDirectives: [DeferredContent],
|
|
299
|
-
}]
|
|
300
|
-
}] });
|
|
301
|
-
|
|
302
|
-
export { CdkTab, CdkTabContent, CdkTabList, CdkTabPanel, CdkTabs };
|
|
303
|
-
//# sourceMappingURL=tabs.mjs.map
|
package/fesm2022/tabs.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/tabs/tabs.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 {DeferredContent, DeferredContentAware} from '@angular/cdk-experimental/deferred-content';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n linkedSignal,\n signal,\n Signal,\n afterRenderEffect,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TabListPattern, TabPanelPattern, TabPattern} from '../ui-patterns';\n\ninterface HasElement {\n element: Signal<HTMLElement>;\n}\n\n/**\n * Sort directives by their document order.\n */\nfunction sortDirectives(a: HasElement, b: HasElement) {\n return (a.element().compareDocumentPosition(b.element()) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\n}\n\n/**\n * A Tabs container.\n *\n * Represents a set of layered sections of content. The CdkTabs is a container meant to be used with\n * CdkTabList, CdkTab, and CdkTabPanel as follows:\n *\n * ```html\n * <div cdkTabs>\n * <ul cdkTabList>\n * <li cdkTab value=\"tab1\">Tab 1</li>\n * <li cdkTab value=\"tab2\">Tab 2</li>\n * <li cdkTab value=\"tab3\">Tab 3</li>\n * </ul>\n *\n * <div cdkTabPanel value=\"tab1\">\n * <ng-template cdkTabContent>Tab content 1</ng-template>\n * </div>\n * <div cdkTabPanel value=\"tab2\">\n * <ng-template cdkTabContent>Tab content 2</ng-template>\n * </div>\n * <div cdkTabPanel value=\"tab3\">\n * <ng-template cdkTabContent>Tab content 3</ng-template>\n * </div>\n * ```\n */\n@Directive({\n selector: '[cdkTabs]',\n exportAs: 'cdkTabs',\n host: {\n 'class': 'cdk-tabs',\n },\n})\nexport class CdkTabs {\n /** The CdkTabList nested inside of the container. */\n private readonly _tablist = signal<CdkTabList | undefined>(undefined);\n\n /** The CdkTabPanels nested inside of the container. */\n private readonly _unorderedPanels = signal(new Set<CdkTabPanel>());\n\n /** The Tab UIPattern of the child Tabs. */\n tabs = computed(() => this._tablist()?.tabs());\n\n /** The TabPanel UIPattern of the child TabPanels. */\n unorderedTabpanels = computed(() =>\n [...this._unorderedPanels()].map(tabpanel => tabpanel.pattern),\n );\n\n register(child: CdkTabList | CdkTabPanel) {\n if (child instanceof CdkTabList) {\n this._tablist.set(child);\n }\n\n if (child instanceof CdkTabPanel) {\n this._unorderedPanels().add(child);\n this._unorderedPanels.set(new Set(this._unorderedPanels()));\n }\n }\n\n deregister(child: CdkTabList | CdkTabPanel) {\n if (child instanceof CdkTabList) {\n this._tablist.set(undefined);\n }\n\n if (child instanceof CdkTabPanel) {\n this._unorderedPanels().delete(child);\n this._unorderedPanels.set(new Set(this._unorderedPanels()));\n }\n }\n}\n\n/**\n * A TabList container.\n *\n * Controls a list of CdkTab(s).\n */\n@Directive({\n selector: '[cdkTabList]',\n exportAs: 'cdkTabList',\n host: {\n 'role': 'tablist',\n 'class': 'cdk-tablist',\n '[attr.tabindex]': 'pattern.tabindex()',\n '[attr.aria-disabled]': 'pattern.disabled()',\n '[attr.aria-orientation]': 'pattern.orientation()',\n '[attr.aria-activedescendant]': 'pattern.activedescendant()',\n '(keydown)': 'pattern.onKeydown($event)',\n '(pointerdown)': 'pattern.onPointerdown($event)',\n '(focusin)': 'onFocus()',\n },\n})\nexport class CdkTabList implements OnInit, OnDestroy {\n /** A reference to the tab list element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The parent CdkTabs. */\n private readonly _cdkTabs = inject(CdkTabs);\n\n /** The CdkTabs nested inside of the CdkTabList. */\n private readonly _unorderedTabs = signal(new Set<CdkTab>());\n\n /** The internal tab selection state. */\n private readonly _selection = linkedSignal(() => (this.tab() ? [this.tab()!] : []));\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The Tab UIPatterns of the child Tabs. */\n readonly tabs = computed(() =>\n [...this._unorderedTabs()].sort(sortDirectives).map(tab => tab.pattern),\n );\n\n /** Whether the tablist is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** Whether disabled items in the list should be skipped when navigating. */\n readonly skipDisabled = input(true, {transform: booleanAttribute});\n\n /** The focus strategy used by the tablist. */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /** The selection strategy used by the tablist. */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** Whether the tablist is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The current selected tab. */\n readonly tab = model<string | undefined>();\n\n /** The TabList UIPattern. */\n readonly pattern: TabListPattern = new TabListPattern({\n ...this,\n items: this.tabs,\n value: this._selection,\n activeItem: signal(undefined),\n element: () => this._elementRef.nativeElement,\n });\n\n /** Whether the tree has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => this.tab.set(this._selection()[0]));\n\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this.pattern.setDefaultState();\n }\n });\n }\n\n onFocus() {\n this._hasFocused.set(true);\n }\n\n ngOnInit() {\n this._cdkTabs.register(this);\n }\n\n ngOnDestroy() {\n this._cdkTabs.deregister(this);\n }\n\n register(child: CdkTab) {\n this._unorderedTabs().add(child);\n this._unorderedTabs.set(new Set(this._unorderedTabs()));\n }\n\n deregister(child: CdkTab) {\n this._unorderedTabs().delete(child);\n this._unorderedTabs.set(new Set(this._unorderedTabs()));\n }\n}\n\n/** A selectable tab in a TabList. */\n@Directive({\n selector: '[cdkTab]',\n exportAs: 'cdkTab',\n host: {\n 'role': 'tab',\n 'class': 'cdk-tab',\n '[class.cdk-active]': 'pattern.active()',\n '[attr.id]': 'pattern.id()',\n '[attr.tabindex]': 'pattern.tabindex()',\n '[attr.aria-selected]': 'pattern.selected()',\n '[attr.aria-disabled]': 'pattern.disabled()',\n '[attr.aria-controls]': 'pattern.controls()',\n },\n})\nexport class CdkTab implements HasElement, OnInit, OnDestroy {\n /** A reference to the tab element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The parent CdkTabs. */\n private readonly _cdkTabs = inject(CdkTabs);\n\n /** The parent CdkTabList. */\n private readonly _cdkTabList = inject(CdkTabList);\n\n /** A global unique identifier for the tab. */\n private readonly _id = inject(_IdGenerator).getId('cdk-tab-');\n\n /** The host native element. */\n readonly element = computed(() => this._elementRef.nativeElement);\n\n /** The parent TabList UIPattern. */\n readonly tablist = computed(() => this._cdkTabList.pattern);\n\n /** The TabPanel UIPattern associated with the tab */\n readonly tabpanel = computed(() =>\n this._cdkTabs.unorderedTabpanels().find(tabpanel => tabpanel.value() === this.value()),\n );\n\n /** Whether a tab is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** A local unique identifier for the tab. */\n readonly value = input.required<string>();\n\n /** The Tab UIPattern. */\n readonly pattern: TabPattern = new TabPattern({\n ...this,\n id: () => this._id,\n tablist: this.tablist,\n tabpanel: this.tabpanel,\n value: this.value,\n });\n\n ngOnInit() {\n this._cdkTabList.register(this);\n }\n\n ngOnDestroy() {\n this._cdkTabList.deregister(this);\n }\n}\n\n/**\n * A TabPanel container for the resources of layered content associated with a tab.\n *\n * If a tabpanel is hidden due to its corresponding tab is not activated, the `inert` attribute\n * will be applied to the tabpanel element to remove it from the accessibility tree and stop\n * all the keyboard and pointer interactions. Note that this does not visually hide the tabpenl\n * and a proper styling is required.\n */\n@Directive({\n selector: '[cdkTabPanel]',\n exportAs: 'cdkTabPanel',\n host: {\n 'role': 'tabpanel',\n 'class': 'cdk-tabpanel',\n '[attr.id]': 'pattern.id()',\n '[attr.tabindex]': 'pattern.tabindex()',\n '[attr.inert]': 'pattern.hidden() ? true : null',\n '[attr.aria-labelledby]': 'pattern.labelledBy()',\n },\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n})\nexport class CdkTabPanel implements OnInit, OnDestroy {\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** The parent CdkTabs. */\n private readonly _cdkTabs = inject(CdkTabs);\n\n /** A global unique identifier for the tab. */\n private readonly _id = inject(_IdGenerator).getId('cdk-tabpanel-');\n\n /** The Tab UIPattern associated with the tabpanel */\n readonly tab = computed(() => this._cdkTabs.tabs()?.find(tab => tab.value() === this.value()));\n\n /** A local unique identifier for the tabpanel. */\n readonly value = input.required<string>();\n\n /** The TabPanel UIPattern. */\n readonly pattern: TabPanelPattern = new TabPanelPattern({\n ...this,\n id: () => this._id,\n tab: this.tab,\n });\n\n constructor() {\n afterRenderEffect(() => this._deferredContentAware.contentVisible.set(!this.pattern.hidden()));\n }\n\n ngOnInit() {\n this._cdkTabs.register(this);\n }\n\n ngOnDestroy() {\n this._cdkTabs.deregister(this);\n }\n}\n\n/**\n * A TabContent container for the lazy-loaded content.\n */\n@Directive({\n selector: 'ng-template[cdkTabContent]',\n exportAs: 'cdTabContent',\n hostDirectives: [DeferredContent],\n})\nexport class CdkTabContent {}\n"],"names":[],"mappings":"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"}
|
package/fesm2022/toolbar.mjs
DELETED
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, signal, computed, input, booleanAttribute, afterRenderEffect, Directive } from '@angular/core';
|
|
3
|
-
import { Directionality } from '@angular/cdk/bidi';
|
|
4
|
-
import { _IdGenerator } from '@angular/cdk/a11y';
|
|
5
|
-
import { ToolbarPattern, ToolbarWidgetPattern, ToolbarWidgetGroupPattern } from './_toolbar-chunk.mjs';
|
|
6
|
-
import './_list-chunk.mjs';
|
|
7
|
-
import './_list-navigation-chunk.mjs';
|
|
8
|
-
import './_pointer-event-manager-chunk.mjs';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Sort directives by their document order.
|
|
12
|
-
*/
|
|
13
|
-
function sortDirectives(a, b) {
|
|
14
|
-
return (a.element().compareDocumentPosition(b.element()) & Node.DOCUMENT_POSITION_PRECEDING) > 0
|
|
15
|
-
? 1
|
|
16
|
-
: -1;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* A toolbar widget container.
|
|
20
|
-
*
|
|
21
|
-
* Widgets such as radio groups or buttons are nested within a toolbar to allow for a single
|
|
22
|
-
* place of reference for focus and navigation. The CdkToolbar is meant to be used in conjunction
|
|
23
|
-
* with CdkToolbarWidget and CdkRadioGroup as follows:
|
|
24
|
-
*
|
|
25
|
-
* ```html
|
|
26
|
-
* <div cdkToolbar>
|
|
27
|
-
* <button cdkToolbarWidget>Button</button>
|
|
28
|
-
* <div cdkRadioGroup>
|
|
29
|
-
* <label cdkRadioButton value="1">Option 1</label>
|
|
30
|
-
* <label cdkRadioButton value="2">Option 2</label>
|
|
31
|
-
* <label cdkRadioButton value="3">Option 3</label>
|
|
32
|
-
* </div>
|
|
33
|
-
* </div>
|
|
34
|
-
* ```
|
|
35
|
-
*/
|
|
36
|
-
class CdkToolbar {
|
|
37
|
-
/** A reference to the toolbar element. */
|
|
38
|
-
_elementRef = inject(ElementRef);
|
|
39
|
-
/** The CdkTabList nested inside of the container. */
|
|
40
|
-
_cdkWidgets = signal(new Set(), ...(ngDevMode ? [{ debugName: "_cdkWidgets" }] : []));
|
|
41
|
-
/** A signal wrapper for directionality. */
|
|
42
|
-
textDirection = inject(Directionality).valueSignal;
|
|
43
|
-
/** Sorted UIPatterns of the child widgets */
|
|
44
|
-
items = computed(() => [...this._cdkWidgets()].sort(sortDirectives).map(widget => widget.pattern), ...(ngDevMode ? [{ debugName: "items" }] : []));
|
|
45
|
-
/** Whether the toolbar is vertically or horizontally oriented. */
|
|
46
|
-
orientation = input('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : []));
|
|
47
|
-
/** Whether disabled items in the group should be skipped when navigating. */
|
|
48
|
-
skipDisabled = input(false, ...(ngDevMode ? [{ debugName: "skipDisabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
49
|
-
/** Whether the toolbar is disabled. */
|
|
50
|
-
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
51
|
-
/** Whether focus should wrap when navigating. */
|
|
52
|
-
wrap = input(true, ...(ngDevMode ? [{ debugName: "wrap", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
53
|
-
/** The toolbar UIPattern. */
|
|
54
|
-
pattern = new ToolbarPattern({
|
|
55
|
-
...this,
|
|
56
|
-
activeItem: signal(undefined),
|
|
57
|
-
textDirection: this.textDirection,
|
|
58
|
-
element: () => this._elementRef.nativeElement,
|
|
59
|
-
getItem: e => this._getItem(e),
|
|
60
|
-
});
|
|
61
|
-
/** Whether the toolbar has received focus yet. */
|
|
62
|
-
_hasFocused = signal(false, ...(ngDevMode ? [{ debugName: "_hasFocused" }] : []));
|
|
63
|
-
constructor() {
|
|
64
|
-
afterRenderEffect(() => {
|
|
65
|
-
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
66
|
-
const violations = this.pattern.validate();
|
|
67
|
-
for (const violation of violations) {
|
|
68
|
-
console.error(violation);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
afterRenderEffect(() => {
|
|
73
|
-
if (!this._hasFocused()) {
|
|
74
|
-
this.pattern.setDefaultState();
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
onFocus() {
|
|
79
|
-
this._hasFocused.set(true);
|
|
80
|
-
}
|
|
81
|
-
register(widget) {
|
|
82
|
-
const widgets = this._cdkWidgets();
|
|
83
|
-
if (!widgets.has(widget)) {
|
|
84
|
-
widgets.add(widget);
|
|
85
|
-
this._cdkWidgets.set(new Set(widgets));
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
unregister(widget) {
|
|
89
|
-
const widgets = this._cdkWidgets();
|
|
90
|
-
if (widgets.delete(widget)) {
|
|
91
|
-
this._cdkWidgets.set(new Set(widgets));
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
/** Finds the toolbar item associated with a given element. */
|
|
95
|
-
_getItem(element) {
|
|
96
|
-
const widgetTarget = element.closest('.cdk-toolbar-widget');
|
|
97
|
-
const groupTarget = element.closest('.cdk-toolbar-widget-group');
|
|
98
|
-
return this.items().find(widget => widget.element() === widgetTarget || widget.element() === groupTarget);
|
|
99
|
-
}
|
|
100
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkToolbar, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
101
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-next.2", type: CdkToolbar, isStandalone: true, selector: "[cdkToolbar]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, skipDisabled: { classPropertyName: "skipDisabled", publicName: "skipDisabled", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "toolbar" }, listeners: { "keydown": "pattern.onKeydown($event)", "pointerdown": "pattern.onPointerdown($event)", "focusin": "onFocus()" }, properties: { "attr.tabindex": "pattern.tabindex()", "attr.aria-disabled": "pattern.disabled()", "attr.aria-orientation": "pattern.orientation()" }, classAttribute: "cdk-toolbar" }, exportAs: ["cdkToolbar"], ngImport: i0 });
|
|
102
|
-
}
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkToolbar, decorators: [{
|
|
104
|
-
type: Directive,
|
|
105
|
-
args: [{
|
|
106
|
-
selector: '[cdkToolbar]',
|
|
107
|
-
exportAs: 'cdkToolbar',
|
|
108
|
-
host: {
|
|
109
|
-
'role': 'toolbar',
|
|
110
|
-
'class': 'cdk-toolbar',
|
|
111
|
-
'[attr.tabindex]': 'pattern.tabindex()',
|
|
112
|
-
'[attr.aria-disabled]': 'pattern.disabled()',
|
|
113
|
-
'[attr.aria-orientation]': 'pattern.orientation()',
|
|
114
|
-
'(keydown)': 'pattern.onKeydown($event)',
|
|
115
|
-
'(pointerdown)': 'pattern.onPointerdown($event)',
|
|
116
|
-
'(focusin)': 'onFocus()',
|
|
117
|
-
},
|
|
118
|
-
}]
|
|
119
|
-
}], ctorParameters: () => [] });
|
|
120
|
-
/**
|
|
121
|
-
* A widget within a toolbar.
|
|
122
|
-
*
|
|
123
|
-
* A widget is anything that is within a toolbar. It should be applied to any native HTML element
|
|
124
|
-
* that has the purpose of acting as a widget navigatable within a toolbar.
|
|
125
|
-
*/
|
|
126
|
-
class CdkToolbarWidget {
|
|
127
|
-
/** A reference to the widget element. */
|
|
128
|
-
_elementRef = inject(ElementRef);
|
|
129
|
-
/** The parent CdkToolbar. */
|
|
130
|
-
_cdkToolbar = inject(CdkToolbar);
|
|
131
|
-
/** A unique identifier for the widget. */
|
|
132
|
-
_generatedId = inject(_IdGenerator).getId('cdk-toolbar-widget-');
|
|
133
|
-
/** A unique identifier for the widget. */
|
|
134
|
-
id = computed(() => this._generatedId, ...(ngDevMode ? [{ debugName: "id" }] : []));
|
|
135
|
-
/** The parent Toolbar UIPattern. */
|
|
136
|
-
toolbar = computed(() => this._cdkToolbar.pattern, ...(ngDevMode ? [{ debugName: "toolbar" }] : []));
|
|
137
|
-
/** A reference to the widget element to be focused on navigation. */
|
|
138
|
-
element = computed(() => this._elementRef.nativeElement, ...(ngDevMode ? [{ debugName: "element" }] : []));
|
|
139
|
-
/** Whether the widget is disabled. */
|
|
140
|
-
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
141
|
-
/** Whether the widget is 'hard' disabled, which is different from `aria-disabled`. A hard disabled widget cannot receive focus. */
|
|
142
|
-
hardDisabled = computed(() => this.pattern.disabled() && this._cdkToolbar.skipDisabled(), ...(ngDevMode ? [{ debugName: "hardDisabled" }] : []));
|
|
143
|
-
/** The ToolbarWidget UIPattern. */
|
|
144
|
-
pattern = new ToolbarWidgetPattern({
|
|
145
|
-
...this,
|
|
146
|
-
id: this.id,
|
|
147
|
-
element: this.element,
|
|
148
|
-
disabled: computed(() => this._cdkToolbar.disabled() || this.disabled()),
|
|
149
|
-
});
|
|
150
|
-
ngOnInit() {
|
|
151
|
-
this._cdkToolbar.register(this);
|
|
152
|
-
}
|
|
153
|
-
ngOnDestroy() {
|
|
154
|
-
this._cdkToolbar.unregister(this);
|
|
155
|
-
}
|
|
156
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkToolbarWidget, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
157
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-next.2", type: CdkToolbarWidget, isStandalone: true, selector: "[cdkToolbarWidget]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.cdk-active": "pattern.active()", "attr.tabindex": "pattern.tabindex()", "attr.inert": "hardDisabled() ? true : null", "attr.disabled": "hardDisabled() ? true : null", "attr.aria-disabled": "pattern.disabled()", "id": "pattern.id()" }, classAttribute: "cdk-toolbar-widget" }, exportAs: ["cdkToolbarWidget"], ngImport: i0 });
|
|
158
|
-
}
|
|
159
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkToolbarWidget, decorators: [{
|
|
160
|
-
type: Directive,
|
|
161
|
-
args: [{
|
|
162
|
-
selector: '[cdkToolbarWidget]',
|
|
163
|
-
exportAs: 'cdkToolbarWidget',
|
|
164
|
-
host: {
|
|
165
|
-
'class': 'cdk-toolbar-widget',
|
|
166
|
-
'[class.cdk-active]': 'pattern.active()',
|
|
167
|
-
'[attr.tabindex]': 'pattern.tabindex()',
|
|
168
|
-
'[attr.inert]': 'hardDisabled() ? true : null',
|
|
169
|
-
'[attr.disabled]': 'hardDisabled() ? true : null',
|
|
170
|
-
'[attr.aria-disabled]': 'pattern.disabled()',
|
|
171
|
-
'[id]': 'pattern.id()',
|
|
172
|
-
},
|
|
173
|
-
}]
|
|
174
|
-
}] });
|
|
175
|
-
/**
|
|
176
|
-
* A directive that groups toolbar widgets, used for more complex widgets like radio groups that
|
|
177
|
-
* have their own internal navigation.
|
|
178
|
-
*/
|
|
179
|
-
class CdkToolbarWidgetGroup {
|
|
180
|
-
/** A reference to the widget element. */
|
|
181
|
-
_elementRef = inject(ElementRef);
|
|
182
|
-
/** The parent CdkToolbar. */
|
|
183
|
-
_cdkToolbar = inject(CdkToolbar, { optional: true });
|
|
184
|
-
/** A unique identifier for the widget. */
|
|
185
|
-
_generatedId = inject(_IdGenerator).getId('cdk-toolbar-widget-group-');
|
|
186
|
-
/** A unique identifier for the widget. */
|
|
187
|
-
id = computed(() => this._generatedId, ...(ngDevMode ? [{ debugName: "id" }] : []));
|
|
188
|
-
/** The parent Toolbar UIPattern. */
|
|
189
|
-
toolbar = computed(() => this._cdkToolbar?.pattern, ...(ngDevMode ? [{ debugName: "toolbar" }] : []));
|
|
190
|
-
/** A reference to the widget element to be focused on navigation. */
|
|
191
|
-
element = computed(() => this._elementRef.nativeElement, ...(ngDevMode ? [{ debugName: "element" }] : []));
|
|
192
|
-
/** Whether the widget group is disabled. */
|
|
193
|
-
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
194
|
-
/** The controls that can be performed on the widget group. */
|
|
195
|
-
controls = signal(undefined, ...(ngDevMode ? [{ debugName: "controls" }] : []));
|
|
196
|
-
/** The ToolbarWidgetGroup UIPattern. */
|
|
197
|
-
pattern = new ToolbarWidgetGroupPattern({
|
|
198
|
-
...this,
|
|
199
|
-
id: this.id,
|
|
200
|
-
element: this.element,
|
|
201
|
-
});
|
|
202
|
-
ngOnInit() {
|
|
203
|
-
this._cdkToolbar?.register(this);
|
|
204
|
-
}
|
|
205
|
-
ngOnDestroy() {
|
|
206
|
-
this._cdkToolbar?.unregister(this);
|
|
207
|
-
}
|
|
208
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkToolbarWidgetGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
209
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-next.2", type: CdkToolbarWidgetGroup, isStandalone: true, inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.cdk-toolbar-widget-group": "!!toolbar()" } }, ngImport: i0 });
|
|
210
|
-
}
|
|
211
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkToolbarWidgetGroup, decorators: [{
|
|
212
|
-
type: Directive,
|
|
213
|
-
args: [{
|
|
214
|
-
host: {
|
|
215
|
-
'[class.cdk-toolbar-widget-group]': '!!toolbar()',
|
|
216
|
-
},
|
|
217
|
-
}]
|
|
218
|
-
}] });
|
|
219
|
-
|
|
220
|
-
export { CdkToolbar, CdkToolbarWidget, CdkToolbarWidgetGroup };
|
|
221
|
-
//# sourceMappingURL=toolbar.mjs.map
|
package/fesm2022/toolbar.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/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 {\n afterRenderEffect,\n Directive,\n ElementRef,\n inject,\n computed,\n input,\n booleanAttribute,\n signal,\n Signal,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {\n ToolbarPattern,\n ToolbarWidgetPattern,\n ToolbarWidgetGroupPattern,\n ToolbarWidgetGroupControls,\n} from '../ui-patterns';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {_IdGenerator} from '@angular/cdk/a11y';\n\ninterface HasElement {\n element: Signal<HTMLElement>;\n}\n\n/**\n * Sort directives by their document order.\n */\nfunction sortDirectives(a: HasElement, b: HasElement) {\n return (a.element().compareDocumentPosition(b.element()) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\n}\n\n/**\n * A toolbar widget container.\n *\n * Widgets such as radio groups or buttons are nested within a toolbar to allow for a single\n * place of reference for focus and navigation. The CdkToolbar is meant to be used in conjunction\n * with CdkToolbarWidget and CdkRadioGroup as follows:\n *\n * ```html\n * <div cdkToolbar>\n * <button cdkToolbarWidget>Button</button>\n * <div cdkRadioGroup>\n * <label cdkRadioButton value=\"1\">Option 1</label>\n * <label cdkRadioButton value=\"2\">Option 2</label>\n * <label cdkRadioButton value=\"3\">Option 3</label>\n * </div>\n * </div>\n * ```\n */\n@Directive({\n selector: '[cdkToolbar]',\n exportAs: 'cdkToolbar',\n host: {\n 'role': 'toolbar',\n 'class': 'cdk-toolbar',\n '[attr.tabindex]': 'pattern.tabindex()',\n '[attr.aria-disabled]': 'pattern.disabled()',\n '[attr.aria-orientation]': 'pattern.orientation()',\n '(keydown)': 'pattern.onKeydown($event)',\n '(pointerdown)': 'pattern.onPointerdown($event)',\n '(focusin)': 'onFocus()',\n },\n})\nexport class CdkToolbar<V> {\n /** A reference to the toolbar element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The CdkTabList nested inside of the container. */\n private readonly _cdkWidgets = signal(new Set<CdkToolbarWidget<V> | CdkToolbarWidgetGroup<V>>());\n\n /** A signal wrapper for directionality. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Sorted UIPatterns of the child widgets */\n readonly items = computed(() =>\n [...this._cdkWidgets()].sort(sortDirectives).map(widget => widget.pattern),\n );\n\n /** Whether the toolbar is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\n\n /** Whether disabled items in the group should be skipped when navigating. */\n readonly skipDisabled = input(false, {transform: booleanAttribute});\n\n /** Whether the toolbar is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The toolbar UIPattern. */\n readonly pattern: ToolbarPattern<V> = new ToolbarPattern<V>({\n ...this,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n getItem: e => this._getItem(e),\n });\n\n /** Whether the toolbar has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const violations = this.pattern.validate();\n for (const violation of violations) {\n console.error(violation);\n }\n }\n });\n\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this.pattern.setDefaultState();\n }\n });\n }\n\n onFocus() {\n this._hasFocused.set(true);\n }\n\n register(widget: CdkToolbarWidget<V> | CdkToolbarWidgetGroup<V>) {\n const widgets = this._cdkWidgets();\n if (!widgets.has(widget)) {\n widgets.add(widget);\n this._cdkWidgets.set(new Set(widgets));\n }\n }\n\n unregister(widget: CdkToolbarWidget<V> | CdkToolbarWidgetGroup<V>) {\n const widgets = this._cdkWidgets();\n if (widgets.delete(widget)) {\n this._cdkWidgets.set(new Set(widgets));\n }\n }\n\n /** Finds the toolbar item associated with a given element. */\n private _getItem(element: Element) {\n const widgetTarget = element.closest('.cdk-toolbar-widget');\n const groupTarget = element.closest('.cdk-toolbar-widget-group');\n return this.items().find(\n widget => widget.element() === widgetTarget || widget.element() === groupTarget,\n );\n }\n}\n\n/**\n * A widget within a toolbar.\n *\n * A widget is anything that is within a toolbar. It should be applied to any native HTML element\n * that has the purpose of acting as a widget navigatable within a toolbar.\n */\n@Directive({\n selector: '[cdkToolbarWidget]',\n exportAs: 'cdkToolbarWidget',\n host: {\n 'class': 'cdk-toolbar-widget',\n '[class.cdk-active]': 'pattern.active()',\n '[attr.tabindex]': 'pattern.tabindex()',\n '[attr.inert]': 'hardDisabled() ? true : null',\n '[attr.disabled]': 'hardDisabled() ? true : null',\n '[attr.aria-disabled]': 'pattern.disabled()',\n '[id]': 'pattern.id()',\n },\n})\nexport class CdkToolbarWidget<V> implements OnInit, OnDestroy {\n /** A reference to the widget element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The parent CdkToolbar. */\n private readonly _cdkToolbar = inject(CdkToolbar);\n\n /** A unique identifier for the widget. */\n private readonly _generatedId = inject(_IdGenerator).getId('cdk-toolbar-widget-');\n\n /** A unique identifier for the widget. */\n readonly id = computed(() => this._generatedId);\n\n /** The parent Toolbar UIPattern. */\n readonly toolbar = computed(() => this._cdkToolbar.pattern);\n\n /** A reference to the widget element to be focused on navigation. */\n readonly element = computed(() => this._elementRef.nativeElement);\n\n /** Whether the widget is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the widget is 'hard' disabled, which is different from `aria-disabled`. A hard disabled widget cannot receive focus. */\n readonly hardDisabled = computed(\n () => this.pattern.disabled() && this._cdkToolbar.skipDisabled(),\n );\n\n /** The ToolbarWidget UIPattern. */\n readonly pattern = new ToolbarWidgetPattern<V>({\n ...this,\n id: this.id,\n element: this.element,\n disabled: computed(() => this._cdkToolbar.disabled() || this.disabled()),\n });\n\n ngOnInit() {\n this._cdkToolbar.register(this);\n }\n\n ngOnDestroy() {\n this._cdkToolbar.unregister(this);\n }\n}\n\n/**\n * A directive that groups toolbar widgets, used for more complex widgets like radio groups that\n * have their own internal navigation.\n */\n@Directive({\n host: {\n '[class.cdk-toolbar-widget-group]': '!!toolbar()',\n },\n})\nexport class CdkToolbarWidgetGroup<V> implements OnInit, OnDestroy {\n /** A reference to the widget element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The parent CdkToolbar. */\n private readonly _cdkToolbar = inject(CdkToolbar, {optional: true});\n\n /** A unique identifier for the widget. */\n private readonly _generatedId = inject(_IdGenerator).getId('cdk-toolbar-widget-group-');\n\n /** A unique identifier for the widget. */\n readonly id = computed(() => this._generatedId);\n\n /** The parent Toolbar UIPattern. */\n readonly toolbar = computed(() => this._cdkToolbar?.pattern);\n\n /** A reference to the widget element to be focused on navigation. */\n readonly element = computed(() => this._elementRef.nativeElement);\n\n /** Whether the widget group is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The controls that can be performed on the widget group. */\n readonly controls = signal<ToolbarWidgetGroupControls | undefined>(undefined);\n\n /** The ToolbarWidgetGroup UIPattern. */\n readonly pattern = new ToolbarWidgetGroupPattern<V>({\n ...this,\n id: this.id,\n element: this.element,\n });\n\n ngOnInit() {\n this._cdkToolbar?.register(this);\n }\n\n ngOnDestroy() {\n this._cdkToolbar?.unregister(this);\n }\n}\n"],"names":[],"mappings":"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"}
|