@angular/aria 22.0.0-next.5 → 22.0.0-next.7
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/_combobox-chunk.mjs +51 -2
- package/fesm2022/_combobox-chunk.mjs.map +1 -1
- package/fesm2022/_combobox-listbox-chunk.mjs +3 -0
- package/fesm2022/_combobox-listbox-chunk.mjs.map +1 -1
- package/fesm2022/_combobox-tree-chunk.mjs.map +1 -1
- package/fesm2022/_deferred-content-chunk.mjs +16 -14
- package/fesm2022/_deferred-content-chunk.mjs.map +1 -1
- package/fesm2022/_list-navigation-chunk.mjs +3 -1
- package/fesm2022/_list-navigation-chunk.mjs.map +1 -1
- package/fesm2022/_signal-like-chunk.mjs +0 -1
- package/fesm2022/_signal-like-chunk.mjs.map +1 -1
- package/fesm2022/_tabs-chunk.mjs +22 -47
- package/fesm2022/_tabs-chunk.mjs.map +1 -1
- package/fesm2022/_widget-chunk.mjs +55 -13
- package/fesm2022/_widget-chunk.mjs.map +1 -1
- package/fesm2022/accordion.mjs +16 -14
- package/fesm2022/accordion.mjs.map +1 -1
- package/fesm2022/aria.mjs +1 -1
- package/fesm2022/aria.mjs.map +1 -1
- package/fesm2022/combobox.mjs +59 -34
- package/fesm2022/combobox.mjs.map +1 -1
- package/fesm2022/grid-testing.mjs +72 -0
- package/fesm2022/grid-testing.mjs.map +1 -0
- package/fesm2022/grid.mjs +83 -37
- package/fesm2022/grid.mjs.map +1 -1
- package/fesm2022/listbox.mjs +58 -31
- package/fesm2022/listbox.mjs.map +1 -1
- package/fesm2022/menu.mjs +41 -35
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/private.mjs +156 -5
- package/fesm2022/private.mjs.map +1 -1
- package/fesm2022/simple-combobox.mjs +443 -0
- package/fesm2022/simple-combobox.mjs.map +1 -0
- package/fesm2022/tabs.mjs +243 -218
- package/fesm2022/tabs.mjs.map +1 -1
- package/fesm2022/toolbar.mjs +11 -11
- package/fesm2022/toolbar.mjs.map +1 -1
- package/fesm2022/tree.mjs +65 -33
- package/fesm2022/tree.mjs.map +1 -1
- package/package.json +10 -2
- package/types/_combobox-chunk.d.ts +32 -2
- package/types/_grid-chunk.d.ts +16 -8
- package/types/_tabs-chunk.d.ts +7 -42
- package/types/combobox.d.ts +4 -3
- package/types/grid-testing.d.ts +79 -0
- package/types/grid.d.ts +14 -6
- package/types/listbox.d.ts +8 -6
- package/types/menu.d.ts +7 -4
- package/types/private.d.ts +106 -10
- package/types/simple-combobox.d.ts +124 -0
- package/types/tabs.d.ts +79 -74
- package/types/tree.d.ts +5 -2
- package/fesm2022/_pointer-event-manager-chunk.mjs +0 -54
- package/fesm2022/_pointer-event-manager-chunk.mjs.map +0 -1
- package/resources/code-examples.db +0 -0
- package/types/_pointer-event-manager-chunk.d.ts +0 -34
package/fesm2022/tabs.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { _IdGenerator } from '@angular/cdk/a11y';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { InjectionToken, inject, ElementRef, signal, computed, input, booleanAttribute, model,
|
|
3
|
+
import { InjectionToken, inject, ElementRef, signal, computed, afterRenderEffect, Directive, input, booleanAttribute, model, linkedSignal } from '@angular/core';
|
|
4
|
+
import { TabListPattern, TabPattern, TabPanelPattern } from './_tabs-chunk.mjs';
|
|
5
|
+
import { DeferredContentAware, DeferredContent } from './_deferred-content-chunk.mjs';
|
|
4
6
|
import { Directionality } from '@angular/cdk/bidi';
|
|
5
|
-
import { TabListPattern, TabPanelPattern, TabPattern } from './_tabs-chunk.mjs';
|
|
6
7
|
import { sortDirectives } from './_element-chunk.mjs';
|
|
7
|
-
import { DeferredContentAware, DeferredContent } from './_deferred-content-chunk.mjs';
|
|
8
8
|
import './_expansion-chunk.mjs';
|
|
9
9
|
import './_signal-like-chunk.mjs';
|
|
10
10
|
import '@angular/core/primitives/signals';
|
|
@@ -12,21 +12,109 @@ import './_list-navigation-chunk.mjs';
|
|
|
12
12
|
import './_click-event-manager-chunk.mjs';
|
|
13
13
|
|
|
14
14
|
const TABS = new InjectionToken('TABS');
|
|
15
|
+
const TAB_LIST = new InjectionToken('TAB_LIST');
|
|
16
|
+
|
|
17
|
+
class Tabs {
|
|
18
|
+
_elementRef = inject(ElementRef);
|
|
19
|
+
element = this._elementRef.nativeElement;
|
|
20
|
+
_tabList = signal(undefined, ...(ngDevMode ? [{
|
|
21
|
+
debugName: "_tabList"
|
|
22
|
+
}] : []));
|
|
23
|
+
_tabPanels = signal(new Set(), ...(ngDevMode ? [{
|
|
24
|
+
debugName: "_tabPanels"
|
|
25
|
+
}] : []));
|
|
26
|
+
_tabPanelsList = computed(() => [...this._tabPanels()], ...(ngDevMode ? [{
|
|
27
|
+
debugName: "_tabPanelsList"
|
|
28
|
+
}] : []));
|
|
29
|
+
constructor() {
|
|
30
|
+
afterRenderEffect({
|
|
31
|
+
write: () => {
|
|
32
|
+
if (this._tabList()) {
|
|
33
|
+
for (const tab of this._tabList()._sortedTabs()) {
|
|
34
|
+
const panel = this._tabPanelsList().find(panel => panel === tab.panel());
|
|
35
|
+
if (panel) {
|
|
36
|
+
panel._tabPattern.set(tab._pattern);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
_registerList(list) {
|
|
44
|
+
this._tabList.set(list);
|
|
45
|
+
}
|
|
46
|
+
_unregisterList(list) {
|
|
47
|
+
this._tabList.set(undefined);
|
|
48
|
+
}
|
|
49
|
+
_registerPanel(panel) {
|
|
50
|
+
this._tabPanels().add(panel);
|
|
51
|
+
this._tabPanels.set(new Set(this._tabPanels()));
|
|
52
|
+
}
|
|
53
|
+
_unregisterPanel(panel) {
|
|
54
|
+
this._tabPanels().delete(panel);
|
|
55
|
+
this._tabPanels.set(new Set(this._tabPanels()));
|
|
56
|
+
}
|
|
57
|
+
findTabPanel(value) {
|
|
58
|
+
return value ? this._tabPanelsList().find(panel => panel.value() === value) : undefined;
|
|
59
|
+
}
|
|
60
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
61
|
+
minVersion: "12.0.0",
|
|
62
|
+
version: "22.0.0-next.9",
|
|
63
|
+
ngImport: i0,
|
|
64
|
+
type: Tabs,
|
|
65
|
+
deps: [],
|
|
66
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
67
|
+
});
|
|
68
|
+
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
69
|
+
minVersion: "14.0.0",
|
|
70
|
+
version: "22.0.0-next.9",
|
|
71
|
+
type: Tabs,
|
|
72
|
+
isStandalone: true,
|
|
73
|
+
selector: "[ngTabs]",
|
|
74
|
+
providers: [{
|
|
75
|
+
provide: TABS,
|
|
76
|
+
useExisting: Tabs
|
|
77
|
+
}],
|
|
78
|
+
exportAs: ["ngTabs"],
|
|
79
|
+
ngImport: i0
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
83
|
+
minVersion: "12.0.0",
|
|
84
|
+
version: "22.0.0-next.9",
|
|
85
|
+
ngImport: i0,
|
|
86
|
+
type: Tabs,
|
|
87
|
+
decorators: [{
|
|
88
|
+
type: Directive,
|
|
89
|
+
args: [{
|
|
90
|
+
selector: '[ngTabs]',
|
|
91
|
+
exportAs: 'ngTabs',
|
|
92
|
+
providers: [{
|
|
93
|
+
provide: TABS,
|
|
94
|
+
useExisting: Tabs
|
|
95
|
+
}]
|
|
96
|
+
}]
|
|
97
|
+
}],
|
|
98
|
+
ctorParameters: () => []
|
|
99
|
+
});
|
|
15
100
|
|
|
16
101
|
class TabList {
|
|
17
102
|
_elementRef = inject(ElementRef);
|
|
18
103
|
element = this._elementRef.nativeElement;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
debugName: "
|
|
104
|
+
_tabsParent = inject(TABS);
|
|
105
|
+
_tabs = signal(new Set(), ...(ngDevMode ? [{
|
|
106
|
+
debugName: "_tabs"
|
|
22
107
|
}] : []));
|
|
23
|
-
|
|
24
|
-
|
|
108
|
+
_sortedTabs = computed(() => [...this._tabs()].sort(sortDirectives), ...(ngDevMode ? [{
|
|
109
|
+
debugName: "_sortedTabs"
|
|
110
|
+
}] : []));
|
|
111
|
+
_tabPatterns = computed(() => [...this._sortedTabs()].map(tab => tab._pattern), ...(ngDevMode ? [{
|
|
25
112
|
debugName: "_tabPatterns"
|
|
26
113
|
}] : []));
|
|
27
114
|
orientation = input('horizontal', ...(ngDevMode ? [{
|
|
28
115
|
debugName: "orientation"
|
|
29
116
|
}] : []));
|
|
117
|
+
textDirection = inject(Directionality).valueSignal;
|
|
30
118
|
wrap = input(true, {
|
|
31
119
|
...(ngDevMode ? {
|
|
32
120
|
debugName: "wrap"
|
|
@@ -48,6 +136,12 @@ class TabList {
|
|
|
48
136
|
selectedTab = model(...(ngDevMode ? [undefined, {
|
|
49
137
|
debugName: "selectedTab"
|
|
50
138
|
}] : []));
|
|
139
|
+
_selectedTabPattern = linkedSignal(() => {
|
|
140
|
+
const tab = this.findTab(this.selectedTab());
|
|
141
|
+
return tab?._pattern;
|
|
142
|
+
}, ...(ngDevMode ? [{
|
|
143
|
+
debugName: "_selectedTabPattern"
|
|
144
|
+
}] : []));
|
|
51
145
|
disabled = input(false, {
|
|
52
146
|
...(ngDevMode ? {
|
|
53
147
|
debugName: "disabled"
|
|
@@ -56,50 +150,46 @@ class TabList {
|
|
|
56
150
|
});
|
|
57
151
|
_pattern = new TabListPattern({
|
|
58
152
|
...this,
|
|
59
|
-
|
|
153
|
+
element: () => this._elementRef.nativeElement,
|
|
60
154
|
activeItem: signal(undefined),
|
|
61
|
-
|
|
155
|
+
items: this._tabPatterns,
|
|
156
|
+
selectedTab: this._selectedTabPattern
|
|
62
157
|
});
|
|
63
158
|
constructor() {
|
|
64
|
-
afterRenderEffect(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
if (tab) {
|
|
70
|
-
this.selectedTab.set(tab.value());
|
|
159
|
+
afterRenderEffect({
|
|
160
|
+
write: () => {
|
|
161
|
+
const pattern = this._selectedTabPattern();
|
|
162
|
+
const tab = this._sortedTabs().find(tab => tab._pattern == pattern);
|
|
163
|
+
this.selectedTab.set(tab?.value());
|
|
71
164
|
}
|
|
72
165
|
});
|
|
73
|
-
afterRenderEffect(
|
|
74
|
-
|
|
75
|
-
if (value) {
|
|
76
|
-
this._tabPatterns().forEach(tab => tab.expanded.set(false));
|
|
77
|
-
const tab = this._tabPatterns().find(t => t.value() === value);
|
|
78
|
-
this._pattern.selectedTab.set(tab);
|
|
79
|
-
tab?.expanded.set(true);
|
|
80
|
-
}
|
|
166
|
+
afterRenderEffect({
|
|
167
|
+
write: () => this._pattern.setDefaultStateEffect()
|
|
81
168
|
});
|
|
82
169
|
}
|
|
83
170
|
ngOnInit() {
|
|
84
|
-
this.
|
|
171
|
+
this._tabsParent._registerList(this);
|
|
85
172
|
}
|
|
86
173
|
ngOnDestroy() {
|
|
87
|
-
this.
|
|
174
|
+
this._tabsParent._registerList(this);
|
|
88
175
|
}
|
|
89
|
-
|
|
90
|
-
this.
|
|
91
|
-
this.
|
|
176
|
+
_registerTab(child) {
|
|
177
|
+
this._tabs().add(child);
|
|
178
|
+
this._tabs.set(new Set(this._tabs()));
|
|
92
179
|
}
|
|
93
|
-
|
|
94
|
-
this.
|
|
95
|
-
this.
|
|
180
|
+
_unregisterTab(child) {
|
|
181
|
+
this._tabs().delete(child);
|
|
182
|
+
this._tabs.set(new Set(this._tabs()));
|
|
96
183
|
}
|
|
97
184
|
open(value) {
|
|
98
|
-
return this._pattern.open(value);
|
|
185
|
+
return this._pattern.open(this.findTab(value)?._pattern);
|
|
186
|
+
}
|
|
187
|
+
findTab(value) {
|
|
188
|
+
return value ? this._sortedTabs().find(tab => tab.value() === value) : undefined;
|
|
99
189
|
}
|
|
100
190
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
101
191
|
minVersion: "12.0.0",
|
|
102
|
-
version: "22.0.0-next.
|
|
192
|
+
version: "22.0.0-next.9",
|
|
103
193
|
ngImport: i0,
|
|
104
194
|
type: TabList,
|
|
105
195
|
deps: [],
|
|
@@ -107,7 +197,7 @@ class TabList {
|
|
|
107
197
|
});
|
|
108
198
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
109
199
|
minVersion: "17.1.0",
|
|
110
|
-
version: "22.0.0-next.
|
|
200
|
+
version: "22.0.0-next.9",
|
|
111
201
|
type: TabList,
|
|
112
202
|
isStandalone: true,
|
|
113
203
|
selector: "[ngTabList]",
|
|
@@ -181,13 +271,17 @@ class TabList {
|
|
|
181
271
|
"attr.aria-activedescendant": "_pattern.activeDescendant()"
|
|
182
272
|
}
|
|
183
273
|
},
|
|
274
|
+
providers: [{
|
|
275
|
+
provide: TAB_LIST,
|
|
276
|
+
useExisting: TabList
|
|
277
|
+
}],
|
|
184
278
|
exportAs: ["ngTabList"],
|
|
185
279
|
ngImport: i0
|
|
186
280
|
});
|
|
187
281
|
}
|
|
188
282
|
i0.ɵɵngDeclareClassMetadata({
|
|
189
283
|
minVersion: "12.0.0",
|
|
190
|
-
version: "22.0.0-next.
|
|
284
|
+
version: "22.0.0-next.9",
|
|
191
285
|
ngImport: i0,
|
|
192
286
|
type: TabList,
|
|
193
287
|
decorators: [{
|
|
@@ -204,7 +298,11 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
204
298
|
'(keydown)': '_pattern.onKeydown($event)',
|
|
205
299
|
'(click)': '_pattern.onClick($event)',
|
|
206
300
|
'(focusin)': '_pattern.onFocusIn()'
|
|
207
|
-
}
|
|
301
|
+
},
|
|
302
|
+
providers: [{
|
|
303
|
+
provide: TAB_LIST,
|
|
304
|
+
useExisting: TabList
|
|
305
|
+
}]
|
|
208
306
|
}]
|
|
209
307
|
}],
|
|
210
308
|
ctorParameters: () => [],
|
|
@@ -271,50 +369,61 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
271
369
|
}
|
|
272
370
|
});
|
|
273
371
|
|
|
274
|
-
class
|
|
372
|
+
class Tab {
|
|
275
373
|
_elementRef = inject(ElementRef);
|
|
276
374
|
element = this._elementRef.nativeElement;
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
id = input(inject(_IdGenerator).getId('ng-
|
|
375
|
+
_tabsWrapper = inject(TABS);
|
|
376
|
+
_tabList = inject(TAB_LIST);
|
|
377
|
+
id = input(inject(_IdGenerator).getId('ng-tab-', true), ...(ngDevMode ? [{
|
|
280
378
|
debugName: "id"
|
|
281
379
|
}] : []));
|
|
282
|
-
|
|
283
|
-
debugName: "
|
|
380
|
+
panel = computed(() => this._tabsWrapper.findTabPanel(this.value()), ...(ngDevMode ? [{
|
|
381
|
+
debugName: "panel"
|
|
284
382
|
}] : []));
|
|
383
|
+
disabled = input(false, {
|
|
384
|
+
...(ngDevMode ? {
|
|
385
|
+
debugName: "disabled"
|
|
386
|
+
} : {}),
|
|
387
|
+
transform: booleanAttribute
|
|
388
|
+
});
|
|
285
389
|
value = input.required(...(ngDevMode ? [{
|
|
286
390
|
debugName: "value"
|
|
287
391
|
}] : []));
|
|
288
|
-
|
|
289
|
-
debugName: "
|
|
392
|
+
active = computed(() => this._pattern.active(), ...(ngDevMode ? [{
|
|
393
|
+
debugName: "active"
|
|
290
394
|
}] : []));
|
|
291
|
-
|
|
395
|
+
selected = computed(() => this._pattern.selected(), ...(ngDevMode ? [{
|
|
396
|
+
debugName: "selected"
|
|
397
|
+
}] : []));
|
|
398
|
+
_pattern = new TabPattern({
|
|
292
399
|
...this,
|
|
293
|
-
|
|
400
|
+
element: () => this.element,
|
|
401
|
+
tabList: () => this._tabList._pattern,
|
|
402
|
+
tabPanel: computed(() => this.panel()?._pattern)
|
|
294
403
|
});
|
|
295
|
-
|
|
296
|
-
|
|
404
|
+
open() {
|
|
405
|
+
this._pattern.open();
|
|
297
406
|
}
|
|
298
407
|
ngOnInit() {
|
|
299
|
-
this.
|
|
408
|
+
this._tabList._registerTab(this);
|
|
300
409
|
}
|
|
301
410
|
ngOnDestroy() {
|
|
302
|
-
this.
|
|
411
|
+
this._tabList._unregisterTab(this);
|
|
303
412
|
}
|
|
304
413
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
305
414
|
minVersion: "12.0.0",
|
|
306
|
-
version: "22.0.0-next.
|
|
415
|
+
version: "22.0.0-next.9",
|
|
307
416
|
ngImport: i0,
|
|
308
|
-
type:
|
|
417
|
+
type: Tab,
|
|
309
418
|
deps: [],
|
|
310
419
|
target: i0.ɵɵFactoryTarget.Directive
|
|
311
420
|
});
|
|
312
421
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
313
422
|
minVersion: "17.1.0",
|
|
314
|
-
version: "22.0.0-next.
|
|
315
|
-
type:
|
|
423
|
+
version: "22.0.0-next.9",
|
|
424
|
+
type: Tab,
|
|
316
425
|
isStandalone: true,
|
|
317
|
-
selector: "[
|
|
426
|
+
selector: "[ngTab]",
|
|
318
427
|
inputs: {
|
|
319
428
|
id: {
|
|
320
429
|
classPropertyName: "id",
|
|
@@ -323,6 +432,13 @@ class TabPanel {
|
|
|
323
432
|
isRequired: false,
|
|
324
433
|
transformFunction: null
|
|
325
434
|
},
|
|
435
|
+
disabled: {
|
|
436
|
+
classPropertyName: "disabled",
|
|
437
|
+
publicName: "disabled",
|
|
438
|
+
isSignal: true,
|
|
439
|
+
isRequired: false,
|
|
440
|
+
transformFunction: null
|
|
441
|
+
},
|
|
326
442
|
value: {
|
|
327
443
|
classPropertyName: "value",
|
|
328
444
|
publicName: "value",
|
|
@@ -333,47 +449,42 @@ class TabPanel {
|
|
|
333
449
|
},
|
|
334
450
|
host: {
|
|
335
451
|
attributes: {
|
|
336
|
-
"role": "
|
|
452
|
+
"role": "tab"
|
|
337
453
|
},
|
|
338
454
|
properties: {
|
|
455
|
+
"attr.data-active": "active()",
|
|
339
456
|
"attr.id": "_pattern.id()",
|
|
340
457
|
"attr.tabindex": "_pattern.tabIndex()",
|
|
341
|
-
"attr.
|
|
342
|
-
"attr.aria-
|
|
458
|
+
"attr.aria-selected": "selected()",
|
|
459
|
+
"attr.aria-disabled": "_pattern.disabled()",
|
|
460
|
+
"attr.aria-controls": "_pattern.controls()"
|
|
343
461
|
}
|
|
344
462
|
},
|
|
345
|
-
exportAs: ["
|
|
346
|
-
hostDirectives: [{
|
|
347
|
-
directive: DeferredContentAware,
|
|
348
|
-
inputs: ["preserveContent", "preserveContent"]
|
|
349
|
-
}],
|
|
463
|
+
exportAs: ["ngTab"],
|
|
350
464
|
ngImport: i0
|
|
351
465
|
});
|
|
352
466
|
}
|
|
353
467
|
i0.ɵɵngDeclareClassMetadata({
|
|
354
468
|
minVersion: "12.0.0",
|
|
355
|
-
version: "22.0.0-next.
|
|
469
|
+
version: "22.0.0-next.9",
|
|
356
470
|
ngImport: i0,
|
|
357
|
-
type:
|
|
471
|
+
type: Tab,
|
|
358
472
|
decorators: [{
|
|
359
473
|
type: Directive,
|
|
360
474
|
args: [{
|
|
361
|
-
selector: '[
|
|
362
|
-
exportAs: '
|
|
475
|
+
selector: '[ngTab]',
|
|
476
|
+
exportAs: 'ngTab',
|
|
363
477
|
host: {
|
|
364
|
-
'role': '
|
|
478
|
+
'role': 'tab',
|
|
479
|
+
'[attr.data-active]': 'active()',
|
|
365
480
|
'[attr.id]': '_pattern.id()',
|
|
366
481
|
'[attr.tabindex]': '_pattern.tabIndex()',
|
|
367
|
-
'[attr.
|
|
368
|
-
'[attr.aria-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
directive: DeferredContentAware,
|
|
372
|
-
inputs: ['preserveContent']
|
|
373
|
-
}]
|
|
482
|
+
'[attr.aria-selected]': 'selected()',
|
|
483
|
+
'[attr.aria-disabled]': '_pattern.disabled()',
|
|
484
|
+
'[attr.aria-controls]': '_pattern.controls()'
|
|
485
|
+
}
|
|
374
486
|
}]
|
|
375
487
|
}],
|
|
376
|
-
ctorParameters: () => [],
|
|
377
488
|
propDecorators: {
|
|
378
489
|
id: [{
|
|
379
490
|
type: i0.Input,
|
|
@@ -383,6 +494,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
383
494
|
required: false
|
|
384
495
|
}]
|
|
385
496
|
}],
|
|
497
|
+
disabled: [{
|
|
498
|
+
type: i0.Input,
|
|
499
|
+
args: [{
|
|
500
|
+
isSignal: true,
|
|
501
|
+
alias: "disabled",
|
|
502
|
+
required: false
|
|
503
|
+
}]
|
|
504
|
+
}],
|
|
386
505
|
value: [{
|
|
387
506
|
type: i0.Input,
|
|
388
507
|
args: [{
|
|
@@ -394,138 +513,54 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
394
513
|
}
|
|
395
514
|
});
|
|
396
515
|
|
|
397
|
-
class
|
|
398
|
-
_elementRef = inject(ElementRef);
|
|
399
|
-
element = this._elementRef.nativeElement;
|
|
400
|
-
_tablist = signal(undefined, ...(ngDevMode ? [{
|
|
401
|
-
debugName: "_tablist"
|
|
402
|
-
}] : []));
|
|
403
|
-
_unorderedPanels = signal(new Set(), ...(ngDevMode ? [{
|
|
404
|
-
debugName: "_unorderedPanels"
|
|
405
|
-
}] : []));
|
|
406
|
-
_tabPatterns = computed(() => this._tablist()?._tabPatterns(), ...(ngDevMode ? [{
|
|
407
|
-
debugName: "_tabPatterns"
|
|
408
|
-
}] : []));
|
|
409
|
-
_unorderedTabpanelPatterns = computed(() => [...this._unorderedPanels()].map(tabpanel => tabpanel._pattern), ...(ngDevMode ? [{
|
|
410
|
-
debugName: "_unorderedTabpanelPatterns"
|
|
411
|
-
}] : []));
|
|
412
|
-
_register(child) {
|
|
413
|
-
if (child instanceof TabList) {
|
|
414
|
-
this._tablist.set(child);
|
|
415
|
-
}
|
|
416
|
-
if (child instanceof TabPanel) {
|
|
417
|
-
this._unorderedPanels().add(child);
|
|
418
|
-
this._unorderedPanels.set(new Set(this._unorderedPanels()));
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
_unregister(child) {
|
|
422
|
-
if (child instanceof TabList) {
|
|
423
|
-
this._tablist.set(undefined);
|
|
424
|
-
}
|
|
425
|
-
if (child instanceof TabPanel) {
|
|
426
|
-
this._unorderedPanels().delete(child);
|
|
427
|
-
this._unorderedPanels.set(new Set(this._unorderedPanels()));
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
431
|
-
minVersion: "12.0.0",
|
|
432
|
-
version: "22.0.0-next.6",
|
|
433
|
-
ngImport: i0,
|
|
434
|
-
type: Tabs,
|
|
435
|
-
deps: [],
|
|
436
|
-
target: i0.ɵɵFactoryTarget.Directive
|
|
437
|
-
});
|
|
438
|
-
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
439
|
-
minVersion: "14.0.0",
|
|
440
|
-
version: "22.0.0-next.6",
|
|
441
|
-
type: Tabs,
|
|
442
|
-
isStandalone: true,
|
|
443
|
-
selector: "[ngTabs]",
|
|
444
|
-
providers: [{
|
|
445
|
-
provide: TABS,
|
|
446
|
-
useExisting: Tabs
|
|
447
|
-
}],
|
|
448
|
-
exportAs: ["ngTabs"],
|
|
449
|
-
ngImport: i0
|
|
450
|
-
});
|
|
451
|
-
}
|
|
452
|
-
i0.ɵɵngDeclareClassMetadata({
|
|
453
|
-
minVersion: "12.0.0",
|
|
454
|
-
version: "22.0.0-next.6",
|
|
455
|
-
ngImport: i0,
|
|
456
|
-
type: Tabs,
|
|
457
|
-
decorators: [{
|
|
458
|
-
type: Directive,
|
|
459
|
-
args: [{
|
|
460
|
-
selector: '[ngTabs]',
|
|
461
|
-
exportAs: 'ngTabs',
|
|
462
|
-
providers: [{
|
|
463
|
-
provide: TABS,
|
|
464
|
-
useExisting: Tabs
|
|
465
|
-
}]
|
|
466
|
-
}]
|
|
467
|
-
}]
|
|
468
|
-
});
|
|
469
|
-
|
|
470
|
-
class Tab {
|
|
516
|
+
class TabPanel {
|
|
471
517
|
_elementRef = inject(ElementRef);
|
|
472
518
|
element = this._elementRef.nativeElement;
|
|
519
|
+
_deferredContentAware = inject(DeferredContentAware);
|
|
473
520
|
_tabs = inject(TABS);
|
|
474
|
-
|
|
475
|
-
id = input(inject(_IdGenerator).getId('ng-tab-', true), ...(ngDevMode ? [{
|
|
521
|
+
id = input(inject(_IdGenerator).getId('ng-tabpanel-', true), ...(ngDevMode ? [{
|
|
476
522
|
debugName: "id"
|
|
477
523
|
}] : []));
|
|
478
|
-
|
|
479
|
-
debugName: "
|
|
480
|
-
}] : []));
|
|
481
|
-
_tabpanelPattern = computed(() => this._tabs._unorderedTabpanelPatterns().find(tabpanel => tabpanel.value() === this.value()), ...(ngDevMode ? [{
|
|
482
|
-
debugName: "_tabpanelPattern"
|
|
524
|
+
_tabPattern = signal(undefined, ...(ngDevMode ? [{
|
|
525
|
+
debugName: "_tabPattern"
|
|
483
526
|
}] : []));
|
|
484
|
-
disabled = input(false, {
|
|
485
|
-
...(ngDevMode ? {
|
|
486
|
-
debugName: "disabled"
|
|
487
|
-
} : {}),
|
|
488
|
-
transform: booleanAttribute
|
|
489
|
-
});
|
|
490
527
|
value = input.required(...(ngDevMode ? [{
|
|
491
528
|
debugName: "value"
|
|
492
529
|
}] : []));
|
|
493
|
-
|
|
494
|
-
debugName: "
|
|
495
|
-
}] : []));
|
|
496
|
-
selected = computed(() => this._pattern.selected(), ...(ngDevMode ? [{
|
|
497
|
-
debugName: "selected"
|
|
530
|
+
visible = computed(() => !this._pattern.hidden(), ...(ngDevMode ? [{
|
|
531
|
+
debugName: "visible"
|
|
498
532
|
}] : []));
|
|
499
|
-
_pattern = new
|
|
533
|
+
_pattern = new TabPanelPattern({
|
|
500
534
|
...this,
|
|
501
|
-
|
|
502
|
-
tabpanel: this._tabpanelPattern,
|
|
503
|
-
expanded: signal(false),
|
|
504
|
-
element: () => this.element
|
|
535
|
+
tab: this._tabPattern
|
|
505
536
|
});
|
|
506
|
-
|
|
507
|
-
|
|
537
|
+
constructor() {
|
|
538
|
+
afterRenderEffect({
|
|
539
|
+
write: () => {
|
|
540
|
+
this._deferredContentAware.contentVisible.set(this.visible());
|
|
541
|
+
}
|
|
542
|
+
});
|
|
508
543
|
}
|
|
509
544
|
ngOnInit() {
|
|
510
|
-
this.
|
|
545
|
+
this._tabs._registerPanel(this);
|
|
511
546
|
}
|
|
512
547
|
ngOnDestroy() {
|
|
513
|
-
this.
|
|
548
|
+
this._tabs._unregisterPanel(this);
|
|
514
549
|
}
|
|
515
550
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
516
551
|
minVersion: "12.0.0",
|
|
517
|
-
version: "22.0.0-next.
|
|
552
|
+
version: "22.0.0-next.9",
|
|
518
553
|
ngImport: i0,
|
|
519
|
-
type:
|
|
554
|
+
type: TabPanel,
|
|
520
555
|
deps: [],
|
|
521
556
|
target: i0.ɵɵFactoryTarget.Directive
|
|
522
557
|
});
|
|
523
558
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
524
559
|
minVersion: "17.1.0",
|
|
525
|
-
version: "22.0.0-next.
|
|
526
|
-
type:
|
|
560
|
+
version: "22.0.0-next.9",
|
|
561
|
+
type: TabPanel,
|
|
527
562
|
isStandalone: true,
|
|
528
|
-
selector: "[
|
|
563
|
+
selector: "[ngTabPanel]",
|
|
529
564
|
inputs: {
|
|
530
565
|
id: {
|
|
531
566
|
classPropertyName: "id",
|
|
@@ -534,13 +569,6 @@ class Tab {
|
|
|
534
569
|
isRequired: false,
|
|
535
570
|
transformFunction: null
|
|
536
571
|
},
|
|
537
|
-
disabled: {
|
|
538
|
-
classPropertyName: "disabled",
|
|
539
|
-
publicName: "disabled",
|
|
540
|
-
isSignal: true,
|
|
541
|
-
isRequired: false,
|
|
542
|
-
transformFunction: null
|
|
543
|
-
},
|
|
544
572
|
value: {
|
|
545
573
|
classPropertyName: "value",
|
|
546
574
|
publicName: "value",
|
|
@@ -551,42 +579,47 @@ class Tab {
|
|
|
551
579
|
},
|
|
552
580
|
host: {
|
|
553
581
|
attributes: {
|
|
554
|
-
"role": "
|
|
582
|
+
"role": "tabpanel"
|
|
555
583
|
},
|
|
556
584
|
properties: {
|
|
557
|
-
"attr.data-active": "active()",
|
|
558
585
|
"attr.id": "_pattern.id()",
|
|
559
586
|
"attr.tabindex": "_pattern.tabIndex()",
|
|
560
|
-
"attr.
|
|
561
|
-
"attr.aria-
|
|
562
|
-
"attr.aria-controls": "_pattern.controls()"
|
|
587
|
+
"attr.inert": "!visible() ? true : null",
|
|
588
|
+
"attr.aria-labelledby": "_pattern.labelledBy()"
|
|
563
589
|
}
|
|
564
590
|
},
|
|
565
|
-
exportAs: ["
|
|
591
|
+
exportAs: ["ngTabPanel"],
|
|
592
|
+
hostDirectives: [{
|
|
593
|
+
directive: DeferredContentAware,
|
|
594
|
+
inputs: ["preserveContent", "preserveContent"]
|
|
595
|
+
}],
|
|
566
596
|
ngImport: i0
|
|
567
597
|
});
|
|
568
598
|
}
|
|
569
599
|
i0.ɵɵngDeclareClassMetadata({
|
|
570
600
|
minVersion: "12.0.0",
|
|
571
|
-
version: "22.0.0-next.
|
|
601
|
+
version: "22.0.0-next.9",
|
|
572
602
|
ngImport: i0,
|
|
573
|
-
type:
|
|
603
|
+
type: TabPanel,
|
|
574
604
|
decorators: [{
|
|
575
605
|
type: Directive,
|
|
576
606
|
args: [{
|
|
577
|
-
selector: '[
|
|
578
|
-
exportAs: '
|
|
607
|
+
selector: '[ngTabPanel]',
|
|
608
|
+
exportAs: 'ngTabPanel',
|
|
579
609
|
host: {
|
|
580
|
-
'role': '
|
|
581
|
-
'[attr.data-active]': 'active()',
|
|
610
|
+
'role': 'tabpanel',
|
|
582
611
|
'[attr.id]': '_pattern.id()',
|
|
583
612
|
'[attr.tabindex]': '_pattern.tabIndex()',
|
|
584
|
-
'[attr.
|
|
585
|
-
'[attr.aria-
|
|
586
|
-
|
|
587
|
-
|
|
613
|
+
'[attr.inert]': '!visible() ? true : null',
|
|
614
|
+
'[attr.aria-labelledby]': '_pattern.labelledBy()'
|
|
615
|
+
},
|
|
616
|
+
hostDirectives: [{
|
|
617
|
+
directive: DeferredContentAware,
|
|
618
|
+
inputs: ['preserveContent']
|
|
619
|
+
}]
|
|
588
620
|
}]
|
|
589
621
|
}],
|
|
622
|
+
ctorParameters: () => [],
|
|
590
623
|
propDecorators: {
|
|
591
624
|
id: [{
|
|
592
625
|
type: i0.Input,
|
|
@@ -596,14 +629,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
596
629
|
required: false
|
|
597
630
|
}]
|
|
598
631
|
}],
|
|
599
|
-
disabled: [{
|
|
600
|
-
type: i0.Input,
|
|
601
|
-
args: [{
|
|
602
|
-
isSignal: true,
|
|
603
|
-
alias: "disabled",
|
|
604
|
-
required: false
|
|
605
|
-
}]
|
|
606
|
-
}],
|
|
607
632
|
value: [{
|
|
608
633
|
type: i0.Input,
|
|
609
634
|
args: [{
|
|
@@ -618,7 +643,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
618
643
|
class TabContent {
|
|
619
644
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
620
645
|
minVersion: "12.0.0",
|
|
621
|
-
version: "22.0.0-next.
|
|
646
|
+
version: "22.0.0-next.9",
|
|
622
647
|
ngImport: i0,
|
|
623
648
|
type: TabContent,
|
|
624
649
|
deps: [],
|
|
@@ -626,7 +651,7 @@ class TabContent {
|
|
|
626
651
|
});
|
|
627
652
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
628
653
|
minVersion: "14.0.0",
|
|
629
|
-
version: "22.0.0-next.
|
|
654
|
+
version: "22.0.0-next.9",
|
|
630
655
|
type: TabContent,
|
|
631
656
|
isStandalone: true,
|
|
632
657
|
selector: "ng-template[ngTabContent]",
|
|
@@ -639,7 +664,7 @@ class TabContent {
|
|
|
639
664
|
}
|
|
640
665
|
i0.ɵɵngDeclareClassMetadata({
|
|
641
666
|
minVersion: "12.0.0",
|
|
642
|
-
version: "22.0.0-next.
|
|
667
|
+
version: "22.0.0-next.9",
|
|
643
668
|
ngImport: i0,
|
|
644
669
|
type: TabContent,
|
|
645
670
|
decorators: [{
|