Skip to content

WML Carousel (3D)

The library is for carousels of all different types

The WMLCarouselOneComponent is an Angular component that provides a customizable 3D carousel experience. It allows developers to create interactive and dynamic carousels with customizable slides and controls. The functionality of the component is in the prop class passed to the component so if you have your own 3d carousel you would like to design all you need to worry about is styling.It is designed to be flexible and extendable, enabling developers to tailor the carousel to their specific needs.

Key features include:

  • Customizable Slides: Each slide can be customized with its own content and styling.
  • Customizable Controls: Controls for navigating the carousel can be customized.
  • Responsive Design: The carousel adjusts its layout based on the window size.
  • Dynamic Animation: Smooth transitions and animations when rotating between slides.

Installation

Terminal window
npm install -s --verbose @windmillcode/wml-carousel @windmillcode/wml-components-base

Caveats

  • increasing the height of the container seems to mess with it because of the margining you would mostly likely have to resize the custom component you pass in the classes for sliades
  • after 8 slides there are issues re arraging the slides to not overlap
  • if you are to put elements directly beneath the carousel you may have margin and resize problms

Usage

WMLCarouselOneComponent

Getting Started

Handling Slide Events

Customizing Slides

Customizing Controls

References

WMLCarouselOneProps

Properties

PropertyTypeDescription
idstringUnique identifier for the carousel
slidesArray<WMLCarouselOneSlideProps>Array of slide object
controlsArray<WMLCarouselOneControlProps>Array of control objects
slideContainerWMLUIPropertyStyle and class configuration for the slide container
controllerWMLAngularMotionUIPropertyConfiguration for the carousel controller
currentSlideNumbernumberIndex of the current slide
setStateSubjSubject<WMLCarouselOneProps>Subject to handle state updates
setState(WMLCarouselOneProps)=>voidUpdates the state of the class
slideDistanceFromCenterstringDistance of slides from the center
slideDistanceFromTopstringDistance of slides from the top

Methods

NameSignatureDescription
init(): voidInitializes the carousel properties
listenForSlideContainerResize(): Observable<void>Listens for window resize events to approriately resize the slide container
rotateToSlide(slideNumber: number): voidRotates to the specified slide number
updateSlides(): voidUpdates the slide configurations
getAngle(): numberCalculates the angle between slides
calculateSlideHeight(parentWidth: number, parentHeight: number): numberCalculates the slide height based on container size
calculateSlideWidth(parentWidth: number, parentHeight: number): numberCalculates the slide width based on container size
calculateSlideDistanceFromCenter(parentWidth: number, parentHeight: number): numberCalculates the distance of slides from the center
calculateSlideDistanceFromTop(parentWidth: number, parentHeight: number): numberCalculates the distance of slides from the top
calculatePerspective(parentWidth: number, parentHeight: number): numberCalculates the perspective for the carousel

WMLCarouselOneSlideProps

Properties

PropertyTypeDescription
idstringUnique identifier for the slide
customWMLCustomComponentCustom component for the slide content
viewWMLMotionUIPropertyStyle and motion configuration for the slide
setStateSubjSubject<WMLCarouselOneSlideProps>Subject to handle state updates
setState(WMLCarouselOneSlideProps)=>voidUpdates the state of the class
slideViewContainerRefViewContainerRefReference to the slide’s view container

Methods

NameSignatureDescription
init(): voidInitializes the slide properties and adds the custom component

WMLCarouselOneControlProps

Properties

PropertyTypeDescription
idstringUnique identifier for the control
customWMLCustomComponentCustom component for the control content
viewWMLMotionUIPropertyStyle and motion configuration for the control
setStateSubjSubject<WMLCarouselOneControlProps>Subject to handle state updates
setState(WMLCarouselOneControlProps)=>voidUpdates the state of the class
controlViewContainerRefViewContainerRefReference to the control’s view container

Methods

NameSignatureDescription
init(): voidInitializes the control properties and adds the custom component

WMLCarouselOneSlideExampleProps

Properties

PropertyTypeDescription
idstringUnique identifier for the slide example
valueanyValue to display in the slide example
setStateSubjSubject<WMLCarouselOneSlideExampleProps>Subject to handle state updates
setState(WMLCarouselOneSlideExampleProps)=>voidUpdates the state of the class

WMLCarouselOneControlExampleProps

Properties

PropertyTypeDescription
idstringUnique identifier for the control example
valueanyValue to display in the control example
setStateSubjSubject<WMLCarouselOneControlExampleProps>Subject to handle state updates
setState(WMLCarouselOneControlExampleProps)=>voidUpdates the state of the class

Changelog

v18.2.4200 [9/21/24]

  • first version of library

v18.2.4200 [9/21/24]

  • updated package to conform with @windmillcode/wml-components-base

v18.2.5001 [9/22/24]

  • updated package to reflect the version 18.2.5 of @angular/core package

v18.2.6000 [10/1/24]

  • updated package to reflect the version 18.2.6 of @angular/core package

v18.2.7000 [10/2/24]

  • updated package to reflect the version 18.2.7 of @angular/core package

v18.2.7001 [10/5/2024 10:45:12 AM EST]

  • [PATCH] Changed WMLCarouselOneProps in wml-carousel-one.component.ts. You can now only change the slide when controller.motionState is either “closed” or “open”. This helps stop unwanted changes to slides during transitions.

v18.2.7001 [10/5/24]

  • updated package to conform with @windmillcode/wml-components-base

v18.2.7010 [10/9/24]

  • updated package to conform with @windmillcode/wml-components-base

v18.2.7020 [10/10/24]

  • updated package to conform with @windmillcode/wml-components-base

v18.2.8000 [10/10/24]

  • updated package to reflect the version 18.2.8 of @angular/core package