element-plus
Version:
A Component Library for Vue 3
1 lines • 2.01 kB
Source Map (JSON)
{"version":3,"file":"timeline.mjs","sources":["../../../../../../packages/components/timeline/src/timeline.ts"],"sourcesContent":["import { defineComponent, h, provide } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { TIMELINE_INJECTION_KEY } from './tokens'\nimport { flattedChildren } from '@element-plus/utils'\n\nimport type { VNodeChildAtom } from '@element-plus/utils'\n\nconst Timeline = defineComponent({\n name: 'ElTimeline',\n props: {\n reverse: Boolean,\n },\n setup(props, { slots }) {\n const ns = useNamespace('timeline')\n\n provide(TIMELINE_INJECTION_KEY, slots)\n\n return () => {\n const children = flattedChildren(slots.default?.() ?? []).filter(\n (node) => (node as any)?.type?.name === 'ElTimelineItem'\n ) as VNodeChildAtom[]\n\n return h(\n 'ul',\n { class: [ns.b()] },\n props.reverse ? children.reverse() : children\n )\n }\n },\n})\n\nexport default Timeline\nexport type TimelineInstance = InstanceType<typeof Timeline> & unknown\n"],"names":["_a"],"mappings":";;;;;AAOA,MAAM,WAAW,eAAgB,CAAA;AAAA,EAC/B,IAAM,EAAA,YAAA;AAAA,EACN,KAAO,EAAA;AAAA,IACL,OAAS,EAAA,OAAA;AAAA,GACX;AAAA,EACA,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAS,EAAA;AACtB,IAAM,MAAA,EAAA,GAAK,aAAa,UAAU,CAAA,CAAA;AAElC,IAAA,OAAA,CAAQ,wBAAwB,KAAK,CAAA,CAAA;AAErC,IAAA,OAAO,MAAM;AAjBjB,MAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAkBM,MAAA,MAAM,WAAW,eAAgB,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,CAAM,YAAN,IAAqB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,KAAA,CAAA,KAAA,IAAA,GAAA,EAAA,GAAA,EAAE,CAAE,CAAA,MAAA;AAAA,QACxD,CAAC,IAAM,KAAA;AAnBf,UAAAA,IAAAA,GAAAA,CAAAA;AAmBmB,UAAA,OAAA,CAAA,CAAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAc,IAAd,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,IAAoB,IAAS,MAAA,gBAAA,CAAA;AAAA,SAAA;AAAA,OAC1C,CAAA;AAEA,MAAO,OAAA,CAAA;AAAA,QACL,IAAA;AAAA,QACA,EAAE,KAAO,EAAA,CAAC,EAAG,CAAA,CAAA,EAAG,CAAE,EAAA;AAAA,QAClB,KAAM,CAAA,OAAA,GAAU,QAAS,CAAA,OAAA,EAAY,GAAA,QAAA;AAAA,OACvC,CAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC;;;;"}