UNPKG

ngx-carousel-ease

Version:

ngx-carousel-ease is a versatile Angular library providing a feature-rich, simple, and performant carousel component. This library supports infinite and responsive mode, mouse and touch event. Attention has been put to accessibility, performance, and frie

37 lines 6.49 kB
export class Validation { constructor(carousel, slideWidth, slideMaxWidth, gap, slideToScroll) { this.carousel = carousel; this.slideWidth = slideWidth; this.slideMaxWidth = slideMaxWidth; this.gap = gap; this.slideToScroll = slideToScroll; this.carouselSlides = this.carousel.querySelectorAll('.carousel-slide'); this.slideMaxWidthShouldBeGreaterThanSlideWidth(); this.slideWidthAndGapShouldBeGreaterThanZero(); this.requiredClassShouldBeAdded(); this.slideToScrollNotGreaterThanTotalSlides(); } slideMaxWidthShouldBeGreaterThanSlideWidth() { if (this.slideMaxWidth < this.slideWidth) { throw new Error(`slideMaxWidth (value: ${this.slideMaxWidth}) is lower than slideWidth (value: ${this.slideWidth}). Please increase the max width or decrease the slide width.`); } } slideWidthAndGapShouldBeGreaterThanZero() { const slideWidthPlusGap = this.slideWidth + this.gap; if (slideWidthPlusGap <= 0) { throw new Error('Unable to construct Carousel. SlideWidth and gap lower or equal than zero. Please add a positive value for the slideWidth and gap.'); } } requiredClassShouldBeAdded() { if (this.carouselSlides === undefined || this.carouselSlides.length === 0) { throw new Error('No elements with "carousel-slide" as class have been found. Please add this class to each of your slides.'); } } slideToScrollNotGreaterThanTotalSlides() { if (this.carouselSlides && this.slideToScroll > this.carouselSlides.length) { throw new Error(`slideToScroll value (${this.slideToScroll}) is greater than the total amount of slide (${this.carouselSlides.length}). This can cause invisible cards in infinite mode. Please lower the slideToScroll value.`); } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nhcm91c2VsL3NyYy9saWIvdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUdyQixZQUNtQixRQUF3QixFQUN4QixVQUFrQixFQUNsQixhQUFxQixFQUNyQixHQUFXLEVBQ1gsYUFBcUI7UUFKckIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQUNyQixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ1gsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFFdEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLDBDQUEwQyxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLHVDQUF1QyxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLHNDQUFzQyxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELDBDQUEwQztRQUN4QyxJQUFJLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQ2IseUJBQXlCLElBQUksQ0FBQyxhQUFhLHNDQUFzQyxJQUFJLENBQUMsVUFBVSwrREFBK0QsQ0FDaEssQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsdUNBQXVDO1FBQ3JDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBRXJELElBQUksaUJBQWlCLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FDYixvSUFBb0ksQ0FDckksQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUUsTUFBTSxJQUFJLEtBQUssQ0FDYiwyR0FBMkcsQ0FDNUcsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsc0NBQXNDO1FBQ3BDLElBQ0UsSUFBSSxDQUFDLGNBQWM7WUFDbkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFDL0MsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQ2Isd0JBQXdCLElBQUksQ0FBQyxhQUFhLGdEQUFnRCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sMkZBQTJGLENBQ2hOLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFZhbGlkYXRpb24ge1xyXG4gIGNhcm91c2VsU2xpZGVzITogTm9kZUxpc3RPZjxIVE1MRGl2RWxlbWVudD4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXJvdXNlbDogSFRNTERpdkVsZW1lbnQsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNsaWRlV2lkdGg6IG51bWJlcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2xpZGVNYXhXaWR0aDogbnVtYmVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBnYXA6IG51bWJlcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2xpZGVUb1Njcm9sbDogbnVtYmVyXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNhcm91c2VsU2xpZGVzID0gdGhpcy5jYXJvdXNlbC5xdWVyeVNlbGVjdG9yQWxsKCcuY2Fyb3VzZWwtc2xpZGUnKTtcclxuICAgIHRoaXMuc2xpZGVNYXhXaWR0aFNob3VsZEJlR3JlYXRlclRoYW5TbGlkZVdpZHRoKCk7XHJcbiAgICB0aGlzLnNsaWRlV2lkdGhBbmRHYXBTaG91bGRCZUdyZWF0ZXJUaGFuWmVybygpO1xyXG4gICAgdGhpcy5yZXF1aXJlZENsYXNzU2hvdWxkQmVBZGRlZCgpO1xyXG4gICAgdGhpcy5zbGlkZVRvU2Nyb2xsTm90R3JlYXRlclRoYW5Ub3RhbFNsaWRlcygpO1xyXG4gIH1cclxuXHJcbiAgc2xpZGVNYXhXaWR0aFNob3VsZEJlR3JlYXRlclRoYW5TbGlkZVdpZHRoKCkge1xyXG4gICAgaWYgKHRoaXMuc2xpZGVNYXhXaWR0aCA8IHRoaXMuc2xpZGVXaWR0aCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgYHNsaWRlTWF4V2lkdGggKHZhbHVlOiAke3RoaXMuc2xpZGVNYXhXaWR0aH0pIGlzIGxvd2VyIHRoYW4gc2xpZGVXaWR0aCAodmFsdWU6ICR7dGhpcy5zbGlkZVdpZHRofSkuIFBsZWFzZSBpbmNyZWFzZSB0aGUgbWF4IHdpZHRoIG9yIGRlY3JlYXNlIHRoZSBzbGlkZSB3aWR0aC5gXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzbGlkZVdpZHRoQW5kR2FwU2hvdWxkQmVHcmVhdGVyVGhhblplcm8oKSB7XHJcbiAgICBjb25zdCBzbGlkZVdpZHRoUGx1c0dhcCA9IHRoaXMuc2xpZGVXaWR0aCArIHRoaXMuZ2FwO1xyXG5cclxuICAgIGlmIChzbGlkZVdpZHRoUGx1c0dhcCA8PSAwKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAnVW5hYmxlIHRvIGNvbnN0cnVjdCBDYXJvdXNlbC4gU2xpZGVXaWR0aCBhbmQgZ2FwIGxvd2VyIG9yIGVxdWFsIHRoYW4gemVyby4gUGxlYXNlIGFkZCBhIHBvc2l0aXZlIHZhbHVlIGZvciB0aGUgc2xpZGVXaWR0aCBhbmQgZ2FwLidcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlcXVpcmVkQ2xhc3NTaG91bGRCZUFkZGVkKCkge1xyXG4gICAgaWYgKHRoaXMuY2Fyb3VzZWxTbGlkZXMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmNhcm91c2VsU2xpZGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ05vIGVsZW1lbnRzIHdpdGggXCJjYXJvdXNlbC1zbGlkZVwiIGFzIGNsYXNzIGhhdmUgYmVlbiBmb3VuZC4gUGxlYXNlIGFkZCB0aGlzIGNsYXNzIHRvIGVhY2ggb2YgeW91ciBzbGlkZXMuJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2xpZGVUb1Njcm9sbE5vdEdyZWF0ZXJUaGFuVG90YWxTbGlkZXMoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY2Fyb3VzZWxTbGlkZXMgJiZcclxuICAgICAgdGhpcy5zbGlkZVRvU2Nyb2xsID4gdGhpcy5jYXJvdXNlbFNsaWRlcy5sZW5ndGhcclxuICAgICkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgYHNsaWRlVG9TY3JvbGwgdmFsdWUgKCR7dGhpcy5zbGlkZVRvU2Nyb2xsfSkgaXMgZ3JlYXRlciB0aGFuIHRoZSB0b3RhbCBhbW91bnQgb2Ygc2xpZGUgKCR7dGhpcy5jYXJvdXNlbFNsaWRlcy5sZW5ndGh9KS4gVGhpcyBjYW4gY2F1c2UgaW52aXNpYmxlIGNhcmRzIGluIGluZmluaXRlIG1vZGUuIFBsZWFzZSBsb3dlciB0aGUgc2xpZGVUb1Njcm9sbCB2YWx1ZS5gXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==