import { TemplateRef } from '@angular/core'; import { MotionOptions } from '@primeuix/motion'; import { PassThroughOption, PassThrough } from 'primeng/api'; /** * Custom pass-through(pt) options. * @template I Type of instance. * * @see {@link Galleria.pt} * @group Interface */ interface GalleriaPassThroughOptions { /** * 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 mask's DOM element. */ mask?: PassThroughOption; /** * Used to pass attributes to the close button's DOM element. */ closeButton?: PassThroughOption; /** * Used to pass attributes to the close icon's DOM element. */ closeIcon?: PassThroughOption; /** * Used to pass attributes to the header's DOM element. */ header?: PassThroughOption; /** * Used to pass attributes to the content's DOM element. */ content?: PassThroughOption; /** * Used to pass attributes to the items container's DOM element. */ itemsContainer?: PassThroughOption; /** * Used to pass attributes to the items's DOM element. */ items?: PassThroughOption; /** * Used to pass attributes to the previous button's DOM element. */ prevButton?: PassThroughOption; /** * Used to pass attributes to the previous icon's DOM element. */ prevIcon?: PassThroughOption; /** * Used to pass attributes to the item's DOM element. */ item?: PassThroughOption; /** * Used to pass attributes to the next button's DOM element. */ nextButton?: PassThroughOption; /** * Used to pass attributes to the next icon's DOM element. */ nextIcon?: PassThroughOption; /** * Used to pass attributes to the caption's DOM element. */ caption?: PassThroughOption; /** * Used to pass attributes to the indicator list's DOM element. */ indicatorList?: PassThroughOption; /** * Used to pass attributes to the indicator's DOM element. */ indicator?: PassThroughOption; /** * Used to pass attributes to the indicator button's DOM element. */ indicatorButton?: PassThroughOption; /** * Used to pass attributes to the thumbnails's DOM element. */ thumbnails?: PassThroughOption; /** * Used to pass attributes to the thumbnail content's DOM element. */ thumbnailContent?: PassThroughOption; /** * Used to pass attributes to the thumbnail previous button's DOM element. */ thumbnailPrevButton?: PassThroughOption; /** * Used to pass attributes to the thumbnail previous icon's DOM element. */ thumbnailPrevIcon?: PassThroughOption; /** * Used to pass attributes to the thumbnails viewport's DOM element. */ thumbnailsViewport?: PassThroughOption; /** * Used to pass attributes to the thumbnail items's DOM element. */ thumbnailItems?: PassThroughOption; /** * Used to pass attributes to the thumbnail item's DOM element. */ thumbnailItem?: PassThroughOption; /** * Used to pass attributes to the thumbnail's DOM element. */ thumbnail?: PassThroughOption; /** * Used to pass attributes to the thumbnail next button's DOM element. */ thumbnailNextButton?: PassThroughOption; /** * Used to pass attributes to the thumbnail next icon's DOM element. */ thumbnailNextIcon?: 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 Galleria. * @see {@link GalleriaPassThroughOptions} * * @template I Type of instance. */ type GalleriaPassThrough = PassThrough>; /** * Responsive options of the component. * @group Interface */ interface GalleriaResponsiveOptions { /** * Breakpoint for responsive mode. Exp; @media screen and (max-width: ${breakpoint}) {...} */ breakpoint: string; /** * The number of visible items on breakpoint. */ numVisible: number; } /** * Custom indicator template context. * @group Interface */ interface GalleriaIndicatorTemplateContext { /** * Index of the indicator. */ $implicit: number; } /** * Custom item template context. * @group Interface */ interface GalleriaItemTemplateContext { /** * Item instance. */ $implicit: T; } /** * Custom thumbnail template context. * @group Interface */ interface GalleriaThumbnailTemplateContext { /** * Item instance. */ $implicit: T; } /** * Custom caption template context. * @group Interface */ interface GalleriaCaptionTemplateContext { /** * Item instance. */ $implicit: T; } /** * Defines valid templates in Galleria. * @group Templates */ interface GalleriaTemplates { /** * Custom header template. */ header(): TemplateRef; /** * Custom footer template. */ footer(): TemplateRef; /** * Custom indicator template. * @param {Object} context - indicator context. */ indicator(context: GalleriaIndicatorTemplateContext): TemplateRef; /** * Custom close icon template. */ closeicon(): TemplateRef; /** * Custom item next icon template. */ itemnexticon(): TemplateRef; /** * Custom item previous icon template. */ itempreviousicon(): TemplateRef; /** * Custom previous thumbnail icon template. */ previousthumbnailicon(): TemplateRef; /** * Custom next thumbnail icon template. */ nextthumbnailicon(): TemplateRef; /** * Custom caption template. * @param {Object} context - caption context. */ caption(context: GalleriaCaptionTemplateContext): TemplateRef; /** * Custom thumbnail template. * @param {Object} context - thumbnail context. */ thumbnail(context: GalleriaThumbnailTemplateContext): TemplateRef; /** * Custom item template. * @param {Object} context - item context. */ item(context: GalleriaItemTemplateContext): TemplateRef; } export type { GalleriaCaptionTemplateContext, GalleriaIndicatorTemplateContext, GalleriaItemTemplateContext, GalleriaPassThrough, GalleriaPassThroughOptions, GalleriaResponsiveOptions, GalleriaTemplates, GalleriaThumbnailTemplateContext };