{"version":3,"file":"thouet-material-carousel.mjs","sources":["../../../projects/carousel/src/lib/carousel-slide/carousel-slide.component.html","../../../projects/carousel/src/lib/carousel-slide/carousel-slide.component.ts","../../../projects/carousel/src/lib/carousel.component.ts","../../../projects/carousel/src/lib/carousel.component.html","../../../projects/carousel/src/lib/carousel.module.ts","../../../projects/carousel/src/public_api.ts","../../../projects/carousel/src/thouet-material-carousel.ts"],"sourcesContent":["<ng-template>\r\n  <div class=\"carousel-slide\" [style.background-image]=\"image\">\r\n    <div class=\"carousel-slide-content\"><ng-content></ng-content></div>\r\n    <div\r\n      *ngIf=\"!hideOverlay\"\r\n      class=\"carousel-slide-overlay\"\r\n      [style.background-color]=\"overlayColor\"\r\n    ></div>\r\n  </div>\r\n</ng-template>\r\n","import { ListKeyManagerOption } from '@angular/cdk/a11y';\r\nimport {\r\n    Component,\r\n    Input,\r\n    OnInit,\r\n    TemplateRef,\r\n    ViewChild\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\r\n\r\nimport { MatCarouselSlide } from './carousel-slide';\r\n\r\n@Component({\r\n    selector: 'mat-carousel-slide',\r\n    templateUrl: './carousel-slide.component.html',\r\n    styleUrls: ['./carousel-slide.component.scss']\r\n})\r\nexport class MatCarouselSlideComponent\r\nimplements ListKeyManagerOption, MatCarouselSlide, OnInit {\r\n  @Input() public image: SafeStyle;\r\n  @Input() public overlayColor = '#00000040';\r\n  @Input() public hideOverlay = false;\r\n  @Input() public disabled = false; // implements ListKeyManagerOption\r\n\r\n  @ViewChild(TemplateRef) public templateRef: TemplateRef<any>;\r\n\r\n  constructor(public sanitizer: DomSanitizer) {\r\n  }\r\n\r\n  public ngOnInit(): void {\r\n      if (this.image) {\r\n          this.image = this.sanitizer.bypassSecurityTrustStyle(`url('${this.image}')`);\r\n      }\r\n  }\r\n}\r\n","/* eslint-disable */\r\n\r\nimport { animate, style, AnimationBuilder } from \"@angular/animations\";\r\nimport { ListKeyManager } from \"@angular/cdk/a11y\";\r\nimport { isPlatformBrowser } from \"@angular/common\";\r\nimport {\r\n    AfterContentInit,\r\n    AfterViewInit,\r\n    Component,\r\n    ContentChildren,\r\n    ElementRef,\r\n    EventEmitter,\r\n    HostListener,\r\n    Inject,\r\n    Input,\r\n    OnDestroy,\r\n    Output,\r\n    PLATFORM_ID,\r\n    QueryList,\r\n    Renderer2,\r\n    ViewChild\r\n} from \"@angular/core\";\r\nimport { ThemePalette } from \"@angular/material/core\";\r\nimport { interval, BehaviorSubject, Observable, Subject } from \"rxjs\";\r\nimport { filter, takeUntil } from \"rxjs/operators\";\r\n\r\nimport { MatCarousel, Orientation, SvgIconOverrides } from \"./carousel\";\r\nimport { MatCarouselSlideComponent } from \"./carousel-slide/carousel-slide.component\";\r\n\r\nenum Direction {\r\n  Left,\r\n  Right,\r\n  Index\r\n}\r\n\r\n@Component({\r\n    selector: \"mat-carousel\",\r\n    templateUrl: \"./carousel.component.html\",\r\n    styleUrls: [\"./carousel.component.scss\"]\r\n})\r\nexport class MatCarouselComponent\r\nimplements AfterContentInit, AfterViewInit, MatCarousel, OnDestroy {\r\n  @Input() public timings = \"250ms ease-in\";\r\n  @Input() public svgIconOverrides: SvgIconOverrides;\r\n\r\n  @Input()\r\n  public set autoplay(value: boolean) {\r\n      this.autoplay$.next(value);\r\n      this._autoplay = value;\r\n  }\r\n\r\n  @Input()\r\n  public set interval(value: number) {\r\n      this.interval$.next(value);\r\n  }\r\n\r\n  public get loop(): boolean {\r\n      return this._loop;\r\n  }\r\n  @Input()\r\n  public set loop(value: boolean) {\r\n      this.loop$.next(value);\r\n      this._loop = value;\r\n  }\r\n\r\n  @Input() public hideArrows = true;\r\n  @Input() public hideIndicators = true;\r\n  @Input() public pauseOnHover = true;\r\n  @Input() public color: ThemePalette = \"accent\";\r\n\r\n  public get maxWidth(): string {\r\n      return this._maxWidth;\r\n  }\r\n  @Input()\r\n  public set maxWidth(value: string) {\r\n      this._maxWidth = value;\r\n      this.maxWidth$.next();\r\n  }\r\n\r\n  @Input() public maintainAspectRatio = true;\r\n  @Input() public proportion = 25;\r\n  @Input() public slideHeight = \"100%\";\r\n\r\n  @Input()\r\n  public set slides(value: number) {\r\n      this.slides$.next(value);\r\n  }\r\n\r\n  @Input() public useKeyboard = false;\r\n  @Input() public useMouseWheel = false;\r\n\r\n  public get orientation(): Orientation {\r\n      return this._orientation;\r\n  }\r\n  @Input()\r\n  public set orientation(value: Orientation) {\r\n      this.orientation$.next(value);\r\n      this._orientation = value;\r\n  }\r\n\r\n  @Output()\r\n  public animationStart: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n  @Output()\r\n  public change: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n  public get currentIndex(): number {\r\n      if (this.listKeyManager) {\r\n          return this.listKeyManager.activeItemIndex;\r\n      }\r\n\r\n      return 0;\r\n  }\r\n  public get currentSlide(): MatCarouselSlideComponent {\r\n      if (this.listKeyManager) {\r\n          return this.listKeyManager.activeItem;\r\n      }\r\n\r\n      return null;\r\n  }\r\n\r\n  @ContentChildren(MatCarouselSlideComponent) public slidesList: QueryList<\r\n    MatCarouselSlideComponent\r\n  >;\r\n  @ViewChild(\"carouselContainer\") private carouselContainer: ElementRef<\r\n    HTMLDivElement\r\n  >;\r\n  @ViewChild(\"carouselList\") private carouselList: ElementRef<HTMLElement>;\r\n  public listKeyManager: ListKeyManager<MatCarouselSlideComponent>;\r\n\r\n  private _autoplay = true;\r\n  private autoplay$ = new Subject<boolean>();\r\n\r\n  private interval$ = new BehaviorSubject<number>(5000);\r\n  private slides$ = new BehaviorSubject<number>(null);\r\n\r\n  private _maxWidth = \"auto\";\r\n  private maxWidth$ = new Subject<never>();\r\n\r\n  private _loop = true;\r\n  private loop$ = new Subject<boolean>();\r\n\r\n  private _orientation: Orientation = \"ltr\";\r\n  private orientation$ = new Subject<Orientation>();\r\n\r\n  private timer$: Observable<number>;\r\n  private timerStop$ = new Subject<never>();\r\n\r\n  private destroy$ = new Subject<never>();\r\n  private playing = false;\r\n\r\n  constructor(\r\n    private animationBuilder: AnimationBuilder,\r\n    private renderer: Renderer2,\r\n    @Inject(PLATFORM_ID) private platformId\r\n  ) {}\r\n\r\n  public ngAfterContentInit(): void {\r\n      this.listKeyManager = new ListKeyManager(this.slidesList)\r\n          .withVerticalOrientation(false)\r\n          .withHorizontalOrientation(this._orientation)\r\n          .withWrap(this._loop);\r\n\r\n      this.listKeyManager.updateActiveItem(0);\r\n      this.listKeyManager.change\r\n          .pipe(takeUntil(this.destroy$))\r\n          .subscribe(() => this.playAnimation());\r\n  }\r\n\r\n  public ngAfterViewInit(): void {\r\n      this.autoplay$.pipe(takeUntil(this.destroy$)).subscribe(value => {\r\n          this.stopTimer();\r\n          this.startTimer(value);\r\n      });\r\n\r\n      this.interval$.pipe(takeUntil(this.destroy$)).subscribe(value => {\r\n          this.stopTimer();\r\n          this.resetTimer(value);\r\n          this.startTimer(this._autoplay);\r\n      });\r\n\r\n      this.maxWidth$\r\n          .pipe(takeUntil(this.destroy$))\r\n          .subscribe(() => this.slideTo(0));\r\n\r\n      this.loop$\r\n          .pipe(takeUntil(this.destroy$))\r\n          .subscribe(value => this.listKeyManager.withWrap(value));\r\n\r\n      this.orientation$\r\n          .pipe(takeUntil(this.destroy$))\r\n          .subscribe(value => this.listKeyManager.withHorizontalOrientation(value));\r\n\r\n      this.slides$\r\n          .pipe(\r\n              takeUntil(this.destroy$),\r\n              filter(value => value && value < this.slidesList.length)\r\n          )\r\n          .subscribe(value => this.resetSlides(value));\r\n  }\r\n\r\n  public ngOnDestroy(): void {\r\n      this.destroy$.next();\r\n      this.destroy$.complete();\r\n  }\r\n\r\n  public next(): void {\r\n      this.goto(Direction.Right);\r\n  }\r\n\r\n  public previous(): void {\r\n      this.goto(Direction.Left);\r\n  }\r\n\r\n  public slideTo(index: number): void {\r\n      this.goto(Direction.Index, index);\r\n  }\r\n\r\n  @HostListener(\"keyup\", [\"$event\"])\r\n  public onKeyUp(event: KeyboardEvent): void {\r\n      if (this.useKeyboard && !this.playing) {\r\n          this.listKeyManager.onKeydown(event);\r\n      }\r\n  }\r\n\r\n  @HostListener(\"mouseenter\")\r\n  public onMouseEnter(): void {\r\n      if (this.pauseOnHover) {\r\n          this.stopTimer();\r\n      }\r\n  }\r\n\r\n  @HostListener(\"mouseleave\")\r\n  public onMouseLeave(): void {\r\n      if (this.pauseOnHover) {\r\n          this.startTimer(this._autoplay);\r\n      }\r\n  }\r\n\r\n  @HostListener(\"mousewheel\", [\"$event\"])\r\n  public onMouseWheel(event: any): void {\r\n      if (this.useMouseWheel) {\r\n          event.preventDefault(); // prevent window to scroll\r\n          const Δ = Math.sign(event.deltaY);\r\n\r\n          if (Δ > 0) {\r\n              this.next();\r\n          } else if (Δ < 0) {\r\n              this.previous();\r\n          }\r\n      }\r\n  }\r\n\r\n  @HostListener(\"window:resize\", [\"$event\"])\r\n  public onResize(event: Event): void {\r\n      // Reset carousel when window is resized\r\n      // in order to avoid major glitches.\r\n      this.slideTo(0);\r\n  }\r\n\r\n  public onPan(event: any, slideElem: HTMLElement): void {\r\n      // https://github.com/angular/angular/issues/10541#issuecomment-346539242\r\n      // if y velocity is greater, it\"s a panup/pandown, so ignore.\r\n      if (Math.abs(event.velocityY) > Math.abs(event.velocityX)) {\r\n          return;\r\n      }\r\n      let Δx = event.deltaX;\r\n      if (this.isOutOfBounds()) {\r\n          Δx *= 0.2; // decelerate movement;\r\n      }\r\n\r\n      this.renderer.setStyle(slideElem, \"cursor\", \"grabbing\");\r\n      this.renderer.setStyle(\r\n          this.carouselList.nativeElement,\r\n          \"transform\",\r\n          this.getTranslation(this.getOffset() + Δx)\r\n      );\r\n  }\r\n\r\n  public onPanEnd(event: any, slideElem: HTMLElement): void {\r\n      this.renderer.removeStyle(slideElem, \"cursor\");\r\n\r\n      if (\r\n          !this.isOutOfBounds() &&\r\n      Math.abs(event.deltaX) > this.getWidth() * 0.25\r\n      ) {\r\n          if (event.deltaX <= 0) {\r\n              this.next();\r\n              return;\r\n          }\r\n          this.previous();\r\n          return;\r\n      }\r\n      this.playAnimation(); // slide back, don\"t change current index\r\n  }\r\n\r\n  private isOutOfBounds(): boolean {\r\n      const sign = this.orientation === \"rtl\" ? -1 : 1;\r\n      const left =\r\n      sign *\r\n      (this.carouselList.nativeElement.getBoundingClientRect().left -\r\n        this.carouselList.nativeElement.offsetParent.getBoundingClientRect()\r\n            .left);\r\n      const lastIndex = this.slidesList.length - 1;\r\n      const width = -this.getWidth() * lastIndex;\r\n\r\n      return (\r\n          (this.listKeyManager.activeItemIndex === 0 && left >= 0) ||\r\n      (this.listKeyManager.activeItemIndex === lastIndex && left <= width)\r\n      );\r\n  }\r\n\r\n  private isVisible(): boolean {\r\n      if (!isPlatformBrowser(this.platformId)) {\r\n          return false;\r\n      }\r\n\r\n      const elem = this.carouselContainer.nativeElement;\r\n      const docViewTop = window.pageYOffset;\r\n      const docViewBottom = docViewTop + window.innerHeight;\r\n      const elemOffset = elem.getBoundingClientRect();\r\n      const elemTop = docViewTop + elemOffset.top;\r\n      const elemBottom = elemTop + elemOffset.height;\r\n\r\n      return elemBottom <= docViewBottom || elemTop >= docViewTop;\r\n  }\r\n\r\n  private getOffset(): number {\r\n      const offset = this.listKeyManager.activeItemIndex * this.getWidth();\r\n      const sign = this.orientation === \"rtl\" ? 1 : -1;\r\n      return sign * offset;\r\n  }\r\n\r\n  private getTranslation(offset: number): string {\r\n      return `translateX(${offset}px)`;\r\n  }\r\n\r\n  private getWidth(): number {\r\n      return this.carouselContainer.nativeElement.clientWidth;\r\n  }\r\n\r\n  private goto(direction: Direction, index?: number): void {\r\n      if (!this.playing) {\r\n          const rtl = this.orientation === \"rtl\";\r\n\r\n          switch (direction) {\r\n          case Direction.Left:\r\n              return rtl\r\n                  ? this.listKeyManager.setNextItemActive()\r\n                  : this.listKeyManager.setPreviousItemActive();\r\n          case Direction.Right:\r\n              return rtl\r\n                  ? this.listKeyManager.setPreviousItemActive()\r\n                  : this.listKeyManager.setNextItemActive();\r\n          case Direction.Index:\r\n              return this.listKeyManager.setActiveItem(index);\r\n          }\r\n      }\r\n  }\r\n\r\n  private playAnimation(): void {\r\n      const translation = this.getTranslation(this.getOffset());\r\n      const factory = this.animationBuilder.build(\r\n          animate(this.timings, style({ transform: translation }))\r\n      );\r\n      const animation = factory.create(this.carouselList.nativeElement);\r\n\r\n      animation.onStart(() => {\r\n          this.playing = true;\r\n          this.animationStart.emit(this.currentIndex);\r\n      });\r\n      animation.onDone(() => {\r\n          this.change.emit(this.currentIndex);\r\n          this.playing = false;\r\n          this.renderer.setStyle(\r\n              this.carouselList.nativeElement,\r\n              \"transform\",\r\n              translation\r\n          );\r\n          animation.destroy();\r\n      });\r\n      animation.play();\r\n  }\r\n\r\n  private resetSlides(slides: number): void {\r\n      this.slidesList.reset(this.slidesList.toArray().slice(0, slides));\r\n  }\r\n\r\n  private resetTimer(value: number): void {\r\n      this.timer$ = interval(value);\r\n  }\r\n\r\n  private startTimer(autoplay: boolean): void {\r\n      if (!autoplay) {\r\n          return;\r\n      }\r\n\r\n      this.timer$\r\n          .pipe(\r\n              takeUntil(this.timerStop$),\r\n              takeUntil(this.destroy$),\r\n              filter(() => this.isVisible())\r\n          )\r\n          .subscribe(() => {\r\n              this.listKeyManager.withWrap(true).setNextItemActive();\r\n              this.listKeyManager.withWrap(this.loop);\r\n          });\r\n  }\r\n\r\n  private stopTimer(): void {\r\n      this.timerStop$.next();\r\n  }\r\n}\r\n","<div\r\n  #carouselContainer\r\n  class=\"carousel\"\r\n  tabindex=\"0\"\r\n  [style.max-width]=\"maxWidth\"\r\n  [style.height]=\"!maintainAspectRatio ? '100%' : 'auto'\"\r\n>\r\n  <ul\r\n    #carouselList\r\n    class=\"carousel-list\"\r\n    role=\"listbox\"\r\n    [style.flex-direction]=\"orientation === 'rtl' ? 'row-reverse' : 'row'\"\r\n    [style.height]=\"!maintainAspectRatio ? '100%' : 'auto'\"\r\n  >\r\n    <li\r\n      #carouselSlide\r\n      *ngFor=\"let slide of slidesList\"\r\n      class=\"carousel-slide\"\r\n      role=\"option\"\r\n      [style.padding-bottom]=\"maintainAspectRatio && proportion ? proportion + '%': '0px'\"\r\n      [style.height]=\"!maintainAspectRatio && slideHeight ? slideHeight : '0px'\"\r\n      (panleft)=\"onPan($event, carouselSlide)\"\r\n      (panright)=\"onPan($event, carouselSlide)\"\r\n      (panend)=\"onPanEnd($event, carouselSlide)\"\r\n      (pancancel)=\"onPanEnd($event, carouselSlide)\"\r\n    >\r\n      <ng-container [ngTemplateOutlet]=\"slide.templateRef\"></ng-container>\r\n    </li>\r\n  </ul>\r\n\r\n  <button\r\n    *ngIf=\"!hideArrows\"\r\n    mat-icon-button\r\n    type=\"button\"\r\n    tabindex=\"-1\"\r\n    [color]=\"color\"\r\n    [disabled]=\"!loop && currentIndex === 0\"\r\n    (click)=\"previous()\"\r\n  >\r\n    <mat-icon\r\n      *ngIf=\"svgIconOverrides?.arrowBack; else: defaultArrowBack\"\r\n      [svgIcon]=\"svgIconOverrides.arrowBack\"\r\n    ></mat-icon>\r\n    <ng-template #defaultArrowBack>\r\n      <mat-icon>arrow_back</mat-icon>\r\n    </ng-template>\r\n  </button>\r\n  <button\r\n    *ngIf=\"!hideArrows\"\r\n    mat-icon-button\r\n    type=\"button\"\r\n    tabindex=\"-1\"\r\n    [color]=\"color\"\r\n    [disabled]=\"!loop && currentIndex === slidesList.length - 1\"\r\n    (click)=\"next()\"\r\n  >\r\n    <mat-icon\r\n      *ngIf=\"svgIconOverrides?.arrowForward; else: defaultArrowForward\"\r\n      [svgIcon]=\"svgIconOverrides.arrowForward\"\r\n    ></mat-icon>\r\n    <ng-template #defaultArrowForward>\r\n      <mat-icon>arrow_forward</mat-icon>\r\n    </ng-template>\r\n  </button>\r\n\r\n  <div\r\n    *ngIf=\"!hideIndicators\"\r\n    class=\"carousel-indicators\"\r\n    tabindex=\"-1\"\r\n    [style.flex-direction]=\"orientation === 'rtl' ? 'row-reverse' : 'row'\"\r\n  >\r\n    <button\r\n      *ngFor=\"let slide of slidesList; let i = index\"\r\n      type=\"button\"\r\n      tabindex=\"-1\"\r\n      mat-mini-fab\r\n      [color]=\"color\"\r\n      [disabled]=\"i === currentIndex\"\r\n      (click)=\"slideTo(i)\"\r\n      (focus)=\"carouselContainer.focus()\"\r\n    ></button>\r\n  </div>\r\n</div>\r\n","import {Injectable, NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {MatButtonModule} from \"@angular/material/button\";\r\nimport {MatIconModule} from \"@angular/material/icon\";\r\n\r\nimport {MatCarouselComponent} from \"./carousel.component\";\r\nimport {MatCarouselSlideComponent} from \"./carousel-slide/carousel-slide.component\";\r\nimport {HAMMER_GESTURE_CONFIG, HammerGestureConfig, HammerModule} from \"@angular/platform-browser\";\r\n\r\n// https://github.com/angular/angular/issues/10541#issuecomment-300761387\r\n@Injectable()\r\nexport class MatCarouselHammerConfig extends HammerGestureConfig {\r\n  overrides = {\r\n      pan: { direction: 6 },\r\n      pinch: { enable: false },\r\n      rotate: { enable: false }\r\n  };\r\n}\r\n\r\n@NgModule({\r\n    declarations: [MatCarouselComponent, MatCarouselSlideComponent],\r\n    imports: [CommonModule, MatButtonModule, MatIconModule, HammerModule],\r\n    exports: [MatCarouselComponent, MatCarouselSlideComponent],\r\n    providers: [\r\n        {\r\n            provide: HAMMER_GESTURE_CONFIG,\r\n            useClass: MatCarouselHammerConfig\r\n        }\r\n    ]\r\n})\r\nexport class MatCarouselModule {\r\n}","/*\r\n * Public API Surface of mat-carousel\r\n */\r\n\r\nexport * from \"./lib/carousel.component\";\r\nexport * from \"./lib/carousel.module\";\r\nexport * from \"./lib/carousel\";\r\n\r\nexport * from \"./lib/carousel-slide/carousel-slide.component\";\r\nexport * from \"./lib/carousel-slide/carousel-slide\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}