rt-tab-carousel
Version:
Angular tab carousel component
1 lines • 53.3 kB
Source Map (JSON)
{"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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