import { TemplateRef } from '@angular/core'; import { PassThroughOption, PassThrough } from 'primeng/api'; /** * Custom pass-through(pt) options. * @template I Type of instance. * * @see {@link ToggleButtonProps.pt} * @group Interface */ interface ToggleButtonPassThroughOptions { /** * Used to pass attributes to the root's DOM element. */ root?: PassThroughOption; /** * Used to pass attributes to the content's DOM element. */ content?: PassThroughOption; /** * Used to pass attributes to the icon's DOM element. */ icon?: PassThroughOption; /** * Used to pass attributes to the label's DOM element. */ label?: PassThroughOption; } /** * Custom passthrough attributes for each DOM elements * @group Interface */ type ToggleButtonPassThrough = PassThrough>; /** * Custom change event. * @see {@link ToggleButton.onChange} * @group Events */ interface ToggleButtonChangeEvent { /** * Browser event. */ originalEvent: Event; /** * Checked state as a boolean. */ checked: boolean; } /** * Custom icon template context. * @group Interface */ interface ToggleButtonIconTemplateContext { /** * Checked state. */ $implicit: boolean; } /** * Custom content template context. * @group Interface */ interface ToggleButtonContentTemplateContext { /** * Checked state. */ $implicit: boolean; } /** * Defines valid templates in ToggleButton. * @group Templates */ interface ToggleButtonTemplates { /** * Custom icon template. * @param {ToggleButtonIconTemplateContext} context - icon context. */ icon(context: ToggleButtonIconTemplateContext): TemplateRef; /** * Custom content template. * @param {ToggleButtonContentTemplateContext} context - content context. */ content(context: ToggleButtonContentTemplateContext): TemplateRef; } export type { ToggleButtonChangeEvent, ToggleButtonContentTemplateContext, ToggleButtonIconTemplateContext, ToggleButtonPassThrough, ToggleButtonPassThroughOptions, ToggleButtonTemplates };