Files
element-plus/packages/components/carousel/src/constants.ts
w2xi a37b793fae fix(components): [tabs] update tabs order correctly when reordering (#21064)
* fix(components): [tabs] update tabs order correctly when reordering

* fix

* perf: reorder only if child components have been moved

* chore: tweak the test

---------

Co-authored-by: dopamine <coderzyou@gmail.com>
2025-07-04 19:00:39 +08:00

39 lines
1021 B
TypeScript

import type { InjectionKey, Ref, VNode } from 'vue'
import type { CarouselItemProps } from './carousel-item'
export type CarouselItemStates = {
hover: boolean
translate: number
scale: number
active: boolean
ready: boolean
inStage: boolean
animating: boolean
}
export type CarouselItemContext = {
props: CarouselItemProps
states: CarouselItemStates
uid: number
getVnode: () => VNode
translateItem: (index: number, activeIndex: number, oldIndex?: number) => void
}
export type CarouselContext = {
root: Ref<HTMLElement | undefined>
items: Ref<CarouselItemContext[]>
isCardType: Ref<boolean>
isVertical: Ref<boolean>
loop: boolean
cardScale: number
addItem: (item: CarouselItemContext) => void
removeItem: (item: CarouselItemContext) => void
setActiveItem: (index: number) => void
setContainerHeight: (height: number) => void
}
export const carouselContextKey: InjectionKey<CarouselContext> =
Symbol('carouselContextKey')
export const CAROUSEL_ITEM_NAME = 'ElCarouselItem'