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
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
Property | Type | Description |
---|---|---|
id | string | Unique identifier for the carousel |
slides | Array<WMLCarouselOneSlideProps> | Array of slide object |
controls | Array<WMLCarouselOneControlProps> | Array of control objects |
slideContainer | WMLUIProperty | Style and class configuration for the slide container |
controller | WMLAngularMotionUIProperty | Configuration for the carousel controller |
currentSlideNumber | number | Index of the current slide |
setStateSubj | Subject<WMLCarouselOneProps> | Subject to handle state updates |
setState | (WMLCarouselOneProps)=>void | Updates the state of the class |
slideDistanceFromCenter | string | Distance of slides from the center |
slideDistanceFromTop | string | Distance of slides from the top |
Methods
Name | Signature | Description |
---|---|---|
init | (): void | Initializes the carousel properties |
listenForSlideContainerResize | (): Observable<void> | Listens for window resize events to approriately resize the slide container |
rotateToSlide | (slideNumber: number): void | Rotates to the specified slide number |
updateSlides | (): void | Updates the slide configurations |
getAngle | (): number | Calculates the angle between slides |
calculateSlideHeight | (parentWidth: number, parentHeight: number): number | Calculates the slide height based on container size |
calculateSlideWidth | (parentWidth: number, parentHeight: number): number | Calculates the slide width based on container size |
calculateSlideDistanceFromCenter | (parentWidth: number, parentHeight: number): number | Calculates the distance of slides from the center |
calculateSlideDistanceFromTop | (parentWidth: number, parentHeight: number): number | Calculates the distance of slides from the top |
calculatePerspective | (parentWidth: number, parentHeight: number): number | Calculates the perspective for the carousel |
WMLCarouselOneSlideProps
Properties
Property | Type | Description |
---|---|---|
id | string | Unique identifier for the slide |
custom | WMLCustomComponent | Custom component for the slide content |
view | WMLMotionUIProperty | Style and motion configuration for the slide |
setStateSubj | Subject<WMLCarouselOneSlideProps> | Subject to handle state updates |
setState | (WMLCarouselOneSlideProps)=>void | Updates the state of the class |
slideViewContainerRef | ViewContainerRef | Reference to the slide’s view container |
Methods
Name | Signature | Description |
---|---|---|
init | (): void | Initializes the slide properties and adds the custom component |
WMLCarouselOneControlProps
Properties
Property | Type | Description |
---|---|---|
id | string | Unique identifier for the control |
custom | WMLCustomComponent | Custom component for the control content |
view | WMLMotionUIProperty | Style and motion configuration for the control |
setStateSubj | Subject<WMLCarouselOneControlProps> | Subject to handle state updates |
setState | (WMLCarouselOneControlProps)=>void | Updates the state of the class |
controlViewContainerRef | ViewContainerRef | Reference to the control’s view container |
Methods
Name | Signature | Description |
---|---|---|
init | (): void | Initializes the control properties and adds the custom component |
WMLCarouselOneSlideExampleProps
Properties
Property | Type | Description |
---|---|---|
id | string | Unique identifier for the slide example |
value | any | Value to display in the slide example |
setStateSubj | Subject<WMLCarouselOneSlideExampleProps> | Subject to handle state updates |
setState | (WMLCarouselOneSlideExampleProps)=>void | Updates the state of the class |
WMLCarouselOneControlExampleProps
Properties
Property | Type | Description |
---|---|---|
id | string | Unique identifier for the control example |
value | any | Value to display in the control example |
setStateSubj | Subject<WMLCarouselOneControlExampleProps> | Subject to handle state updates |
setState | (WMLCarouselOneControlExampleProps)=>void | Updates 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
v18.2.8000 [10/11/24]
- updated package to reflect the version 18.2.8 of @angular/core package
v18.2.8001 [10/11/24]
- updated package to conform with @windmillcode/wml-components-base
v18.2.9000 [10/23/24]
- updated package to conform with @windmillcode/wml-components-base
v18.2.10000 [10/31/24]
- updated package to conform with @windmillcode/wml-components-base
v18.2.11000 [11/7/24]
- updated package to conform with @windmillcode/wml-components-base
v18.2.12000 [11/15/24]
- updated package to conform with @windmillcode/wml-components-base
v18.2.12001 [11/17/24]
- updated package to conform with @windmillcode/wml-components-base
v19.0.0 [11/19/24]
- updated package to conform with @windmillcode/wml-components-base
v19.0.3 [11/20/24]
- updated package to conform with @windmillcode/wml-components-base
v19.0.4 [11/26/24]
- updated package to conform with @windmillcode/wml-components-base
v19.0.1000 [11/26/24]
- updated package to conform with @windmillcode/wml-components-base
v19.0.2000 [12/4/24]
- updated package to reflect the version 19.0.2 of @angular/core package
v19.0.3000 [12/6/24]
- updated package to reflect the version 19.0.3 of @angular/core package
v19.0.4000 [12/12/24]
- updated package to reflect the version 19.0.4 of @angular/core package
v19.0.5000 [12/19/24]
- updated package to reflect the version 19.0.5 of @angular/core package
v19.0.5002 [12/29/24]
- updated package to conform with @windmillcode/wml-components-base
v19.0.5100 [12/29/24]
- updated package to conform with @windmillcode/wml-components-base
v19.0.6000 [1/12/25]
- updated package to reflect the version 19.0.6 of @angular/core package
v19.0.7000 [1/16/25]
- updated package to reflect the version 19.0.7 of @angular/core package
v19.1.0 [1/17/25]
- updated package to reflect the version 19.1.0 of @angular/core package
v19.1.1000 [1/17/25]
- updated package to reflect the version 19.1.1 of @angular/core package
v19.1.2000 [1/23/25]
- updated package to reflect the version 19.1.2 of @angular/core package
v19.1.3000 [1/23/25]
- updated package to reflect the version 19.1.3 of @angular/core package
v19.1.3100 [1/23/25]
- update package to support the react native ecosystem
v19.1.3111 [1/27/25]
- updated package to conform with @windmillcode/wml-components-base
v19.1.3112 [1/28/25]
- updated package to conform with @windmillcode/wml-components-base
v19.1.4000 [1/31/25]
- updated package to reflect the version 19.1.4 of @angular/core package
v19.1.5000 [2/8/25]
- updated package to reflect the version 19.1.5 of @angular/core package
v19.1.6000 [2/13/25]
- updated package to reflect the version 19.1.6 of @angular/core package
v19.1.7000 [2/21/25]
- updated package to reflect the version 19.1.7 of @angular/core package
v19.1.8000 [3/4/25]
- updated package to reflect the version 19.1.8 of @angular/core package
v19.2.0 [3/4/25]
- updated package to reflect the version 19.2.0 of @angular/core package
v19.2.1000 [3/9/25]
- updated package to reflect the version 19.2.1 of @angular/core package
v19.2.2000 [3/15/25]
- updated package to reflect the version 19.2.2 of @angular/core package
v19.2.3000 [3/21/25]
- updated package to reflect the version 19.2.3 of @angular/core package
v19.2.4000 [3/27/25]
- updated package to reflect the version 19.2.4 of @angular/core package
v19.2.5000 [4/3/25]
- updated package to reflect the version 19.2.5 of @angular/core package
v19.2.5001 [4/6/25]
- updated package to conform with @windmillcode/wml-components-base
v19.2.5100 [4/10/25]
- updated package to conform with @windmillcode/wml-components-base
v19.2.6000 [4/10/25]
- updated package to conform with @windmillcode/wml-components-base