{"version":3,"file":"rt-tab-carousel.mjs","sources":["../../../projects/rt-tab-carousel/src/lib/services/rt-carousel.service.ts","../../../projects/rt-tab-carousel/src/lib/directives/rt-carousel-next-button.directive.ts","../../../projects/rt-tab-carousel/src/lib/components/rt-carousel-next-button/rt-carousel-next-button.component.ts","../../../projects/rt-tab-carousel/src/lib/components/rt-carousel-next-button/rt-carousel-next-button.component.html","../../../projects/rt-tab-carousel/src/lib/directives/rt-carousel-previous-button.directive.ts","../../../projects/rt-tab-carousel/src/lib/components/rt-carousel-previous-button/rt-carousel-previous-button.component.ts","../../../projects/rt-tab-carousel/src/lib/components/rt-carousel-previous-button/rt-carousel-previous-button.component.html","../../../projects/rt-tab-carousel/src/lib/directives/rt-carousel-container.directive.ts","../../../projects/rt-tab-carousel/src/lib/directives/rt-carousel-tab.directive.ts","../../../projects/rt-tab-carousel/src/lib/rt-carousel.module.ts","../../../projects/rt-tab-carousel/src/public-api.ts","../../../projects/rt-tab-carousel/src/rt-tab-carousel.ts"],"sourcesContent":["import {ElementRef, Injectable} from '@angular/core';\nimport {BehaviorSubject, combineLatest, interval, Observable} from 'rxjs';\nimport {distinctUntilChanged, first, map} from 'rxjs/operators';\n\n@Injectable()\nexport class RtCarouselService {\n    private _isLastTabVisible$!: Observable<{ [related: string]: boolean }>;\n    private _isFirstTabVisible$!: Observable<{ [related: string]: boolean }>;\n    private _scrollStep$ = new BehaviorSubject<{ [related: string]: number | null }>({});\n    private _items = new BehaviorSubject<{ [related: string]: (ElementRef[]) }>({});\n    private _currentSliderShift$ = new BehaviorSubject<{ [related: string]: number | null }>({});\n    private _lastVisibleIndexEnd$ = new BehaviorSubject<{ [related: string]: number | null }>({});\n    private _lastVisibleIndex$ = new BehaviorSubject<{ [related: string]: number | null }>({});\n    private _selectedIndex = new BehaviorSubject<{ [related: string]: (number | null) }>({});\n    private _activeClassTab = new BehaviorSubject<{ [related: string]: string | null }>({});\n\n    constructor() {\n        this._isFirstTabVisible$ = this._lastVisibleIndex$.asObservable().pipe(\n            map(v => {\n                const res: any = {};\n                for (const key of Object.keys(v)) {\n                    res[key] = v[key] === 0;\n                }\n                return res;\n            }),\n        );\n\n        this._isLastTabVisible$ = combineLatest([this._lastVisibleIndexEnd$.asObservable(), this._items.asObservable()]).pipe(\n            map(([v, length]) => {\n                const res: any = {};\n                for (const key of Object.keys(v)) {\n                    res[key] = v[key] === length[key]?.length - 1;\n                }\n                return res;\n            }),\n        );\n    }\n\n    public setTab(related: string, value: ElementRef): void {\n        const currValue = this._items.value;\n        this._items.next({\n            ...currValue,\n            [related]: currValue[related]?.length ? [...currValue[related], value] : [value],\n        });\n    }\n\n    public deleteTab(uuidCarousel: string, el: ElementRef) {\n        const currValue = this._items.value;\n        const index = currValue[uuidCarousel].findIndex(v => v === el);\n        if (index !== -1) {\n            currValue[uuidCarousel].splice(index, 1);\n            this._items.next(currValue);\n        }\n    }\n\n    public amountTabs(related: string): Observable<number> {\n        return this._items.pipe(\n            distinctUntilChanged((prev, curr) => prev[related] === curr[related]),\n            map(v => v[related]?.length),\n        );\n    }\n\n    public tabs(related: string): Observable<ElementRef[]> {\n        return this._items.pipe(\n            distinctUntilChanged((prev, curr) => prev[related] === curr[related]),\n            map(v => v[related]),\n        );\n    }\n\n    public isFirstTabVisible(related: string): Observable<boolean> {\n        return this._isFirstTabVisible$.pipe(\n            distinctUntilChanged((prev, curr) => prev[related] === curr[related]),\n            map(v => v[related]),\n        );\n    }\n\n    public isLastTabVisible(related: string): Observable<boolean> {\n        return this._isLastTabVisible$.pipe(\n            distinctUntilChanged((prev, curr) => prev[related] === curr[related]),\n            map(v => v[related]),\n        );\n    }\n\n    public currentSliderShift(related: string): Observable<number | null> {\n        return this._currentSliderShift$.asObservable().pipe(\n            distinctUntilChanged((prev, curr) => prev[related] === curr[related]),\n            map(v => v[related]),\n        );\n    }\n\n    public lastVisibleIndexEnd(related: string): Observable<number | null> {\n        return this._lastVisibleIndexEnd$.pipe(\n            distinctUntilChanged((prev, curr) => prev[related] === curr[related]),\n            map(v => v[related]),\n        );\n    }\n\n    public lastVisibleIndex(related: string): Observable<number | null> {\n        return this._lastVisibleIndex$.pipe(\n            distinctUntilChanged((prev, curr) => prev[related] === curr[related]),\n            map(v => v[related]),\n        );\n    }\n\n    public nextPart(related: string): void {\n        if (!this._lastVisibleIndex$.value[related]) {\n            this._lastVisibleIndex$.next({...this._lastVisibleIndex$.value, [related]: 0});\n        }\n\n        const scrollStep = this._scrollStep$.value[related];\n        const amount = this._items.value[related];\n        const nextStep =\n            this._lastVisibleIndexEnd$.value[related]! + scrollStep! > amount?.length - 1\n                ? amount?.length - 1\n                : this._lastVisibleIndexEnd$.value[related]! + scrollStep!;\n\n        this._items.value[related][nextStep]?.nativeElement.scrollIntoView({\n            behavior: 'smooth',\n            block: 'nearest',\n            inline: 'end',\n        });\n        this._currentSliderShift$.next({\n            ...this._currentSliderShift$.value,\n            [related]: nextStep,\n        });\n    }\n\n    public previousPart(related: string): void {\n\n        if (this._lastVisibleIndex$.value[related]! - this._scrollStep$.value[related]! >= 0) {\n            this._currentSliderShift$.next({\n                ...this._currentSliderShift$.value,\n                [related]: this._lastVisibleIndex$.value[related]! - this._scrollStep$.value[related]!,\n            });\n\n            this._items.value[related][this._lastVisibleIndex$.value[related]! - this._scrollStep$.value[related]!].nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                inline: 'start',\n                block: 'nearest',\n            });\n\n        } else {\n            this._currentSliderShift$.next({\n                ...this._currentSliderShift$.value,\n                [related]: 0,\n            });\n            this._items.value[related][0].nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n                inline: 'start',\n            });\n        }\n    }\n\n    public setLastVisibleIndex(related: string, value: number): void {\n        const currValue = this._lastVisibleIndex$.value;\n        this._lastVisibleIndex$.next({...currValue, [related]: value});\n    }\n\n    public setLastVisibleIndexEnd(related: string, value: number): void {\n        const currValue = this._lastVisibleIndexEnd$.value;\n        this._lastVisibleIndexEnd$.next({...currValue, [related]: value});\n    }\n\n    public setScrollStep(related: string, value: number): void {\n        const currValue = this._scrollStep$.value;\n        this._scrollStep$.next({...currValue, [related]: value});\n    }\n\n    public selectTab(related: string, index: number | string): void {\n        if (isNaN(+index)) {\n            return;\n        }\n        if (this._items.value?.[related]?.[+index]) {\n            this.applyActiveClassForTab(related, this._items.value[related][+index]);\n            const currentValues = this._selectedIndex.value;\n            this._selectedIndex.next({...currentValues, [related]: +index});\n            const el = this._items.value[related][+index].nativeElement;\n\n            el.scrollIntoView({inline: 'nearest', block: 'nearest', behavior: 'smooth'});\n        } else {\n            const className = this._activeClassTab.value[related];\n            const selectedIndexPreview = this._selectedIndex.value?.[related];\n            if (selectedIndexPreview) {\n                this._items.value?.[related]?.[selectedIndexPreview]?.nativeElement.classList.remove(className);\n            }\n        }\n    }\n\n    public selectHTMLElement(related: string, el: ElementRef): void {\n        this.applyActiveClassForTab(related, el);\n        const currentValues = this._selectedIndex.value;\n        const index = this._items.value[related].findIndex(v => v === el);\n\n        this._selectedIndex.next({...currentValues, [related]: index});\n        interval(10).pipe(first()).subscribe({\n            next: () => el.nativeElement.scrollIntoView({inline: 'nearest', block: 'nearest', behavior: 'smooth'}),\n        });\n\n    }\n\n    public selectedTab(related: string): Observable<number | null> {\n        return this._selectedIndex.pipe(\n            distinctUntilChanged((prev, curr) => prev[related] === curr[related]),\n            map(v => v[related]),\n        );\n    }\n\n    public setActiveClassTab(related: string, className: string): void {\n        const currValue = this._activeClassTab.value;\n        this._activeClassTab.next({...currValue, [related]: className});\n    }\n\n    public destroyCarousel(related: string): void {\n        this._items.value[related] = [];\n        this._selectedIndex.value[related] = null;\n        this._activeClassTab.value[related] = null;\n        this._scrollStep$.value[related] = null;\n        this._currentSliderShift$.value[related] = null;\n        this._lastVisibleIndexEnd$.value[related] = null;\n        this._lastVisibleIndex$.value[related] = null;\n    }\n\n    private applyActiveClassForTab(related: string, el: ElementRef): void {\n        const className = this._activeClassTab.value[related];\n        const selectedIndexPreview = this._selectedIndex.value[related];\n        if (selectedIndexPreview! >= 0) {\n            this._items.value[related][selectedIndexPreview!]?.nativeElement.classList.remove(className);\n        }\n        el.nativeElement.classList.add(className);\n    }\n\n}\n","import {\n  Directive,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  Renderer2,\n} from '@angular/core';\nimport {combineLatest, Subscription} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {RtCarouselService} from '../services/rt-carousel.service';\n\n@Directive({\n  selector: '[rtCarouselNextButton]',\n})\nexport class RtCarouselNextButtonDirective implements OnInit, OnDestroy {\n  @Input() activeClass?: string;\n  @Input() autoHide = true;\n  @Input({required: true}) uuidCarousel!: string;\n\n  @Output() buttonHidden = new EventEmitter<boolean>();\n\n  private readonly subscription = new Subscription();\n\n  constructor(private el: ElementRef, private renderer: Renderer2, private service: RtCarouselService) {\n  }\n\n\n  @HostListener('click', ['$event'])\n  onClick(): void {\n    this.service.nextPart(this.uuidCarousel);\n  }\n\n\n  ngOnInit(): void {\n    this.subscription.add(\n      this.service.isLastTabVisible(this.uuidCarousel).subscribe({\n        next: v => {\n          if (v) {\n            if (this.activeClass) {\n              this.renderer.removeClass(this.el.nativeElement, this.activeClass);\n            }\n          } else if (v !== undefined) {\n            if (this.activeClass) {\n              this.renderer.addClass(this.el.nativeElement, this.activeClass);\n            }\n          }\n        },\n      }),\n    );\n\n    if (this.autoHide) {\n      this.subscription.add(\n        combineLatest(\n          [\n            this.service.isFirstTabVisible(this.uuidCarousel).pipe(map(v => v || v === undefined)),\n            this.service.isLastTabVisible(this.uuidCarousel).pipe(map(v => v || v === undefined)),\n          ],\n        )\n          .pipe(map(([first, last]) => first && last))\n          .subscribe({\n            next: v => {\n              this.renderer.setStyle(this.el.nativeElement, 'display', v ? 'none' : 'flex');\n              this.buttonHidden.emit(v);\n            },\n          }),\n      );\n    }\n\n  }\n\n\n  ngOnDestroy(): void {\n    this.subscription.unsubscribe();\n  }\n\n}\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'rt-tab-carousel-next-button',\n  templateUrl: './rt-carousel-next-button.component.html',\n  styleUrls: ['./rt-carousel-next-button.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RtCarouselNextButtonComponent {\n  @Input({required: true}) uuidCarousel!: string;\n  @Input() autoHide = true;\n}\n","<div\n  rtCarouselNextButton\n  [uuidCarousel]=\"uuidCarousel\"\n  [activeClass]=\"'rt-carousel__shadow-right-array'\"\n  [autoHide]=\"autoHide\"\n  class=\"rt-carousel__next-part\"\n>\n  <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path d=\"M9 16.58L13.3266 12L9 7.41L10.332 6L16 12L10.332 18L9 16.58Z\" fill=\"#777777\"/>\n  </svg>\n\n</div>\n","import {\n  Directive,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  Renderer2,\n} from '@angular/core';\nimport {combineLatest, Subscription} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {RtCarouselService} from '../services/rt-carousel.service';\n\n@Directive({\n  selector: '[rtCarouselPreviousButton]',\n})\nexport class RtCarouselPreviousButtonDirective implements OnInit, OnDestroy {\n  @Input() activeClass?: string;\n  @Input() autoHide = true;\n  @Input({required: true}) uuidCarousel!: string;\n\n  @Output() buttonHidden = new EventEmitter<boolean>();\n\n  private readonly subscription = new Subscription();\n\n  constructor(private el: ElementRef, private renderer: Renderer2, private service: RtCarouselService) {\n  }\n\n\n  @HostListener('click', ['$event'])\n  onClick(): void {\n    this.service.previousPart(this.uuidCarousel);\n  }\n\n\n  ngOnInit(): void {\n    this.subscription.add(\n      this.service.isFirstTabVisible(this.uuidCarousel).subscribe({\n        next: v => {\n          if (v) {\n            if (this.activeClass) {\n              this.renderer.removeClass(this.el.nativeElement, this.activeClass);\n            }\n          } else if (v !== undefined) {\n            if (this.activeClass) {\n              this.renderer.addClass(this.el.nativeElement, this.activeClass);\n            }\n          }\n        },\n      }),\n    );\n    if (this.autoHide) {\n      this.subscription.add(\n        combineLatest(\n          [\n            this.service.isFirstTabVisible(this.uuidCarousel).pipe(map(v => v || v === undefined)),\n            this.service.isLastTabVisible(this.uuidCarousel).pipe(map(v => v || v === undefined)),\n          ],\n        )\n          .pipe(map(([first, last]) => first && last))\n          .subscribe({\n            next: v => {\n              this.renderer.setStyle(this.el.nativeElement, 'display', v ? 'none' : 'flex');\n              this.buttonHidden.emit(v);\n            },\n          }),\n      );\n    }\n  }\n\n\n  ngOnDestroy(): void {\n    this.subscription.unsubscribe();\n  }\n}\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'rt-tab-carousel-previous-button',\n  templateUrl: './rt-carousel-previous-button.component.html',\n  styleUrls: ['./rt-carousel-previous-button.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RtCarouselPreviousButtonComponent {\n  @Input({required: true}) uuidCarousel!: string;\n  @Input() autoHide = true;\n}\n"," <div\n    rtCarouselPreviousButton\n    [uuidCarousel]=\"uuidCarousel\"\n    [autoHide]=\"autoHide\"\n    [activeClass]=\"'rt-carousel__shadow-left-array'\"\n    class=\"rt-carousel__next-part\"\n  >\n   <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n     <path d=\"M15 16.58L10.6734 12L15 7.41L13.668 6L8 12L13.668 18L15 16.58Z\" fill=\"#777777\"/>\n   </svg>\n\n\n  </div>\n","import {\n    AfterViewInit,\n    ChangeDetectorRef,\n    Directive,\n    ElementRef,\n    Input,\n    OnDestroy,\n    OnInit,\n    Renderer2,\n} from '@angular/core';\nimport {combineLatest, fromEvent, Observable, Subscription} from 'rxjs';\nimport {debounceTime, filter, first, startWith} from 'rxjs/operators';\nimport {RtCarouselService} from '../services/rt-carousel.service';\n\n@Directive({\n    selector: '[rtCarouselContainer]',\n})\nexport class RtCarouselContainerDirective implements OnInit, AfterViewInit, OnDestroy {\n    @Input() scrollStep = 1;\n    @Input({required: true}) uuidCarousel!: string;\n    @Input() activeClass?: string;\n    @Input() antiBounce = 5;\n\n    private readonly subscription = new Subscription();\n    private firstDebounce = 1500;\n\n    constructor(private el: ElementRef, private renderer: Renderer2, private service: RtCarouselService, private cd: ChangeDetectorRef) {\n    }\n\n    private _selectedTab?: number;\n\n    @Input() set selectedTab(value: number) {\n        this._selectedTab = value;\n\n        this.service.amountTabs(this.uuidCarousel).pipe(debounceTime(this.firstDebounce), first()).subscribe({\n            next: () => {\n                this.firstDebounce = 0;\n                this.service.selectTab(this.uuidCarousel, value);\n            },\n        });\n    }\n\n    ngOnInit(): void {\n        this.renderer.setStyle(this.el.nativeElement, 'display', 'flex');\n        this.renderer.setStyle(this.el.nativeElement, 'overflow', 'auto');\n        this.renderer.setStyle(this.el.nativeElement, 'z-index', '10');\n        this.renderer.setStyle(this.el.nativeElement, 'padding', '0 2px');\n        this.renderer.setStyle(this.el.nativeElement, 'align-items', 'center');\n        this.renderer.setStyle(this.el.nativeElement, 'gap', '6px');\n        this.renderer.setStyle(this.el.nativeElement, 'scrollbar-width', 'none');\n        this.renderer.addClass(this.el.nativeElement, 'rt-tab-carousel-container');\n\n\n        this.subscription.add(\n            this.service.amountTabs(this.uuidCarousel)\n                .pipe(debounceTime(10))\n                .subscribe({\n                    next: () => this.cd.detectChanges(),\n                }),\n        );\n    }\n\n    ngAfterViewInit(): void {\n        if (this.activeClass) {\n            this.service.setActiveClassTab(this.uuidCarousel, this.activeClass);\n        }\n        this.service.setScrollStep(this.uuidCarousel, this.scrollStep);\n        const style = this.renderer.createElement('style');\n        this.renderer.appendChild(this.el.nativeElement, style);\n        style.innerHTML = `::-webkit-scrollbar { width: 0; height: 0 }`;\n\n\n        this.service.amountTabs(this.uuidCarousel).pipe(debounceTime(1000), first()).subscribe({\n            next: () => {\n                this.initIndexes();\n            },\n        });\n\n\n        const resize$ = fromEvent(window, 'resize').pipe(startWith(null));\n        const scroll$ = fromEvent(this.el.nativeElement, 'scroll').pipe(startWith(null));\n\n\n        const mutationObserver$ = this.createMutationObserverObservable(this.el.nativeElement).pipe(startWith(null));\n\n\n        this.subscription.add(combineLatest([resize$, scroll$, mutationObserver$]).subscribe({\n            next: () => {\n                const currentItems = document.querySelectorAll(`.rt-carousel-tab-${this.uuidCarousel}`);\n                const scrollLeft = this.el.nativeElement.scrollLeft;\n\n                for (let i = 0; i < currentItems.length; i++) {\n                    const child = currentItems[i] as HTMLElement;\n                    if (child.offsetLeft - scrollLeft - this.el.nativeElement.offsetLeft + this.antiBounce >= 0) {\n                        this.service.setLastVisibleIndex(this.uuidCarousel, i);\n                        break;\n                    }\n                }\n\n                for (let i = currentItems.length - 1; i >= 0; i--) {\n                    const child = currentItems[i] as HTMLElement;\n                    if (\n                        this.el.nativeElement.offsetLeft + this.el.nativeElement.offsetWidth >=\n                        child.offsetLeft + child.offsetWidth - this.el.nativeElement.scrollLeft - this.antiBounce\n                    ) {\n                        this.service.setLastVisibleIndexEnd(this.uuidCarousel, i);\n                        break;\n                    }\n                }\n            },\n        }));\n\n\n        this.cd.detectChanges();\n    }\n\n    initIndexes(): void {\n        this.service\n            .tabs(this.uuidCarousel)\n            .pipe(\n                filter(items => items && !!items.length),\n                first(),\n            )\n            .subscribe({\n                next: tabs => {\n                    const currentItems = document.querySelectorAll(`.rt-carousel-tab-${this.uuidCarousel}`);\n                    const scrollLeft = this.el.nativeElement.scrollLeft;\n                    const firstTab = tabs[0].nativeElement as HTMLElement;\n                    const offsetLeft = firstTab.offsetLeft;\n                    if (offsetLeft >= scrollLeft) {\n                        this.service.setLastVisibleIndex(this.uuidCarousel, 0);\n                    }\n\n                    for (let i = currentItems.length - 1; i >= 0; i--) {\n                        const child = currentItems[i] as HTMLElement;\n                        if (\n                            this.el.nativeElement.offsetLeft + this.el.nativeElement.offsetWidth >=\n                            child.offsetLeft + child.offsetWidth - this.el.nativeElement.scrollLeft - this.antiBounce\n                        ) {\n                            this.service.setLastVisibleIndexEnd(this.uuidCarousel, i);\n                            break;\n                        }\n                    }\n                },\n            });\n    }\n\n    ngOnDestroy(): void {\n        const tabs = document.querySelectorAll(`.rt-carousel-tab-${this.uuidCarousel}`);\n        tabs.forEach(tab => {\n            tab.removeEventListener('scroll', () => {\n            });\n            tab.removeEventListener('click', () => {\n            });\n        });\n\n        this.service.destroyCarousel(this.uuidCarousel);\n        this.subscription.unsubscribe();\n    }\n\n    private createMutationObserverObservable(target: HTMLElement): Observable<MutationRecord[]> {\n        return new Observable(observer => {\n            const observerInstance = new MutationObserver(mutationsList => {\n                observer.next(mutationsList);\n            });\n            observerInstance.observe(target, {\n                childList: true,\n                subtree: true,\n            });\n            return () => {\n                observerInstance.disconnect();\n            };\n        });\n    }\n}\n","import {Directive, ElementRef, HostListener, Input, OnDestroy, OnInit, Renderer2} from '@angular/core';\nimport {Subscription} from 'rxjs';\nimport {RtCarouselService} from '../services/rt-carousel.service';\n\n@Directive({\n    selector: '[rtCarouselTab]',\n})\nexport class RtCarouselTabDirective implements OnInit, OnDestroy {\n    @Input({required: true}) uuidCarousel!: string;\n\n    private readonly subscription = new Subscription();\n\n    constructor(private el: ElementRef, private renderer: Renderer2, private service: RtCarouselService) {\n    }\n\n    private _disabledTab?: boolean;\n\n    get disabledTab(): boolean {\n        return !!this._disabledTab;\n    }\n\n    @Input() set disabledTab(value: boolean) {\n        this._disabledTab = value;\n        if (value) {\n            this.renderer.addClass(this.el.nativeElement, 'rt-tab-carousel-tab__disabled');\n        } else {\n            this.renderer.removeClass(this.el.nativeElement, 'rt-tab-carousel-tab__disabled');\n        }\n    }\n\n    @HostListener('click', ['$event'])\n    onClick(): void {\n        if (!this.disabledTab) {\n            this.service.selectHTMLElement(this.uuidCarousel, this.el);\n        }\n    }\n\n    ngOnInit(): void {\n        this.renderer.setStyle(this.el.nativeElement, 'white-space', 'nowrap');\n        this.renderer.setStyle(this.el.nativeElement, 'cursor', 'pointer');\n        this.renderer.addClass(this.el.nativeElement, `rt-carousel-tab-${this.uuidCarousel}`);\n        this.service.setTab(this.uuidCarousel, this.el);\n    }\n\n    ngOnDestroy(): void {\n        this.service.deleteTab(this.uuidCarousel, this.el);\n        this.subscription.unsubscribe();\n    }\n}\n","import {CommonModule, NgOptimizedImage} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {RtCarouselNextButtonComponent} from './components/rt-carousel-next-button/rt-carousel-next-button.component';\nimport {\n  RtCarouselPreviousButtonComponent,\n} from './components/rt-carousel-previous-button/rt-carousel-previous-button.component';\nimport {RtCarouselContainerDirective} from './directives/rt-carousel-container.directive';\nimport {RtCarouselNextButtonDirective} from './directives/rt-carousel-next-button.directive';\nimport {RtCarouselPreviousButtonDirective} from './directives/rt-carousel-previous-button.directive';\nimport {RtCarouselTabDirective} from './directives/rt-carousel-tab.directive';\nimport {RtCarouselService} from './services/rt-carousel.service';\n\n\n@NgModule({\n  declarations: [\n    RtCarouselContainerDirective,\n    RtCarouselTabDirective,\n    RtCarouselPreviousButtonDirective,\n    RtCarouselNextButtonDirective,\n    RtCarouselPreviousButtonComponent,\n    RtCarouselNextButtonComponent,\n  ],\n  exports: [\n    RtCarouselContainerDirective,\n    RtCarouselTabDirective,\n    RtCarouselNextButtonDirective,\n    RtCarouselPreviousButtonDirective,\n    RtCarouselNextButtonComponent,\n    RtCarouselPreviousButtonComponent,\n  ],\n  imports: [CommonModule, NgOptimizedImage],\n  providers: [RtCarouselService],\n})\nexport class RtCarouselModule {\n}\n","/*\n * Public API Surface of rt-tab-carousel\n */\n\nexport * from './lib/services/rt-carousel.service';\nexport * from './lib/components/rt-carousel-next-button/rt-carousel-next-button.component';\nexport * from './lib/components/rt-carousel-previous-button/rt-carousel-previous-button.component';\nexport * from './lib/directives/rt-carousel-container.directive';\nexport * from './lib/directives/rt-carousel-next-button.directive';\nexport * from './lib/directives/rt-carousel-previous-button.directive';\nexport * from './lib/directives/rt-carousel-tab.directive';\nexport * from './lib/rt-carousel.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.RtCarouselService","i1.RtCarouselNextButtonDirective","i1.RtCarouselPreviousButtonDirective"],"mappings":"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"}