@angular/aria 22.1.0-next.0 → 22.1.0-next.2
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/_accordion-chunk.mjs.map +1 -1
- package/fesm2022/_click-event-manager-chunk.mjs.map +1 -1
- package/fesm2022/_deferred-content-chunk.mjs +6 -6
- package/fesm2022/_deferred-content-chunk.mjs.map +1 -1
- package/fesm2022/_expansion-chunk.mjs.map +1 -1
- package/fesm2022/_list-chunk.mjs.map +1 -1
- package/fesm2022/_list-navigation-chunk.mjs.map +1 -1
- package/fesm2022/_list-typeahead-chunk.mjs.map +1 -1
- package/fesm2022/_menu-chunk.mjs.map +1 -1
- package/fesm2022/_option-chunk.mjs.map +1 -1
- package/fesm2022/_tabs-chunk.mjs.map +1 -1
- package/fesm2022/_toolbar-widget-group-chunk.mjs.map +1 -1
- package/fesm2022/_transforms-chunk.mjs.map +1 -1
- package/fesm2022/_tree-chunk.mjs.map +1 -1
- package/fesm2022/_violations-chunk.mjs +1 -1
- package/fesm2022/_violations-chunk.mjs.map +1 -1
- package/fesm2022/_widget-chunk.mjs.map +1 -1
- package/fesm2022/accordion-testing.mjs.map +1 -1
- package/fesm2022/accordion.mjs +12 -12
- package/fesm2022/accordion.mjs.map +1 -1
- package/fesm2022/aria.mjs +1 -1
- package/fesm2022/aria.mjs.map +1 -1
- package/fesm2022/combobox-testing.mjs.map +1 -1
- package/fesm2022/combobox.mjs +40 -14
- package/fesm2022/combobox.mjs.map +1 -1
- package/fesm2022/grid-testing.mjs.map +1 -1
- package/fesm2022/grid.mjs +12 -12
- package/fesm2022/grid.mjs.map +1 -1
- package/fesm2022/listbox-testing.mjs.map +1 -1
- package/fesm2022/listbox.mjs +6 -6
- package/fesm2022/listbox.mjs.map +1 -1
- package/fesm2022/menu-testing.mjs.map +1 -1
- package/fesm2022/menu.mjs +15 -15
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/private.mjs +20 -10
- package/fesm2022/private.mjs.map +1 -1
- package/fesm2022/tabs-testing.mjs.map +1 -1
- package/fesm2022/tabs.mjs +15 -15
- package/fesm2022/tabs.mjs.map +1 -1
- package/fesm2022/toolbar-testing.mjs.map +1 -1
- package/fesm2022/toolbar.mjs +9 -9
- package/fesm2022/toolbar.mjs.map +1 -1
- package/fesm2022/tree-testing.mjs.map +1 -1
- package/fesm2022/tree.mjs +9 -9
- package/fesm2022/tree.mjs.map +1 -1
- package/package.json +2 -2
- package/types/combobox.d.ts +3 -1
- package/types/private.d.ts +10 -0
package/fesm2022/accordion.mjs
CHANGED
|
@@ -13,7 +13,7 @@ import './_click-event-manager-chunk.mjs';
|
|
|
13
13
|
class AccordionContent {
|
|
14
14
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
15
15
|
minVersion: "12.0.0",
|
|
16
|
-
version: "22.0.
|
|
16
|
+
version: "22.1.0-next.3",
|
|
17
17
|
ngImport: i0,
|
|
18
18
|
type: AccordionContent,
|
|
19
19
|
deps: [],
|
|
@@ -21,7 +21,7 @@ class AccordionContent {
|
|
|
21
21
|
});
|
|
22
22
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
23
23
|
minVersion: "14.0.0",
|
|
24
|
-
version: "22.0.
|
|
24
|
+
version: "22.1.0-next.3",
|
|
25
25
|
type: AccordionContent,
|
|
26
26
|
isStandalone: true,
|
|
27
27
|
selector: "ng-template[ngAccordionContent]",
|
|
@@ -33,7 +33,7 @@ class AccordionContent {
|
|
|
33
33
|
}
|
|
34
34
|
i0.ɵɵngDeclareClassMetadata({
|
|
35
35
|
minVersion: "12.0.0",
|
|
36
|
-
version: "22.0.
|
|
36
|
+
version: "22.1.0-next.3",
|
|
37
37
|
ngImport: i0,
|
|
38
38
|
type: AccordionContent,
|
|
39
39
|
decorators: [{
|
|
@@ -91,7 +91,7 @@ class AccordionPanel {
|
|
|
91
91
|
}
|
|
92
92
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
93
93
|
minVersion: "12.0.0",
|
|
94
|
-
version: "22.0.
|
|
94
|
+
version: "22.1.0-next.3",
|
|
95
95
|
ngImport: i0,
|
|
96
96
|
type: AccordionPanel,
|
|
97
97
|
deps: [],
|
|
@@ -99,7 +99,7 @@ class AccordionPanel {
|
|
|
99
99
|
});
|
|
100
100
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
101
101
|
minVersion: "17.2.0",
|
|
102
|
-
version: "22.0.
|
|
102
|
+
version: "22.1.0-next.3",
|
|
103
103
|
type: AccordionPanel,
|
|
104
104
|
isStandalone: true,
|
|
105
105
|
selector: "[ngAccordionPanel]",
|
|
@@ -139,7 +139,7 @@ class AccordionPanel {
|
|
|
139
139
|
}
|
|
140
140
|
i0.ɵɵngDeclareClassMetadata({
|
|
141
141
|
minVersion: "12.0.0",
|
|
142
|
-
version: "22.0.
|
|
142
|
+
version: "22.1.0-next.3",
|
|
143
143
|
ngImport: i0,
|
|
144
144
|
type: AccordionPanel,
|
|
145
145
|
decorators: [{
|
|
@@ -244,7 +244,7 @@ class AccordionGroup {
|
|
|
244
244
|
}
|
|
245
245
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
246
246
|
minVersion: "12.0.0",
|
|
247
|
-
version: "22.0.
|
|
247
|
+
version: "22.1.0-next.3",
|
|
248
248
|
ngImport: i0,
|
|
249
249
|
type: AccordionGroup,
|
|
250
250
|
deps: [],
|
|
@@ -252,7 +252,7 @@ class AccordionGroup {
|
|
|
252
252
|
});
|
|
253
253
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
254
254
|
minVersion: "17.1.0",
|
|
255
|
-
version: "22.0.
|
|
255
|
+
version: "22.1.0-next.3",
|
|
256
256
|
type: AccordionGroup,
|
|
257
257
|
isStandalone: true,
|
|
258
258
|
selector: "[ngAccordionGroup]",
|
|
@@ -303,7 +303,7 @@ class AccordionGroup {
|
|
|
303
303
|
}
|
|
304
304
|
i0.ɵɵngDeclareClassMetadata({
|
|
305
305
|
minVersion: "12.0.0",
|
|
306
|
-
version: "22.0.
|
|
306
|
+
version: "22.1.0-next.3",
|
|
307
307
|
ngImport: i0,
|
|
308
308
|
type: AccordionGroup,
|
|
309
309
|
decorators: [{
|
|
@@ -429,7 +429,7 @@ class AccordionTrigger {
|
|
|
429
429
|
}
|
|
430
430
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
431
431
|
minVersion: "12.0.0",
|
|
432
|
-
version: "22.0.
|
|
432
|
+
version: "22.1.0-next.3",
|
|
433
433
|
ngImport: i0,
|
|
434
434
|
type: AccordionTrigger,
|
|
435
435
|
deps: [],
|
|
@@ -437,7 +437,7 @@ class AccordionTrigger {
|
|
|
437
437
|
});
|
|
438
438
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
439
439
|
minVersion: "17.1.0",
|
|
440
|
-
version: "22.0.
|
|
440
|
+
version: "22.1.0-next.3",
|
|
441
441
|
type: AccordionTrigger,
|
|
442
442
|
isStandalone: true,
|
|
443
443
|
selector: "[ngAccordionTrigger]",
|
|
@@ -494,7 +494,7 @@ class AccordionTrigger {
|
|
|
494
494
|
}
|
|
495
495
|
i0.ɵɵngDeclareClassMetadata({
|
|
496
496
|
minVersion: "12.0.0",
|
|
497
|
-
version: "22.0.
|
|
497
|
+
version: "22.1.0-next.3",
|
|
498
498
|
ngImport: i0,
|
|
499
499
|
type: AccordionTrigger,
|
|
500
500
|
decorators: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-content.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-panel.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-group.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-trigger.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 {Directive} from '@angular/core';\nimport {DeferredContent} from '../private';\n\n/**\n * A structural directive that provides a mechanism for lazily rendering the content for an\n * `ngAccordionPanel`.\n *\n * This directive should be applied to an `ng-template` inside an `ngAccordionPanel`.\n * It allows the content of the panel to be lazily rendered, improving performance\n * by only creating the content when the panel is first expanded.\n *\n * ```html\n * <div ngAccordionPanel>\n * <ng-template ngAccordionContent>\n * <p>This is the content that will be displayed inside the panel.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: 'ng-template[ngAccordionContent]',\n hostDirectives: [DeferredContent],\n})\nexport class AccordionContent {}\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 {\n Directive,\n ElementRef,\n afterRenderEffect,\n computed,\n contentChild,\n inject,\n input,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {DeferredContentAware, AccordionTriggerPattern, reportViolations} from '../private';\nimport {AccordionContent} from './accordion-content';\n\n/**\n * The content panel of an accordion item that is conditionally visible.\n *\n * This directive is a container for the content that is shown or hidden. It should\n * expose a template reference that will be used by the corresponding `ngAccordionTrigger`.\n * The content within the panel should be provided using an `ng-template` with the\n * `ngAccordionContent` directive so that the content is not rendered on the page until the trigger\n * is expanded. It applies `role=\"region\"` for accessibility and uses the `inert` attribute to hide\n * its content from assistive technologies when not visible.\n *\n * ```html\n * <div ngAccordionPanel #panel=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>This content is lazily rendered and will be shown when the panel is expanded.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionPanel]',\n exportAs: 'ngAccordionPanel',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n 'role': 'region',\n '[attr.id]': 'id()',\n '[attr.aria-labelledby]': '_pattern?.id()',\n '[attr.inert]': '!visible() ? true : null',\n },\n})\nexport class AccordionPanel {\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the trigger element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n private readonly _accordionContent = contentChild(AccordionContent);\n\n /** A global unique identifier for the panel. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-panel-', true));\n\n /** Whether the accordion panel is visible. True if the associated trigger is expanded. */\n readonly visible = computed(() => this._pattern?.expanded() === true);\n\n /**\n * The pattern for the accordion trigger that controls this panel.\n * This is set by the trigger when it initializes.\n * There is no need for a panel pattern, as the trigger has all the necessary logic.\n */\n _pattern?: AccordionTriggerPattern;\n\n constructor() {\n // Connect the panel's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect({\n write: () => {\n this._deferredContentAware.contentVisible.set(this.visible());\n },\n });\n\n // Check for any violations after the DOM has been updated.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n afterRenderEffect({\n read: () => {\n const violations: string[] = [];\n\n if (!this._accordionContent()) {\n violations.push('ngAccordionPanel must have an ngAccordionContent to render.');\n }\n if (!this._pattern) {\n violations.push('ngAccordionPanel must have an ngAccordionTrigger to control it.');\n }\n\n reportViolations(violations, this.element);\n },\n });\n }\n }\n\n /** Expands this item. */\n expand() {\n this._pattern?.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._pattern?.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._pattern?.toggle();\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 {InjectionToken} from '@angular/core';\nimport type {AccordionGroup} from './accordion-group';\n\n/** Token used to expose the accordion group. */\nexport const ACCORDION_GROUP = new InjectionToken<AccordionGroup>('ACCORDION_GROUP');\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 {\n Directive,\n ElementRef,\n booleanAttribute,\n computed,\n inject,\n input,\n signal,\n afterNextRender,\n afterRenderEffect,\n OnDestroy,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {AccordionGroupPattern, SortedCollection, reportViolations} from '../private';\nimport {ACCORDION_GROUP} from './accordion-tokens';\nimport {AccordionTrigger} from './accordion-trigger';\n\n/**\n * A 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 * The `ngAccordionGroup` serves as the root of a group of accordion triggers and panels,\n * coordinating the behavior of the `ngAccordionTrigger` and `ngAccordionPanel` elements within it.\n * It supports both single and multiple expansion modes.\n *\n * ```html\n * <div ngAccordionGroup [multiExpandable]=\"true\">\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger [panel]=\"panel1\">Item 1</button>\n * </h3>\n * <div ngAccordionPanel #panel1=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 1.</p>\n * </ng-template>\n * </div>\n * </div>\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger [panel]=\"panel2\">Item 2</button>\n * </h3>\n * <div ngAccordionPanel #panel2=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 2.</p>\n * </ng-template>\n * </div>\n * </div>\n * </div>\n * ```\n *\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionGroup]',\n exportAs: 'ngAccordionGroup',\n host: {\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocus($event)',\n },\n providers: [{provide: ACCORDION_GROUP, useExisting: AccordionGroup}],\n})\nexport class AccordionGroup implements OnDestroy {\n /** A reference to the group element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the group element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The collection of AccordionTriggers. */\n readonly _collection = new SortedCollection<AccordionTrigger>();\n\n /** The corresponding patterns for the accordion triggers. */\n private readonly _triggerPatterns = computed(() => {\n return this._collection.orderedItems().map(t => t._pattern);\n });\n\n /** The text direction (ltr or rtl). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the entire accordion group is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether multiple accordion items can be expanded simultaneously. */\n readonly multiExpandable = input(true, {transform: booleanAttribute});\n\n /**\n * Whether to allow disabled items to receive focus. When `true`, disabled items are\n * focusable but not interactive. When `false`, disabled items are skipped during navigation.\n */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether keyboard navigation should wrap around from the last item to the first, and vice-versa. */\n readonly wrap = input(false, {transform: booleanAttribute});\n\n /** The UI pattern instance for this accordion group. */\n readonly _pattern: AccordionGroupPattern = new AccordionGroupPattern({\n ...this,\n element: () => this.element,\n activeItem: signal(undefined),\n items: this._triggerPatterns,\n orientation: () => 'vertical',\n });\n\n constructor() {\n afterNextRender(() => {\n this._collection.startObserving(this.element);\n });\n\n // Check for any violations after the DOM has been updated.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n afterRenderEffect({\n read: () => {\n reportViolations(this._pattern.validate(), this.element);\n },\n });\n }\n }\n\n ngOnDestroy() {\n this._collection.stopObserving();\n }\n\n /** Expands all accordion panels if multi-expandable. */\n expandAll() {\n this._pattern.expandAll();\n }\n\n /** Collapses all accordion panels. */\n collapseAll() {\n this._pattern.collapseAll();\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 {\n Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n afterRenderEffect,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {AccordionTriggerPattern, reportViolations} from '../private';\nimport {ACCORDION_GROUP} from './accordion-tokens';\nimport {AccordionPanel} from './accordion-panel';\n\n/**\n * The trigger that toggles the visibility of its associated `ngAccordionPanel`.\n *\n * This directive requires the `panel` input be set to the template reference of the `ngAccordionPanel`\n * it controls. When clicked, it will expand or collapse the panel. It also handles keyboard\n * interactions for navigation within the `ngAccordionGroup`. It applies `role=\"button\"` and manages\n * `aria-expanded`, `aria-controls`, and `aria-disabled` attributes for accessibility.\n * The `disabled` input can be used to disable the trigger.\n *\n * ```html\n * <button ngAccordionTrigger [panel]=\"panel\">\n * Accordion Trigger Text\n * </button>\n * ```\n *\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionTrigger]',\n exportAs: 'ngAccordionTrigger',\n host: {\n '[attr.data-active]': 'active()',\n 'role': 'button',\n '[id]': 'id()',\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-controls]': '_pattern.controls()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.disabled]': '_pattern.hardDisabled() ? true : null',\n '[attr.tabindex]': '_pattern.tabIndex()',\n },\n})\nexport class AccordionTrigger implements OnInit, OnDestroy {\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the trigger element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent AccordionGroup. */\n private readonly _accordionGroup = inject(ACCORDION_GROUP);\n\n /** The associated AccordionPanel. */\n readonly panel = input.required<AccordionPanel>();\n\n /** The unique identifier for the trigger. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-trigger-', true));\n\n /** The unique identifier for the corresponding trigger panel. */\n readonly panelId = computed(() => this.panel().id());\n\n /** Whether the trigger is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the corresponding panel is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** Whether the trigger is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** The UI pattern instance for this trigger. */\n _pattern!: AccordionTriggerPattern;\n\n constructor() {\n // Automatically prevent form submission.\n if (this.element.tagName === 'BUTTON' && !this.element.hasAttribute('type')) {\n this.element.setAttribute('type', 'button');\n }\n\n // Check for any violations after the DOM has been updated.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n afterRenderEffect({\n read: () => {\n const violations: string[] = [];\n\n if (this.panel() && this.panel().element.contains(this.element)) {\n violations.push(\n 'ngAccordionTrigger must not be nested inside its controlled ngAccordionPanel, otherwise it will become unreachable when collapsed.',\n );\n }\n if (this.panel() && (this.panel() as any)._pattern !== this._pattern) {\n violations.push(\n 'ngAccordionPanel is already controlled by another ngAccordionTrigger.',\n );\n }\n\n reportViolations(violations, this.element);\n },\n });\n }\n }\n\n ngOnInit() {\n this._pattern = new AccordionTriggerPattern({\n ...this,\n element: () => this.element,\n accordionGroup: () => this._accordionGroup._pattern,\n accordionPanelId: this.panelId,\n });\n\n this.panel()._pattern = this._pattern;\n\n this._accordionGroup._collection.register(this);\n }\n\n ngOnDestroy() {\n this.panel()._pattern = undefined;\n\n this._accordionGroup._collection.unregister(this);\n }\n\n /** Expands this item. */\n expand() {\n this._pattern.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._pattern.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._pattern.toggle();\n }\n}\n"],"names":["AccordionContent","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","hostDirectives","directive","i1","ngImport","decorators","args","DeferredContent","AccordionPanel","_elementRef","inject","ElementRef","element","nativeElement","_deferredContentAware","DeferredContentAware","_accordionContent","contentChild","id","input","_IdGenerator","getId","visible","computed","_pattern","expanded","constructor","afterRenderEffect","write","contentVisible","set","ngDevMode","read","violations","push","reportViolations","expand","open","collapse","close","toggle","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","descendants","isSignal","exportAs","inputs","host","Input","alias","required","ACCORDION_GROUP","InjectionToken","AccordionGroup","_collection","SortedCollection","_triggerPatterns","orderedItems","map","t","textDirection","Directionality","valueSignal","disabled","transform","booleanAttribute","multiExpandable","softDisabled","wrap","AccordionGroupPattern","activeItem","signal","undefined","items","orientation","afterNextRender","startObserving","validate","ngOnDestroy","stopObserving","expandAll","collapseAll","classPropertyName","publicName","isRequired","transformFunction","listeners","providers","provide","useExisting","AccordionTrigger","_accordionGroup","panel","panelId","model","active","tagName","hasAttribute","setAttribute","contains","ngOnInit","AccordionTriggerPattern","accordionGroup","accordionPanelId","register","unregister","outputs","attributes","properties"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accordion.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-content.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-panel.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-tokens.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-group.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-trigger.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 {Directive} from '@angular/core';\nimport {DeferredContent} from '../private';\n\n/**\n * A structural directive that provides a mechanism for lazily rendering the content for an\n * `ngAccordionPanel`.\n *\n * This directive should be applied to an `ng-template` inside an `ngAccordionPanel`.\n * It allows the content of the panel to be lazily rendered, improving performance\n * by only creating the content when the panel is first expanded.\n *\n * ```html\n * <div ngAccordionPanel>\n * <ng-template ngAccordionContent>\n * <p>This is the content that will be displayed inside the panel.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: 'ng-template[ngAccordionContent]',\n hostDirectives: [DeferredContent],\n})\nexport class AccordionContent {}\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 {\n Directive,\n ElementRef,\n afterRenderEffect,\n computed,\n contentChild,\n inject,\n input,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {DeferredContentAware, AccordionTriggerPattern, reportViolations} from '../private';\nimport {AccordionContent} from './accordion-content';\n\n/**\n * The content panel of an accordion item that is conditionally visible.\n *\n * This directive is a container for the content that is shown or hidden. It should\n * expose a template reference that will be used by the corresponding `ngAccordionTrigger`.\n * The content within the panel should be provided using an `ng-template` with the\n * `ngAccordionContent` directive so that the content is not rendered on the page until the trigger\n * is expanded. It applies `role=\"region\"` for accessibility and uses the `inert` attribute to hide\n * its content from assistive technologies when not visible.\n *\n * ```html\n * <div ngAccordionPanel #panel=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>This content is lazily rendered and will be shown when the panel is expanded.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionPanel]',\n exportAs: 'ngAccordionPanel',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n 'role': 'region',\n '[attr.id]': 'id()',\n '[attr.aria-labelledby]': '_pattern?.id()',\n '[attr.inert]': '!visible() ? true : null',\n },\n})\nexport class AccordionPanel {\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the trigger element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n private readonly _accordionContent = contentChild(AccordionContent);\n\n /** A global unique identifier for the panel. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-panel-', true));\n\n /** Whether the accordion panel is visible. True if the associated trigger is expanded. */\n readonly visible = computed(() => this._pattern?.expanded() === true);\n\n /**\n * The pattern for the accordion trigger that controls this panel.\n * This is set by the trigger when it initializes.\n * There is no need for a panel pattern, as the trigger has all the necessary logic.\n */\n _pattern?: AccordionTriggerPattern;\n\n constructor() {\n // Connect the panel's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect({\n write: () => {\n this._deferredContentAware.contentVisible.set(this.visible());\n },\n });\n\n // Check for any violations after the DOM has been updated.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n afterRenderEffect({\n read: () => {\n const violations: string[] = [];\n\n if (!this._accordionContent()) {\n violations.push('ngAccordionPanel must have an ngAccordionContent to render.');\n }\n if (!this._pattern) {\n violations.push('ngAccordionPanel must have an ngAccordionTrigger to control it.');\n }\n\n reportViolations(violations, this.element);\n },\n });\n }\n }\n\n /** Expands this item. */\n expand() {\n this._pattern?.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._pattern?.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._pattern?.toggle();\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 {InjectionToken} from '@angular/core';\nimport type {AccordionGroup} from './accordion-group';\n\n/** Token used to expose the accordion group. */\nexport const ACCORDION_GROUP = new InjectionToken<AccordionGroup>('ACCORDION_GROUP');\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 {\n Directive,\n ElementRef,\n booleanAttribute,\n computed,\n inject,\n input,\n signal,\n afterNextRender,\n afterRenderEffect,\n OnDestroy,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {AccordionGroupPattern, SortedCollection, reportViolations} from '../private';\nimport {ACCORDION_GROUP} from './accordion-tokens';\nimport {AccordionTrigger} from './accordion-trigger';\n\n/**\n * A 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 * The `ngAccordionGroup` serves as the root of a group of accordion triggers and panels,\n * coordinating the behavior of the `ngAccordionTrigger` and `ngAccordionPanel` elements within it.\n * It supports both single and multiple expansion modes.\n *\n * ```html\n * <div ngAccordionGroup [multiExpandable]=\"true\">\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger [panel]=\"panel1\">Item 1</button>\n * </h3>\n * <div ngAccordionPanel #panel1=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 1.</p>\n * </ng-template>\n * </div>\n * </div>\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger [panel]=\"panel2\">Item 2</button>\n * </h3>\n * <div ngAccordionPanel #panel2=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 2.</p>\n * </ng-template>\n * </div>\n * </div>\n * </div>\n * ```\n *\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionGroup]',\n exportAs: 'ngAccordionGroup',\n host: {\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocus($event)',\n },\n providers: [{provide: ACCORDION_GROUP, useExisting: AccordionGroup}],\n})\nexport class AccordionGroup implements OnDestroy {\n /** A reference to the group element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the group element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The collection of AccordionTriggers. */\n readonly _collection = new SortedCollection<AccordionTrigger>();\n\n /** The corresponding patterns for the accordion triggers. */\n private readonly _triggerPatterns = computed(() => {\n return this._collection.orderedItems().map(t => t._pattern);\n });\n\n /** The text direction (ltr or rtl). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the entire accordion group is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether multiple accordion items can be expanded simultaneously. */\n readonly multiExpandable = input(true, {transform: booleanAttribute});\n\n /**\n * Whether to allow disabled items to receive focus. When `true`, disabled items are\n * focusable but not interactive. When `false`, disabled items are skipped during navigation.\n */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether keyboard navigation should wrap around from the last item to the first, and vice-versa. */\n readonly wrap = input(false, {transform: booleanAttribute});\n\n /** The UI pattern instance for this accordion group. */\n readonly _pattern: AccordionGroupPattern = new AccordionGroupPattern({\n ...this,\n element: () => this.element,\n activeItem: signal(undefined),\n items: this._triggerPatterns,\n orientation: () => 'vertical',\n });\n\n constructor() {\n afterNextRender(() => {\n this._collection.startObserving(this.element);\n });\n\n // Check for any violations after the DOM has been updated.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n afterRenderEffect({\n read: () => {\n reportViolations(this._pattern.validate(), this.element);\n },\n });\n }\n }\n\n ngOnDestroy() {\n this._collection.stopObserving();\n }\n\n /** Expands all accordion panels if multi-expandable. */\n expandAll() {\n this._pattern.expandAll();\n }\n\n /** Collapses all accordion panels. */\n collapseAll() {\n this._pattern.collapseAll();\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 {\n Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n afterRenderEffect,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {AccordionTriggerPattern, reportViolations} from '../private';\nimport {ACCORDION_GROUP} from './accordion-tokens';\nimport {AccordionPanel} from './accordion-panel';\n\n/**\n * The trigger that toggles the visibility of its associated `ngAccordionPanel`.\n *\n * This directive requires the `panel` input be set to the template reference of the `ngAccordionPanel`\n * it controls. When clicked, it will expand or collapse the panel. It also handles keyboard\n * interactions for navigation within the `ngAccordionGroup`. It applies `role=\"button\"` and manages\n * `aria-expanded`, `aria-controls`, and `aria-disabled` attributes for accessibility.\n * The `disabled` input can be used to disable the trigger.\n *\n * ```html\n * <button ngAccordionTrigger [panel]=\"panel\">\n * Accordion Trigger Text\n * </button>\n * ```\n *\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionTrigger]',\n exportAs: 'ngAccordionTrigger',\n host: {\n '[attr.data-active]': 'active()',\n 'role': 'button',\n '[id]': 'id()',\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-controls]': '_pattern.controls()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.disabled]': '_pattern.hardDisabled() ? true : null',\n '[attr.tabindex]': '_pattern.tabIndex()',\n },\n})\nexport class AccordionTrigger implements OnInit, OnDestroy {\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the trigger element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent AccordionGroup. */\n private readonly _accordionGroup = inject(ACCORDION_GROUP);\n\n /** The associated AccordionPanel. */\n readonly panel = input.required<AccordionPanel>();\n\n /** The unique identifier for the trigger. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-trigger-', true));\n\n /** The unique identifier for the corresponding trigger panel. */\n readonly panelId = computed(() => this.panel().id());\n\n /** Whether the trigger is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the corresponding panel is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** Whether the trigger is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** The UI pattern instance for this trigger. */\n _pattern!: AccordionTriggerPattern;\n\n constructor() {\n // Automatically prevent form submission.\n if (this.element.tagName === 'BUTTON' && !this.element.hasAttribute('type')) {\n this.element.setAttribute('type', 'button');\n }\n\n // Check for any violations after the DOM has been updated.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n afterRenderEffect({\n read: () => {\n const violations: string[] = [];\n\n if (this.panel() && this.panel().element.contains(this.element)) {\n violations.push(\n 'ngAccordionTrigger must not be nested inside its controlled ngAccordionPanel, otherwise it will become unreachable when collapsed.',\n );\n }\n if (this.panel() && (this.panel() as any)._pattern !== this._pattern) {\n violations.push(\n 'ngAccordionPanel is already controlled by another ngAccordionTrigger.',\n );\n }\n\n reportViolations(violations, this.element);\n },\n });\n }\n }\n\n ngOnInit() {\n this._pattern = new AccordionTriggerPattern({\n ...this,\n element: () => this.element,\n accordionGroup: () => this._accordionGroup._pattern,\n accordionPanelId: this.panelId,\n });\n\n this.panel()._pattern = this._pattern;\n\n this._accordionGroup._collection.register(this);\n }\n\n ngOnDestroy() {\n this.panel()._pattern = undefined;\n\n this._accordionGroup._collection.unregister(this);\n }\n\n /** Expands this item. */\n expand() {\n this._pattern.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._pattern.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._pattern.toggle();\n }\n}\n"],"names":["AccordionContent","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","hostDirectives","directive","i1","ngImport","decorators","args","DeferredContent","AccordionPanel","_elementRef","inject","ElementRef","element","nativeElement","_deferredContentAware","DeferredContentAware","_accordionContent","contentChild","id","input","_IdGenerator","getId","visible","computed","_pattern","expanded","constructor","afterRenderEffect","write","contentVisible","set","ngDevMode","read","violations","push","reportViolations","expand","open","collapse","close","toggle","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","descendants","isSignal","exportAs","inputs","host","Input","alias","required","ACCORDION_GROUP","InjectionToken","AccordionGroup","_collection","SortedCollection","_triggerPatterns","orderedItems","map","t","textDirection","Directionality","valueSignal","disabled","transform","booleanAttribute","multiExpandable","softDisabled","wrap","AccordionGroupPattern","activeItem","signal","undefined","items","orientation","afterNextRender","startObserving","validate","ngOnDestroy","stopObserving","expandAll","collapseAll","classPropertyName","publicName","isRequired","transformFunction","listeners","providers","provide","useExisting","AccordionTrigger","_accordionGroup","panel","panelId","model","active","tagName","hasAttribute","setAttribute","contains","ngOnInit","AccordionTriggerPattern","accordionGroup","accordionPanelId","register","unregister","outputs","attributes","properties"],"mappings":"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"}
|
package/fesm2022/aria.mjs
CHANGED
package/fesm2022/aria.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aria.mjs","sources":["../../../../../
|
|
1
|
+
{"version":3,"file":"aria.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/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 Aria package. */\nexport const VERSION = new Version('22.1.0-next.2');\n"],"names":["VERSION","Version"],"mappings":";;MAWaA,OAAO,GAAG,IAAIC,OAAO,CAAC,mBAAmB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox-testing.mjs","sources":["../../../../../
|
|
1
|
+
{"version":3,"file":"combobox-testing.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/testing/combobox-harness.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 ComponentHarness,\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessLoader,\n HarnessPredicate,\n TestKey,\n} from '@angular/cdk/testing';\nimport {ComboboxHarnessFilters} from './combobox-harness-filters';\n\n/** Harness for interacting with a standard `ngCombobox` input element in tests. */\nexport class ComboboxHarness extends ContentContainerComponentHarness {\n static hostSelector = '[ngCombobox]';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a combobox with specific attributes.\n * @param options Options for filtering which combobox instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: ComboboxHarnessFilters = {}): HarnessPredicate<ComboboxHarness> {\n return new HarnessPredicate(ComboboxHarness, options)\n .addOption('placeholder', options.placeholder, async (harness, placeholder) =>\n HarnessPredicate.stringMatches(await harness.getPlaceholder(), placeholder),\n )\n .addOption('value', options.value, async (harness, value) =>\n HarnessPredicate.stringMatches(await harness.getValue(), value),\n )\n .addOption(\n 'disabled',\n options.disabled,\n async (harness, disabled) => (await harness.isDisabled()) === disabled,\n );\n }\n\n /**\n * Gets the component harness for the active widget contained inside the popup.\n * Use this when you need to access the harness of the widget itself (e.g., `ListboxHarness`),\n * rather than querying items within it.\n * @param type The harness type to locate. Must implement standard static `.with()` method.\n */\n async getPopupWidget<T extends ComponentHarness>(\n type: ComponentHarnessConstructor<T> & {\n with: (options?: {selector?: string}) => HarnessPredicate<T>;\n },\n ): Promise<T> {\n const host = await this.host();\n const controlsId = await host.getAttribute('aria-controls');\n if (!controlsId) {\n throw new Error(\n 'Cannot retrieve popup content because the combobox is closed or not associated with a popup controls ID.',\n );\n }\n return this.documentRootLocatorFactory().locatorFor(type.with({selector: `#${controlsId}`}))();\n }\n\n /**\n * Gets a harness loader scoped to the content inside the popup container.\n * Note that lookups performed by this loader will only find descendants of the popup container.\n */\n async getPopupLoader(): Promise<HarnessLoader> {\n return this.getRootHarnessLoader();\n }\n\n /** Overrides root loader to automatically resolve queries nested inside the associated popup. */\n protected override async getRootHarnessLoader(): Promise<HarnessLoader> {\n const host = await this.host();\n const controlsId = await host.getAttribute('aria-controls');\n if (!controlsId) {\n throw new Error(\n 'Cannot retrieve popup content because the combobox is closed or not associated with a popup controls ID.',\n );\n }\n const documentRoot = await this.documentRootLocatorFactory().rootHarnessLoader();\n // Locate the widget by ID, which was assigned by ngComboboxWidget and linked via aria-controls.\n return documentRoot.getChildLoader(`#${controlsId}`);\n }\n\n /** Whether the combobox is expanded (popup is open). */\n async isOpen(): Promise<boolean> {\n const host = await this.host();\n return (await host.getAttribute('aria-expanded')) === 'true';\n }\n\n /** Whether the combobox is disabled. */\n async isDisabled(): Promise<boolean> {\n const host = await this.host();\n return (await host.getAttribute('aria-disabled')) === 'true';\n }\n\n /** Gets the current value string of the combobox input. */\n async getValue(): Promise<string> {\n const host = await this.host();\n return host.getProperty<string>('value');\n }\n\n /** Sets the value of the combobox input. */\n async setValue(value: string): Promise<void> {\n const host = await this.host();\n await host.clear();\n if (value) {\n await host.sendKeys(value);\n }\n }\n\n /** Gets the placeholder text of the combobox. */\n async getPlaceholder(): Promise<string | null> {\n const host = await this.host();\n return host.getAttribute('placeholder');\n }\n\n /** Opens the combobox popup if it is currently closed. */\n async open(): Promise<void> {\n if (!(await this.isOpen())) {\n const host = await this.host();\n await host.focus();\n await host.sendKeys(TestKey.DOWN_ARROW);\n }\n }\n\n /** Closes the combobox popup if it is currently open. */\n async close(): Promise<void> {\n if (await this.isOpen()) {\n const host = await this.host();\n await host.focus();\n await host.sendKeys(TestKey.ESCAPE);\n }\n }\n\n /** Focuses the combobox. */\n async focus(): Promise<void> {\n return (await this.host()).focus();\n }\n\n /** Blurs the combobox. */\n async blur(): Promise<void> {\n return (await this.host()).blur();\n }\n\n /** Whether the combobox has focus. */\n async isFocused(): Promise<boolean> {\n return (await this.host()).isFocused();\n }\n}\n"],"names":["ComboboxHarness","ContentContainerComponentHarness","hostSelector","with","options","HarnessPredicate","addOption","placeholder","harness","stringMatches","getPlaceholder","value","getValue","disabled","isDisabled","getPopupWidget","type","host","controlsId","getAttribute","Error","documentRootLocatorFactory","locatorFor","selector","getPopupLoader","getRootHarnessLoader","documentRoot","rootHarnessLoader","getChildLoader","isOpen","getProperty","setValue","clear","sendKeys","open","focus","TestKey","DOWN_ARROW","close","ESCAPE","blur","isFocused"],"mappings":"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"}
|
package/fesm2022/combobox.mjs
CHANGED
|
@@ -17,6 +17,12 @@ class Combobox extends DeferredContentAware {
|
|
|
17
17
|
} : {}),
|
|
18
18
|
transform: booleanAttribute
|
|
19
19
|
});
|
|
20
|
+
readonly = input(false, {
|
|
21
|
+
...(ngDevMode ? {
|
|
22
|
+
debugName: "readonly"
|
|
23
|
+
} : {}),
|
|
24
|
+
transform: booleanAttribute
|
|
25
|
+
});
|
|
20
26
|
softDisabled = input(true, {
|
|
21
27
|
...(ngDevMode ? {
|
|
22
28
|
debugName: "softDisabled"
|
|
@@ -47,13 +53,16 @@ class Combobox extends DeferredContentAware {
|
|
|
47
53
|
}] : []));
|
|
48
54
|
_pattern = new ComboboxPattern({
|
|
49
55
|
...this,
|
|
56
|
+
readonly: () => this.readonly(),
|
|
50
57
|
element: () => this.element,
|
|
51
58
|
expandable: () => true,
|
|
52
59
|
popup: computed(() => this._popup()?._pattern)
|
|
53
60
|
});
|
|
54
61
|
constructor() {
|
|
55
62
|
super();
|
|
56
|
-
afterRenderEffect(
|
|
63
|
+
afterRenderEffect({
|
|
64
|
+
write: () => this._pattern.keyboardEventRelayEffect()
|
|
65
|
+
});
|
|
57
66
|
afterRenderEffect(() => this._pattern.closePopupOnBlurEffect());
|
|
58
67
|
afterRenderEffect(() => {
|
|
59
68
|
this.contentVisible.set(this._pattern.isExpanded());
|
|
@@ -80,7 +89,7 @@ class Combobox extends DeferredContentAware {
|
|
|
80
89
|
}
|
|
81
90
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
82
91
|
minVersion: "12.0.0",
|
|
83
|
-
version: "22.0.
|
|
92
|
+
version: "22.1.0-next.3",
|
|
84
93
|
ngImport: i0,
|
|
85
94
|
type: Combobox,
|
|
86
95
|
deps: [],
|
|
@@ -88,7 +97,7 @@ class Combobox extends DeferredContentAware {
|
|
|
88
97
|
});
|
|
89
98
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
90
99
|
minVersion: "17.1.0",
|
|
91
|
-
version: "22.0.
|
|
100
|
+
version: "22.1.0-next.3",
|
|
92
101
|
type: Combobox,
|
|
93
102
|
isStandalone: true,
|
|
94
103
|
selector: "[ngCombobox]",
|
|
@@ -100,6 +109,13 @@ class Combobox extends DeferredContentAware {
|
|
|
100
109
|
isRequired: false,
|
|
101
110
|
transformFunction: null
|
|
102
111
|
},
|
|
112
|
+
readonly: {
|
|
113
|
+
classPropertyName: "readonly",
|
|
114
|
+
publicName: "readonly",
|
|
115
|
+
isSignal: true,
|
|
116
|
+
isRequired: false,
|
|
117
|
+
transformFunction: null
|
|
118
|
+
},
|
|
103
119
|
softDisabled: {
|
|
104
120
|
classPropertyName: "softDisabled",
|
|
105
121
|
publicName: "softDisabled",
|
|
@@ -161,13 +177,14 @@ class Combobox extends DeferredContentAware {
|
|
|
161
177
|
properties: {
|
|
162
178
|
"attr.aria-autocomplete": "_pattern.autocomplete()",
|
|
163
179
|
"attr.aria-disabled": "_pattern.disabled()",
|
|
180
|
+
"attr.aria-readonly": "_pattern.ariaReadonly()",
|
|
164
181
|
"attr.aria-expanded": "_pattern.isExpanded()",
|
|
165
182
|
"attr.aria-activedescendant": "_pattern.activeDescendant()",
|
|
166
183
|
"attr.aria-controls": "_pattern.popupId()",
|
|
167
184
|
"attr.aria-haspopup": "_pattern.popupType()",
|
|
168
185
|
"attr.tabindex": "disabled() && !softDisabled() ? -1 : (tabIndex() !== undefined ? tabIndex() : 0)",
|
|
169
|
-
"attr.disabled": "
|
|
170
|
-
"attr.readonly": "
|
|
186
|
+
"attr.disabled": "_pattern.nativeDisabled()",
|
|
187
|
+
"attr.readonly": "_pattern.nativeReadonly()"
|
|
171
188
|
}
|
|
172
189
|
},
|
|
173
190
|
exportAs: ["ngCombobox"],
|
|
@@ -177,7 +194,7 @@ class Combobox extends DeferredContentAware {
|
|
|
177
194
|
}
|
|
178
195
|
i0.ɵɵngDeclareClassMetadata({
|
|
179
196
|
minVersion: "12.0.0",
|
|
180
|
-
version: "22.0.
|
|
197
|
+
version: "22.1.0-next.3",
|
|
181
198
|
ngImport: i0,
|
|
182
199
|
type: Combobox,
|
|
183
200
|
decorators: [{
|
|
@@ -189,13 +206,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
189
206
|
'role': 'combobox',
|
|
190
207
|
'[attr.aria-autocomplete]': '_pattern.autocomplete()',
|
|
191
208
|
'[attr.aria-disabled]': '_pattern.disabled()',
|
|
209
|
+
'[attr.aria-readonly]': '_pattern.ariaReadonly()',
|
|
192
210
|
'[attr.aria-expanded]': '_pattern.isExpanded()',
|
|
193
211
|
'[attr.aria-activedescendant]': '_pattern.activeDescendant()',
|
|
194
212
|
'[attr.aria-controls]': '_pattern.popupId()',
|
|
195
213
|
'[attr.aria-haspopup]': '_pattern.popupType()',
|
|
196
214
|
'[attr.tabindex]': 'disabled() && !softDisabled() ? -1 : (tabIndex() !== undefined ? tabIndex() : 0)',
|
|
197
|
-
'[attr.disabled]': '
|
|
198
|
-
'[attr.readonly]': '
|
|
215
|
+
'[attr.disabled]': '_pattern.nativeDisabled()',
|
|
216
|
+
'[attr.readonly]': '_pattern.nativeReadonly()',
|
|
199
217
|
'(keydown)': '_pattern.onKeydown($event)',
|
|
200
218
|
'(focusin)': '_pattern.onFocusin()',
|
|
201
219
|
'(focusout)': '_pattern.onFocusout($event)',
|
|
@@ -214,6 +232,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
214
232
|
required: false
|
|
215
233
|
}]
|
|
216
234
|
}],
|
|
235
|
+
readonly: [{
|
|
236
|
+
type: i0.Input,
|
|
237
|
+
args: [{
|
|
238
|
+
isSignal: true,
|
|
239
|
+
alias: "readonly",
|
|
240
|
+
required: false
|
|
241
|
+
}]
|
|
242
|
+
}],
|
|
217
243
|
softDisabled: [{
|
|
218
244
|
type: i0.Input,
|
|
219
245
|
args: [{
|
|
@@ -311,7 +337,7 @@ class ComboboxPopup {
|
|
|
311
337
|
}
|
|
312
338
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
313
339
|
minVersion: "12.0.0",
|
|
314
|
-
version: "22.0.
|
|
340
|
+
version: "22.1.0-next.3",
|
|
315
341
|
ngImport: i0,
|
|
316
342
|
type: ComboboxPopup,
|
|
317
343
|
deps: [],
|
|
@@ -319,7 +345,7 @@ class ComboboxPopup {
|
|
|
319
345
|
});
|
|
320
346
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
321
347
|
minVersion: "17.1.0",
|
|
322
|
-
version: "22.0.
|
|
348
|
+
version: "22.1.0-next.3",
|
|
323
349
|
type: ComboboxPopup,
|
|
324
350
|
isStandalone: true,
|
|
325
351
|
selector: "ng-template[ngComboboxPopup]",
|
|
@@ -352,7 +378,7 @@ class ComboboxPopup {
|
|
|
352
378
|
}
|
|
353
379
|
i0.ɵɵngDeclareClassMetadata({
|
|
354
380
|
minVersion: "12.0.0",
|
|
355
|
-
version: "22.0.
|
|
381
|
+
version: "22.1.0-next.3",
|
|
356
382
|
ngImport: i0,
|
|
357
383
|
type: ComboboxPopup,
|
|
358
384
|
decorators: [{
|
|
@@ -428,7 +454,7 @@ class ComboboxWidget {
|
|
|
428
454
|
}
|
|
429
455
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
430
456
|
minVersion: "12.0.0",
|
|
431
|
-
version: "22.0.
|
|
457
|
+
version: "22.1.0-next.3",
|
|
432
458
|
ngImport: i0,
|
|
433
459
|
type: ComboboxWidget,
|
|
434
460
|
deps: [],
|
|
@@ -436,7 +462,7 @@ class ComboboxWidget {
|
|
|
436
462
|
});
|
|
437
463
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
438
464
|
minVersion: "17.1.0",
|
|
439
|
-
version: "22.0.
|
|
465
|
+
version: "22.1.0-next.3",
|
|
440
466
|
type: ComboboxWidget,
|
|
441
467
|
isStandalone: true,
|
|
442
468
|
selector: "[ngComboboxWidget]",
|
|
@@ -461,7 +487,7 @@ class ComboboxWidget {
|
|
|
461
487
|
}
|
|
462
488
|
i0.ɵɵngDeclareClassMetadata({
|
|
463
489
|
minVersion: "12.0.0",
|
|
464
|
-
version: "22.0.
|
|
490
|
+
version: "22.1.0-next.3",
|
|
465
491
|
ngImport: i0,
|
|
466
492
|
type: ComboboxWidget,
|
|
467
493
|
decorators: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-popup.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-widget.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 booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n OnInit,\n signal,\n Renderer2,\n} from '@angular/core';\nimport {DeferredContentAware, ComboboxPattern, tabIndexTransform} from '@angular/aria/private';\nimport type {ComboboxPopup} from './combobox-popup';\n\n/**\n * A directive that coordinates a combobox trigger element and its associated popup widget.\n *\n * The `ngCombobox` directive is applied directly to the interactive trigger element, which can be\n * either an editable `<input>` (for search/autocomplete behaviors) or a non-editable element like\n * a `<div>` (for custom select dropdowns). It manages focus and expansion states, coordinates autocomplete\n * suggestions (if editable), and forwards navigation keys down into the active popup.\n *\n * ### Example 1: Editable Autocomplete Input\n * ```html\n * <input ngCombobox #combobox=\"ngCombobox\" [(value)]=\"searchQuery\" [(expanded)]=\"isExpanded\" />\n *\n * <ng-template ngComboboxPopup [combobox]=\"combobox\">\n * <div ngComboboxWidget #listbox=\"ngListbox\" ngListbox [(value)]=\"selectedValues\" [activeDescendant]=\"listbox.activeDescendant()\">\n * <div ngOption value=\"first\">First Option</div>\n * <div ngOption value=\"second\">Second Option</div>\n * </div>\n * </ng-template>\n * ```\n *\n * ### Example 2: Non-Editable Custom Select Dropdown\n * ```html\n * <div ngCombobox #combobox=\"ngCombobox\" [(expanded)]=\"isExpanded\" class=\"select-trigger\">\n * {{selectedValue}}\n * </div>\n *\n * <ng-template ngComboboxPopup [combobox]=\"combobox\">\n * <div ngComboboxWidget #listbox=\"ngListbox\" ngListbox [(value)]=\"selectedValues\" [activeDescendant]=\"listbox.activeDescendant()\">\n * <div ngOption value=\"first\">First Option</div>\n * <div ngOption value=\"second\">Second Option</div>\n * </div>\n * </ng-template>\n * ```\n */\n@Directive({\n selector: '[ngCombobox]',\n exportAs: 'ngCombobox',\n host: {\n 'role': 'combobox',\n '[attr.aria-autocomplete]': '_pattern.autocomplete()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-expanded]': '_pattern.isExpanded()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '[attr.aria-controls]': '_pattern.popupId()',\n '[attr.aria-haspopup]': '_pattern.popupType()',\n '[attr.tabindex]':\n 'disabled() && !softDisabled() ? -1 : (tabIndex() !== undefined ? tabIndex() : 0)',\n '[attr.disabled]': 'disabled() && !softDisabled() ? \"\" : null',\n '[attr.readonly]': 'disabled() && _pattern.isEditable() ? \"\" : null',\n '(keydown)': '_pattern.onKeydown($event)',\n '(focusin)': '_pattern.onFocusin()',\n '(focusout)': '_pattern.onFocusout($event)',\n '(click)': '_pattern.onClick($event)',\n '(input)': '_pattern.onInput($event)',\n },\n})\nexport class Combobox extends DeferredContentAware implements OnInit {\n private readonly _renderer = inject(Renderer2);\n\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** A reference to the input element. */\n readonly element = this._elementRef.nativeElement;\n\n /** The popup associated with the combobox. */\n readonly _popup = signal<ComboboxPopup | undefined>(undefined);\n\n /** Whether the combobox is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the combobox is soft disabled (remains focusable). */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether the combobox should always remain expanded. */\n readonly alwaysExpanded = input(false, {transform: booleanAttribute});\n\n /** The tabindex of the combobox. */\n readonly tabIndex = input(undefined, {\n alias: 'tabindex',\n transform: tabIndexTransform,\n });\n\n /** Whether the combobox is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** The value of the combobox input. */\n readonly value = model<string>('');\n\n /** An inline suggestion to be displayed in the input. */\n readonly inlineSuggestion = input<string | undefined>(undefined);\n\n /** The combobox ui pattern. */\n readonly _pattern = new ComboboxPattern({\n ...this,\n element: () => this.element,\n expandable: () => true,\n popup: computed(() => this._popup()?._pattern),\n });\n\n constructor() {\n super();\n\n afterRenderEffect(() => this._pattern.keyboardEventRelayEffect());\n afterRenderEffect(() => this._pattern.closePopupOnBlurEffect());\n afterRenderEffect(() => {\n this.contentVisible.set(this._pattern.isExpanded());\n });\n\n if (this._pattern.isEditable()) {\n afterRenderEffect(() => {\n this._renderer.setProperty(this.element, 'value', this.value());\n });\n afterRenderEffect(() => {\n this._pattern.highlightEffect();\n });\n }\n }\n\n ngOnInit() {\n if (this.alwaysExpanded()) {\n this.expanded.set(true);\n }\n }\n\n /** Registers a popup with the combobox. */\n _registerPopup(popup: ComboboxPopup) {\n this._popup.set(popup);\n }\n\n /** Unregisters the popup from the combobox. */\n _unregisterPopup() {\n this._popup.set(undefined);\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 {InjectionToken} from '@angular/core';\nimport type {ComboboxPopup} from './combobox-popup';\n\n/** Token used to expose the combobox popup. */\nexport const COMBOBOX_POPUP = new InjectionToken<ComboboxPopup>('COMBOBOX_POPUP');\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, Directive, inject, input, OnDestroy, OnInit, signal} from '@angular/core';\nimport {DeferredContent, ComboboxPopupPattern} from '@angular/aria/private';\nimport type {Combobox} from './combobox';\nimport type {ComboboxWidget} from './combobox-widget';\nimport {COMBOBOX_POPUP} from './combobox-tokens';\n\n/**\n * A structural directive that marks the `ng-template` to be used as the popup\n * for a combobox. This content is conditionally rendered.\n *\n * The content of the popup can be any element with the `ngComboboxWidget` directive.\n *\n * ```html\n * <ng-template ngComboboxPopup>\n * <div ngComboboxWidget>\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n */\n@Directive({\n selector: 'ng-template[ngComboboxPopup]',\n exportAs: 'ngComboboxPopup',\n hostDirectives: [DeferredContent],\n providers: [{provide: COMBOBOX_POPUP, useExisting: ComboboxPopup}],\n})\nexport class ComboboxPopup implements OnInit, OnDestroy {\n private readonly _deferredContent = inject(DeferredContent);\n\n /** The combobox that the popup belongs to. */\n readonly combobox = input.required<Combobox>();\n\n /** The widget contained within the popup. */\n readonly _widget = signal<ComboboxWidget | undefined>(undefined);\n\n /** The element that serves as the control target for the popup. */\n readonly controlTarget = computed(() => this._widget()?.element);\n\n /** The ID of the popup. */\n readonly popupId = computed(() => this._widget()?.popupId());\n\n /** The ID of the active descendant in the popup. */\n readonly activeDescendant = computed(() => this._widget()?.activeDescendant());\n\n /** The type of the popup (e.g., listbox, tree, grid, dialog). */\n readonly popupType = input<'listbox' | 'tree' | 'grid' | 'dialog'>('listbox');\n\n /** The popup pattern. */\n readonly _pattern = new ComboboxPopupPattern({\n ...this,\n });\n\n ngOnInit() {\n this.combobox()._registerPopup(this);\n this._deferredContent.deferredContentAware.set(this.combobox());\n }\n\n ngOnDestroy() {\n this.combobox()._unregisterPopup();\n }\n\n /** Registers a widget with the popup. */\n _registerWidget(widget: ComboboxWidget) {\n this._widget.set(widget);\n }\n\n /** Unregisters the widget from the popup. */\n _unregisterWidget() {\n this._widget.set(undefined);\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 {Directive, ElementRef, inject, input, OnDestroy, OnInit, signal} from '@angular/core';\nimport {COMBOBOX_POPUP} from './combobox-tokens';\n\n/**\n * Identifies an element as a widget within a combobox popup.\n *\n * This directive should be applied to the element that contains the options or content\n * of the popup. It handles the communication of ID and active descendant information\n * to the combobox.\n */\n@Directive({\n selector: '[ngComboboxWidget]',\n exportAs: 'ngComboboxWidget',\n host: {\n '(focusin)': 'onFocusin()',\n '(focusout)': 'onFocusout($event)',\n },\n})\nexport class ComboboxWidget implements OnInit, OnDestroy {\n /** The element that the popup widget is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _popup = inject(COMBOBOX_POPUP);\n\n /** A reference to the popup widget element. */\n readonly element = this._elementRef.nativeElement;\n\n /** The ID of the popup widget. */\n readonly popupId = signal<string | undefined>(undefined);\n\n /** The ID of the active descendant in the widget. */\n readonly activeDescendant = input<string | undefined>(undefined);\n\n private _observer: MutationObserver | undefined;\n\n constructor() {\n const el = this.element;\n this._observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'id') {\n this.popupId.set(el.id);\n }\n }\n });\n\n this._observer.observe(el, {\n attributes: true,\n attributeFilter: ['id'],\n });\n }\n\n ngOnInit() {\n this.popupId.set(this.element.id);\n this._popup._registerWidget(this);\n }\n\n ngOnDestroy(): void {\n this._observer?.disconnect();\n this._popup._unregisterWidget();\n }\n\n /** Handles focus in events for the widget. */\n onFocusin() {\n this._popup._pattern.onFocusin();\n }\n\n /** Handles focus out events for the widget. */\n onFocusout(event: FocusEvent) {\n this._popup._pattern.onFocusout(event);\n }\n}\n"],"names":["Combobox","DeferredContentAware","_renderer","inject","Renderer2","_elementRef","ElementRef","element","nativeElement","_popup","signal","undefined","disabled","input","transform","booleanAttribute","softDisabled","alwaysExpanded","tabIndex","ngDevMode","debugName","alias","tabIndexTransform","expanded","model","value","inlineSuggestion","_pattern","ComboboxPattern","expandable","popup","computed","constructor","afterRenderEffect","keyboardEventRelayEffect","closePopupOnBlurEffect","contentVisible","set","isExpanded","isEditable","setProperty","highlightEffect","ngOnInit","_registerPopup","_unregisterPopup","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","usesInheritance","ngImport","decorators","args","COMBOBOX_POPUP","InjectionToken","ComboboxPopup","_deferredContent","DeferredContent","combobox","required","_widget","controlTarget","popupId","activeDescendant","popupType","ComboboxPopupPattern","deferredContentAware","ngOnDestroy","_registerWidget","widget","_unregisterWidget","providers","provide","useExisting","hostDirectives","directive","i1","ComboboxWidget","_observer","el","MutationObserver","mutations","mutation","attributeName","id","observe","attributeFilter","disconnect","onFocusin","onFocusout","event"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"combobox.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-tokens.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-popup.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-widget.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 booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n OnInit,\n signal,\n Renderer2,\n} from '@angular/core';\nimport {DeferredContentAware, ComboboxPattern, tabIndexTransform} from '@angular/aria/private';\nimport type {ComboboxPopup} from './combobox-popup';\n\n/**\n * A directive that coordinates a combobox trigger element and its associated popup widget.\n *\n * The `ngCombobox` directive is applied directly to the interactive trigger element, which can be\n * either an editable `<input>` (for search/autocomplete behaviors) or a non-editable element like\n * a `<div>` (for custom select dropdowns). It manages focus and expansion states, coordinates autocomplete\n * suggestions (if editable), and forwards navigation keys down into the active popup.\n *\n * ### Example 1: Editable Autocomplete Input\n * ```html\n * <input ngCombobox #combobox=\"ngCombobox\" [(value)]=\"searchQuery\" [(expanded)]=\"isExpanded\" />\n *\n * <ng-template ngComboboxPopup [combobox]=\"combobox\">\n * <div ngComboboxWidget #listbox=\"ngListbox\" ngListbox [(value)]=\"selectedValues\" [activeDescendant]=\"listbox.activeDescendant()\">\n * <div ngOption value=\"first\">First Option</div>\n * <div ngOption value=\"second\">Second Option</div>\n * </div>\n * </ng-template>\n * ```\n *\n * ### Example 2: Non-Editable Custom Select Dropdown\n * ```html\n * <div ngCombobox #combobox=\"ngCombobox\" [(expanded)]=\"isExpanded\" class=\"select-trigger\">\n * {{selectedValue}}\n * </div>\n *\n * <ng-template ngComboboxPopup [combobox]=\"combobox\">\n * <div ngComboboxWidget #listbox=\"ngListbox\" ngListbox [(value)]=\"selectedValues\" [activeDescendant]=\"listbox.activeDescendant()\">\n * <div ngOption value=\"first\">First Option</div>\n * <div ngOption value=\"second\">Second Option</div>\n * </div>\n * </ng-template>\n * ```\n */\n@Directive({\n selector: '[ngCombobox]',\n exportAs: 'ngCombobox',\n host: {\n 'role': 'combobox',\n '[attr.aria-autocomplete]': '_pattern.autocomplete()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-readonly]': '_pattern.ariaReadonly()',\n '[attr.aria-expanded]': '_pattern.isExpanded()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '[attr.aria-controls]': '_pattern.popupId()',\n '[attr.aria-haspopup]': '_pattern.popupType()',\n '[attr.tabindex]':\n 'disabled() && !softDisabled() ? -1 : (tabIndex() !== undefined ? tabIndex() : 0)',\n '[attr.disabled]': '_pattern.nativeDisabled()',\n '[attr.readonly]': '_pattern.nativeReadonly()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(focusin)': '_pattern.onFocusin()',\n '(focusout)': '_pattern.onFocusout($event)',\n '(click)': '_pattern.onClick($event)',\n '(input)': '_pattern.onInput($event)',\n },\n})\nexport class Combobox extends DeferredContentAware implements OnInit {\n private readonly _renderer = inject(Renderer2);\n\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** A reference to the input element. */\n readonly element = this._elementRef.nativeElement;\n\n /** The popup associated with the combobox. */\n readonly _popup = signal<ComboboxPopup | undefined>(undefined);\n\n /** Whether the combobox is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the combobox is readonly. */\n readonly readonly = input(false, {transform: booleanAttribute});\n\n /** Whether the combobox is soft disabled (remains focusable). */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether the combobox should always remain expanded. */\n readonly alwaysExpanded = input(false, {transform: booleanAttribute});\n\n /** The tabindex of the combobox. */\n readonly tabIndex = input(undefined, {\n alias: 'tabindex',\n transform: tabIndexTransform,\n });\n\n /** Whether the combobox is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** The value of the combobox input. */\n readonly value = model<string>('');\n\n /** An inline suggestion to be displayed in the input. */\n readonly inlineSuggestion = input<string | undefined>(undefined);\n\n /** The combobox ui pattern. */\n readonly _pattern = new ComboboxPattern({\n ...this,\n readonly: () => this.readonly(),\n element: () => this.element,\n expandable: () => true,\n popup: computed(() => this._popup()?._pattern),\n });\n\n constructor() {\n super();\n\n afterRenderEffect({write: () => this._pattern.keyboardEventRelayEffect()});\n afterRenderEffect(() => this._pattern.closePopupOnBlurEffect());\n afterRenderEffect(() => {\n this.contentVisible.set(this._pattern.isExpanded());\n });\n\n if (this._pattern.isEditable()) {\n afterRenderEffect(() => {\n this._renderer.setProperty(this.element, 'value', this.value());\n });\n afterRenderEffect(() => {\n this._pattern.highlightEffect();\n });\n }\n }\n\n ngOnInit() {\n if (this.alwaysExpanded()) {\n this.expanded.set(true);\n }\n }\n\n /** Registers a popup with the combobox. */\n _registerPopup(popup: ComboboxPopup) {\n this._popup.set(popup);\n }\n\n /** Unregisters the popup from the combobox. */\n _unregisterPopup() {\n this._popup.set(undefined);\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 {InjectionToken} from '@angular/core';\nimport type {ComboboxPopup} from './combobox-popup';\n\n/** Token used to expose the combobox popup. */\nexport const COMBOBOX_POPUP = new InjectionToken<ComboboxPopup>('COMBOBOX_POPUP');\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, Directive, inject, input, OnDestroy, OnInit, signal} from '@angular/core';\nimport {DeferredContent, ComboboxPopupPattern} from '@angular/aria/private';\nimport type {Combobox} from './combobox';\nimport type {ComboboxWidget} from './combobox-widget';\nimport {COMBOBOX_POPUP} from './combobox-tokens';\n\n/**\n * A structural directive that marks the `ng-template` to be used as the popup\n * for a combobox. This content is conditionally rendered.\n *\n * The content of the popup can be any element with the `ngComboboxWidget` directive.\n *\n * ```html\n * <ng-template ngComboboxPopup>\n * <div ngComboboxWidget>\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n */\n@Directive({\n selector: 'ng-template[ngComboboxPopup]',\n exportAs: 'ngComboboxPopup',\n hostDirectives: [DeferredContent],\n providers: [{provide: COMBOBOX_POPUP, useExisting: ComboboxPopup}],\n})\nexport class ComboboxPopup implements OnInit, OnDestroy {\n private readonly _deferredContent = inject(DeferredContent);\n\n /** The combobox that the popup belongs to. */\n readonly combobox = input.required<Combobox>();\n\n /** The widget contained within the popup. */\n readonly _widget = signal<ComboboxWidget | undefined>(undefined);\n\n /** The element that serves as the control target for the popup. */\n readonly controlTarget = computed(() => this._widget()?.element);\n\n /** The ID of the popup. */\n readonly popupId = computed(() => this._widget()?.popupId());\n\n /** The ID of the active descendant in the popup. */\n readonly activeDescendant = computed(() => this._widget()?.activeDescendant());\n\n /** The type of the popup (e.g., listbox, tree, grid, dialog). */\n readonly popupType = input<'listbox' | 'tree' | 'grid' | 'dialog'>('listbox');\n\n /** The popup pattern. */\n readonly _pattern = new ComboboxPopupPattern({\n ...this,\n });\n\n ngOnInit() {\n this.combobox()._registerPopup(this);\n this._deferredContent.deferredContentAware.set(this.combobox());\n }\n\n ngOnDestroy() {\n this.combobox()._unregisterPopup();\n }\n\n /** Registers a widget with the popup. */\n _registerWidget(widget: ComboboxWidget) {\n this._widget.set(widget);\n }\n\n /** Unregisters the widget from the popup. */\n _unregisterWidget() {\n this._widget.set(undefined);\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 {Directive, ElementRef, inject, input, OnDestroy, OnInit, signal} from '@angular/core';\nimport {COMBOBOX_POPUP} from './combobox-tokens';\n\n/**\n * Identifies an element as a widget within a combobox popup.\n *\n * This directive should be applied to the element that contains the options or content\n * of the popup. It handles the communication of ID and active descendant information\n * to the combobox.\n */\n@Directive({\n selector: '[ngComboboxWidget]',\n exportAs: 'ngComboboxWidget',\n host: {\n '(focusin)': 'onFocusin()',\n '(focusout)': 'onFocusout($event)',\n },\n})\nexport class ComboboxWidget implements OnInit, OnDestroy {\n /** The element that the popup widget is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _popup = inject(COMBOBOX_POPUP);\n\n /** A reference to the popup widget element. */\n readonly element = this._elementRef.nativeElement;\n\n /** The ID of the popup widget. */\n readonly popupId = signal<string | undefined>(undefined);\n\n /** The ID of the active descendant in the widget. */\n readonly activeDescendant = input<string | undefined>(undefined);\n\n private _observer: MutationObserver | undefined;\n\n constructor() {\n const el = this.element;\n this._observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'id') {\n this.popupId.set(el.id);\n }\n }\n });\n\n this._observer.observe(el, {\n attributes: true,\n attributeFilter: ['id'],\n });\n }\n\n ngOnInit() {\n this.popupId.set(this.element.id);\n this._popup._registerWidget(this);\n }\n\n ngOnDestroy(): void {\n this._observer?.disconnect();\n this._popup._unregisterWidget();\n }\n\n /** Handles focus in events for the widget. */\n onFocusin() {\n this._popup._pattern.onFocusin();\n }\n\n /** Handles focus out events for the widget. */\n onFocusout(event: FocusEvent) {\n this._popup._pattern.onFocusout(event);\n }\n}\n"],"names":["Combobox","DeferredContentAware","_renderer","inject","Renderer2","_elementRef","ElementRef","element","nativeElement","_popup","signal","undefined","disabled","input","transform","booleanAttribute","readonly","softDisabled","alwaysExpanded","tabIndex","ngDevMode","debugName","alias","tabIndexTransform","expanded","model","value","inlineSuggestion","_pattern","ComboboxPattern","expandable","popup","computed","constructor","afterRenderEffect","write","keyboardEventRelayEffect","closePopupOnBlurEffect","contentVisible","set","isExpanded","isEditable","setProperty","highlightEffect","ngOnInit","_registerPopup","_unregisterPopup","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","usesInheritance","ngImport","decorators","args","COMBOBOX_POPUP","InjectionToken","ComboboxPopup","_deferredContent","DeferredContent","combobox","required","_widget","controlTarget","popupId","activeDescendant","popupType","ComboboxPopupPattern","deferredContentAware","ngOnDestroy","_registerWidget","widget","_unregisterWidget","providers","provide","useExisting","hostDirectives","directive","i1","ComboboxWidget","_observer","el","MutationObserver","mutations","mutation","attributeName","id","observe","attributeFilter","disconnect","onFocusin","onFocusout","event"],"mappings":"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"}
|