Skip to content

Commit 0c3fa9f

Browse files
committed
refactor(aria/accordion): Add element reference to AccordionPanel
1 parent 1ab3e1a commit 0c3fa9f

3 files changed

Lines changed: 17 additions & 1 deletion

File tree

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
@@ -436,6 +436,12 @@ export class GridRowPattern {
436436
rowIndex: SignalLike<number | undefined>;
437437
}
438438

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

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

677+
// @public
678+
export function sortDirectives(a: HasElement, b: HasElement): 1 | -1;
679+
671680
// @public
672681
export interface TabInputs extends Omit<ListNavigationItem, 'index'>, Omit<ExpansionItem, 'expandable'> {
673682
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)