{"version":3,"file":"191.js","mappings":"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","sources":["./src/app/blocks/product-unit/product-unit.component.html","./src/app/blocks/product-unit/product-unit.component.ts","./src/app/components/modifier-list/modifier-list.abstract.ts","./src/app/shared/pipes/price.pipe.ts","./src/app/components/modifier-list/single-modifiers/single-modifiers.component.html","./src/app/components/modifier-list/single-modifiers/single-modifiers.component.ts","./src/app/components/modifier-list/group-modifiers/group-modifiers.component.html","./src/app/components/modifier-list/group-modifiers/group-modifiers.component.ts","./src/app/components/modifier-list/modifier-list.component.html","./src/app/components/modifier-list/modifier-list.component.ts","./src/app/components/modifier-list/modifier-list.module.ts","./src/app/layout/common/components/size-picker.abstract.ts","./src/app/layout/common/product-info-page.abstract.ts","./src/app/layout/fresh/components/fresh-portion-list/fresh-portion-list.component.html","./src/app/layout/fresh/components/fresh-portion-list/fresh-portion-list.component.ts","./src/app/layout/fresh/components/fresh-size-picker/fresh-size-picker.component.html","./src/app/layout/fresh/components/fresh-size-picker/fresh-size-picker.component.ts","./src/app/layout/fresh/fresh-product-info-page/fresh-product-info-page.component.html","./src/app/layout/fresh/fresh-product-info-page/fresh-product-info-page.dynamic.component.ts","./src/app/layout/fresh/components/product-card/product-card.component.html","./src/app/layout/fresh/components/product-card/product-card.component.ts","./src/app/layout/fresh/fresh-product-info-page/fresh-product-info-page.component.ts"],"sourcesContent":["
\n {{ value | number: '1.0-0' }} \n \n g\n ml\n kg\n l\n g\n \n
\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-product-unit',\n standalone: true,\n templateUrl: './product-unit.component.html',\n styleUrls: ['./product-unit.component.scss'],\n imports: [\n CommonModule,\n ]\n})\nexport class ProductUnitComponent {\n @Input() value: number;\n @Input() unit: string;\n}\n","import { Directive, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { ItemModifier } from '../../api/v1/models/item-modifier';\nimport { ControlValueAccessor, FormControl, FormGroup, ValidationErrors } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { FormModifierItem, ModifierItem } from './modifier-item.interface';\nimport { ItemModifierGroup } from 'src/app/api/v1/models';\n\n@Directive()\nexport abstract class ModifierListAbstract implements ControlValueAccessor, OnDestroy {\n @Input() minCount: number = 0;\n @Input() maxCount: number = 0;\n @Input() items: ItemModifier[];\n @Input() isCheckMinMaxRestrictions: boolean;\n @Input() modifierGroup: ItemModifierGroup;\n\n @Output() changeValue = new EventEmitter();\n\n totalCount: number = 0;\n form: FormGroup = new FormGroup({});\n private formChangeSub: Subscription;\n\n abstract getFormData(): T[] | null;\n abstract writeFormValue(formData: T[]): void;\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n setTimeout(() => {\n this.update();\n });\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n writeValue(obj: T[] | null): void {\n if(!obj) {return}\n this.writeFormValue(obj);\n }\n\n validate(control: FormControl): ValidationErrors | null {\n const value = control.getRawValue();\n\n this.totalCount = value ?\n value.reduce((total, currentItem) => total + currentItem.quantity, 0) : 0;\n\n if (this.totalCount < this.minCount) {\n return {minCount: {actualCount: this.totalCount, requiredCount: this.minCount}}\n }\n\n return null;\n }\n\n ngOnDestroy(): void {\n this.formChangeSub?.unsubscribe();\n }\n\n protected update(): void {\n this.onChange(this.getFormData());\n this.changeValue.emit();\n }\n\n protected getFormItem(): FormGroup {\n return new FormGroup({\n name: new FormControl('', {nonNullable: true}),\n quantity: new FormControl(0, {nonNullable: true}),\n freeQuantity: new FormControl(0, {nonNullable: true}),\n sku: new FormControl('', {nonNullable: true}),\n prices: new FormControl(null, {nonNullable: true}),\n itemGroupId: new FormControl('', {nonNullable: true}),\n })\n }\n\n protected isCheckDisabledItem(index: number): boolean {\n return this.isCheckMinMaxRestrictions && !this.items[index].restrictions.maxQuantity;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { MenuPrice } from '../../api/v1/models/menu-price';\nimport { ConfigRepository } from '../repositories/config.repository';\n\n@Pipe({\n name: 'outletPrice',\n standalone: true\n})\nexport class OutletPricePipe implements PipeTransform {\n constructor(private configRepository: ConfigRepository) { }\n\n transform(MenuPrices: MenuPrice[]): Observable {\n return this.configRepository.activeOutletId$.pipe(\n map((id) => id ? MenuPrices.find(p => p.storeId == id)?.price : null)\n )\n }\n}\n","\n \n \n
\n
\n
{{ item.name }}
\n
\n \n\n \n
\n \n
\n
\n +\n
\n
\n\n
\n Not available\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n","import { Component, forwardRef } from '@angular/core';\nimport { ModifierListAbstract } from '../modifier-list.abstract';\nimport { FormArray, FormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FormModifierItem, ModifierItem } from '../modifier-item.interface';\nimport { ItemModifier } from 'src/app/api/v1/models';\n\n@Component({\n selector: 'app-single-modifiers',\n templateUrl: './single-modifiers.component.html',\n styleUrls: ['./single-modifiers.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SingleModifiersComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SingleModifiersComponent),\n multi: true,\n }\n ]\n})\nexport class SingleModifiersComponent extends ModifierListAbstract {\n constructor() {\n super();\n }\n\n isOverflow: boolean = false;\n formArray = new FormArray>([]);\n\n onChangeCount(): void {\n this.isOverflow = this.isCheckOverflow();\n this.update();\n }\n\n override writeFormValue(formData: ModifierItem[]): void {\n if (!this.form.contains('modifiers')) {\n formData.forEach(item => {\n const group = this.getFormItem();\n group.patchValue(item);\n this.formArray.push(group);\n });\n this.form.addControl('modifiers', this.formArray);\n } else if (this.form.controls['modifiers'].value.length === formData.length) {\n this.form.controls['modifiers'].setValue(formData);\n }\n }\n\n override getFormData(): ModifierItem[] | null {\n return this.formArray.getRawValue().length ? this.formArray.getRawValue() : null;\n }\n\n private isCheckOverflow(): boolean {\n if (this.maxCount === 0) {\n return false;\n }\n let totalCount = 0;\n\n this.formArray.getRawValue().forEach(value => {\n totalCount += value.quantity;\n });\n\n return totalCount >= this.maxCount;\n }\n\n isFree(item: ItemModifier, freeQuantity: number) {\n const groupFreeQuantity = this.modifierGroup.restrictions.freeQuantity;\n const currentFreeQuantity = this.formArray.getRawValue().reduce((total, value) => total += value.freeQuantity, 0);\n\n return this.isCheckMinMaxRestrictions\n ? freeQuantity < item.restrictions.freeQuantity && currentFreeQuantity < groupFreeQuantity\n : currentFreeQuantity < groupFreeQuantity;\n }\n}\n","\n \n
\n
\n
{{ item.name }}
\n
\n \n
\n \n
\n
\n \n +\n \n
\n
\n Not available\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n\n","import { Component, forwardRef } from '@angular/core';\nimport { ModifierListAbstract } from '../modifier-list.abstract';\nimport { ModifierItem } from '../modifier-item.interface';\nimport { FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ItemModifier } from '../../../api/v1/models/item-modifier';\n\n@Component({\n selector: 'app-group-modifiers',\n templateUrl: './group-modifiers.component.html',\n styleUrls: ['./group-modifiers.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => GroupModifiersComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => GroupModifiersComponent),\n multi: true,\n }\n ]\n})\nexport class GroupModifiersComponent extends ModifierListAbstract {\n constructor () {\n super();\n }\n\n static nextId = 0;\n groupName = `item_${GroupModifiersComponent.nextId++}`;\n\n /*\n * formGroup - хранит внешний формат ответа\n * formControl используется для внутренней работы радиокнопок\n * */\n formGroup = this.getFormItem();\n formControl = new FormControl(null);\n\n onChangeCount(item: ItemModifier): void {\n this.formGroup.controls.name.setValue(item.name);\n this.formGroup.controls.sku.setValue(item.sku);\n this.formGroup.controls.prices.setValue(item.prices);\n this.formGroup.controls.quantity.setValue(1);\n this.formGroup.controls.freeQuantity.setValue(this.isNotFree(item, item.prices[0].price) ? 0 : 1);\n this.update();\n }\n\n override writeFormValue (formData: ModifierItem[]): void {\n if(formData && formData.length && formData[0].quantity) {\n const activeItemIndex = this.items.findIndex(item => item.sku === formData[0].sku);\n if(this.isCheckDisabledItem(activeItemIndex)) {return}\n\n this.formControl.setValue(formData[0].sku);\n this.formGroup.patchValue(formData[0]);\n }\n this.formGroup.controls.itemGroupId.setValue(formData[0].itemGroupId)\n }\n\n override getFormData (): ModifierItem[] | null {\n const value = this.formGroup.getRawValue();\n return value.quantity ? [value] : null;\n }\n\n isNotFree(item: ItemModifier, price: number | null | undefined): boolean {\n const groupFreeQuantity = this.modifierGroup.restrictions.freeQuantity;\n return this.isCheckMinMaxRestrictions\n ? !!price && item.balance !== 0 && (item.restrictions.freeQuantity === 0 || groupFreeQuantity === 0)\n : !!price && item.balance !== 0 && groupFreeQuantity === 0;\n }\n}\n","
\n
\n

{{ modifierGroup.name }}

\n
\n \n Select {{ maxCount }}\n \n\n \n Select to {{ maxCount }}\n \n\n 0 && minCount !== maxCount\">\n Select from {{ minCount }}\n \n to {{ maxCount }}\n \n \n\n \n Select\n \n
\n
\n\n \n\n \n
\n\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator\n} from '@angular/forms';\nimport { ItemModifierGroup } from '../../api/v1/models/item-modifier-group';\nimport { ModifierItem } from './modifier-item.interface';\n\n@Component({\n selector: 'app-modifier-list',\n templateUrl: './modifier-list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ModifierListComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => ModifierListComponent),\n multi: true,\n }\n ]\n})\nexport class ModifierListComponent implements ControlValueAccessor, Validator {\n constructor (\n private cdr: ChangeDetectorRef\n ) {}\n\n validate(control: FormControl): ValidationErrors | null {\n return this.formControl.valid ? null : this.formControl.errors\n }\n\n @Input() modifierGroup: ItemModifierGroup;\n\n @Input() isGroupModifier: boolean;\n @Input() minCount: number;\n @Input() maxCount: number;\n @Input() byDefault: number;\n\n @Output() changeModifiers = new EventEmitter();\n\n formControl = new FormControl(null);\n\n onChange = (items: ModifierItem[] | null) => {};\n onTouched: any = () => {};\n\n registerOnChange (fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched (fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState (isDisabled: boolean): void {\n }\n\n writeValue(obj: ModifierItem[]): void {\n this.formControl.setValue(obj)\n }\n\n onChangeModifiers(): void {\n this.onChange(this.formControl.getRawValue())\n this.changeModifiers.emit(this.formControl.getRawValue());\n\n this.cdr.detectChanges();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SingleModifiersComponent } from './single-modifiers/single-modifiers.component';\nimport { GroupModifiersComponent } from './group-modifiers/group-modifiers.component';\nimport { ModifierListComponent } from './modifier-list.component';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CounterComponent } from '../../shared/components/counter/counter.component';\nimport { CurrencyComponent } from '../../shared/components/price/currency.component';\nimport { OutletPricePipe } from '../../shared/pipes/price.pipe';\n\n@NgModule({\n declarations: [\n SingleModifiersComponent,\n GroupModifiersComponent,\n ModifierListComponent,\n ],\n exports: [\n SingleModifiersComponent,\n GroupModifiersComponent,\n ModifierListComponent\n ],\n imports: [\n CommonModule,\n MatRadioModule,\n ReactiveFormsModule,\n CounterComponent,\n CurrencyComponent,\n OutletPricePipe,\n ]\n})\nexport class ModifierListModule { }\n","import { Directive, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { MenuItemSizeDto } from \"src/app/api/v1/models\";\n\n@Directive()\nexport abstract class SizePickerAbstract implements OnInit {\n @Input() sizes: MenuItemSizeDto[];\n @Output() pickSize: EventEmitter = new EventEmitter()\n\n currentSize: MenuItemSizeDto;\n\n ngOnInit(): void {\n const defaultSize = this.sizes.find(size => size.isDefault);\n this.currentSize = defaultSize ?? this.sizes[0];\n }\n\n onChangeSize(size: MenuItemSizeDto): void {\n this.currentSize = size;\n this.pickSize.emit(size)\n }\n}","import { ChangeDetectorRef, Directive, OnInit, ViewChild } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { filter, map, Observable, switchMap, tap } from 'rxjs';\nimport { ItemModifier, ItemModifierGroup, MenuItemDto, MenuItemSizeDto, MenuPrice } from 'src/app/api/v1/models';\nimport { ModifierItem } from 'src/app/components/modifier-list/modifier-item.interface';\nimport { SeoService } from 'src/app/services/seo.service';\nimport { ModalSwipeDirective } from 'src/app/shared/directives/modal-swipe/modal-swipe.directive';\nimport { UIMenuItemDto } from 'src/app/shared/interfaces/ui-menu-item-dto.interface';\nimport { ConfigRepository } from 'src/app/shared/repositories/config.repository';\nimport { MenuListRepository } from 'src/app/shared/repositories/menu-list.repository';\nimport { BasketRepository } from 'src/app/shared/repositories/basket.repository';\nimport { BreakpointService } from 'src/app/shared/services/breakpoint.service';\nimport { SessionRepository } from 'src/app/shared/repositories/session.repository';\n\n/**\n * Описывает форму\n */\ninterface IForm {\n count: FormControl;\n item: FormControl;\n modifiers: FormArray>;\n}\n\n@Directive()\nexport abstract class ProductInfoPageAbstract implements OnInit {\n\n @ViewChild(ModalSwipeDirective) modalSwipe: ModalSwipeDirective;\n\n private storeId: number = this.configStore.activeOutletId;\n\n form: FormGroup = new FormGroup({\n item: new FormControl(null),\n count: new FormControl(1, { nonNullable: true }),\n modifiers: new FormArray>([]),\n });\n modifiersArray = new FormArray>([]);\n currentSize!: MenuItemSizeDto;\n firstSize!: MenuItemSizeDto;\n totalPrice: number = 0;\n\n data$: Observable;\n isBasketMode$: Observable = this.configStore.isBasketMode$;\n\n constructor(\n protected route: ActivatedRoute,\n protected router: Router,\n protected menuListRepository: MenuListRepository,\n protected basketStore: BasketRepository,\n protected configStore: ConfigRepository,\n public breakPoint: BreakpointService,\n protected seoService: SeoService,\n protected cdr: ChangeDetectorRef,\n protected sessionRepository: SessionRepository,\n ) { }\n\n protected getProductData(): Observable {\n return this.route.params.pipe(\n map(params => params['slug']),\n filter((slug): slug is string => !!slug),\n map(slug => ({slug, categoryId: null})),\n switchMap(productParams => this.menuListRepository.getItemBySlugFromCategory(productParams.slug, productParams.categoryId)),\n )\n }\n\n ngOnInit(): void {\n this.data$ = this.getProductData().pipe(\n tap(data => {\n if (!data) { return; }\n this.form.controls.item.setValue(data)\n\n const defaultSize = data.itemSizes.find(size => size.isDefault);\n\n this.currentSize = defaultSize ?? data.itemSizes[0];\n this.firstSize = defaultSize ?? data.itemSizes[0];\n\n this.prepareFormArray(this.currentSize.itemModifierGroups);\n\n this.updateTotalPrice();\n\n this.seoService.setDynamicDataMetaTags(data.name, data.description);\n\n this.cdr.markForCheck();\n })\n )\n }\n\n private prepareFormArray(groups: ItemModifierGroup[]): void {\n this.modifiersArray.clear();\n\n groups.forEach(group => {\n const control = new FormControl(null);\n\n if (group.restrictions.maxQuantity === 1) {\n control.setValue(this.getGroupData(group.items, group.itemGroupId));\n }\n else {\n control.setValue(this.getSingleData(group.items, group.itemGroupId))\n }\n\n this.modifiersArray.push(control);\n })\n\n this.form.setControl('modifiers', this.modifiersArray);\n }\n\n private getPriceByStoreId(prices: MenuPrice[], outletId: number): number {\n return prices.find(price => price.storeId === outletId)?.price || 0\n }\n\n private getSingleData(items: ItemModifier[], groupId: string): ModifierItem[] | null {\n const data: ModifierItem[] = [];\n\n items.forEach(item => {\n data.push({\n name: item.name,\n quantity: item.restrictions.byDefault,\n sku: item.sku,\n prices: item.prices,\n itemGroupId: groupId,\n freeQuantity: 0,\n })\n })\n\n return data.length ? data : null;\n }\n\n private getGroupData(items: ItemModifier[], groupId: string): ModifierItem[] | null {\n let data: ModifierItem | null = {\n name: '',\n quantity: 0,\n sku: '',\n prices: null,\n itemGroupId: groupId,\n freeQuantity: 0,\n };\n\n for (let i = 0; i < items.length; i++) {\n if (items[i].restrictions.byDefault) {\n data = {\n name: items[i].name,\n quantity: items[i].restrictions.byDefault,\n sku: items[i].sku,\n prices: items[i].prices,\n itemGroupId: groupId,\n freeQuantity: items[i].restrictions.freeQuantity,\n }\n break;\n }\n }\n\n return [data];\n }\n\n protected getModifiersPrice(): number {\n const modifiers = this.form.controls.modifiers.getRawValue().flat().filter((item): item is ModifierItem => !!item);\n if(!modifiers){return 0}\n return this.sessionRepository.getModifiersPrice(modifiers, this.storeId);\n }\n\n private updateTotalPrice(): void {\n const productPrice = this.getPriceByStoreId(this.currentSize.prices, this.storeId);\n this.totalPrice = (productPrice + this.getModifiersPrice()) * this.form.controls.count.value;\n }\n\n private setFreeQuantity(modifierGroup: ItemModifierGroup) {\n this.form.controls.modifiers.getRawValue().forEach((items, g) => {\n if (!items?.length) { return; }\n\n const groupFreeQuantity = modifierGroup.restrictions.freeQuantity;\n let tmpCurrentFreeQnt = 0;\n\n const itemsWithMaxPrice = items\n .filter(value => value.quantity > 0)\n .map(value => ({ ...value, price: this.getPriceByStoreId(value.prices || [], this.storeId) }))\n .filter(value => !!value.price)\n .sort((a, b) => b.price! - a.price! || (a.name > b.name ? 1 : -1))\n .filter(value => {\n const item = modifierGroup.items.find(i => i.sku === value.sku);\n if (!item || groupFreeQuantity <= tmpCurrentFreeQnt) { return false; }\n\n const minFreeQnt = modifierGroup.childModifiersHaveMinMaxRestrictions\n ? Math.min(value.quantity, item.restrictions.freeQuantity, groupFreeQuantity - tmpCurrentFreeQnt)\n : Math.min(value.quantity, groupFreeQuantity - tmpCurrentFreeQnt);\n\n tmpCurrentFreeQnt += minFreeQnt;\n value.freeQuantity = minFreeQnt;\n return true;\n });\n\n items.forEach(item => {\n item.freeQuantity = itemsWithMaxPrice.find(i => i.sku === item.sku)?.freeQuantity || 0;\n });\n this.form.controls.modifiers.controls[g].patchValue(items);\n });\n }\n\n onChangeModifiers(modifierGroup: ItemModifierGroup): void {\n this.setFreeQuantity(modifierGroup);\n this.updateTotalPrice();\n this.cdr.markForCheck();\n }\n\n onChangeCount(): void {\n this.updateTotalPrice();\n this.cdr.markForCheck();\n }\n\n onChangeSize(size: MenuItemSizeDto): void {\n if (size === this.currentSize) { return }\n this.currentSize = size;\n this.prepareFormArray(this.currentSize.itemModifierGroups);\n\n this.updateImage();\n this.updateTotalPrice();\n this.cdr.markForCheck();\n }\n\n updateImage(): void {\n if (this.firstSize.buttonImage['src'] && !this.currentSize.buttonImage['src']) {\n this.currentSize.buttonImage = this.firstSize.buttonImage;\n }\n }\n\n onAddToBasket(): void {\n if (!this.form.valid || !this.form.controls.item.value) { return }\n\n const modifierGroups: ModifierItem[] = this.form.controls.modifiers.getRawValue().flat()\n .filter(item => item?.quantity)\n .map(item => item!);\n\n const count = this.form.controls.count.value;\n\n this.basketStore.addItem({\n item: this.form.controls.item.value,\n size: this.currentSize,\n count: count,\n modifiers: modifierGroups,\n\n appliedDiscount: 0,\n itemKey: '',\n totalPrice: this.sessionRepository.getItemTotal(this.currentSize.prices, modifierGroups, count)\n });\n\n this.close();\n }\n\n close() {\n if (this.breakPoint.isMobile) {\n this.closeMobileModal();\n } else {\n this.closeModal();\n }\n }\n\n closeMobileModal(): void {\n this.modalSwipe.hideModal();\n }\n\n closeModal(): void {\n this.router.navigate(['../'], { relativeTo: this.route });\n }\n\n setAllergenFilter(allergen: string) {\n this.sessionRepository.toggleShowFilterBar(true);\n this.sessionRepository.toggleActiveAllergenFilter(allergen);\n this.close();\n }\n\n setLabelFilter(label: string) {\n this.sessionRepository.toggleShowFilterBar(true);\n this.sessionRepository.toggleActiveLabelFilter(label);\n this.close();\n }\n}\n","
\n
\n
\n
\n \n kcal\n
\n
Calories
\n
\n
\n\n
\n
\n
\n \n g\n
\n
Protein
\n
\n
\n\n
\n
\n
\n \n g\n
\n
Fats
\n
\n
\n\n
\n
\n
\n \n g\n
\n
Carb
\n
\n
\n\n
\n
\n
\n \n g\n
\n
Salt
\n
\n
\n\n
\n
\n
\n \n g\n
\n
SFA
\n
\n
\n\n
\n
\n
\n \n g\n
\n
Sugar
\n
\n
\n
\n\n\n\n \n {{ (value * totalWeight / 100).toFixed(1) }} \n {{ (value * totalWeight / 100).toFixed(1) }} \n {{ (value * totalWeight * 10).toFixed(1) }} \n {{ (value * totalWeight * 10).toFixed(1) }} \n \n\n","import { NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nimport { MenuItemSizeDto } from '../../../../api/v1/models/menu-item-size-dto';\nimport { NutritionInfo } from '../../../../api/v1/models/nutrition-info';\n\n@Component({\n selector: 'app-fresh-portion-list',\n templateUrl: './fresh-portion-list.component.html',\n styleUrls: ['./fresh-portion-list.component.scss'],\n standalone: true,\n imports: [NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet]\n})\nexport class FreshPortionListComponent {\n constructor() {}\n\n @Input() size: MenuItemSizeDto;\n @Input() nutrition: NutritionInfo;\n}\n","
\n \n {{ size.sizeName }}\n \n
\n","import { NgClass, NgFor } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { SizePickerAbstract } from 'src/app/layout/common/components/size-picker.abstract';\n\n@Component({\n selector: 'app-fresh-size-picker',\n templateUrl: './fresh-size-picker.component.html',\n styleUrls: ['./fresh-size-picker.component.scss'],\n standalone: true,\n imports: [NgFor, MatButtonModule, NgClass]\n})\nexport class FreshSizePickerComponent extends SizePickerAbstract { }\n","
\n
\n
\n\n
\n
\n\n
\n\n
\n \n\n \n
\n\n
\n
\n \n
\n
\n
\n

You may also like

\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n\n
\n
\n {{ data.name }}\n \n
\n\n
\n \n
\n\n
1\">\n \n
\n\n
\n
\n
Ingredients
\n
\n {{ data.description }}\n
\n
\n\n
\n\n
\n
In one portion
\n
\n \n
\n\n
\n
Allergens
\n
\n
\n \n \n \n
\n
\n
\n
\n\n
\n \n
\n \n\n
\n Select the required modifiers\n
\n
\n
\n
\n
\n\n
\n
\n\n \n\n
\n
\n
\n\n\n \n\n","import { Component } from '@angular/core';\nimport { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ModalSwipeDirective } from '../../../shared/directives/modal-swipe/modal-swipe.directive';\nimport { OverlaySwipeDirective } from '../../../shared/directives/modal-swipe/overlay-swipe.directive';\nimport { BottomSwipeSheetDirective } from '../../../shared/directives/modal-swipe/bottom-swipe-sheet.directive';\nimport { CounterComponent } from '../../../shared/components/counter/counter.component';\nimport { CurrencyComponent } from '../../../shared/components/price/currency.component';\nimport { FreshPortionListComponent } from '../components/fresh-portion-list/fresh-portion-list.component';\nimport { FreshSizePickerComponent } from '../components/fresh-size-picker/fresh-size-picker.component';\nimport { ModifierListModule } from '../../../components/modifier-list/modifier-list.module';\nimport { ProductUnitComponent } from '../../../blocks/product-unit/product-unit.component';\nimport { ProductPriceComponent } from '../../../blocks/product-price/product-price.component';\nimport { RelatedCardComponent } from '../../../components/related-card/related-card.component';\nimport { PictureFallbackDirective } from '../../../shared/directives/picture-fallback/picture-fallback.directive';\nimport { FreshProductInfoPageComponent } from './fresh-product-info-page.component';\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\nimport { UIMenuItemDto } from '../../../shared/interfaces/ui-menu-item-dto.interface';\n\n@Component({\n selector: 'app-fresh-product-info-page-dynamic',\n templateUrl: './fresh-product-info-page.component.html',\n styleUrls: ['./fresh-product-info-page.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n RouterLink,\n NgOptimizedImage,\n ReactiveFormsModule,\n ModalSwipeDirective,\n OverlaySwipeDirective,\n BottomSwipeSheetDirective,\n CounterComponent,\n CurrencyComponent,\n FreshPortionListComponent,\n FreshSizePickerComponent,\n ModifierListModule,\n ProductUnitComponent,\n ProductPriceComponent,\n RelatedCardComponent,\n PictureFallbackDirective,\n ]\n})\nexport class FreshProductInfoPageDynamicComponent extends FreshProductInfoPageComponent {\n private _productData: ReplaySubject = new ReplaySubject(1);\n private _closeModal: Subject = new Subject();\n closeModalSubj$: Observable = this._closeModal.asObservable();\n\n setProductData(productData: UIMenuItemDto) {\n this._productData.next(productData);\n }\n\n protected override getProductData(): Observable {\n return this._productData.asObservable();\n }\n\n override closeModal() {\n this._closeModal.next(null);\n }\n}\n","\n
\n
\n \n \n \"\"\n \n
\n\n
\n
\n \n
{{ label.name }}
\n
\n
\n
\n
\n\n
\n \n
\n \n
\n
\n\n
{{ data.name }}
\n\n
{{ data.description }}
\n\n \n
\n
\n \n
\n \n
\n
\n\n \n
\n {{ energy | number: '1.0-0' }} kcal\n
\n
\n
\n\n
\n
\n \n
\n\n \n\n
\n
\n
\n
\n \n\n\n\n \n\n","import { AsyncPipe, DecimalPipe, NgClass, NgFor, NgIf, NgOptimizedImage } from '@angular/common';\nimport { Component, inject, Input, OnChanges } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MenuItemSizeDto } from '../../../../api/v1/models/menu-item-size-dto';\nimport { MenuListRepository } from '../../../../shared/repositories/menu-list.repository';\nimport { ProductPriceComponent } from '../../../../blocks/product-price/product-price.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Observable, shareReplay, tap } from 'rxjs';\nimport { ConfigRepository } from '../../../../shared/repositories/config.repository';\nimport { BasketRepository } from '../../../../shared/repositories/basket.repository';\nimport { CounterComponent } from '../../../../shared/components/counter/counter.component';\nimport { BasketItem } from '../../../../shared/interfaces/basket-item.interface';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { ProductUnitComponent } from '../../../../blocks/product-unit/product-unit.component';\nimport { PictureFallbackDirective } from '../../../../shared/directives/picture-fallback/picture-fallback.directive';\nimport { map } from 'rxjs/operators';\nimport { UIMenuItemDto } from '../../../../shared/interfaces/ui-menu-item-dto.interface';\nimport { SessionRepository } from 'src/app/shared/repositories/session.repository';\nimport { ModifierItem } from '../../../../components/modifier-list/modifier-item.interface';\nimport { DynamicComponentService } from '../../../../shared/services/dynamic-component.service';\nimport {\n FreshProductInfoPageDynamicComponent\n} from '../../fresh-product-info-page/fresh-product-info-page.dynamic.component';\n\ninterface IForm {\n counter: FormControl;\n}\n\n@Component({\n selector: 'app-product-card',\n templateUrl: './product-card.component.html',\n styleUrls: ['./product-card.component.scss'],\n standalone: true,\n imports: [\n NgIf,\n NgFor,\n NgClass,\n NgOptimizedImage,\n DecimalPipe,\n ProductPriceComponent,\n MatButtonModule,\n AsyncPipe,\n CounterComponent,\n ReactiveFormsModule,\n MatProgressSpinnerModule,\n PictureFallbackDirective,\n ProductUnitComponent,\n ]\n})\nexport class ProductCardComponent implements OnChanges {\n constructor(\n private router: Router,\n private configStore: ConfigRepository,\n private basketStore: BasketRepository,\n private menuRepository: MenuListRepository,\n private sessionRepository: SessionRepository,\n private dynamicComponent: DynamicComponentService,\n ) { }\n\n @Input() data: UIMenuItemDto;\n @Input() isLock: boolean = false;\n\n /**\n * @deprecated Refactor this\n */\n @Input() isGift: boolean = false;\n\n private menuListRepository = inject(MenuListRepository);\n private hasModifiers: boolean;\n\n energy: number;\n currentSize!: MenuItemSizeDto;\n defaultPrice$: Observable;\n isBasketMode$: Observable = this.configStore.isBasketMode$;\n\n private prepareData(): void {\n if (this.data) {\n this.currentSize = this.menuListRepository.getDefaultSize(this.data);\n this.defaultPrice$ = this.menuListRepository.getDefaultPriceObservable(this.currentSize);\n const energy = this.currentSize.nutritionPerHundredGrams?.energy ?? 0;\n const weight = this.currentSize.portionWeightGrams ?? 0;\n this.energy = weight * energy / 100;\n }\n }\n\n form: FormGroup = new FormGroup({\n counter: new FormControl(1, { nonNullable: true }),\n });\n\n basketItem: BasketItem | undefined;\n\n basketItem$: Observable = this.basketStore.items$.pipe(\n map(items => {\n if (!items.length) { return null }\n return items.find(item => item.item.uniqKey === this.data.uniqKey) || null;\n }),\n tap(basketItem => {\n if (!basketItem) { return }\n this.form.controls.counter.patchValue(basketItem.count);\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n isShowCounter$: Observable = this.basketItem$.pipe(\n map(basketItem => !!(basketItem && basketItem.count))\n )\n\n ngOnChanges(): void {\n this.prepareData();\n\n this.data.itemSizes.map(item => {\n this.hasModifiers = !!item.itemModifierGroups.length;\n });\n }\n\n onAddToBasket(slug: string | null): void {\n if (!slug) { return }\n\n if (!this.hasModifiers) {\n this.addToBasket();\n } else {\n this.onOpenCard(slug);\n }\n }\n\n onOpenCard(slug: string | null): void {\n if (!slug) { return }\n\n // TODO: refactor this\n if(this.isGift){\n this.fastOpenCard();\n return;\n }\n\n this.menuRepository.setActiveCategory(this.data.categoryId);\n void this.router.navigate([`/category/${this.data.categorySlug}/${slug}`]);\n }\n\n addToBasket(): void {\n const count = 1;\n const modifiers: ModifierItem[] = [];\n\n this.basketStore.addItem({\n item: this.data,\n size: this.currentSize,\n count: count,\n modifiers: modifiers,\n appliedDiscount: 0,\n itemKey: '',\n totalPrice: this.sessionRepository.getItemTotal(this.currentSize.prices, modifiers, count)\n });\n }\n\n onChangeCount(itemKey: string, count: number): void {\n if (count === 0) {\n this.basketStore.removeItem(itemKey);\n return;\n }\n this.basketStore.updateCount(itemKey, count);\n }\n\n setLabelFilter(label: string) {\n this.sessionRepository.toggleShowFilterBar(true);\n this.sessionRepository.toggleActiveLabelFilter(label);\n }\n\n private fastOpenCard(){\n const component = this.dynamicComponent.createComponent(FreshProductInfoPageDynamicComponent);\n component.instance.setProductData(this.data);\n const closeSub = component.instance.closeModalSubj$.subscribe(() => {\n this.dynamicComponent.clearComponent();\n closeSub?.unsubscribe();\n })\n }\n}\n","import { Component } from '@angular/core';\nimport { CommonModule, NgOptimizedImage, } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ModalSwipeDirective } from '../../../shared/directives/modal-swipe/modal-swipe.directive';\nimport { OverlaySwipeDirective } from '../../../shared/directives/modal-swipe/overlay-swipe.directive';\nimport { BottomSwipeSheetDirective } from '../../../shared/directives/modal-swipe/bottom-swipe-sheet.directive';\nimport { CounterComponent } from '../../../shared/components/counter/counter.component';\nimport { CurrencyComponent } from '../../../shared/components/price/currency.component';\nimport { UIMenuItemDto } from '../../../shared/interfaces/ui-menu-item-dto.interface';\nimport { Observable, tap } from 'rxjs';\nimport { MenuItemSizeDto } from '../../../api/v1/models/menu-item-size-dto';\nimport { FreshPortionListComponent } from '../components/fresh-portion-list/fresh-portion-list.component';\nimport { FreshSizePickerComponent } from '../components/fresh-size-picker/fresh-size-picker.component';\nimport { ModifierListModule } from '../../../components/modifier-list/modifier-list.module';\nimport { ProductUnitComponent } from '../../../blocks/product-unit/product-unit.component';\nimport { ProductPriceComponent } from '../../../blocks/product-price/product-price.component';\nimport { RelatedCardComponent } from '../../../components/related-card/related-card.component';\nimport { PictureFallbackDirective } from '../../../shared/directives/picture-fallback/picture-fallback.directive';\nimport { ProductInfoPageAbstract } from '../../common/product-info-page.abstract';\n\n@Component({\n selector: 'app-fresh-product-info-page',\n templateUrl: './fresh-product-info-page.component.html',\n styleUrls: ['./fresh-product-info-page.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n RouterLink,\n NgOptimizedImage,\n ReactiveFormsModule,\n ModalSwipeDirective,\n OverlaySwipeDirective,\n BottomSwipeSheetDirective,\n CounterComponent,\n CurrencyComponent,\n FreshPortionListComponent,\n FreshSizePickerComponent,\n ModifierListModule,\n ProductUnitComponent,\n ProductPriceComponent,\n RelatedCardComponent,\n PictureFallbackDirective,\n ]\n})\nexport class FreshProductInfoPageComponent extends ProductInfoPageAbstract {\n\n relatedProducts$: Observable;\n\n override ngOnInit(): void {\n super.ngOnInit();\n this.data$ = this.data$.pipe(\n tap(() => {\n if (this.currentSize) {\n this.relatedProducts$ = this.menuListRepository.getRelatedProducts(this.currentSize.relatedProducts)\n }\n })\n );\n }\n\n override onChangeSize(size: MenuItemSizeDto): void {\n super.onChangeSize(size);\n this.relatedProducts$ = this.menuListRepository.getRelatedProducts(this.currentSize.relatedProducts);\n }\n}\n"],"names":["i0","ProductUnitComponent","static","this","t","_angular_core__WEBPACK_IMPORTED_MODULE_0__","Xpm","selectors","inputs","value","unit","standalone","features","decls","vars","consts","i18n_0","$localize","ProductUnitComponent_span_4_Template","ProductUnitComponent_span_5_Template","ProductUnitComponent_span_6_Template","ProductUnitComponent_span_7_Template","ProductUnitComponent_span_8_Template","ctx","CommonModule","i1","styles","ModifierListAbstract","constructor","minCount","maxCount","changeValue","EventEmitter","totalCount","form","FormGroup","onChange","onTouched","registerOnChange","fn","setTimeout","update","registerOnTouched","writeValue","obj","writeFormValue","validate","control","getRawValue","reduce","total","currentItem","quantity","actualCount","requiredCount","ngOnDestroy","formChangeSub","unsubscribe","getFormData","emit","getFormItem","name","FormControl","nonNullable","freeQuantity","sku","prices","itemGroupId","isCheckDisabledItem","index","isCheckMinMaxRestrictions","items","restrictions","maxQuantity","core","lG2","modifierGroup","outputs","OutletPricePipe","configRepository","transform","MenuPrices","activeOutletId$","pipe","map","id","find","p","storeId","price","Yjl","pure","data_r6","SingleModifiersComponent_ng_container_1_ng_container_1_ng_container_6_ng_container_1_div_1_Template","SingleModifiersComponent_ng_container_1_ng_container_1_ng_container_6_ng_container_1_div_2_Template","ctx_r7","isFree","item_r2","formArray","controls","i_r3","SingleModifiersComponent_ng_container_1_ng_container_1_ng_container_6_ng_container_1_Template","SingleModifiersComponent_ng_container_1_ng_container_1_ng_container_6_div_2_Template","balance","_r15","ctx_r14","onChangeCount","ctx_r5","minQuantity","isOverflow","SingleModifiersComponent_ng_container_1_ng_container_1_ng_container_6_Template","SingleModifiersComponent_ng_container_1_ng_container_1_div_9_Template","_c2","ctx_r1","_c3","SingleModifiersComponent_ng_container_1_ng_container_1_Template","ctx_r0","SingleModifiersComponent","super","FormArray","isCheckOverflow","formData","contains","modifiers","length","setValue","forEach","item","group","patchValue","push","addControl","groupFreeQuantity","currentFreeQuantity","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","NG_VALIDATORS","SingleModifiersComponent_ng_container_1_Template","data_r5","GroupModifiersComponent_ng_container_1_ng_container_6_div_1_Template","GroupModifiersComponent_ng_container_1_ng_container_6_div_2_Template","GroupModifiersComponent_ng_container_1_ng_container_6_div_3_Template","ctx_r3","isNotFree","item_r1","_r13","$implicit","ctx_r11","ctx_r4","GroupModifiersComponent_ng_container_1_ng_container_6_Template","GroupModifiersComponent_ng_container_1_div_9_Template","GroupModifiersComponent","groupName","nextId","formGroup","formControl","activeItemIndex","findIndex","GroupModifiersComponent_ng_container_1_Template","ctx_r8","ModifierListComponent_div_0_div_4_ng_container_3_ng_container_4_Template","ctx_r6","ModifierListComponent_div_0_div_4_ng_container_1_Template","ModifierListComponent_div_0_div_4_ng_container_2_Template","ModifierListComponent_div_0_div_4_ng_container_3_Template","ModifierListComponent_div_0_div_4_ng_container_4_Template","_c10","hasError","childModifiersHaveMinMaxRestrictions","_r10","ctx_r9","onChangeModifiers","ctx_r2","_r12","ModifierListComponent_div_0_div_4_Template","ModifierListComponent_div_0_app_single_modifiers_5_Template","ModifierListComponent_div_0_app_group_modifiers_6_Template","isGroupModifier","ModifierListComponent","cdr","changeModifiers","valid","errors","setDisabledState","isDisabled","detectChanges","byDefault","ModifierListComponent_div_0_Template","ModifierListModule","oAB","cJS","MatRadioModule","ReactiveFormsModule","CounterComponent","SizePickerAbstract","pickSize","ngOnInit","defaultSize","sizes","size","isDefault","currentSize","onChangeSize","ProductInfoPageAbstract","route","router","menuListRepository","basketStore","configStore","breakPoint","seoService","sessionRepository","activeOutletId","count","modifiersArray","totalPrice","isBasketMode$","getProductData","params","slug","filter","categoryId","switchMap","productParams","getItemBySlugFromCategory","data$","tap","data","itemSizes","firstSize","prepareFormArray","itemModifierGroups","updateTotalPrice","setDynamicDataMetaTags","description","markForCheck","groups","clear","getGroupData","getSingleData","setControl","getPriceByStoreId","outletId","groupId","i","getModifiersPrice","flat","productPrice","setFreeQuantity","g","tmpCurrentFreeQnt","itemsWithMaxPrice","sort","a","b","minFreeQnt","Math","min","updateImage","buttonImage","src","onAddToBasket","modifierGroups","addItem","appliedDiscount","itemKey","getItemTotal","close","isMobile","closeMobileModal","closeModal","modalSwipe","hideModal","navigate","relativeTo","setAllergenFilter","allergen","toggleShowFilterBar","toggleActiveAllergenFilter","setLabelFilter","label","toggleActiveLabelFilter","i2","i3","i4","i5","i6","i7","_angular_core__WEBPACK_IMPORTED_MODULE_12__","viewQuery","rf","ModalSwipeDirective","FreshPortionListComponent_div_0_div_1_ng_container_3_Template","_r1","_c4","nutrition","energy","measureUnitType","portionWeightGrams","FreshPortionListComponent_div_0_div_2_ng_container_3_Template","proteins","FreshPortionListComponent_div_0_div_3_ng_container_3_Template","fats","FreshPortionListComponent_div_0_div_4_ng_container_3_Template","carbs","FreshPortionListComponent_div_0_div_5_ng_container_3_Template","salt","FreshPortionListComponent_div_0_div_6_ng_container_3_Template","saturatedFattyAcid","FreshPortionListComponent_div_0_div_7_ng_container_3_Template","sugar","FreshPortionListComponent_div_0_div_1_Template","FreshPortionListComponent_div_0_div_2_Template","FreshPortionListComponent_div_0_div_3_Template","FreshPortionListComponent_div_0_div_4_Template","FreshPortionListComponent_div_0_div_5_Template","FreshPortionListComponent_div_0_div_6_Template","FreshPortionListComponent_div_0_div_7_Template","value_r18","totalWeight_r19","toFixed","FreshPortionListComponent_ng_template_1_span_1_Template","FreshPortionListComponent_ng_template_1_span_2_Template","FreshPortionListComponent_ng_template_1_span_3_Template","FreshPortionListComponent_ng_template_1_span_4_Template","FreshPortionListComponent","FreshPortionListComponent_div_0_Template","FreshPortionListComponent_ng_template_1_Template","NgIf","NgSwitch","NgSwitchCase","NgTemplateOutlet","size_r1","_r3","_c0","sizeName","FreshSizePickerComponent","template","FreshSizePickerComponent_button_1_Template","NgFor","MatButtonModule","NgClass","_r6","_r23","ctx_r22","_r25","ctx_r24","product_r29","FreshProductInfoPageDynamicComponent_div_3_ng_container_8_div_1_div_6_Template","relatedProducts_r26","FreshProductInfoPageDynamicComponent_div_3_ng_container_8_div_1_Template","ctx_r12","data_r7","label_r33","_r35","ctx_r34","FreshProductInfoPageDynamicComponent_div_3_div_14_ng_container_2_Template","labels","$event","_r38","ctx_r37","ctx_r42","nutritionPerHundredGrams","FreshProductInfoPageDynamicComponent_div_3_div_25_div_1_Template","FreshProductInfoPageDynamicComponent_div_3_div_25_app_fresh_portion_list_2_Template","ctx_r17","allergen_r44","_r46","ctx_r45","FreshProductInfoPageDynamicComponent_div_3_div_26_ng_container_5_Template","allergens","_r55","modifierGroup_r49","ctx_r53","FreshProductInfoPageDynamicComponent_div_3_div_27_ng_container_1_div_1_div_2_Template","i_r50","ctx_r51","FreshProductInfoPageDynamicComponent_div_3_div_27_ng_container_1_div_1_Template","FreshProductInfoPageDynamicComponent_div_3_div_27_ng_container_1_Template","ctx_r19","ctx_r20","ctx_r58","_r60","ctx_r59","FreshProductInfoPageDynamicComponent_div_3_div_31_div_7_span_1_Template","ctx_r57","_r62","ctx_r61","ctx_r63","FreshProductInfoPageDynamicComponent_div_3_div_31_div_7_Template","tmp_1_0","undefined","ctx_r21","_r66","ctx_r65","FreshProductInfoPageDynamicComponent_div_3_div_2_Template","FreshProductInfoPageDynamicComponent_div_3_button_4_Template","FreshProductInfoPageDynamicComponent_div_3_button_5_Template","FreshProductInfoPageDynamicComponent_div_3_ng_container_8_Template","FreshProductInfoPageDynamicComponent_div_3_picture_13_Template","FreshProductInfoPageDynamicComponent_div_3_div_14_Template","FreshProductInfoPageDynamicComponent_div_3_app_product_unit_19_Template","FreshProductInfoPageDynamicComponent_div_3_div_22_Template","FreshProductInfoPageDynamicComponent_div_3_div_24_Template","FreshProductInfoPageDynamicComponent_div_3_div_25_Template","FreshProductInfoPageDynamicComponent_div_3_div_26_Template","FreshProductInfoPageDynamicComponent_div_3_div_27_Template","FreshProductInfoPageDynamicComponent_div_3_div_30_Template","FreshProductInfoPageDynamicComponent_div_3_div_31_Template","relatedProducts$","_c12","FreshProductInfoPageDynamicComponent","FreshProductInfoPageComponent","_productData","ReplaySubject","_closeModal","Subject","closeModalSubj$","asObservable","setProductData","productData","next","FreshProductInfoPageDynamicComponent_div_1_Template","FreshProductInfoPageDynamicComponent_div_2_Template","FreshProductInfoPageDynamicComponent_div_3_Template","FreshProductInfoPageDynamicComponent_ng_template_5_Template","_c13","NgOptimizedImage","OverlaySwipeDirective","BottomSwipeSheetDirective","CurrencyComponent","ProductPriceComponent","RelatedCardComponent","PictureFallbackDirective","label_r9","_r11","ctx_r10","ProductCardComponent_div_0_div_4_ng_container_2_Template","defaultPrice_r12","ProductCardComponent_div_0_ng_container_11_div_2_ng_container_1_app_product_unit_2_Template","ctx_r15","ctx_r16","ProductCardComponent_div_0_ng_container_11_div_2_ng_container_1_Template","ProductCardComponent_div_0_ng_container_11_div_2_ng_container_2_Template","ctx_r13","basketItem_r21","ngIf","ProductCardComponent_div_0_ng_container_11_div_3_div_1_app_counter_1_Template","ctx_r18","basketItem$","ProductCardComponent_div_0_ng_container_11_div_3_div_1_Template","ProductCardComponent_div_0_ng_container_11_div_3_button_3_Template","isShowCounter$","ProductCardComponent_div_0_ng_container_11_div_2_Template","ProductCardComponent_div_0_ng_container_11_div_3_Template","isLock","ProductCardComponent_div_0_picture_3_Template","ProductCardComponent_div_0_div_4_Template","ProductCardComponent_div_0_ng_container_6_Template","ProductCardComponent_div_0_div_10_Template","ProductCardComponent_div_0_ng_container_11_Template","_r27","ctx_r26","onOpenCard","defaultPrice$","ProductCardComponent","menuRepository","dynamicComponent","isGift","inject","MenuListRepository","counter","items$","uniqKey","basketItem","shareReplay","refCount","bufferSize","prepareData","getDefaultSize","getDefaultPriceObservable","ngOnChanges","hasModifiers","addToBasket","fastOpenCard","setActiveCategory","categorySlug","updateCount","removeItem","component","createComponent","instance","closeSub","subscribe","clearComponent","ProductCardComponent_div_0_Template","ProductCardComponent_ng_template_1_Template","DecimalPipe","AsyncPipe","MatProgressSpinnerModule","i8","FreshProductInfoPageComponent_div_3_ng_container_8_div_1_div_6_Template","FreshProductInfoPageComponent_div_3_ng_container_8_div_1_Template","FreshProductInfoPageComponent_div_3_div_14_ng_container_2_Template","FreshProductInfoPageComponent_div_3_div_25_div_1_Template","FreshProductInfoPageComponent_div_3_div_25_app_fresh_portion_list_2_Template","FreshProductInfoPageComponent_div_3_div_26_ng_container_5_Template","FreshProductInfoPageComponent_div_3_div_27_ng_container_1_div_1_div_2_Template","FreshProductInfoPageComponent_div_3_div_27_ng_container_1_div_1_Template","FreshProductInfoPageComponent_div_3_div_27_ng_container_1_Template","FreshProductInfoPageComponent_div_3_div_31_div_7_span_1_Template","FreshProductInfoPageComponent_div_3_div_31_div_7_Template","FreshProductInfoPageComponent_div_3_div_2_Template","FreshProductInfoPageComponent_div_3_button_4_Template","FreshProductInfoPageComponent_div_3_button_5_Template","FreshProductInfoPageComponent_div_3_ng_container_8_Template","FreshProductInfoPageComponent_div_3_picture_13_Template","FreshProductInfoPageComponent_div_3_div_14_Template","FreshProductInfoPageComponent_div_3_app_product_unit_19_Template","FreshProductInfoPageComponent_div_3_div_22_Template","FreshProductInfoPageComponent_div_3_div_24_Template","FreshProductInfoPageComponent_div_3_div_25_Template","FreshProductInfoPageComponent_div_3_div_26_Template","FreshProductInfoPageComponent_div_3_div_27_Template","FreshProductInfoPageComponent_div_3_div_30_Template","FreshProductInfoPageComponent_div_3_div_31_Template","getRelatedProducts","relatedProducts","_angular_core__WEBPACK_IMPORTED_MODULE_8__","FreshProductInfoPageComponent_div_1_Template","FreshProductInfoPageComponent_div_2_Template","FreshProductInfoPageComponent_div_3_Template","FreshProductInfoPageComponent_ng_template_5_Template"],"sourceRoot":"webpack:///"}