{"version":3,"file":"VTimeline.mjs","names":["makeComponentProps","provideDefaults","makeDensityProps","useDensity","useRtl","makeTagProps","makeThemeProps","provideTheme","computed","toRef","convertToUnit","genericComponent","propsFactory","useRender","makeVTimelineProps","align","type","String","default","validator","v","includes","direction","justify","side","lineInset","Number","lineThickness","lineColor","truncateLine","VTimeline","name","props","setup","_ref","slots","themeClasses","densityClasses","rtlClasses","VTimelineDivider","VTimelineItem","density","sideClasses","truncateClasses","classes","_createVNode","tag","value","class","style"],"sources":["../../../src/components/VTimeline/VTimeline.tsx"],"sourcesContent":["// Styles\nimport './VTimeline.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { useRtl } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\n\nexport type TimelineDirection = 'vertical' | 'horizontal'\nexport type TimelineSide = 'start' | 'end' | undefined\nexport type TimelineAlign = 'center' | 'start'\nexport type TimelineTruncateLine = 'start' | 'end' | 'both' | undefined\n\nexport const makeVTimelineProps = propsFactory({\n  align: {\n    type: String,\n    default: 'center',\n    validator: (v: any) => ['center', 'start'].includes(v),\n  } as Prop<TimelineAlign>,\n  direction: {\n    type: String,\n    default: 'vertical',\n    validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n  } as Prop<TimelineDirection>,\n  justify: {\n    type: String,\n    default: 'auto',\n    validator: (v: any) => ['auto', 'center'].includes(v),\n  },\n  side: {\n    type: String,\n    validator: (v: any) => v == null || ['start', 'end'].includes(v),\n  } as Prop<TimelineSide>,\n  lineInset: {\n    type: [String, Number],\n    default: 0,\n  },\n  lineThickness: {\n    type: [String, Number],\n    default: 2,\n  },\n  lineColor: String,\n  truncateLine: {\n    type: String,\n    validator: (v: any) => ['start', 'end', 'both'].includes(v),\n  } as Prop<TimelineTruncateLine>,\n\n  ...makeComponentProps(),\n  ...makeDensityProps(),\n  ...makeTagProps(),\n  ...makeThemeProps(),\n}, 'VTimeline')\n\nexport const VTimeline = genericComponent()({\n  name: 'VTimeline',\n\n  props: makeVTimelineProps(),\n\n  setup (props, { slots }) {\n    const { themeClasses } = provideTheme(props)\n    const { densityClasses } = useDensity(props)\n    const { rtlClasses } = useRtl()\n\n    provideDefaults({\n      VTimelineDivider: {\n        lineColor: toRef(props, 'lineColor'),\n      },\n      VTimelineItem: {\n        density: toRef(props, 'density'),\n        lineInset: toRef(props, 'lineInset'),\n      },\n    })\n\n    const sideClasses = computed(() => {\n      const side = props.side ? props.side : props.density !== 'default' ? 'end' : null\n\n      return side && `v-timeline--side-${side}`\n    })\n\n    const truncateClasses = computed(() => {\n      const classes = [\n        'v-timeline--truncate-line-start',\n        'v-timeline--truncate-line-end',\n      ]\n\n      switch (props.truncateLine) {\n        case 'both': return classes\n        case 'start': return classes[0]\n        case 'end': return classes[1]\n        default: return null\n      }\n    })\n\n    useRender(() => (\n      <props.tag\n        class={[\n          'v-timeline',\n          `v-timeline--${props.direction}`,\n          `v-timeline--align-${props.align}`,\n          `v-timeline--justify-${props.justify}`,\n          truncateClasses.value,\n          {\n            'v-timeline--inset-line': !!props.lineInset,\n          },\n          themeClasses.value,\n          densityClasses.value,\n          sideClasses.value,\n          rtlClasses.value,\n          props.class,\n        ]}\n        style={[\n          {\n            '--v-timeline-line-thickness': convertToUnit(props.lineThickness),\n          },\n          props.style,\n        ]}\n        v-slots={ slots }\n      />\n    ))\n\n    return {}\n  },\n})\n\nexport type VTimeline = InstanceType<typeof VTimeline>\n"],"mappings":"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"}