{"version":3,"file":"webresto-components-product-mediafile.mjs","sources":["../../../projects/components/product-mediafile/product-mediafile.component.ts","../../../projects/components/product-mediafile/product-mediafile.component.html","../../../projects/components/product-mediafile/webresto-components-product-mediafile.ts"],"sourcesContent":["import { AsyncPipe, NgIf } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Renderer2,\n  ViewEncapsulation\n} from '@angular/core';\nimport { deepClone, isValue } from '@axrl/common';\nimport { Dish } from '@webresto/ng-gql';\n\n@Component({\n  selector: 'product-mediafile',\n  host: {\n    class: 'product-mediafile',\n  },\n  standalone: true,\n  imports: [\n    NgIf,\n    AsyncPipe,\n  ],\n  templateUrl: './product-mediafile.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\n\nexport class ProductMediaFileComponent implements OnChanges, OnDestroy {\n    currentImageSrc: string | undefined;\n    private currentImageIndex = 0;\n    private _product: Partial<Dish> | undefined | null;\n\n    private imageChangeInterval: any;\n    private preloadedImages: HTMLImageElement[] = [];\n    private progress: number = 100;\n    private progressInterval: any;\n    private progressBarElement: HTMLElement | null = null;\n\n    @Input('product') set product(value: Partial<Dish> | undefined | null) {\n      if (this._product !== value) {\n        this._product = isValue(value) ? deepClone(value) : value;\n        this.currentImageIndex = 0;\n        this.updateImageSrc();\n      }\n    }\n\n    @Input() baseImageURL: string | undefined;\n    @Input() usePlaceholder: boolean = true;\n    /**\n     * Показывать только одну картинку 0\n     */\n    @Input() single: boolean = false;\n    @Input() imageClick?: () => void;\n    @Input() placeholderSrc: string | undefined;\n\n    get product(): Partial<Dish> | undefined | null {\n      return this._product;\n    }\n\n    constructor(private elementRef: ElementRef<HTMLImageElement>, private renderer: Renderer2, private cd: ChangeDetectorRef) {}\n  \n    ngOnChanges(): void {\n      this.updateImageSrc();\n    }\n  \n    ngOnDestroy(): void {\n      this.clearImageRotation();\n    }\n  \n    onMouseEnter(): void {\n      if(this.single) return;\n      if (this.product?.images && this.product.images.length > 1) {\n\n        this.preloadNextImage();       \n        this.startImageRotation();\n      }\n    }\n  \n    onImageClick(): void {\n\n\n      if (this.imageClick) {\n        return this.imageClick()\n      }\n       \n      // Immediately switch to the next image\n      if (this.product?.images && this.product.images.length > 1) {\n        this.currentImageIndex = (this.currentImageIndex + 1) % this.product.images.length;\n        this.updateImageSrc();\n        this.progress = 100;\n        this.resetProgressBar(); // Reset the progress bar after switching\n      }\n    }\n\n    onMouseLeave(): void {\n      if(this.single) return;\n      if (this.product?.images && this.product.images.length > 1) {\n        this.clearImageRotation();\n        this.currentImageIndex = 0;\n\n        this.updateImageSrc();\n        this.removeProgressBar();\n      }\n    }\n  \n    private startImageRotation(): void {\n      if (this.single) return;\n      \n      this.clearImageRotation();\n      \n      // Создаем полоску прогресса\n      this.createProgressBar();\n  \n      // Start rotating images after a delay\n      this.imageChangeInterval = setInterval(() => {\n        this.currentImageIndex = (this.currentImageIndex + 1) % this.product!.images!.length;\n        this.updateImageSrc();\n        this.preloadNextImage();  // Preload next image\n        this.resetProgressBar();\n      }, 1500); // время переключение было один раз запрошено, если его менять надо выность в переменную\n  \n      // Start the progress bar\n      this.startProgressBar();\n    }\n    \n    private preloadNextImage(): void {\n      if (this.product?.images) {\n        // Preload the next image in the sequence\n        const nextImageIndex = (this.currentImageIndex + 1) % this.product.images.length;\n        const nextImageSrc = this._getDishImageSrc('small', nextImageIndex); // Load the next image based on the index\n        \n        if (nextImageSrc) {\n          const imgElement = new Image();\n          imgElement.src = nextImageSrc; // Preload next image\n        }\n      }\n    }\n  \n    private clearImageRotation(): void {\n      if (this.imageChangeInterval) {\n        clearInterval(this.imageChangeInterval);\n        this.imageChangeInterval = null;\n      }\n  \n      if (this.progressInterval) {\n        clearInterval(this.progressInterval);\n      }\n    }\n  \n    private updateImageSrc(): void {\n      if (isValue(this.product) && isValue(this.baseImageURL)) {\n        const src = this._getDishImageSrc();\n        if (isValue(src)) {\n          this.currentImageSrc = src;\n          this.cd.detectChanges();\n          return;\n        } else if (this.usePlaceholder) {\n          const srcPlaceholder = this._getDishImageSrc('placeholder');\n          if (isValue(srcPlaceholder)) {\n            this.currentImageSrc = srcPlaceholder;\n            this.cd.detectChanges();\n            return;\n          }\n        }\n      }\n    \n      if (!this.usePlaceholder || !isValue(this._getDishImageSrc('placeholder'))) {\n        this.currentImageSrc = ''; \n        this.cd.detectChanges();\n      }\n    }    \n  \n    errImg(): void {\n      if (this.usePlaceholder) {\n        const src = this._getDishImageSrc('placeholder');\n        console.log(src, 123)\n        if (isValue(src)) {\n          this.currentImageSrc = src;\n          return;\n        }\n      }\n    }    \n  \n    private _getDishImageSrc(type: 'large' | 'small' | 'placeholder' = 'small', index: number = this.currentImageIndex): string | null {\n      const protocol = window.location.protocol === 'app:' ? 'https:' : window.location.protocol;\n      const baseUrl = this.baseImageURL?.replace(/http:|https:/, protocol);\n      \n      if(type === \"placeholder\"){\n        return this.placeholderSrc ?? null\n        // const placeholderGroupImg = this.product?.parentGroup?.dishesPlaceholder?.images?.small;\n        // if (isValue(placeholderGroupImg)) {\n        //   return new URL(placeholderGroupImg, baseUrl).href;\n        // } else {\n        // }\n      }\n      \n      const key = type === 'large' ? 'large' : 'small';\n      const img = this.product?.images?.[index]?.images?.[key];\n\n      // Get the image URL by the current index or provided index\n      if(isValue(img)) {\n        return new URL(img, baseUrl).href;\n      }\n\n      return null;\n    }\n    \n    private createProgressBar(): void {\n      if (this.progressBarElement) {\n        this.renderer.removeChild(this.elementRef.nativeElement.parentNode, this.progressBarElement);\n        this.progressBarElement = null;\n      }\n  \n      this.progressBarElement = this.renderer.createElement('div');\n      const imageWrapperElement = this.elementRef.nativeElement.parentNode;\n  \n      this.renderer.setStyle(imageWrapperElement, 'position', 'relative');\n  \n      const imageElement = this.renderer.selectRootElement('img', true);\n      const imageWidth = imageElement ? imageElement.offsetWidth : 0;\n  \n      this.renderer.setStyle(this.progressBarElement, 'position', 'absolute');\n      this.renderer.setStyle(this.progressBarElement, 'bottom', '0');\n      this.renderer.setStyle(this.progressBarElement, 'left', '0');\n      this.renderer.setStyle(this.progressBarElement, 'height', '3px');\n      this.renderer.setStyle(this.progressBarElement, 'background-color', 'red');\n      this.renderer.setStyle(this.progressBarElement, 'width', `${imageWidth}px`);\n      this.renderer.setStyle(this.progressBarElement, 'z-index', '1');\n  \n      this.renderer.appendChild(imageWrapperElement, this.progressBarElement);\n    }\n  \n    private startProgressBar(): void {\n      this.progress = 100;\n  \n      this.progressInterval = setInterval(() => {\n        this.progress -= 100 / (1500 / 50);\n        if (this.progress < 0) {\n          this.progress = 100;\n        }\n        if (this.progressBarElement) {\n          this.renderer.setStyle(this.progressBarElement, 'width', `${this.progress}%`);\n        }\n      }, 50);\n    }\n  \n    private resetProgressBar(): void {\n      if (this.progressInterval) {\n        clearInterval(this.progressInterval);\n      }\n      this.startProgressBar();\n    }\n  \n    private removeProgressBar(): void {\n      if (this.progressBarElement) {\n        this.renderer.removeChild(this.elementRef.nativeElement.parentNode, this.progressBarElement);\n        this.progressBarElement = null;\n        if (this.progressInterval) {\n          clearInterval(this.progressInterval);\n          this.progressInterval = null;\n        }\n      }\n    }\n  }","<div class=\"product-mediafile-wrapper\">\n  <img\n    [src]=\"currentImageSrc\"\n    (error)=\"errImg()\"\n    alt=\"{{ product?.seoTitle || product?.name }}\"\n    class=\"product-mediafile-image\"\n    (mouseenter)=\"onMouseEnter()\"\n    (mouseleave)=\"onMouseLeave()\"\n    (click)=\"onImageClick()\"\n  />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}