import { TemplateRef } from '@angular/core'; import { MotionOptions } from '@primeuix/motion'; import { PassThroughOption, PassThrough } from 'primeng/api'; import { ButtonPassThrough } from 'primeng/types/button'; /** * Custom pass-through(pt) options. * @template I Type of instance. * * @see {@link ScrollTop.pt} * @group Interface */ interface ScrollTopPassThroughOptions { /** * Used to pass attributes to the host's DOM element. */ host?: PassThroughOption; /** * Used to pass attributes to the root's DOM element. */ root?: PassThroughOption; /** * Used to pass attributes to the Button component. * @see {@link ButtonPassThrough} */ pcButton?: ButtonPassThrough; /** * Used to pass options to the motion component/directive. */ motion?: MotionOptions; } /** * Defines valid pass-through options in ScrollTop. * @see {@link ScrollTopPassThroughOptions} * * @template I Type of instance. */ type ScrollTopPassThrough = PassThrough>; /** * Custom icon template context. * @group Interface */ interface ScrollTopIconTemplateContext { /** * Style class of the icon. */ styleClass: string; } /** * Defines valid templates in ScrollTop. * @group Templates */ interface ScrollTopTemplates { /** * Custom icon template. * @param {ScrollTopIconTemplateContext} context - icon context. */ icon(context: ScrollTopIconTemplateContext): TemplateRef; } export type { ScrollTopIconTemplateContext, ScrollTopPassThrough, ScrollTopPassThroughOptions, ScrollTopTemplates };