@angular/aria 21.1.0-next.0 → 21.1.0-next.1
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/_adev_assets/aria-combobox.json +1 -5
- package/_adev_assets/aria-grid.json +1 -9
- package/_adev_assets/aria-listbox.json +1 -5
- package/_adev_assets/aria-menu.json +7 -7
- package/_adev_assets/aria-tree.json +1 -9
- package/fesm2022/_widget-chunk.mjs.map +1 -1
- package/fesm2022/accordion.mjs.map +1 -1
- package/fesm2022/aria.mjs +1 -1
- package/fesm2022/aria.mjs.map +1 -1
- package/fesm2022/combobox.mjs.map +1 -1
- package/fesm2022/grid.mjs.map +1 -1
- package/fesm2022/listbox.mjs.map +1 -1
- package/fesm2022/menu.mjs +1 -1
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/private.mjs +2 -0
- package/fesm2022/private.mjs.map +1 -1
- package/fesm2022/tabs.mjs.map +1 -1
- package/fesm2022/toolbar.mjs.map +1 -1
- package/fesm2022/tree.mjs.map +1 -1
- package/package.json +2 -2
- package/types/private.d.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/aria/accordion/accordion.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n input,\n ElementRef,\n inject,\n contentChildren,\n afterRenderEffect,\n signal,\n model,\n booleanAttribute,\n computed,\n WritableSignal,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n DeferredContent,\n DeferredContentAware,\n AccordionGroupPattern,\n AccordionPanelPattern,\n AccordionTriggerPattern,\n} from '@angular/aria/private';\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 requires\n * a `panelId` that must match the `panelId` of its 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 panelId=\"unique-id-1\">\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 * @developerPreview 21.0\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]': '_pattern.id()',\n '[attr.aria-labelledby]': '_pattern.accordionTrigger()?.id()',\n '[attr.inert]': '!visible() ? true : null',\n },\n})\nexport class AccordionPanel {\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** A global unique identifier for the panel. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-panel-', true));\n\n /** A local unique identifier for the panel, used to match with its trigger's `panelId`. */\n readonly panelId = input.required<string>();\n\n /** Whether the accordion panel is visible. True if the associated trigger is expanded. */\n readonly visible = computed(() => !this._pattern.hidden());\n\n /** The parent accordion trigger pattern that controls this panel. This is set by AccordionGroup. */\n readonly _accordionTriggerPattern: WritableSignal<AccordionTriggerPattern | undefined> =\n signal(undefined);\n\n /** The UI pattern instance for this panel. */\n readonly _pattern: AccordionPanelPattern = new AccordionPanelPattern({\n id: this.id,\n panelId: this.panelId,\n accordionTrigger: () => this._accordionTriggerPattern(),\n });\n\n constructor() {\n // Connect the panel's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this._deferredContentAware.contentVisible.set(this.visible());\n });\n }\n\n /** Expands this item. */\n expand() {\n this._accordionTriggerPattern()?.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._accordionTriggerPattern()?.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._accordionTriggerPattern()?.toggle();\n }\n}\n\n/**\n * The trigger that toggles the visibility of its associated `ngAccordionPanel`.\n *\n * This directive requires a `panelId` that must match the `panelId` of the `ngAccordionPanel` it\n * 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 panelId=\"unique-id-1\">\n * Accordion Trigger Text\n * </button>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngAccordionTrigger]',\n exportAs: 'ngAccordionTrigger',\n host: {\n '[attr.data-active]': 'active()',\n 'role': 'button',\n '[id]': '_pattern.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 {\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(AccordionGroup);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-trigger-', true));\n\n /** A local unique identifier for the trigger, used to match with its panel's `panelId`. */\n readonly panelId = input.required<string>();\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 accordion panel pattern controlled by this trigger. This is set by AccordionGroup. */\n readonly _accordionPanelPattern: WritableSignal<AccordionPanelPattern | undefined> =\n signal(undefined);\n\n /** The UI pattern instance for this trigger. */\n readonly _pattern: AccordionTriggerPattern = new AccordionTriggerPattern({\n ...this,\n accordionGroup: computed(() => this._accordionGroup._pattern),\n accordionPanel: this._accordionPanelPattern,\n element: () => this.element,\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/**\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\" [(expandedPanels)]=\"expandedItems\">\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger panelId=\"item-1\">Item 1</button>\n * </h3>\n * <div ngAccordionPanel panelId=\"item-1\">\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 panelId=\"item-2\">Item 2</button>\n * </h3>\n * <div ngAccordionPanel panelId=\"item-2\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 2.</p>\n * </ng-template>\n * </div>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngAccordionGroup]',\n exportAs: 'ngAccordionGroup',\n host: {\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_pattern.onFocus($event)',\n },\n})\nexport class AccordionGroup {\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 AccordionTriggers nested inside this group. */\n private readonly _triggers = contentChildren(AccordionTrigger, {descendants: true});\n\n /** The AccordionTrigger patterns nested inside this group. */\n private readonly _triggerPatterns = computed(() => this._triggers().map(t => t._pattern));\n\n /** The AccordionPanels nested inside this group. */\n private readonly _panels = contentChildren(AccordionPanel, {descendants: true});\n\n /** The text direction (ltr or rtl). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the entire accordion group is disabled. */\n 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 activeItem: signal(undefined),\n items: this._triggerPatterns,\n // TODO(ok7sai): Investigate whether an accordion should support horizontal mode.\n orientation: () => 'vertical',\n getItem: e => this._getItem(e),\n element: () => this.element,\n });\n\n constructor() {\n // Effect to link triggers with their corresponding panels and update the group's items.\n afterRenderEffect(() => {\n const triggers = this._triggers();\n const panels = this._panels();\n\n for (const trigger of triggers) {\n const panel = panels.find(p => p.panelId() === trigger.panelId());\n trigger._accordionPanelPattern.set(panel?._pattern);\n if (panel) {\n panel._accordionTriggerPattern.set(trigger._pattern);\n }\n }\n });\n }\n\n /** Expands all accordion panels if multi-expandable. */\n expandAll() {\n this._pattern.expansionBehavior.openAll();\n }\n\n /** Collapses all accordion panels. */\n collapseAll() {\n this._pattern.expansionBehavior.closeAll();\n }\n\n /** Gets the trigger pattern for a given element. */\n private _getItem(element: Element | null | undefined): AccordionTriggerPattern | undefined {\n let target = element;\n\n while (target) {\n const pattern = this._triggerPatterns().find(t => t.element() === target);\n if (pattern) {\n return pattern;\n }\n\n target = target.parentElement?.closest('[ngAccordionTrigger]');\n }\n\n return undefined;\n }\n}\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 panelId=\"unique-id-1\">\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 * @developerPreview 21.0\n */\n@Directive({\n selector: 'ng-template[ngAccordionContent]',\n hostDirectives: [DeferredContent],\n})\nexport class AccordionContent {}\n"],"names":["AccordionPanel","_deferredContentAware","inject","DeferredContentAware","id","input","_IdGenerator","getId","panelId","required","visible","computed","_pattern","hidden","_accordionTriggerPattern","signal","undefined","AccordionPanelPattern","accordionTrigger","constructor","afterRenderEffect","contentVisible","set","expand","open","collapse","close","toggle","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","attributes","properties","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","AccordionTrigger","_elementRef","ElementRef","element","nativeElement","_accordionGroup","AccordionGroup","disabled","transform","booleanAttribute","expanded","model","active","_accordionPanelPattern","AccordionTriggerPattern","accordionGroup","accordionPanel","outputs","_triggers","contentChildren","descendants","_triggerPatterns","map","t","ngDevMode","debugName","_panels","textDirection","Directionality","valueSignal","multiExpandable","softDisabled","wrap","AccordionGroupPattern","activeItem","items","orientation","getItem","e","_getItem","triggers","panels","trigger","panel","find","p","expandAll","expansionBehavior","openAll","collapseAll","closeAll","pattern","parentElement","closest","listeners","queries","propertyName","predicate","ctorParameters","propDecorators","type","ContentChildren","forwardRef","Input","alias","AccordionContent","DeferredContent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accordion.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/aria/accordion/accordion.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n input,\n ElementRef,\n inject,\n contentChildren,\n afterRenderEffect,\n signal,\n model,\n booleanAttribute,\n computed,\n WritableSignal,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n DeferredContent,\n DeferredContentAware,\n AccordionGroupPattern,\n AccordionPanelPattern,\n AccordionTriggerPattern,\n} from '@angular/aria/private';\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 requires\n * a `panelId` that must match the `panelId` of its 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 panelId=\"unique-id-1\">\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 * @developerPreview 21.0\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]': '_pattern.id()',\n '[attr.aria-labelledby]': '_pattern.accordionTrigger()?.id()',\n '[attr.inert]': '!visible() ? true : null',\n },\n})\nexport class AccordionPanel {\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** A global unique identifier for the panel. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-panel-', true));\n\n /** A local unique identifier for the panel, used to match with its trigger's `panelId`. */\n readonly panelId = input.required<string>();\n\n /** Whether the accordion panel is visible. True if the associated trigger is expanded. */\n readonly visible = computed(() => !this._pattern.hidden());\n\n /** The parent accordion trigger pattern that controls this panel. This is set by AccordionGroup. */\n readonly _accordionTriggerPattern: WritableSignal<AccordionTriggerPattern | undefined> =\n signal(undefined);\n\n /** The UI pattern instance for this panel. */\n readonly _pattern: AccordionPanelPattern = new AccordionPanelPattern({\n id: this.id,\n panelId: this.panelId,\n accordionTrigger: () => this._accordionTriggerPattern(),\n });\n\n constructor() {\n // Connect the panel's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this._deferredContentAware.contentVisible.set(this.visible());\n });\n }\n\n /** Expands this item. */\n expand() {\n this._accordionTriggerPattern()?.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._accordionTriggerPattern()?.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._accordionTriggerPattern()?.toggle();\n }\n}\n\n/**\n * The trigger that toggles the visibility of its associated `ngAccordionPanel`.\n *\n * This directive requires a `panelId` that must match the `panelId` of the `ngAccordionPanel` it\n * 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 panelId=\"unique-id-1\">\n * Accordion Trigger Text\n * </button>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngAccordionTrigger]',\n exportAs: 'ngAccordionTrigger',\n host: {\n '[attr.data-active]': 'active()',\n 'role': 'button',\n '[id]': '_pattern.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 {\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(AccordionGroup);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-trigger-', true));\n\n /** A local unique identifier for the trigger, used to match with its panel's `panelId`. */\n readonly panelId = input.required<string>();\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 accordion panel pattern controlled by this trigger. This is set by AccordionGroup. */\n readonly _accordionPanelPattern: WritableSignal<AccordionPanelPattern | undefined> =\n signal(undefined);\n\n /** The UI pattern instance for this trigger. */\n readonly _pattern: AccordionTriggerPattern = new AccordionTriggerPattern({\n ...this,\n accordionGroup: computed(() => this._accordionGroup._pattern),\n accordionPanel: this._accordionPanelPattern,\n element: () => this.element,\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/**\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\" [(expandedPanels)]=\"expandedItems\">\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger panelId=\"item-1\">Item 1</button>\n * </h3>\n * <div ngAccordionPanel panelId=\"item-1\">\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 panelId=\"item-2\">Item 2</button>\n * </h3>\n * <div ngAccordionPanel panelId=\"item-2\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 2.</p>\n * </ng-template>\n * </div>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngAccordionGroup]',\n exportAs: 'ngAccordionGroup',\n host: {\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_pattern.onFocus($event)',\n },\n})\nexport class AccordionGroup {\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 AccordionTriggers nested inside this group. */\n private readonly _triggers = contentChildren(AccordionTrigger, {descendants: true});\n\n /** The AccordionTrigger patterns nested inside this group. */\n private readonly _triggerPatterns = computed(() => this._triggers().map(t => t._pattern));\n\n /** The AccordionPanels nested inside this group. */\n private readonly _panels = contentChildren(AccordionPanel, {descendants: true});\n\n /** The text direction (ltr or rtl). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the entire accordion group is disabled. */\n 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 activeItem: signal(undefined),\n items: this._triggerPatterns,\n // TODO(ok7sai): Investigate whether an accordion should support horizontal mode.\n orientation: () => 'vertical',\n getItem: e => this._getItem(e),\n element: () => this.element,\n });\n\n constructor() {\n // Effect to link triggers with their corresponding panels and update the group's items.\n afterRenderEffect(() => {\n const triggers = this._triggers();\n const panels = this._panels();\n\n for (const trigger of triggers) {\n const panel = panels.find(p => p.panelId() === trigger.panelId());\n trigger._accordionPanelPattern.set(panel?._pattern);\n if (panel) {\n panel._accordionTriggerPattern.set(trigger._pattern);\n }\n }\n });\n }\n\n /** Expands all accordion panels if multi-expandable. */\n expandAll() {\n this._pattern.expansionBehavior.openAll();\n }\n\n /** Collapses all accordion panels. */\n collapseAll() {\n this._pattern.expansionBehavior.closeAll();\n }\n\n /** Gets the trigger pattern for a given element. */\n private _getItem(element: Element | null | undefined): AccordionTriggerPattern | undefined {\n let target = element;\n\n while (target) {\n const pattern = this._triggerPatterns().find(t => t.element() === target);\n if (pattern) {\n return pattern;\n }\n\n target = target.parentElement?.closest('[ngAccordionTrigger]');\n }\n\n return undefined;\n }\n}\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 panelId=\"unique-id-1\">\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 * @developerPreview 21.0\n */\n@Directive({\n selector: 'ng-template[ngAccordionContent]',\n hostDirectives: [DeferredContent],\n})\nexport class AccordionContent {}\n"],"names":["AccordionPanel","_deferredContentAware","inject","DeferredContentAware","id","input","_IdGenerator","getId","panelId","required","visible","computed","_pattern","hidden","_accordionTriggerPattern","signal","undefined","AccordionPanelPattern","accordionTrigger","constructor","afterRenderEffect","contentVisible","set","expand","open","collapse","close","toggle","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","attributes","properties","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","AccordionTrigger","_elementRef","ElementRef","element","nativeElement","_accordionGroup","AccordionGroup","disabled","transform","booleanAttribute","expanded","model","active","_accordionPanelPattern","AccordionTriggerPattern","accordionGroup","accordionPanel","outputs","_triggers","contentChildren","descendants","_triggerPatterns","map","t","ngDevMode","debugName","_panels","textDirection","Directionality","valueSignal","multiExpandable","softDisabled","wrap","AccordionGroupPattern","activeItem","items","orientation","getItem","e","_getItem","triggers","panels","trigger","panel","find","p","expandAll","expansionBehavior","openAll","collapseAll","closeAll","pattern","parentElement","closest","listeners","queries","propertyName","predicate","ctorParameters","propDecorators","type","ContentChildren","forwardRef","Input","alias","AccordionContent","DeferredContent"],"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-199a4f3c4e20/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 CDK Experimental package. */\nexport const VERSION = new Version('21.1.0-next.1');\n"],"names":["VERSION","Version"],"mappings":";;MAWaA,OAAO,GAAG,IAAIC,OAAO,CAAC,mBAAmB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/aria/combobox/combobox.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 contentChild,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n WritableSignal,\n} from '@angular/core';\nimport {\n DeferredContent,\n DeferredContentAware,\n ComboboxPattern,\n ComboboxListboxControls,\n ComboboxTreeControls,\n ComboboxDialogPattern,\n} from '@angular/aria/private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {toSignal} from '@angular/core/rxjs-interop';\n\n/**\n * The container element that wraps a combobox input and popup, and orchestrates its behavior.\n *\n * The `ngCombobox` directive is the main entry point for creating a combobox and customizing its\n * behavior. It coordinates the interactions between the `ngComboboxInput` and the popup, which\n * is defined by a `ng-template` with the `ngComboboxPopupContainer` directive. If using the\n * `CdkOverlay`, the `cdkConnectedOverlay` directive takes the place of `ngComboboxPopupContainer`.\n *\n * ```html\n * <div ngCombobox filterMode=\"highlight\">\n * <input\n * ngComboboxInput\n * placeholder=\"Search for a state...\"\n * [(value)]=\"searchString\"\n * />\n *\n * <ng-template ngComboboxPopupContainer>\n * <div ngListbox [(value)]=\"selectedValue\">\n * @for (option of filteredOptions(); track option) {\n * <div ngOption [value]=\"option\" [label]=\"option\">\n * <span>{{option}}</span>\n * </div>\n * }\n * </div>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngCombobox]',\n exportAs: 'ngCombobox',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n '[attr.data-expanded]': 'expanded()',\n '(input)': '_pattern.onInput($event)',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n '(focusout)': '_pattern.onFocusOut($event)',\n },\n})\nexport class Combobox<V> {\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n private readonly _directionality = inject(Directionality);\n\n /** A signal wrapper for directionality. */\n protected textDirection = toSignal(this._directionality.change, {\n initialValue: this._directionality.value,\n });\n\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the combobox element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware, {optional: true});\n\n /** The combobox popup. */\n readonly popup = contentChild<ComboboxPopup<V>>(\n // We need a `forwardRef` here, because the popup class is declared further down\n // in the same file. When the reference is written to Angular's metadata this can\n // cause an attempt to access the class before it's defined.\n forwardRef(() => ComboboxPopup),\n );\n\n /**\n * The filter mode for the combobox.\n * - `manual`: The consumer is responsible for filtering the options.\n * - `auto-select`: The combobox automatically selects the first matching option.\n * - `highlight`: The combobox highlights matching text in the options without changing selection.\n */\n filterMode = input<'manual' | 'auto-select' | 'highlight'>('manual');\n\n /** Whether the combobox is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the combobox is read-only. */\n readonly readonly = input(false, {transform: booleanAttribute});\n\n /** The value of the first matching item in the popup. */\n readonly firstMatch = input<V | undefined>(undefined);\n\n /** Whether the combobox is expanded. */\n readonly expanded = computed(() => this.alwaysExpanded() || this._pattern.expanded());\n\n // TODO: Maybe make expanded a signal that can be passed in?\n // Or an \"always expanded\" option?\n\n /** Whether the combobox popup should always be expanded, regardless of user interaction. */\n readonly alwaysExpanded = input(false, {transform: booleanAttribute});\n\n /** Input element connected to the combobox, if any. */\n readonly inputElement = computed(() => this._pattern.inputs.inputEl());\n\n /** The combobox ui pattern. */\n readonly _pattern = new ComboboxPattern<any, V>({\n ...this,\n textDirection: this.textDirection,\n disabled: this.disabled,\n readonly: this.readonly,\n inputValue: signal(''),\n inputEl: signal(undefined),\n containerEl: () => this._elementRef.nativeElement,\n popupControls: () => this.popup()?._controls(),\n });\n\n constructor() {\n afterRenderEffect(() => {\n if (this.alwaysExpanded()) {\n this._pattern.expanded.set(true);\n }\n });\n\n afterRenderEffect(() => {\n if (\n !this._deferredContentAware?.contentVisible() &&\n (this._pattern.isFocused() || this.alwaysExpanded())\n ) {\n this._deferredContentAware?.contentVisible.set(true);\n }\n });\n }\n\n /** Opens the combobox to the selected item. */\n open() {\n this._pattern.open({selected: true});\n }\n\n /** Closes the combobox. */\n close() {\n this._pattern.close();\n }\n}\n\n/**\n * An input that is part of a combobox. It is responsible for displaying the\n * current value and handling user input for filtering and selection.\n *\n * This directive should be applied to an `<input>` element within an `ngCombobox`\n * container. It automatically handles keyboard interactions, such as opening the\n * popup and navigating through the options.\n *\n * ```html\n * <input\n * ngComboboxInput\n * placeholder=\"Search...\"\n * [(value)]=\"searchString\"\n * />\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'input[ngComboboxInput]',\n exportAs: 'ngComboboxInput',\n host: {\n 'role': 'combobox',\n '[value]': 'value()',\n '[attr.aria-disabled]': 'combobox._pattern.disabled()',\n '[attr.aria-expanded]': 'combobox._pattern.expanded()',\n '[attr.aria-activedescendant]': 'combobox._pattern.activeDescendant()',\n '[attr.aria-controls]': 'combobox._pattern.popupId()',\n '[attr.aria-haspopup]': 'combobox._pattern.hasPopup()',\n '[attr.aria-autocomplete]': 'combobox._pattern.autocomplete()',\n '[attr.readonly]': 'combobox._pattern.readonly()',\n },\n})\nexport class ComboboxInput {\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n /** A reference to the input element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The combobox that the input belongs to. */\n readonly combobox = inject(Combobox);\n\n /** The value of the input. */\n value = model<string>('');\n\n constructor() {\n (this.combobox._pattern.inputs.inputEl as WritableSignal<HTMLInputElement>).set(\n this._elementRef.nativeElement,\n );\n this.combobox._pattern.inputs.inputValue = this.value;\n\n const controls = this.combobox.popup()?._controls();\n if (controls instanceof ComboboxDialogPattern) {\n return;\n }\n\n /** Focuses & selects the first item in the combobox if the user changes the input value. */\n afterRenderEffect(() => {\n this.value();\n controls?.items();\n untracked(() => this.combobox._pattern.onFilter());\n });\n }\n}\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 a `ngListbox`, `ngTree`, or `role=\"dialog\"`, allowing for\n * flexible and complex combobox implementations. The consumer is responsible for\n * implementing the filtering logic based on the `ngComboboxInput`'s value.\n *\n * ```html\n * <ng-template ngComboboxPopupContainer>\n * <div ngListbox [(value)]=\"selectedValue\">\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n *\n * When using CdkOverlay, this directive can be replaced by `cdkConnectedOverlay`.\n *\n * ```html\n * <ng-template\n * [cdkConnectedOverlay]=\"{origin: inputElement, usePopover: 'inline' matchWidth: true}\"\n * [cdkConnectedOverlayOpen]=\"combobox.expanded()\">\n * <div ngListbox [(value)]=\"selectedValue\">\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'ng-template[ngComboboxPopupContainer]',\n exportAs: 'ngComboboxPopupContainer',\n hostDirectives: [DeferredContent],\n})\nexport class ComboboxPopupContainer {}\n\n/**\n * Identifies an element as a popup for an `ngCombobox`.\n *\n * This directive acts as a bridge, allowing the `ngCombobox` to discover and interact\n * with the underlying control (e.g., `ngListbox`, `ngTree`, or `ngComboboxDialog`) that\n * manages the options. It's primarily used as a host directive and is responsible for\n * exposing the popup's control pattern to the parent combobox.\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngComboboxPopup]',\n exportAs: 'ngComboboxPopup',\n})\nexport class ComboboxPopup<V> {\n /** The combobox that the popup belongs to. */\n readonly combobox = inject<Combobox<V>>(Combobox, {optional: true});\n\n /** The popup controls exposed to the combobox. */\n readonly _controls = signal<\n | ComboboxListboxControls<any, V>\n | ComboboxTreeControls<any, V>\n | ComboboxDialogPattern\n | undefined\n >(undefined);\n}\n\n/**\n * Integrates a native `<dialog>` element with the combobox, allowing for\n * a modal or non-modal popup experience. It handles the opening and closing of the dialog\n * based on the combobox's expanded state.\n *\n * ```html\n * <ng-template ngComboboxPopupContainer>\n * <dialog ngComboboxDialog class=\"example-dialog\">\n * <!-- ... dialog content ... -->\n * </dialog>\n * </ng-template>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'dialog[ngComboboxDialog]',\n exportAs: 'ngComboboxDialog',\n host: {\n '[attr.data-open]': 'combobox._pattern.expanded()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n },\n hostDirectives: [ComboboxPopup],\n})\nexport class ComboboxDialog {\n /** The dialog element. */\n private readonly _elementRef = inject(ElementRef<HTMLDialogElement>);\n\n /** A reference to the dialog element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The combobox that the dialog belongs to. */\n readonly combobox = inject(Combobox);\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<ComboboxPopup<unknown>>(ComboboxPopup, {\n optional: true,\n });\n\n _pattern: ComboboxDialogPattern;\n\n constructor() {\n this._pattern = new ComboboxDialogPattern({\n id: () => '',\n element: () => this._elementRef.nativeElement,\n combobox: this.combobox._pattern,\n });\n\n if (this._popup) {\n this._popup._controls.set(this._pattern);\n }\n\n afterRenderEffect(() => {\n if (this._elementRef) {\n this.combobox._pattern.expanded()\n ? this._elementRef.nativeElement.showModal()\n : this._elementRef.nativeElement.close();\n }\n });\n }\n\n close() {\n this._popup?.combobox?._pattern.close();\n }\n}\n"],"names":["Combobox","_directionality","inject","Directionality","textDirection","toSignal","change","initialValue","value","_elementRef","ElementRef","element","nativeElement","_deferredContentAware","DeferredContentAware","optional","popup","contentChild","forwardRef","ComboboxPopup","filterMode","input","disabled","transform","booleanAttribute","readonly","firstMatch","undefined","expanded","computed","alwaysExpanded","_pattern","inputElement","inputs","inputEl","ComboboxPattern","inputValue","signal","containerEl","popupControls","_controls","constructor","afterRenderEffect","set","contentVisible","isFocused","open","selected","close","deps","target","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","descendants","isSignal","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","selector","host","Input","alias","required","ComboboxInput","combobox","model","controls","ComboboxDialogPattern","items","untracked","onFilter","isStandalone","classPropertyName","publicName","isRequired","transformFunction","outputs","attributes","properties","ComboboxPopupContainer","DeferredContent","ComboboxDialog","_popup","id","showModal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"combobox.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/aria/combobox/combobox.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 contentChild,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n WritableSignal,\n} from '@angular/core';\nimport {\n DeferredContent,\n DeferredContentAware,\n ComboboxPattern,\n ComboboxListboxControls,\n ComboboxTreeControls,\n ComboboxDialogPattern,\n} from '@angular/aria/private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {toSignal} from '@angular/core/rxjs-interop';\n\n/**\n * The container element that wraps a combobox input and popup, and orchestrates its behavior.\n *\n * The `ngCombobox` directive is the main entry point for creating a combobox and customizing its\n * behavior. It coordinates the interactions between the `ngComboboxInput` and the popup, which\n * is defined by a `ng-template` with the `ngComboboxPopupContainer` directive. If using the\n * `CdkOverlay`, the `cdkConnectedOverlay` directive takes the place of `ngComboboxPopupContainer`.\n *\n * ```html\n * <div ngCombobox filterMode=\"highlight\">\n * <input\n * ngComboboxInput\n * placeholder=\"Search for a state...\"\n * [(value)]=\"searchString\"\n * />\n *\n * <ng-template ngComboboxPopupContainer>\n * <div ngListbox [(value)]=\"selectedValue\">\n * @for (option of filteredOptions(); track option) {\n * <div ngOption [value]=\"option\" [label]=\"option\">\n * <span>{{option}}</span>\n * </div>\n * }\n * </div>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngCombobox]',\n exportAs: 'ngCombobox',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n '[attr.data-expanded]': 'expanded()',\n '(input)': '_pattern.onInput($event)',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n '(focusout)': '_pattern.onFocusOut($event)',\n },\n})\nexport class Combobox<V> {\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n private readonly _directionality = inject(Directionality);\n\n /** A signal wrapper for directionality. */\n protected textDirection = toSignal(this._directionality.change, {\n initialValue: this._directionality.value,\n });\n\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the combobox element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware, {optional: true});\n\n /** The combobox popup. */\n readonly popup = contentChild<ComboboxPopup<V>>(\n // We need a `forwardRef` here, because the popup class is declared further down\n // in the same file. When the reference is written to Angular's metadata this can\n // cause an attempt to access the class before it's defined.\n forwardRef(() => ComboboxPopup),\n );\n\n /**\n * The filter mode for the combobox.\n * - `manual`: The consumer is responsible for filtering the options.\n * - `auto-select`: The combobox automatically selects the first matching option.\n * - `highlight`: The combobox highlights matching text in the options without changing selection.\n */\n filterMode = input<'manual' | 'auto-select' | 'highlight'>('manual');\n\n /** Whether the combobox is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the combobox is read-only. */\n readonly readonly = input(false, {transform: booleanAttribute});\n\n /** The value of the first matching item in the popup. */\n readonly firstMatch = input<V | undefined>(undefined);\n\n /** Whether the combobox is expanded. */\n readonly expanded = computed(() => this.alwaysExpanded() || this._pattern.expanded());\n\n // TODO: Maybe make expanded a signal that can be passed in?\n // Or an \"always expanded\" option?\n\n /** Whether the combobox popup should always be expanded, regardless of user interaction. */\n readonly alwaysExpanded = input(false, {transform: booleanAttribute});\n\n /** Input element connected to the combobox, if any. */\n readonly inputElement = computed(() => this._pattern.inputs.inputEl());\n\n /** The combobox ui pattern. */\n readonly _pattern = new ComboboxPattern<any, V>({\n ...this,\n textDirection: this.textDirection,\n disabled: this.disabled,\n readonly: this.readonly,\n inputValue: signal(''),\n inputEl: signal(undefined),\n containerEl: () => this._elementRef.nativeElement,\n popupControls: () => this.popup()?._controls(),\n });\n\n constructor() {\n afterRenderEffect(() => {\n if (this.alwaysExpanded()) {\n this._pattern.expanded.set(true);\n }\n });\n\n afterRenderEffect(() => {\n if (\n !this._deferredContentAware?.contentVisible() &&\n (this._pattern.isFocused() || this.alwaysExpanded())\n ) {\n this._deferredContentAware?.contentVisible.set(true);\n }\n });\n }\n\n /** Opens the combobox to the selected item. */\n open() {\n this._pattern.open({selected: true});\n }\n\n /** Closes the combobox. */\n close() {\n this._pattern.close();\n }\n}\n\n/**\n * An input that is part of a combobox. It is responsible for displaying the\n * current value and handling user input for filtering and selection.\n *\n * This directive should be applied to an `<input>` element within an `ngCombobox`\n * container. It automatically handles keyboard interactions, such as opening the\n * popup and navigating through the options.\n *\n * ```html\n * <input\n * ngComboboxInput\n * placeholder=\"Search...\"\n * [(value)]=\"searchString\"\n * />\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'input[ngComboboxInput]',\n exportAs: 'ngComboboxInput',\n host: {\n 'role': 'combobox',\n '[value]': 'value()',\n '[attr.aria-disabled]': 'combobox._pattern.disabled()',\n '[attr.aria-expanded]': 'combobox._pattern.expanded()',\n '[attr.aria-activedescendant]': 'combobox._pattern.activeDescendant()',\n '[attr.aria-controls]': 'combobox._pattern.popupId()',\n '[attr.aria-haspopup]': 'combobox._pattern.hasPopup()',\n '[attr.aria-autocomplete]': 'combobox._pattern.autocomplete()',\n '[attr.readonly]': 'combobox._pattern.readonly()',\n },\n})\nexport class ComboboxInput {\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n /** A reference to the input element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The combobox that the input belongs to. */\n readonly combobox = inject(Combobox);\n\n /** The value of the input. */\n value = model<string>('');\n\n constructor() {\n (this.combobox._pattern.inputs.inputEl as WritableSignal<HTMLInputElement>).set(\n this._elementRef.nativeElement,\n );\n this.combobox._pattern.inputs.inputValue = this.value;\n\n const controls = this.combobox.popup()?._controls();\n if (controls instanceof ComboboxDialogPattern) {\n return;\n }\n\n /** Focuses & selects the first item in the combobox if the user changes the input value. */\n afterRenderEffect(() => {\n this.value();\n controls?.items();\n untracked(() => this.combobox._pattern.onFilter());\n });\n }\n}\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 a `ngListbox`, `ngTree`, or `role=\"dialog\"`, allowing for\n * flexible and complex combobox implementations. The consumer is responsible for\n * implementing the filtering logic based on the `ngComboboxInput`'s value.\n *\n * ```html\n * <ng-template ngComboboxPopupContainer>\n * <div ngListbox [(value)]=\"selectedValue\">\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n *\n * When using CdkOverlay, this directive can be replaced by `cdkConnectedOverlay`.\n *\n * ```html\n * <ng-template\n * [cdkConnectedOverlay]=\"{origin: inputElement, usePopover: 'inline' matchWidth: true}\"\n * [cdkConnectedOverlayOpen]=\"combobox.expanded()\">\n * <div ngListbox [(value)]=\"selectedValue\">\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'ng-template[ngComboboxPopupContainer]',\n exportAs: 'ngComboboxPopupContainer',\n hostDirectives: [DeferredContent],\n})\nexport class ComboboxPopupContainer {}\n\n/**\n * Identifies an element as a popup for an `ngCombobox`.\n *\n * This directive acts as a bridge, allowing the `ngCombobox` to discover and interact\n * with the underlying control (e.g., `ngListbox`, `ngTree`, or `ngComboboxDialog`) that\n * manages the options. It's primarily used as a host directive and is responsible for\n * exposing the popup's control pattern to the parent combobox.\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngComboboxPopup]',\n exportAs: 'ngComboboxPopup',\n})\nexport class ComboboxPopup<V> {\n /** The combobox that the popup belongs to. */\n readonly combobox = inject<Combobox<V>>(Combobox, {optional: true});\n\n /** The popup controls exposed to the combobox. */\n readonly _controls = signal<\n | ComboboxListboxControls<any, V>\n | ComboboxTreeControls<any, V>\n | ComboboxDialogPattern\n | undefined\n >(undefined);\n}\n\n/**\n * Integrates a native `<dialog>` element with the combobox, allowing for\n * a modal or non-modal popup experience. It handles the opening and closing of the dialog\n * based on the combobox's expanded state.\n *\n * ```html\n * <ng-template ngComboboxPopupContainer>\n * <dialog ngComboboxDialog class=\"example-dialog\">\n * <!-- ... dialog content ... -->\n * </dialog>\n * </ng-template>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'dialog[ngComboboxDialog]',\n exportAs: 'ngComboboxDialog',\n host: {\n '[attr.data-open]': 'combobox._pattern.expanded()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n },\n hostDirectives: [ComboboxPopup],\n})\nexport class ComboboxDialog {\n /** The dialog element. */\n private readonly _elementRef = inject(ElementRef<HTMLDialogElement>);\n\n /** A reference to the dialog element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The combobox that the dialog belongs to. */\n readonly combobox = inject(Combobox);\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<ComboboxPopup<unknown>>(ComboboxPopup, {\n optional: true,\n });\n\n _pattern: ComboboxDialogPattern;\n\n constructor() {\n this._pattern = new ComboboxDialogPattern({\n id: () => '',\n element: () => this._elementRef.nativeElement,\n combobox: this.combobox._pattern,\n });\n\n if (this._popup) {\n this._popup._controls.set(this._pattern);\n }\n\n afterRenderEffect(() => {\n if (this._elementRef) {\n this.combobox._pattern.expanded()\n ? this._elementRef.nativeElement.showModal()\n : this._elementRef.nativeElement.close();\n }\n });\n }\n\n close() {\n this._popup?.combobox?._pattern.close();\n }\n}\n"],"names":["Combobox","_directionality","inject","Directionality","textDirection","toSignal","change","initialValue","value","_elementRef","ElementRef","element","nativeElement","_deferredContentAware","DeferredContentAware","optional","popup","contentChild","forwardRef","ComboboxPopup","filterMode","input","disabled","transform","booleanAttribute","readonly","firstMatch","undefined","expanded","computed","alwaysExpanded","_pattern","inputElement","inputs","inputEl","ComboboxPattern","inputValue","signal","containerEl","popupControls","_controls","constructor","afterRenderEffect","set","contentVisible","isFocused","open","selected","close","deps","target","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","descendants","isSignal","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","selector","host","Input","alias","required","ComboboxInput","combobox","model","controls","ComboboxDialogPattern","items","untracked","onFilter","isStandalone","classPropertyName","publicName","isRequired","transformFunction","outputs","attributes","properties","ComboboxPopupContainer","DeferredContent","ComboboxDialog","_popup","id","showModal"],"mappings":"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"}
|
package/fesm2022/grid.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/aria/grid/grid.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 {_IdGenerator} from '@angular/cdk/a11y';\nimport {\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n output,\n model,\n Signal,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {GridPattern, GridRowPattern, GridCellPattern, GridCellWidgetPattern} from '../private';\n\n/**\n * The container for a grid. It provides keyboard navigation and focus management for the grid's\n * rows and cells. It manages the overall behavior of the grid, including focus\n * wrapping, selection, and disabled states.\n *\n * ```html\n * <table ngGrid [multi]=\"true\" [enableSelection]=\"true\">\n * @for (row of gridData; track row) {\n * <tr ngGridRow>\n * @for (cell of row; track cell) {\n * <td ngGridCell [disabled]=\"cell.disabled\">\n * {{cell.value}}\n * </td>\n * }\n * </tr>\n * }\n * </table>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngGrid]',\n exportAs: 'ngGrid',\n host: {\n 'role': 'grid',\n '[tabindex]': '_pattern.tabIndex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(pointermove)': '_pattern.onPointermove($event)',\n '(pointerup)': '_pattern.onPointerup($event)',\n '(focusin)': '_pattern.onFocusIn($event)',\n '(focusout)': '_pattern.onFocusOut($event)',\n },\n})\nexport class Grid {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The rows that make up the grid. */\n private readonly _rows = contentChildren(GridRow, {descendants: true});\n\n /** The UI patterns for the rows in the grid. */\n private readonly _rowPatterns: Signal<GridRowPattern[]> = computed(() =>\n this._rows().map(r => r._pattern),\n );\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether selection is enabled for the grid. */\n readonly enableSelection = input(false, {transform: booleanAttribute});\n\n /** Whether the grid is disabled. */\n readonly disabled = input(false, {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 /**\n * The focus strategy used by the grid.\n * - `roving`: Focus is moved to the active cell using `tabindex`.\n * - `activedescendant`: Focus remains on the grid container, and `aria-activedescendant` is used to indicate the active cell.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The wrapping behavior for keyboard navigation along the row axis.\n * - `continuous`: Navigation wraps from the last row to the first, and vice-versa.\n * - `loop`: Navigation wraps within the current row.\n * - `nowrap`: Navigation stops at the first/last item in the row.\n */\n readonly rowWrap = input<'continuous' | 'loop' | 'nowrap'>('loop');\n\n /**\n * The wrapping behavior for keyboard navigation along the column axis.\n * - `continuous`: Navigation wraps from the last column to the first, and vice-versa.\n * - `loop`: Navigation wraps within the current column.\n * - `nowrap`: Navigation stops at the first/last item in the column.\n */\n readonly colWrap = input<'continuous' | 'loop' | 'nowrap'>('loop');\n\n /** Whether multiple cells in the grid can be selected. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /**\n * The selection strategy used by the grid.\n * - `follow`: The focused cell is automatically selected.\n * - `explicit`: Cells are selected explicitly by the user (e.g., via click or spacebar).\n */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** Whether enable range selections (with modifier keys or dragging). */\n readonly enableRangeSelection = input(false, {transform: booleanAttribute});\n\n /** The UI pattern for the grid. */\n readonly _pattern = new GridPattern({\n ...this,\n rows: this._rowPatterns,\n getCell: e => this._getCell(e),\n element: () => this.element,\n });\n\n constructor() {\n afterRenderEffect(() => this._pattern.setDefaultStateEffect());\n afterRenderEffect(() => this._pattern.resetStateEffect());\n afterRenderEffect(() => this._pattern.resetFocusEffect());\n afterRenderEffect(() => this._pattern.restoreFocusEffect());\n afterRenderEffect(() => this._pattern.focusEffect());\n }\n\n /** Gets the cell pattern for a given element. */\n private _getCell(element: Element | null | undefined): GridCellPattern | undefined {\n let target = element;\n\n while (target) {\n for (const row of this._rowPatterns()) {\n for (const cell of row.inputs.cells()) {\n if (cell.element() === target) {\n return cell;\n }\n }\n }\n\n target = target.parentElement?.closest('[ngGridCell]');\n }\n\n return undefined;\n }\n}\n\n/**\n * Represents a row within a grid. It is a container for `ngGridCell` directives.\n *\n * ```html\n * <tr ngGridRow>\n * <!-- ... cells ... -->\n * </tr>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngGridRow]',\n exportAs: 'ngGridRow',\n host: {\n 'role': 'row',\n '[attr.aria-rowindex]': '_pattern.rowIndex()',\n },\n})\nexport class GridRow {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The cells that make up this row. */\n private readonly _cells = contentChildren(GridCell, {descendants: true});\n\n /** The UI patterns for the cells in this row. */\n private readonly _cellPatterns: Signal<GridCellPattern[]> = computed(() =>\n this._cells().map(c => c._pattern),\n );\n\n /** The parent grid. */\n private readonly _grid = inject(Grid);\n\n /** The parent grid UI pattern. */\n readonly _gridPattern = computed(() => this._grid._pattern);\n\n /** The index of this row within the grid. */\n readonly rowIndex = input<number>();\n\n /** The UI pattern for the grid row. */\n readonly _pattern = new GridRowPattern({\n ...this,\n cells: this._cellPatterns,\n grid: this._gridPattern,\n });\n}\n\n/**\n * Represents a cell within a grid row. It is the primary focusable element\n * within the grid. It can be disabled and can have its selection state managed\n * through the `selected` input.\n *\n * ```html\n * <td ngGridCell [disabled]=\"isDisabled\" [(selected)]=\"isSelected\">\n * Cell Content\n * </td>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngGridCell]',\n exportAs: 'ngGridCell',\n host: {\n '[attr.role]': 'role()',\n '[attr.id]': '_pattern.id()',\n '[attr.rowspan]': '_pattern.rowSpan()',\n '[attr.colspan]': '_pattern.colSpan()',\n '[attr.data-active]': 'active()',\n '[attr.data-anchor]': '_pattern.anchor()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-rowspan]': '_pattern.rowSpan()',\n '[attr.aria-colspan]': '_pattern.colSpan()',\n '[attr.aria-rowindex]': '_pattern.ariaRowIndex()',\n '[attr.aria-colindex]': '_pattern.ariaColIndex()',\n '[attr.aria-selected]': '_pattern.ariaSelected()',\n '[tabindex]': '_tabIndex()',\n },\n})\nexport class GridCell {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** Whether the cell is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** The widgets contained within this cell, if any. */\n private readonly _widgets = contentChildren(GridCellWidget, {descendants: true});\n\n /** The UI pattern for the widget in this cell. */\n private readonly _widgetPatterns: Signal<GridCellWidgetPattern[]> = computed(() =>\n this._widgets().map(w => w._pattern),\n );\n\n /** The parent row. */\n private readonly _row = inject(GridRow);\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** A unique identifier for the cell. */\n readonly id = input(inject(_IdGenerator).getId('ng-grid-cell-', true));\n\n /** The ARIA role for the cell. */\n readonly role = input<'gridcell' | 'columnheader' | 'rowheader'>('gridcell');\n\n /** The number of rows the cell should span. */\n readonly rowSpan = input<number>(1);\n\n /** The number of columns the cell should span. */\n readonly colSpan = input<number>(1);\n\n /** The index of this cell's row within the grid. */\n readonly rowIndex = input<number>();\n\n /** The index of this cell's column within the grid. */\n readonly colIndex = input<number>();\n\n /** Whether the cell is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the cell is selected. */\n readonly selected = model<boolean>(false);\n\n /** Whether the cell is selectable. */\n readonly selectable = input<boolean>(true);\n\n /** Orientation of the widgets in the cell. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\n\n /** Whether widgets navigation wraps. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The tabindex override. */\n readonly tabindex = input<number | undefined>();\n\n /**\n * The tabindex value set to the element.\n * If a focus target exists then return -1. Unless an override.\n */\n protected readonly _tabIndex: Signal<number> = computed(\n () => this.tabindex() ?? this._pattern.tabIndex(),\n );\n\n /** The UI pattern for the grid cell. */\n readonly _pattern = new GridCellPattern({\n ...this,\n grid: this._row._gridPattern,\n row: () => this._row._pattern,\n widgets: this._widgetPatterns,\n getWidget: e => this._getWidget(e),\n element: () => this.element,\n });\n\n constructor() {}\n\n /** Gets the cell widget pattern for a given element. */\n private _getWidget(element: Element | null | undefined): GridCellWidgetPattern | undefined {\n let target = element;\n\n while (target) {\n const pattern = this._widgetPatterns().find(w => w.element() === target);\n if (pattern) {\n return pattern;\n }\n\n target = target.parentElement?.closest('[ngGridCellWidget]');\n }\n\n return undefined;\n }\n}\n\n/**\n * Represents an interactive element inside a `GridCell`. It allows for pausing grid navigation to\n * interact with the widget.\n *\n * When the user interacts with the widget (e.g., by typing in an input or opening a menu), grid\n * navigation is temporarily suspended to allow the widget to handle keyboard\n * events.\n *\n * ```html\n * <td ngGridCell>\n * <button ngGridCellWidget>Click Me</button>\n * </td>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngGridCellWidget]',\n exportAs: 'ngGridCellWidget',\n host: {\n '[attr.data-active]': 'active()',\n '[attr.data-active-control]': 'isActivated() ? \"widget\" : \"cell\"',\n '[tabindex]': '_tabIndex()',\n },\n})\nexport class GridCellWidget {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** Whether the widget is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** The parent cell. */\n private readonly _cell = inject(GridCell);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-grid-cell-widget-', true));\n\n /** The type of widget, which determines how it is activated. */\n readonly widgetType = input<'simple' | 'complex' | 'editable'>('simple');\n\n /** Whether the widget is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The target that will receive focus instead of the widget. */\n readonly focusTarget = input<ElementRef | HTMLElement | undefined>();\n\n /** Emits when the widget is activated. */\n readonly onActivate = output<KeyboardEvent | FocusEvent | undefined>();\n\n /** Emits when the widget is deactivated. */\n readonly onDeactivate = output<KeyboardEvent | FocusEvent | undefined>();\n\n /** The tabindex override. */\n readonly tabindex = input<number | undefined>();\n\n /**\n * The tabindex value set to the element.\n * If a focus target exists then return -1. Unless an override.\n */\n protected readonly _tabIndex: Signal<number> = computed(\n () => this.tabindex() ?? (this.focusTarget() ? -1 : this._pattern.tabIndex()),\n );\n\n /** The UI pattern for the grid cell widget. */\n readonly _pattern = new GridCellWidgetPattern({\n ...this,\n element: () => this.element,\n cell: () => this._cell._pattern,\n focusTarget: computed(() => {\n if (this.focusTarget() instanceof ElementRef) {\n return (this.focusTarget() as ElementRef).nativeElement;\n }\n return this.focusTarget();\n }),\n });\n\n /** Whether the widget is activated. */\n get isActivated(): Signal<boolean> {\n return this._pattern.isActivated.asReadonly();\n }\n\n constructor() {\n afterRenderEffect(() => {\n const activateEvent = this._pattern.lastActivateEvent();\n if (activateEvent) {\n this.onActivate.emit(activateEvent);\n }\n });\n\n afterRenderEffect(() => {\n const deactivateEvent = this._pattern.lastDeactivateEvent();\n if (deactivateEvent) {\n this.onDeactivate.emit(deactivateEvent);\n }\n });\n }\n\n /** Activates the widget. */\n activate(): void {\n this._pattern.activate();\n }\n\n /** Deactivates the widget. */\n deactivate(): void {\n this._pattern.deactivate();\n }\n}\n"],"names":["Grid","_elementRef","inject","ElementRef","element","nativeElement","_rows","contentChildren","GridRow","descendants","_rowPatterns","computed","map","r","_pattern","ngDevMode","debugName","textDirection","Directionality","valueSignal","enableSelection","input","transform","booleanAttribute","disabled","softDisabled","focusMode","rowWrap","colWrap","multi","selectionMode","enableRangeSelection","GridPattern","rows","getCell","e","_getCell","constructor","afterRenderEffect","setDefaultStateEffect","resetStateEffect","resetFocusEffect","restoreFocusEffect","focusEffect","target","row","cell","inputs","cells","parentElement","closest","undefined","deps","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","isSignal","exportAs","ngImport","decorators","args","selector","host","ctorParameters","propDecorators","ContentChildren","forwardRef","Input","alias","required","_cells","GridCell","_cellPatterns","c","_grid","_gridPattern","rowIndex","GridRowPattern","grid","active","_widgets","GridCellWidget","_widgetPatterns","w","_row","id","_IdGenerator","getId","role","rowSpan","colSpan","colIndex","selected","model","selectable","orientation","wrap","tabindex","_tabIndex","tabIndex","GridCellPattern","widgets","getWidget","_getWidget","pattern","find","Output","_cell","widgetType","focusTarget","onActivate","output","onDeactivate","GridCellWidgetPattern","isActivated","asReadonly","activateEvent","lastActivateEvent","emit","deactivateEvent","lastDeactivateEvent","activate","deactivate","isStandalone","classPropertyName","publicName","isRequired","transformFunction","outputs","properties"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"grid.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/aria/grid/grid.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 {_IdGenerator} from '@angular/cdk/a11y';\nimport {\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n output,\n model,\n Signal,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {GridPattern, GridRowPattern, GridCellPattern, GridCellWidgetPattern} from '../private';\n\n/**\n * The container for a grid. It provides keyboard navigation and focus management for the grid's\n * rows and cells. It manages the overall behavior of the grid, including focus\n * wrapping, selection, and disabled states.\n *\n * ```html\n * <table ngGrid [multi]=\"true\" [enableSelection]=\"true\">\n * @for (row of gridData; track row) {\n * <tr ngGridRow>\n * @for (cell of row; track cell) {\n * <td ngGridCell [disabled]=\"cell.disabled\">\n * {{cell.value}}\n * </td>\n * }\n * </tr>\n * }\n * </table>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngGrid]',\n exportAs: 'ngGrid',\n host: {\n 'role': 'grid',\n '[tabindex]': '_pattern.tabIndex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(pointermove)': '_pattern.onPointermove($event)',\n '(pointerup)': '_pattern.onPointerup($event)',\n '(focusin)': '_pattern.onFocusIn($event)',\n '(focusout)': '_pattern.onFocusOut($event)',\n },\n})\nexport class Grid {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The rows that make up the grid. */\n private readonly _rows = contentChildren(GridRow, {descendants: true});\n\n /** The UI patterns for the rows in the grid. */\n private readonly _rowPatterns: Signal<GridRowPattern[]> = computed(() =>\n this._rows().map(r => r._pattern),\n );\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether selection is enabled for the grid. */\n readonly enableSelection = input(false, {transform: booleanAttribute});\n\n /** Whether the grid is disabled. */\n readonly disabled = input(false, {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 /**\n * The focus strategy used by the grid.\n * - `roving`: Focus is moved to the active cell using `tabindex`.\n * - `activedescendant`: Focus remains on the grid container, and `aria-activedescendant` is used to indicate the active cell.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The wrapping behavior for keyboard navigation along the row axis.\n * - `continuous`: Navigation wraps from the last row to the first, and vice-versa.\n * - `loop`: Navigation wraps within the current row.\n * - `nowrap`: Navigation stops at the first/last item in the row.\n */\n readonly rowWrap = input<'continuous' | 'loop' | 'nowrap'>('loop');\n\n /**\n * The wrapping behavior for keyboard navigation along the column axis.\n * - `continuous`: Navigation wraps from the last column to the first, and vice-versa.\n * - `loop`: Navigation wraps within the current column.\n * - `nowrap`: Navigation stops at the first/last item in the column.\n */\n readonly colWrap = input<'continuous' | 'loop' | 'nowrap'>('loop');\n\n /** Whether multiple cells in the grid can be selected. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /**\n * The selection strategy used by the grid.\n * - `follow`: The focused cell is automatically selected.\n * - `explicit`: Cells are selected explicitly by the user (e.g., via click or spacebar).\n */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** Whether enable range selections (with modifier keys or dragging). */\n readonly enableRangeSelection = input(false, {transform: booleanAttribute});\n\n /** The UI pattern for the grid. */\n readonly _pattern = new GridPattern({\n ...this,\n rows: this._rowPatterns,\n getCell: e => this._getCell(e),\n element: () => this.element,\n });\n\n constructor() {\n afterRenderEffect(() => this._pattern.setDefaultStateEffect());\n afterRenderEffect(() => this._pattern.resetStateEffect());\n afterRenderEffect(() => this._pattern.resetFocusEffect());\n afterRenderEffect(() => this._pattern.restoreFocusEffect());\n afterRenderEffect(() => this._pattern.focusEffect());\n }\n\n /** Gets the cell pattern for a given element. */\n private _getCell(element: Element | null | undefined): GridCellPattern | undefined {\n let target = element;\n\n while (target) {\n for (const row of this._rowPatterns()) {\n for (const cell of row.inputs.cells()) {\n if (cell.element() === target) {\n return cell;\n }\n }\n }\n\n target = target.parentElement?.closest('[ngGridCell]');\n }\n\n return undefined;\n }\n}\n\n/**\n * Represents a row within a grid. It is a container for `ngGridCell` directives.\n *\n * ```html\n * <tr ngGridRow>\n * <!-- ... cells ... -->\n * </tr>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngGridRow]',\n exportAs: 'ngGridRow',\n host: {\n 'role': 'row',\n '[attr.aria-rowindex]': '_pattern.rowIndex()',\n },\n})\nexport class GridRow {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The cells that make up this row. */\n private readonly _cells = contentChildren(GridCell, {descendants: true});\n\n /** The UI patterns for the cells in this row. */\n private readonly _cellPatterns: Signal<GridCellPattern[]> = computed(() =>\n this._cells().map(c => c._pattern),\n );\n\n /** The parent grid. */\n private readonly _grid = inject(Grid);\n\n /** The parent grid UI pattern. */\n readonly _gridPattern = computed(() => this._grid._pattern);\n\n /** The index of this row within the grid. */\n readonly rowIndex = input<number>();\n\n /** The UI pattern for the grid row. */\n readonly _pattern = new GridRowPattern({\n ...this,\n cells: this._cellPatterns,\n grid: this._gridPattern,\n });\n}\n\n/**\n * Represents a cell within a grid row. It is the primary focusable element\n * within the grid. It can be disabled and can have its selection state managed\n * through the `selected` input.\n *\n * ```html\n * <td ngGridCell [disabled]=\"isDisabled\" [(selected)]=\"isSelected\">\n * Cell Content\n * </td>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngGridCell]',\n exportAs: 'ngGridCell',\n host: {\n '[attr.role]': 'role()',\n '[attr.id]': '_pattern.id()',\n '[attr.rowspan]': '_pattern.rowSpan()',\n '[attr.colspan]': '_pattern.colSpan()',\n '[attr.data-active]': 'active()',\n '[attr.data-anchor]': '_pattern.anchor()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-rowspan]': '_pattern.rowSpan()',\n '[attr.aria-colspan]': '_pattern.colSpan()',\n '[attr.aria-rowindex]': '_pattern.ariaRowIndex()',\n '[attr.aria-colindex]': '_pattern.ariaColIndex()',\n '[attr.aria-selected]': '_pattern.ariaSelected()',\n '[tabindex]': '_tabIndex()',\n },\n})\nexport class GridCell {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** Whether the cell is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** The widgets contained within this cell, if any. */\n private readonly _widgets = contentChildren(GridCellWidget, {descendants: true});\n\n /** The UI pattern for the widget in this cell. */\n private readonly _widgetPatterns: Signal<GridCellWidgetPattern[]> = computed(() =>\n this._widgets().map(w => w._pattern),\n );\n\n /** The parent row. */\n private readonly _row = inject(GridRow);\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** A unique identifier for the cell. */\n readonly id = input(inject(_IdGenerator).getId('ng-grid-cell-', true));\n\n /** The ARIA role for the cell. */\n readonly role = input<'gridcell' | 'columnheader' | 'rowheader'>('gridcell');\n\n /** The number of rows the cell should span. */\n readonly rowSpan = input<number>(1);\n\n /** The number of columns the cell should span. */\n readonly colSpan = input<number>(1);\n\n /** The index of this cell's row within the grid. */\n readonly rowIndex = input<number>();\n\n /** The index of this cell's column within the grid. */\n readonly colIndex = input<number>();\n\n /** Whether the cell is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the cell is selected. */\n readonly selected = model<boolean>(false);\n\n /** Whether the cell is selectable. */\n readonly selectable = input<boolean>(true);\n\n /** Orientation of the widgets in the cell. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\n\n /** Whether widgets navigation wraps. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The tabindex override. */\n readonly tabindex = input<number | undefined>();\n\n /**\n * The tabindex value set to the element.\n * If a focus target exists then return -1. Unless an override.\n */\n protected readonly _tabIndex: Signal<number> = computed(\n () => this.tabindex() ?? this._pattern.tabIndex(),\n );\n\n /** The UI pattern for the grid cell. */\n readonly _pattern = new GridCellPattern({\n ...this,\n grid: this._row._gridPattern,\n row: () => this._row._pattern,\n widgets: this._widgetPatterns,\n getWidget: e => this._getWidget(e),\n element: () => this.element,\n });\n\n constructor() {}\n\n /** Gets the cell widget pattern for a given element. */\n private _getWidget(element: Element | null | undefined): GridCellWidgetPattern | undefined {\n let target = element;\n\n while (target) {\n const pattern = this._widgetPatterns().find(w => w.element() === target);\n if (pattern) {\n return pattern;\n }\n\n target = target.parentElement?.closest('[ngGridCellWidget]');\n }\n\n return undefined;\n }\n}\n\n/**\n * Represents an interactive element inside a `GridCell`. It allows for pausing grid navigation to\n * interact with the widget.\n *\n * When the user interacts with the widget (e.g., by typing in an input or opening a menu), grid\n * navigation is temporarily suspended to allow the widget to handle keyboard\n * events.\n *\n * ```html\n * <td ngGridCell>\n * <button ngGridCellWidget>Click Me</button>\n * </td>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngGridCellWidget]',\n exportAs: 'ngGridCellWidget',\n host: {\n '[attr.data-active]': 'active()',\n '[attr.data-active-control]': 'isActivated() ? \"widget\" : \"cell\"',\n '[tabindex]': '_tabIndex()',\n },\n})\nexport class GridCellWidget {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** Whether the widget is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** The parent cell. */\n private readonly _cell = inject(GridCell);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-grid-cell-widget-', true));\n\n /** The type of widget, which determines how it is activated. */\n readonly widgetType = input<'simple' | 'complex' | 'editable'>('simple');\n\n /** Whether the widget is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The target that will receive focus instead of the widget. */\n readonly focusTarget = input<ElementRef | HTMLElement | undefined>();\n\n /** Emits when the widget is activated. */\n readonly onActivate = output<KeyboardEvent | FocusEvent | undefined>();\n\n /** Emits when the widget is deactivated. */\n readonly onDeactivate = output<KeyboardEvent | FocusEvent | undefined>();\n\n /** The tabindex override. */\n readonly tabindex = input<number | undefined>();\n\n /**\n * The tabindex value set to the element.\n * If a focus target exists then return -1. Unless an override.\n */\n protected readonly _tabIndex: Signal<number> = computed(\n () => this.tabindex() ?? (this.focusTarget() ? -1 : this._pattern.tabIndex()),\n );\n\n /** The UI pattern for the grid cell widget. */\n readonly _pattern = new GridCellWidgetPattern({\n ...this,\n element: () => this.element,\n cell: () => this._cell._pattern,\n focusTarget: computed(() => {\n if (this.focusTarget() instanceof ElementRef) {\n return (this.focusTarget() as ElementRef).nativeElement;\n }\n return this.focusTarget();\n }),\n });\n\n /** Whether the widget is activated. */\n get isActivated(): Signal<boolean> {\n return this._pattern.isActivated.asReadonly();\n }\n\n constructor() {\n afterRenderEffect(() => {\n const activateEvent = this._pattern.lastActivateEvent();\n if (activateEvent) {\n this.onActivate.emit(activateEvent);\n }\n });\n\n afterRenderEffect(() => {\n const deactivateEvent = this._pattern.lastDeactivateEvent();\n if (deactivateEvent) {\n this.onDeactivate.emit(deactivateEvent);\n }\n });\n }\n\n /** Activates the widget. */\n activate(): void {\n this._pattern.activate();\n }\n\n /** Deactivates the widget. */\n deactivate(): void {\n this._pattern.deactivate();\n }\n}\n"],"names":["Grid","_elementRef","inject","ElementRef","element","nativeElement","_rows","contentChildren","GridRow","descendants","_rowPatterns","computed","map","r","_pattern","ngDevMode","debugName","textDirection","Directionality","valueSignal","enableSelection","input","transform","booleanAttribute","disabled","softDisabled","focusMode","rowWrap","colWrap","multi","selectionMode","enableRangeSelection","GridPattern","rows","getCell","e","_getCell","constructor","afterRenderEffect","setDefaultStateEffect","resetStateEffect","resetFocusEffect","restoreFocusEffect","focusEffect","target","row","cell","inputs","cells","parentElement","closest","undefined","deps","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","isSignal","exportAs","ngImport","decorators","args","selector","host","ctorParameters","propDecorators","ContentChildren","forwardRef","Input","alias","required","_cells","GridCell","_cellPatterns","c","_grid","_gridPattern","rowIndex","GridRowPattern","grid","active","_widgets","GridCellWidget","_widgetPatterns","w","_row","id","_IdGenerator","getId","role","rowSpan","colSpan","colIndex","selected","model","selectable","orientation","wrap","tabindex","_tabIndex","tabIndex","GridCellPattern","widgets","getWidget","_getWidget","pattern","find","Output","_cell","widgetType","focusTarget","onActivate","output","onDeactivate","GridCellWidgetPattern","isActivated","asReadonly","activateEvent","lastActivateEvent","emit","deactivateEvent","lastDeactivateEvent","activate","deactivate","isStandalone","classPropertyName","publicName","isRequired","transformFunction","outputs","properties"],"mappings":"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"}
|
package/fesm2022/listbox.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listbox.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/aria/listbox/listbox.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 contentChildren,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n} from '@angular/core';\nimport {ComboboxListboxPattern, ListboxPattern, OptionPattern} from '@angular/aria/private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {ComboboxPopup} from '../combobox';\n\n/**\n * Represents a container used to display a list of items for a user to select from.\n *\n * The `ngListbox` is meant to be used in conjunction with `ngOption` directives to create a\n * selectable list. It supports single and multiple selection modes, as well as various focus and\n * orientation strategies.\n *\n * ```html\n * <ul ngListbox [(value)]=\"selectedItems\" [multi]=\"true\" orientation=\"vertical\">\n * @for (item of items; track item.id) {\n * <li ngOption [value]=\"item.id\" [label]=\"item.name\" [disabled]=\"item.disabled\">\n * {{item.name}}\n * </li>\n * }\n * </ul>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngListbox]',\n exportAs: 'ngListbox',\n host: {\n 'role': 'listbox',\n '[attr.id]': 'id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-readonly]': '_pattern.readonly()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-multiselectable]': '_pattern.multi()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_onFocus()',\n },\n hostDirectives: [ComboboxPopup],\n})\nexport class Listbox<V> {\n /** A unique identifier for the listbox. */\n readonly id = input(inject(_IdGenerator).getId('ng-listbox-', true));\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<ComboboxPopup<V>>(ComboboxPopup, {\n optional: true,\n });\n\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n private readonly _directionality = inject(Directionality);\n\n /** The Options nested inside of the Listbox. */\n private readonly _options = contentChildren(\n // We need a `forwardRef` here, because the option class is declared further down\n // in the same file. When the reference is written to Angular's metadata this can\n // cause an attempt to access the class before it's defined.\n forwardRef(() => Option),\n {descendants: true},\n );\n\n /** A signal wrapper for directionality. */\n protected textDirection = toSignal(this._directionality.change, {\n initialValue: this._directionality.value,\n });\n\n /** The Option UIPatterns of the child Options. */\n protected items = computed(() => this._options().map(option => option._pattern));\n\n /** Whether the list is vertically or horizontally oriented. */\n orientation = input<'vertical' | 'horizontal'>('vertical');\n\n /** Whether multiple items in the list can be selected at once. */\n multi = input(false, {transform: booleanAttribute});\n\n /** Whether focus should wrap when navigating. */\n wrap = 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 softDisabled = input(true, {transform: booleanAttribute});\n\n /**\n * The focus strategy used by the list.\n * - `roving`: Focus is moved to the active item using `tabindex`.\n * - `activedescendant`: Focus remains on the listbox container, and `aria-activedescendant` is used to indicate the active item.\n */\n focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The selection strategy used by the list.\n * - `follow`: The focused item is automatically selected.\n * - `explicit`: Items are selected explicitly by the user (e.g., via click or spacebar).\n */\n selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** The amount of time before the typeahead search is reset. */\n typeaheadDelay = input<number>(500); // Picked arbitrarily.\n\n /** Whether the listbox is disabled. */\n disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the listbox is readonly. */\n readonly = input(false, {transform: booleanAttribute});\n\n /** The values of the currently selected items. */\n values = model<V[]>([]);\n\n /** The Listbox UIPattern. */\n readonly _pattern: ListboxPattern<V>;\n\n /** Whether the listbox has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n const inputs = {\n ...this,\n id: this.id,\n items: this.items,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n combobox: () => this._popup?.combobox?._pattern,\n };\n\n this._pattern = this._popup?.combobox\n ? new ComboboxListboxPattern<V>(inputs)\n : new ListboxPattern<V>(inputs);\n\n if (this._popup) {\n this._popup._controls.set(this._pattern as ComboboxListboxPattern<V>);\n }\n\n afterRenderEffect(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const violations = this._pattern.validate();\n for (const violation of violations) {\n console.error(violation);\n }\n }\n });\n\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this._pattern.setDefaultState();\n }\n });\n\n // Ensure that if the active item is removed from\n // the list, the listbox updates it's focus state.\n afterRenderEffect(() => {\n const items = inputs.items();\n const activeItem = untracked(() => inputs.activeItem());\n\n if (!items.some(i => i === activeItem) && activeItem) {\n this._pattern.listBehavior.unfocus();\n }\n });\n\n // Ensure that the values are always in sync with the available options.\n afterRenderEffect(() => {\n const items = inputs.items();\n const values = untracked(() => this.values());\n\n if (items && values.some(v => !items.some(i => i.value() === v))) {\n this.values.set(values.filter(v => items.some(i => i.value() === v)));\n }\n });\n }\n\n _onFocus() {\n this._hasFocused.set(true);\n }\n\n scrollActiveItemIntoView(options: ScrollIntoViewOptions = {block: 'nearest'}) {\n this._pattern.inputs.activeItem()?.element()?.scrollIntoView(options);\n }\n\n /** Navigates to the first item in the listbox. */\n gotoFirst() {\n this._pattern.listBehavior.first();\n }\n}\n\n/**\n * A selectable option in an `ngListbox`.\n *\n * This directive should be applied to an element (e.g., `<li>`, `<div>`) within an\n * `ngListbox`. The `value` input is used to identify the option, and the `label` input provides\n * the accessible name for the option.\n *\n * ```html\n * <li ngOption value=\"item-id\" label=\"Item Name\">\n * Item Name\n * </li>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngOption]',\n exportAs: 'ngOption',\n host: {\n 'role': 'option',\n '[attr.data-active]': 'active()',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-selected]': '_pattern.selected()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n },\n})\nexport class Option<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** Whether the option is currently active (focused). */\n active = computed(() => this._pattern.active());\n\n /** The parent Listbox. */\n private readonly _listbox = inject(Listbox);\n\n /** A unique identifier for the option. */\n readonly id = input(inject(_IdGenerator).getId('ng-option-', true));\n\n // TODO(wagnermaciel): See if we want to change how we handle this since textContent is not\n // reactive. See https://github.com/angular/components/pull/30495#discussion_r1961260216.\n /** The text used by the typeahead search. */\n protected searchTerm = computed(() => this.label() ?? this.element.textContent);\n\n /** The parent Listbox UIPattern. */\n private readonly _listboxPattern = computed(() => this._listbox._pattern);\n\n /** The value of the option. */\n value = input.required<V>();\n\n /** Whether an item is disabled. */\n disabled = input(false, {transform: booleanAttribute});\n\n /** The text used by the typeahead search. */\n label = input<string>();\n\n /** Whether the option is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** The Option UIPattern. */\n readonly _pattern = new OptionPattern<V>({\n ...this,\n id: this.id,\n value: this.value,\n listbox: this._listboxPattern,\n element: () => this.element,\n searchTerm: () => this.searchTerm() ?? '',\n });\n}\n"],"names":["Listbox","id","input","inject","_IdGenerator","getId","_popup","ComboboxPopup","optional","_elementRef","ElementRef","element","nativeElement","_directionality","Directionality","_options","contentChildren","forwardRef","Option","ngDevMode","debugName","descendants","textDirection","toSignal","change","initialValue","value","items","computed","map","option","_pattern","orientation","multi","transform","booleanAttribute","wrap","softDisabled","focusMode","selectionMode","typeaheadDelay","disabled","readonly","values","model","_hasFocused","signal","constructor","inputs","activeItem","undefined","combobox","ComboboxListboxPattern","ListboxPattern","_controls","set","afterRenderEffect","violations","validate","violation","console","error","setDefaultState","untracked","some","i","listBehavior","unfocus","v","filter","_onFocus","scrollActiveItemIntoView","options","block","scrollIntoView","gotoFirst","first","deps","target","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","isSignal","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","selector","host","Input","alias","required","Output","active","_listbox","searchTerm","label","textContent","_listboxPattern","selected","OptionPattern","listbox","isStandalone","classPropertyName","publicName","isRequired","transformFunction","attributes","properties"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"listbox.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/aria/listbox/listbox.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 contentChildren,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n} from '@angular/core';\nimport {ComboboxListboxPattern, ListboxPattern, OptionPattern} from '@angular/aria/private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {ComboboxPopup} from '../combobox';\n\n/**\n * Represents a container used to display a list of items for a user to select from.\n *\n * The `ngListbox` is meant to be used in conjunction with `ngOption` directives to create a\n * selectable list. It supports single and multiple selection modes, as well as various focus and\n * orientation strategies.\n *\n * ```html\n * <ul ngListbox [(value)]=\"selectedItems\" [multi]=\"true\" orientation=\"vertical\">\n * @for (item of items; track item.id) {\n * <li ngOption [value]=\"item.id\" [label]=\"item.name\" [disabled]=\"item.disabled\">\n * {{item.name}}\n * </li>\n * }\n * </ul>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngListbox]',\n exportAs: 'ngListbox',\n host: {\n 'role': 'listbox',\n '[attr.id]': 'id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-readonly]': '_pattern.readonly()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-multiselectable]': '_pattern.multi()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_onFocus()',\n },\n hostDirectives: [ComboboxPopup],\n})\nexport class Listbox<V> {\n /** A unique identifier for the listbox. */\n readonly id = input(inject(_IdGenerator).getId('ng-listbox-', true));\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<ComboboxPopup<V>>(ComboboxPopup, {\n optional: true,\n });\n\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n private readonly _directionality = inject(Directionality);\n\n /** The Options nested inside of the Listbox. */\n private readonly _options = contentChildren(\n // We need a `forwardRef` here, because the option class is declared further down\n // in the same file. When the reference is written to Angular's metadata this can\n // cause an attempt to access the class before it's defined.\n forwardRef(() => Option),\n {descendants: true},\n );\n\n /** A signal wrapper for directionality. */\n protected textDirection = toSignal(this._directionality.change, {\n initialValue: this._directionality.value,\n });\n\n /** The Option UIPatterns of the child Options. */\n protected items = computed(() => this._options().map(option => option._pattern));\n\n /** Whether the list is vertically or horizontally oriented. */\n orientation = input<'vertical' | 'horizontal'>('vertical');\n\n /** Whether multiple items in the list can be selected at once. */\n multi = input(false, {transform: booleanAttribute});\n\n /** Whether focus should wrap when navigating. */\n wrap = 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 softDisabled = input(true, {transform: booleanAttribute});\n\n /**\n * The focus strategy used by the list.\n * - `roving`: Focus is moved to the active item using `tabindex`.\n * - `activedescendant`: Focus remains on the listbox container, and `aria-activedescendant` is used to indicate the active item.\n */\n focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The selection strategy used by the list.\n * - `follow`: The focused item is automatically selected.\n * - `explicit`: Items are selected explicitly by the user (e.g., via click or spacebar).\n */\n selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** The amount of time before the typeahead search is reset. */\n typeaheadDelay = input<number>(500); // Picked arbitrarily.\n\n /** Whether the listbox is disabled. */\n disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the listbox is readonly. */\n readonly = input(false, {transform: booleanAttribute});\n\n /** The values of the currently selected items. */\n values = model<V[]>([]);\n\n /** The Listbox UIPattern. */\n readonly _pattern: ListboxPattern<V>;\n\n /** Whether the listbox has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n const inputs = {\n ...this,\n id: this.id,\n items: this.items,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n combobox: () => this._popup?.combobox?._pattern,\n };\n\n this._pattern = this._popup?.combobox\n ? new ComboboxListboxPattern<V>(inputs)\n : new ListboxPattern<V>(inputs);\n\n if (this._popup) {\n this._popup._controls.set(this._pattern as ComboboxListboxPattern<V>);\n }\n\n afterRenderEffect(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const violations = this._pattern.validate();\n for (const violation of violations) {\n console.error(violation);\n }\n }\n });\n\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this._pattern.setDefaultState();\n }\n });\n\n // Ensure that if the active item is removed from\n // the list, the listbox updates it's focus state.\n afterRenderEffect(() => {\n const items = inputs.items();\n const activeItem = untracked(() => inputs.activeItem());\n\n if (!items.some(i => i === activeItem) && activeItem) {\n this._pattern.listBehavior.unfocus();\n }\n });\n\n // Ensure that the values are always in sync with the available options.\n afterRenderEffect(() => {\n const items = inputs.items();\n const values = untracked(() => this.values());\n\n if (items && values.some(v => !items.some(i => i.value() === v))) {\n this.values.set(values.filter(v => items.some(i => i.value() === v)));\n }\n });\n }\n\n _onFocus() {\n this._hasFocused.set(true);\n }\n\n scrollActiveItemIntoView(options: ScrollIntoViewOptions = {block: 'nearest'}) {\n this._pattern.inputs.activeItem()?.element()?.scrollIntoView(options);\n }\n\n /** Navigates to the first item in the listbox. */\n gotoFirst() {\n this._pattern.listBehavior.first();\n }\n}\n\n/**\n * A selectable option in an `ngListbox`.\n *\n * This directive should be applied to an element (e.g., `<li>`, `<div>`) within an\n * `ngListbox`. The `value` input is used to identify the option, and the `label` input provides\n * the accessible name for the option.\n *\n * ```html\n * <li ngOption value=\"item-id\" label=\"Item Name\">\n * Item Name\n * </li>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngOption]',\n exportAs: 'ngOption',\n host: {\n 'role': 'option',\n '[attr.data-active]': 'active()',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-selected]': '_pattern.selected()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n },\n})\nexport class Option<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** Whether the option is currently active (focused). */\n active = computed(() => this._pattern.active());\n\n /** The parent Listbox. */\n private readonly _listbox = inject(Listbox);\n\n /** A unique identifier for the option. */\n readonly id = input(inject(_IdGenerator).getId('ng-option-', true));\n\n // TODO(wagnermaciel): See if we want to change how we handle this since textContent is not\n // reactive. See https://github.com/angular/components/pull/30495#discussion_r1961260216.\n /** The text used by the typeahead search. */\n protected searchTerm = computed(() => this.label() ?? this.element.textContent);\n\n /** The parent Listbox UIPattern. */\n private readonly _listboxPattern = computed(() => this._listbox._pattern);\n\n /** The value of the option. */\n value = input.required<V>();\n\n /** Whether an item is disabled. */\n disabled = input(false, {transform: booleanAttribute});\n\n /** The text used by the typeahead search. */\n label = input<string>();\n\n /** Whether the option is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** The Option UIPattern. */\n readonly _pattern = new OptionPattern<V>({\n ...this,\n id: this.id,\n value: this.value,\n listbox: this._listboxPattern,\n element: () => this.element,\n searchTerm: () => this.searchTerm() ?? '',\n });\n}\n"],"names":["Listbox","id","input","inject","_IdGenerator","getId","_popup","ComboboxPopup","optional","_elementRef","ElementRef","element","nativeElement","_directionality","Directionality","_options","contentChildren","forwardRef","Option","ngDevMode","debugName","descendants","textDirection","toSignal","change","initialValue","value","items","computed","map","option","_pattern","orientation","multi","transform","booleanAttribute","wrap","softDisabled","focusMode","selectionMode","typeaheadDelay","disabled","readonly","values","model","_hasFocused","signal","constructor","inputs","activeItem","undefined","combobox","ComboboxListboxPattern","ListboxPattern","_controls","set","afterRenderEffect","violations","validate","violation","console","error","setDefaultState","untracked","some","i","listBehavior","unfocus","v","filter","_onFocus","scrollActiveItemIntoView","options","block","scrollIntoView","gotoFirst","first","deps","target","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","isSignal","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","selector","host","Input","alias","required","Output","active","_listbox","searchTerm","label","textContent","_listboxPattern","selected","OptionPattern","listbox","isStandalone","classPropertyName","publicName","isRequired","transformFunction","attributes","properties"],"mappings":"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"}
|
package/fesm2022/menu.mjs
CHANGED
|
@@ -234,7 +234,7 @@ class Menu {
|
|
|
234
234
|
}
|
|
235
235
|
});
|
|
236
236
|
afterRenderEffect(() => {
|
|
237
|
-
if (!this._pattern.hasBeenFocused() && this._items().length) {
|
|
237
|
+
if (!this._pattern.hasBeenFocused() && !this._pattern.hasBeenHovered() && this._items().length) {
|
|
238
238
|
untracked(() => this._pattern.setDefaultState());
|
|
239
239
|
}
|
|
240
240
|
});
|