{"version":3,"file":"ng-devui-carousel.mjs","sources":["../../devui/carousel/carousel-item.component.ts","../../devui/carousel/carousel.component.ts","../../devui/carousel/carousel.component.html","../../devui/carousel/carousel.module.ts","../../devui/carousel/ng-devui-carousel.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n  selector: 'd-carousel-item',\n  template: `<ng-content></ng-content>`,\n  preserveWhitespaces: false,\n})\nexport class CarouselItemComponent {}\n","import {\r\n  AfterContentInit,\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ContentChildren,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  QueryList,\r\n  Renderer2,\r\n  SimpleChanges,\r\n} from '@angular/core';\r\nimport { CarouselItemComponent } from './carousel-item.component';\r\n\r\nexport type ArrowTrigger = 'hover' | 'never' | 'always';\r\nexport type DotTrigger = 'click' | 'hover';\r\nexport type DotPosition = 'bottom' | 'top';\r\n@Component({\r\n  selector: 'd-carousel',\r\n  exportAs: 'dCarousel',\r\n  templateUrl: './carousel.component.html',\r\n  styleUrls: ['./carousel.component.scss'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  preserveWhitespaces: false,\r\n})\r\nexport class CarouselComponent implements OnInit, AfterContentInit, OnChanges, OnDestroy {\r\n  // 切换箭头的显示方式\r\n  @Input() arrowTrigger: ArrowTrigger = 'hover';\r\n  // 是否自动播放\r\n  @Input() autoplay = false;\r\n  // 默认自动播放间隔时间\r\n  @Input() autoplaySpeed = 3000;\r\n  // 卡片切换动画速度，单位ms\r\n  @Input() transitionSpeed = 500;\r\n  // 卡片高度\r\n  @Input() height = '100%';\r\n  // 是否显示面板指示器\r\n  @Input() showDots = true;\r\n  // 面板指示器位置\r\n  @Input() dotPosition: DotPosition = 'bottom';\r\n  // 指示器触发滚动方式\r\n  @Input() dotTrigger: DotTrigger = 'click';\r\n  // 当前激活面板索引，默认从0开始\r\n  @Input() activeIndex = 0;\r\n  // 卡片切换时，返回当前卡片索引，索引从0开始\r\n  @Output() activeIndexChange = new EventEmitter<number>();\r\n  @ContentChildren(CarouselItemComponent) items: QueryList<CarouselItemComponent>;\r\n\r\n  showArrow = false;\r\n  // 卡片容器\r\n  private itemContainer;\r\n  // 卡片数量\r\n  private itemCount;\r\n  // 自动调度id\r\n  private scheduledId;\r\n  // 记录当前页码\r\n  private currentIndex;\r\n  constructor(private el: ElementRef, private renderer: Renderer2, private cdr: ChangeDetectorRef) {}\r\n\r\n  ngOnInit() {\r\n    this.showArrow = this.arrowTrigger === 'always';\r\n    this.itemContainer = this.el.nativeElement.querySelector('.devui-carousel-item-container');\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    const { arrowTrigger, activeIndex } = changes;\r\n    if (arrowTrigger && !arrowTrigger.isFirstChange()) {\r\n      this.showArrow = this.arrowTrigger === 'always';\r\n    }\r\n    if (activeIndex && activeIndex.currentValue !== this.currentIndex && !activeIndex.isFirstChange()) {\r\n      this.translatePosition(this.activeIndex);\r\n    }\r\n    if (!this.autoplay || !this.autoplaySpeed) {\r\n      this.clearScheduledTransition();\r\n    } else {\r\n      this.autoScheduleTransition();\r\n    }\r\n  }\r\n\r\n  // 切换箭头监听事件，用于处理hover方式\r\n  arrowMouseEvent(type) {\r\n    if (this.arrowTrigger !== 'hover') {\r\n      return;\r\n    }\r\n    if (type === 'enter') {\r\n      this.showArrow = true;\r\n    } else {\r\n      this.showArrow = false;\r\n    }\r\n  }\r\n\r\n  // 向前切换\r\n  prev() {\r\n    this.goTo(this.activeIndex - 1);\r\n  }\r\n\r\n  // 向后切换\r\n  next() {\r\n    this.goTo(this.activeIndex + 1);\r\n  }\r\n\r\n  // 指定跳转位置\r\n  goTo(index) {\r\n    if (index === this.activeIndex) {\r\n      return;\r\n    }\r\n    this.renderer.setStyle(this.itemContainer, 'transition', `left ${this.transitionSpeed}ms ease`);\r\n    if (index < 0 && this.activeIndex === 0) {\r\n      // 第一个卡片向前切换\r\n      this.activeIndex = this.itemCount - 1;\r\n      const targetEl = this.el.nativeElement.querySelectorAll('d-carousel-item')[this.activeIndex];\r\n      this.adjustPosition(targetEl, true);\r\n      this.translatePosition(-1);\r\n      this.adjustTransition(targetEl);\r\n    } else if (index >= this.itemCount && this.activeIndex === this.itemCount - 1) {\r\n      // 最后一个卡片向后切换\r\n      this.activeIndex = 0;\r\n      const targetEl = this.el.nativeElement.querySelectorAll('d-carousel-item')[this.activeIndex];\r\n      this.adjustPosition(targetEl, false);\r\n      this.translatePosition(this.itemCount);\r\n      this.adjustTransition(targetEl);\r\n    } else {\r\n      const idx = index > this.itemCount - 1 ? this.itemCount - 1 : index;\r\n      this.activeIndex = index < 0 ? 0 : idx;\r\n      this.translatePosition(this.activeIndex);\r\n    }\r\n    this.activeIndexChange.emit(this.activeIndex);\r\n    this.currentIndex = this.activeIndex;\r\n    this.cdr.detectChanges();\r\n    this.autoScheduleTransition();\r\n  }\r\n\r\n  // 指示器触发切换函数\r\n  switchStep(index, type) {\r\n    if (type === this.dotTrigger) {\r\n      this.goTo(index);\r\n    }\r\n  }\r\n\r\n  // 调整首尾翻页后的动画\r\n  private adjustTransition(targetEl) {\r\n    setTimeout(() => {\r\n      this.renderer.removeStyle(this.itemContainer, 'transition');\r\n      this.renderer.removeStyle(targetEl, 'transform');\r\n      this.translatePosition(this.activeIndex);\r\n    }, this.transitionSpeed);\r\n  }\r\n\r\n  // 调整首尾翻动时的位置\r\n  private adjustPosition(targetEl, firstToLast: boolean) {\r\n    const wrapperRect = this.el.nativeElement.querySelector('.devui-carousel-item-wrapper').getBoundingClientRect();\r\n    this.renderer.setStyle(targetEl, 'transform', `translateX(${(firstToLast ? -this.itemCount : this.itemCount) * wrapperRect.width}px)`);\r\n  }\r\n\r\n  // 翻页位移\r\n  private translatePosition(size: number) {\r\n    this.renderer.setStyle(this.itemContainer, 'left', `${-size * 100}%`);\r\n  }\r\n\r\n  // 初始化container的宽度\r\n  private initCarouselWidth() {\r\n    this.itemCount = this.items.length;\r\n    this.renderer.setStyle(this.itemContainer, 'width', `${this.itemCount * 100}%`);\r\n  }\r\n\r\n  // 自动轮播调度任务\r\n  private autoScheduleTransition() {\r\n    this.clearScheduledTransition();\r\n    if (this.autoplay && this.autoplaySpeed) {\r\n      this.scheduledId = setTimeout(() => {\r\n        this.next();\r\n      }, this.autoplaySpeed);\r\n    }\r\n  }\r\n\r\n  // 清除自动轮播任务\r\n  private clearScheduledTransition() {\r\n    if (this.scheduledId) {\r\n      clearTimeout(this.scheduledId);\r\n      this.scheduledId = null;\r\n    }\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    this.initCarouselWidth();\r\n    this.translatePosition(this.activeIndex);\r\n    this.renderer.setStyle(this.itemContainer, 'transition', `left ${this.transitionSpeed}ms ease`);\r\n    // contentChildren 变化时，触发重新设置pane\r\n    this.items.changes.subscribe((items) => {\r\n      if (items.length !== this.itemCount) {\r\n        this.activeIndex = 0;\r\n        this.initCarouselWidth();\r\n        this.translatePosition(this.activeIndex);\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    // 组件销毁时清理掉当前的定时任务\r\n    this.clearScheduledTransition();\r\n  }\r\n}\r\n","<div\n  class=\"devui-carousel-container\"\n  [style.height]=\"height\"\n  (mouseenter)=\"arrowMouseEvent('enter')\"\n  (mouseleave)=\"arrowMouseEvent('leave')\"\n>\n  <!-- carousel arrow -->\n  <div class=\"devui-carousel-arrow\" *ngIf=\"arrowTrigger !== 'never' && showArrow\">\n    <button class=\"arrow-left\" (click)=\"prev()\">\n      <svg width=\"18px\" height=\"18px\" viewBox=\"0 0 16 16\" version=\"1.1\">\n        <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n          <polygon\n            fill=\"#293040\"\n            fill-rule=\"nonzero\"\n            points=\"10.7071068 12.2928932 9.29289322 13.7071068 3.58578644 8 9.29289322 2.29289322 10.7071068 3.70710678 6.41421356 8\"\n          ></polygon>\n        </g>\n      </svg>\n    </button>\n    <button class=\"arrow-right\" (click)=\"next()\">\n      <svg width=\"18px\" height=\"18px\" viewBox=\"0 0 16 16\" version=\"1.1\">\n        <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n          <polygon\n            fill=\"#293040\"\n            fill-rule=\"nonzero\"\n            transform=\"translate(8.146447, 8.000000) scale(-1, 1) translate(-8.146447, -8.000000) \"\n            points=\"11.7071068 12.2928932 10.2928932 13.7071068 4.58578644 8 10.2928932 2.29289322 11.7071068 3.70710678 7.41421356 8\"\n          ></polygon>\n        </g>\n      </svg>\n    </button>\n  </div>\n  <!-- carousel items -->\n  <div class=\"devui-carousel-item-wrapper\">\n    <div class=\"devui-carousel-item-container\">\n      <ng-content select=\"d-carousel-item\"></ng-content>\n    </div>\n  </div>\n  <!-- carousel dots -->\n  <ul class=\"devui-carousel-dots {{ dotPosition }}\" *ngIf=\"items?.length > 1 && showDots\">\n    <li\n      class=\"dot-item\"\n      (click)=\"switchStep(index, 'click')\"\n      (mouseenter)=\"switchStep(index, 'hover')\"\n      [ngClass]=\"{ active: activeIndex === index }\"\n      *ngFor=\"let item of items; let index = index\"\n    >\n      <span class=\"dot-item-active-progress\" [ngStyle]=\"{ 'transition-duration': transitionSpeed + 'ms' }\"></span>\n    </li>\n  </ul>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CarouselItemComponent } from './carousel-item.component';\nimport { CarouselComponent } from './carousel.component';\n\n@NgModule({\n  declarations: [CarouselComponent, CarouselItemComponent],\n  imports: [CommonModule],\n  exports: [CarouselComponent, CarouselItemComponent],\n  providers: [],\n})\nexport class CarouselModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}