<script> import BaseComponent from 'primevue/basecomponent'; import { useStyle } from 'primevue/usestyle'; const styles = ` .p-timeline { display: flex; flex-grow: 1; flex-direction: column; } .p-timeline-left .p-timeline-event-opposite { text-align: right; } .p-timeline-left .p-timeline-event-content { text-align: left; } .p-timeline-right .p-timeline-event { flex-direction: row-reverse; } .p-timeline-right .p-timeline-event-opposite { text-align: left; } .p-timeline-right .p-timeline-event-content { text-align: right; } .p-timeline-vertical.p-timeline-alternate .p-timeline-event:nth-child(even) { flex-direction: row-reverse; } .p-timeline-vertical.p-timeline-alternate .p-timeline-event:nth-child(odd) .p-timeline-event-opposite { text-align: right; } .p-timeline-vertical.p-timeline-alternate .p-timeline-event:nth-child(odd) .p-timeline-event-content { text-align: left; } .p-timeline-vertical.p-timeline-alternate .p-timeline-event:nth-child(even) .p-timeline-event-opposite { text-align: left; } .p-timeline-vertical.p-timeline-alternate .p-timeline-event:nth-child(even) .p-timeline-event-content { text-align: right; } .p-timeline-event { display: flex; position: relative; min-height: 70px; } .p-timeline-event:last-child { min-height: 0; } .p-timeline-event-opposite { flex: 1; padding: 0 1rem; } .p-timeline-event-content { flex: 1; padding: 0 1rem; } .p-timeline-event-separator { flex: 0; display: flex; align-items: center; flex-direction: column; } .p-timeline-event-marker { display: flex; align-self: baseline; } .p-timeline-event-connector { flex-grow: 1; } .p-timeline-horizontal { flex-direction: row; } .p-timeline-horizontal .p-timeline-event { flex-direction: column; flex: 1; } .p-timeline-horizontal .p-timeline-event:last-child { flex: 0; } .p-timeline-horizontal .p-timeline-event-separator { flex-direction: row; } .p-timeline-horizontal .p-timeline-event-connector { width: 100%; } .p-timeline-bottom .p-timeline-event { flex-direction: column-reverse; } .p-timeline-horizontal.p-timeline-alternate .p-timeline-event:nth-child(even) { flex-direction: column-reverse; } `; const classes = { root: ({ props }) => ['p-timeline p-component', 'p-timeline-' + props.align, 'p-timeline-' + props.layout], event: 'p-timeline-event', opposite: 'p-timeline-event-opposite', separator: 'p-timeline-event-separator', marker: 'p-timeline-event-marker', connector: 'p-timeline-event-connector', content: 'p-timeline-event-content' }; const { load: loadStyle } = useStyle(styles, { name: 'timeline', manual: true }); export default { name: 'BaseTimeline', extends: BaseComponent, props: { value: null, align: { mode: String, default: 'left' }, layout: { mode: String, default: 'vertical' }, dataKey: null }, css: { classes, loadStyle }, provide() { return { $parentInstance: this }; } }; </script>