Skip to content

Commit ef3f55f

Browse files
committed
refactor(aria/accordion): Add element reference to AccordionPanel
1 parent 1c9bbe4 commit ef3f55f

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

goldens/aria/accordion/index.api.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ export class AccordionGroup {
3838
export class AccordionPanel {
3939
constructor();
4040
collapse(): void;
41+
readonly element: HTMLElement;
4142
expand(): void;
4243
readonly id: _angular_core.InputSignal<string>;
4344
_pattern?: AccordionTriggerPattern;

goldens/aria/private/index.api.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,12 @@ export class GridRowPattern {
437437
rowIndex: SignalLike<number | undefined>;
438438
}
439439

440+
// @public (undocumented)
441+
export interface HasElement {
442+
// (undocumented)
443+
element: HTMLElement;
444+
}
445+
440446
// @public (undocumented)
441447
export function linkedSignal<T>(sourceFn: () => T): WritableSignalLike<T>;
442448

@@ -669,6 +675,9 @@ export function signal<T>(initialValue: T): WritableSignalLike<T>;
669675
// @public (undocumented)
670676
export type SignalLike<T> = () => T;
671677

678+
// @public
679+
export function sortDirectives(a: HasElement, b: HasElement): 1 | -1;
680+
672681
// @public
673682
export interface TabInputs extends Omit<ListNavigationItem, 'index'>, Omit<ExpansionItem, 'expandable'> {
674683
tablist: SignalLike<TabListPattern>;

src/aria/accordion/accordion-panel.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* found in the LICENSE file at https://angular.dev/license
77
*/
88

9-
import {Directive, afterRenderEffect, computed, inject, input} from '@angular/core';
9+
import {Directive, ElementRef, afterRenderEffect, computed, inject, input} from '@angular/core';
1010
import {_IdGenerator} from '@angular/cdk/a11y';
1111
import {DeferredContentAware, AccordionTriggerPattern} from '../private';
1212

@@ -48,6 +48,12 @@ import {DeferredContentAware, AccordionTriggerPattern} from '../private';
4848
},
4949
})
5050
export class AccordionPanel {
51+
/** A reference to the trigger element. */
52+
private readonly _elementRef = inject(ElementRef);
53+
54+
/** A reference to the trigger element. */
55+
readonly element = this._elementRef.nativeElement as HTMLElement;
56+
5157
/** The DeferredContentAware host directive. */
5258
private readonly _deferredContentAware = inject(DeferredContentAware);
5359

0 commit comments

Comments
 (0)