{"version":3,"file":"webresto-components-directives.mjs","sources":["../../../projects/components/directives/dish-image-src/dish-image-src.directive.ts","../../../projects/components/directives/webresto-components-directives.ts"],"sourcesContent":["import { Directive, ElementRef, Input, OnChanges, Renderer2 } from '@angular/core';\nimport { deepClone, isValue } from '@axrl/common';\nimport type { Dish } from '@webresto/ng-gql';\n\n@Directive({\n  selector: '[restoProductImageSrc]',\n  host: {\n    '(error)': 'errImg()'\n  },\n  standalone: true,\n})\n/**\n * @deprecated Use product-mediafile instead\n */\nexport class RestoProductImageSrcDirective implements OnChanges {\n  private _dish: Partial<Dish> | undefined | null;\n  private currentImageIndex = 0;\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('restoProductImageSrc') set dish(value: Partial<Dish> | undefined | null) {\n    if (this._dish !== value) {\n      this._dish = isValue(value) ? deepClone(value) : value;\n    }\n  }\n\n  get dish(): Partial<Dish> | undefined | null {\n    return this._dish;\n  }\n\n  @Input() imageLink: string | undefined;\n  @Input() usePlaceholder: boolean = true;\n  @Input() placeholderSrc: string | undefined;\n\n  constructor(private elementRef: ElementRef<HTMLImageElement>, private renderer: Renderer2) {}\n\n  ngOnChanges(): void {\n    if (isValue(this.dish) && isValue(this.imageLink)) {\n      const src = this._getDishImageSrc();\n      console.log(src, 999)\n      if (isValue(src)) {\n        this.renderer.removeAttribute(this.elementRef.nativeElement, 'src');\n        this.renderer.setAttribute(this.elementRef.nativeElement, 'src', src);\n        return;\n      } else {\n        const srcPlaceholder = this._getDishImageSrc('placeholder');\n        if (isValue(srcPlaceholder)) {\n          this.renderer.removeAttribute(this.elementRef.nativeElement, 'src');\n          this.renderer.setAttribute(this.elementRef.nativeElement, 'src', srcPlaceholder);\n        }\n      }\n    }\n  }\n\n\n\n\n  errImg(): void {\n    if (this.usePlaceholder) {\n      const src = this._getDishImageSrc('placeholder');\n      if (isValue(src)) {\n        this.renderer.removeAttribute(this.elementRef.nativeElement, 'src');\n        this.renderer.setAttribute(this.elementRef.nativeElement, 'src', 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.imageLink?.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.dish?.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  \n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}