{"version":3,"file":"ngx-glide.mjs","sources":["../../../../packages/ngx-glide/src/lib/shared/default-extra-settings.ts","../../../../packages/ngx-glide/src/lib/shared/default-settings.ts","../../../../packages/ngx-glide/src/lib/ngx-glide.component.ts","../../../../packages/ngx-glide/src/lib/ngx-glide.component.html","../../../../packages/ngx-glide/src/lib/ngx-glide.module.ts","../../../../packages/ngx-glide/src/ngx-glide.ts"],"sourcesContent":["import { ExtraSettings } from './extra-settings';\n\nexport const defaultExtraSettings: ExtraSettings = {\n  showArrows: true,\n  showBullets: true,\n  arrowLeftLabel: 'left',\n  arrowRightLabel: 'right',\n  listenToEvents: false,\n};\n","import { Settings } from './settings';\n\nexport const defaultSettings: Settings = {\n  type: 'slider',\n  startAt: 0,\n  perView: 1,\n  focusAt: 0,\n  gap: 10,\n  autoplay: false,\n  hoverpause: true,\n  keyboard: true,\n  bound: false,\n  swipeThreshold: 80,\n  dragThreshold: 120,\n  perTouch: false,\n  touchRatio: 0.5,\n  touchAngle: 45,\n  animationDuration: 400,\n  rewind: true,\n  rewindDuration: 800,\n  animationTimingFunc: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n  direction: 'ltr',\n  peek: 0,\n  breakpoints: {},\n  classes: {\n    direction: {\n      ltr: 'glide--ltr',\n      rtl: 'glide--rtl',\n    },\n    slider: 'glide--slider',\n    carousel: 'glide--carousel',\n    swipeable: 'glide--swipeable',\n    dragging: 'glide--dragging',\n    cloneSlide: 'glide__slide--clone',\n    activeNav: 'glide__bullet--active',\n    activeSlide: 'glide__slide--active',\n    disabledArrow: 'glide__arrow--disabled',\n  },\n  throttle: 25,\n};\n","import {\n  isPlatformBrowser,\n  NgForOf,\n  NgIf,\n  NgTemplateOutlet,\n} from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Output,\n  PLATFORM_ID,\n  SimpleChange,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport Glide from '@glidejs/glide';\n\nimport { defaultExtraSettings, defaultSettings, Settings } from './shared';\n\n// noinspection TypeScriptFieldCanBeMadeReadonly,DuplicatedCode\n@Component({\n  standalone: true,\n  imports: [NgIf, NgForOf, NgTemplateOutlet],\n  selector: 'ngx-glide',\n  templateUrl: './ngx-glide.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxGlideComponent implements OnChanges, AfterViewInit, OnDestroy {\n  @Input() showArrows: boolean;\n  @Input() showBullets: boolean;\n  @Input() arrowLeftLabel: string;\n  @Input() arrowLeftTemplate: TemplateRef<unknown> | null;\n  @Input() arrowRightLabel: string;\n  @Input() arrowRightTemplate: TemplateRef<unknown> | null;\n  @Input() listenToEvents: boolean;\n\n  glideBullets: number[];\n\n  @Input() type: string;\n  @Input() startAt: number;\n  @Input() perView: number;\n  @Input() focusAt: number | string;\n  @Input() gap: number;\n  @Input() autoplay: number | boolean;\n  @Input() hoverpause: boolean;\n  @Input() keyboard: boolean;\n  @Input() bound: boolean;\n  @Input() swipeThreshold: number | boolean;\n  @Input() dragThreshold: number | boolean;\n  @Input() perTouch: number | boolean;\n  @Input() touchRatio: number;\n  @Input() touchAngle: number;\n  @Input() animationDuration: number;\n  @Input() rewind: boolean;\n  @Input() rewindDuration: number;\n  @Input() animationTimingFunc: string;\n  @Input() direction: string;\n  @Input() peek: number | Record<string, unknown>;\n  @Input() breakpoints: Record<string, unknown>;\n  @Input() classes: Record<string, unknown>;\n  @Input() throttle: number;\n\n  @Output() private mountedBefore: EventEmitter<void>;\n  @Output() private mountedAfter: EventEmitter<void>;\n  @Output() private updated: EventEmitter<void>;\n  @Output() private played: EventEmitter<void>;\n  @Output() private paused: EventEmitter<void>;\n  @Output() private buildedBefore: EventEmitter<void>;\n  @Output() private buildedAfter: EventEmitter<void>;\n  @Output() private ranBefore: EventEmitter<Record<string, unknown>>;\n  @Output() private ran: EventEmitter<Record<string, unknown>>;\n  @Output() private ranAfter: EventEmitter<Record<string, unknown>>;\n  @Output() private ranOffset: EventEmitter<Record<string, unknown>>;\n  @Output() private runStarted: EventEmitter<Record<string, unknown>>;\n  @Output() private runEnded: EventEmitter<Record<string, unknown>>;\n  @Output() private moved: EventEmitter<Record<string, unknown>>;\n  @Output() private movedAfter: EventEmitter<Record<string, unknown>>;\n  @Output() private resized: EventEmitter<void>;\n  @Output() private swipeStarted: EventEmitter<void>;\n  @Output() private swipeMoved: EventEmitter<void>;\n  @Output() private swipeEnded: EventEmitter<void>;\n  @Output() private translateJumped: EventEmitter<Record<string, unknown>>;\n\n  @ViewChild('glideEl', { static: false }) private glideEl?: ElementRef;\n  @ViewChild('glideSlidesEl', { static: false })\n  private glideSlidesEl?: ElementRef;\n\n  private glide: Glide;\n\n  constructor(\n    private changeDetectorRef: ChangeDetectorRef,\n    @Inject(PLATFORM_ID) private platformId: string\n  ) {\n    this.showArrows = defaultExtraSettings.showArrows;\n    this.showBullets = defaultExtraSettings.showBullets;\n    this.arrowLeftLabel = defaultExtraSettings.arrowLeftLabel;\n    this.arrowLeftTemplate = null;\n    this.arrowRightLabel = defaultExtraSettings.arrowRightLabel;\n    this.arrowRightTemplate = null;\n    this.listenToEvents = defaultExtraSettings.listenToEvents;\n\n    this.glideBullets = [];\n\n    this.type = defaultSettings.type;\n    this.startAt = defaultSettings.startAt;\n    this.perView = defaultSettings.perView;\n    this.focusAt = defaultSettings.focusAt;\n    this.gap = defaultSettings.gap;\n    this.autoplay = defaultSettings.autoplay;\n    this.hoverpause = defaultSettings.hoverpause;\n    this.keyboard = defaultSettings.keyboard;\n    this.bound = defaultSettings.bound;\n    this.swipeThreshold = defaultSettings.swipeThreshold;\n    this.dragThreshold = defaultSettings.dragThreshold;\n    this.perTouch = defaultSettings.perTouch;\n    this.touchRatio = defaultSettings.touchRatio;\n    this.touchAngle = defaultSettings.touchAngle;\n    this.animationDuration = defaultSettings.animationDuration;\n    this.rewind = defaultSettings.rewind;\n    this.rewindDuration = defaultSettings.rewindDuration;\n    this.animationTimingFunc = defaultSettings.animationTimingFunc;\n    this.direction = defaultSettings.direction;\n    this.peek = defaultSettings.peek;\n    this.breakpoints = defaultSettings.breakpoints;\n    this.classes = defaultSettings.classes;\n    this.throttle = defaultSettings.throttle;\n\n    this.mountedBefore = new EventEmitter<void>();\n    this.mountedAfter = new EventEmitter<void>();\n    this.updated = new EventEmitter<void>();\n    this.played = new EventEmitter<void>();\n    this.paused = new EventEmitter<void>();\n    this.buildedBefore = new EventEmitter<void>();\n    this.buildedAfter = new EventEmitter<void>();\n    this.ranBefore = new EventEmitter<Record<string, unknown>>();\n    this.ran = new EventEmitter<Record<string, unknown>>();\n    this.ranAfter = new EventEmitter<Record<string, unknown>>();\n    this.ranOffset = new EventEmitter<Record<string, unknown>>();\n    this.runStarted = new EventEmitter<Record<string, unknown>>();\n    this.runEnded = new EventEmitter<Record<string, unknown>>();\n    this.moved = new EventEmitter<Record<string, unknown>>();\n    this.movedAfter = new EventEmitter<Record<string, unknown>>();\n    this.resized = new EventEmitter<void>();\n    this.swipeStarted = new EventEmitter<void>();\n    this.swipeMoved = new EventEmitter<void>();\n    this.swipeEnded = new EventEmitter<void>();\n    this.translateJumped = new EventEmitter<Record<string, unknown>>();\n  }\n\n  private static getGlideUpdateSettings(\n    changes: SimpleChanges\n  ): Record<string, unknown> {\n    const settings: Record<string, unknown> = {};\n\n    for (const key in changes) {\n      if (!Object.prototype.hasOwnProperty.call(changes, key)) {\n        continue;\n      }\n      if (!Object.prototype.hasOwnProperty.call(defaultSettings, key)) {\n        continue;\n      }\n      const change = changes[key] as SimpleChange;\n      if (change.previousValue !== change.currentValue) {\n        settings[key] = change.currentValue;\n      }\n    }\n\n    return settings;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (isPlatformBrowser(this.platformId) && changes && this.glide) {\n      this.update(NgxGlideComponent.getGlideUpdateSettings(changes));\n    }\n  }\n\n  ngAfterViewInit(): void {\n    if (isPlatformBrowser(this.platformId) && Glide) {\n      this.create();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy();\n  }\n\n  getStyleDisplay(condition: boolean): string {\n    return condition ? 'block' : 'none';\n  }\n\n  getIndex(): number {\n    return this.glide && this.glide.index;\n  }\n\n  // noinspection JSUnusedGlobalSymbols\n  getSettings(): Settings {\n    return this.glide && this.glide.settings;\n  }\n\n  // noinspection JSUnusedGlobalSymbols\n  getType(): string {\n    return this.glide && this.glide.type;\n  }\n\n  // noinspection JSUnusedGlobalSymbols\n  isDisabled(): boolean {\n    return this.glide && this.glide.disabled;\n  }\n\n  mount(): void {\n    if (this.glide) {\n      this.glide.mount();\n    }\n  }\n\n  update(settings: Record<string, unknown>): void {\n    if (this.glide) {\n      this.glide.update(settings);\n      this.changeDetectorRef.detectChanges();\n    }\n  }\n\n  destroy(): void {\n    if (this.glide) {\n      this.glide.destroy();\n    }\n  }\n\n  // noinspection JSUnusedGlobalSymbols\n  go(pattern: string): void {\n    if (this.glide) {\n      this.glide.go(pattern);\n    }\n  }\n\n  pause(): void {\n    if (this.glide) {\n      this.glide.pause();\n    }\n  }\n\n  play(force?: number): void {\n    if (this.glide) {\n      if (typeof force === 'number') {\n        this.glide.play(force);\n      } else {\n        this.glide.play();\n      }\n    }\n  }\n\n  // noinspection JSUnusedGlobalSymbols\n  disable(): void {\n    if (this.glide) {\n      this.glide.disable();\n    }\n  }\n\n  enable(): void {\n    if (this.glide) {\n      this.glide.enable();\n    }\n  }\n\n  isType(type: string): boolean {\n    return this.glide && this.glide.isType(type);\n  }\n\n  recreate(): void {\n    if (this.glide) {\n      this.destroy();\n    }\n    this.create();\n  }\n\n  private create(): void {\n    this.initGlideBullets();\n    this.glide = new Glide(\n      this.glideEl?.nativeElement,\n      this.getGlideInitSettings()\n    );\n    this.initGlideEvents();\n    this.mount();\n    this.changeDetectorRef.detectChanges();\n  }\n\n  private initGlideBullets(): void {\n    const glideSlidesNativeElement: HTMLElement =\n      this.glideSlidesEl?.nativeElement;\n    const childrenLength: number = glideSlidesNativeElement.children.length;\n    this.glideBullets = [...new Array(childrenLength).keys()];\n    this.changeDetectorRef.detectChanges();\n  }\n\n  private initGlideEvents(): void {\n    if (!this.glide || !this.listenToEvents) {\n      return;\n    }\n\n    this.glide.on('mount.before', () => this.mountedBefore.emit());\n    this.glide.on('mount.after', () => this.mountedAfter.emit());\n    this.glide.on('update', () => this.updated.emit());\n    this.glide.on('play', () => this.played.emit());\n    this.glide.on('pause', () => this.paused.emit());\n    this.glide.on('build.before', () => this.buildedBefore.emit());\n    this.glide.on('build.after', () => this.buildedAfter.emit());\n    this.glide.on('run.before', (move: Record<string, unknown>) =>\n      this.ranBefore.emit(move)\n    );\n    this.glide.on('run', (move: Record<string, unknown>) =>\n      this.ran.emit(move)\n    );\n    this.glide.on('run.after', (move: Record<string, unknown>) =>\n      this.ranAfter.emit(move)\n    );\n    this.glide.on('run.offset', (move: Record<string, unknown>) =>\n      this.ranOffset.emit(move)\n    );\n    this.glide.on('run.start', (move: Record<string, unknown>) =>\n      this.runStarted.emit(move)\n    );\n    this.glide.on('run.end', (move: Record<string, unknown>) =>\n      this.runEnded.emit(move)\n    );\n    this.glide.on('move', (movement: Record<string, unknown>) =>\n      this.moved.emit(movement)\n    );\n    this.glide.on('move.after', (movement: Record<string, unknown>) =>\n      this.movedAfter.emit(movement)\n    );\n    this.glide.on('resize', () => this.resized.emit());\n    this.glide.on('swipe.start', () => this.swipeStarted.emit());\n    this.glide.on('swipe.move', () => this.swipeMoved.emit());\n    this.glide.on('swipe.end', () => this.swipeEnded.emit());\n    this.glide.on('translate.jump', (movement: Record<string, unknown>) =>\n      this.translateJumped.emit(movement)\n    );\n  }\n\n  private getGlideInitSettings(): Settings {\n    return {\n      type: this.type,\n      startAt: this.startAt,\n      perView: this.perView,\n      focusAt: this.focusAt,\n      gap: this.gap,\n      autoplay: this.autoplay,\n      hoverpause: this.hoverpause,\n      keyboard: this.keyboard,\n      bound: this.bound,\n      swipeThreshold: this.swipeThreshold,\n      dragThreshold: this.dragThreshold,\n      perTouch: this.perTouch,\n      touchRatio: this.touchRatio,\n      touchAngle: this.touchAngle,\n      animationDuration: this.animationDuration,\n      rewind: this.rewind,\n      rewindDuration: this.rewindDuration,\n      animationTimingFunc: this.animationTimingFunc,\n      direction: this.direction,\n      peek: this.peek,\n      breakpoints: this.breakpoints,\n      classes: this.classes,\n      throttle: this.throttle,\n    };\n  }\n}\n","<div #glideEl class=\"glide\">\n  <div class=\"glide__track\" data-glide-el=\"track\">\n    <div #glideSlidesEl class=\"glide__slides\">\n      <ng-content></ng-content>\n    </div>\n  </div>\n  <div\n    class=\"glide__arrows\"\n    data-glide-el=\"controls\"\n    [style.display]=\"showArrows ? 'block' : 'none'\"\n  >\n    <button\n      class=\"glide__arrow glide__arrow--left\"\n      data-glide-dir=\"<\"\n      [style.display]=\"getStyleDisplay(!arrowLeftTemplate)\"\n    >\n      {{ arrowLeftLabel }}\n    </button>\n    <button\n      class=\"glide__arrow glide__arrow--right\"\n      data-glide-dir=\">\"\n      [style.display]=\"getStyleDisplay(!arrowRightTemplate)\"\n    >\n      {{ arrowRightLabel }}\n    </button>\n    <div\n      data-glide-dir=\"<\"\n      [style.display]=\"getStyleDisplay(!!arrowLeftTemplate)\"\n    >\n      <ng-container *ngTemplateOutlet=\"arrowLeftTemplate\"></ng-container>\n    </div>\n    <div\n      data-glide-dir=\">\"\n      [style.display]=\"getStyleDisplay(!!arrowRightTemplate)\"\n    >\n      <ng-container *ngTemplateOutlet=\"arrowRightTemplate\"></ng-container>\n    </div>\n  </div>\n  <div\n    class=\"glide__bullets\"\n    data-glide-el=\"controls[nav]\"\n    [style.display]=\"showBullets ? 'block' : 'none'\"\n  >\n    <ng-container *ngIf=\"glideBullets\">\n      <button\n        *ngFor=\"let glideBullet of glideBullets\"\n        class=\"glide__bullet\"\n        [attr.data-glide-dir]=\"'=' + glideBullet\"\n      ></button>\n    </ng-container>\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { NgxGlideComponent } from './ngx-glide.component';\n\n@NgModule({\n  imports: [NgxGlideComponent],\n  exports: [NgxGlideComponent],\n})\nexport class NgxGlideModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}