1 line
6.1 KiB
Plaintext
1 line
6.1 KiB
Plaintext
{"version":3,"file":"VTimelineItem.mjs","names":["VTimelineDivider","makeComponentProps","makeDimensionProps","useDimension","makeElevationProps","IconValue","makeRoundedProps","makeSizeProps","makeTagProps","ref","shallowRef","watch","convertToUnit","genericComponent","propsFactory","useRender","makeVTimelineItemProps","density","String","dotColor","fillDot","Boolean","hideDot","hideOpposite","type","default","undefined","icon","iconColor","lineInset","Number","VTimelineItem","name","props","setup","_ref","slots","dimensionStyles","dotSize","dotRef","newValue","value","$el","querySelector","getBoundingClientRect","width","flush","_createVNode","class","style","size","elevation","rounded","opposite"],"sources":["../../../src/components/VTimeline/VTimelineItem.tsx"],"sourcesContent":["// Components\nimport { VTimelineDivider } from './VTimelineDivider'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { ref, shallowRef, watch } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport type VTimelineItemSlots = {\n default: never\n icon: never\n opposite: never\n}\n\nexport const makeVTimelineItemProps = propsFactory({\n density: String as PropType<'default' | 'compact'>,\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n hideOpposite: {\n type: Boolean,\n default: undefined,\n },\n icon: IconValue,\n iconColor: String,\n lineInset: [Number, String],\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n}, 'VTimelineItem')\n\nexport const VTimelineItem = genericComponent<VTimelineItemSlots>()({\n name: 'VTimelineItem',\n\n props: makeVTimelineItemProps(),\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n\n const dotSize = shallowRef(0)\n const dotRef = ref<VTimelineDivider>()\n watch(dotRef, newValue => {\n if (!newValue) return\n dotSize.value = newValue.$el.querySelector('.v-timeline-divider__dot')?.getBoundingClientRect().width ?? 0\n }, {\n flush: 'post',\n })\n\n useRender(() => (\n <div\n class={[\n 'v-timeline-item',\n {\n 'v-timeline-item--fill-dot': props.fillDot,\n },\n props.class,\n ]}\n style={[\n {\n '--v-timeline-dot-size': convertToUnit(dotSize.value),\n '--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0),\n },\n props.style,\n ]}\n >\n <div\n class=\"v-timeline-item__body\"\n style={ dimensionStyles.value }\n >\n { slots.default?.() }\n </div>\n\n <VTimelineDivider\n ref={ dotRef }\n hideDot={ props.hideDot }\n icon={ props.icon }\n iconColor={ props.iconColor }\n size={ props.size }\n elevation={ props.elevation }\n dotColor={ props.dotColor }\n fillDot={ props.fillDot }\n rounded={ props.rounded }\n v-slots={{ default: slots.icon }}\n />\n\n { props.density !== 'compact' && (\n <div class=\"v-timeline-item__opposite\">\n { !props.hideOpposite && slots.opposite?.() }\n </div>\n )}\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VTimelineItem = InstanceType<typeof VTimelineItem>\n"],"mappings":"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"} |