{"version":3,"file":"../Project/Main/code/Assets/Scripts/Aramark.ACP.Feature.GlobalComponents.React.v12.00.js","mappings":"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","sources":["webpack://aramark.acp.react/./src/shared/api/cart/requests.ts","webpack://aramark.acp.react/./src/shared/api/checkout/requests.ts","webpack://aramark.acp.react/./src/shared/api/locations/requests.ts","webpack://aramark.acp.react/./src/shared/api/mailSubscription/requests.ts","webpack://aramark.acp.react/./src/shared/api/manageUserFavorites/requests.ts","webpack://aramark.acp.react/./src/shared/api/menu/requests.ts","webpack://aramark.acp.react/./src/shared/components/AmountCalories/parts.tsx","webpack://aramark.acp.react/./src/shared/components/AmountCalories/NutritionalItem.tsx","webpack://aramark.acp.react/./src/shared/components/AmountCalories/AmountCalories.tsx","webpack://aramark.acp.react/./src/shared/components/Button/icons/minusIcon.svg","webpack://aramark.acp.react/./src/shared/components/Button/parts.ts","webpack://aramark.acp.react/./src/shared/components/Button/components/Button.tsx","webpack://aramark.acp.react/./src/shared/components/Button/components/ButtonCheckbox.tsx","webpack://aramark.acp.react/./src/shared/components/Button/components/ButtonLink.tsx","webpack://aramark.acp.react/./src/shared/components/Button/components/ButtonText.tsx","webpack://aramark.acp.react/./src/shared/components/Button/components/ButtonSecond.tsx","webpack://aramark.acp.react/./src/shared/components/Button/icons/plusIcon.svg","webpack://aramark.acp.react/./src/shared/components/Button/icons/heart.svg","webpack://aramark.acp.react/./src/shared/components/Button/components/PlusOrMinus.tsx","webpack://aramark.acp.react/./src/shared/components/Button/icons/heartOutline.svg","webpack://aramark.acp.react/./src/shared/components/Button/components/ButtonAddToFavorites.tsx","webpack://aramark.acp.react/./src/shared/components/ContentOrderSummary/parts.tsx","webpack://aramark.acp.react/./src/shared/components/ContentOrderSummary/ContentOrderSummary.tsx","webpack://aramark.acp.react/./src/shared/components/ContentOrderSummary/OrderSummaryModal.tsx","webpack://aramark.acp.react/./src/shared/components/DatePicker/parts.ts","webpack://aramark.acp.react/./src/shared/components/DatePicker/DatePicker.tsx","webpack://aramark.acp.react/./src/shared/components/DatePicker/hook.ts","webpack://aramark.acp.react/./src/shared/components/DatePicker/blocks/DatePickerButton.tsx","webpack://aramark.acp.react/./src/shared/components/ErrorBoundary/ErrorBoundary.tsx","webpack://aramark.acp.react/./src/shared/components/ErrorMessage/parts.ts","webpack://aramark.acp.react/./src/shared/components/ErrorMessage/ErrorMessage.tsx","webpack://aramark.acp.react/./src/shared/components/FreeGiftTag/price-tag.svg","webpack://aramark.acp.react/./src/shared/components/FreeGiftTag/FreeGiftTag.tsx","webpack://aramark.acp.react/./src/shared/components/Img/parts.ts","webpack://aramark.acp.react/./src/shared/components/Img/Img.tsx","webpack://aramark.acp.react/./src/shared/components/Img/ProductImg.tsx","webpack://aramark.acp.react/./src/shared/components/Img/ProductAllergens.tsx","webpack://aramark.acp.react/./src/shared/components/ModalOrderAhead/constants.ts","webpack://aramark.acp.react/./src/shared/components/ModalOrderAhead/parts.ts","webpack://aramark.acp.react/./src/shared/components/ModalOrderAhead/blocks/BodyContentForModal.tsx","webpack://aramark.acp.react/./src/shared/components/ModalOrderAhead/blocks/Loader.tsx","webpack://aramark.acp.react/./src/shared/components/ModalOrderAhead/blocks/SelectOne.tsx","webpack://aramark.acp.react/./src/shared/components/ModalOrderAhead/blocks/Times.tsx","webpack://aramark.acp.react/./src/shared/components/ModalOrderAhead/blocks/DeliveryPart.tsx","webpack://aramark.acp.react/./src/shared/components/ModalOrderAhead/blocks/PickUpPart.tsx","webpack://aramark.acp.react/./src/shared/components/ModalOrderAhead/ModalOrderAhead.tsx","webpack://aramark.acp.react/./src/shared/components/Modifires/Modifires.tsx","webpack://aramark.acp.react/./src/shared/components/ProductCard/icons/orderAgain.svg","webpack://aramark.acp.react/./src/shared/components/ProductCard/blocks/OrderAgainButton.tsx","webpack://aramark.acp.react/./src/shared/components/ProductCard/ProductCard.tsx","webpack://aramark.acp.react/./src/shared/components/ProductCard/parts.ts","webpack://aramark.acp.react/./src/shared/components/Counter/parts.ts","webpack://aramark.acp.react/./src/shared/components/Counter/Counter.tsx","webpack://aramark.acp.react/./src/shared/components/ProductDetails/parts.ts","webpack://aramark.acp.react/./src/shared/components/ProductDetails/blocks/DateModifier.tsx","webpack://aramark.acp.react/./src/shared/components/ProductDetails/blocks/SelectManyModifier.tsx","webpack://aramark.acp.react/./src/shared/components/ProductDetails/blocks/SelectOneModifier.tsx","webpack://aramark.acp.react/./src/shared/components/ProductDetails/blocks/TextModifier.tsx","webpack://aramark.acp.react/./src/shared/components/ProductDetails/blocks/YesNoModifier.tsx","webpack://aramark.acp.react/./src/shared/components/ProductDetails/blocks/Modifiers.tsx","webpack://aramark.acp.react/./src/shared/components/ProductDetails/blocks/TextArea.tsx","webpack://aramark.acp.react/./src/shared/components/ProductDetails/blocks/Order.tsx","webpack://aramark.acp.react/./src/shared/components/ProductDetails/utils.ts","webpack://aramark.acp.react/./src/shared/components/ProductDetails/ModalProduct.tsx","webpack://aramark.acp.react/./src/shared/components/ProductDetails/blocks/Nutrition.tsx","webpack://aramark.acp.react/./src/shared/components/Providers/AppProviders.tsx","webpack://aramark.acp.react/./src/shared/components/Required/parts.ts","webpack://aramark.acp.react/./src/shared/components/Select/part.ts","webpack://aramark.acp.react/./src/shared/components/Select/Select.tsx","webpack://aramark.acp.react/./src/shared/components/StickyNavigation/parts.ts","webpack://aramark.acp.react/./src/shared/components/StickyNavigation/StickyNavigation.tsx","webpack://aramark.acp.react/./src/shared/components/Tabs/parts.ts","webpack://aramark.acp.react/./src/shared/components/Tabs/Tabs.tsx","webpack://aramark.acp.react/./src/shared/components/Underline/parts.ts","webpack://aramark.acp.react/./src/shared/constants/index.ts","webpack://aramark.acp.react/./src/shared/hooks/appRedux.ts","webpack://aramark.acp.react/./src/shared/hooks/currencyFormmater.ts","webpack://aramark.acp.react/./src/shared/hooks/focus.ts","webpack://aramark.acp.react/./src/shared/services/loading/model/slice.ts","webpack://aramark.acp.react/./src/shared/services/modal/components/parts.ts","webpack://aramark.acp.react/./src/shared/services/modal/constants.ts","webpack://aramark.acp.react/./src/shared/services/modal/action.ts","webpack://aramark.acp.react/./src/shared/services/modal/components/Modal.tsx","webpack://aramark.acp.react/./src/shared/services/modal/components/HiddenLoadingElement.tsx","webpack://aramark.acp.react/./src/shared/services/modal/components/LoadingModal.tsx","webpack://aramark.acp.react/./src/shared/services/modal/components/ButtonClose.tsx","webpack://aramark.acp.react/./src/shared/services/modal/components/ModalOne.tsx","webpack://aramark.acp.react/./src/shared/services/notification/constants.ts","webpack://aramark.acp.react/./src/shared/services/notification/action.ts","webpack://aramark.acp.react/./src/shared/services/notification/components/Notification.tsx","webpack://aramark.acp.react/./src/shared/services/paypal/constants.ts","webpack://aramark.acp.react/./src/shared/services/paypal/parts.ts","webpack://aramark.acp.react/./src/shared/services/paypal/hooks.ts","webpack://aramark.acp.react/./src/shared/themes/default.ts","webpack://aramark.acp.react/./src/shared/themes/menu.ts","webpack://aramark.acp.react/./src/shared/themes/cart.ts","webpack://aramark.acp.react/./src/shared/themes/checkout.ts","webpack://aramark.acp.react/./src/shared/themes/confirmation.ts","webpack://aramark.acp.react/./src/shared/themes/mailSubscription.ts","webpack://aramark.acp.react/./src/shared/utils/apiClient.ts","webpack://aramark.acp.react/./src/shared/api/other.ts","webpack://aramark.acp.react/./src/shared/utils/basketPreiew.ts","webpack://aramark.acp.react/./src/shared/utils/handleAvailableDates.ts","webpack://aramark.acp.react/./src/shared/utils/hasSvg.ts","webpack://aramark.acp.react/./src/shared/utils/noop.ts","webpack://aramark.acp.react/./src/shared/utils/parseDate.ts","webpack://aramark.acp.react/./src/shared/utils/props-comparison.ts","webpack://aramark.acp.react/./src/shared/utils/srSpeak.ts","webpack://aramark.acp.react/./src/shared/utils/validation.ts"],"sourcesContent":["import { PREFIX_URL_API } from '@/shared/constants';\r\nimport { apiClient } from '@/shared/utils/apiClient';\r\n\r\nimport type {\r\n IApiResponseCartFoodProductDetails,\r\n IApiResponseGetUpdateFoodOrder,\r\n IApiResponseProceedToCheckout,\r\n IApiResponseRemoveItemByGroupId,\r\n IApiResponseUpdateFoodProductToCart,\r\n IApiResponseUpdateLocationAndTimeForOrdering,\r\n TApiCartFoodProductDetails,\r\n TApiGetUpdateFoodOrder,\r\n TApiProceedToCheckout,\r\n TApiRemoveItemByGroupId,\r\n TApiUpdateFoodProductToCart,\r\n TApiUpdateLocationAndTimeForOrdering,\r\n} from './types';\r\n\r\nexport const getUpdateFoodOrder: TApiGetUpdateFoodOrder = ({\r\n locationId,\r\n basketName,\r\n pickupTimeIncrement,\r\n date,\r\n periodId,\r\n storeIds,\r\n}) => {\r\n const url = `${\r\n PREFIX_URL_API.CART\r\n }/GetUpdateFoodOrder?locationId=${locationId}&basket=${basketName}&pickupTimeIncrement=${pickupTimeIncrement}&date=${date}&periodId=${periodId}&storeId=${\r\n storeIds || ''\r\n }`;\r\n return apiClient.get(url);\r\n};\r\n\r\nexport const removeItemByGroupId: TApiRemoveItemByGroupId = (payload) => {\r\n const url = `${PREFIX_URL_API.CART}/DeleteBasketLineItem`;\r\n return apiClient.post(url, payload);\r\n};\r\n\r\nexport const cartFoodProductDetails: TApiCartFoodProductDetails = ({ basket, item, prod }) => {\r\n const url = `${PREFIX_URL_API.CART}/GetFoodProduct?basket=${basket}&item=${item}&prod=${prod}`;\r\n return apiClient.get(url);\r\n};\r\n\r\nexport const proceedToCheckout: TApiProceedToCheckout = (basket) => {\r\n const url = `${PREFIX_URL_API.CART}/ProceedToCheckout`;\r\n return apiClient.post(url, { basket });\r\n};\r\n\r\nexport const updateFoodProductToCart: TApiUpdateFoodProductToCart = (payload) => {\r\n const url = `${PREFIX_URL_API.CART}/UpdateFoodProduct`;\r\n return apiClient.post(url, payload);\r\n};\r\n\r\nexport const updateLocationAndTimeForOrdering: TApiUpdateLocationAndTimeForOrdering = (payload) => {\r\n const url = `${PREFIX_URL_API.CART}/UpdateFoodOrder`;\r\n return apiClient.post(url, payload);\r\n};\r\n","import { PREFIX_URL_API } from '@/shared/constants';\r\nimport { IBasket } from '@/shared/types/checkout';\r\nimport { apiClient } from '@/shared/utils/apiClient';\r\n\r\nimport type {\r\n IApiResponseAddCreditCardPayment,\r\n IApiResponseApplyPromoCode,\r\n IApiResponseApplyRewards,\r\n IApiResponseCompletePurchase,\r\n IApiResponseConfigForPayPal,\r\n IApiResponseDeleteAddedCreditCard,\r\n IApiResponseDeleteAppliedReward,\r\n IApiResponseGetRewardsToApply,\r\n IApiResponseLigthboxOnApproval,\r\n IApiResponseUpdateBasket,\r\n TApiAddCreditCardPayment,\r\n TApiApplyPromoCode,\r\n TApiApplyRewards,\r\n TApiCompletePurchase,\r\n TApiConfigForPayPal,\r\n TApiDeleteAddedCreditCard,\r\n TApiDeleteAppliedReward,\r\n TApiGetRewardsToApply,\r\n TApiLigthboxOnApproval,\r\n TApiRefresh,\r\n TApiRegisterClient,\r\n TApiRemovePromoCode,\r\n TApiUpdateBasket,\r\n TApiUpdateBasketPhoneNumber,\r\n} from './types';\r\n\r\nexport const applyPromoCode: TApiApplyPromoCode = (payload) => {\r\n const url = `${PREFIX_URL_API.BASKET}/ApplyPromoCode`;\r\n return apiClient.post(url, payload);\r\n};\r\nexport const removePromoCode: TApiRemovePromoCode = (payload) => {\r\n const url = `${PREFIX_URL_API.BASKET}/RemovePromoCode`;\r\n return apiClient.post(url, payload);\r\n};\r\n\r\nexport const completePurchase: TApiCompletePurchase = (payload) => {\r\n const url = `${PREFIX_URL_API.BASKET}/CompletePurchase`;\r\n return apiClient.post(url, payload);\r\n};\r\n\r\nexport const ligthboxOnApproval: TApiLigthboxOnApproval = (payload) => {\r\n const url = `${PREFIX_URL_API.BASKET}/LightBoxOnApproval`;\r\n return apiClient.post(url, payload);\r\n};\r\n\r\nexport const addCreditCardPayment: TApiAddCreditCardPayment = (payload) => {\r\n const url = `${PREFIX_URL_API.BASKET}/AddCreditCardPayment`;\r\n return apiClient.post(url, payload);\r\n};\r\nexport const deleteAddedCreditCard: TApiDeleteAddedCreditCard = (payload) => {\r\n const url = `${PREFIX_URL_API.BASKET}/RemoveCreditCard`;\r\n return apiClient.post(url, payload);\r\n};\r\nexport const updateBasket: TApiUpdateBasket = (payload) => {\r\n const url = `${PREFIX_URL_API.BASKET}/UpdateBasket`;\r\n return apiClient.post(url, payload);\r\n};\r\n\r\nexport const deleteAppliedReward: TApiDeleteAppliedReward = (id, payload) => {\r\n const url = `${PREFIX_URL_API.LOYALTY}/rewards/${id}`;\r\n return apiClient.delete(url, payload);\r\n};\r\n\r\nexport const applyRewards: TApiApplyRewards = (payload) => {\r\n const url = `${PREFIX_URL_API.LOYALTY}/rewards/apply`;\r\n return apiClient.post(url, payload);\r\n};\r\n\r\nexport const getRewardsToApply: TApiGetRewardsToApply = (basketName) => {\r\n const url = `${PREFIX_URL_API.LOYALTY}/rewards?BasketName=${basketName}`;\r\n return apiClient.get(url);\r\n};\r\n\r\nexport const registerClient: TApiRegisterClient = (payload) => {\r\n const url = `${PREFIX_URL_API.LOYALTY}/accounts`;\r\n return apiClient.post(url, payload);\r\n};\r\n\r\nexport const updateBasketPhoneNumber: TApiUpdateBasketPhoneNumber = (payload) => {\r\n const url = `${PREFIX_URL_API.BASKET}/UpdateBasketPhoneNumber`;\r\n return apiClient.post(url, payload);\r\n};\r\n\r\nexport const refresh: TApiRefresh = (payload) => {\r\n const url = `${PREFIX_URL_API.BASKET}/Refresh`;\r\n return apiClient.post(url, payload);\r\n};\r\n\r\nexport const getConfigForPayPal: TApiConfigForPayPal = (locationId) => {\r\n const url = `${PREFIX_URL_API.API}/payments/paypal/gettoken?locationId=${locationId}`;\r\n return apiClient.get(url);\r\n};\r\n","import { PREFIX_URL_API } from '@/shared/constants';\r\nimport { apiClient } from '@/shared/utils/apiClient';\r\n\r\nimport type {\r\n IApiResponseAddOrRemoveFromLocationFavorite,\r\n TApiAddOrRemoveFromLocationFavorite,\r\n} from './types';\r\n\r\nexport const addOrRemoveFromLocationFavoriteApi: TApiAddOrRemoveFromLocationFavorite = (\r\n postData,\r\n) => {\r\n const url = `${PREFIX_URL_API.LOCATIONS}/AddOrRemoveFromFavorite`;\r\n return apiClient.post(url, postData);\r\n};\r\n","import { PREFIX_URL_API } from '@/shared/constants';\r\nimport { apiClient } from '@/shared/utils/apiClient';\r\n\r\nimport type { IApiResponseMailSubscriptionJoin, TApiMailSubscriptionJoin } from './types';\r\n\r\nexport const joinApi: TApiMailSubscriptionJoin = (postData) => {\r\n const url = `${PREFIX_URL_API.API}/MailSubscription/MailSubscriptionApi`;\r\n return apiClient.post(url, postData);\r\n};\r\n","import { PREFIX_URL_API } from '@/shared/constants';\r\nimport { apiClient } from '@/shared/utils/apiClient';\r\n\r\nimport type { IApiResponseManageUserFavoritesRemove, TApiManageUserFavoritesRemove } from './types';\r\n\r\nexport const removeFromFavoriteApi: TApiManageUserFavoritesRemove = (postData) => {\r\n const url = `${PREFIX_URL_API.MANAGE_USER_FAVORITES}/RemoveFromUserFavorites`;\r\n return apiClient.post(url, postData);\r\n};\r\n","import { PREFIX_URL_API } from '@/shared/constants';\r\nimport type { TModelMenu } from '@/shared/types/menu';\r\nimport { apiClient } from '@/shared/utils/apiClient';\r\n\r\nimport { createAsyncThunk } from '@reduxjs/toolkit';\r\n\r\nimport type {\r\n IApiPropsFetchMenu,\r\n IApiResponseAddFoodProductToCart,\r\n IApiResponseAddOrRemoveFavoriteProduct,\r\n IApiResponseFetchMenu,\r\n IApiResponseFoodProductDetails,\r\n IApiResponseGetDataForMealCalculator,\r\n IApiResponseGetMenuCalendar,\r\n IApiResponseGetMenuPeriods,\r\n IApiResponseGetPickUPTimes,\r\n TApiAddFoodProductToCart,\r\n TApiAddOrRemoveFavoriteProduct,\r\n TApiFetchFoodProductDetails,\r\n TApiGetDataForMealCalculator,\r\n TApiGetMenuCalendar,\r\n TApiGetMenuPeriods,\r\n TApiGetPickUPTimes,\r\n TApiSaveFilters,\r\n} from './types';\r\n\r\nexport const fetchMenu = createAsyncThunk(\r\n 'menus/fetchMenus',\r\n async ({ mode, customPeriodId, customDate, time, fulfillmentMode, callback }, thunkAPI) => {\r\n const { locationId, date, periodId, storeIds } = (thunkAPI.getState() as MenuRootState).menu\r\n .requestParameters;\r\n\r\n try {\r\n const url = `${PREFIX_URL_API.MENU}/GetMenus?locationId=${locationId}&storeIds=${\r\n storeIds || ''\r\n }&mode=${mode}&date=${customDate || date}&time=${time || ''}&periodId=${\r\n customPeriodId || periodId\r\n }&fulfillmentMethod=${fulfillmentMode !== undefined ? fulfillmentMode : ''}` as string;\r\n // TODO: сравнить типизации параметров на бэке\r\n const response = await apiClient.get(url);\r\n if (callback) callback();\r\n document.dispatchEvent(\r\n new CustomEvent('menuModeChanged', {\r\n detail: {\r\n mode,\r\n locationId,\r\n storeIds,\r\n date: customDate || date,\r\n periodId: customPeriodId || periodId,\r\n },\r\n }),\r\n );\r\n return { menu: response, mode };\r\n } catch (error) {\r\n return thunkAPI.rejectWithValue((error as Error).message);\r\n }\r\n },\r\n);\r\n\r\nexport const getDataForMealCalculator: TApiGetDataForMealCalculator = (totalMealIds) => {\r\n const url = `${PREFIX_URL_API.PRODUCT}/GetMenuProductsByIdsJson?ids=${totalMealIds}`;\r\n return apiClient.get(url);\r\n};\r\n\r\nexport const fetchFoodProductDetails: TApiFetchFoodProductDetails = ({\r\n locationId,\r\n mode,\r\n date,\r\n periodId,\r\n prod,\r\n root,\r\n}) => {\r\n const url = `${PREFIX_URL_API.PRODUCT}/FoodProductDetailsJson?locationId=${\r\n locationId || ''\r\n }&mode=${mode || ''}&date=${date || ''}&periodId=${periodId || ''}&prod=${prod || ''}&root=${\r\n root || ''\r\n }`;\r\n\r\n return apiClient.get(url);\r\n};\r\n\r\nexport const addOrRemoveFavoriteProduct: TApiAddOrRemoveFavoriteProduct = (payload) => {\r\n const url = `${PREFIX_URL_API.PRODUCT}/AddToFavoritePost`;\r\n return apiClient.post(url, payload);\r\n};\r\n\r\nexport const addFoodProductToCart: TApiAddFoodProductToCart = (payload) => {\r\n const url = `${PREFIX_URL_API.PRODUCT}/AddFoodProductToCartJson`;\r\n return apiClient.post(url, payload);\r\n};\r\n\r\nexport const getMenuCalendar: TApiGetMenuCalendar = ({ locationId, storeIds }) => {\r\n const url = `${PREFIX_URL_API.API}/menus/GetMenuCalendar?locationId=${locationId}&storeIds=${storeIds}`;\r\n return apiClient.get(url);\r\n};\r\n\r\nexport const getMenuPeriods: TApiGetMenuPeriods = ({ locationId, storeId, date, mode }) => {\r\n const url = `${PREFIX_URL_API.MENU}/GetMenuPeriods?locationId=${locationId || ''}&storeId=${\r\n storeId || ''\r\n }&date=${date || ''}&mode=${mode || ''}`;\r\n return apiClient.get(url);\r\n};\r\n\r\nexport const getPickUPTimes: TApiGetPickUPTimes = ({\r\n locationId,\r\n storeIds,\r\n date,\r\n mode,\r\n periodId,\r\n fulfillment,\r\n pageStoreId,\r\n}) => {\r\n const url = `${PREFIX_URL_API.MENU}/GetPickUPTimes?locationId=${locationId || ''}&mode=${\r\n mode || ''\r\n }&date=${date || ''}&periodId=${periodId || ''}&FulfillmentMethod=${fulfillment}&pageStoreId=${\r\n pageStoreId || ''\r\n }&storeIds=${storeIds || ''}`;\r\n return apiClient.get(url);\r\n};\r\n\r\nexport const apiSaveFilters: TApiSaveFilters = ({ filterItems }) => {\r\n const url = `${PREFIX_URL_API.MENU}/SaveFilter`;\r\n return apiClient.post(url, { filterItems });\r\n};\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport { Underline as GlobalUnderline } from '@/shared/components/Underline';\r\n\r\nexport const AmountCaloriesComponent = styled.div`\r\n width: 100%;\r\n margin-bottom: 16px;\r\n`;\r\n\r\nexport const Ul = styled.ul`\r\n list-style: none;\r\n padding: 0;\r\n margin: 0;\r\n`;\r\nexport const InternalList = styled(Ul)`\r\n padding: 0;\r\n margin-left: 16px;\r\n`;\r\n\r\nexport const NutritionCard = styled(Ul)`\r\n color: #000;\r\n font-weight: normal;\r\n`;\r\n\r\nexport const AmountPerServing = styled.h3`\r\n color: #000;\r\n font-size: 14px;\r\n margin: 0 0 4px;\r\n line-height: 1.1;\r\n font-weight: normal;\r\n`;\r\n\r\nexport const DescriptionProductOfComposition = styled.li`\r\n ${({ fontWeight = '600' }: { fontWeight?: string }) => css`\r\n font-size: 16px;\r\n font-weight: ${fontWeight};\r\n padding: 8px 0 0 0;\r\n span {\r\n float: right;\r\n }\r\n `}\r\n`;\r\n\r\nexport const Underline = styled(GlobalUnderline)`\r\n margin-top: 8px;\r\n margin-bottom: 8px;\r\n background-color: #000;\r\n`;\r\n\r\nexport const UnderlineInnerList = styled(Underline)`\r\n ${({ num = 1 }: { num?: number }) => css`\r\n width: calc(100% + (16px * ${num}));\r\n margin-left: calc(-16px * ${num});\r\n `}\r\n`;\r\n","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { hasValue } from '@/shared/utils/validation';\r\n\r\nimport {\r\n DescriptionProductOfComposition,\r\n InternalList,\r\n Underline,\r\n UnderlineInnerList,\r\n} from './parts';\r\nimport { NutritionalTree } from './types';\r\n\r\ninterface NutritionalItemProps {\r\n item: NutritionalTree[number];\r\n sumByNesting?: number;\r\n}\r\n\r\nconst NutritionalItem: React.FC = ({ item, sumByNesting = 1 }) => {\r\n const { formatMessage } = useIntl();\r\n const notAvailableLabel = formatMessage({\r\n id: 'Menus.Filters.MealCalculator.Labels.NotAvailable',\r\n });\r\n\r\n // only for the \"Includes Added Sugars\" property for task 29519\r\n const valueItem =\r\n hasValue(item.Value) || item.Name !== 'Includes Added Sugars'\r\n ? `${item.Value || ''} ${item.Unit || ''}`\r\n : notAvailableLabel;\r\n const isFirstNesting = sumByNesting === 1;\r\n const isSubList = !!(item.SubList && item.SubList.length > 0);\r\n\r\n return (\r\n \r\n {item.Name}\r\n {valueItem}\r\n\r\n {isSubList && (\r\n \r\n {item.SubList!.map((subItem) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n )}\r\n {!isSubList &&\r\n (isFirstNesting ? (\r\n \r\n ) : (\r\n 1 && {\r\n num: sumByNesting - 1,\r\n })}\r\n />\r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default NutritionalItem;\r\n","import React, { memo } from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { isPropsEqual } from '@/shared/utils/props-comparison';\r\n\r\nimport NutritionalItem from './NutritionalItem';\r\nimport { AmountCaloriesComponent, AmountPerServing, NutritionCard } from './parts';\r\nimport type { NutritionalTree } from './types';\r\n\r\ninterface IProps {\r\n calories: NutritionalTree;\r\n}\r\n\r\nconst AmountCalories: React.FC = ({ calories }) => {\r\n const { formatMessage } = useIntl();\r\n const amountCaloriesTitle = formatMessage({\r\n id: 'Menus.Filters.MealCalculator.Labels.AmountCalories',\r\n });\r\n const list = calories.map((item) => (\r\n \r\n \r\n \r\n ));\r\n\r\n return (\r\n \r\n \r\n {amountCaloriesTitle.toUpperCase()}\r\n \r\n {list}\r\n \r\n );\r\n};\r\n\r\nexport default memo(AmountCalories, isPropsEqual);\r\n","var _rect;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nvar SvgMinusIcon = function SvgMinusIcon(_ref, ref) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"minusIcon\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 455 455\",\n style: {\n enableBackground: \"new 0 0 455 455\"\n },\n xmlSpace: \"preserve\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n y: 197.5,\n width: 455,\n height: 60\n })));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgMinusIcon);\nexport default ForwardRef;","import styled, { css } from 'styled-components';\r\n\r\nimport type { IDefaultTheme } from '@/shared/themes/types';\r\n\r\nimport type { IButton } from './types';\r\n\r\nconst lightColor = '#fff';\r\nconst darkColor = '#000000';\r\n\r\n// TODO: разделить все стили, переиспользовать переменную.\r\n\r\nexport const ButtonComponent = styled.button`\r\n ${({\r\n theme,\r\n width = '84px',\r\n height = '36px',\r\n padding = '0',\r\n margin = '0',\r\n fontSize = '16px',\r\n fontWeight = 'bold',\r\n isDark,\r\n borderRadius = '2px',\r\n }: Pick<\r\n IButton,\r\n | 'theme'\r\n | 'isDark'\r\n | 'width'\r\n | 'height'\r\n | 'margin'\r\n | 'padding'\r\n | 'fontSize'\r\n | 'fontWeight'\r\n | 'borderRadius'\r\n >) => css`\r\n width: ${width};\r\n height: ${height};\r\n padding: ${padding};\r\n border-radius: ${borderRadius};\r\n background-color: ${isDark ? theme.defaultPrimaryColor : lightColor};\r\n margin: ${margin};\r\n font-size: ${fontSize};\r\n font-weight: ${fontWeight};\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: 1.5;\r\n letter-spacing: normal;\r\n text-align: center;\r\n color: ${isDark ? lightColor : theme.defaultPrimaryColor};\r\n border: ${isDark ? '0 solid' : `1px solid ${theme.defaultPrimaryColor}`};\r\n cursor: pointer;\r\n\r\n :disabled {\r\n background-color: grey;\r\n }\r\n &:focus {\r\n outline: #000 solid 2px;\r\n outline-offset: -4px;\r\n }\r\n\r\n :hover {\r\n color: white;\r\n background-color: ${theme.defaultSecondaryColor};\r\n }\r\n `}\r\n`;\r\n\r\nexport const ButtonSecondStyled = styled(ButtonComponent)`\r\n ${({\r\n theme,\r\n width = 'max-content',\r\n height = '40px',\r\n padding = '8px 24px',\r\n margin = '0',\r\n fontWeight = 'normal',\r\n borderRadius = '4px',\r\n isDark,\r\n }: {\r\n theme: IDefaultTheme;\r\n padding?: string;\r\n margin?: string;\r\n width?: string;\r\n height?: string;\r\n borderRadius?: string;\r\n fontWeight?: string;\r\n isDark?: boolean;\r\n }) => css`\r\n width: ${width};\r\n height: ${height};\r\n padding: ${padding};\r\n font-weight: ${fontWeight};\r\n border-radius: ${borderRadius};\r\n background-color: ${theme.defaultPrimaryColor};\r\n margin: ${margin};\r\n color: white;\r\n\r\n :hover {\r\n border: 1px solid ${!isDark ? lightColor : theme.defaultPrimaryColor};\r\n }\r\n\r\n :disabled {\r\n color: ${lightColor};\r\n border: none;\r\n background-color: grey;\r\n }\r\n :focus {\r\n outline: ${isDark ? lightColor : theme.defaultPrimaryColor} solid 2px;\r\n outline-offset: -4px;\r\n }\r\n `}\r\n`;\r\n\r\nexport const ButtonTextStyled = styled(ButtonComponent)`\r\n ${({\r\n theme,\r\n width = 'max-content',\r\n height = '40px',\r\n padding = '0',\r\n margin = '0',\r\n bg,\r\n isDark,\r\n }: Pick) => css`\r\n width: ${width};\r\n height: ${height};\r\n padding: ${padding};\r\n background-color: ${bg || (!isDark ? lightColor : theme.defaultPrimaryColor)};\r\n margin: ${margin};\r\n color: ${!isDark ? theme.defaultPrimaryColor : lightColor};\r\n border: ${isDark ? '1px solid' : '0px solid'};\r\n text-align: start;\r\n line-height: 1.3;\r\n\r\n &:focus {\r\n outline: ${darkColor} solid 2px;\r\n outline-offset: -2px;\r\n }\r\n\r\n :hover {\r\n color: ${!isDark ? theme.defaultPrimaryColor : lightColor};\r\n background-color: ${bg || (!isDark ? lightColor : theme.defaultPrimaryColor)};\r\n }\r\n `}\r\n`;\r\n\r\nexport const ButtonLinkStyled = styled(ButtonComponent)`\r\n ${({\r\n theme,\r\n width = 'max-content',\r\n height = '40px',\r\n padding = '0',\r\n margin = '0px 16px 0px 0px',\r\n fontSize = '16px',\r\n fontWeight = 'normal',\r\n isDark,\r\n }: Pick<\r\n IButton,\r\n 'theme' | 'isDark' | 'width' | 'height' | 'margin' | 'padding' | 'fontSize' | 'fontWeight'\r\n >) => css`\r\n width: ${width};\r\n height: ${height};\r\n font-size: ${fontSize};\r\n font-weight: ${fontWeight};\r\n padding: ${padding};\r\n background-color: ${!isDark ? lightColor : theme.defaultPrimaryColor};\r\n margin: ${margin};\r\n color: ${!isDark ? theme.defaultPrimaryColor : lightColor};\r\n border: ${isDark ? '0px solid' : `1px solid ${theme.defaultPrimaryColor}`};\r\n\r\n :hover {\r\n color: ${!isDark ? theme.defaultPrimaryColor : lightColor};\r\n background-color: ${!isDark ? lightColor : theme.defaultPrimaryColor};\r\n }\r\n &:focus {\r\n outline: ${isDark ? lightColor : theme.defaultPrimaryColor} solid 2px;\r\n outline-offset: -4px;\r\n }\r\n `}\r\n`;\r\n\r\nexport const ButtonCheckboxLabelStyled = styled.label`\r\n ${({\r\n theme,\r\n isChecked,\r\n padding = '0',\r\n margin = '0',\r\n width = '84px',\r\n height = '36px',\r\n }: Pick & {\r\n isChecked: boolean;\r\n }) => css`\r\n display: block;\r\n padding: ${padding};\r\n border-radius: 2px;\r\n margin: ${margin};\r\n user-select: none;\r\n position: relative;\r\n background-color: ${isChecked ? theme.defaultPrimaryColor : lightColor};\r\n border: ${!isChecked && `1px solid ${theme.defaultPrimaryColor}`};\r\n cursor: pointer;\r\n width: ${width};\r\n height: ${height};\r\n text-align: center;\r\n\r\n &.focus {\r\n outline: #000 solid 2px;\r\n }\r\n `}\r\n`;\r\n\r\nexport const ButtonCheckboxSpanStyled = styled.span`\r\n ${({\r\n theme,\r\n fontSize = '16px',\r\n fontWeight = 'bold',\r\n isChecked,\r\n }: Pick & {\r\n isChecked: boolean;\r\n }) => css`\r\n font-size: ${fontSize};\r\n font-weight: ${fontWeight};\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: 1.5;\r\n letter-spacing: normal;\r\n color: ${isChecked ? lightColor : theme.defaultPrimaryColor};\r\n `}\r\n`;\r\n\r\nexport const ButtonCheckboxInputStyled = styled.input`\r\n z-index: -1;\r\n opacity: 0;\r\n display: block;\r\n height: 0.1px;\r\n`;\r\n\r\nexport const ButtonAddToFav = styled.button`\r\n padding: 0;\r\n height: 24px;\r\n float: right;\r\n margin: 4px 8px;\r\n width: 24px;\r\n background: transparent;\r\n border-radius: 4px;\r\n border-style: none;\r\n line-height: 0;\r\n cursor: pointer;\r\n`;\r\n","import React, { PropsWithChildren } from 'react';\r\n\r\nimport { ButtonComponent } from '../parts';\r\nimport type { IButton } from '../types';\r\n\r\ninterface IProps\r\n extends Pick<\r\n IButton,\r\n | 'width'\r\n | 'height'\r\n | 'margin'\r\n | 'padding'\r\n | 'isDark'\r\n | 'borderRadius'\r\n | 'fontSize'\r\n | 'fontWeight'\r\n | 'className'\r\n > {\r\n click?: VoidFunction;\r\n title?: string;\r\n disabled?: boolean;\r\n}\r\nconst Button: React.FC> = ({\r\n click = () => {},\r\n children,\r\n width,\r\n height,\r\n margin,\r\n padding,\r\n fontSize,\r\n fontWeight,\r\n isDark,\r\n disabled,\r\n borderRadius,\r\n className,\r\n title,\r\n}) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\nexport default Button;\r\n","import React, { FC, PropsWithChildren } from 'react';\r\n\r\nimport {\r\n ButtonCheckboxInputStyled,\r\n ButtonCheckboxLabelStyled,\r\n ButtonCheckboxSpanStyled,\r\n} from '../parts';\r\nimport type { IButton } from '../types';\r\n\r\ninterface IProps\r\n extends Pick {\r\n id: string;\r\n click: VoidFunction;\r\n isChecked: boolean;\r\n}\r\n\r\nconst CLASSNAME_FOCUS = 'focus';\r\n\r\nconst ButtonCheckbox: FC> = ({\r\n id,\r\n isChecked,\r\n width,\r\n height,\r\n click,\r\n margin,\r\n padding,\r\n fontWeight,\r\n children,\r\n className = 'ButtonCheckbox',\r\n}) => {\r\n const onKeyDown: React.KeyboardEventHandler = (event) => {\r\n if (event.key === 'Enter') click();\r\n };\r\n const onFocus: React.FocusEventHandler = (event) => {\r\n const checkboxElement = event.target.parentElement;\r\n if (!checkboxElement?.classList.contains(CLASSNAME_FOCUS)) {\r\n checkboxElement?.classList.add(CLASSNAME_FOCUS);\r\n }\r\n };\r\n const onBlur: React.FocusEventHandler = (event) => {\r\n const checkboxElement = event.target.parentElement;\r\n if (checkboxElement?.classList.contains(CLASSNAME_FOCUS)) {\r\n checkboxElement.classList.remove(CLASSNAME_FOCUS);\r\n }\r\n };\r\n return (\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ButtonCheckbox;\r\n","import React, { FC, PropsWithChildren } from 'react';\r\n\r\nimport { ButtonLinkStyled } from '../parts';\r\nimport type { IButton } from '../types';\r\n\r\ninterface IProps\r\n extends Pick<\r\n IButton,\r\n | 'width'\r\n | 'height'\r\n | 'margin'\r\n | 'padding'\r\n | 'fontWeight'\r\n | 'aria-label'\r\n | 'fontSize'\r\n | 'isDark'\r\n | 'className'\r\n > {\r\n link: string;\r\n disabled?: boolean;\r\n}\r\nconst ButtonLink: FC> = ({\r\n link,\r\n width,\r\n height,\r\n margin,\r\n padding,\r\n fontWeight,\r\n fontSize,\r\n isDark,\r\n 'aria-label': ariaLabel,\r\n disabled,\r\n children,\r\n className = 'ButtonLink',\r\n}) => {\r\n const handleLinkClick = (): void => {\r\n window.location.assign(link);\r\n };\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default ButtonLink;\r\n","import React, { FC, PropsWithChildren } from 'react';\r\n\r\nimport { ButtonTextStyled } from '../parts';\r\nimport type { IButton } from '../types';\r\n\r\ninterface IProps\r\n extends Pick<\r\n IButton,\r\n | 'width'\r\n | 'height'\r\n | 'margin'\r\n | 'padding'\r\n | 'bg'\r\n | 'fontWeight'\r\n | 'aria-label'\r\n | 'fontSize'\r\n | 'isDark'\r\n | 'className'\r\n > {\r\n click?: VoidFunction;\r\n title?: string;\r\n disabled?: boolean;\r\n 'data-testid'?: string;\r\n}\r\n\r\nconst ButtonText: FC> = ({\r\n click,\r\n width,\r\n height,\r\n margin,\r\n padding,\r\n bg,\r\n title,\r\n isDark,\r\n disabled,\r\n children,\r\n className = 'ButtonText',\r\n 'data-testid': dataTestId = 'button-text',\r\n}) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default ButtonText;\r\n","import React, { FC, PropsWithChildren } from 'react';\r\n\r\nimport { ButtonSecondStyled } from '../parts';\r\nimport type { IButton } from '../types';\r\n\r\ninterface IProps\r\n extends Pick<\r\n IButton,\r\n | 'width'\r\n | 'height'\r\n | 'margin'\r\n | 'padding'\r\n | 'isDark'\r\n | 'borderRadius'\r\n | 'fontWeight'\r\n | 'aria-label'\r\n | 'className'\r\n > {\r\n click?: VoidFunction;\r\n title?: string;\r\n disabled?: boolean;\r\n}\r\n\r\nconst ButtonSecond: FC> = ({\r\n click,\r\n width,\r\n height,\r\n margin,\r\n padding,\r\n title,\r\n isDark,\r\n disabled,\r\n children,\r\n borderRadius,\r\n fontWeight,\r\n 'aria-label': ariaLabel,\r\n className = 'ButtonSecond',\r\n}) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default ButtonSecond;\r\n","var _rect, _rect2;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nvar SvgPlusIcon = function SvgPlusIcon(_ref, ref) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"plusIcon\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 455 455\",\n style: {\n enableBackground: \"new 0 0 455 455\"\n },\n xmlSpace: \"preserve\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 197.5,\n width: 60,\n height: 455\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n y: 197.5,\n width: 455,\n height: 60\n })));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgPlusIcon);\nexport default ForwardRef;","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nvar SvgHeart = function SvgHeart(_ref, ref) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z\"\n })));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgHeart);\nexport default ForwardRef;","import React from 'react';\r\n\r\nimport MinusIcon from '../icons/minusIcon.svg';\r\nimport PlusIcon from '../icons/plusIcon.svg';\r\n\r\ninterface IProps {\r\n isPlus?: boolean;\r\n}\r\nconst PlusOrMinus: React.FC = ({ isPlus = false }) => {\r\n return isPlus ? (\r\n \r\n ) : (\r\n \r\n );\r\n};\r\nexport default PlusOrMinus;\r\n","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nvar SvgHeartOutline = function SvgHeartOutline(_ref, ref) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.1,18.55L12,18.65L11.89,18.55C7.14,14.24 4,11.39 4,8.5C4,6.5 5.5,5 7.5,5C9.04,5 10.54,6 11.07,7.36H12.93C13.46,6 14.96,5 16.5,5C18.5,5 20,6.5 20,8.5C20,11.39 16.86,14.24 12.1,18.55M16.5,3C14.76,3 13.09,3.81 12,5.08C10.91,3.81 9.24,3 7.5,3C4.42,3 2,5.41 2,8.5C2,12.27 5.4,15.36 10.55,20.03L12,21.35L13.45,20.03C18.6,15.36 22,12.27 22,8.5C22,5.41 19.58,3 16.5,3Z\"\n })));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgHeartOutline);\nexport default ForwardRef;","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport SvgHeart from '../icons/heart.svg';\r\nimport SvgHeartOutline from '../icons/heartOutline.svg';\r\nimport { ButtonAddToFav } from '../parts';\r\n\r\ninterface IProps {\r\n id: string | null;\r\n marketingName: Nullable;\r\n IsUserFavorite: boolean;\r\n handlerClick: VoidFunction;\r\n 'data-testid'?: string;\r\n className?: string;\r\n}\r\nconst ButtonAddToFavorites: React.FC = ({\r\n id,\r\n marketingName,\r\n IsUserFavorite,\r\n handlerClick,\r\n 'data-testid': dataTestId = 'button-add-to-fav',\r\n className,\r\n}) => {\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n markAsFavorite: formatMessage(\r\n { id: 'Global.ButtonAddToFavorites.AddToFavorites' },\r\n { 0: marketingName },\r\n ),\r\n unMarkAsFavorite: formatMessage(\r\n { id: 'Global.ButtonAddToFavorites.RemoveFromFavorites' },\r\n { 0: marketingName },\r\n ),\r\n ariaLabel: formatMessage({ id: 'Global.ButtonAddToFavorites.AriaLabel' }),\r\n };\r\n const ariaDescription = IsUserFavorite ? messages.unMarkAsFavorite : messages.markAsFavorite;\r\n const ariaDescribedby = `AriaDescribedbyAddToFavoritesButton_${id}`;\r\n return (\r\n <>\r\n \r\n {!IsUserFavorite ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {ariaDescription}\r\n \r\n \r\n );\r\n};\r\nexport default ButtonAddToFavorites;\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport type { ICheckoutTheme } from '@/shared/themes/types';\r\n\r\nexport const SummaryDiv = styled.div`\r\n width: 100%;\r\n max-width: 100%;\r\n height: 100%;\r\n background: #f7f7f7;\r\n border: 1px solid #cccccc;\r\n padding: 16px;\r\n border-radius: 4px;\r\n`;\r\nexport const SummaryTable = styled.table`\r\n width: 100%;\r\n height: unset;\r\n margin-top: 24px;\r\n margin-bottom: 12px;\r\n table-layout: fixed;\r\n`;\r\n\r\nexport const SummaryTableHeaderRow = styled.tr`\r\n ${({ theme }: { theme: ICheckoutTheme }) => css`\r\n display: flex;\r\n height: unset;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n margin: 0 8px;\r\n font-size: ${theme.fontSizes.small};\r\n font-weight: ${theme.fontWeight.normal};\r\n `}\r\n`;\r\n\r\nexport const SummaryTableRow = styled(SummaryTableHeaderRow)`\r\n ${() => css`\r\n margin-bottom: 16px;\r\n `}\r\n`;\r\n\r\nexport const SummaryTableFooterRow = styled(SummaryTableHeaderRow)`\r\n ${() => css`\r\n margin-bottom: 0;\r\n `}\r\n`;\r\n\r\nexport const QtyCellHeader = styled.th`\r\n ${({ theme }: { theme: ICheckoutTheme }) => css`\r\n font-size: ${theme.fontSizes.small};\r\n font-weight: ${theme.fontWeight.normal};\r\n width: 30px;\r\n justify-self: flex-start;\r\n display: flex;\r\n text-align: center;\r\n align-items: center;\r\n justify-content: center;\r\n height: auto;\r\n padding: 0;\r\n `}\r\n`;\r\n\r\nexport const QtyCell = styled.td`\r\n ${({ theme }: { theme: ICheckoutTheme }) => css`\r\n font-size: ${theme.fontSizes.large};\r\n font-weight: ${theme.fontWeight.normal};\r\n width: 30px;\r\n justify-self: flex-start;\r\n display: flex;\r\n text-align: center;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 0;\r\n `}\r\n`;\r\n\r\nexport const MainCellHeader = styled.th`\r\n ${({ theme }: { theme: ICheckoutTheme }) => css`\r\n font-size: ${theme.fontSizes.small};\r\n font-weight: ${theme.fontWeight.normal};\r\n padding: 0;\r\n margin: 8px;\r\n margin-top: 0;\r\n height: auto;\r\n width: calc(100% - 90px);\r\n padding-left: 5px;\r\n justify-self: center;\r\n justify-self: flex-start;\r\n text-align: left;\r\n align-items: center;\r\n `}\r\n`;\r\n\r\nexport const MainCell = styled.th`\r\n width: calc(100% - 90px);\r\n justify-self: flex-start;\r\n text-align: left;\r\n align-items: center;\r\n margin: 0 8px;\r\n padding: 0;\r\n`;\r\n\r\nexport const MainCellName = styled.div`\r\n ${({ theme }: { theme: ICheckoutTheme }) => css`\r\n font-size: ${theme.fontSizes.large};\r\n font-weight: ${theme.fontWeight.normal};\r\n white-space: initial;\r\n `}\r\n`;\r\n\r\nexport const MainCellModifiers = styled.div`\r\n ${({ theme, width }: { theme: ICheckoutTheme; width: number }) => css`\r\n width: ${width}px;\r\n height: auto;\r\n font-size: ${theme.fontSizes.small};\r\n font-weight: ${theme.fontWeight.normal};\r\n margin-top: 2px;\r\n white-space: initial;\r\n `}\r\n`;\r\n\r\nexport const PriceCellHeader = styled.th`\r\n ${({ theme }: { theme: ICheckoutTheme }) => css`\r\n width: 60px;\r\n justify-self: flex-end;\r\n text-align: right;\r\n font-size: ${theme.fontSizes.small};\r\n font-weight: ${theme.fontWeight.normal};\r\n padding: 0;\r\n height: auto;\r\n `}\r\n`;\r\n\r\nexport const PriceCell = styled.td`\r\n ${({ theme }: { theme: ICheckoutTheme }) => css`\r\n width: fit-content;\r\n justify-self: flex-end;\r\n text-align: right;\r\n font-size: ${theme.fontSizes.medium};\r\n font-weight: ${theme.fontWeight.large};\r\n padding: 0;\r\n `}\r\n`;\r\n\r\nexport const TotalRowName = styled.th`\r\n ${({ theme }: { theme: ICheckoutTheme }) => css`\r\n flex: 1 1 80%;\r\n justify-self: flex-start;\r\n text-align: right;\r\n font-size: ${theme.fontSizes.medium};\r\n font-weight: ${theme.fontWeight.normal};\r\n padding: 0;\r\n margin-bottom: 8px;\r\n `}\r\n`;\r\n\r\nexport const TotalRowSum = styled.td<{ theme: ICheckoutTheme; isDiscount?: boolean }>`\r\n ${({ theme, isDiscount }) => css`\r\n flex: 1 0 24%;\r\n justify-self: flex-end;\r\n text-align: right;\r\n font-size: ${theme.fontSizes.medium};\r\n font-weight: ${theme.fontWeight.large};\r\n color: ${isDiscount ? 'red' : 'unset'};\r\n padding: 0;\r\n margin-bottom: 8px;\r\n\r\n ${theme.media.tablet} {\r\n flex: 1 0 14%;\r\n }\r\n `}\r\n`;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\nimport { toQuery, useMediaQuery } from 'react-responsive';\r\n\r\nimport { Modifiers } from '@/shared/components/Modifires';\r\nimport { useCurrencyFormmater } from '@/shared/hooks/currencyFormmater';\r\n\r\nimport { FreeGiftTag } from '../FreeGiftTag';\r\nimport {\r\n MainCell,\r\n MainCellHeader,\r\n MainCellModifiers,\r\n MainCellName,\r\n PriceCell,\r\n PriceCellHeader,\r\n QtyCell,\r\n QtyCellHeader,\r\n SummaryTable,\r\n SummaryTableFooterRow,\r\n SummaryTableHeaderRow,\r\n SummaryTableRow,\r\n TotalRowName,\r\n TotalRowSum,\r\n} from './parts';\r\nimport type { IBasketProps } from './types';\r\n\r\nconst ContentOrderSummary: React.FC<\r\n IBasketProps & {\r\n isPaymentDetailsAvailable: boolean;\r\n }\r\n> = ({\r\n SubTotal,\r\n TaxTotal,\r\n Total,\r\n ItemTotal,\r\n PromotionsTotal,\r\n RewardsTotal,\r\n HandlingFee,\r\n FulfillmentTotal,\r\n LineItems,\r\n isPaymentDetailsAvailable,\r\n}) => {\r\n const { formatMessage } = useIntl();\r\n const format = useCurrencyFormmater();\r\n\r\n const messages = {\r\n qty: formatMessage({ id: 'qty' }),\r\n item: formatMessage({ id: 'item' }),\r\n price: formatMessage({ id: 'price' }),\r\n subtotal: formatMessage({ id: 'subtotal' }),\r\n tax: formatMessage({ id: 'tax' }),\r\n orderTotal: formatMessage({ id: 'orderTotal' }),\r\n promotions: formatMessage({ id: 'promotions' }),\r\n handlingFee: formatMessage({ id: 'handlingFee' }),\r\n fulfillmentTotal: formatMessage({ id: 'fulfillmentTotal' }),\r\n rewardsTotal: formatMessage({ id: 'Loyalty.Labels.RewardsTotal' }),\r\n itemTotalKey: formatMessage({ id: 'itemTotal' }),\r\n };\r\n\r\n const isMobile = useMediaQuery({\r\n query: toQuery({\r\n maxWidth: 767,\r\n }),\r\n });\r\n\r\n const QtyColHead = useRef(null);\r\n const MainColHead = useRef(null);\r\n const FooterNameCell = useRef(null);\r\n\r\n const [modifiersWidth, setModifiersWidth] = useState(0);\r\n useEffect(() => {\r\n const { font } = getComputedStyle(document.body);\r\n const canvas = document.createElement('canvas');\r\n const context = canvas.getContext('2d');\r\n if (!context) return;\r\n context.font = font;\r\n context.font += ' 16px';\r\n const maxTextWidth = Math.max(\r\n ...[messages.subtotal, messages.promotions, messages.tax, messages.orderTotal].map(\r\n (text) => context.measureText(text).width,\r\n ),\r\n );\r\n const qtyComputedWidth: number =\r\n (QtyColHead.current &&\r\n parseInt(window.getComputedStyle(QtyColHead.current).getPropertyValue('width'), 10)) ||\r\n 0;\r\n\r\n const footerNameComputedWidth: number =\r\n (FooterNameCell.current &&\r\n parseInt(window.getComputedStyle(FooterNameCell.current).getPropertyValue('width'), 10)) ||\r\n 0;\r\n\r\n const mainCellCalculatedWidth: number =\r\n (MainColHead.current &&\r\n parseInt(window.getComputedStyle(MainColHead.current).getPropertyValue('width'), 10)) ||\r\n 0;\r\n\r\n if (isMobile)\r\n setModifiersWidth(footerNameComputedWidth - qtyComputedWidth || mainCellCalculatedWidth);\r\n else setModifiersWidth(footerNameComputedWidth - qtyComputedWidth - maxTextWidth);\r\n }, [\r\n isMobile,\r\n FooterNameCell,\r\n QtyColHead,\r\n MainColHead,\r\n messages.subtotal,\r\n messages.promotions,\r\n messages.tax,\r\n messages.orderTotal,\r\n ]);\r\n\r\n const bodyList =\r\n LineItems && LineItems.length\r\n ? LineItems.map((_item) => {\r\n const itemPrice = format(_item.ListPrice);\r\n const itemTotal = format(_item.OriginalPrice * _item.Quantity);\r\n const itemDiscount =\r\n _item.TotalDiscountAmount && _item.TotalDiscountAmount !== 0\r\n ? format(_item.TotalDiscountAmount)\r\n : '';\r\n return (\r\n \r\n {_item.Quantity}\r\n \r\n {`${_item.ProductName} (${itemPrice})`}\r\n \r\n {!!_item.ModifierItems && !!_item.ModifierItems.length && (\r\n \r\n )}\r\n \r\n {_item.IsFreeGift && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n \r\n {!!itemDiscount &&
{`-${itemDiscount}`}
}\r\n {itemTotal}\r\n
\r\n
\r\n );\r\n })\r\n : null;\r\n\r\n return (\r\n \r\n {isPaymentDetailsAvailable ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {bodyList}\r\n \r\n \r\n \r\n {format(ItemTotal as number)}\r\n \r\n {PromotionsTotal !== null && PromotionsTotal !== 0 && (\r\n \r\n \r\n {`-${format(PromotionsTotal as number)}`}\r\n \r\n )}\r\n {RewardsTotal !== null && RewardsTotal !== 0 && (\r\n \r\n \r\n {format(RewardsTotal as number)}\r\n \r\n )}\r\n \r\n \r\n {format(SubTotal as number)}\r\n \r\n {!!HandlingFee && HandlingFee !== 0 && (\r\n \r\n \r\n {format(HandlingFee as number)}\r\n \r\n )}\r\n {!!FulfillmentTotal && FulfillmentTotal !== 0 && (\r\n \r\n \r\n {format(FulfillmentTotal as number)}\r\n \r\n )}\r\n \r\n \r\n {format(TaxTotal as number)}\r\n \r\n \r\n \r\n {format(Total as number)}\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ContentOrderSummary;\r\n","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { Button, ButtonText } from '@/shared/components/Button';\r\nimport { ModalOne } from '@/shared/services/modal';\r\nimport type { TPortalModalComponent } from '@/shared/services/modal/type';\r\nimport { PayPalLaterMessage } from '@/shared/services/paypal';\r\n\r\nimport ContentOrderSummary from './ContentOrderSummary';\r\nimport { SummaryDiv } from './parts';\r\nimport type { IBasketProps } from './types';\r\n\r\ninterface IProps {\r\n Edit?: VoidFunction;\r\n Basket?: IBasketProps;\r\n isShowPayPalMessage?: boolean;\r\n isPaymentDetailsAvailable: boolean;\r\n}\r\n\r\nconst OrderSummaryModal: TPortalModalComponent = ({\r\n Edit,\r\n Basket,\r\n isShowPayPalMessage = false,\r\n isPaymentDetailsAvailable,\r\n close,\r\n}) => {\r\n const { formatMessage } = useIntl();\r\n const messages = {\r\n edit: formatMessage({ id: 'edit' }),\r\n done: formatMessage({ id: 'done' }),\r\n summaryTitle: formatMessage({\r\n id: 'Checkout.OrderSummary.Modal.Title',\r\n }),\r\n };\r\n\r\n const footer = (\r\n <>\r\n {Edit && (\r\n <>\r\n \r\n {messages.edit}\r\n \r\n\r\n \r\n \r\n )}\r\n {!Edit && (\r\n \r\n )}\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n {Basket && (\r\n \r\n )}\r\n {isShowPayPalMessage && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default OrderSummaryModal;\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport type { IDefaultTheme } from '@/shared/themes/types';\r\n\r\nconst size = {\r\n mobileS: '320px',\r\n mobileM: '375px',\r\n mobileL: '425px',\r\n tablet: '767px',\r\n};\r\n\r\nexport const DatePickerButton = styled.button`\r\n width: 100%;\r\n border: none;\r\n height: 40px;\r\n margin: 1px 1px 1px 1px;\r\n padding: 1px 2px 2px 16px;\r\n border-radius: 22.5px;\r\n background-color: #efefef;\r\n display: inline-flex;\r\n position: relative;\r\n box-sizing: border-box;\r\n position: relative;\r\n\r\n :disabled {\r\n cursor: not-allowed;\r\n }\r\n\r\n @media (max-width: ${size.tablet}) {\r\n padding: 4px 2px 2px 21px;\r\n margin-bottom: 16px;\r\n margin-right: 1em;\r\n }\r\n`;\r\n\r\nexport const DateTextSpan = styled.span`\r\n margin: 6px 16px 6px 0;\r\n\r\n font-size: 14px;\r\n font-weight: bold;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: 1.71;\r\n letter-spacing: normal;\r\n color: #000000;\r\n width: max-content;\r\n\r\n @media (max-width: ${size.tablet}) {\r\n display: unset;\r\n }\r\n`;\r\n\r\nexport const DateMealSelectorFilterButton = styled.div`\r\n margin-left: auto;\r\n height: 37px;\r\n width: 56px;\r\n padding: 2px 16px;\r\n border-radius: 0px 22.5px 22.5px 0px;\r\n background-color: #ffffff;\r\n border: none;\r\n outline: none;\r\n\r\n @media (max-width: ${size.tablet}) {\r\n right: 1px;\r\n position: absolute;\r\n top: 1px;\r\n }\r\n`;\r\n\r\nexport const Svg = styled.svg`\r\n height: 23px;\r\n position: relative;\r\n top: 6px;\r\n width: 2em;\r\n display: inline-block;\r\n fill: ${({ theme }: { theme: IDefaultTheme }) => theme.defaultPrimaryColor};\r\n`;\r\n\r\nexport const LineThrough = styled.span`\r\n ${({ tooltipText }: { tooltipText: string }) => css`\r\n cursor: ${tooltipText === 'No Menu' ? 'not-allowed' : ''};\r\n text-decoration: ${tooltipText === 'No Menu' ? 'line-through' : ''};\r\n\r\n color: ${tooltipText === 'No Menu' || tooltipText === 'Menu data unavailable' ? '#ccc' : ''};\r\n &:focus {\r\n border: 1px solid;\r\n }\r\n `}\r\n`;\r\n","import { isAfter, isBefore, isSameDay } from 'date-fns';\r\nimport React, { PropsWithChildren, ReactNode, memo, useCallback, useRef } from 'react';\r\nimport DPiker, { CalendarContainer } from 'react-datepicker';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { LineThrough } from './parts';\r\n\r\nconst isBeforeOrAfterDay = (date: Date, minDate: Date, lastDate: Date): boolean => {\r\n return isBefore(date, minDate) || isAfter(date, lastDate);\r\n};\r\n\r\ninterface IProps {\r\n callback: (date: Date, focus: () => void) => void;\r\n preSelectedMenuDate: string | null | undefined;\r\n customInput?: React.ReactNode;\r\n isOpenDatePicker: boolean;\r\n setOpenDatePicker: (value: boolean) => void;\r\n availableDates: string[];\r\n lastDateOnCalendar: string;\r\n disabled: boolean;\r\n minDate: string;\r\n filterDate: (date: Date) => boolean;\r\n isRemoveFocusOnEscape?: boolean;\r\n}\r\nconst DatePicker: React.FC = ({\r\n callback,\r\n preSelectedMenuDate,\r\n customInput,\r\n isOpenDatePicker,\r\n setOpenDatePicker,\r\n availableDates,\r\n lastDateOnCalendar,\r\n disabled,\r\n minDate,\r\n filterDate,\r\n isRemoveFocusOnEscape,\r\n}) => {\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n menuAvailable: formatMessage({ id: 'MenuAvailable' }),\r\n noMenuTooltip: formatMessage({ id: 'NoMenuTooltip' }),\r\n menuUnavailable: formatMessage({ id: 'MenuUnavailable' }),\r\n datePickerDescription: formatMessage({ id: 'DatePickerDescription' }),\r\n };\r\n\r\n const selectedDate = preSelectedMenuDate ? new Date(preSelectedMenuDate) : null;\r\n\r\n type TRenderDate = {\r\n renderDay: number;\r\n renderDate: Date | undefined;\r\n };\r\n\r\n const handlerTooltipText = useCallback(\r\n (renderDate: TRenderDate['renderDate']): string => {\r\n if (!renderDate) {\r\n return messages.menuUnavailable;\r\n }\r\n const isAvailableDate = availableDates?.some((date) => {\r\n return isSameDay(renderDate, new Date(date));\r\n });\r\n\r\n if (isAvailableDate) return messages.menuAvailable;\r\n\r\n const isBeforeMinDateOrAfterLastDate = isBeforeOrAfterDay(\r\n renderDate,\r\n new Date(minDate),\r\n new Date(lastDateOnCalendar),\r\n );\r\n\r\n if (isBeforeMinDateOrAfterLastDate) return messages.menuUnavailable;\r\n\r\n return messages.noMenuTooltip;\r\n },\r\n [\r\n availableDates,\r\n lastDateOnCalendar,\r\n messages.menuAvailable,\r\n messages.menuUnavailable,\r\n messages.noMenuTooltip,\r\n minDate,\r\n ],\r\n );\r\n\r\n const renderDayContents = useCallback(\r\n (renderDay: TRenderDate['renderDay'], renderDate: TRenderDate['renderDate']): ReactNode => {\r\n const tooltipText = handlerTooltipText(renderDate);\r\n\r\n return (\r\n \r\n {renderDay}\r\n \r\n );\r\n },\r\n [handlerTooltipText],\r\n );\r\n\r\n const datePickerRef = useRef(null);\r\n const focusInput = (): void => {\r\n // Return focus to input (button) after closing datepicker\r\n setTimeout(() => (datePickerRef.current?.input as HTMLButtonElement)?.focus(), 100);\r\n };\r\n\r\n const handlerOnChange = useCallback(\r\n (date: Date | null): void => {\r\n if (date) callback(date, focusInput);\r\n },\r\n [callback],\r\n );\r\n\r\n const handlerOnKeyDown = (event: React.KeyboardEvent): void => {\r\n if (event.key === 'Escape' && isOpenDatePicker) {\r\n event.stopPropagation();\r\n setOpenDatePicker(false);\r\n\r\n // You need to use setTimeout, without it the focus disappears\r\n if (!isRemoveFocusOnEscape) setTimeout(focusInput);\r\n }\r\n };\r\n\r\n const clickOutsideOpenPiker = (event: React.MouseEvent): void => {\r\n if (isOpenDatePicker) {\r\n event.stopPropagation();\r\n setOpenDatePicker(false);\r\n }\r\n };\r\n\r\n const handlerOnFocus = (event: React.FocusEvent): void => {\r\n if (isRemoveFocusOnEscape) {\r\n event.stopPropagation();\r\n setOpenDatePicker(!isOpenDatePicker);\r\n }\r\n };\r\n const CustomCalendarContainer = useCallback(\r\n (props: PropsWithChildren<{ className: string | undefined }>) => {\r\n return (\r\n
\r\n \r\n
{props.children}
\r\n
\r\n
\r\n );\r\n },\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [],\r\n );\r\n\r\n return (\r\n (\r\n
\r\n {!prevMonthButtonDisabled && (\r\n \r\n \r\n {'<'}\r\n \r\n \r\n )}\r\n

\r\n {monthDate.toLocaleString('en-US', {\r\n month: 'long',\r\n year: 'numeric',\r\n })}\r\n

\r\n {!nextMonthButtonDisabled && (\r\n \r\n \r\n {'>'}\r\n \r\n \r\n )}\r\n
\r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default memo(DatePicker);\r\n","import {\r\n addDays,\r\n compareAsc,\r\n eachDayOfInterval,\r\n format,\r\n isAfter,\r\n isSameDay,\r\n startOfDay,\r\n} from 'date-fns';\r\nimport { useCallback, useMemo, useState } from 'react';\r\n\r\nimport { FORMAT_DATE_TIME } from '@/shared/constants';\r\n\r\ntype TDatePickerHookProps = {\r\n availableDates?: string[];\r\n numberDaysAfter?: number;\r\n onlyShowCurrentDaysOnlineOrdering?: boolean;\r\n onlyAllowFutureDaysOnlineOrdering?: boolean;\r\n};\r\n\r\ntype TDatePickerHookResponse = {\r\n isOpenDatePicker: boolean;\r\n setOpenDatePicker: React.Dispatch>;\r\n availableDates: string[];\r\n lastDateOnCalendar: string;\r\n disabled: boolean;\r\n minDate: string;\r\n filterDate: (date: Date) => boolean;\r\n};\r\nconst DEFAULT_NUMBER_DAYS_AFTER = 30;\r\n\r\nexport const useDatePicker = ({\r\n availableDates,\r\n numberDaysAfter = DEFAULT_NUMBER_DAYS_AFTER,\r\n onlyShowCurrentDaysOnlineOrdering = false,\r\n onlyAllowFutureDaysOnlineOrdering = false,\r\n}: TDatePickerHookProps): TDatePickerHookResponse => {\r\n const [isOpenDatePicker, setOpenDatePicker] = useState(false);\r\n const { YYYYMMDDTHHmmss } = FORMAT_DATE_TIME;\r\n const today = startOfDay(new Date());\r\n const lastDateOnCalendar = useMemo(\r\n () => format(addDays(today, numberDaysAfter || DEFAULT_NUMBER_DAYS_AFTER), YYYYMMDDTHHmmss),\r\n [YYYYMMDDTHHmmss, numberDaysAfter, today],\r\n );\r\n\r\n const newAvailableDates = useMemo(() => {\r\n /**\r\n * ModalProduct has no calendar data in the cart,\r\n * so for it we create a list of dates from today plus 30 days (or numberDaysAfter)\r\n * */\r\n if (!availableDates?.length)\r\n return eachDayOfInterval({\r\n start: today,\r\n end: new Date(lastDateOnCalendar),\r\n }).map((date) => format(date, YYYYMMDDTHHmmss));\r\n\r\n const sortDates = [...availableDates].sort((a, b) => compareAsc(new Date(a), new Date(b)));\r\n if (!onlyAllowFutureDaysOnlineOrdering) return sortDates;\r\n\r\n return sortDates.filter((date) => isAfter(new Date(date), today));\r\n }, [\r\n YYYYMMDDTHHmmss,\r\n availableDates,\r\n lastDateOnCalendar,\r\n onlyAllowFutureDaysOnlineOrdering,\r\n today,\r\n ]);\r\n\r\n const minDate = useMemo(() => {\r\n if (newAvailableDates.length > 0) return newAvailableDates[0];\r\n return format(today, YYYYMMDDTHHmmss);\r\n }, [YYYYMMDDTHHmmss, newAvailableDates, today]);\r\n\r\n const filterDate = useCallback(\r\n (renderDate: Date) => {\r\n return newAvailableDates?.some((date) => isSameDay(renderDate, new Date(date)));\r\n },\r\n [newAvailableDates],\r\n );\r\n\r\n return {\r\n isOpenDatePicker,\r\n setOpenDatePicker,\r\n availableDates: newAvailableDates,\r\n lastDateOnCalendar,\r\n disabled: onlyShowCurrentDaysOnlineOrdering,\r\n minDate,\r\n filterDate,\r\n };\r\n};\r\n","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { parseDate } from '@/shared/utils/parseDate';\r\n\r\nimport { DateMealSelectorFilterButton, DatePickerButton, DateTextSpan, Svg } from '../parts';\r\n\r\ninterface IProps {\r\n isOpen: boolean;\r\n setOpen: (value: boolean) => void;\r\n disabled?: boolean;\r\n customInputRef: React.ForwardedRef;\r\n value?: string;\r\n}\r\nconst DPickerButton: React.FC = ({ isOpen, setOpen, disabled, customInputRef, value }) => {\r\n const { formatMessage } = useIntl();\r\n const messages = {\r\n datePickerAriaLabel: formatMessage({ id: 'DatePickerAriaLabel' }),\r\n };\r\n\r\n const handlerClick = (): void => {\r\n setOpen(!isOpen);\r\n };\r\n\r\n const date = parseDate(value!);\r\n return (\r\n \r\n {date}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DPickerButton;\r\n","import React, { PropsWithChildren } from 'react';\r\n\r\ntype ErrorHandler = (error: Error, info: React.ErrorInfo) => void;\r\ntype ErrorHandlingComponent = (\r\n props: PropsWithChildren,\r\n error?: Error,\r\n) => React.ReactNode;\r\n\r\ntype ErrorState = { error?: Error };\r\n\r\nexport default function ErrorBoundary(\r\n component: ErrorHandlingComponent,\r\n errorHandler?: ErrorHandler,\r\n): React.ComponentType {\r\n return class WrapperErrorBoundary extends React.Component {\r\n constructor(props: Props | Readonly) {\r\n super(props);\r\n this.state = {\r\n error: undefined,\r\n };\r\n }\r\n\r\n static getDerivedStateFromError(error: Error): { error: Error } {\r\n return { error };\r\n }\r\n\r\n componentDidCatch(error: Error, info: React.ErrorInfo): void {\r\n if (errorHandler) {\r\n errorHandler(error, info);\r\n }\r\n }\r\n\r\n render(): React.ReactNode {\r\n return component(this.props, this.state.error);\r\n }\r\n };\r\n}\r\n","import styled from 'styled-components';\r\n\r\nexport const ErrorText = styled.div<{ isInfo?: boolean }>`\r\n color: ${({ theme, isInfo }) => (isInfo ? theme.defaultPrimaryColor : '#a94442')};\r\n font-size: 14px;\r\n height: max-content;\r\n`;\r\n\r\nexport const Svg = styled.svg<{ isInfo?: boolean }>`\r\n height: 1.25em;\r\n position: relative;\r\n top: 3px;\r\n width: 1.25em;\r\n fill: ${({ theme, isInfo }) => (isInfo ? theme.defaultPrimaryColor : '#FF0000')};\r\n`;\r\n","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { hasSvg } from '@/shared/utils/hasSvg';\r\n\r\nimport { ErrorText, Svg } from './parts';\r\nimport type { TErrorMessageProps } from './types';\r\n\r\nconst ErrorMessage: React.FC = ({ error, children, isInfo, id }) => {\r\n const { formatMessage } = useIntl();\r\n if (!(children || error)) return null;\r\n\r\n const errorSvg = (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const infoSvg = (\r\n \r\n \r\n \r\n );\r\n\r\n const icon = isInfo ? infoSvg : errorSvg;\r\n\r\n if (children) {\r\n const hasOwnSvg = hasSvg(children);\r\n\r\n return (\r\n \r\n {!hasOwnSvg && icon}{' '}\r\n {typeof children === 'string' ? (\r\n \r\n ) : (\r\n {children}\r\n )}\r\n \r\n );\r\n }\r\n\r\n const message = error?.message;\r\n const errorMessage =\r\n typeof message === 'string'\r\n ? message.length > 0 && formatMessage({ id: message })\r\n : message?.idIntl && formatMessage({ id: message.idIntl }, message?.values);\r\n\r\n return (\r\n \r\n {icon}{' '}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ErrorMessage;\r\n","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nvar SvgPriceTag = function SvgPriceTag(_ref, ref) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n id: \"price-tag\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20,2H14a1,1,0,0,0-.7.29L3,12.55a2,2,0,0,0,0,2.83L8.62,21a2,2,0,0,0,1.41.59h0A2,2,0,0,0,11.45,21L21.71,10.7A1,1,0,0,0,22,10V4A2,2,0,0,0,20,2ZM16.5,9A1.5,1.5,0,1,1,18,7.5,1.5,1.5,0,0,1,16.5,9Z\"\n })));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgPriceTag);\nexport default ForwardRef;","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport PriceTagSvg from './price-tag.svg';\r\n\r\nconst FreeGiftTag: React.FC = () => {\r\n const { formatMessage } = useIntl();\r\n\r\n const message = formatMessage({\r\n id: 'GlobalComponents.FreeGiftTag.Text',\r\n });\r\n\r\n return (\r\n \r\n \r\n {message}\r\n \r\n );\r\n};\r\n\r\nexport default FreeGiftTag;\r\n","import styled, { css } from 'styled-components';\r\n\r\ntype TImgComponent = {\r\n width?: string;\r\n height?: string;\r\n margin?: string;\r\n mobMargin?: string;\r\n borderRadius?: string;\r\n maxHeight?: string;\r\n maxWidth?: string;\r\n};\r\nexport const ImgComponent = styled.img`\r\n ${({\r\n width = 'auto',\r\n height = 'auto',\r\n margin = 'auto',\r\n mobMargin = '0',\r\n borderRadius = '',\r\n maxHeight,\r\n maxWidth,\r\n }: TImgComponent) => css`\r\n display: block;\r\n width: ${width};\r\n height: ${height};\r\n margin: ${margin};\r\n max-height: ${maxHeight};\r\n max-width: ${maxWidth};\r\n border-radius: ${borderRadius};\r\n\r\n @media (max-width: 767px) {\r\n margin: ${mobMargin};\r\n }\r\n `}\r\n`;\r\n\r\nexport const ItemImg = styled.div`\r\n max-width: 120px;\r\n height: inherit;\r\n\r\n img {\r\n max-width: 120px;\r\n height: inherit;\r\n }\r\n`;\r\n\r\nexport const ItemAllergens = styled.div`\r\n margin: 0;\r\n padding: 0;\r\n height: max-content;\r\n display: flex;\r\n gap: 4px;\r\n`;\r\n\r\nexport const ItemAllergen = styled.div`\r\n &:last-child {\r\n margin: 0px;\r\n }\r\n`;\r\n","import React from 'react';\r\n\r\nimport { ImgComponent } from './parts';\r\n\r\ninterface IProps {\r\n width?: string;\r\n height?: string;\r\n alt?: string;\r\n margin?: string;\r\n mobMargin?: string;\r\n src: string;\r\n cbOnError?: (e: React.SyntheticEvent) => void;\r\n className?: string;\r\n hidden?: boolean;\r\n borderRadius?: string;\r\n maxHeight?: string;\r\n maxWidth?: string;\r\n 'data-testid'?: string;\r\n}\r\n\r\nconst Img: React.FC = ({\r\n width,\r\n height,\r\n alt = '',\r\n margin,\r\n mobMargin,\r\n src,\r\n cbOnError,\r\n className,\r\n hidden,\r\n borderRadius,\r\n maxHeight,\r\n maxWidth,\r\n 'data-testid': dataTestId = 'img-component',\r\n}) => {\r\n const handlerOnError = (e: React.SyntheticEvent): void => {\r\n if (cbOnError) cbOnError(e);\r\n };\r\n if (hidden || !src) return null;\r\n return (\r\n \r\n );\r\n};\r\nexport default Img;\r\n","import React, { useState } from 'react';\r\n\r\nimport Img from './Img';\r\nimport { ItemImg } from './parts';\r\n\r\ninterface IProps {\r\n src: Nullable;\r\n alt: Nullable;\r\n isShow?: boolean;\r\n 'data-testid'?: string;\r\n}\r\nconst ProductImg: React.FC = ({\r\n src,\r\n alt,\r\n isShow = true,\r\n 'data-testid': dataTestId = 'product-img',\r\n}) => {\r\n const [isImgError, setImgError] = useState(false);\r\n\r\n if (!isShow || !src?.length || isImgError) return null;\r\n return (\r\n \r\n setImgError(true)}\r\n data-testid={dataTestId}\r\n />\r\n \r\n );\r\n};\r\nexport default ProductImg;\r\n","import React from 'react';\r\n\r\nimport Img from './Img';\r\nimport { ItemAllergen, ItemAllergens } from './parts';\r\n\r\ninterface IProps {\r\n dietaryInformation: Nullable<\r\n {\r\n Name: string;\r\n IsEnabled: boolean;\r\n IconUrl: string;\r\n }[]\r\n >;\r\n 'data-testid'?: string;\r\n}\r\nconst ProductAllergens: React.FC = ({\r\n dietaryInformation,\r\n 'data-testid': dataTestId = 'product-allergens',\r\n}) => {\r\n if (!dietaryInformation?.length) return null;\r\n\r\n const allergenList = dietaryInformation.reduce((acc, item) => {\r\n if (item.IsEnabled && item.IconUrl) {\r\n acc.push(\r\n \r\n {item.Name}\r\n ,\r\n );\r\n }\r\n return acc;\r\n }, []);\r\n\r\n if (!allergenList.length) return null;\r\n return (\r\n \r\n {allergenList}\r\n \r\n );\r\n};\r\n\r\nexport default ProductAllergens;\r\n","export const TIME_LIST = 'time-list';\r\ntype TDefaultRule = {\r\n required: {\r\n value: boolean;\r\n message: {\r\n idIntl: string;\r\n values: {\r\n 0: string;\r\n };\r\n };\r\n };\r\n};\r\nconst defaultRules = (label: string, idIntl = 'Required'): TDefaultRule => ({\r\n required: {\r\n value: true,\r\n message: {\r\n idIntl,\r\n values: {\r\n 0: label,\r\n },\r\n },\r\n },\r\n});\r\nexport const ORDER_AHEAD_RULES = {\r\n LOCATION: (label: string, idIntl?: string) => {\r\n return defaultRules(label, idIntl);\r\n },\r\n DELIVERY_LOCATION: (label: string, idIntl?: string) => {\r\n return defaultRules(label, idIntl);\r\n },\r\n DATE: (label: string, idIntl?: string) => {\r\n return defaultRules(label, idIntl);\r\n },\r\n MEAL: (label: string, idIntl?: string) => {\r\n return defaultRules(label, idIntl);\r\n },\r\n TIME: (label: string, idIntl?: string) => {\r\n return defaultRules(label, idIntl);\r\n },\r\n};\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport type { IDefaultTheme } from '@/shared/themes/types';\r\n\r\nexport const DescriptionStyle = styled.div`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n width: 98%;\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #000;\r\n\r\n span {\r\n color: ${theme.defaultPrimaryColor};\r\n }\r\n `}\r\n`;\r\n\r\nexport const BlockStyle = styled.div`\r\n margin: ${({ mt = '8px', mb = '8px' }: { mt?: string; mb?: string }) => `${mt} 0 ${mb} 0`};\r\n position: relative;\r\n`;\r\nexport const BlockButtonStyle = styled.div`\r\n display: flex;\r\n width: 100%;\r\n flex-direction: row;\r\n justify-content: flex-end;\r\n -ms-flex-pack: end;\r\n -webkit-box-pack: end;\r\n`;\r\nexport const TextAreaStyle = styled.textarea`\r\n width: 100%;\r\n height: 102px;\r\n margin: 8px 0 0;\r\n box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.13);\r\n border: solid 1px #000;\r\n background-color: #fff;\r\n`;\r\n\r\nexport const LocationOne = styled.p`\r\n font-size: 18px;\r\n color: #000;\r\n`;\r\n\r\nconst size = {\r\n mobileS: '320px',\r\n mobileM: '375px',\r\n mobileL: '425px',\r\n tablet: '767px',\r\n};\r\n\r\nexport const WarningDiv = styled.div`\r\n height: 32px;\r\n padding: 4px 8px;\r\n border-radius: 3px;\r\n background-color: ${({ theme }) => theme.defaultPrimaryColor};\r\n width: fit-content;\r\n color: white;\r\n margin-bottom: 20px;\r\n\r\n @media (max-width: ${size.tablet}) {\r\n height: auto;\r\n display: flex;\r\n }\r\n`;\r\n\r\nexport const WarningContainer = styled.div`\r\n display: inline-block;\r\n position: relative;\r\n top: -3px;\r\n`;\r\n\r\nexport const Input = styled.input`\r\n height: 0;\r\n width: 0;\r\n position: absolute;\r\n left: -9999px;\r\n`;\r\nexport const SubHeader = styled.div`\r\n font-size: 14px;\r\n font-weight: bold;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: 1.71;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const TitleTimes = styled.legend`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n width: 98%;\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #000;\r\n\r\n span:not(.legend) {\r\n color: ${theme.defaultPrimaryColor};\r\n }\r\n `}\r\n`;\r\n","import format from 'date-fns/format';\r\nimport React, { ForwardRefRenderFunction, PropsWithChildren, forwardRef, useCallback } from 'react';\r\nimport { Controller, useFormContext } from 'react-hook-form';\r\nimport { useIntl } from 'react-intl';\r\nimport { GroupBase, InputProps, components } from 'react-select';\r\n\r\nimport type { IApiResponseGetMenuCalendar } from '@/shared/api/menu/types';\r\nimport { DatePicker, DatePickerButton, useDatePicker } from '@/shared/components/DatePicker';\r\nimport { ErrorMessage } from '@/shared/components/ErrorMessage';\r\nimport type { TError } from '@/shared/components/ErrorMessage/types';\r\nimport { Required } from '@/shared/components/Required';\r\nimport { Select } from '@/shared/components/Select';\r\nimport type { ICustomOption } from '@/shared/components/Select/types';\r\nimport { FORMAT_DATE_TIME } from '@/shared/constants';\r\n\r\nimport { ORDER_AHEAD_RULES } from '../constants';\r\nimport { BlockStyle, DescriptionStyle, WarningContainer, WarningDiv } from '../parts';\r\nimport type { TOrderAheadValuesForm } from '../types';\r\n\r\ninterface IProps {\r\n mealOptions: {\r\n value: string;\r\n label: string;\r\n key: number;\r\n }[];\r\n reqGetPickUPTimes: (props: {\r\n date?: string;\r\n customIndex?: number;\r\n mealId?: number;\r\n callback?: VoidFunction;\r\n }) => void;\r\n\r\n msgForSlotExpired?: string;\r\n OnlyShowCurrentDaysOnlineOrdering: boolean;\r\n OnlyAllowFutureDaysOnlineOrdering: boolean;\r\n isSlotExpired?: boolean;\r\n getMenuCalendar: Nullable;\r\n isDisabled: boolean;\r\n}\r\nconst BodyContentForModal: React.FC> = ({\r\n children,\r\n mealOptions,\r\n reqGetPickUPTimes,\r\n OnlyShowCurrentDaysOnlineOrdering,\r\n OnlyAllowFutureDaysOnlineOrdering,\r\n isSlotExpired,\r\n msgForSlotExpired,\r\n getMenuCalendar,\r\n isDisabled,\r\n}) => {\r\n const { control, setFocus, setValue } = useFormContext();\r\n\r\n const datePickerProps = useDatePicker({\r\n availableDates: getMenuCalendar?.AvailableDatesFoodOrder,\r\n numberDaysAfter: getMenuCalendar?.NumberDaysAfter,\r\n onlyShowCurrentDaysOnlineOrdering: OnlyShowCurrentDaysOnlineOrdering,\r\n onlyAllowFutureDaysOnlineOrdering: OnlyAllowFutureDaysOnlineOrdering,\r\n });\r\n\r\n const { MMDDYYYY } = FORMAT_DATE_TIME;\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n Date: formatMessage({ id: 'Date' }),\r\n Meal: formatMessage({ id: 'Meal' }),\r\n TimeNoLongerAvailable: formatMessage({ id: 'TimeNoLongerAvailable' }),\r\n required: formatMessage({ id: 'RequiredFields' }),\r\n };\r\n\r\n const handlerDatePicker = useCallback((getDate: Date, callback: VoidFunction) => {\r\n const date = format(getDate, MMDDYYYY);\r\n const cb = (): void => {\r\n setValue('date', date);\r\n callback?.();\r\n };\r\n\r\n reqGetPickUPTimes({ date, callback: cb });\r\n datePickerProps.setOpenDatePicker(false);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const dateRules = ORDER_AHEAD_RULES.DATE(messages.Date);\r\n const mealRules = ORDER_AHEAD_RULES.MEAL(messages.Meal);\r\n\r\n const Button = useCallback<\r\n ForwardRefRenderFunction\r\n >(\r\n ({ disabled, value }, ref) => {\r\n return (\r\n \r\n );\r\n },\r\n [datePickerProps.isOpenDatePicker, datePickerProps.setOpenDatePicker],\r\n );\r\n\r\n const CustomInput = forwardRef(Button);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n {isSlotExpired && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n (\r\n }\r\n {...datePickerProps}\r\n />\r\n )}\r\n onChange={(_: unknown, e: Event) => e.preventDefault()}\r\n />\r\n \r\n \r\n \r\n {\r\n const Input: React.FC>> = (\r\n props,\r\n ) => {\r\n return (\r\n \r\n );\r\n };\r\n const valueSelected =\r\n mealOptions.find((meal) => Number(meal.key) === Number(value)) || null;\r\n return (\r\n <>\r\n {\r\n reqGetPickUPTimes({\r\n mealId: newValue?.key,\r\n callback: () => {\r\n onChange(newValue?.key);\r\n setFocus('meal');\r\n },\r\n });\r\n }}\r\n aria-label={messages.Meal}\r\n isDisabled={isDisabled}\r\n name={name}\r\n ref={ref}\r\n components={{ Input }}\r\n />\r\n \r\n \r\n );\r\n }}\r\n />\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default BodyContentForModal;\r\n","import React, { CSSProperties, FC } from 'react';\r\nimport { ClipLoader } from 'react-spinners';\r\n\r\nimport { HiddenLoadingElement } from '@/shared/services/modal';\r\n\r\nconst cssOverride: CSSProperties = {\r\n display: 'block',\r\n margin: 'auto',\r\n};\r\nconst Loader: FC = () => {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Loader;\r\n","import { isSameMinute } from 'date-fns';\r\nimport React, { FC } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { ButtonCheckbox } from '@/shared/components/Button';\r\n\r\nimport { TIME_LIST } from '../constants';\r\n\r\nconst Wrapper = styled.div`\r\n display: flex;\r\n margin-top: 8px;\r\n flex-wrap: wrap;\r\n gap: 8px;\r\n`;\r\ninterface IProps {\r\n times: {\r\n value: string;\r\n title: string;\r\n }[];\r\n selectedTime: Nullable;\r\n handlerOnChange: (v: string) => void;\r\n}\r\nconst SelectOne: FC = ({ times, selectedTime, handlerOnChange }) => {\r\n if (!times) return null;\r\n const list = times.map((item) => (\r\n {\r\n handlerOnChange(item.value);\r\n }}\r\n key={item.value}\r\n >\r\n {item.title}\r\n \r\n ));\r\n\r\n return {list};\r\n};\r\n\r\nexport default SelectOne;\r\n","import React from 'react';\r\nimport { Controller, useFormContext } from 'react-hook-form';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { ErrorMessage } from '@/shared/components/ErrorMessage';\r\nimport type { TError } from '@/shared/components/ErrorMessage/types';\r\nimport { RequiredField } from '@/shared/components/Required';\r\n\r\nimport { ORDER_AHEAD_RULES } from '../constants';\r\nimport { Input, SubHeader, TitleTimes } from '../parts';\r\nimport type { TOrderAheadValuesForm } from '../types';\r\nimport Loader from './Loader';\r\nimport SelectOne from './SelectOne';\r\n\r\ninterface IProps {\r\n title: string;\r\n times: {\r\n value: string;\r\n title: string;\r\n }[];\r\n textNoTimes: string;\r\n isSlotExpired?: boolean;\r\n loading: boolean;\r\n}\r\nexport const Times: React.FC = ({\r\n title,\r\n times,\r\n textNoTimes,\r\n isSlotExpired = false,\r\n loading,\r\n}) => {\r\n const { control } = useFormContext();\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n SelectNewTime: formatMessage({ id: 'SelectNewTime' }),\r\n };\r\n\r\n const rules = ORDER_AHEAD_RULES.TIME(title);\r\n\r\n return (\r\n {\r\n return (\r\n
\r\n \r\n \r\n {' '}\r\n \r\n \r\n {isSlotExpired && (\r\n \r\n )}\r\n {loading && }\r\n {!loading &&\r\n (times?.length > 0 ? (\r\n \r\n ) : (\r\n \r\n ))}\r\n \r\n
\r\n );\r\n }}\r\n />\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Controller, useFormContext } from 'react-hook-form';\r\nimport { useIntl } from 'react-intl';\r\nimport styled from 'styled-components';\r\n\r\nimport { ErrorMessage } from '@/shared/components/ErrorMessage';\r\nimport type { TError } from '@/shared/components/ErrorMessage/types';\r\nimport { RequiredField } from '@/shared/components/Required';\r\n\r\nimport { ORDER_AHEAD_RULES } from '../constants';\r\nimport { BlockStyle, DescriptionStyle, TextAreaStyle } from '../parts';\r\nimport type { TOrderAheadValuesForm } from '../types';\r\nimport { Times } from './Times';\r\n\r\nconst Wrapper = styled.div`\r\n display: block;\r\n`;\r\ninterface IProps {\r\n times: {\r\n value: string;\r\n title: string;\r\n }[];\r\n isSlotExpired?: boolean;\r\n loading: boolean;\r\n}\r\nexport const DeliveryPart: React.FC = ({ times, isSlotExpired = false, loading }) => {\r\n const { control } = useFormContext();\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n deliveryLocation: formatMessage({ id: 'DeliveryLocation' }),\r\n deliveryPlaceholder: formatMessage({\r\n id: 'GlobalComponents.Modal.OrderAhead.Delivery.Location.InputPlaceholder',\r\n }),\r\n deliveryTime: formatMessage({ id: 'DeliveryTime' }),\r\n NoDeliveryTimeAvailable: formatMessage({ id: 'NoDeliveryTimeAvailable' }),\r\n };\r\n\r\n const rules = ORDER_AHEAD_RULES.DELIVERY_LOCATION(messages.deliveryLocation);\r\n\r\n return (\r\n <>\r\n \r\n \r\n {' '}\r\n \r\n \r\n \r\n (\r\n <>\r\n onChange(target.value)}\r\n aria-describedby={`${name}-error`}\r\n aria-required\r\n name={name}\r\n ref={ref}\r\n />\r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { Controller, useFormContext } from 'react-hook-form';\r\nimport { useIntl } from 'react-intl';\r\nimport { GroupBase, InputProps, components } from 'react-select';\r\nimport styled from 'styled-components';\r\n\r\nimport { ErrorMessage } from '@/shared/components/ErrorMessage';\r\nimport type { TError } from '@/shared/components/ErrorMessage/types';\r\nimport { RequiredField } from '@/shared/components/Required';\r\nimport { Select } from '@/shared/components/Select';\r\nimport type { ICustomOption } from '@/shared/components/Select/types';\r\n\r\nimport { ORDER_AHEAD_RULES } from '../constants';\r\nimport { BlockStyle, DescriptionStyle, LocationOne } from '../parts';\r\nimport type { TOrderAheadValuesForm } from '../types';\r\nimport { Times } from './Times';\r\n\r\nconst Wrapper = styled.div`\r\n display: block;\r\n`;\r\n\r\nconst Input: React.FC>> = (props) => {\r\n return ;\r\n};\r\n\r\ninterface IProps {\r\n locations: {\r\n label: string;\r\n value: string;\r\n }[];\r\n locationOne: string;\r\n times: {\r\n value: string;\r\n title: string;\r\n }[];\r\n isSlotExpired?: boolean;\r\n loading: boolean;\r\n}\r\nexport const PickUpPart: React.FC = ({\r\n locations,\r\n locationOne,\r\n times,\r\n isSlotExpired = false,\r\n loading,\r\n}) => {\r\n const { control, setFocus } = useFormContext();\r\n const { formatMessage } = useIntl();\r\n const messages = {\r\n pickUpLocation: formatMessage({ id: 'PickUpLocation' }),\r\n pickUpTime: formatMessage({ id: 'PickUpTime' }),\r\n NoPickupTimeAvailable: formatMessage({ id: 'NoPickupTimeAvailable' }),\r\n };\r\n\r\n const rules = ORDER_AHEAD_RULES.LOCATION(messages.pickUpLocation);\r\n\r\n return (\r\n <>\r\n {!locations.length || (\r\n \r\n \r\n {' '}\r\n \r\n \r\n \r\n {locationOne ? (\r\n {locationOne}\r\n ) : (\r\n setFocus('location')}\r\n render={({ field: { onChange, value, name, ref }, fieldState: { error } }) => {\r\n const valueSelected =\r\n locations.find((location) => location.value === value) || null;\r\n\r\n return (\r\n <>\r\n onChange(option?.value)}\r\n aria-label={messages.pickUpLocation}\r\n aria-required\r\n name={name}\r\n ref={ref}\r\n components={{ Input }}\r\n callback={() => setFocus('location')}\r\n />\r\n \r\n \r\n );\r\n }}\r\n />\r\n )}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n );\r\n};\r\n","import { format, isSameMinute } from 'date-fns';\r\nimport React, { useCallback, useEffect, useMemo, useState, useTransition } from 'react';\r\nimport { FormProvider, SubmitErrorHandler, useForm } from 'react-hook-form';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { IApiResponseGetPickUPTimes } from '@/shared/api/menu/types';\r\nimport { ButtonSecond } from '@/shared/components/Button';\r\nimport { Tabs } from '@/shared/components/Tabs';\r\nimport type { ITabsProps } from '@/shared/components/Tabs/types';\r\nimport { FORMAT_DATE_TIME, FULFILLMENT_METHODS } from '@/shared/constants';\r\nimport { ModalOne } from '@/shared/services/modal';\r\nimport type { TPortalModalComponent } from '@/shared/services/modal/type';\r\n\r\nimport BodyContentForModal from './blocks/BodyContentForModal';\r\nimport { DeliveryPart } from './blocks/DeliveryPart';\r\nimport { PickUpPart } from './blocks/PickUpPart';\r\nimport { TIME_LIST } from './constants';\r\nimport { BlockButtonStyle } from './parts';\r\nimport type { IProps, TOrderAheadValuesForm } from './types';\r\n\r\nconst ModalOrderAhead: TPortalModalComponent = ({\r\n setActiveTab,\r\n tabIndexParent,\r\n close,\r\n OnlyShowCurrentDaysOnlineOrdering,\r\n OnlyAllowFutureDaysOnlineOrdering,\r\n isPickUpTab,\r\n isDeliveryTab,\r\n defaultPickUPTimes,\r\n fulfillment,\r\n orderMenuDate,\r\n setOrderMenuDate,\r\n setChoosenMeal,\r\n mode,\r\n setFulfillment,\r\n isSlotExpired = false,\r\n msgForSlotExpired,\r\n nameButton,\r\n basketName,\r\n locationId,\r\n storeIds,\r\n pickupTimeIncrement,\r\n menuCalendar,\r\n selectedTabIndex,\r\n preselectedLocation,\r\n preselectedTime,\r\n handlePickUpTimes,\r\n handleFetchMenu,\r\n isMealSelectDisabled = false,\r\n}) => {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const [_, startTransition] = useTransition();\r\n const [isLoadingTime, setLoadingTime] = useState(false);\r\n const [pickUPTimes, setPickUPTimes] = useState(defaultPickUPTimes);\r\n\r\n const mealOptions =\r\n (!!pickUPTimes?.MenuPeriods &&\r\n pickUPTimes?.MenuPeriods.map((period) => {\r\n return { value: period.PeriodName, label: period.PeriodName, key: period.PeriodId };\r\n })) ||\r\n [];\r\n\r\n const { MMMDDYYYY, AMPM } = FORMAT_DATE_TIME;\r\n\r\n const { PICK_UP, DELIVERY } = FULFILLMENT_METHODS;\r\n const defaultMeal = pickUPTimes?.MealPeriodId\r\n ? mealOptions.find((meal) => Number(meal.key) === Number(pickUPTimes?.MealPeriodId))?.key\r\n : mealOptions[0]?.key || null;\r\n const defaultLocation = preselectedLocation || fulfillment.PickUpLocation;\r\n\r\n const methods = useForm({\r\n mode: 'onTouched',\r\n shouldUnregister: true,\r\n defaultValues: {\r\n location: defaultLocation,\r\n deliveryLocation: fulfillment.DeliveryLocation,\r\n meal: defaultMeal,\r\n date: orderMenuDate,\r\n time:\r\n preselectedTime ||\r\n (fulfillment.SelectedFulfillmentMethod === PICK_UP.name\r\n ? fulfillment.PickUpFulfillment?.PickupDateTime\r\n : fulfillment.DeliveryFulfillment?.DeliveryDateTime),\r\n },\r\n });\r\n\r\n const { handleSubmit, setValue, getValues, clearErrors } = methods;\r\n\r\n const [tabIndex, setTabIndex] = useState(selectedTabIndex);\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n StartOrder: formatMessage({ id: 'StartOrder' }),\r\n OrderAhead: formatMessage({ id: 'OrderAhead' }),\r\n ContinueOrder: formatMessage({ id: 'ContinueOrder' }),\r\n pickUpTab: formatMessage({ id: 'OrderAheadPickUpTab' }),\r\n deliveryTab: formatMessage({ id: 'OrderAheadDeliveryTab' }),\r\n };\r\n\r\n useEffect(() => {\r\n setValue('meal', defaultMeal || null);\r\n if (!pickUPTimes?.TimeSlots || pickUPTimes?.TimeSlots.length === 0) setValue('time', null);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [pickUPTimes?.MealPeriodId]);\r\n\r\n const buttonNameInMenus = isSlotExpired ? messages.ContinueOrder : messages.StartOrder;\r\n const buttonName = nameButton && nameButton !== null ? nameButton : buttonNameInMenus;\r\n\r\n const showPickUpTab = typeof isPickUpTab === 'boolean' ? isPickUpTab : true;\r\n\r\n const showDeliveryTab = typeof isDeliveryTab === 'boolean' ? isDeliveryTab : true;\r\n\r\n const locationOptions =\r\n (!!pickUPTimes?.ListPickUpLocations &&\r\n pickUPTimes?.ListPickUpLocations.map((location, i) => {\r\n if (i === 0) return { value: location.Text, label: location.Text, isFixed: true };\r\n return { value: location.Text, label: location.Text };\r\n })) ||\r\n [];\r\n const locationOne =\r\n pickUPTimes?.ListPickUpLocations?.length === 1 ? pickUPTimes?.ListPickUpLocations[0].Text : '';\r\n\r\n useEffect(() => {\r\n if (locationOne) setValue('location', locationOne);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const times = useMemo(() => {\r\n if (!pickUPTimes?.TimeSlots) return [];\r\n\r\n return pickUPTimes?.TimeSlots.map((time) => ({\r\n title: format(new Date(time), AMPM),\r\n value: time,\r\n }));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [pickUPTimes?.TimeSlots]);\r\n\r\n useEffect(() => {\r\n const timeValue = getValues('time');\r\n const clearValueTime = (): void => setValue('time', null);\r\n if (isSlotExpired || times.length < 1) clearValueTime();\r\n\r\n const isSame = times.some((t) => isSameMinute(new Date(t.value), new Date(timeValue || '')));\r\n\r\n if (!isSame) clearValueTime();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [isSlotExpired, times]);\r\n\r\n const reqGetPickUPTimes = useCallback(\r\n ({\r\n date,\r\n customIndex = tabIndex,\r\n mealId,\r\n callback,\r\n }: {\r\n date?: string;\r\n customIndex?: number;\r\n mealId?: number;\r\n callback?: VoidFunction;\r\n }) => {\r\n const [orderDate, orderMeal] = getValues(['date', 'meal']);\r\n\r\n const handleCallback = (data: IApiResponseGetPickUPTimes['Result']): void => {\r\n clearErrors();\r\n setPickUPTimes(data);\r\n if (callback) callback();\r\n };\r\n\r\n const preparedData = {\r\n // Для всех\r\n locationId,\r\n date: date || orderDate,\r\n periodId: mealId || orderMeal,\r\n callback: handleCallback,\r\n // TODO: добавить в АПИ\r\n handleTurnOffLoading: () => {\r\n startTransition(() => setLoadingTime(false));\r\n },\r\n\r\n // Для Меню\r\n mode,\r\n fulfillmentMethod: customIndex,\r\n // Для Корзины\r\n storeIds,\r\n pickupTimeIncrement,\r\n basketName,\r\n };\r\n\r\n startTransition(() => setLoadingTime(true));\r\n handlePickUpTimes(preparedData);\r\n },\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [tabIndex, isDeliveryTab, isPickUpTab],\r\n );\r\n const closeModal = useCallback(\r\n (key?: number) => {\r\n close();\r\n if (typeof tabIndexParent === 'number' && setActiveTab) {\r\n if (key && typeof key === 'number') setActiveTab(key);\r\n else setActiveTab(tabIndexParent);\r\n }\r\n },\r\n [close, setActiveTab, tabIndexParent],\r\n );\r\n\r\n const setFulfillmentInformation = (): void => {\r\n const [location, deliveryLocation, meal, date, time] = getValues([\r\n 'location',\r\n 'deliveryLocation',\r\n 'meal',\r\n 'date',\r\n 'time',\r\n ]);\r\n if (tabIndex === PICK_UP.const) {\r\n // TODO: поправить метод при передаче как пропс\r\n setFulfillment({\r\n ...fulfillment,\r\n SelectedFulfillmentMethod: PICK_UP.name,\r\n PickUpFulfillment: {\r\n ...fulfillment.PickUpFulfillment,\r\n PickUpDate: time ? format(new Date(time), MMMDDYYYY) : '',\r\n PickUpTime: time ? format(new Date(time), AMPM) : '',\r\n PickupDateTime: time || '',\r\n },\r\n PickUpLocation: location,\r\n PeriodId: meal,\r\n SelectedDate: date,\r\n });\r\n } else {\r\n setFulfillment({\r\n ...fulfillment,\r\n SelectedFulfillmentMethod: DELIVERY.name,\r\n DeliveryFulfillment: {\r\n ...fulfillment.DeliveryFulfillment,\r\n DeliveryDate: time ? format(new Date(time), MMMDDYYYY) : '',\r\n DeliveryTime: time ? format(new Date(time), AMPM) : '',\r\n DeliveryDateTime: time || '',\r\n DeliveryLocation: deliveryLocation,\r\n },\r\n DeliveryLocation: deliveryLocation,\r\n PeriodId: meal,\r\n SelectedDate: date,\r\n });\r\n }\r\n\r\n const menuPeriod = pickUPTimes?.MenuPeriods?.find(\r\n (period) => Number(period.PeriodId) === Number(meal),\r\n );\r\n // TODO: поправить метод при передаче как пропс\r\n setChoosenMeal?.(\r\n menuPeriod ? { name: menuPeriod?.PeriodName, id: menuPeriod?.PeriodId } : null,\r\n );\r\n };\r\n\r\n const handlerStartOrder = (data: TOrderAheadValuesForm): void => {\r\n const { date } = data;\r\n const callback = (): void => {\r\n setFulfillmentInformation();\r\n const formatDate = date && new Date(date).toDateString();\r\n // TODO: поправить метод при передаче как пропс\r\n setOrderMenuDate(formatDate);\r\n closeModal(1);\r\n };\r\n\r\n const pickupLocation = tabIndex ? data.deliveryLocation : data.location;\r\n const preparedData = {\r\n mode,\r\n customPeriodId: data.meal,\r\n customDate: date,\r\n time: data.time,\r\n updatedDateTime: data.time,\r\n fulfillmentMode: tabIndex,\r\n fulfillmentMethod: tabIndex,\r\n pickupLocation,\r\n // TODO: переименновать в API\r\n basket: basketName,\r\n callback,\r\n };\r\n handleFetchMenu(preparedData);\r\n };\r\n\r\n const handlerErrorForm: SubmitErrorHandler = (errors) => {\r\n console.log('Errors: ', errors);\r\n\r\n const isFieldsFilledIn = Object.keys(errors).length === 1 && errors?.time;\r\n\r\n if (isFieldsFilledIn) {\r\n const timeList = document.getElementById(TIME_LIST);\r\n if (timeList) {\r\n const firstInput = timeList.children[0] as HTMLElement;\r\n if (firstInput) firstInput.focus();\r\n }\r\n }\r\n };\r\n const handlerOnSelectTab = useCallback(\r\n (index) => {\r\n setTabIndex(index);\r\n reqGetPickUPTimes({ customIndex: index });\r\n },\r\n [reqGetPickUPTimes],\r\n );\r\n\r\n const tabsOptions: ITabsProps = {\r\n selectedIndex: tabIndex,\r\n onSelect: handlerOnSelectTab,\r\n isNoContent: false,\r\n listTabs: [\r\n {\r\n id: PICK_UP.name,\r\n name: (\r\n \r\n ),\r\n ariaLabel: messages.pickUpTab,\r\n visible: showPickUpTab,\r\n panel: (\r\n \r\n \r\n \r\n ),\r\n disabled: tabIndex === PICK_UP.const,\r\n },\r\n {\r\n id: DELIVERY.name,\r\n name: (\r\n \r\n ),\r\n ariaLabel: messages.deliveryTab,\r\n visible: showDeliveryTab,\r\n panel: (\r\n \r\n \r\n \r\n ),\r\n disabled: tabIndex === DELIVERY.const,\r\n },\r\n ],\r\n };\r\n\r\n return (\r\n \r\n \r\n }\r\n handlerClose={closeModal}\r\n footer={\r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ModalOrderAhead;\r\n","import React, { useMemo } from 'react';\r\n\r\nimport { useCurrencyFormmater } from '@/shared/hooks/currencyFormmater';\r\n\r\nexport interface IModifierProps {\r\n modifiers: {\r\n Id: string;\r\n Price: number;\r\n Name: string;\r\n Data: string | '';\r\n }[];\r\n}\r\n\r\nconst Modifiers: React.FC = ({ modifiers }) => {\r\n const format = useCurrencyFormmater();\r\n\r\n const blockText: string = useMemo(() => {\r\n const groups = new Map();\r\n modifiers.forEach((modifier) => {\r\n let group = '';\r\n let name = '';\r\n\r\n if (!!modifier.Data && modifier.Data !== '') {\r\n group = modifier.Name;\r\n name = modifier.Data;\r\n } else {\r\n [group, name] = modifier.Name.split(' (').map((substr) => substr.split(')')[0]);\r\n if (!name) {\r\n name = group;\r\n group = 'Misc';\r\n }\r\n }\r\n const newItem = {\r\n ...modifier,\r\n Name: name,\r\n };\r\n if (groups.has(group)) {\r\n groups.set(group, [...(groups.get(group) as IModifierProps['modifiers']), newItem]);\r\n } else {\r\n groups.set(group, [newItem]);\r\n }\r\n });\r\n\r\n const groupsArray = Array.from(groups);\r\n return groupsArray\r\n .map(([group, mods]) => {\r\n return `${group}: ${mods\r\n .map((m) => m.Name + (m.Price ? ` (${format(m.Price)})` : ''))\r\n .join(', ')}`;\r\n })\r\n .join('. ');\r\n }, [modifiers, format]);\r\n\r\n return
{blockText}
;\r\n};\r\nexport default Modifiers;\r\n","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nvar SvgOrderAgain = function SvgOrderAgain(_ref, ref) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.31796,0L28.570003,13.172097 14.41392,12.338107 17.413936,8.1820688C13.447912,6.9120402 8.9538686,8.1760263 6.3478668,11.700102 3.0778596,16.120117 4.0088646,22.379139 8.430886,25.647169 12.857912,28.922218 19.112951,27.987213 22.384941,23.564144 23.592956,21.928146 24.220981,20.041168 24.314975,18.15114L24.314975,18.152117 28.701994,18.416157C28.557003,21.131144 27.650993,23.833189 25.914991,26.183184 21.198961,32.549259 12.188902,33.902237 5.8148739,29.186197 -0.55115808,24.4762 -1.8981809,15.462093 2.8088455,9.0920496 6.8638604,3.6159945 14.093911,1.8650044 20.090954,4.4720192z\",\n transform: \"scale(0.65,0.65)\",\n fill: \"white\"\n })));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgOrderAgain);\nexport default ForwardRef;","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport OrderAgainSVG from '../icons/orderAgain.svg';\r\nimport { ItemDetails, OrderAgainText, ReorderButton } from '../parts';\r\n\r\ninterface IProps {\r\n handlerClick: VoidFunction;\r\n 'data-testid'?: string;\r\n}\r\n\r\nexport const OrderAgainButton: React.FC = ({\r\n handlerClick,\r\n 'data-testid': dataTestId = 'order-again-button',\r\n}) => {\r\n const { formatMessage } = useIntl();\r\n return (\r\n \r\n \r\n \r\n {formatMessage({ id: 'Global.ProductCard.OrderAgain' })}\r\n \r\n \r\n );\r\n};\r\n","import React, { memo } from 'react';\r\nimport { useIntl } from 'react-intl';\r\nimport { toQuery, useMediaQuery } from 'react-responsive';\r\n\r\nimport { ButtonAddToFavorites } from '@/shared/components/Button';\r\nimport { ProductAllergens, ProductImg } from '@/shared/components/Img';\r\nimport { isPropsEqual } from '@/shared/utils/props-comparison';\r\nimport { hasValue } from '@/shared/utils/validation';\r\n\r\nimport { OrderAgainButton } from './blocks/OrderAgainButton';\r\nimport {\r\n FooterItem,\r\n HeaderItemBtn,\r\n HeaderItemName,\r\n HeaderItemNameLink,\r\n ItemCalories,\r\n ItemContent,\r\n ItemDetails,\r\n ItemInfo,\r\n ItemPrice,\r\n LowerPart,\r\n ProductCardComponent,\r\n UpperPart,\r\n} from './parts';\r\nimport type { TProductCard } from './types';\r\n\r\nconst ProductCard: React.FC = ({\r\n product: { MenuProductId, ProductId, IsTopPurchased, IsDeemphasized, Product },\r\n model,\r\n context: {\r\n isProductInTotalMeal,\r\n isFavorite,\r\n handleOpenFoodProductDetails,\r\n handleAddToFavorites,\r\n renderButtonMealCalculator,\r\n margin,\r\n },\r\n}) => {\r\n const isMobile = useMediaQuery({\r\n query: toQuery({\r\n maxWidth: 767,\r\n }),\r\n });\r\n\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n viewProductDetailsTitle: formatMessage({ id: 'ViewProductDetailsTitle' }),\r\n calories: formatMessage({ id: 'Calories' }),\r\n };\r\n\r\n const isProductCalories = !model.HideProductsCalorie && hasValue(Product?.Calories);\r\n\r\n const isOpenNutritionalInformation =\r\n !model.HideProductsNutritional &&\r\n !Product?.IsBulkProduct &&\r\n Product?.HasNutritionalInformation &&\r\n isProductCalories;\r\n\r\n const isOpenModalProductDetails = model.IsFoodOrder || isOpenNutritionalInformation;\r\n\r\n const isButtonMealCalculatorForCard =\r\n !!renderButtonMealCalculator && model.ShowAddToCalculatorButton && isProductCalories;\r\n\r\n const isProductPrice =\r\n hasValue(Product?.CurrentPriceCulture) && !!Product?.CurrentPrice && Product.CurrentPrice > 0;\r\n\r\n const isProductPriceForCard = (model.DisplayPriceOnTheMenu || !model.IsDaily) && isProductPrice;\r\n\r\n const isProductInfo = isButtonMealCalculatorForCard || isProductCalories || isProductPriceForCard;\r\n\r\n const isProductDietaryInformation = Product?.DietaryInformation?.some(\r\n (d) => d.IsEnabled && d.IconUrl,\r\n );\r\n\r\n const isProductFooter = !model.HideEatWellIconsFromMenu && isProductDietaryInformation;\r\n\r\n const productName = Product?.MarketingName || Product?.DisplayName;\r\n\r\n const buttonAddToFavorites = model.UserFavoritiesEnabled ? (\r\n \r\n ) : null;\r\n\r\n const description = !model.HideProductsShortDescription\r\n ? Product.Description || Product.ShortDescription\r\n : null;\r\n const isColumnForDescription =\r\n !isMobile &&\r\n !!description &&\r\n !IsDeemphasized &&\r\n (model.DisplayPriceOnTheMenu || !model.HideProductsCalorie);\r\n\r\n const isShowOrderAgainButton = IsTopPurchased && model.IsFoodOrder;\r\n\r\n const isPadding =\r\n IsDeemphasized ||\r\n !(isProductInfo || description || isProductDietaryInformation || buttonAddToFavorites);\r\n\r\n const OrderAgainButtonElement = isShowOrderAgainButton ? (\r\n \r\n ) : null;\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n {isOpenModalProductDetails ? (\r\n \r\n {productName}\r\n \r\n ) : (\r\n productName\r\n )}\r\n \r\n \r\n {(isProductInfo || isColumnForDescription) && (\r\n \r\n {isButtonMealCalculatorForCard && renderButtonMealCalculator}\r\n {isProductCalories && (\r\n \r\n )}\r\n {isProductPriceForCard && (\r\n \r\n {Product.CurrentPriceCulture}\r\n \r\n )}\r\n \r\n )}\r\n {!IsDeemphasized && description && (\r\n \r\n {description}\r\n \r\n )}\r\n \r\n \r\n {!IsDeemphasized ? (\r\n <>\r\n {(isProductFooter || buttonAddToFavorites) && (\r\n \r\n {isProductDietaryInformation && (\r\n \r\n {(!IsTopPurchased || !model.IsFoodOrder) && (\r\n \r\n )}\r\n \r\n )}\r\n {OrderAgainButtonElement}\r\n {buttonAddToFavorites}\r\n \r\n )}\r\n {!isProductFooter && !buttonAddToFavorites && (\r\n \r\n {OrderAgainButtonElement}\r\n \r\n )}\r\n \r\n ) : (\r\n \r\n {OrderAgainButtonElement}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default memo(ProductCard, isPropsEqual);\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport { ButtonText } from '@/shared/components/Button';\r\nimport type { IDefaultTheme } from '@/shared/themes/types';\r\n\r\ntype TProductCardStyle = {\r\n theme: IDefaultTheme;\r\n isPadding?: boolean;\r\n activeBorder?: boolean;\r\n margin?: string;\r\n};\r\nexport const ProductCardComponent = styled.li`\r\n ${({ theme, isPadding, activeBorder, margin }: TProductCardStyle) => css`\r\n background-color: #f7f7f7;\r\n height: inherit;\r\n overflow: hidden;\r\n padding: ${isPadding ? '0' : '0 0 8px 0'};\r\n border-radius: 4px;\r\n border: ${activeBorder ? `2px solid ${theme.defaultPrimaryColor}` : '1px solid #ccc'};\r\n position: relative;\r\n display: flex;\r\n flex: 0 1 ${theme.cardWidth}px;\r\n max-width: ${theme.cardWidth}px;\r\n flex-direction: column;\r\n box-sizing: border-box;\r\n justify-content: space-between;\r\n margin: ${margin || ''};\r\n z-index: 0;\r\n\r\n ${theme.media.desktop} {\r\n flex: 0 1 ${theme.cardWidthFromMdToLg}px;\r\n }\r\n\r\n ${theme.media.largeDesktop} {\r\n flex: 0 1 ${theme.cardWidth}px;\r\n }\r\n `}\r\n`;\r\n\r\nexport const UpperPart = styled.div`\r\n width: inherit;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\nexport const LowerPart = styled.div`\r\n width: inherit;\r\n`;\r\n\r\nexport const HeaderItemBtn = styled(ButtonText)`\r\n width: 100%;\r\n padding: 0;\r\n border-radius: 4px 4px 0 0;\r\n box-shadow: 0 1px 4px 0 rgb(51 51 51 / 10%);\r\n background-color: #ffffff;\r\n display: inline-flex;\r\n height: ${({ isHigh }: { isHigh: boolean }) => (isHigh ? '75px' : '54px')};\r\n\r\n :disabled {\r\n background-color: #ffffff;\r\n }\r\n`;\r\n\r\nexport const HeaderItemName = styled.h3`\r\n ${({ theme, padding }: { theme: IDefaultTheme; padding?: string }) => css`\r\n display: -webkit-box;\r\n -webkit-box-orient: vertical;\r\n -webkit-line-clamp: 2;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n\r\n font-weight: ${theme.fontWeight.normal};\r\n letter-spacing: normal;\r\n color: #000000;\r\n text-align: left;\r\n font-size: 16px;\r\n padding: ${padding || 0};\r\n margin: auto 8px;\r\n line-height: normal;\r\n `}\r\n`;\r\n\r\nexport const HeaderItemNameLink = styled.span`\r\n ${({ theme, toPrint }: { theme: IDefaultTheme; toPrint?: string }) => css`\r\n padding: 0;\r\n display: inline-flex;\r\n height: auto;\r\n max-height: 40px;\r\n color: ${theme.defaultPrimaryColor};\r\n margin: 0;\r\n overflow: hidden;\r\n font-size: ${toPrint ? '8px' : 'unset'};\r\n font-weight: normal;\r\n `}\r\n`;\r\n\r\nexport const ItemCalories = styled.span`\r\n font-size: 14px;\r\n font-weight: bold;\r\n line-height: 1.71;\r\n margin: 0;\r\n background: #efefef;\r\n padding: 1px 8px 0 8px;\r\n position: relative;\r\n border-radius: 4px;\r\n white-space: pre;\r\n height: 24px;\r\n`;\r\nexport const ItemPrice = styled.span`\r\n height: 24px;\r\n padding: 0 8px;\r\n border-radius: 4px;\r\n background: #efefef;\r\n font-size: 14px;\r\n font-weight: bold;\r\n margin-left: auto;\r\n`;\r\n\r\nexport const ItemDetails = styled.div`\r\n float: left;\r\n padding-top: 0;\r\n margin: 0 0 0 8px;\r\n`;\r\n\r\nexport const ItemContent = styled.p`\r\n display: -webkit-box;\r\n text-decoration: none;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n height: 2.5em;\r\n flex: 1;\r\n margin: 16px 8px 0 8px;\r\n font-size: 14px;\r\n line-height: 1.3;\r\n letter-spacing: normal;\r\n color: #000000;\r\n -webkit-line-clamp: 2;\r\n -webkit-box-orient: vertical;\r\n`;\r\n\r\nexport const FooterItem = styled.div`\r\n width: 100%;\r\n margin: 16px 0 0 0;\r\n min-height: 40px;\r\n`;\r\n\r\nexport const ItemInfo = styled.div`\r\n ${({\r\n isDescription,\r\n IsDeemphasized,\r\n }: {\r\n isDescription: boolean;\r\n IsDeemphasized?: boolean;\r\n }) => css`\r\n min-height: ${isDescription ? '40px' : ''};\r\n font-size: 16px;\r\n color: #000000;\r\n width: 100%;\r\n padding: ${IsDeemphasized ? '16px 8px 8px 8px' : '16px 8px 0 8px'};\r\n display: flex;\r\n justify-content: start;\r\n `}\r\n`;\r\n\r\nexport const ReorderButton = styled.button`\r\n width: 132px;\r\n height: 32px;\r\n padding: 4px 7px 4px 8px;\r\n border: 0px;\r\n border-radius: 3px;\r\n background-color: ${({ theme }: { theme: IDefaultTheme }) => theme.defaultPrimaryColor};\r\n`;\r\n\r\nexport const OrderAgainText = styled.span`\r\n height: 24px;\r\n font-size: 14px;\r\n font-weight: bold;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: 1.71;\r\n letter-spacing: normal;\r\n display: inline-block;\r\n position: relative;\r\n top: -1px;\r\n float: right;\r\n color: #ffffff;\r\n`;\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport type { IDefaultTheme } from '@/shared/themes/types';\r\n\r\nexport const CounterComponent = styled.div`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n display: flex;\r\n gap: 1px;\r\n width: 120px;\r\n height: 40px;\r\n padding: 0;\r\n border-radius: 2px;\r\n background-color: #fff;\r\n margin: 0;\r\n font-size: 16px;\r\n text-align: center;\r\n color: ${theme.defaultPrimaryColor};\r\n `}\r\n`;\r\n\r\nexport const CounterMinusOrPlus = styled.button`\r\n flex: 1 1 30%;\r\n border: 0 solid;\r\n background-color: transparent;\r\n border-radius: 4px;\r\n padding: 0;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n\r\nexport const CounterContent = styled.input`\r\n background-color: transparent;\r\n width: 30%;\r\n border: 0 solid;\r\n text-align: center;\r\n color: #000;\r\n`;\r\n","import React, { memo, useEffect } from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { PlusOrMinus } from '@/shared/components/Button';\r\nimport { isPropsEqual } from '@/shared/utils/props-comparison';\r\n\r\nimport { CounterComponent, CounterContent, CounterMinusOrPlus } from './parts';\r\n\r\ninterface IProps {\r\n click: (count: number) => void;\r\n minCount: number;\r\n maxCount: number;\r\n selectedProductQuantity: number;\r\n}\r\nconst Counter: React.FC = ({ click, minCount, maxCount, selectedProductQuantity }) => {\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n decreaseAriaLabel: formatMessage({\r\n id: 'GlobalComponents.Counter.Decrease.AriaLabel',\r\n }),\r\n quantityAriaLabel: formatMessage({\r\n id: 'GlobalComponents.Counter.Quantity.AriaLabel',\r\n }),\r\n increaseAriaLabel: formatMessage({\r\n id: 'GlobalComponents.Counter.Increase.AriaLabel',\r\n }),\r\n };\r\n const checkCount = (sum: number): number => {\r\n if (sum < minCount) return minCount;\r\n if (sum > maxCount) return maxCount;\r\n return sum;\r\n };\r\n\r\n const count = checkCount(selectedProductQuantity);\r\n\r\n useEffect(() => {\r\n // If the 'selectedProductQuantity' value initially does not fit the minimum or maximum value\r\n if (count !== selectedProductQuantity) click(checkCount(count));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const handleInputChange = ({ target: { value } }: React.ChangeEvent): void => {\r\n if (Number.isNaN(+value)) return;\r\n\r\n const processedValue = checkCount(+value);\r\n if (processedValue !== count) click(processedValue);\r\n };\r\n\r\n const handleMinus = (): void => {\r\n click(checkCount(count - 1));\r\n };\r\n\r\n const handlePlus = (): void => {\r\n click(checkCount(count + 1));\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default memo(Counter, isPropsEqual);\r\n","import styled, { css } from 'styled-components';\r\n\r\nexport const CalcMsgStyled = styled.span`\r\n ${({ theme }) => css`\r\n font-size: ${theme.fontSizes.normal};\r\n font-weight: ${theme.fontWeight.medium};\r\n `};\r\n`;\r\n\r\nexport const ProductDescriptionDiv = styled.div`\r\n ${({ theme }) => css`\r\n width: 100%;\r\n height: auto;\r\n padding: 16px 32px 0 32px;\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n gap: 8px;\r\n\r\n ${theme.media.phone} {\r\n flex-direction: column;\r\n }\r\n `};\r\n`;\r\n\r\nexport const Input = styled.input`\r\n ${() => css`\r\n width: 100%;\r\n margin: 8px 0 0;\r\n padding: 8px;\r\n box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.13);\r\n border: solid 1px #000;\r\n background-color: #fff;\r\n `}\r\n`;\r\n\r\nexport const InputHidden = styled.input`\r\n ${() => css`\r\n height: 0;\r\n width: 0;\r\n position: absolute;\r\n left: -9000px;\r\n `}\r\n`;\r\nexport const ModalBlock = styled.div`\r\n margin: 0 0 16px 0;\r\n`;\r\nexport const ModalSubTitle = styled.legend`\r\n font-size: 14px;\r\n color: #000;\r\n`;\r\nexport const Wrapper = styled.div`\r\n ${() => css`\r\n display: block;\r\n `}\r\n`;\r\n\r\nexport const ItemInfo = styled.div<{ isDescription?: boolean; IsDeemphasized?: boolean }>`\r\n ${({ isDescription, IsDeemphasized }) => css`\r\n min-height: ${isDescription ? '40px' : ''};\r\n font-size: 16px;\r\n color: #000000;\r\n width: 100%;\r\n padding: ${IsDeemphasized ? '16px 8px 8px 8px' : '16px 8px 0 8px'};\r\n display: flex;\r\n justify-content: start;\r\n `}\r\n`;\r\nexport const ModalTitle = styled.div`\r\n font-size: 18px;\r\n color: #000;\r\n`;\r\n\r\nexport const ModalBody = styled.div`\r\n padding-bottom: 32px;\r\n`;\r\nexport const OrderDate = styled.span`\r\n display: inline-block;\r\n height: 24px;\r\n margin: 0 0 0 8px;\r\n padding: 0 8px;\r\n border-radius: 4px;\r\n background-color: #efefef;\r\n font-size: 14px;\r\n font-weight: bold;\r\n line-height: 1.71;\r\n color: #000;\r\n`;\r\n\r\nexport const ModalProductTextArea = styled.textarea`\r\n width: 100%;\r\n height: 102px;\r\n margin: 8px 0 0;\r\n padding: 8px;\r\n box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.13);\r\n border: solid 1px #000;\r\n background-color: #fff;\r\n`;\r\n\r\nexport const ModalProductDescription = styled.div`\r\n margin-bottom: 1em;\r\n`;\r\n\r\nexport const ModalProductDescriptionContent = styled.h3`\r\n width: 100%;\r\n font-size: 16px;\r\n line-height: 22px;\r\n margin: 0;\r\n font-weight: normal;\r\n color: #000;\r\n`;\r\nexport const ModalProductDescriptionItemDetails = styled.div`\r\n display: flex;\r\n margin-bottom: 16px;\r\n justify-content: space-between;\r\n`;\r\nexport const ModalProductServingSize = styled.div`\r\n margin: 1rem auto;\r\n font-size: 16px;\r\n`;\r\nexport const ModalProductDisclaimer = styled.p`\r\n ${({\r\n margin = '0 0 16px 0',\r\n fontWeight = 'normal',\r\n }: {\r\n margin?: string;\r\n fontWeight?: string;\r\n }) => css`\r\n color: #000;\r\n font-size: 12px;\r\n margin: ${margin};\r\n font-weight: ${fontWeight};\r\n text-transform: uppercase;\r\n `}\r\n`;\r\nexport const ModalHeaderItem = styled.div`\r\n width: 100%;\r\n padding: 0;\r\n border-radius: 4px 4px 0 0;\r\n box-shadow: 0 1px 4px 0 rgb(51 51 51 / 10%);\r\n background-color: #ffffff;\r\n display: inline-flex;\r\n height: 88px;\r\n`;\r\nexport const ModalHeaderItemName = styled.h2`\r\n justify-content: start;\r\n align-items: center;\r\n display: -webkit-box;\r\n font-weight: ${({ theme }) => theme.fontWeight.normal};\r\n letter-spacing: normal;\r\n color: #000000;\r\n text-align: left;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n -webkit-box-orient: vertical;\r\n font-size: 18px;\r\n padding: 0;\r\n margin: auto 40px auto 32px !important;\r\n -webkit-line-clamp: 3;\r\n width: 100%;\r\n line-height: 22px;\r\n`;\r\n\r\nexport const WrapRequired = styled.div`\r\n position: relative;\r\n margin: 0 0 8px 0;\r\n font-size: 14px;\r\n`;\r\nexport const WarningDiv = styled.div`\r\n display: ${({ isShow }: { isShow: boolean }) => (isShow ? 'flex' : 'none')};\r\n gap: 10px;\r\n border-radius: 3px;\r\n background-color: ${({ theme }) => theme.defaultPrimaryColor};\r\n width: fit-content;\r\n padding: 4px 10px;\r\n margin-bottom: 8px;\r\n\r\n & > svg {\r\n position: relative;\r\n top: 1px;\r\n }\r\n`;\r\n\r\nexport const WarningContainer = styled.div`\r\n font-size: 14px;\r\n color: white;\r\n`;\r\nexport const WrapperButtons = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: end;\r\n`;\r\nexport const ModalProductFooter = styled.div`\r\n color: #000;\r\n padding: 24px 32px;\r\n display: flex;\r\n flex-wrap: wrap;\r\n flex-shrink: 0;\r\n align-items: end;\r\n flex-direction: row;\r\n justify-content: flex-end;\r\n -ms-flex-pack: end;\r\n -webkit-box-pack: end;\r\n border-radius: 4px;\r\n background-color: #efefef;\r\n gap: 16px;\r\n\r\n @media (min-width: 768px) {\r\n justify-content: space-between;\r\n }\r\n`;\r\n","import format from 'date-fns/format';\r\nimport React, { forwardRef, useCallback, useState } from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { DatePicker, useDatePicker } from '@/shared/components/DatePicker';\r\nimport { FORMAT_DATE_TIME } from '@/shared/constants';\r\nimport { srSpeak } from '@/shared/utils/srSpeak';\r\n\r\nimport { Input, Wrapper } from '../parts';\r\nimport type { TModifier } from '../types';\r\n\r\ninterface IProps {\r\n modifier: TModifier;\r\n parenthandler: (modifier: TModifier, callback?: VoidFunction) => void;\r\n menuCalendar?: {\r\n AvailableDatesFoodOrder?: string[];\r\n NumberDaysAfter?: number;\r\n };\r\n}\r\n\r\nexport const DateModifier: React.FC = ({ modifier, parenthandler, menuCalendar }) => {\r\n const [selectedDate, setSelectedDate] = useState(modifier?.SelectedVariant || '');\r\n\r\n // TODO: подумать или уточнить о прокидывание данных до этого компонента\r\n const datePickerProps = useDatePicker({\r\n availableDates: menuCalendar?.AvailableDatesFoodOrder,\r\n numberDaysAfter: menuCalendar?.NumberDaysAfter,\r\n });\r\n\r\n const { formatMessage } = useIntl();\r\n\r\n const handler = (date: string, callback: VoidFunction): void => {\r\n const result = { ...modifier, SelectedVariant: date };\r\n parenthandler(result, callback);\r\n };\r\n\r\n const handlerCallback = (date: Date, callback: VoidFunction): void => {\r\n const formattedDate = format(date, FORMAT_DATE_TIME.MMMDDYYYY);\r\n setSelectedDate(formattedDate);\r\n handler(formattedDate, callback);\r\n datePickerProps.setOpenDatePicker(false);\r\n srSpeak(formatMessage({ id: 'GlobalComponents.Modifiers.Date.AriaLive.Changed' }));\r\n };\r\n\r\n const ForwardInput = useCallback(\r\n (props, ref) => {\r\n return ;\r\n },\r\n [selectedDate],\r\n );\r\n\r\n const CustomInput = forwardRef(ForwardInput);\r\n\r\n if (!modifier) return null;\r\n return (\r\n \r\n }\r\n isRemoveFocusOnEscape\r\n {...datePickerProps}\r\n />\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { Button } from '@/shared/components/Button';\r\nimport { DEFAULT_CURRENCY } from '@/shared/constants';\r\nimport { srSpeak } from '@/shared/utils/srSpeak';\r\n\r\nimport { Wrapper } from '../parts';\r\nimport type { TModifier } from '../types';\r\n\r\ninterface IProps {\r\n modifier: TModifier;\r\n parenthandler: (modifier: TModifier, callback?: VoidFunction) => void;\r\n}\r\n\r\nexport const SelectManyModifier: React.FC = ({ modifier, parenthandler }) => {\r\n const { formatNumber, formatMessage } = useIntl();\r\n const messages = {\r\n select: formatMessage({ id: 'GlobalComponents.Modifiers.SelectMany.AriaLive.IsSelect' }),\r\n notSelect: formatMessage({ id: 'GlobalComponents.Modifiers.SelectMany.AriaLive.IsNotSelect' }),\r\n };\r\n const variants = modifier?.Variants;\r\n if (!variants) return null;\r\n const handler = (idVariant: string): void => {\r\n const newVariants = variants.map((variant) =>\r\n variant.VariantId === idVariant ? { ...variant, IsChecked: !variant.IsChecked } : variant,\r\n );\r\n\r\n const result = { ...modifier, Variants: newVariants };\r\n\r\n parenthandler(result);\r\n };\r\n\r\n const list = variants.map((item) => (\r\n {\r\n handler(item.VariantId);\r\n srSpeak(`${item.VariantName} ${!item.IsChecked ? messages.select : messages.notSelect}`);\r\n }}\r\n >\r\n {item.VariantName}{' '}\r\n {!item.HidePrice && (\r\n \r\n ({formatNumber(item.VariantPrice, { style: 'currency', currency: DEFAULT_CURRENCY })})\r\n \r\n )}\r\n \r\n ));\r\n\r\n return {list};\r\n};\r\n","import React, { useEffect } from 'react';\r\nimport { useFormContext } from 'react-hook-form';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { Button } from '@/shared/components/Button';\r\nimport { DEFAULT_CURRENCY } from '@/shared/constants';\r\nimport { srSpeak } from '@/shared/utils/srSpeak';\r\n\r\nimport { InputHidden, Wrapper } from '../parts';\r\nimport type { TModifier } from '../types';\r\n\r\ninterface IProps {\r\n modifier: TModifier;\r\n parenthandler: (modifier: TModifier, callback?: VoidFunction) => void;\r\n}\r\n\r\nexport const SelectOneModifier: React.FC = ({ modifier, parenthandler }) => {\r\n const { register } = useFormContext();\r\n const { formatNumber, formatMessage } = useIntl();\r\n const messages = {\r\n select: formatMessage({ id: 'GlobalComponents.Modifiers.SelectOne.AriaLive.IsSelect' }),\r\n };\r\n const variants = modifier?.Variants;\r\n\r\n const handler = (idVariant: string): void => {\r\n const newVariants =\r\n variants?.map((item) =>\r\n item.VariantId === idVariant ? { ...item, IsChecked: true } : { ...item, IsChecked: false },\r\n ) || null;\r\n\r\n const result = { ...modifier, SelectedVariant: idVariant, Variants: newVariants };\r\n\r\n parenthandler(result);\r\n };\r\n useEffect(() => {\r\n if (modifier.SelectedVariant) {\r\n handler(modifier.SelectedVariant);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n if (!variants) return null;\r\n\r\n const input = !modifier.SelectedVariant && (\r\n \r\n );\r\n const list = variants.map((item) => {\r\n let checked = item.IsChecked;\r\n if (item.VariantId === modifier.SelectedVariant) checked = true;\r\n return (\r\n {\r\n handler(item.VariantId);\r\n srSpeak(`${item.VariantName} ${!checked ? messages.select : ''}`);\r\n }}\r\n >\r\n {item.VariantName}{' '}\r\n {!item.HidePrice && (\r\n \r\n ({formatNumber(item.VariantPrice, { style: 'currency', currency: DEFAULT_CURRENCY })})\r\n \r\n )}\r\n \r\n );\r\n });\r\n\r\n return (\r\n \r\n {input}\r\n
{list}
\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { useFormContext } from 'react-hook-form';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { srSpeak } from '@/shared/utils/srSpeak';\r\n\r\nimport { Input, Wrapper } from '../parts';\r\nimport type { TModifier } from '../types';\r\n\r\ninterface IProps {\r\n modifier: TModifier;\r\n parenthandler: (modifier: TModifier, callback?: VoidFunction) => void;\r\n}\r\n\r\nexport const TextModifier: React.FC = ({ modifier, parenthandler }) => {\r\n const { register } = useFormContext();\r\n\r\n const { formatMessage } = useIntl();\r\n const messages = {\r\n enter: formatMessage({ id: 'GlobalComponents.Modifiers.Text.AriaLive.Enter' }),\r\n cleared: formatMessage({ id: 'GlobalComponents.Modifiers.Text.AriaLive.Cleared' }),\r\n };\r\n const onBlur = (e: React.FocusEvent): void => {\r\n const result = { ...modifier, SelectedVariant: e.target.value };\r\n parenthandler(result);\r\n srSpeak(\r\n `${modifier.DisplayName} ${!modifier?.SelectedVariant ? messages.enter : messages.cleared}`,\r\n );\r\n };\r\n if (!modifier) return null;\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { Button } from '@/shared/components/Button';\r\nimport { DEFAULT_CURRENCY } from '@/shared/constants';\r\nimport { srSpeak } from '@/shared/utils/srSpeak';\r\n\r\nimport type { TModifier } from '../types';\r\n\r\ninterface IProps {\r\n modifier: TModifier;\r\n parenthandler: (modifier: TModifier, callback?: VoidFunction) => void;\r\n}\r\n\r\nexport const YesNoModifier: React.FC = ({ modifier, parenthandler }) => {\r\n const { formatMessage, formatNumber } = useIntl();\r\n\r\n const messages = {\r\n yes: formatMessage({ id: 'Yes' }),\r\n no: formatMessage({ id: 'No' }),\r\n selectedNo: formatMessage(\r\n { id: 'GlobalComponents.Modifiers.YesNo.AriaLive.SelectedNo' },\r\n { 0: modifier.DisplayName },\r\n ),\r\n selectedYes: formatMessage(\r\n { id: 'GlobalComponents.Modifiers.YesNo.AriaLive.SelectedYes' },\r\n { 0: modifier.DisplayName },\r\n ),\r\n };\r\n\r\n const handler = (select: Nullable): void => {\r\n const result = { ...modifier, SelectedVariant: select };\r\n srSpeak(`${modifier.DisplayName} ${select ? messages.yes : messages.no}`);\r\n parenthandler(result);\r\n };\r\n\r\n const isYes =\r\n modifier.SelectedVariant &&\r\n (modifier.SelectedVariant === 'yes' || modifier.SelectedVariant === 'on');\r\n\r\n if (!modifier) return null;\r\n return (\r\n <>\r\n {\r\n handler(null);\r\n srSpeak(messages.selectedNo);\r\n }}\r\n >\r\n \r\n \r\n {\r\n handler('yes');\r\n srSpeak(messages.selectedYes);\r\n }}\r\n >\r\n {' '}\r\n {!modifier.HidePrice && (\r\n \r\n {formatNumber(modifier.ModifierPrice, {\r\n style: 'currency',\r\n currency: DEFAULT_CURRENCY,\r\n })}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { useFormContext } from 'react-hook-form';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { ErrorMessage } from '@/shared/components/ErrorMessage';\r\nimport { RequiredField } from '@/shared/components/Required';\r\nimport { MODIFIER_TYPES } from '@/shared/constants';\r\n\r\nimport { ModalBlock, ModalSubTitle } from '../parts';\r\nimport type { TModifier, TProductDataForCart } from '../types';\r\nimport { DateModifier } from './DateModifier';\r\nimport { SelectManyModifier } from './SelectManyModifier';\r\nimport { SelectOneModifier } from './SelectOneModifier';\r\nimport { TextModifier } from './TextModifier';\r\nimport { YesNoModifier } from './YesNoModifier';\r\n\r\ninterface IProps {\r\n modifiers: TModifier[];\r\n setData: React.Dispatch>;\r\n menuCalendar?: {\r\n AvailableDatesFoodOrder?: string[];\r\n NumberDaysAfter?: number;\r\n };\r\n}\r\nexport const Modifiers: React.FC = ({ modifiers, setData, menuCalendar }) => {\r\n const {\r\n formState: { errors },\r\n } = useFormContext();\r\n const { formatMessage } = useIntl();\r\n\r\n const handler = (modifier: TModifier, callback?: VoidFunction): void => {\r\n const newModifiers = modifiers.map((item) => {\r\n return item.ModifierId === modifier.ModifierId ? modifier : item;\r\n });\r\n\r\n setData((item) => {\r\n return {\r\n ...item,\r\n Product: {\r\n ...item.Product,\r\n Modifiers: newModifiers,\r\n },\r\n };\r\n });\r\n callback?.();\r\n };\r\n\r\n const modifierMap = {\r\n [MODIFIER_TYPES.SELECT_MANY.const]: SelectManyModifier,\r\n [MODIFIER_TYPES.SELECT_ONE.const]: SelectOneModifier,\r\n [MODIFIER_TYPES.TEXT.const]: TextModifier,\r\n [MODIFIER_TYPES.DATE.const]: DateModifier,\r\n [MODIFIER_TYPES.YES_NO.const]: YesNoModifier,\r\n };\r\n\r\n return (\r\n <>\r\n {modifiers.map((item) => {\r\n const labelSelectOne = item.DisplayName;\r\n const labelText = `${item.DisplayName} ($${item.ModifierPrice})`;\r\n const label =\r\n item.ModifierType === MODIFIER_TYPES.SELECT_ONE.const ? labelSelectOne : labelText;\r\n const messages = {\r\n required: formatMessage({ id: 'Required' }, { 0: label }),\r\n };\r\n\r\n const ModifierComponent = modifierMap[item.ModifierType] || YesNoModifier;\r\n\r\n const isRequired =\r\n item.ModifierType === MODIFIER_TYPES.SELECT_ONE.const ||\r\n (item.ModifierType === MODIFIER_TYPES.TEXT.const && item.IsTextRequired);\r\n\r\n const isError = !!errors[item?.ModifierId];\r\n return (\r\n \r\n \r\n \r\n {item.DisplayName.toUpperCase()}\r\n {isRequired && }\r\n \r\n \r\n \r\n\r\n {isError && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n","import React, { useState } from 'react';\r\n\r\nimport { ModalProductTextArea } from '../parts';\r\n\r\ninterface IProps {\r\n text?: string;\r\n handler: (value: string) => void;\r\n ariaLabel: string;\r\n placeholder: string;\r\n}\r\nexport const TextArea: React.FC = ({ text, handler, ariaLabel, placeholder }) => {\r\n const [value, setValue] = useState(text || '');\r\n\r\n const onChange = (event: React.ChangeEvent): void => {\r\n setValue(event.target.value);\r\n };\r\n\r\n const onBlur = (): void => {\r\n handler(value);\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { Required } from '@/shared/components/Required';\r\nimport { Underline } from '@/shared/components/Underline';\r\n\r\nimport { ModalTitle, WarningContainer, WarningDiv, WrapRequired } from '../parts';\r\nimport type { TProductDataForCart } from '../types';\r\nimport { Modifiers } from './Modifiers';\r\nimport { TextArea } from './TextArea';\r\n\r\ninterface IProps {\r\n warningMsg?: string;\r\n modifiers?: TProductDataForCart['Product']['Modifiers'];\r\n setDataForCart: React.Dispatch>;\r\n isShowSpecialInstructions: boolean;\r\n recipientInstructions?: string;\r\n menuCalendar?: {\r\n AvailableDatesFoodOrder?: string[];\r\n NumberDaysAfter?: number;\r\n };\r\n}\r\n\r\nexport const Order: React.FC = ({\r\n warningMsg,\r\n modifiers,\r\n setDataForCart,\r\n isShowSpecialInstructions,\r\n recipientInstructions,\r\n menuCalendar,\r\n}) => {\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n specialInstructions: formatMessage({ id: 'SpecialInstructions' }),\r\n placeholderTextArea: formatMessage({ id: 'PlaceholderTextArea' }),\r\n required: formatMessage({ id: 'RequiredFields' }),\r\n };\r\n const handlerRecipientInstructions = (text: string): void => {\r\n setDataForCart((dataForCart) => {\r\n return {\r\n ...dataForCart,\r\n RecipientInstructions: text,\r\n };\r\n });\r\n };\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {modifiers && modifiers?.length > 0 && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n {isShowSpecialInstructions && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n","import { MODIFIER_TYPES } from '@/shared/constants';\r\nimport type { TCategories } from '@/shared/types/menu';\r\n\r\nimport type { TProductDataForCart } from './types';\r\n\r\nexport const sendGaEventProductDetailOpen = (product: {\r\n ProductId: string;\r\n MarketingName: Nullable;\r\n DisplayName: Nullable;\r\n Categories?: Nullable;\r\n CurrentPrice?: Nullable;\r\n}): void => {\r\n if (window?.gaGtag) {\r\n const productData = {\r\n item_id: product.ProductId,\r\n item_name: product.MarketingName || product.DisplayName,\r\n item_category: product.Categories?.[0].CategoryId ?? '',\r\n price: product?.CurrentPrice,\r\n };\r\n window.gaGtag.viewProduct(productData);\r\n }\r\n};\r\n\r\nexport const getAmount = (\r\n productPrice: number,\r\n modifiersList?: TProductDataForCart['Product']['Modifiers'],\r\n count = 1,\r\n): number => {\r\n const sum = [productPrice];\r\n modifiersList?.forEach((modifier) => {\r\n switch (modifier.ModifierType) {\r\n case MODIFIER_TYPES.SELECT_MANY.const:\r\n if (Array.isArray(modifier.Variants)) {\r\n sum.push(\r\n modifier.Variants.reduce((values, item) => {\r\n return item.IsChecked ? values + item.VariantPrice : values;\r\n }, 0),\r\n );\r\n }\r\n break;\r\n case MODIFIER_TYPES.SELECT_ONE.const:\r\n if (Array.isArray(modifier.Variants)) {\r\n sum.push(\r\n modifier.Variants.reduce((values, item) => {\r\n return item.IsChecked || item.VariantId === modifier?.SelectedVariant\r\n ? values + item.VariantPrice\r\n : values;\r\n }, 0),\r\n );\r\n }\r\n break;\r\n case MODIFIER_TYPES.YES_NO.const:\r\n sum.push(modifier.SelectedVariant ? modifier.ModifierPrice : 0);\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n return sum.reduce((a, b) => a + b) * count;\r\n};\r\n","import format from 'date-fns/format';\r\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { FormProvider, useForm } from 'react-hook-form';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { ButtonSecond } from '@/shared/components/Button';\r\nimport { Counter } from '@/shared/components/Counter';\r\nimport { ProductAllergens, ProductImg } from '@/shared/components/Img';\r\nimport { Tabs } from '@/shared/components/Tabs';\r\nimport type { ITabsProps } from '@/shared/components/Tabs/types';\r\nimport {\r\n DEFAULT_CURRENCY,\r\n FORMAT_DATE_TIME,\r\n FULFILLMENT_METHODS,\r\n MODIFIER_TYPES,\r\n} from '@/shared/constants';\r\nimport { ButtonClose, MODAL_ARIA_LABELLEDBY } from '@/shared/services/modal';\r\nimport { ModalDialog } from '@/shared/services/modal/components/parts';\r\nimport type { TPortalModalComponent } from '@/shared/services/modal/type';\r\nimport { PayPalLaterMessage } from '@/shared/services/paypal';\r\n\r\nimport { Order } from './blocks/Order';\r\nimport {\r\n ModalBody,\r\n ModalHeaderItem,\r\n ModalHeaderItemName,\r\n ModalProductDescriptionContent,\r\n ModalProductFooter,\r\n OrderDate,\r\n ProductDescriptionDiv,\r\n WrapperButtons,\r\n} from './parts';\r\nimport type { IProps, TDetailsPropForHandler, TProductDataForCart } from './types';\r\nimport { getAmount, sendGaEventProductDetailOpen } from './utils';\r\n\r\nconst ModalProduct: TPortalModalComponent = ({\r\n product,\r\n nameButton,\r\n fulfillment,\r\n productDetailsWithModifiers,\r\n close,\r\n allowGA = false,\r\n isOrderAllowed = false,\r\n nutritionComponent,\r\n isOpenNutritionalInformation = false,\r\n hideProductsShortDescription = false,\r\n handlerFooter,\r\n handlerClose,\r\n menuCalendar,\r\n}) => {\r\n const { PICK_UP, DELIVERY } = FULFILLMENT_METHODS;\r\n\r\n const [tabIndex, setTabIndex] = useState(isOrderAllowed ? PICK_UP.const : DELIVERY.const);\r\n const [warningMsg, setWarningMsg] = useState(undefined);\r\n const modalHeaderRef = useRef(null);\r\n const setShowWarningMsg = (msg: string | null): void => {\r\n const text = msg?.trim();\r\n setWarningMsg(text);\r\n if (text)\r\n modalHeaderRef.current?.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'start',\r\n inline: 'nearest',\r\n });\r\n };\r\n\r\n const method = fulfillment?.SelectedFulfillmentMethod;\r\n const isPickUp = method === PICK_UP.name;\r\n\r\n const recipientInstructions = isPickUp\r\n ? fulfillment?.PickUpFulfillment.RecipientInstructions\r\n : fulfillment?.DeliveryFulfillment.RecipientInstructions;\r\n\r\n const [dataForCart, setDataForCart] = useState({\r\n Product: {\r\n Id: productDetailsWithModifiers?.Product?.Id,\r\n CatalogId: productDetailsWithModifiers?.Product?.CatalogId,\r\n StoreId: productDetailsWithModifiers?.Product?.StoreId,\r\n ProductType: productDetailsWithModifiers?.Product?.ProductType,\r\n ImageUrl: productDetailsWithModifiers?.Product?.ImageUrl,\r\n Modifiers: productDetailsWithModifiers?.Product?.Modifiers,\r\n },\r\n Configuration: productDetailsWithModifiers?.Configuration,\r\n UserOrderingInfo: productDetailsWithModifiers?.UserOrderingInfo,\r\n RecipientInstructions: recipientInstructions || '',\r\n PickupTimeIncrement: productDetailsWithModifiers?.PickUpFulfillment.PickupTimeIncrement,\r\n StoreId: productDetailsWithModifiers?.StoreId,\r\n DeliveryLeadTimeFrame: productDetailsWithModifiers?.DeliveryLeadTimeFrame,\r\n DeliveryLeadTime: productDetailsWithModifiers?.DeliveryLeadTime,\r\n });\r\n\r\n const minCount = productDetailsWithModifiers?.Product?.MinQuantity || 1;\r\n const maxCount = productDetailsWithModifiers?.Product?.MaxQuantity || 999;\r\n const counter = dataForCart?.UserOrderingInfo?.SelectedProductQuantity || 1;\r\n\r\n const { formatMessage, formatNumber } = useIntl();\r\n\r\n const messages = {\r\n orderTab: formatMessage({ id: 'Modals.ModalProduct.Tabs.Order' }),\r\n nutritionalTab: formatMessage({ id: 'Modals.ModalProduct.Tabs.Nutrition' }),\r\n };\r\n\r\n const formMethods = useForm({\r\n mode: 'onChange',\r\n shouldFocusError: true,\r\n shouldUnregister: true,\r\n shouldUseNativeValidation: true,\r\n });\r\n\r\n const { handleSubmit } = formMethods;\r\n\r\n useEffect(() => {\r\n if (!isOrderAllowed && allowGA && isOpenNutritionalInformation) {\r\n sendGaEventProductDetailOpen(product); // now only Menus\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const handleClickClose = (): void => {\r\n close();\r\n handlerClose?.();\r\n };\r\n\r\n const getStringType = (num: number): string | undefined => {\r\n const listTypes = Object.values(MODIFIER_TYPES);\r\n return listTypes.find((type) => type.const === num)?.name;\r\n };\r\n\r\n const handleClick = (): void => {\r\n const modifiers = dataForCart.Product?.Modifiers?.map((modifier) => {\r\n return { ...modifier, ModifierType: getStringType(modifier.ModifierType) };\r\n });\r\n const updateData = {\r\n ...dataForCart,\r\n Product: {\r\n ...dataForCart.Product,\r\n Modifiers: modifiers,\r\n },\r\n };\r\n if (handlerFooter) {\r\n setShowWarningMsg(null);\r\n handlerFooter(updateData as TDetailsPropForHandler, close, setShowWarningMsg);\r\n }\r\n };\r\n\r\n const handlerSelectedProductQuantity = useCallback(\r\n (count: number) => {\r\n setDataForCart({\r\n ...dataForCart,\r\n UserOrderingInfo: {\r\n ...dataForCart.UserOrderingInfo,\r\n SelectedProductQuantity: count,\r\n },\r\n });\r\n },\r\n [dataForCart],\r\n );\r\n\r\n const orderDate = isPickUp\r\n ? fulfillment?.PickUpFulfillment.PickUpDate\r\n : fulfillment?.DeliveryFulfillment.DeliveryDate;\r\n\r\n const formatOrderDate = orderDate ? format(new Date(orderDate), FORMAT_DATE_TIME.eeeMMDD) : '';\r\n const tabsOptions: ITabsProps = {\r\n selectedIndex: tabIndex,\r\n onSelect: (index) => {\r\n setTabIndex(index);\r\n\r\n if (index === 1 && allowGA && isOpenNutritionalInformation) {\r\n sendGaEventProductDetailOpen(product); // only Menus\r\n }\r\n },\r\n isNoContent: false,\r\n listTabs: [\r\n {\r\n id: 'order',\r\n name: (\r\n
\r\n {' '}\r\n {formatOrderDate}\r\n
\r\n ),\r\n visible: isOrderAllowed,\r\n ariaLabel: `${messages.orderTab} ${formatOrderDate}`,\r\n disabled: !isOpenNutritionalInformation || (isOpenNutritionalInformation && tabIndex === 0),\r\n panel: (\r\n \r\n ),\r\n },\r\n {\r\n // only Menus and Manage Favorite List\r\n id: 'nutrition',\r\n name: (\r\n \r\n ),\r\n ariaLabel: messages.nutritionalTab,\r\n visible: isOpenNutritionalInformation,\r\n disabled: !isOrderAllowed || (isOrderAllowed && tabIndex === 1),\r\n panel: isOpenNutritionalInformation ? nutritionComponent : null,\r\n },\r\n ],\r\n };\r\n\r\n const dietaryInformation =\r\n product.DietaryInformation || productDetailsWithModifiers?.Product.DietaryInformation; // from Cart\r\n\r\n const amount = getAmount(product.CurrentPrice ?? 0, dataForCart.Product.Modifiers, counter);\r\n const ProductDescription = (\r\n \r\n \r\n {/* // only show in Menus */}\r\n {!hideProductsShortDescription ? product.Description || product.ShortDescription : null}\r\n \r\n {dietaryInformation && }\r\n \r\n );\r\n\r\n const isPayPalEnabled =\r\n productDetailsWithModifiers &&\r\n typeof productDetailsWithModifiers?.Product?.PayPalEnabled === 'boolean'\r\n ? productDetailsWithModifiers?.Product.PayPalEnabled\r\n : product?.PayPalEnabled;\r\n return (\r\n \r\n \r\n \r\n \r\n {product?.ImageUrl && (\r\n \r\n )}\r\n \r\n {product?.MarketingName || product?.DisplayName}\r\n \r\n \r\n\r\n \r\n {ProductDescription}\r\n \r\n \r\n\r\n {isOrderAllowed && (\r\n \r\n \r\n\r\n \r\n {isPayPalEnabled && (\r\n \r\n )}\r\n \r\n {' '}\r\n \r\n {formatNumber(amount, {\r\n style: 'currency',\r\n currency: DEFAULT_CURRENCY,\r\n })}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\nexport default ModalProduct;\r\n","import React, { ReactNode } from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { AmountCalories, NutritionalTree } from '@/shared/components/AmountCalories';\r\nimport { Underline } from '@/shared/components/Underline';\r\n\r\nimport {\r\n ItemInfo,\r\n ModalProductDescription,\r\n ModalProductDescriptionItemDetails,\r\n ModalProductDisclaimer,\r\n ModalProductServingSize,\r\n} from '../parts';\r\n\r\ninterface IProps {\r\n productInfo: {\r\n NutritionalTree: NutritionalTree;\r\n ServingSize: Nullable;\r\n ServingUnit: Nullable;\r\n IngredientStatement: Nullable;\r\n AllergenStatement: Nullable;\r\n };\r\n calcComponent?: ReactNode;\r\n disclaimerBold?: string;\r\n}\r\nconst Nutrition: React.FC = ({ productInfo, calcComponent, disclaimerBold }) => {\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n servingSize: formatMessage({ id: 'ServingSize' }),\r\n ingredients: formatMessage({ id: 'Ingredients' }),\r\n disclaimer: formatMessage({ id: 'Disclaimer' }),\r\n disclaimerBold: disclaimerBold || formatMessage({ id: 'DisclaimerBold' }),\r\n };\r\n\r\n const calories = productInfo.NutritionalTree;\r\n return (\r\n <>\r\n \r\n \r\n \r\n {calcComponent}\r\n \r\n \r\n \r\n\r\n \r\n {' '}\r\n {productInfo?.ServingSize} {productInfo?.ServingUnit}\r\n \r\n \r\n {calories?.length > 0 && }\r\n\r\n \r\n ${messages.ingredients}: ${productInfo?.IngredientStatement}\r\n ${productInfo?.AllergenStatement}`,\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default Nutrition;\r\n","import React, { FC, PropsWithChildren } from 'react';\r\nimport { IntlProvider } from 'react-intl';\r\nimport { Provider as ReduxProvider } from 'react-redux';\r\nimport { ThemeProvider } from 'styled-components';\r\n\r\nimport type { IDefaultTheme } from '@/shared/themes/types';\r\n\r\nimport type { AnyAction, Store } from '@reduxjs/toolkit';\r\n\r\ninterface IProps {\r\n resources: Record;\r\n store?: Store;\r\n theme: IDefaultTheme;\r\n}\r\nconst AppProviders: FC> = ({ children, resources, store, theme }) => {\r\n return (\r\n \r\n {store ? (\r\n \r\n {children}\r\n \r\n ) : (\r\n {children}\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AppProviders;\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport type { IDefaultTheme } from '@/shared/themes/types';\r\n\r\nexport const Required = styled.span.attrs(() => ({\r\n 'aria-hidden': 'true',\r\n}))`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n color: ${theme.defaultPrimaryColor};\r\n\r\n &::before {\r\n content: '\\\\2736';\r\n position: initial;\r\n }\r\n `}\r\n`;\r\n\r\nexport const RequiredField = styled(Required).attrs(() => ({\r\n 'aria-hidden': 'true',\r\n}))`\r\n &::before {\r\n position: relative;\r\n bottom: 3px;\r\n }\r\n`;\r\n","import type { TStyleCustomSelect } from './types';\r\n\r\nconst getOptionBackgroundColor = (isFocused: boolean, isSelected: boolean): string | undefined => {\r\n if (isFocused) return '#757575';\r\n if (isSelected) return 'var(--primary-color, #216ba5)';\r\n return undefined;\r\n};\r\nexport const defaultStyles: TStyleCustomSelect = {\r\n control: (styles, { isFocused }) => ({\r\n ...styles,\r\n backgroundColor: '#efefef',\r\n width: '100%',\r\n borderRadius: '22.5px',\r\n borderColor: '#efefef',\r\n '&:focus-visible': { borderColor: '#000000' }, // border style on hover\r\n '&:focus': { outline: '2px solid #000000', boxShadow: '0 0 2px 2px #000000' }, // border style on hover\r\n '&:hover': { borderColor: '#000000' }, // border style on hover\r\n '&:active': { outline: '2px solid #000000', boxShadow: '0 0 2px 2px #000000' },\r\n boxShadow: isFocused ? '0 0 1.6px 1.6px #000000' : '0 0 0 0 #000000',\r\n border: isFocused ? '0 0 2px 2px #000000' : '0 0 0 0 #000000',\r\n }),\r\n menu: (styles) => ({\r\n ...styles,\r\n }),\r\n menuList: (styles) => ({\r\n ...styles,\r\n width: '100%',\r\n }),\r\n indicatorsContainer: (styles) => ({\r\n ...styles,\r\n width: '56px',\r\n backgroundColor: '#fff',\r\n borderTopRightRadius: '22.5px',\r\n borderBottomRightRadius: '22.5px',\r\n padding: '0px 0px 0px 8px',\r\n }),\r\n indicatorSeparator: (styles) => ({\r\n ...styles,\r\n display: 'none',\r\n }),\r\n singleValue: (styles) => ({\r\n ...styles,\r\n fontSize: '14px',\r\n fontWeight: 'bold',\r\n paddingLeft: '8px',\r\n }),\r\n dropdownIndicator: (styles) => ({\r\n ...styles,\r\n color: 'var(--primary-color, #216ba5)',\r\n }),\r\n option: (styles, { isFocused, isSelected }) => {\r\n return {\r\n ...styles,\r\n width: '100%',\r\n borderColor: isSelected ? 'var(--primary-color, #216ba5)' : '#efefef',\r\n backgroundColor: getOptionBackgroundColor(isFocused, isSelected),\r\n color: isSelected || isFocused ? 'white' : 'black',\r\n cursor: 'default',\r\n boxShadow: '0 0 0 0px var(--primary-color, #216ba5)',\r\n border: isFocused ? '2px solid #000000' : '0px solid #000000',\r\n fontFamily: 'Open Sans',\r\n fontSize: '14px',\r\n };\r\n },\r\n};\r\n","import React, { forwardRef, useState } from 'react';\r\nimport { useIntl } from 'react-intl';\r\nimport WrapperSelect, { GroupBase, Props } from 'react-select';\r\n\r\nimport { defaultStyles } from './part';\r\nimport type {\r\n ICustomOption,\r\n TCustomSelectForwardRef,\r\n TCustomSelectProps,\r\n TOnFocusAriaLiveMessagesHandler,\r\n} from './types';\r\n\r\nconst Select = forwardRef(function CustomSelect(\r\n {\r\n styles = defaultStyles,\r\n className = 'select-wrapper-main',\r\n 'aria-label': ariaLabel,\r\n 'aria-required': ariaRequired = false,\r\n maxMenuHeight = 200,\r\n isClearable = false,\r\n blurInputOnSelect = false,\r\n\r\n onChange,\r\n callback,\r\n ...restProps\r\n },\r\n ref,\r\n) {\r\n const [menuIsOpen, setMenuIsOpen] = useState(false);\r\n\r\n const { formatMessage } = useIntl();\r\n\r\n const handlerChange: Props>['onChange'] = (\r\n newValue,\r\n ) => {\r\n onChange(newValue);\r\n setMenuIsOpen(!menuIsOpen);\r\n\r\n // callback fires when component rerenders\r\n if (callback) requestAnimationFrame(callback);\r\n };\r\n\r\n const onFocus: TOnFocusAriaLiveMessagesHandler = (e): string => {\r\n return formatMessage({ id: 'GlobalComponents.Select.Text.AriaLive' }, { 0: e.focused.label });\r\n };\r\n\r\n const onClose = (): void => {\r\n setMenuIsOpen(false);\r\n };\r\n\r\n const onOpen = (): void => {\r\n setMenuIsOpen(true);\r\n };\r\n\r\n const onBlur: React.FocusEventHandler = () => {\r\n setMenuIsOpen(false);\r\n };\r\n\r\n const onKeyDown: React.KeyboardEventHandler = (event) => {\r\n switch (event.key) {\r\n case 'Escape':\r\n if (menuIsOpen) {\r\n event.stopPropagation();\r\n }\r\n break;\r\n case ' ':\r\n event.preventDefault();\r\n break;\r\n case 'Enter':\r\n if (!menuIsOpen) {\r\n setMenuIsOpen(true);\r\n } else {\r\n setMenuIsOpen(false);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n return (\r\n \r\n );\r\n});\r\n\r\nexport default Select;\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport type { IDefaultTheme } from '@/shared/themes/types';\r\n\r\nexport const WrapperStickyNav = styled.ul`\r\n display: flex;\r\n flex-wrap: nowrap;\r\n flex-direction: row;\r\n gap: 0.7rem;\r\n margin: 0;\r\n list-style-type: none;\r\n text-align: left;\r\n padding-left: 0;\r\n overflow: auto hidden;\r\n white-space: nowrap;\r\n height: 45px;\r\n`;\r\n\r\nexport const ItemStickyNav = styled.button`\r\n ${({ theme, active }: { theme: IDefaultTheme; active: boolean }) => css`\r\n display: flex;\r\n gap: 4px;\r\n height: 30px;\r\n background-color: ${active ? theme.defaultPrimaryColor : '#fff'};\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n border-radius: 22.5px;\r\n border: 2px solid transparent;\r\n color: ${active ? '#fff' : theme.defaultPrimaryColor};\r\n cursor: pointer;\r\n\r\n &:hover {\r\n color: #fff;\r\n border-color: var(--primary-color, #3a7aaa);\r\n background-color: ${active ? 'var(--secondary-color, #000000)' : '#fff'};\r\n }\r\n &:focus-visible {\r\n outline: none;\r\n border-color: #000000;\r\n }\r\n\r\n & > .svg {\r\n fill: ${active ? '#fff' : theme.defaultPrimaryColor};\r\n }\r\n `}\r\n`;\r\n\r\nexport const ItemNameStickyNav = styled.span`\r\n font-size: 16px;\r\n font-weight: bold;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: 1.71;\r\n letter-spacing: normal;\r\n color: ${({ isActive }: { isActive: boolean }) =>\r\n isActive ? 'inherit' : 'var(--primary-color, #216ba5)'};\r\n`;\r\n","import React, { PropsWithChildren, ReactElement, useEffect, useRef, useState } from 'react';\r\n\r\nimport { ItemNameStickyNav, ItemStickyNav, WrapperStickyNav } from './parts';\r\n\r\ninterface IProps {\r\n options: {\r\n id: string;\r\n name: string;\r\n active: boolean;\r\n icon?: ReactElement;\r\n }[];\r\n className?: string;\r\n handleClick: (id: string) => void;\r\n handleKeyDown?: (e: React.KeyboardEvent, id: string) => void;\r\n handleScroll?: () => Nullable;\r\n}\r\nconst StickyNavigation: React.FC> = ({\r\n options,\r\n className,\r\n handleClick,\r\n handleKeyDown,\r\n handleScroll,\r\n children,\r\n}) => {\r\n const parentRef = useRef(null);\r\n const [localOptions, setLocalOptions] = useState(options);\r\n const scrollToCenter = (elementId: string): void => {\r\n const parent = parentRef.current;\r\n const buttonElem = document.getElementById(elementId);\r\n\r\n if (parent && buttonElem) {\r\n const parentComputedStyle = window.getComputedStyle(parent, null);\r\n\r\n const parentBorderLeftWidth = parseInt(\r\n parentComputedStyle.getPropertyValue('border-left-width'),\r\n 10,\r\n );\r\n\r\n parent.scrollLeft =\r\n buttonElem.offsetLeft -\r\n parent.offsetLeft -\r\n parent.clientWidth / 2 -\r\n parentBorderLeftWidth +\r\n buttonElem.clientWidth / 2;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setLocalOptions((prevOptions) =>\r\n options.map((newOption) => {\r\n const existingOption = prevOptions.find((prevOption) => prevOption.id === newOption.id);\r\n if (existingOption) {\r\n return {\r\n ...existingOption,\r\n ...newOption,\r\n };\r\n }\r\n return newOption;\r\n }),\r\n );\r\n }, [options]);\r\n\r\n useEffect(() => {\r\n if (handleScroll) {\r\n const handleScrollEvent = (e: Event): void => {\r\n e.preventDefault();\r\n const activeStickyId = handleScroll();\r\n\r\n if (activeStickyId) {\r\n setLocalOptions((opt) =>\r\n opt.map((item) => ({\r\n ...item,\r\n active: item.id === activeStickyId,\r\n })),\r\n );\r\n scrollToCenter(activeStickyId);\r\n }\r\n };\r\n\r\n window.addEventListener('scroll', handleScrollEvent);\r\n return () => {\r\n window.removeEventListener('scroll', handleScrollEvent);\r\n };\r\n }\r\n return () => {};\r\n }, [handleScroll]);\r\n\r\n return (\r\n
\r\n \r\n {children}\r\n {localOptions.map((option) => (\r\n
  • \r\n {\r\n e.preventDefault();\r\n setLocalOptions((opt) =>\r\n opt.map((item) => ({\r\n ...item,\r\n active: item.id === option.id,\r\n })),\r\n );\r\n scrollToCenter(option.id);\r\n handleClick(option.id);\r\n }}\r\n onKeyDown={(e) => handleKeyDown?.(e, option.id)}\r\n aria-label={option.name}\r\n aria-current={option.active}\r\n className=\"sticky-nav-button\"\r\n >\r\n {option.icon}\r\n {option.name}\r\n \r\n
  • \r\n ))}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default StickyNavigation;\r\n","import { Tab, TabList, TabPanel, Tabs } from 'react-tabs';\r\nimport styled from 'styled-components';\r\n\r\nexport const WrapperTabs = styled(Tabs)`\r\n margin-top: 16px;\r\n color: #000;\r\n\r\n .react-tabs__tab--selected {\r\n background-color: #000;\r\n color: #fff;\r\n }\r\n`;\r\nexport const PanelTabs = styled(TabPanel)`\r\n padding: 0 32px;\r\n`;\r\nexport const HeaderTabs = styled(TabList)`\r\n width: 100%;\r\n padding: 0 0 0 32px;\r\n margin: ${({ margin }: { margin?: string }) => margin || ''};\r\n display: inline-flex;\r\n border-bottom: 1px solid #000;\r\n`;\r\nexport const ItemTab = styled(Tab)`\r\n list-style-type: none;\r\n margin: 0px 10px 0px 0px;\r\n border-radius: 4px 4px 0 0;\r\n height: auto;\r\n\r\n font-size: 18px;\r\n font-weight: 600;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: 1.33;\r\n letter-spacing: normal;\r\n padding: 8px 16px;\r\n cursor: pointer;\r\n &:focus {\r\n outline: solid 2px;\r\n outline-offset: -4px;\r\n }\r\n`;\r\n","import React from 'react';\r\n\r\nimport { HeaderTabs, ItemTab, PanelTabs, WrapperTabs } from './parts';\r\nimport type { ITabsProps } from './types';\r\n\r\nconst Tabs: React.FC = ({\r\n selectedIndex,\r\n onSelect,\r\n listTabs,\r\n isNoContent,\r\n className,\r\n marginForHeaderTabs,\r\n id,\r\n}) => {\r\n if (!listTabs.length) return null;\r\n const header = listTabs.map((tab) => {\r\n return (\r\n {\r\n if (tab.disabled) event.stopPropagation();\r\n }}\r\n >\r\n {tab.name}\r\n \r\n );\r\n });\r\n const content = listTabs.map((tab) => (\r\n \r\n {tab.panel}\r\n \r\n ));\r\n\r\n return (\r\n \r\n \r\n {header}\r\n \r\n\r\n {content}\r\n \r\n );\r\n};\r\n\r\nexport default Tabs;\r\n","import styled from 'styled-components';\r\n\r\nexport const Underline = styled.hr`\r\n width: 100%;\r\n height: 1px;\r\n margin: 0 0 16px 0;\r\n background-color: #ccc;\r\n`;\r\n","export const DEFAULT_MODAL_ARIA_LABELLEDBY = 'modalHeading';\r\n\r\n/**\r\n * Date-fns formats\r\n * @link https://github.com/date-fns/date-fns/blob/main/docs/unicodeTokens.md\r\n * @link https://date-fns.org/v2.30.0/docs/format\r\n */\r\nexport enum FORMAT_DATE_TIME {\r\n MMDDYYYY = 'MM/dd/yyyy', // 05/31/2023\r\n MMMDDYYYY = 'MMM dd, yyyy', // May 31, 2023\r\n eeeMMDD = 'eee MM/dd', // 'Wed 05/31'\r\n MMdd = 'MM/dd', // 05/31\r\n YYYYMMDDTHHmmss = \"yyyy-MM-dd'T'HH:mm:ss\", // '2023-05-31T16:16:15'\r\n AMPM = 'h:mm aa', // '4:16 PM',\r\n MMMM = 'MMMM', // February\r\n EEEE = 'EEEE', // Sunday\r\n}\r\n\r\nexport enum MODE {\r\n DAILY = 'Daily',\r\n FOOD_ORDER = 'FoodOrder',\r\n WEEKLY = 'Weekly',\r\n CART = 'Cart',\r\n}\r\n\r\nexport const FULFILLMENT_METHODS = {\r\n PICK_UP: {\r\n name: 'Pickup',\r\n const: 0,\r\n },\r\n DELIVERY: {\r\n name: 'Delivery',\r\n const: 1,\r\n },\r\n};\r\n\r\nexport const Fulfillment = {\r\n PickUpFulfillment: {\r\n PickUpDate: '',\r\n PickUpTime: '',\r\n PickupDateTime: '',\r\n RecipientInstructions: '',\r\n PickupTimeIncrement: null,\r\n NormalizedMinPickupTime: '',\r\n },\r\n DeliveryFulfillment: {\r\n DeliveryDate: '',\r\n DeliveryTime: '',\r\n DeliveryDateTime: '',\r\n DeliveryLocation: '',\r\n RecipientInstructions: '',\r\n },\r\n DeliveryLocation: '',\r\n mealType: '0',\r\n SelectedFulfillmentMethod: FULFILLMENT_METHODS.PICK_UP.name,\r\n PickUpLocation: '',\r\n PeriodId: null,\r\n SelectedDate: '',\r\n};\r\n\r\nexport type FulfillmentType = {\r\n PickUpFulfillment: {\r\n PickUpDate: string;\r\n PickUpTime: string;\r\n PickupDateTime: string;\r\n RecipientInstructions: string;\r\n PickupTimeIncrement: number | null;\r\n NormalizedMinPickupTime: string;\r\n };\r\n DeliveryFulfillment: {\r\n DeliveryDate: string;\r\n DeliveryTime: string;\r\n DeliveryDateTime: string;\r\n DeliveryLocation: string;\r\n RecipientInstructions: string;\r\n };\r\n DeliveryLocation: string;\r\n mealType: string;\r\n SelectedFulfillmentMethod: string;\r\n PickUpLocation: string;\r\n PeriodId: number | null;\r\n SelectedDate: string | null;\r\n};\r\n\r\nexport const PREFIX_URL_API = {\r\n get API() {\r\n return `/api`;\r\n },\r\n get MENU() {\r\n return `${this.API}/menu`;\r\n },\r\n get PRODUCT() {\r\n return `${this.API}/product`;\r\n },\r\n get CHECKOUT() {\r\n return `${this.API}/checkout`;\r\n },\r\n get CART() {\r\n return `${this.API}/cart`;\r\n },\r\n get BASKET() {\r\n return `${this.API}/basket`;\r\n },\r\n get LOYALTY() {\r\n return `${this.API}/loyalty`;\r\n },\r\n get LOCATIONS() {\r\n return `${this.API}/locations`;\r\n },\r\n get MANAGE_USER_FAVORITES() {\r\n return `${this.API}/info`;\r\n },\r\n};\r\n\r\nexport const APP_ELEMENTS = {\r\n MENUS: 'react_menus',\r\n CART: 'react_cart',\r\n CHECKOUT: 'react_checkout',\r\n CONFIRMATION: 'react_complete',\r\n MAIL_SUBSCRIPTION: 'react_mail_subscription',\r\n LOCATIONS: 'react_locations',\r\n MANAGE_USER_FAVORITES: 'react_manage_user_favorites',\r\n PRODUCT_DETAILS: 'react_product_details',\r\n};\r\nexport const MODAL_ELEMENTS = {\r\n ROOT_MODAL: 'modal-root',\r\n MAIL_SUBSCRIPTION_MODAL: 'modal-root-mail-subsription',\r\n LOCATIONS_MODAL: 'modal-root-locations-modal',\r\n};\r\nexport const MODIFIER_TYPES = {\r\n /// Yes or No type modifer.\r\n YES_NO: {\r\n name: 'YesNo',\r\n const: 0,\r\n },\r\n /// Select one option type Modifer.\r\n SELECT_ONE: {\r\n name: 'SelectOne',\r\n const: 1,\r\n },\r\n /// Select many options type modifer.\r\n SELECT_MANY: {\r\n name: 'SelectMany',\r\n const: 2,\r\n },\r\n /// Date Picker modifier.\r\n DATE: {\r\n name: 'Date',\r\n const: 3,\r\n },\r\n /// Text Picker modifier.\r\n TEXT: {\r\n name: 'Text',\r\n const: 4,\r\n },\r\n};\r\n\r\nexport const DEFAULT_CURRENCY = 'USD';\r\n","import { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport { Action, Dispatch } from '@reduxjs/toolkit';\r\n\r\nexport const useAppDispatch = (): T & Dispatch => {\r\n return useDispatch();\r\n};\r\n\r\nexport const useAppSelector = (selector: (state: T) => K): K => {\r\n return useSelector(selector);\r\n};\r\n","import { useIntl } from 'react-intl';\r\n\r\nimport { DEFAULT_CURRENCY } from '@/shared/constants';\r\n\r\ntype TTotal = Nullable;\r\nexport const useCurrencyFormmater = (currency = DEFAULT_CURRENCY): ((total: TTotal) => string) => {\r\n const { formatNumber } = useIntl();\r\n return (total: TTotal): string => {\r\n if (typeof total !== 'number') return '';\r\n return formatNumber(total, { style: 'currency', currency });\r\n };\r\n};\r\n","import { useRef } from 'react';\r\n\r\nexport const useFocus = (): [React.RefObject, VoidFunction] => {\r\n const htmlElRef = useRef(null);\r\n const setFocus = (): void => {\r\n (htmlElRef?.current as HTMLElement)?.focus();\r\n };\r\n\r\n return [htmlElRef, setFocus];\r\n};\r\n","import { fetchMenu } from '@/shared/api/menu';\r\n\r\nimport { createSlice } from '@reduxjs/toolkit';\r\n\r\nconst loadingSlice = createSlice({\r\n name: 'loading',\r\n initialState: {\r\n loading: false,\r\n },\r\n reducers: {\r\n setLoading: (state, action) => {\r\n state.loading = action.payload;\r\n },\r\n },\r\n extraReducers: {\r\n [fetchMenu.fulfilled.type]: (state) => {\r\n state.loading = false;\r\n },\r\n [fetchMenu.pending.type]: (state) => {\r\n state.loading = true;\r\n },\r\n\r\n [fetchMenu.rejected.type]: (state) => {\r\n state.loading = false;\r\n },\r\n },\r\n});\r\n\r\nexport const { setLoading } = loadingSlice.actions;\r\n\r\nexport const getLoading = ({ loading }: MenuRootState): boolean => loading.loading;\r\n\r\nexport default loadingSlice.reducer;\r\n","import ReactModal from 'react-modal';\r\nimport styled from 'styled-components';\r\n\r\nimport type { IDefaultTheme } from '@/shared/themes/types';\r\n\r\nexport const ModalCore = styled(ReactModal)`\r\n outline: none;\r\n max-width: 615px;\r\n height: fit-content;\r\n position: relative;\r\n top: 32px;\r\n margin: auto;\r\n -webkit-overflow-scrolling: touch;\r\n\r\n @media (max-width: 767px) {\r\n max-width: 345px;\r\n }\r\n`;\r\n\r\nexport const ModalTitle = styled.h2`\r\n margin: 32px 32px 32px 22px !important;\r\n width: 100%;\r\n font-size: 18px;\r\n font-weight: normal;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #000;\r\n`;\r\n\r\nexport const ModalHeader = styled.div`\r\n display: flex;\r\n flex-shrink: 0;\r\n align-items: center;\r\n justify-content: space-between;\r\n border-radius: 4px;\r\n box-shadow: 0 1px 4px 0 rgb(51 51 51 / 10%);\r\n background-color: #fff;\r\n font-size: 18px;\r\n color: #000;\r\n padding: 10px;\r\n`;\r\nexport const ModalBody = styled.div`\r\n color: #000;\r\n padding: 0;\r\n border-top: 0px solid #000;\r\n border-bottom: 0px solid #000;\r\n\r\n position: relative;\r\n flex: 1 1 auto;\r\n display: block;\r\n`;\r\nexport const ModalFooter = styled.div`\r\n color: #000;\r\n padding: 24px 32px;\r\n display: flex;\r\n flex-wrap: wrap;\r\n flex-shrink: 0;\r\n align-items: center;\r\n justify-content: space-between;\r\n border-radius: 4px;\r\n background-color: #efefef;\r\n gap: 16px;\r\n`;\r\nexport const ModalDialog = styled.div`\r\n border-radius: 4px;\r\n box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.75);\r\n background-color: #f7f7f7;\r\n flex-direction: column;\r\n pointer-events: auto;\r\n background-clip: padding-box;\r\n outline: 0;\r\n`;\r\nexport const ButtonCloseStyle = styled.button`\r\n box-sizing: content-box;\r\n width: 24px;\r\n height: 24px;\r\n font-size: 14px;\r\n padding: 0;\r\n color: ${({ theme, customColor }: { theme: IDefaultTheme; customColor?: string }) =>\r\n customColor || theme.defaultPrimaryColor};\r\n border: 0;\r\n border-radius: 6px;\r\n background-color: rgba(0, 0, 0, 0.01);\r\n position: absolute;\r\n right: 8px;\r\n top: 8px;\r\n`;\r\n","export const MODAL_ARIA_LABELLEDBY = 'modalHeading';\r\n","import type { TDetails, TPortalModalComponent, TPropsFromOpenMode } from './type';\r\n\r\nconst defaultEventName = 'open';\r\n\r\nconst ModalService = {\r\n on(callback: (details: TDetails) => void, eventName = defaultEventName): VoidFunction {\r\n // any as a hack for addEventListener\r\n const handlerCustomEvent = (e: any): void => {\r\n callback(e.detail);\r\n };\r\n\r\n document.addEventListener(eventName, handlerCustomEvent);\r\n\r\n return () => document.removeEventListener(eventName, handlerCustomEvent);\r\n },\r\n open

    (\r\n component: TPortalModalComponent

    ,\r\n props?: TPropsFromOpenMode

    ,\r\n eventName = defaultEventName,\r\n ) {\r\n const event = new CustomEvent>(eventName, { detail: { component, props } });\r\n document.dispatchEvent(event);\r\n },\r\n};\r\n\r\nexport default ModalService;\r\n","import React, { memo, useEffect, useState } from 'react';\r\n\r\nimport { MODAL_ELEMENTS } from '@/shared/constants';\r\nimport { noop } from '@/shared/utils/noop';\r\n\r\nimport ModalService from '../action';\r\nimport { MODAL_ARIA_LABELLEDBY } from '../constants';\r\nimport type { TModalState } from '../type';\r\nimport { ModalCore } from './parts';\r\n\r\nconst defaultModalState = {\r\n close: noop,\r\n isOpen: false,\r\n};\r\n\r\ninterface IProps {\r\n style?: ReactModal.Styles;\r\n className?: string | ReactModal.Classes;\r\n htmlOpenClassName?: string;\r\n eventName?: string;\r\n appElement: string;\r\n parentSelector?: string;\r\n}\r\n\r\nconst Modal: React.FC = ({\r\n style,\r\n className = 'ModalCore',\r\n htmlOpenClassName = 'overflow_hidden',\r\n eventName,\r\n appElement,\r\n parentSelector = MODAL_ELEMENTS.ROOT_MODAL,\r\n}) => {\r\n const [modal, setModal] = useState(defaultModalState);\r\n\r\n useEffect(() => {\r\n const unsubscribe = ModalService.on(({ component, props }) => {\r\n setModal({\r\n component,\r\n props,\r\n close: () => setModal(defaultModalState),\r\n isOpen: true,\r\n });\r\n }, eventName);\r\n\r\n return unsubscribe;\r\n }, [eventName]);\r\n\r\n const defaultStyle: ReactModal.Styles = {\r\n overlay: {\r\n position: 'fixed',\r\n backgroundColor: 'rgba(0, 0, 0, 0.75)',\r\n overflow: 'auto',\r\n inset: '0px',\r\n zIndex: 99,\r\n ...style?.overlay,\r\n },\r\n content: style?.content,\r\n };\r\n\r\n const ariaData = {\r\n labelledby: modal.props?.ariaLabelledby || MODAL_ARIA_LABELLEDBY,\r\n describedby: modal.props?.ariaDescribedby,\r\n };\r\n\r\n const ModalComponent = modal.component;\r\n\r\n const getParenSelector = (): HTMLElement => document.getElementById(parentSelector)!;\r\n\r\n const handlerRequestClose = (): void => {\r\n modal.props?.onRequestClose?.();\r\n modal.close();\r\n };\r\n\r\n return (\r\n \r\n {ModalComponent && }\r\n \r\n );\r\n};\r\n\r\nexport default memo(Modal);\r\n","import React, { useEffect, useMemo, useRef } from 'react';\r\n\r\nconst HiddenLoadingElement: React.FC = () => {\r\n const statusElement = useRef(null);\r\n const timerId = useMemo(\r\n () =>\r\n setInterval(() => {\r\n if (statusElement.current) {\r\n const withDot = `${statusElement.current.innerHTML}.`;\r\n const isDot = statusElement.current.innerHTML?.indexOf('.') !== -1;\r\n statusElement.current.innerHTML = isDot\r\n ? statusElement.current.innerHTML.replace('.', '')\r\n : withDot;\r\n }\r\n }, 4000),\r\n [],\r\n );\r\n\r\n useEffect(() => {\r\n return () => {\r\n clearInterval(timerId);\r\n };\r\n }, [timerId]);\r\n\r\n return (\r\n

    \r\n Loading menu\r\n
    \r\n );\r\n};\r\n\r\nexport default HiddenLoadingElement;\r\n"," import React, { useEffect } from 'react';\r\nimport ReactModal from 'react-modal';\r\nimport { ClipLoader } from 'react-spinners';\r\nimport type { CSSProperties } from 'styled-components';\r\n\r\nimport { MODAL_ELEMENTS } from '@/shared/constants';\r\n\r\nimport HiddenLoadingElement from './HiddenLoadingElement';\r\n\r\ninterface IProps {\r\n loading: boolean;\r\n appElement: string;\r\n parentSelector?: string;\r\n}\r\n\r\nconst OVERFLOW_HIDDEN_CLASS = 'overflow_hidden';\r\n\r\nconst LoadingBackground: React.FC = ({\r\n loading,\r\n appElement,\r\n parentSelector = MODAL_ELEMENTS.ROOT_MODAL,\r\n}) => {\r\n const cssOverride: CSSProperties = {\r\n display: 'block',\r\n margin: '25% auto',\r\n color: '#fff',\r\n };\r\n\r\n const defaultStyle: ReactModal.Styles = {\r\n overlay: {\r\n position: 'fixed',\r\n backgroundColor: 'rgba(0, 0, 0, 0.75)',\r\n overflow: 'auto',\r\n inset: '0px',\r\n zIndex: 999,\r\n },\r\n content: {\r\n position: 'absolute',\r\n top: '0',\r\n left: '0',\r\n width: '100%',\r\n height: '100%',\r\n border: 'none',\r\n background: 'none',\r\n },\r\n };\r\n const appEl = document.getElementById(appElement)!;\r\n const getParenSelector = (): HTMLElement => document.getElementById(parentSelector)!;\r\n\r\n useEffect(() => {\r\n if (!loading) {\r\n if (document.body.classList.contains(OVERFLOW_HIDDEN_CLASS)) {\r\n document.body.classList.remove(OVERFLOW_HIDDEN_CLASS);\r\n }\r\n if (document.documentElement.classList.contains(OVERFLOW_HIDDEN_CLASS)) {\r\n document.documentElement.classList.remove(OVERFLOW_HIDDEN_CLASS);\r\n }\r\n }\r\n }, [loading]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default LoadingBackground;\r\n","import React, { useEffect } from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { ButtonCloseStyle } from './parts';\r\n\r\ninterface IProps {\r\n handlerClose: VoidFunction;\r\n style?: React.CSSProperties;\r\n isFocus?: boolean;\r\n}\r\nconst ButtonClose: React.FC = ({ handlerClose, style, isFocus }) => {\r\n const { formatMessage } = useIntl();\r\n const messages = {\r\n ariaLabel: formatMessage({ id: 'Modals.Buttons.Close.AriaLabel' }),\r\n };\r\n\r\n const buttonlRef = React.useRef(null);\r\n const setFocus = (): void => {\r\n buttonlRef.current?.focus();\r\n };\r\n\r\n useEffect(() => {\r\n if (isFocus) setFocus();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return (\r\n \r\n ✖\r\n \r\n );\r\n};\r\nexport default ButtonClose;\r\n","import React, { PropsWithChildren, ReactNode } from 'react';\r\n\r\nimport { DEFAULT_MODAL_ARIA_LABELLEDBY } from '@/shared/constants';\r\n\r\nimport ButtonClose from './ButtonClose';\r\nimport { ModalBody, ModalDialog, ModalFooter, ModalHeader, ModalTitle } from './parts';\r\n\r\ninterface IProps {\r\n title: ReactNode;\r\n handlerClose: VoidFunction;\r\n footer?: ReactNode;\r\n className?: string;\r\n isFocusOnCloseButton?: boolean;\r\n}\r\nconst ModalOne: React.FC> = ({\r\n title,\r\n handlerClose,\r\n children,\r\n footer,\r\n className = '',\r\n isFocusOnCloseButton,\r\n}) => {\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n\r\n {children}\r\n\r\n {footer}\r\n \r\n );\r\n};\r\nexport default ModalOne;\r\n","export enum NOTIFICATIONS {\r\n INFO = 'info',\r\n SUCCES = 'success',\r\n WARNING = 'warning',\r\n ERROR = 'error',\r\n}\r\n","import { NOTIFICATIONS } from './constants';\r\nimport type { TDetail } from './type';\r\n\r\nexport const DEFAULT_NOTIFICATION_NAME = 'notification';\r\n\r\nconst NotificationService = {\r\n on(callback: (detail: TDetail) => void, event = DEFAULT_NOTIFICATION_NAME) {\r\n // any as a hack for addEventListener\r\n document.addEventListener(event, (e: any) => callback(e.detail));\r\n },\r\n open(detail: TDetail) {\r\n document.dispatchEvent(new CustomEvent(DEFAULT_NOTIFICATION_NAME, { detail }));\r\n },\r\n showErrorNotifications(errors: string | string[]): void {\r\n if (Array.isArray(errors) && errors.length > 0) {\r\n errors.forEach((errorText) => {\r\n this.open({\r\n text: errorText,\r\n status: NOTIFICATIONS.ERROR,\r\n });\r\n });\r\n } else if (typeof errors === 'string')\r\n this.open({\r\n text: errors,\r\n status: NOTIFICATIONS.ERROR,\r\n });\r\n },\r\n};\r\n\r\nexport default NotificationService;\r\n","import React, { useEffect } from 'react';\r\nimport { NotificationContainer, NotificationManager } from 'react-notifications';\r\n\r\nimport { hasSvg } from '@/shared/utils/hasSvg';\r\n\r\nimport NotificationService, { DEFAULT_NOTIFICATION_NAME } from '../action';\r\nimport { NOTIFICATIONS } from '../constants';\r\n\r\nconst ErrorText = (text: string): JSX.Element => {\r\n const errorSvg = (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const hasOwnSvg = hasSvg(text);\r\n return (\r\n <>\r\n {!hasOwnSvg && errorSvg}{' '}\r\n \r\n \r\n );\r\n};\r\n\r\nconst Notification: React.FC = () => {\r\n useEffect(() => {\r\n NotificationService.on(\r\n ({\r\n status = NOTIFICATIONS.INFO,\r\n text,\r\n timeOut = 10000,\r\n callback = null,\r\n priority = true,\r\n }) => {\r\n NotificationManager[status](ErrorText(text), null, timeOut, callback, priority);\r\n },\r\n DEFAULT_NOTIFICATION_NAME,\r\n );\r\n }, []);\r\n\r\n return ;\r\n};\r\nexport default Notification;\r\n","export enum BRAINTREE_STATUS {\r\n INIT,\r\n LOADING,\r\n ERROR,\r\n COMPLETE,\r\n}\r\n","import styled from 'styled-components';\r\n\r\nexport const PayPalLaterMessage = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n margin-bottom: 8px;\r\n`;\r\n","import braintree, { BraintreeError, callback } from 'braintree-web';\r\nimport { useEffect, useRef, useState } from 'react';\r\n\r\nimport { DEFAULT_CURRENCY } from '@/shared/constants';\r\n\r\nimport { loadScript } from '@paypal/paypal-js';\r\n\r\nimport { BRAINTREE_STATUS } from './constants';\r\nimport type { TBraintree, TBraintreeHook, TPayPalHook } from './types';\r\n\r\nlet payPalSDKPromise: Promise | null;\r\n\r\nexport const useBraintree: TBraintreeHook = ({\r\n clientToken,\r\n amount,\r\n components = 'buttons,messages',\r\n callbackForError,\r\n}) => {\r\n const [status, setStatus] = useState(\r\n amount || components === 'messages' ? BRAINTREE_STATUS.INIT : BRAINTREE_STATUS.ERROR,\r\n );\r\n\r\n const restart = (): void => {\r\n if (!(status === BRAINTREE_STATUS.ERROR && (amount || components === 'messages'))) {\r\n console.log(\"Can't restart\");\r\n return;\r\n }\r\n\r\n payPalSDKPromise = null;\r\n setStatus(BRAINTREE_STATUS.INIT);\r\n };\r\n const defaultValue = {\r\n braintreeClient: undefined,\r\n payPalCheckoutInstance: undefined,\r\n deviceData: undefined,\r\n clientToken: undefined,\r\n };\r\n const braintreeRef = useRef(defaultValue);\r\n\r\n useEffect(() => {\r\n if (!clientToken) return;\r\n\r\n if (!amount && components !== 'messages') {\r\n console.warn('No amount to pay via PayPal');\r\n }\r\n\r\n if (status === BRAINTREE_STATUS.INIT && !payPalSDKPromise) {\r\n const handlerError = (error: BraintreeError): void => {\r\n callbackForError();\r\n setStatus(BRAINTREE_STATUS.ERROR);\r\n console.error(error);\r\n };\r\n setStatus(BRAINTREE_STATUS.LOADING);\r\n payPalSDKPromise = new Promise((resolve) => {\r\n const callbackLoadPayPalSDK: callback = (\r\n errLoadPayPalSDK,\r\n payPalCheckoutInstance,\r\n ) => {\r\n if (errLoadPayPalSDK) {\r\n handlerError(errLoadPayPalSDK);\r\n }\r\n braintreeRef.current.payPalCheckoutInstance = payPalCheckoutInstance;\r\n braintreeRef.current.clientToken = clientToken;\r\n // WARNING: required when reselecting paypal\r\n resolve(braintreeRef.current);\r\n };\r\n const callbackPaypalCheckout: callback = (\r\n errPaypalCheckout,\r\n payPalCheckoutInstance,\r\n ) => {\r\n if (errPaypalCheckout) {\r\n handlerError(errPaypalCheckout);\r\n return;\r\n }\r\n\r\n payPalCheckoutInstance!.loadPayPalSDK(\r\n {\r\n components,\r\n currency: DEFAULT_CURRENCY,\r\n intent: 'capture',\r\n debug: false, // for testing\r\n ...(amount && {\r\n // 'enable-funding': 'paylater',\r\n // 'buyer-country': 'US', // for test? delete after\r\n dataAttributes: {\r\n // @ts-expect-error: property exists, typing error\r\n amount: amount.toFixed(2),\r\n },\r\n }),\r\n },\r\n callbackLoadPayPalSDK,\r\n );\r\n };\r\n const callbackDeviceData: callback = (\r\n errDataCollector,\r\n dataCollector,\r\n ) => {\r\n if (errDataCollector) {\r\n handlerError(errDataCollector);\r\n return;\r\n }\r\n braintreeRef.current.deviceData = dataCollector?.deviceData;\r\n };\r\n const callbackClient: callback = (\r\n errBraintreeClient,\r\n braintreeClient,\r\n ) => {\r\n if (errBraintreeClient) {\r\n handlerError(errBraintreeClient);\r\n return;\r\n }\r\n\r\n braintreeRef.current.braintreeClient = braintreeClient;\r\n braintree.dataCollector.create({ client: braintreeClient! }, callbackDeviceData);\r\n braintree.paypalCheckout.create({ client: braintreeClient }, callbackPaypalCheckout);\r\n };\r\n braintree.client.create({ authorization: clientToken }, callbackClient);\r\n });\r\n }\r\n }, [amount, callbackForError, clientToken, components, status]);\r\n\r\n useEffect(() => {\r\n if (payPalSDKPromise && status === BRAINTREE_STATUS.LOADING) {\r\n payPalSDKPromise.then((data) => {\r\n // WARNING: required when reselecting paypal\r\n braintreeRef.current = data;\r\n\r\n setStatus(BRAINTREE_STATUS.COMPLETE);\r\n console.info('PayPal successfully uploaded and launched!');\r\n });\r\n }\r\n }, [status]);\r\n\r\n return { ...braintreeRef.current, status, restart };\r\n};\r\n\r\nexport const usePayPal: TPayPalHook = ({ clientId, isLoadScript }) => {\r\n useEffect(() => {\r\n if (window?.paypal) return;\r\n\r\n if (clientId && isLoadScript) {\r\n // Run once if condition is true\r\n loadScript({ clientId, components: 'messages' });\r\n }\r\n }, [clientId, isLoadScript]);\r\n};\r\n","import type {\r\n IBreakpoints,\r\n IDefaultTheme,\r\n IFontSizes,\r\n IFontWeight,\r\n IMedia,\r\n} from './types/IDefault';\r\n\r\nconst breakpoints: IBreakpoints = {\r\n maxSm: 767,\r\n md: 768,\r\n lg: 1024,\r\n xl: 1170,\r\n};\r\n\r\nconst customMediaQuery = (width: number, max = true): string => {\r\n return max ? `@media (max-width: ${width}px)` : `@media (min-width: ${width}px)`;\r\n};\r\n\r\nconst media: IMedia = {\r\n custom: customMediaQuery,\r\n largeDesktop: customMediaQuery(breakpoints.xl, false),\r\n desktop: customMediaQuery(breakpoints.lg, false),\r\n tablet: customMediaQuery(breakpoints.md, false),\r\n phone: customMediaQuery(breakpoints.maxSm),\r\n};\r\n\r\nexport const fontSizes: IFontSizes = {\r\n extraSmall: '12px',\r\n small: '14px',\r\n medium: '16px',\r\n large: '18px',\r\n extraLarge: '24px',\r\n};\r\n\r\nexport const fontWeight: IFontWeight = {\r\n normal: 'normal',\r\n medium: 600,\r\n large: 'bold',\r\n};\r\n\r\nconst Default: IDefaultTheme = {\r\n breakpoints,\r\n media,\r\n fontSizes,\r\n fontWeight,\r\n defaultDarkColor: 'var(--dark, #000000 )',\r\n defaultPrimaryColor: 'var(--primary-color, #3a7aaa)',\r\n defaultSecondaryColor: 'var(--secondary-color, #1b476a)',\r\n\r\n cardMobileWidth: 220,\r\n cardWidth: 360,\r\n cardWidthFromMdToLg: 318,\r\n gapBetweenCardsForLg: 20,\r\n gapBetweenCards: 30,\r\n percentForNCards: (\r\n n = 1,\r\n cardsInRow = 3,\r\n cardWidth = Default.cardWidth,\r\n gapBetweenCards = Default.gapBetweenCards,\r\n ) => {\r\n const x3CardsWidth = cardWidth * cardsInRow + gapBetweenCards * (cardsInRow - 1);\r\n\r\n if (n === 1) {\r\n return (cardWidth * 100) / (x3CardsWidth - gapBetweenCards);\r\n }\r\n\r\n const x2CardsWidth = cardWidth * n + gapBetweenCards;\r\n\r\n return (x2CardsWidth * 100) / x3CardsWidth;\r\n },\r\n};\r\n\r\nexport default Default;\r\n","import defaultTheme from './default';\r\nimport type { IMenuTheme } from './types/IMenuTheme';\r\n\r\nexport const MenuTheme: IMenuTheme = defaultTheme;\r\n","import defaultTheme from './default';\r\nimport type { ICartTheme } from './types/ICart';\r\n\r\nexport const CartTheme: ICartTheme = {\r\n ...defaultTheme,\r\n\r\n defaultDarkColor: 'var(--dark, #000000 )',\r\n warmGrey: '#efefef',\r\n};\r\n","import defaultTheme from './default';\r\nimport type { ICheckoutTheme } from './types/ICheckout';\r\n\r\nexport const CheckoutTheme: ICheckoutTheme = {\r\n ...defaultTheme,\r\n\r\n widthPercentageOfInput: '48.5%',\r\n};\r\n","import defaultTheme from './default';\r\nimport type { IConfirmationTheme } from './types/IConfirmation';\r\n\r\nexport const ConfirmationTheme: IConfirmationTheme = {\r\n ...defaultTheme,\r\n defaultDarkColor: 'var(--dark, #000000 )',\r\n};\r\n","import defaultTheme from './default';\r\nimport type { IMailSubscriptionTheme } from './types/IMailSubscriptionTheme';\r\n\r\nexport const MailSubscriptionTheme: IMailSubscriptionTheme = {\r\n ...defaultTheme,\r\n\r\n defaultPrimaryColor: 'var(--primary-color, #095f9a)',\r\n defaultDarkColor: 'var(--dark, #333333 )',\r\n};\r\n","import axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\r\n\r\nconst axiosRequestConfiguration: AxiosRequestConfig = {\r\n responseType: 'json',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n timeout: 120000,\r\n};\r\nconst instance = axios.create(axiosRequestConfiguration);\r\nconst responseBody = (response: AxiosResponse): T => response.data;\r\nconst redirectToLogin = (): void => {\r\n const currentPath = window.location.pathname + window.location.search;\r\n const encodedReturnUrl = encodeURIComponent(currentPath);\r\n window.location.href = `/Login?returnUrl=${encodedReturnUrl}`;\r\n};\r\n\r\nconst handleAxiosError = (error: unknown): void => {\r\n if (!axios.isAxiosError(error)) return;\r\n\r\n const axiosError = error as AxiosError;\r\n const method = error.config?.method?.toUpperCase() || 'UNKNOWN METHOD';\r\n const status = error.response?.status;\r\n\r\n if (status === 401) {\r\n redirectToLogin();\r\n return;\r\n }\r\n\r\n if (status === 500 && !axiosError.response?.data) {\r\n console.warn(`Error occurred during ${method} request: ${axiosError.message}`);\r\n throw new Error('Something went wrong on the server. Please try again later.');\r\n }\r\n\r\n console.error(\r\n `Error ${status} on ${method} request to ${axiosError.config?.url}:`,\r\n axiosError.response?.data,\r\n );\r\n};\r\nexport const apiClient = {\r\n get: async (url: string) => {\r\n try {\r\n const response = await instance.get(url);\r\n return responseBody(response);\r\n } catch (error) {\r\n handleAxiosError(error);\r\n throw error;\r\n }\r\n },\r\n post: async (url: string, body?: K) => {\r\n try {\r\n const response = await instance.post, K>(url, body);\r\n return responseBody(response);\r\n } catch (error) {\r\n handleAxiosError(error);\r\n throw error;\r\n }\r\n },\r\n delete: async (url: string, data?: K) => {\r\n try {\r\n const response = await instance.delete, K>(url, {\r\n data,\r\n });\r\n return responseBody(response);\r\n } catch (error) {\r\n handleAxiosError(error);\r\n throw error;\r\n }\r\n },\r\n};\r\n","import { PREFIX_URL_API } from '@/shared/constants';\r\nimport { apiClient } from '@/shared/utils/apiClient';\r\n\r\nexport const getBasketPreiew = (): Promise => {\r\n const url = `${PREFIX_URL_API.CHECKOUT}/BasketPreview`;\r\n return apiClient.post(url);\r\n};\r\n","import { getBasketPreiew } from '@/shared/api/other';\r\n\r\n// Изменения вне реакта\r\nexport const BasketPreiewAction = async (): Promise => {\r\n const cart = document.querySelector('.header-wrapper li.cart');\r\n\r\n const html = await getBasketPreiew();\r\n if (cart) cart.innerHTML = html;\r\n};\r\n","import { isAfter, isSameDay, startOfDay } from 'date-fns/fp';\r\n\r\nexport const handleAvailableDates = <\r\n T extends {\r\n AvailableDatesFoodOrder?: string[];\r\n AvailableDates?: string[];\r\n } | null,\r\n>(\r\n data: T,\r\n): T => {\r\n const today = startOfDay(new Date());\r\n\r\n const newAvailableDatesFoodOrder = data?.AvailableDatesFoodOrder?.filter((date) => {\r\n return isAfter(today, new Date(date)) || isSameDay(today, new Date(date));\r\n });\r\n\r\n const newAvailableDates = data?.AvailableDates?.filter((date) => {\r\n return isAfter(today, new Date(date)) || isSameDay(today, new Date(date));\r\n });\r\n\r\n const newData = {\r\n ...data,\r\n AvailableDates: newAvailableDates,\r\n AvailableDatesFoodOrder: newAvailableDatesFoodOrder,\r\n };\r\n\r\n return newData;\r\n};\r\n","import React from 'react';\r\n\r\nexport const hasSvg = (children: React.ReactNode): boolean => {\r\n if (typeof children === 'string') {\r\n return children.includes('\r\n React.isValidElement(child) &&\r\n typeof child.type === 'string' &&\r\n child.type.toLowerCase() === 'svg',\r\n );\r\n};\r\n","export const noop = (): void => {};\r\n","import { addDays, endOfISOWeek, format, isSameDay, startOfISOWeek } from 'date-fns/fp';\r\n\r\nimport { FORMAT_DATE_TIME } from '@/shared/constants';\r\n\r\nconst monthArray = [\r\n 'January',\r\n 'February',\r\n 'March',\r\n 'April',\r\n 'May',\r\n 'June',\r\n 'July',\r\n 'August',\r\n 'September',\r\n 'October',\r\n 'November',\r\n 'December',\r\n];\r\n\r\ntype TWeeks = {\r\n displayName: string;\r\n startOfWeek: string;\r\n endOfWeek: string;\r\n}[];\r\nexport const getWeeks = (): TWeeks => {\r\n const date = new Date();\r\n let startOfWeek = startOfISOWeek(date).toDateString();\r\n let endOfWeek = endOfISOWeek(date).toDateString();\r\n const weeks: TWeeks = [];\r\n for (let i = 0; i < 5; i++) {\r\n const dateEnd = new Date(endOfWeek).getDate();\r\n const dateStart = new Date(startOfWeek).getDate();\r\n const monthEnd = monthArray[new Date(endOfWeek).getMonth()];\r\n const monthStart = monthArray[new Date(startOfWeek).getMonth()];\r\n const displayName = `${monthStart} ${dateStart} - ${monthEnd} ${dateEnd}`;\r\n\r\n weeks.push({\r\n displayName: String(displayName),\r\n startOfWeek,\r\n endOfWeek,\r\n });\r\n endOfWeek = addDays(7, new Date(endOfWeek)).toDateString();\r\n startOfWeek = addDays(7, new Date(startOfWeek)).toDateString();\r\n }\r\n\r\n return weeks;\r\n};\r\n\r\nexport const parseWeek = (startDate: string, endDate: string): string => {\r\n if (!startDate || !endDate) return '';\r\n\r\n const weeks = getWeeks();\r\n const week = weeks.find((w) => w.startOfWeek === startDate);\r\n if (!week) {\r\n return '';\r\n }\r\n\r\n return week.displayName;\r\n};\r\n\r\nexport const parseDate = (date: Nullable): string => {\r\n if (!date) return '';\r\n\r\n const dateData = new Date(date);\r\n\r\n const isEqualDates = isSameDay(new Date(), dateData);\r\n return isEqualDates ? 'Today' : format(FORMAT_DATE_TIME.eeeMMDD, dateData);\r\n};\r\n","import isEqual from 'lodash/isEqual';\r\n\r\nexport const isPropsEqual = (prevProps: unknown, nextProps: unknown): boolean => {\r\n return isEqual(prevProps, nextProps);\r\n};\r\n","export const srSpeak = (\r\n text: string,\r\n priority: React.AriaAttributes['aria-live'] = 'polite',\r\n): void => {\r\n const el = document.createElement('div') as HTMLDivElement;\r\n const id = `speak-${new Date().getTime()}`;\r\n el.setAttribute('id', id);\r\n el.setAttribute('aria-live', priority);\r\n el.classList.add('sr-only');\r\n document.body.appendChild(el);\r\n\r\n window.setTimeout(() => {\r\n el.innerHTML = text;\r\n }, 100);\r\n\r\n window.setTimeout(() => {\r\n document.body.removeChild(el);\r\n }, 1000);\r\n};\r\n","const isNullOrWhiteSpace = (input: Nullable): boolean => {\r\n if (typeof input === 'undefined' || input == null) return true;\r\n return String(input).replace(/\\s+$/g, '').length < 1;\r\n};\r\n\r\nexport const hasValue = (input: Nullable): boolean => {\r\n return !isNullOrWhiteSpace(input);\r\n};\r\n"],"names":["getUpdateFoodOrder","_ref","_context","_context2","_context3","_context4","_context5","_context6","locationId","basketName","pickupTimeIncrement","date","periodId","storeIds","url","_concatInstanceProperty","concat","PREFIX_URL_API","CART","call","apiClient","get","removeItemByGroupId","payload","post","cartFoodProductDetails","_ref2","_context7","_context8","_context9","basket","item","prod","proceedToCheckout","updateFoodProductToCart","updateLocationAndTimeForOrdering","applyPromoCode","BASKET","removePromoCode","completePurchase","ligthboxOnApproval","addCreditCardPayment","deleteAddedCreditCard","updateBasket","deleteAppliedReward","id","LOYALTY","delete","applyRewards","getRewardsToApply","registerClient","updateBasketPhoneNumber","refresh","getConfigForPayPal","API","addOrRemoveFromLocationFavoriteApi","postData","LOCATIONS","joinApi","removeFromFavoriteApi","MANAGE_USER_FAVORITES","fetchMenu","createAsyncThunk","_asyncToGenerator","_regeneratorRuntime","_callee","thunkAPI","mode","customPeriodId","customDate","time","fulfillmentMode","callback","_menu$requestParamete","response","prev","next","getState","menu","requestParameters","MENU","undefined","sent","document","dispatchEvent","CustomEvent","detail","abrupt","t0","rejectWithValue","message","stop","_x","_x2","apply","arguments","getDataForMealCalculator","totalMealIds","PRODUCT","fetchFoodProductDetails","_ref3","_context10","_context11","_context12","_context13","_context14","_context15","root","addOrRemoveFavoriteProduct","addFoodProductToCart","getMenuCalendar","_ref4","_context16","_context17","getMenuPeriods","_ref5","_context18","_context19","_context20","_context21","storeId","getPickUPTimes","_ref6","_context22","_context23","_context24","_context25","_context26","_context27","_context28","fulfillment","pageStoreId","apiSaveFilters","_ref7","filterItems","AmountCaloriesComponent","styled","div","_templateObject","_taggedTemplateLiteral","Ul","ul","_templateObject2","InternalList","_templateObject3","NutritionCard","_templateObject4","AmountPerServing","h3","_templateObject5","DescriptionProductOfComposition","li","_templateObject6","_ref$fontWeight","fontWeight","css","_templateObject7","Underline","GlobalUnderline","_templateObject8","UnderlineInnerList","_templateObject9","_ref2$num","num","_templateObject10","NutritionalItem","_ref$sumByNesting","sumByNesting","notAvailableLabel","formatMessage","useIntl","valueItem","hasValue","Value","Name","Unit","isFirstNesting","isSubList","SubList","length","_jsxs","_objectSpread","children","_jsx","_mapInstanceProperty","subItem","React","_NutritionalItem","memo","calories","amountCaloriesTitle","list","className","toUpperCase","isPropsEqual","_rect","lightColor","ButtonComponent","button","theme","_ref$width","width","_ref$height","height","_ref$padding","padding","_ref$margin","margin","_ref$fontSize","fontSize","isDark","_ref$borderRadius","borderRadius","defaultPrimaryColor","defaultSecondaryColor","ButtonSecondStyled","_ref2$width","_ref2$height","_ref2$padding","_ref2$margin","_ref2$fontWeight","_ref2$borderRadius","ButtonTextStyled","_ref3$width","_ref3$height","_ref3$padding","_ref3$margin","bg","ButtonLinkStyled","_ref4$width","_ref4$height","_ref4$padding","_ref4$margin","_ref4$fontSize","_ref4$fontWeight","ButtonCheckboxLabelStyled","label","isChecked","_ref5$padding","_ref5$margin","_ref5$width","_ref5$height","ButtonCheckboxSpanStyled","span","_templateObject11","_ref6$fontSize","_ref6$fontWeight","_templateObject12","ButtonCheckboxInputStyled","input","_templateObject13","ButtonAddToFav","_templateObject14","Button","_ref$click","click","disabled","title","onClick","CLASSNAME_FOCUS","ButtonCheckbox","_ref$className","htmlFor","type","checked","onChange","onKeyDown","event","key","onFocus","checkboxElement","target","parentElement","classList","contains","add","onBlur","remove","ButtonLink","link","ariaLabel","window","location","assign","ButtonText","_ref$dataTestid","dataTestId","ButtonSecond","_excluded","_extends","Object","bind","n","e","t","r","hasOwnProperty","_rect2","ForwardRef","forwardRef","ref","titleId","props","o","i","includes","_objectWithoutPropertiesLoose","getOwnPropertySymbols","s","propertyIsEnumerable","_objectWithoutProperties","xmlns","xmlnsXlink","x","y","viewBox","style","enableBackground","xmlSpace","_path","PlusOrMinus","_ref$isPlus","isPlus","PlusIcon","MinusIcon","d","ButtonAddToFavorites","marketingName","IsUserFavorite","handlerClick","messages","markAsFavorite","unMarkAsFavorite","ariaDescription","ariaDescribedby","_Fragment","SvgHeart","role","focusable","SvgHeartOutline","SummaryDiv","SummaryTable","table","SummaryTableHeaderRow","tr","fontSizes","small","normal","SummaryTableRow","SummaryTableFooterRow","QtyCellHeader","th","QtyCell","td","large","MainCellHeader","MainCell","_templateObject15","MainCellName","_templateObject16","_templateObject17","MainCellModifiers","_templateObject18","_templateObject19","PriceCellHeader","_templateObject20","_templateObject21","PriceCell","_templateObject22","_ref8","_templateObject23","medium","TotalRowName","_templateObject24","_ref9","_templateObject25","TotalRowSum","_templateObject26","_ref10","isDiscount","_templateObject27","media","tablet","SubTotal","TaxTotal","Total","ItemTotal","PromotionsTotal","RewardsTotal","HandlingFee","FulfillmentTotal","LineItems","isPaymentDetailsAvailable","format","useCurrencyFormmater","qty","price","subtotal","tax","orderTotal","promotions","handlingFee","fulfillmentTotal","rewardsTotal","itemTotalKey","isMobile","useMediaQuery","query","toQuery","maxWidth","QtyColHead","useRef","MainColHead","FooterNameCell","_useState","useState","_useState2","_slicedToArray","modifiersWidth","setModifiersWidth","useEffect","font","getComputedStyle","body","context","createElement","getContext","maxTextWidth","Math","max","_toConsumableArray","text","measureText","qtyComputedWidth","current","parseInt","getPropertyValue","footerNameComputedWidth","mainCellCalculatedWidth","bodyList","_item","itemPrice","ListPrice","itemTotal","OriginalPrice","Quantity","itemDiscount","TotalDiscountAmount","background","scope","ProductName","ModifierItems","Modifiers","modifiers","IsFreeGift","marginTop","FreeGiftTag","color","Id","dangerouslySetInnerHTML","__html","colSpan","FormattedMessage","Edit","Basket","_ref$isShowPayPalMess","isShowPayPalMessage","close","edit","done","summaryTitle","footer","ModalOne","handlerClose","isFocusOnCloseButton","ContentOrderSummary","PayPalLaterMessage","size","DatePickerButton","DateTextSpan","DateMealSelectorFilterButton","Svg","svg","LineThrough","tooltipText","DatePicker","preSelectedMenuDate","customInput","isOpenDatePicker","setOpenDatePicker","availableDates","lastDateOnCalendar","minDate","filterDate","isRemoveFocusOnEscape","menuAvailable","noMenuTooltip","menuUnavailable","datePickerDescription","selectedDate","Date","handlerTooltipText","useCallback","renderDate","some","isSameDay","isBeforeMinDateOrAfterLastDate","lastDate","isBefore","isAfter","isBeforeOrAfterDay","renderDayContents","renderDay","datePickerRef","focusInput","setTimeout","_datePickerRef$curren","focus","handlerOnChange","CustomCalendarContainer","CalendarContainer","position","DPiker","open","selected","stopPropagation","calendarContainer","onClickOutside","renderCustomHeader","monthDate","prevMonthButtonDisabled","nextMonthButtonDisabled","decreaseMonth","increaseMonth","toLocaleString","month","year","useDatePicker","_ref$numberDaysAfter","numberDaysAfter","_ref$onlyShowCurrentD","onlyShowCurrentDaysOnlineOrdering","_ref$onlyAllowFutureD","onlyAllowFutureDaysOnlineOrdering","YYYYMMDDTHHmmss","FORMAT_DATE_TIME","today","startOfDay","useMemo","addDays","newAvailableDates","eachDayOfInterval","start","end","sortDates","_sortInstanceProperty","a","b","compareAsc","_filterInstanceProperty","DPickerButton","isOpen","setOpen","customInputRef","value","datePickerAriaLabel","parseDate","ErrorBoundary","component","errorHandler","_React$Component","WrapperErrorBoundary","_this","_classCallCheck","state","error","_inherits","_createClass","info","this","ErrorText","isInfo","errorSvg","transform","icon","hasOwnSvg","hasSvg","errorMessage","idIntl","_valuesInstanceProperty","SvgPriceTag","PriceTagSvg","ImgComponent","img","_ref$mobMargin","mobMargin","maxHeight","ItemImg","ItemAllergens","ItemAllergen","_ref$alt","alt","src","cbOnError","hidden","loading","onError","ProductImg","_ref$isShow","isShow","isImgError","setImgError","Img","ProductAllergens","dietaryInformation","allergenList","_reduceInstanceProperty","acc","IsEnabled","IconUrl","push","TIME_LIST","defaultRules","required","values","ORDER_AHEAD_RULES","DescriptionStyle","BlockStyle","_ref2$mt","mt","_ref2$mb","mb","BlockButtonStyle","TextAreaStyle","textarea","LocationOne","p","WarningDiv","WarningContainer","Input","SubHeader","TitleTimes","legend","mealOptions","reqGetPickUPTimes","OnlyShowCurrentDaysOnlineOrdering","OnlyAllowFutureDaysOnlineOrdering","isSlotExpired","msgForSlotExpired","isDisabled","_useFormContext","useFormContext","control","setFocus","setValue","datePickerProps","AvailableDatesFoodOrder","NumberDaysAfter","MMDDYYYY","Meal","TimeNoLongerAvailable","handlerDatePicker","getDate","dateRules","mealRules","CustomInput","Required","marginRight","top","fill","Controller","name","rules","render","field","_","preventDefault","_ref4$field","fieldState","valueSelected","_findInstanceProperty","meal","Number","Select","options","newValue","mealId","components","ErrorMessage","cssOverride","display","ClipLoader","HiddenLoadingElement","Wrapper","times","selectedTime","isSameMinute","Times","textNoTimes","_ref$isSlotExpired","SelectNewTime","_ref2$field","tabIndex","RequiredField","Loader","SelectOne","DeliveryPart","deliveryLocation","deliveryPlaceholder","deliveryTime","NoDeliveryTimeAvailable","placeholder","PickUpPart","locations","locationOne","pickUpLocation","pickUpTime","NoPickupTimeAvailable","option","_mealOptions$find","_mealOptions$","_fulfillment$PickUpFu","_fulfillment$Delivery","_pickUPTimes$ListPick","setActiveTab","tabIndexParent","isPickUpTab","isDeliveryTab","defaultPickUPTimes","orderMenuDate","setOrderMenuDate","setChoosenMeal","setFulfillment","nameButton","menuCalendar","selectedTabIndex","preselectedLocation","preselectedTime","handlePickUpTimes","handleFetchMenu","_ref$isMealSelectDisa","isMealSelectDisabled","_useTransition","useTransition","_useTransition2","startTransition","isLoadingTime","setLoadingTime","_useState3","_useState4","pickUPTimes","setPickUPTimes","MenuPeriods","period","PeriodName","PeriodId","MMMDDYYYY","AMPM","PICK_UP","FULFILLMENT_METHODS","DELIVERY","defaultMeal","MealPeriodId","defaultLocation","PickUpLocation","methods","useForm","shouldUnregister","defaultValues","DeliveryLocation","SelectedFulfillmentMethod","PickUpFulfillment","PickupDateTime","DeliveryFulfillment","DeliveryDateTime","handleSubmit","getValues","clearErrors","_useState5","_useState6","setTabIndex","StartOrder","OrderAhead","ContinueOrder","pickUpTab","deliveryTab","TimeSlots","buttonName","showPickUpTab","showDeliveryTab","locationOptions","ListPickUpLocations","Text","isFixed","timeValue","clearValueTime","_ref2$customIndex","customIndex","_getValues","_getValues2","orderDate","orderMeal","preparedData","data","handleTurnOffLoading","fulfillmentMethod","closeModal","handlerOnSelectTab","index","tabsOptions","selectedIndex","onSelect","isNoContent","listTabs","visible","panel","BodyContentForModal","const","FormProvider","pickupLocation","updatedDateTime","_pickUPTimes$MenuPeri","_getValues3","_getValues4","PickUpDate","PickUpTime","SelectedDate","DeliveryDate","DeliveryTime","menuPeriod","setFulfillmentInformation","formatDate","toDateString","errors","console","log","_Object$keys","timeList","getElementById","firstInput","Tabs","marginForHeaderTabs","blockText","groups","_Map","forEach","modifier","group","Data","_modifier$Name$split$","split","substr","_modifier$Name$split$2","newItem","has","set","groupsArray","_Array$from","mods","m","Price","join","SvgOrderAgain","OrderAgainButton","ItemDetails","ReorderButton","OrderAgainSVG","OrderAgainText","ProductCard","_Product$DietaryInfor","_ref$product","product","MenuProductId","ProductId","IsTopPurchased","IsDeemphasized","Product","model","_ref$context","isProductInTotalMeal","isFavorite","handleOpenFoodProductDetails","handleAddToFavorites","renderButtonMealCalculator","viewProductDetailsTitle","isProductCalories","HideProductsCalorie","Calories","isOpenNutritionalInformation","HideProductsNutritional","IsBulkProduct","HasNutritionalInformation","isOpenModalProductDetails","IsFoodOrder","isButtonMealCalculatorForCard","ShowAddToCalculatorButton","isProductPrice","CurrentPriceCulture","CurrentPrice","isProductPriceForCard","DisplayPriceOnTheMenu","IsDaily","isProductInfo","isProductDietaryInformation","DietaryInformation","isProductFooter","HideEatWellIconsFromMenu","productName","MarketingName","DisplayName","buttonAddToFavorites","UserFavoritiesEnabled","description","HideProductsShortDescription","Description","ShortDescription","isColumnForDescription","isPadding","OrderAgainButtonElement","ProductCardComponent","activeBorder","UpperPart","HeaderItemBtn","isHigh","DisplayProductImages","ImageUrl","HeaderItemName","HeaderItemNameLink","ItemInfo","isDescription","ItemCalories","ItemPrice","ItemContent","LowerPart","FooterItem","cardWidth","desktop","cardWidthFromMdToLg","largeDesktop","toPrint","CounterComponent","CounterMinusOrPlus","CounterContent","Counter","minCount","maxCount","selectedProductQuantity","decreaseAriaLabel","quantityAriaLabel","increaseAriaLabel","checkCount","sum","count","_Number$isNaN","processedValue","ProductDescriptionDiv","phone","InputHidden","ModalBlock","ModalSubTitle","ModalTitle","ModalBody","OrderDate","ModalProductTextArea","ModalProductDescription","ModalProductDescriptionContent","ModalProductDescriptionItemDetails","ModalProductServingSize","ModalProductDisclaimer","ModalHeaderItem","ModalHeaderItemName","h2","WrapRequired","_templateObject28","_templateObject29","WrapperButtons","_templateObject30","ModalProductFooter","_templateObject31","DateModifier","parenthandler","SelectedVariant","setSelectedDate","ForwardInput","formattedDate","result","handler","srSpeak","SelectManyModifier","_useIntl","formatNumber","select","notSelect","variants","Variants","IsChecked","idVariant","newVariants","variant","VariantId","VariantName","HidePrice","VariantPrice","currency","DEFAULT_CURRENCY","SelectOneModifier","register","ModifierId","defaultValue","TextModifier","enter","cleared","IsTextRequired","YesNoModifier","yes","no","selectedNo","selectedYes","isYes","ModifierPrice","setData","formState","newModifiers","modifierMap","_defineProperty","MODIFIER_TYPES","SELECT_MANY","SELECT_ONE","TEXT","DATE","YES_NO","labelSelectOne","labelText","ModifierType","ModifierComponent","isRequired","isError","TextArea","Order","warningMsg","setDataForCart","isShowSpecialInstructions","recipientInstructions","specialInstructions","placeholderTextArea","dataForCart","RecipientInstructions","sendGaEventProductDetailOpen","_window","gaGtag","_product$Categories$","_product$Categories","productData","item_id","item_name","item_category","Categories","CategoryId","viewProduct","_productDetailsWithMo","_productDetailsWithMo2","_productDetailsWithMo3","_productDetailsWithMo4","_productDetailsWithMo5","_productDetailsWithMo6","_productDetailsWithMo7","_productDetailsWithMo8","_dataForCart$UserOrde","_dataForCart$Product2","_productDetailsWithMo9","_product$CurrentPrice","_productDetailsWithMo10","productDetailsWithModifiers","_ref$allowGA","allowGA","_ref$isOrderAllowed","isOrderAllowed","nutritionComponent","_ref$isOpenNutritiona","_ref$hideProductsShor","hideProductsShortDescription","handlerFooter","setWarningMsg","modalHeaderRef","setShowWarningMsg","msg","_modalHeaderRef$curre","_trimInstanceProperty","scrollIntoView","behavior","block","inline","isPickUp","CatalogId","StoreId","ProductType","Configuration","UserOrderingInfo","PickupTimeIncrement","DeliveryLeadTimeFrame","DeliveryLeadTime","MinQuantity","MaxQuantity","counter","SelectedProductQuantity","orderTab","nutritionalTab","formMethods","shouldFocusError","shouldUseNativeValidation","getStringType","_listTypes$find","listTypes","_Object$values","handlerSelectedProductQuantity","formatOrderDate","eeeMMDD","ShowSpecialInstructions","amount","productPrice","modifiersList","Array","isArray","getAmount","ProductDescription","isPayPalEnabled","PayPalEnabled","ModalDialog","ButtonClose","MODAL_ARIA_LABELLEDBY","_dataForCart$Product","updateData","marginLeft","Nutrition","productInfo","calcComponent","disclaimerBold","servingSize","ingredients","disclaimer","NutritionalTree","ServingSize","ServingUnit","AmountCalories","IngredientStatement","AllergenStatement","resources","store","IntlProvider","locale","defaultLocale","fallbackOnEmptyString","ReduxProvider","ThemeProvider","attrs","getOptionBackgroundColor","isFocused","isSelected","defaultStyles","styles","backgroundColor","borderColor","outline","boxShadow","border","menuList","indicatorsContainer","borderTopRightRadius","borderBottomRightRadius","indicatorSeparator","singleValue","paddingLeft","dropdownIndicator","cursor","fontFamily","_ref$styles","_ref$ariaRequired","ariaRequired","_ref$maxMenuHeight","maxMenuHeight","_ref$isClearable","isClearable","_ref$blurInputOnSelec","blurInputOnSelect","restProps","menuIsOpen","setMenuIsOpen","WrapperSelect","onMenuClose","onMenuOpen","requestAnimationFrame","ariaLiveMessages","focused","WrapperStickyNav","ItemStickyNav","active","ItemNameStickyNav","isActive","handleClick","handleKeyDown","handleScroll","parentRef","localOptions","setLocalOptions","scrollToCenter","elementId","parent","buttonElem","parentComputedStyle","parentBorderLeftWidth","scrollLeft","offsetLeft","clientWidth","prevOptions","newOption","existingOption","prevOption","handleScrollEvent","activeStickyId","opt","addEventListener","removeEventListener","WrapperTabs","PanelTabs","TabPanel","HeaderTabs","TabList","ItemTab","Tab","header","tab","content","hr","DEFAULT_MODAL_ARIA_LABELLEDBY","MODE","Fulfillment","NormalizedMinPickupTime","mealType","CHECKOUT","APP_ELEMENTS","MENUS","CONFIRMATION","MAIL_SUBSCRIPTION","PRODUCT_DETAILS","MODAL_ELEMENTS","ROOT_MODAL","MAIL_SUBSCRIPTION_MODAL","LOCATIONS_MODAL","useAppDispatch","useDispatch","useAppSelector","selector","useSelector","total","useFocus","htmlElRef","_htmlElRef$current","loadingSlice","createSlice","initialState","reducers","setLoading","action","extraReducers","fulfilled","pending","rejected","actions","getLoading","ModalCore","ReactModal","ModalHeader","ModalFooter","ButtonCloseStyle","customColor","defaultEventName","ModalService","on","eventName","handlerCustomEvent","defaultModalState","noop","_modal$props","_modal$props2","_modal$props4","_ref$htmlOpenClassNam","htmlOpenClassName","appElement","_ref$parentSelector","parentSelector","modal","setModal","defaultStyle","overlay","overflow","inset","zIndex","ariaData","labelledby","ariaLabelledby","describedby","ModalComponent","onRequestClose","_modal$props3","_modal$props3$onReque","aria","bodyOpenClassName","shouldReturnFocusAfterClose","statusElement","timerId","setInterval","_statusElement$curren","withDot","innerHTML","isDot","indexOf","replace","clearInterval","OVERFLOW_HIDDEN_CLASS","LoadingBackground","appEl","documentElement","left","isFocus","buttonlRef","_buttonlRef$current","NOTIFICATIONS","DEFAULT_NOTIFICATION_NAME","NotificationService","showErrorNotifications","errorText","status","ERROR","_ref$status","INFO","_ref$timeOut","timeOut","_ref$callback","_ref$priority","priority","NotificationManager","_sliceInstanceProperty","NotificationContainer","BRAINTREE_STATUS","payPalSDKPromise","useBraintree","clientToken","_ref$components","callbackForError","INIT","setStatus","braintreeClient","payPalCheckoutInstance","deviceData","braintreeRef","warn","handlerError","LOADING","_Promise","resolve","callbackLoadPayPalSDK","errLoadPayPalSDK","callbackPaypalCheckout","errPaypalCheckout","loadPayPalSDK","intent","debug","dataAttributes","toFixed","callbackDeviceData","errDataCollector","dataCollector","braintree","create","authorization","errBraintreeClient","client","then","COMPLETE","restart","usePayPal","clientId","isLoadScript","paypal","loadScript","breakpoints","maxSm","md","lg","xl","customMediaQuery","Default","custom","extraSmall","extraLarge","defaultDarkColor","cardMobileWidth","gapBetweenCardsForLg","gapBetweenCards","percentForNCards","cardsInRow","x3CardsWidth","MenuTheme","defaultTheme","CartTheme","warmGrey","CheckoutTheme","widthPercentageOfInput","ConfirmationTheme","MailSubscriptionTheme","instance","axios","responseType","headers","timeout","responseBody","handleAxiosError","_error$config","_error$response","_axiosError$response","_axiosError$config","_axiosError$response2","isAxiosError","axiosError","method","config","Error","currentPath","pathname","search","encodedReturnUrl","encodeURIComponent","href","redirectToLogin","_get","_post","_callee2","_x3","_delete2","_callee3","_x4","_x5","getBasketPreiew","BasketPreiewAction","cart","html","querySelector","handleAvailableDates","_data$AvailableDatesF","_data$AvailableDates","newAvailableDatesFoodOrder","AvailableDates","_includesInstanceProperty","toArray","child","toLowerCase","monthArray","getWeeks","startOfWeek","startOfISOWeek","endOfWeek","endOfISOWeek","weeks","dateEnd","dateStart","monthEnd","getMonth","monthStart","displayName","String","parseWeek","startDate","endDate","week","w","dateData","prevProps","nextProps","isEqual","el","getTime","setAttribute","appendChild","removeChild","isNullOrWhiteSpace"],"sourceRoot":""}