- v19.0.0
- v18.0.0
- v17.0.0
- v16.0.0
- v15.0.1
- v15.0.0
- v14.0.1
- v14.0.0
- v7.0.4
- v7.0.3
- v7.0.2
- v7.0.1
- v7.0.0
- v6.0.2
- v6.0.1
- v6.0.0
- v5.1.1
- v5.1.0
- v5.0.0
- v4.1.1
- v4.1.0
- v4.0.0
- v3.1.0
- v3.0.1
- v3.0.0
- v2.1.1
- v2.1.0
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.2.1
- v1.2.0
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- v0.1.2
- v0.1.1
- v0.1.0
- v0.0.5
The version v19.0.0
is generated for Angular 19.
The version v18.0.0
is generated for Angular 18.
The version v17.0.0
is generated for Angular 17.
The version v16.0.0
is generated for Angular 16.
The version v15.0.1
fixes the bug #242
.
The version v15.0.0
is generated for Angular 15.
The version v14.0.1
includes fixes for #93
.
The version v14.0.0
is generated for Angular 14.
The version v7.0.4
includes fixes for #93
.
The version v7.0.3
includes fixes for #213
.
The version v7.0.2
includes fixes for #201
.
The version v7.0.1
includes fixes for #187
and adds logic to detect changes in options object to rerender the carousel.
The version v7.0.0
is generated for Angular 13.
The version v6.0.2
includes fixes for #187
and adds logic to detect changes in options object to rerender the carousel.
The version v6.0.1
includes fixes for #170
and adds logic to detect changes in options object to rerender the carousel.
The version v6.0.0
is generated for Angular 12.
The version v5.1.1
includes fixes for #170
and adds logic to detect changes in options object to rerender the carousel.
The version v5.1.0
includes fixes for #151
and #138
. Also it exposes SlideModel data in carouselSlide
through let-anyVariable
.
The version v5.0.0
is generated for Angular 11.
The version v4.1.1
includes fixes for #170
and adds logic to detect changes in options object to rerender the carousel.
The version v4.1.0
includes fixes for #151
and #138
. Also it exposes SlideModel data in carouselSlide
through let-anyVariable
.
The version v4.0.0
is generated for Angular 10.
The version v3.1.0
adds feature autoplayMouseleaveTimeout
to set custom first timeout when the event mouseleave
fires. It solves the issue #88
The version v3.0.1
fixes the issue #86
The version v3.0.0
is generated for Angular 9. It's the same as v2.1.0
but it's compiled by Angular 9.
The version v2.1.1
fixes the issue #86
The version v2.1.0
changes typings :Event
into :any
in order to avoid the error ReferenceError: Event is not defined
.
Also it adds new option skip_validateItems
.
The version v2.0.3
fixes the bug with ChangeDetectionStrategy.OnPush
.
The version v2.0.2
adds the option slideTransition
.
The version v2.0.1
solves the issue #38
.
The version v2.0.0
is generated for Angular 8. It's the same as v1.1.6
but it's compiled by Angular 8.
The version v1.2.1
fixes the issue #86
The version v1.2.0
changes typings :Event
into :any
in order to avoid the error ReferenceError: Event is not defined
.
Also it adds new option skip_validateItems
.
The version v1.1.7
solves the issue #38
.
The version v1.1.5
adds the export of ResponsiveSettings
and BreakpointOptions
from public_api.ts
.
The version v1.1.4
adds the export of OwlOptions
from public_api.ts
.
The version v1.1.3
fixes the problem with the incorrect job of the option loop
. Sometimes this option doesn't work and the carousel rewinds itself to the first or the last slide completely without loop effect. The fix is adding delay to the method to()
of the CarouselService
. This delay equals 30ms. Details are in the commit 21f1da8
The version v1.1.2
fixes the issue #28
The version v1.1.1
fixes the additional problem to issue #23
. This is the problem connected with starting the autoplay the carousel after the user switched back to the page with the carousel from another browser tab and the option autoplay=true
.
The version v1.1.0
adds new event changed
. This event is the same as change
except that the payload has data about new startPosition
and new active slides.
The version v1.0.11
solves issues #19
and #20
.
Dragging starts when the user moves the cursor on more than 3px. Then the event dragging
fires. The payload is
{
dragging: true,
data: SlidesOutputData
}
Dragging of the carousel can finish by changing active slides (the carousel scrolls in this case) or by remaining the carousel in the state which was before dragging. The second variant is possible when the user drags the carousel to the left-hand side on less than 30px.
In any case, the event dragging
fires passing the payload:
{
dragging: false,
data: SlidesOutputData
}
Router
and ActivatedRoute
are injected using the decorator @Optional
. Also, it's added the additional checking for the case of setting null
to this.router
and this.route
.
The RouterModule
is removed from imports of CarouselModule
.
The version v1.0.10
fixes the wrong dependencies in package.json
of v1.0.9
. The version v1.0.9
accidentally got "@angular/common": "^6.0.0-rc.0 || ^6.0.0",
, not the "@angular/common": "^7.0.0-rc.0 || ^7.0.0"
and so on.
The version v1.0.9
extends the list of options, which can be configured in the option responsive
for needed viewports. Earlier, it was possible to configure just the option items
. This list of options consists of:
loop
center
pullDrag
margin
stagePadding
autoHeight
nav
navRewind
slideBy
dots
dotsEach
autoplay
autoplayTimeout
smartSpeed
fluidSpeed
autoplaySpeed
navSpeed
dotsSpeed
dragEndSpeed
responsiveRefreshRate
animateOut
animateIn
mouseDrag
touchDrag
mergeFit
The option autoWidth
requires using data-binding property width
, which is more important to this scenario. It's impossible to manipulate by predefined widths of slides using the option responsive
. If it's needed to, it must be done by watching the media query object or width of the carousel wrapper and changing the value set in the width
. The option responsive
is just helpful for turning off the autoWidth
for certain viewports.
The same refers to the option merge
.
The version v1.0.8
fixes the problem with renewing the autoplay of the carousel while switching to a new browser tab and coming back.
There's one snag. The browser Edge can't renew the autoplay in the case when the user sets the cursor of the mouse over the carousel, switches to another browser tab using a keyboard, and comes back to the tab holding a carousel.
Also, this version unblocks the methods prev()
and next()
in the case of disabling the option nav=false
.
The version v1.0.7
fixes the additional problem to the issue #15
. This problem is that when the user leaves the carousel before it gets translated (scrolled), the autoplay doesn't renew.
The version v1.0.6
fixes the issue #15
.
The version v1.0.5
refactors the object return by windowFactory()
and the object return by documentFactory()
. These two object are for non-browser platform.
The version v1.0.4
refactors the method to(id)
of CarouselComponent
removing the forbiddance to scroll the carousel when nav
or dots
gets disabled.
The version v1.0.3
adds events initialized
and change
, modifies the payload of event dragging
.
The previous dragging
payload was $event = true/false
. Now payload is:
{
dragging: boolean,
data: SlidesOutputData
}
class SlidesOutputData {
startPosition?: number;
slides?: SlideModel[];
};
The version v1.0.2
adds the automatic disabling of logging in production mode and re-rendering of the carousel if the array with slides data changes.
Changes are the following:
-
Added checking for the number of slides. If there are no slides to show, the carousel won't get rendered.
-
Correction of logging in cases when the option
items
is bigger than the number of slides or is equal to it:- if it's bigger, the console will show the notification
The option 'items' in your options is bigger than the number of slides. This option is updated to the current number of slides and the navigation got disabled
; - if it equals the number of slides and the developer enabled navigation buttons or dots, the console will show the message:
Option 'items' in your options is equal to the number of slides. So the navigation got disabled
.
- if it's bigger, the console will show the notification
The version 1.x.x
relies on Angular 7.
The version v1.0.3
adds events initialized
and change
, modifies the payload of event dragging
.
The previous dragging
payload was $event = true/false
. Now payload is:
{
dragging: boolean,
data: SlidesOutputData
}
class SlidesOutputData {
startPosition?: number;
slides?: SlideModel[];
};
The version v0.1.1
has the following changes:
- Added checking for the number of slides. If there are no slides to show, the carousel won't get rendered.
- Correction of logging in cases when the option
items
is bigger than the number of slides or is equal to it:- if it's bigger, the console will show the notification
The option 'items' in your options is bigger than the number of slides. This option is updated to the current number of slides and the navigation got disabled
; - if it equals the number of slides and the developer enabled navigation buttons or dots, the console will show the message:
Option 'items' in your options is equal to the number of slides. So the navigation got disabled
.
- if it's bigger, the console will show the notification
- The automatic disabling of logging in production mode.
- Re-rendering of the carousel if the array with slides data changes.
The version v0.1.0 has the following changes:
-
New event
dragging
. It fires after that the user starts dragging the carousel. The value exposed by this event istrue
. When the dragging of the carousel is finished and the eventtranslated
is fireddragging
fires again but its payload has valuefalse
. This event is needed for the cases when slide should contain the tag<a>
with therouterLink
directive.Example of using this event:
<owl-carousel-o [options]="customOptions" (dragging)="isDragging = $event"> <ng-container *ngFor="let item of carouselData"> <ng-template carouselSlide> <div class="slider"> <a [owlRouterLink]="['/present']" [stopLink]="isDragging">{{item.text}}</a> <a class="outer-link" href="https://www.google.com"> <span>{{item.text}}</span> </a> </div> </ng-template> </ng-container> </owl-carousel-o>
(dragging)="isDragging = $event"
This expression is using thedragging
event and has the propertyisDragging
which should be created in the component hosting the<ngx-owl-carousel-o>
.$event
is the payload of the event. It can betrue
orfalse
. The real example is here. -
The directive
owlRouterLink
. This directive has the same features as the nativerouterLink
directive. One exception isstopLink
. It prevents the navigating to another component. Mainly, it's introduced for making impossible the navigating between components while the carousel is dragging.This directive is included into
CarouselModule
, which must be imported into a needed module before using thengx-owl-carousel-o
. So, to use this directive, you just need to write it inside the needed slide.Example of usage this directive:
<owl-carousel-o [options]="customOptions" (dragging)="isDragging = $event"> <ng-container *ngFor="let item of carouselData"> <ng-template carouselSlide> <div class="slider"> <a [owlRouterLink]="['/present']" [stopLink]="isDragging">{{item.text}}</a> <a class="outer-link" href="https://www.google.com"> <span>{{item.text}}</span> </a> </div> </ng-template> </ng-container> </owl-carousel-o>
<a [owlRouterLink]="['/present']" [stopLink]="isDragging">{{item.text}}</a>
containsowlRouterLink
directive and its @Input propertystopLink
.<a owlRouterLink="'/present'" [stopLink]="isDragging">{{item.text}}</a>
is also possible way of using this directive.In the example above, we see the usage of
dragging
event,owlRouterLink
, andstopLink
. When the dragging of the carousel starts, thedragging
event notifies about it by passing valuetrue
which is assigned to theisDraggable
property. Then this property is passed intoowlRouterLink
throughstopLink
. Directive gets aware of dragging the carousel and prevents any navigations.When the dragging of the carousel is finished,
dragging
passesfalse
.isDraggable
gets updated, which causes the change ofstopLink
. Now its value isfalse
. This enables navigating during the next simple click on<a>
locating in the slide unless new dragging starts.So, to use
<a>
in any slide, it's recommended to:- use
dragging
event and propertyisDragging
(or named differently); - use
owlRouterLink
directive; - use
stopLink
property ofowlRouterLink
. It's needed to pass to this propisDragging
. Using ofstopLink
is required.
The real example is here.
- use
-
Automatic preventing navigation during dragging and pressing the
<a href="someUrl">
at the same time.
The version 0.0.5
solves the issue BrowserModule has already been loaded
The main change is removing BrowserAnimationsModule
from imports array of @NgModule
of CarouselModule
.
So it's needed to import this module in the root module (mostly AppModule
) of your app.