vuetify
Version:
Vue Material Component Framework
1 lines • 6.64 kB
Source Map (JSON)
{"version":3,"file":"VTimeline.mjs","names":["makeDensityProps","useDensity","makeTagProps","makeThemeProps","provideTheme","provideDefaults","computed","toRef","convertToUnit","genericComponent","useRender","VTimeline","name","props","align","type","String","default","validator","v","includes","direction","justify","side","lineInset","Number","lineThickness","lineColor","truncateLine","setup","slots","themeClasses","densityClasses","VTimelineDivider","VTimelineItem","density","sideClasses","truncateClasses","classes","value"],"sources":["../../../src/components/VTimeline/VTimeline.tsx"],"sourcesContent":["// Styles\nimport './VTimeline.sass'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, 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 VTimeline = genericComponent()({\n name: 'VTimeline',\n\n props: {\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 ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\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 ]}\n style={{\n '--v-timeline-line-thickness': convertToUnit(props.lineThickness),\n }}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VTimeline = InstanceType<typeof VTimeline>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,eAAe,0CAExB;AACA,SAASC,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,aAAa,EAAEC,gBAAgB,EAAEC,SAAS,gCAEnD;AAQA,OAAO,MAAMC,SAAS,GAAGF,gBAAgB,EAAE,CAAC;EAC1CG,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAE;IACLC,KAAK,EAAE;MACLC,IAAI,EAAEC,MAAM;MACZC,OAAO,EAAE,QAAQ;MACjBC,SAAS,EAAGC,CAAM,IAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAACC,QAAQ,CAACD,CAAC;IACvD,CAAwB;IACxBE,SAAS,EAAE;MACTN,IAAI,EAAEC,MAAM;MACZC,OAAO,EAAE,UAAU;MACnBC,SAAS,EAAGC,CAAM,IAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAACC,QAAQ,CAACD,CAAC;IAC9D,CAA4B;IAC5BG,OAAO,EAAE;MACPP,IAAI,EAAEC,MAAM;MACZC,OAAO,EAAE,MAAM;MACfC,SAAS,EAAGC,CAAM,IAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAACC,QAAQ,CAACD,CAAC;IACtD,CAAC;IACDI,IAAI,EAAE;MACJR,IAAI,EAAEC,MAAM;MACZE,SAAS,EAAGC,CAAM,IAAKA,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAACC,QAAQ,CAACD,CAAC;IACjE,CAAuB;IACvBK,SAAS,EAAE;MACTT,IAAI,EAAE,CAACC,MAAM,EAAES,MAAM,CAAC;MACtBR,OAAO,EAAE;IACX,CAAC;IACDS,aAAa,EAAE;MACbX,IAAI,EAAE,CAACC,MAAM,EAAES,MAAM,CAAC;MACtBR,OAAO,EAAE;IACX,CAAC;IACDU,SAAS,EAAEX,MAAM;IACjBY,YAAY,EAAE;MACZb,IAAI,EAAEC,MAAM;MACZE,SAAS,EAAGC,CAAM,IAAK,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAACC,QAAQ,CAACD,CAAC;IAC5D,CAA+B;IAE/B,GAAGnB,gBAAgB,EAAE;IACrB,GAAGE,YAAY,EAAE;IACjB,GAAGC,cAAc;EACnB,CAAC;EAED0B,KAAK,CAAEhB,KAAK,QAAa;IAAA,IAAX;MAAEiB;IAAM,CAAC;IACrB,MAAM;MAAEC;IAAa,CAAC,GAAG3B,YAAY,CAACS,KAAK,CAAC;IAC5C,MAAM;MAAEmB;IAAe,CAAC,GAAG/B,UAAU,CAACY,KAAK,CAAC;IAE5CR,eAAe,CAAC;MACd4B,gBAAgB,EAAE;QAChBN,SAAS,EAAEpB,KAAK,CAACM,KAAK,EAAE,WAAW;MACrC,CAAC;MACDqB,aAAa,EAAE;QACbC,OAAO,EAAE5B,KAAK,CAACM,KAAK,EAAE,SAAS,CAAC;QAChCW,SAAS,EAAEjB,KAAK,CAACM,KAAK,EAAE,WAAW;MACrC;IACF,CAAC,CAAC;IAEF,MAAMuB,WAAW,GAAG9B,QAAQ,CAAC,MAAM;MACjC,MAAMiB,IAAI,GAAGV,KAAK,CAACU,IAAI,GAAGV,KAAK,CAACU,IAAI,GAAGV,KAAK,CAACsB,OAAO,KAAK,SAAS,GAAG,KAAK,GAAG,IAAI;MAEjF,OAAOZ,IAAI,IAAK,oBAAmBA,IAAK,EAAC;IAC3C,CAAC,CAAC;IAEF,MAAMc,eAAe,GAAG/B,QAAQ,CAAC,MAAM;MACrC,MAAMgC,OAAO,GAAG,CACd,iCAAiC,EACjC,+BAA+B,CAChC;MAED,QAAQzB,KAAK,CAACe,YAAY;QACxB,KAAK,MAAM;UAAE,OAAOU,OAAO;QAC3B,KAAK,OAAO;UAAE,OAAOA,OAAO,CAAC,CAAC,CAAC;QAC/B,KAAK,KAAK;UAAE,OAAOA,OAAO,CAAC,CAAC,CAAC;QAC7B;UAAS,OAAO,IAAI;MAAA;IAExB,CAAC,CAAC;IAEF5B,SAAS,CAAC;MAAA,SAEC,CACL,YAAY,EACX,eAAcG,KAAK,CAACQ,SAAU,EAAC,EAC/B,qBAAoBR,KAAK,CAACC,KAAM,EAAC,EACjC,uBAAsBD,KAAK,CAACS,OAAQ,EAAC,EACtCe,eAAe,CAACE,KAAK,EACrB;QACE,wBAAwB,EAAE,CAAC,CAAC1B,KAAK,CAACW;MACpC,CAAC,EACDO,YAAY,CAACQ,KAAK,EAClBP,cAAc,CAACO,KAAK,EACpBH,WAAW,CAACG,KAAK,CAClB;MAAA,SACM;QACL,6BAA6B,EAAE/B,aAAa,CAACK,KAAK,CAACa,aAAa;MAClE;IAAC,GACSI,KAAK,CAElB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}