{"version":3,"file":"alyle-ui-carousel.mjs","sources":["../../../lib/carousel/carousel.ts","../../../lib/carousel/carousel.html","../../../lib/carousel/carousel.module.ts","../../../lib/carousel/alyle-ui-carousel.ts"],"sourcesContent":["import {\n  Component,\n  Directive,\n  QueryList,\n  ContentChildren,\n  Input,\n  AfterViewInit,\n  OnDestroy,\n  ElementRef,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  forwardRef,\n  OnInit,\n  Renderer2,\n  ViewChild,\n  inject\n} from '@angular/core';\nimport {\n  LyTheme2,\n  ThemeVariables,\n  DirAlias,\n  ThemeRef,\n  st2c,\n  keyframesUniqueId,\n  StyleCollection,\n  LyClasses,\n  StyleTemplate,\n  shadowBuilder,\n  StyleRenderer,\n  Style,\n  SelectorsFn } from '@alyle/ui';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { Platform } from '@angular/cdk/platform';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { color } from '@alyle/ui/color';\n\n/** Default interval in ms */\nconst DEFAULT_INTERVAL = 7000;\nconst DEFAULT_AUTOPLAY = true;\nconst DEFAULT_HAS_PROGRESS_BAR = false;\nconst STYLE_PRIORITY = -2;\n\nexport interface LyCarouselTheme {\n  /** Styles for Carousel Component */\n  root?: StyleCollection<((classes: LyClasses<typeof STYLES>) => StyleTemplate)>\n  | ((classes: LyClasses<typeof STYLES>) => StyleTemplate);\n}\n\nexport interface LyCarouselVariables {\n  carousel?: LyCarouselTheme;\n}\n\nexport const STYLES = (theme: ThemeVariables & LyCarouselVariables, ref: ThemeRef) => {\n  const dir = theme.getDirection(DirAlias.before);\n  const right = dir === 'right' ? 180 : 0;\n  const left = dir === 'left' ? 180 : 0;\n  const carousel = ref.selectorsOf(STYLES);\n  const barAnimation = keyframesUniqueId.next();\n  const { after, before } = theme;\n  const arrow = `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='48' viewBox='0 -960 960 960' width='48'%3E%3Cpath style='fill:currentColor' d='M315.5-117 285-146.5 620.5-481 285-815.5l30.5-29.5 364 364-364 364Z'/%3E%3C/svg%3E\")`;\n  return {\n    $priority: STYLE_PRIORITY,\n    $global: (_className: string) => `@keyframes ${barAnimation}{0%{transform:translateX(0%);}100%{transform:translateX(${dir === 'left' ? '-' : ''}100%);}}`,\n    root: ( ) => (_className: string) => `${_className}{display:block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;position:relative;}${_className} ${carousel.actions}.right{${after}:0;transform:rotate(${right}deg);}${_className} ${carousel.actions}.left{${before}:0;transform:rotate(${left}deg);}${_className} svg{display:block;fill:currentColor;}${st2c((\n          (theme.carousel\n            && theme.carousel.root\n            && (theme.carousel.root instanceof StyleCollection\n              ? theme.carousel.root.setTransformer(fn => fn(carousel))\n              : theme.carousel.root(carousel))\n          )), `${_className}`)}`,\n    actions: (_className: string) => `${_className}{position:absolute;top:0;bottom:0;height:100%;width:16%;cursor:pointer;color:${color(0xffffff, 0.87)};will-change:transform;}`,\n    actionIcon: (_className: string) => `${_className}::after{position:absolute;content:'';top:0;left:0;right:0;bottom:0;margin:auto;background-color:currentColor;mask-image:${arrow};-webkit-mask-image:${arrow};mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:50%;-webkit-mask-position:50%;mask-size:100% 100%;-webkit-mask-size:100% 100%;height:100%;width:48px;}`,\n    slideContainer: (_className: string) => `${_className}{overflow:hidden;display:block;width:100%;height:100%;position:relative;touch-action:pan-y !important;}`,\n    slide: (_className: string) => `${_className}{display:flex;width:100%;height:100%;will-change:transform;}${_className} > ly-carousel-item{width:100%;flex-shrink:0;position:relative;background-size:cover;background-position:center;background-repeat:no-repeat;}`,\n    slideContent: (_className: string) => `${_className}{display:flex;}`,\n    slideAnim: (_className: string) => `${_className} > div{transition:transform 750ms cubic-bezier(.1,1,0.5,1);}`,\n    slideNoEvent: (_className: string) => `${_className}>div{touch-action:initial !important;-webkit-user-drag:initial !important;}`,\n    indicators: () => (_className: string) => `${_className}{padding:0;position:absolute;bottom:0;left:0;right:0;margin:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;height:48px;}`,\n    indicator: () => (_className: string) => `${_className}{display:inline-block;border-radius:50%;cursor:pointer;position:relative;padding:.5em;outline:none;}`,\n    indicatorIcon: () => (_className: string) => `${_className}{transition:300ms cubic-bezier(0.65,0.05,0.36,1);width:1em;height:1em;transform:scale(.5);border-radius:50%;will-change:transform;display:block;opacity:.65;box-shadow:${shadowBuilder(8, color(0xffffff, 0.87))};background:${color(0xffffff, 0.87)};}`,\n    indicatorActive: () => (_className: string) => `${_className} ${carousel.indicatorIcon}{transform:scale(1);opacity:1;}`,\n    barContainer: (_className: string) => `${_className}{background:${theme.background.primary.default.alpha(.25)};height:4px;position:absolute;bottom:0;width:100%;}`,\n    bar: (_className: string) => `${_className}{height:4px;position:absolute;bottom:0;width:100%;animation-name:${barAnimation};animation-timing-function:linear;animation-iteration-count:infinite;background:${theme.text.primary};}`\n  };\n};\n\n/** @docs-private */\nexport enum CarouselMode {\n  /** full */\n  default,\n  inline\n}\n\n@Component({\n  selector: 'ly-carousel',\n  templateUrl: './carousel.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  preserveWhitespaces: false,\n  host: {\n    '(mouseenter)': '_onMouseEnter()',\n    '(mouseleave)': '_onMouseLeave()'\n  },\n  providers: [\n    StyleRenderer\n  ],\n  standalone: false\n})\nexport class LyCarousel implements OnInit, AfterViewInit, OnDestroy {\n  /** @docs-private */\n  readonly classes = this.sRenderer.renderSheet(STYLES, true);\n  private _intervalFn: number | null = null;\n  @ViewChild('slideContainer') slideContainer: ElementRef;\n  @ViewChild('_slide') _slide: ElementRef;\n  @ViewChild('_progressBar') _progressBar: ElementRef<HTMLDivElement>;\n  @ContentChildren(forwardRef(() => LyCarouselItem)) lyItems: QueryList<LyCarouselItem>;\n  /** @docs-private */\n  @Input() mode: CarouselMode = CarouselMode.default;\n  @Input() selectedIndex = 0;\n  @Style<boolean>(\n    (_val, _media) => (_theme: ThemeVariables, selectors: SelectorsFn) => {\n      const $$ = selectors(STYLES);\n      return (_className: string) => `${_className} ${$$.actionIcon},${_className} ${$$.indicatorIcon}{filter:invert(0.9);}`\n    },\n  ) darkIconActived = false;\n  @Input()\n  set darkIcon(val: BooleanInput) {\n    const newVal = coerceBooleanProperty(val);\n    if (newVal !== this._darkIcon) {\n      this._darkIcon = newVal;\n    }\n  }\n  get darkIcon(): boolean { // TODO: Change name from darkIcon to darkIcon\n    return this._darkIcon;\n  }\n  private _darkIcon;\n  _selectedElement: HTMLElement;\n  private _touch: boolean;\n  private _autoplay: boolean;\n  private _hasProgressBar: boolean;\n  private _interval = DEFAULT_INTERVAL;\n  private _slideClass: string;\n\n  /** Emits whenever the component is destroyed. */\n  private readonly _destroy = new Subject<void>();\n\n  /** @internal */\n  get _isIntervalFn() {\n    return !!this._intervalFn;\n  }\n\n  /**\n   * It will pause the slide change when the mouse cursor passes\n   * through the carousel.\n   */\n  @Input()\n  get pauseOnHover() {\n    return this._pauseOnHover;\n  }\n  set pauseOnHover(val: BooleanInput) {\n    const newVal = coerceBooleanProperty(val);\n    this._pauseOnHover = newVal;\n  }\n  private _pauseOnHover: boolean;\n\n  @Input()\n  set touch(val: BooleanInput) {\n    const newVal = coerceBooleanProperty(val);\n    this._touch = newVal;\n    if (newVal) {\n      this._renderer.removeClass(this._el.nativeElement, this.classes.slideNoEvent);\n    } else {\n      this._renderer.addClass(this._el.nativeElement, this.classes.slideNoEvent);\n    }\n  }\n  get touch() {\n    return this._touch;\n  }\n\n  @Input()\n  set autoplay(val: BooleanInput) {\n    const newVal = coerceBooleanProperty(val);\n    this._autoplay = newVal;\n    if (newVal) {\n      this._resetInterval();\n    } else {\n      this.stop();\n    }\n  }\n  get autoplay() {\n    return this._autoplay;\n  }\n\n  @Input()\n  set hasProgressBar(val: BooleanInput) {\n    const newVal = coerceBooleanProperty(val);\n    this._hasProgressBar = newVal;\n  }\n  get hasProgressBar() {\n    return this._hasProgressBar;\n  }\n\n  @Input()\n  set interval(val: number) {\n    this._interval = val;\n    this._resetInterval();\n  }\n  get interval() {\n    return this._interval;\n  }\n\n  @Input()\n  set hasNavigationArrows(val: BooleanInput) {\n    this._hasNavigationArrows = coerceBooleanProperty(val);\n  }\n  get hasNavigationArrows() {\n    return this._hasNavigationArrows;\n  }\n  private _hasNavigationArrows: boolean = true;\n\n  @Input()\n  set hasNavigationIndicators(val: BooleanInput) {\n    this._hasNavigationIndicators = coerceBooleanProperty(val);\n  }\n  get hasNavigationIndicators() {\n    return this._hasNavigationIndicators;\n  }\n  private _hasNavigationIndicators: boolean = true;\n\n  constructor(\n    private _el: ElementRef,\n    private _cd: ChangeDetectorRef,\n    private _theme: LyTheme2,\n    private _renderer: Renderer2,\n    readonly sRenderer: StyleRenderer,\n    private _platform: Platform\n  ) { }\n\n  ngOnInit() {\n    if (!this.touch) {\n      this.touch = false;\n    }\n    if (this.autoplay == null) {\n      this.autoplay = DEFAULT_AUTOPLAY;\n    }\n    if (this.hasProgressBar == null) {\n      this.hasProgressBar = DEFAULT_HAS_PROGRESS_BAR;\n    }\n  }\n\n  ngAfterViewInit() {\n    this._renderer.addClass(this.slideContainer.nativeElement, this.classes.slideContainer);\n    if (this._platform.isBrowser) {\n      this._renderer.addClass(this.slideContainer.nativeElement, this.classes.slideAnim);\n    }\n\n    this.lyItems.changes.pipe(takeUntil(this._destroy)).subscribe(() => this._markForCheck());\n    this._select(this.selectedIndex);\n  }\n\n  ngOnDestroy() {\n    this._destroy.next();\n    this._destroy.complete();\n    if (this._platform.isBrowser) {\n      this.stop();\n    }\n  }\n\n  _onMouseEnter() {\n    if (this.pauseOnHover) {\n      this.stop();\n    }\n  }\n\n  _onMouseLeave() {\n    if (this.pauseOnHover) {\n      this._resetInterval();\n    }\n  }\n\n  /** @docs-private */\n  _onDragStart() {\n    this.stop();\n    this._renderer.removeClass(this.slideContainer.nativeElement, this.classes.slideAnim);\n    this._selectedElement = this.lyItems.find((_item, index) => index === this.selectedIndex)!._nativeElement;\n  }\n\n  _onDrag(e) {\n    const rect = this._selectedElement.getBoundingClientRect();\n    if (Math.abs(e.deltaX) < rect.width) {\n      this._onPan(e.deltaX);\n    } else {\n      this._onPan(rect.width * Math.sign(e.deltaX));\n    }\n  }\n\n  _onDragEnd(e) {\n    const rect = this._selectedElement.getBoundingClientRect();\n    const dir = this._theme.variables.getDirection(DirAlias.before);\n    this._renderer.addClass(this.slideContainer.nativeElement, this.classes.slideAnim);\n    this._select(this.selectedIndex);\n\n    if (Math.abs(e.deltaX) > rect.width / 2) {\n      if (0 > e.deltaX) {\n        this.next();\n      } else if (0 < e.deltaX) {\n        this.prev();\n      }\n    } else if (e.additionalEvent) {\n      const eventName = e.additionalEvent;\n      if (Math.abs(e.velocity) >= 0.25) {\n        if (eventName === 'slideleft') {\n          if (dir === 'left') {\n            this.next();\n          } else {\n            this.prev();\n          }\n        } else if (eventName === 'slideright') {\n          if (dir === 'right') {\n            this.next();\n          } else {\n            this.prev();\n          }\n        }\n      }\n    }\n    this._renderer.removeStyle(this._slide.nativeElement, 'transform');\n  }\n\n  _onDragCancel() {\n    this._renderer.addClass(this.slideContainer.nativeElement, this.classes.slideAnim);\n    this._select(this.selectedIndex);\n    this._resetInterval();\n  }\n\n  _select(val: number, notResetInterval?: boolean) {\n    this.selectedIndex = val;\n    if (this.mode === CarouselMode.default) {\n      this._slideClass = this._theme.addStyle(\n        `lyCarousel.select:${val.toString(32)}`,\n        (theme: ThemeVariables) => {\n          const sign = theme.getDirection(DirAlias.before) === 'left' ? -1 : 1;\n          return {\n            transform: `translateX(${100 * val * sign}%)`\n          };\n        },\n        this._slide.nativeElement,\n        this._slideClass,\n        STYLE_PRIORITY\n      );\n    }\n    const darkIcon = this.lyItems.toArray()[val].darkIcon;\n    this.darkIconActived = darkIcon ?? this.darkIcon;\n    if (!notResetInterval) {\n      if (this.autoplay && !this.pauseOnHover) {\n        this._resetInterval();\n      }\n    }\n  }\n\n  prev() {\n    const len = this.lyItems.length - 1;\n    const prev = this.selectedIndex - 1;\n    this._select(prev < 0 ? len : prev);\n  }\n\n  next(notResetInterval?: boolean) {\n    const len = this.lyItems.length - 1;\n    const next = this.selectedIndex + 1;\n    this._select(next > len ? 0 : next, notResetInterval);\n  }\n\n  stop() {\n    if (this._intervalFn !== null) {\n      clearInterval(this._intervalFn);\n      this._intervalFn = null;\n    }\n  }\n\n  private _resetInterval() {\n    if (this._platform.isBrowser) {\n      this.stop();\n      this._restartProgressBarAnimation();\n      this._markForCheck();\n      this._intervalFn = setInterval(() => {\n        this.next(true);\n        this._restartProgressBarAnimation();\n        this._markForCheck();\n      }, this.interval) as any;\n    }\n  }\n\n  private _restartProgressBarAnimation() {\n    if (this.hasProgressBar && this._progressBar) {\n\n      const el = this._progressBar.nativeElement;\n\n      // Hack for restart animation\n      el.style.animationName = 'øfakeName';\n      window.getComputedStyle(el).getPropertyValue('opacity');\n      el.style.animationName = '';\n\n    }\n  }\n\n  private _onPan(x) {\n    const sign = this._theme.variables.getDirection(DirAlias.before) === 'left' ? -1 : 1;\n    this._renderer.setStyle(this._slide.nativeElement, 'transform', `translateX(calc(${sign * 100 * this.selectedIndex }% + ${x}px))`);\n  }\n\n  private _markForCheck() {\n    this._cd.markForCheck();\n  }\n\n}\n\n@Directive({\n  selector: 'ly-carousel-item',\n  providers: [\n    StyleRenderer\n  ],\n  standalone: false\n})\nexport class LyCarouselItem {\n  private _className: string;\n  readonly sRenderer = inject(StyleRenderer);\n  @Input()\n  set darkIcon(val: boolean | null) {\n    if (val == null) {\n      this._darkIcon = null;\n    } else {\n      this._darkIcon = coerceBooleanProperty(val);\n    }\n  }\n  get darkIcon() {\n    return this._darkIcon;\n  }\n  private _darkIcon: boolean | null = null;\n  @Input()\n  set srcImg(value: string) {\n    this._className = this._theme.addStyle(\n      `ly-carousel-img:${value}`, (\n        `background-image: url('${value}')`\n      ),\n      this._nativeElement,\n      this._className, STYLE_PRIORITY\n    );\n  }\n\n  _nativeElement: HTMLElement;\n\n  constructor(\n    private _theme: LyTheme2,\n    _el: ElementRef,\n  ) {\n    this._nativeElement = _el.nativeElement;\n  }\n\n}\n","<div\n(slidestart)=\"touch && _onDragStart()\"\n(slideleft)=\"touch && _onDrag($event)\"\n(slideright)=\"touch && _onDrag($event)\"\n(slidecancel)=\"touch && _onDragCancel()\"\n(slideend)=\"touch && _onDragEnd($event)\"\n#slideContainer\n>\n  <div #_slide [className]=\"classes.slide\">\n    <ng-content></ng-content>\n  </div>\n  <ol [className]=\"classes.indicators\" *ngIf=\"lyItems.length !== 1 && hasNavigationIndicators\">\n    <li\n      *ngFor=\"let item of lyItems; index as i\"\n      [ngClass]=\"[classes.indicator, selectedIndex == i ? classes.indicatorActive : '']\"\n      (click)=\"_select(i)\"\n    >\n      <span\n        [class]=\"classes.indicatorIcon\"\n      ></span>\n    </li>\n  </ol>\n  <div *ngIf=\"hasNavigationArrows\" [class]=\"[classes.actions, classes.actionIcon, 'left']\" (click)=\"prev()\">\n  </div>\n  <div *ngIf=\"hasNavigationArrows\" [class]=\"[classes.actions, classes.actionIcon, 'right']\" (click)=\"next()\">\n  </div>\n  <div\n    [className]=\"classes.barContainer\"\n    *ngIf=\"hasProgressBar && _isIntervalFn && interval && autoplay\"\n  >\n    <div\n      [className]=\"classes.bar\"\n      #_progressBar\n      [style.animation-duration]=\"interval + 'ms'\"\n    ></div>\n  </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LyCarouselItem, LyCarousel } from './carousel';\nimport { LyCommonModule } from '@alyle/ui';\n\n@NgModule({\n  imports: [CommonModule, LyCommonModule],\n  exports: [LyCarouselItem, LyCarousel, LyCommonModule],\n  declarations: [LyCarouselItem, LyCarousel]\n})\nexport class LyCarouselModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}