{"version":3,"file":"ng2-custom-carousel.mjs","sources":["../../../projects/ng2-custom-carousel/src/lib/ng2-custom-carousel-item.directive.ts","../../../projects/ng2-custom-carousel/src/lib/ng2-custom-carousel.component.ts","../../../projects/ng2-custom-carousel/src/lib/ng2-custom-carousel.component.html","../../../projects/ng2-custom-carousel/src/lib/ng2-custom-carousel.module.ts","../../../projects/ng2-custom-carousel/src/public-api.ts","../../../projects/ng2-custom-carousel/src/ng2-custom-carousel.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: '[ng2CustomCarouselItem]'\n})\nexport class Ng2CustomCarouselItemDirective {\n\n  constructor(public tpl: TemplateRef<any>) {\n  }\n\n}\n","import {\n  AfterViewInit,\n  Component,\n  ContentChildren,\n  Directive,\n  ElementRef,\n  Input,\n  QueryList,\n  ViewChild,\n  ViewChildren,\n  AfterContentInit,\n  HostListener,\n  OnDestroy\n} from '@angular/core';\n\nimport { Ng2CustomCarouselItemDirective } from './ng2-custom-carousel-item.directive';\nimport { animate, AnimationBuilder, AnimationFactory, AnimationPlayer, style } from '@angular/animations';\n\n@Directive({\n  selector: '.ng2-custom-carousel-item'\n})\nexport class Ng2CustomCarouselItemElement {\n}\n\n@Component({\n  selector: 'ng2-custom-carousel',\n  templateUrl: './ng2-custom-carousel.component.html',\n  styleUrls: ['./ng2-custom-carousel.component.sass']\n})\nexport class Ng2CustomCarouselComponent implements AfterViewInit, AfterContentInit, OnDestroy {\n\n  constructor(private builder: AnimationBuilder) { }\n\n  get currentSlideString(): string {\n    return this.currentSlideShown.toString();\n  }\n\n  set currentSlideString(index: string) {\n    this.goToSlide(+index + (this.loop ? 2 : 0));\n  }\n  @ContentChildren(Ng2CustomCarouselItemDirective) items!: QueryList<Ng2CustomCarouselItemDirective>;\n  @ViewChildren(Ng2CustomCarouselItemElement, { read: ElementRef }) private itemsElements!: QueryList<ElementRef>;\n  @ViewChild('ng2CustomCarousel', { static: true }) private ng2CustomCarousel!: ElementRef;\n  @ViewChild('ng2CustomCarouselCover', { static: true }) private ng2CustomCarouselCover!: ElementRef;\n  @Input() timing = '250ms ease-in';\n  @Input() showControls = true;\n  @Input() showNavigation = 'radio'; // radio, numbers, none\n  @Input() autoScroll = 0; // miliseconds\n  @Input() loop = false;\n  @Input() slidesN = 0;\n  @Input() scrollDirection = 'left'; // left, right\n  @Input() slidesMargin = 0;\n  private player!: AnimationPlayer;\n  private playerRestart!: AnimationPlayer;\n  private playerReend!: AnimationPlayer;\n  private itemWidth!: number;\n  public currentSlide = 0;\n  public currentSlideShown = 0;\n  public ng2CustomCarouselWrapperStyle = {};\n  public navigationIndexes: number[] = [];\n  private intervalTransition!: any;\n  private scrollLimit = 0;\n  @HostListener('window:resize', ['$event'])\n  onResize() {\n    let carouselWidth = 0;\n\n    while ((this.ng2CustomCarouselCover.nativeElement.offsetWidth >= ((carouselWidth + this.itemWidth) - this.slidesMargin)) &&\n      (((carouselWidth + this.itemWidth) - this.slidesMargin) <= ((this.itemWidth * this.slidesN) - this.slidesMargin))) {\n      carouselWidth = carouselWidth + this.itemWidth;\n    }\n\n    if (this.slidesMargin) { carouselWidth = carouselWidth - this.slidesMargin; }\n\n    this.ng2CustomCarouselWrapperStyle = {\n      width: carouselWidth + `px`,\n      margin: 'auto'\n    };\n    // this.ng2carouselControlsStyle = {\n    //   width: carouselWidth + `px`,\n    //   margin: `1em auto`\n    // };\n  }\n\n  goToSlide(indexSlider: number) {\n    let restart = false;\n    let reend = false;\n    const sliderDif = indexSlider - this.currentSlide;\n\n    if (sliderDif === 0) {\n      return;\n    } else if (sliderDif > 0) {\n\n      if ((!this.loop) && ((this.currentSlide + 1) === this.scrollLimit)) { return; }\n\n      this.currentSlide = this.currentSlide + sliderDif;\n      if ((this.currentSlide >= (this.items.length - this.slidesN)) && (this.loop)) {\n        this.currentSlideShown = (this.items.length - this.slidesN) - 2;\n      } else {\n        this.currentSlideShown = this.currentSlide - (this.loop ? 2 : 0);\n      }\n\n      if (this.loop) {\n        if (this.currentSlide === ((this.items.length - this.slidesN))) {\n          restart = true;\n        }\n      }\n\n    } else {\n\n      if ((!this.loop) && (this.currentSlide === 0)) { return; }\n\n      this.currentSlide = this.currentSlide + sliderDif;\n\n      if (this.loop) {\n        if (this.currentSlide < 2) {\n          this.currentSlideShown = this.currentSlide + (this.scrollLimit - 2);\n        } else {\n          this.currentSlideShown = this.currentSlide - 2;\n        }\n      } else { this.currentSlideShown = this.currentSlide; }\n\n      if (this.loop) {\n        if (this.currentSlide === 0) {\n          reend = true;\n        }\n      }\n    }\n\n    const offset = this.currentSlide * this.itemWidth;\n    const myAnimation: AnimationFactory = this.buildAnimation(offset);\n    this.player = myAnimation.create(this.ng2CustomCarousel.nativeElement);\n    this.player.play();\n\n    if (restart) {\n      this.player.onDone(() => {\n        this.currentSlide = 1;\n        this.currentSlideShown = (this.items.length - this.slidesN) - 2;\n        const myAnimationAux: AnimationFactory = this.buildAnimationStart();\n        this.playerRestart = myAnimationAux.create(this.ng2CustomCarousel.nativeElement);\n        this.playerRestart.play();\n      });\n\n    }\n\n    if (reend) {\n      this.player.onDone(() => {\n        this.currentSlide = (this.items.length - this.slidesN) - 1;\n        this.currentSlideShown = this.currentSlide - 2;\n        const myAnimationAux: AnimationFactory = this.buildAnimationEnd();\n        this.playerReend = myAnimationAux.create(this.ng2CustomCarousel.nativeElement);\n        this.playerReend.play();\n      });\n\n    }\n\n    this.stopScrool();\n    this.startScroll();\n\n  }\n\n  private buildAnimation(offset: number) {\n    return this.builder.build([\n      animate(this.timing, style({ left: `-` + offset + `px` }))\n    ]);\n  }\n\n  private buildAnimationStart() {\n    return this.builder.build([\n      animate('1ms ease-in', style({ left: `-` + this.itemWidth + `px` }))\n    ]);\n  }\n\n  private buildAnimationEnd() {\n    return this.builder.build([\n      animate('1ms ease-in', style({ left: `-` + (this.itemWidth * ((this.items.length - this.slidesN) - 1)) + `px` }))\n    ]);\n  }\n\n  public stopScrool() {\n    if (this.autoScroll > 0) {\n      clearInterval(this.intervalTransition);\n    }\n  }\n\n  public startScroll() {\n    if (this.autoScroll > 0) {\n      this.intervalTransition = setInterval(() => {\n        if (this.scrollDirection === 'right') {\n          this.goToSlide(this.currentSlide - 1);\n        } else {\n          this.goToSlide(this.currentSlide + 1);\n        }\n      }, this.autoScroll);\n    }\n  }\n\n  ngAfterContentInit() {\n    if (this.slidesN === 0) { this.slidesN = this.items.length; }\n\n    if (this.items.length <= this.slidesN) {\n      this.slidesN = this.items.length;\n    }\n\n    if (this.items.length < 2) {\n      this.autoScroll = 0;\n      this.showControls = false;\n      this.showNavigation = 'none';\n    }\n    this.startScroll();\n  }\n\n  ngAfterViewInit() {\n\n    if (this.items.length > 0) {\n\n      this.scrollLimit = this.items.length;\n      if (!this.loop) { this.scrollLimit = (this.items.length - this.slidesN) + 1; }\n\n      for (let i = 0; i < this.scrollLimit; i++) { this.navigationIndexes.push(i); }\n\n      this.itemWidth = this.itemsElements.first.nativeElement.getBoundingClientRect().width + (this.slidesMargin ? this.slidesMargin : 0);\n\n      this.onResize();\n\n      if (this.loop) {\n        const lastSlice = this.items.length - 1;\n        const addedSlices = [];\n        for (let i = 0; i < (this.slidesN - 1); i++) {\n          addedSlices.push(this.items.toArray()[i]);\n        }\n        this.items.reset([this.items.toArray()[lastSlice - 1], this.items.toArray()[lastSlice], this.items.toArray(), addedSlices]);\n\n        this.currentSlide = 2;\n        this.ng2CustomCarousel.nativeElement.style.left = '-' + (2 * this.itemWidth) + 'px';\n      }\n\n      this.ng2CustomCarousel.nativeElement.style.width = ((this.itemWidth * this.items.length) - this.slidesMargin) + `px`;\n\n    }\n  }\n\n  ngOnDestroy() {\n    clearTimeout(this.intervalTransition);\n  }\n\n}\n","<div class=\"ng2-custom-carousel-panel\" #ng2CustomCarouselCover>\n    <section class=\"ng2-custom-carousel-wrapper\" [ngStyle]=\"ng2CustomCarouselWrapperStyle\" (mouseenter)=\"stopScrool()\"\n        (mouseleave)=\"startScroll()\">\n        <ul class=\"ng2-custom-carousel-inner\" #ng2CustomCarousel>\n            <li *ngFor=\"let item of items;\" class=\"ng2-custom-carousel-item\"\n                [ngStyle]=\"{'marginRight': slidesMargin + 'px'}\">\n                <ng-container [ngTemplateOutlet]=\"item !== undefined?item.tpl:items.last.tpl\"></ng-container>\n            </li>\n        </ul>\n    </section>\n    <div class=\"ng2-custom-carousel-controls-wrapper\">\n        <div class=\"ng2-custom-carousel-controls\">\n            <button *ngIf=\"showControls\" (click)=\"goToSlide(currentSlide - 1)\">Prev</button>\n            <div *ngIf=\"showNavigation === 'numbers'\" class=\"ng2-custom-carousel-navigation\">\n                <button *ngFor=\"let item of navigationIndexes, let i = index\" (click)=\"goToSlide(i + (loop? 2 : 0))\"\n                    [class.ng2CustomCarouselSlideSelected]=\"i === currentSlideShown\">{{i + 1}}</button>\n            </div>\n            <form #searchPackDiscountForm=\"ngForm\" *ngIf=\"showNavigation === 'radio'\"\n                class=\"ng2-custom-carousel-navigation\">\n                <input *ngFor=\"let item of navigationIndexes, let i = index\" type=\"radio\" name=\"currentSlideShown\"\n                    [(ngModel)]=\"currentSlideString\" value=\"{{i}}\">\n            </form>\n            <button *ngIf=\"showControls\" (click)=\"goToSlide(currentSlide + 1)\">Next</button>\n        </div>\n    </div>\n</div>","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { Ng2CustomCarouselComponent, Ng2CustomCarouselItemElement } from './ng2-custom-carousel.component';\nimport { Ng2CustomCarouselItemDirective } from './ng2-custom-carousel-item.directive';\n\n@NgModule({\n  declarations: [\n    Ng2CustomCarouselComponent,\n    Ng2CustomCarouselItemElement,\n    Ng2CustomCarouselItemDirective\n  ],\n  imports: [\n    CommonModule,\n    FormsModule\n  ],\n  exports: [\n    Ng2CustomCarouselComponent,\n    Ng2CustomCarouselItemDirective\n  ]\n})\nexport class Ng2CustomCarouselModule { }\n","/*\n * Public API Surface of ng2-custom-carousel\n */\n\nexport * from './lib/ng2-custom-carousel.component';\nexport * from './lib/ng2-custom-carousel-item.directive';\nexport * from './lib/ng2-custom-carousel.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}