{"version":3,"file":"teenageinterface-carousel.mjs","sources":["../../../libs/carousel/src/lib/slide.component.ts","../../../libs/carousel/src/lib/slide.component.html","../../../libs/carousel/src/lib/carousel.component.ts","../../../libs/carousel/src/lib/carousel.component.html","../../../libs/carousel/src/public-api.ts","../../../libs/carousel/src/teenageinterface-carousel.ts"],"sourcesContent":["/**\r\n * @Author: 0K0 <contact@oko.app>\r\n * @Date:   29-11-2024 09:34:46\r\n * @Last Modified by:   0K0 <contact@oko.app>\r\n * @Last Modified time: 29-11-2024 09:54:39\r\n */\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { Component, Input, HostBinding } from '@angular/core';\r\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\r\n\r\n@Component({\r\n  selector: 'tiSlide',\r\n  imports: [CommonModule],\r\n  templateUrl: './slide.component.html',\r\n  styleUrl: './tailwind.css'\r\n})\r\nexport class SlideComponent {\r\n  @Input() width: number = 320;\r\n\r\n  public active: boolean = false;\r\n  public currentIndex: number = 0;\r\n  public index: number = 0;\r\n  public type: \"classic\" | \"modern\" = \"modern\";\r\n\r\n  @HostBinding('style')\r\n  get setWidth(): SafeStyle {\r\n    return this.sanitizer.bypassSecurityTrustStyle(`width: ${this.width}px`);\r\n  }\r\n\r\n  constructor(private sanitizer: DomSanitizer) {}\r\n\r\n}\r\n","<div\r\n  class=\"box-border select-none relative transition-all duration-300\"\r\n  [style.width]=\"width + 'px'\"\r\n  [style.transform]=\"type === 'modern' ? (active ? 'scale(1)' : 'scale(0.8)') : ''\"\r\n  [style.transform-origin]=\"type === 'modern' ? (currentIndex > index ? 'right' : 'left') : ''\"\r\n  [style.z-index]=\"type === 'modern' ? (active ? '10' : '1') : ''\"\r\n  [style.left]=\"type === 'modern' ? (index === currentIndex - 1 ? '25%' : index === currentIndex + 1 ? '-25%' : '0') : ''\"\r\n  [style.opacity]=\"type === 'modern' ? (active ? '1' : '0.7') : ''\"\r\n>\r\n  <ng-content>\r\n  </ng-content>\r\n</div>\r\n","/**\r\n * @Author: 0K0 <contact@oko.app>\r\n * @Date:   29-11-2024 09:16:54\r\n * @Last Modified by:   0K0 <contact@oko.app>\r\n * @Last Modified time: 30-11-2024 00:08:08\r\n */\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { AfterContentInit, AfterViewChecked, HostBinding, Component, ContentChildren, Input, HostListener, QueryList, ElementRef } from '@angular/core';\r\nimport { SlideComponent } from './slide.component';\r\nimport { IconsComponent } from '@teenageinterface/icons'\r\nimport { SafeStyle } from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n  selector: 'tiCarousel',\r\n  imports: [CommonModule, SlideComponent, IconsComponent],\r\n  templateUrl: './carousel.component.html',\r\n  styleUrl: './tailwind.css',\r\n  styles: [`:host{ display: block; }`]\r\n})\r\nexport class CarouselComponent implements AfterContentInit, AfterViewChecked {\r\n  @ContentChildren(SlideComponent) slides!: QueryList<SlideComponent>;\r\n  public slideList: SlideComponent[] = [];\r\n  public currentIndex: number = 0;\r\n  private autoSlideInterval: any;\r\n  private isDragging: boolean = false;\r\n  private startX: number = 0;\r\n  private currentTranslate: number = 0;\r\n  private prevTranslate: number = 0;\r\n  private isInitialized = false;\r\n\r\n  @Input() autoSlideTime = 3000;\r\n  @Input() autoSlide: boolean = true;\r\n  @Input() dot: boolean = true;\r\n  @Input() controls: boolean = true;\r\n  @Input() width: number = 320;\r\n  @Input() infinite: boolean = true;\r\n  @Input() type: \"classic\" | \"modern\" = \"modern\";\r\n\r\n  @HostListener('window:resize')\r\n  onWindowResize(): void {\r\n    this.updateSlideWidths();\r\n  }\r\n\r\n  @HostBinding('style.width')\r\n  setWidth: SafeStyle = this.type === 'modern' ? (this.width + (this.width / 2)) + 'px' : this.width + 'px';\r\n\r\n\r\n  constructor(private hostRef: ElementRef) {}\r\n\r\n  ngAfterViewChecked(): void {\r\n    if (!this.isInitialized && this.hostRef.nativeElement.offsetWidth > 0) {\r\n      this.updateSlideWidths();\r\n      this.slides.forEach((slide: SlideComponent, i) => {\r\n        slide.width = this.width;\r\n        slide.index = i;\r\n        slide.currentIndex = this.currentIndex;\r\n        slide.type = this.type;\r\n        if(i === this.currentIndex) slide.active = true;\r\n        else slide.active = false;\r\n      });\r\n      this.slideList = this.slides.toArray();\r\n      if(this.autoSlide)\r\n        this.startAutoSlide();\r\n      this.isInitialized = true;\r\n    }\r\n  }\r\n\r\n  public ngAfterContentInit(): void {\r\n    this.updateSlideWidths();\r\n  }\r\n\r\n  private updateSlideWidths(): void {\r\n    this.width = this.hostRef.nativeElement.offsetWidth;\r\n    if (this.width === 0) return;\r\n    this.setWidth = this.type === 'modern' ? (this.width + (this.width / 2)) + 'px' : this.width + 'px';\r\n    this.slides.forEach((slide: SlideComponent) => {\r\n      slide.width = this.width;\r\n    });\r\n  }\r\n\r\n  private startAutoSlide(): void {\r\n    if(!this.autoSlide) return;\r\n\r\n    this.autoSlideInterval = setInterval(() => {\r\n      this.nextSlide();\r\n    }, this.autoSlideTime);\r\n  }\r\n\r\n  public pauseAutoSlide(): void {\r\n    if (this.autoSlideInterval) {\r\n      clearInterval(this.autoSlideInterval);\r\n    }\r\n  }\r\n\r\n  public resumeAutoSlide(): void {\r\n    if(!this.autoSlide) return;\r\n      this.startAutoSlide();\r\n  }\r\n\r\n  public goToSlide(index: number): void {\r\n    this.currentIndex = index;\r\n  }\r\n\r\n  public nextSlide(): void {\r\n    if(this.currentIndex === (this.slideList.length - 1) && !this.infinite) return;\r\n\r\n    this.currentIndex = (this.currentIndex + 1) % this.slideList.length;\r\n    this.slides.forEach((slide: SlideComponent, i) => {\r\n      slide.currentIndex = this.currentIndex;\r\n      if(i === this.currentIndex) slide.active = true;\r\n      else slide.active = false;\r\n    });\r\n  }\r\n\r\n  public prevSlide(): void {\r\n    if(this.currentIndex === 0 && !this.infinite) return;\r\n\r\n    this.currentIndex = (this.currentIndex - 1 + this.slideList.length) % this.slideList.length;\r\n    this.slides.forEach((slide: SlideComponent, i) => {\r\n      slide.currentIndex = this.currentIndex;\r\n      if(i === this.currentIndex) slide.active = true;\r\n      else slide.active = false;\r\n    });\r\n  }\r\n\r\n  onDragStart(event: MouseEvent): void {\r\n    this.isDragging = true;\r\n    this.startX = event.clientX;\r\n    this.prevTranslate = this.currentTranslate;\r\n    event.preventDefault();\r\n  }\r\n\r\n  onDrag(event: MouseEvent): void {\r\n    if (!this.isDragging) return;\r\n\r\n    const currentX = event.clientX;\r\n    const deltaX = currentX - this.startX;\r\n    this.currentTranslate = this.prevTranslate + deltaX;\r\n  }\r\n\r\n  onDragEnd(event: MouseEvent): void {\r\n    if (!this.isDragging) return;\r\n\r\n    this.isDragging = false;\r\n    const movedBy = this.currentTranslate - this.prevTranslate;\r\n\r\n    if (movedBy < -50 && this.currentIndex < this.slideList.length - 1) {\r\n      this.nextSlide();\r\n    } else if (movedBy > 50 && this.currentIndex > 0) {\r\n      this.prevSlide();\r\n    }\r\n  }\r\n}\r\n","<div class=\"relative w-full mb-8\" [style.width]=\"type === 'modern' ? ((width + (width / 2)) + 'px') : (width + 'px')\" (mouseenter)=\"pauseAutoSlide()\" (mouseleave)=\"resumeAutoSlide()\">\r\n\r\n  <div\r\n  class=\"absolute cursor-pointer transition duration-300 text-neutral-800 dark:text-neutral-300 hover:text-neutral-950 hover:dark:text-neutral-50 z-10 flex items-center justify-center\"\r\n  [class.top-0]=\"type === 'modern'\"\r\n  [class.left-0]=\"type === 'modern'\"\r\n  [class.h-full]=\"type === 'modern'\"\r\n  [class.rounded-full]=\"type === 'classic'\"\r\n  [class.p-4]=\"type === 'classic'\"\r\n  [class.border]=\"type === 'classic'\"\r\n  [class.dark:border-neutral-700]=\"type === 'classic'\"\r\n  [class.border-neutral-300]=\"type === 'classic'\"\r\n  [ngClass]=\"{'w-1/6': type === 'modern', 'top-1/2 -translate-y-1/2 -left-20 hover:bg-neutral-100 hover:dark:bg-neutral-900 hover:border-neutral-400 hover:dark:border-neutral-600 active:scale-95': type === 'classic'}\"\r\n  (click)=\"prevSlide()\"\r\n  *ngIf=\"controls\">\r\n    <tiIcon *ngIf=\"type !== 'modern'\" icon=\"chevron_left\" other=\"!w-5 !h-5\" />\r\n  </div>\r\n\r\n  <div\r\n  class=\"relative flex justify-center overflow-hidden w-full cursor-grab active:cursor-grabbing\"\r\n  [style.mask-image]=\"type ==='modern' ? 'linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 15%, rgba(0,0,0,1) 50%, rgba(0,0,0,1) 85%, rgba(0,0,0,0) 100%)' : ''\"\r\n  (mousedown)=\"onDragStart($event)\"\r\n  (mouseup)=\"onDragEnd($event)\"\r\n  (mouseleave)=\"onDragEnd($event)\"\r\n  (mousemove)=\"onDrag($event)\">\r\n    <div class=\"flex transition-transform duration-300 ease-in-out\" [style.width]=\"width + 'px'\" [style.transform]=\"'translateX(-' + currentIndex * 100 + '%)'\">\r\n      <ng-container *ngFor=\"let slide of slideList; let i = index\">\r\n        <ng-content></ng-content>\r\n      </ng-container>\r\n    </div>\r\n  </div>\r\n\r\n  <div\r\n  class=\"absolute cursor-pointer transition duration-300 text-neutral-800 dark:text-neutral-300 hover:text-neutral-950 hover:dark:text-neutral-50 z-10 flex items-center justify-center\"\r\n  [class.top-0]=\"type === 'modern'\"\r\n  [class.right-0]=\"type === 'modern'\"\r\n  [class.h-full]=\"type === 'modern'\"\r\n  [class.rounded-full]=\"type === 'classic'\"\r\n  [class.p-4]=\"type === 'classic'\"\r\n  [class.border]=\"type === 'classic'\"\r\n  [class.dark:border-neutral-700]=\"type === 'classic'\"\r\n  [class.border-neutral-300]=\"type === 'classic'\"\r\n  [ngClass]=\"{'w-1/6': type === 'modern', 'top-1/2 -translate-y-1/2 -right-20 hover:bg-neutral-100 hover:dark:bg-neutral-900 hover:border-neutral-400 hover:dark:border-neutral-600 active:scale-95': type === 'classic'}\"\r\n  (click)=\"nextSlide()\"\r\n  *ngIf=\"controls\">\r\n    <tiIcon *ngIf=\"type !== 'modern'\" icon=\"chevron_right\" other=\"!w-5 !h-5\" />\r\n  </div>\r\n\r\n  <div *ngIf=\"dot\" class=\"absolute -bottom-8 left-1/2 -translate-x-1/2 flex gap-2\">\r\n    <span\r\n    *ngFor=\"let index of slideList; let i = index\"\r\n    class=\"w-3 h-2 rounded-full dark:bg-neutral-700 bg-neutral-400 cursor-pointer transition-all duration-300\"\r\n    [class.dark:!bg-neutral-50]=\"i === currentIndex\"\r\n    [class.!bg-neutral-950]=\"i === currentIndex\"\r\n    [class.!w-6]=\"i === currentIndex\"\r\n    (click)=\"goToSlide(i)\">\r\n    </span>\r\n  </div>\r\n</div>\r\n","/*\r\n * Public API Surface of carousel\r\n */\r\n\r\nexport * from './lib/slide.component';\r\nexport * from './lib/carousel.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}