ifx-accordion-example.ts
import { Component } from '@angular/core';
@Component({
selector: 'app-ifx-accordion-example',
templateUrl: './ifx-accordion-example.html',
styleUrl: './ifx-accordion-example.scss',
standalone: false
})
export class IfxAccordionExample {
protected ariaLevelNumber = 3;
protected autoCollapse = false;
protected updateAriaLevelNumber(value: string) {
this.ariaLevelNumber = Number(value);
}
protected handleAutoCollapseChange() {
this.autoCollapse = !this.autoCollapse;
}
protected getControlInputValue(event: Event | CustomEvent): string {
const target = event.target as (HTMLInputElement & { value?: unknown }) | null;
return String(target?.value ?? '');
}
protected stringifyValue(value: unknown): string {
if (value === null || value === undefined) return '';
if (typeof value === 'string') return value;
if (typeof value === 'object') {
try {
return JSON.stringify(value);
} catch {
return String(value);
}
}
return String(value);
}
protected handleClose(event: CustomEvent) {
console.log('ifxClose:', event);
// Add your handler logic here
}
protected handleOpen(event: CustomEvent) {
console.log('ifxOpen:', event);
// Add your handler logic here
}
}
ifx-accordion-example.html
<ifx-accordion [autoCollapse]="autoCollapse">
<ifx-accordion-item
caption="Label"
[open]="true"
icon=""
(ifxClose)="handleClose($any($event))"
(ifxOpen)="handleOpen($any($event))"
[ariaLevelNumber]="ariaLevelNumber">Content for Initial Item. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent volutpat, ligula eu aliquam bibendum, orci nisl cursus ipsum, nec egestas odio sapien eget neque. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent volutpat, ligula eu aliquam bibendum, orci nisl cursus ipsum, nec egestas odio sapien eget neque. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent volutpat, ligula eu aliquam bibendum, orci nisl cursus ipsum, nec egestas odio sapien eget neque.</ifx-accordion-item>
<ifx-accordion-item
caption="Label"
[open]="false"
icon=""
[ariaLevelNumber]="ariaLevelNumber">Content for Item #2. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent volutpat, ligula eu aliquam bibendum, orci nisl cursus ipsum, nec egestas odio sapien eget neque. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent volutpat, ligula eu aliquam bibendum, orci nisl cursus ipsum, nec egestas odio sapien eget neque. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent volutpat, ligula eu aliquam bibendum, orci nisl cursus ipsum, nec egestas odio sapien eget neque.</ifx-accordion-item>
<ifx-accordion-item
caption="Label"
[open]="false"
icon=""
[ariaLevelNumber]="ariaLevelNumber">Content for Item #3. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent volutpat, ligula eu aliquam bibendum, orci nisl cursus ipsum, nec egestas odio sapien eget neque. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent volutpat, ligula eu aliquam bibendum, orci nisl cursus ipsum, nec egestas odio sapien eget neque. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent volutpat, ligula eu aliquam bibendum, orci nisl cursus ipsum, nec egestas odio sapien eget neque.</ifx-accordion-item>
</ifx-accordion>