import { PassThroughOption, PassThrough } from 'primeng/api'; import { ButtonPassThrough } from 'primeng/types/button'; import { TemplateRef } from '@angular/core'; import { MotionOptions } from '@primeuix/motion'; /** * Custom pass-through(pt) options. * @template I Type of instance. * * @see {@link Drawer.pt} * @group Interface */ interface DrawerPassThroughOptions { /** * 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 header's DOM element. */ header?: PassThroughOption; /** * Used to pass attributes to the title's DOM element. */ title?: PassThroughOption; /** * Used to pass attributes to the close Button component. * @see {@link ButtonPassThrough} */ pcCloseButton?: ButtonPassThrough; /** * Used to pass attributes to the content's DOM element. */ content?: PassThroughOption; /** * Used to pass attributes to the footer's DOM element. */ footer?: PassThroughOption; /** * Used to pass options to the motion component/directive. */ motion?: MotionOptions; } /** * Defines valid pass-through options in Drawer. * @see {@link DrawerPassThroughOptions} * * @template I Type of instance. */ type DrawerPassThrough = PassThrough>; /** * Defines valid templates in Drawer. * @group Templates */ interface DrawerTemplates { /** * Custom template of header. */ header(): TemplateRef; /** * Custom template of content. */ content(): TemplateRef; /** * Custom template of footer. */ footer(): TemplateRef; /** * Custom template of close icon. */ closeicon(): TemplateRef; /** * Headless template to replace the entire drawer content. */ headless(): TemplateRef; } export type { DrawerPassThrough, DrawerPassThroughOptions, DrawerTemplates };