{"version":3,"file":"ngx-wrapper-tiny-slider.mjs","sources":["../../../projects/ngx-wrapper-tiny-slider/src/lib/services/windowref.service.ts","../../../projects/ngx-wrapper-tiny-slider/src/lib/ngx-wrapper-tiny-slider/ngx-wrapper-tiny-slider.component.ts","../../../projects/ngx-wrapper-tiny-slider/src/lib/ngx-wrapper-tiny-slider/ngx-wrapper-tiny-slider.component.html","../../../projects/ngx-wrapper-tiny-slider/src/lib/ngx-wrapper-tiny-slider.module.ts","../../../projects/ngx-wrapper-tiny-slider/src/public-api.ts","../../../projects/ngx-wrapper-tiny-slider/src/ngx-wrapper-tiny-slider.ts"],"sourcesContent":["import { Injectable, PLATFORM_ID, Inject } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable({ providedIn: 'root' })\nexport class BrowserWindowRef {\n  constructor(@Inject(PLATFORM_ID) private platformId) {}\n\n  get nativeWindow(): any {\n    if (isPlatformBrowser(this.platformId)) {\n      return this.windowRef();\n    }\n    return false;\n  }\n\n  private windowRef(): Window {\n    // return the global native browser window object\n    return window;\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  SimpleChanges,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport { BehaviorSubject, from, Observable, Subject } from 'rxjs';\nimport { map, take, takeUntil } from 'rxjs/operators';\nimport {\n  TinySliderInfo,\n  TinySliderInstance,\n  TinySliderSettings\n} from 'tiny-slider';\n\nimport { BrowserWindowRef } from '../services/windowref.service';\n\n@Component({\n  selector: 'ngx-wrapper-tiny-slider',\n  templateUrl: 'ngx-wrapper-tiny-slider.component.html',\n  styleUrls: ['./tiny-slider.scss', './ngx-wrapper-tiny-slider.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class NgxWrapperTinySliderComponent implements OnInit, OnDestroy {\n  @ViewChild('slideItems', { static: true }) slideItemsContainerRef: ElementRef;\n  @Input() config: Partial<TinySliderSettings> = {};\n  @Input() initManually = false;\n  @Input() id = '';\n\n  public sliderReady$ = new BehaviorSubject(false);\n  public sliderInstance: TinySliderInstance;\n\n  private tns$: Observable<any>;\n  private componentDestroy$ = new Subject<boolean>();\n  private defaultConfig: Partial<TinySliderSettings> = {\n    items: 3,\n    mode: 'carousel',\n    speed: 400,\n    controls: false,\n    nav: false,\n    navPosition: 'bottom',\n    autoplayButtonOutput: false\n  };\n\n  constructor(private wr: BrowserWindowRef, private cd: ChangeDetectorRef) {}\n\n  ngOnInit() {\n    if (this.wr.nativeWindow) {\n      this.initTns();\n\n      if (!this.initManually) {\n        this.initSlider();\n      }\n    }\n  }\n\n  private initTns() {\n    this.tns$ = from(import('tiny-slider/src/tiny-slider'));\n    this.tns$.pipe(takeUntil(this.componentDestroy$)).subscribe();\n  }\n\n  public initSlider(): void {\n    if (this.wr.nativeWindow && this.tns$) {\n      const extendConfig = Object.assign(\n        { container: this.slideItemsContainerRef.nativeElement },\n        { ...this.defaultConfig, ...this.config }\n      );\n\n      this.tns$\n        .pipe(\n          take(1),\n          map((item: any) => {\n            const tns = item.tns;\n            this.sliderInstance = tns(extendConfig);\n            this.sliderReady$.next(true);\n          })\n        )\n        .subscribe();\n    }\n  }\n\n  /**\n   * OVERIDE TINY SLIDER METHOD\n   */\n\n  // public getInfo(): any {\n  //   if (this.wr.nativeWindow) {\n  //     const info = this.sliderInstance.getInfo() as TinySliderInfo;\n  //     return {\n  //       disablePrev: info.index <= 0 ? true : false,\n  //       disableNext: info.index >= info.slideCount - info.items ? true : false\n  //     };\n  //   }\n  // }\n  public goTo(target: number | 'next' | 'prev' | 'first' | 'last'): void {\n    if (this.wr.nativeWindow) {\n      this.sliderInstance.goTo(target);\n    }\n  }\n  public play(): void {\n    if (this.wr.nativeWindow) {\n      this.sliderInstance.play();\n    }\n  }\n  public pause(): void {\n    if (this.wr.nativeWindow) {\n      this.sliderInstance.pause();\n    }\n  }\n  public destroy(): void {\n    if (this.wr.nativeWindow && this.sliderInstance?.destroy) {\n      this.sliderReady$.next(false);\n      this.sliderInstance.destroy();\n    }\n  }\n\n  /**\n   * DESTROY\n   */\n  ngOnDestroy() {\n    this.componentDestroy$.next(false);\n    this.componentDestroy$.complete();\n    this.destroy();\n  }\n}\n","<div class=\"slider-wrapper\" [class.ready]=\"sliderReady$ | async\">\n  <div class=\"slide-items\" #slideItems>\n    <ng-content></ng-content>\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgxWrapperTinySliderComponent } from './ngx-wrapper-tiny-slider/ngx-wrapper-tiny-slider.component';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [NgxWrapperTinySliderComponent],\n  exports: [NgxWrapperTinySliderComponent],\n  providers: []\n})\nexport class NgxWrapperTinySliderModule {}\n","/*\n * Public API Surface of ngx-wrapper-tiny-slider\n */\n\nexport * from './lib/ngx-wrapper-tiny-slider.module';\nexport * from './lib/ngx-wrapper-tiny-slider/ngx-wrapper-tiny-slider.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.BrowserWindowRef"],"mappings":"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"}