1ab7a988ccd8c57b146e71b9026e046152368c8a9d3f990fd7b7d994e0583b87ab2a52e2e244215999189caf6b40c0ea708f2efac0e36bd47398440960c268 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. import type { InjectionKey, Ref, VNode } from 'vue';
  2. import type { CarouselItemProps } from './carousel-item';
  3. export type CarouselItemStates = {
  4. hover: boolean;
  5. translate: number;
  6. scale: number;
  7. active: boolean;
  8. ready: boolean;
  9. inStage: boolean;
  10. animating: boolean;
  11. };
  12. export type CarouselItemContext = {
  13. props: CarouselItemProps;
  14. states: CarouselItemStates;
  15. uid: number;
  16. getVnode: () => VNode;
  17. translateItem: (index: number, activeIndex: number, oldIndex?: number) => void;
  18. };
  19. export type CarouselContext = {
  20. root: Ref<HTMLElement | undefined>;
  21. items: Ref<CarouselItemContext[]>;
  22. isCardType: Ref<boolean>;
  23. isVertical: Ref<boolean>;
  24. loop: boolean;
  25. cardScale: number;
  26. addItem: (item: CarouselItemContext) => void;
  27. removeItem: (item: CarouselItemContext) => void;
  28. setActiveItem: (index: number) => void;
  29. setContainerHeight: (height: number) => void;
  30. };
  31. export declare const carouselContextKey: InjectionKey<CarouselContext>;
  32. export declare const CAROUSEL_ITEM_NAME = "ElCarouselItem";