import { TemplateRef } from '@angular/core'; import { PassThroughOption, PassThrough } from 'primeng/api'; /** * Custom pass-through(pt) options. * @template I Type of instance. * * @see {@link Timeline.pt} * @group Interface */ interface TimelinePassThroughOptions { /** * 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 event's DOM element. */ event?: PassThroughOption; /** * Used to pass attributes to the event opposite's DOM element. */ eventOpposite?: PassThroughOption; /** * Used to pass attributes to the event separator's DOM element. */ eventSeparator?: PassThroughOption; /** * Used to pass attributes to the event marker's DOM element. */ eventMarker?: PassThroughOption; /** * Used to pass attributes to the event connector's DOM element. */ eventConnector?: PassThroughOption; /** * Used to pass attributes to the event content's DOM element. */ eventContent?: PassThroughOption; } /** * Defines valid pass-through options in Timeline. * @see {@link TimelinePassThroughOptions} * * @template I Type of instance. */ type TimelinePassThrough = PassThrough>; /** * Custom item template context. * @template T Type of item. * @group Interface */ interface TimelineItemTemplateContext { /** * Item instance. */ $implicit: T; } /** * Defines valid templates in Timeline. * @group Templates */ interface TimelineTemplates { /** * Custom content template. * @param {TimelineItemTemplateContext} context - item data. */ content(context: TimelineItemTemplateContext): TemplateRef>; /** * Custom opposite item template. * @param {TimelineItemTemplateContext} context - item data. */ opposite(context: TimelineItemTemplateContext): TemplateRef>; /** * Custom marker template. * @param {TimelineItemTemplateContext} context - item data. */ marker(context: TimelineItemTemplateContext): TemplateRef>; } export type { TimelineItemTemplateContext, TimelinePassThrough, TimelinePassThroughOptions, TimelineTemplates };