primeng
Version:
PrimeNG is an open source UI library for Angular featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeB
1 lines • 12.6 kB
Source Map (JSON)
{"version":3,"file":"primeng-timeline.mjs","sources":["../../src/timeline/style/timelinestyle.ts","../../src/timeline/timeline.ts","../../src/timeline/primeng-timeline.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/timeline';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => ['p-timeline p-component', 'p-timeline-' + instance.align, 'p-timeline-' + instance.layout],\n event: 'p-timeline-event',\n eventOpposite: 'p-timeline-event-opposite',\n eventSeparator: 'p-timeline-event-separator',\n eventMarker: 'p-timeline-event-marker',\n eventConnector: 'p-timeline-event-connector',\n eventContent: 'p-timeline-event-content'\n};\n\n@Injectable()\nexport class TimelineStyle extends BaseStyle {\n name = 'timeline';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * Timeline visualizes a series of chained events.\n *\n * [Live Demo](https://primeng.org/timeline)\n *\n * @module timelinestyle\n *\n */\nexport enum TimelineClasses {\n /**\n * Class name of the root element\n */\n root = 'p-timeline',\n /**\n * Class name of the event element\n */\n event = 'p-timeline-event',\n /**\n * Class name of the event opposite element\n */\n eventOpposite = 'p-timeline-event-opposite',\n /**\n * Class name of the event separator element\n */\n eventSeparator = 'p-timeline-event-separator',\n /**\n * Class name of the event marker element\n */\n eventMarker = 'p-timeline-event-marker',\n /**\n * Class name of the event connector element\n */\n eventConnector = 'p-timeline-event-connector',\n /**\n * Class name of the event content element\n */\n eventContent = 'p-timeline-event-content'\n}\n\nexport interface TimelineStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, inject, InjectionToken, Input, NgModule, QueryList, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { BlockableUI, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { TimelinePassThrough } from 'primeng/types/timeline';\nimport { TimelineStyle } from './style/timelinestyle';\n\nconst TIMELINE_INSTANCE = new InjectionToken<Timeline>('TIMELINE_INSTANCE');\n\n/**\n * Timeline visualizes a series of chained events.\n * @group Components\n */\n@Component({\n selector: 'p-timeline',\n standalone: true,\n imports: [CommonModule, SharedModule, Bind],\n template: `\n <div [pBind]=\"ptm('event')\" *ngFor=\"let event of value; let last = last\" [class]=\"cx('event')\">\n <div [pBind]=\"ptm('eventOpposite')\" [class]=\"cx('eventOpposite')\">\n <ng-container *ngTemplateOutlet=\"oppositeTemplate || _oppositeTemplate; context: { $implicit: event }\"></ng-container>\n </div>\n <div [pBind]=\"ptm('eventSeparator')\" [class]=\"cx('eventSeparator')\">\n <ng-container *ngIf=\"markerTemplate || _markerTemplate; else marker\">\n <ng-container *ngTemplateOutlet=\"markerTemplate || _markerTemplate; context: { $implicit: event }\"></ng-container>\n </ng-container>\n <ng-template #marker>\n <div [pBind]=\"ptm('eventMarker')\" [class]=\"cx('eventMarker')\"></div>\n </ng-template>\n <div [pBind]=\"ptm('eventConnector')\" *ngIf=\"!last\" [class]=\"cx('eventConnector')\"></div>\n </div>\n <div [pBind]=\"ptm('eventContent')\" [class]=\"cx('eventContent')\">\n <ng-container *ngTemplateOutlet=\"contentTemplate || _contentTemplate; context: { $implicit: event }\"></ng-container>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [TimelineStyle, { provide: TIMELINE_INSTANCE, useExisting: Timeline }, { provide: PARENT_INSTANCE, useExisting: Timeline }],\n host: {\n '[class]': \"cn(cx('root'), styleClass)\"\n },\n hostDirectives: [Bind]\n})\nexport class Timeline extends BaseComponent<TimelinePassThrough> implements BlockableUI {\n bindDirectiveInstance = inject(Bind, { self: true });\n\n $pcTimeline: Timeline | undefined = inject(TIMELINE_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n /**\n * An array of events to display.\n * @group Props\n */\n @Input() value: any[] | undefined;\n /**\n * Style class of the component.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Position of the timeline bar relative to the content. Valid values are \"left\", \"right\" for vertical layout and \"top\", \"bottom\" for horizontal layout.\n * @group Props\n */\n @Input() align: string = 'left';\n /**\n * Orientation of the timeline.\n * @group Props\n */\n @Input() layout: 'vertical' | 'horizontal' = 'vertical';\n /**\n * Custom content template.\n * @group Templates\n */\n @ContentChild('content', { descendants: false }) contentTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Custom opposite item template.\n * @group Templates\n */\n @ContentChild('opposite', { descendants: false }) oppositeTemplate: Nullable<TemplateRef<any>>;\n\n /**\n * Custom marker template.\n * @group Templates\n */\n @ContentChild('marker', { descendants: false }) markerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChildren(PrimeTemplate) templates: Nullable<QueryList<any>>;\n\n _contentTemplate: TemplateRef<any> | undefined;\n\n _oppositeTemplate: TemplateRef<any> | undefined;\n\n _markerTemplate: TemplateRef<any> | undefined;\n\n _componentStyle = inject(TimelineStyle);\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n onAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'content':\n this._contentTemplate = item.template;\n break;\n\n case 'opposite':\n this._oppositeTemplate = item.template;\n break;\n\n case 'marker':\n this._markerTemplate = item.template;\n break;\n }\n });\n }\n}\n\n@NgModule({\n imports: [Timeline, SharedModule],\n exports: [Timeline, SharedModule]\n})\nexport class TimelineModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}