{"version":3,"file":"../Feature/Menus/code/Bundles/scripts/Aramark.ACP.Feature.Menus.React.v12.00.js","mappings":"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","sources":["webpack://aramark.acp.react/./src/entities/menu/model/slice.ts","webpack://aramark.acp.react/./src/entities/menu/product/model/slice.ts","webpack://aramark.acp.react/./src/entities/menu/product/model/actions.ts","webpack://aramark.acp.react/./src/entities/menu/product/utils.ts","webpack://aramark.acp.react/./src/entities/menu/product/model/selectors.ts","webpack://aramark.acp.react/./src/entities/menu/order/model/actions.ts","webpack://aramark.acp.react/./src/entities/menu/product/components/ProductTile/icons/mealCalculatorDone.svg","webpack://aramark.acp.react/./src/entities/menu/product/components/ProductTile/icons/mealCalculatorPlus.svg","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/icons/cart.svg","webpack://aramark.acp.react/./src/entities/menu/product/components/ProductTile/parts.ts","webpack://aramark.acp.react/./src/entities/menu/product/components/ProductTile/blocks/ButtonMealCalculator.tsx","webpack://aramark.acp.react/./src/entities/menu/product/components/ProductTile/blocks/MealCalcNutrition.tsx","webpack://aramark.acp.react/./src/entities/menu/product/components/ProductTile/modals/AddFavorite.tsx","webpack://aramark.acp.react/./src/entities/menu/product/components/ProductTile/ProductTile.tsx","webpack://aramark.acp.react/./src/entities/menu/product/components/ProductTile/modals/GoesWellWith.tsx","webpack://aramark.acp.react/./src/entities/menu/filter/model/slice.ts","webpack://aramark.acp.react/./src/entities/menu/model/actions.ts","webpack://aramark.acp.react/./src/entities/menu/constants.ts","webpack://aramark.acp.react/./src/widgets/menu/CommonMenu/parts.ts","webpack://aramark.acp.react/./src/widgets/menu/WeeklyMenu/parts.ts","webpack://aramark.acp.react/./src/widgets/menu/WeeklyMenu/blocks/MenuItem.tsx","webpack://aramark.acp.react/./src/widgets/menu/WeeklyMenu/blocks/MenuItems.tsx","webpack://aramark.acp.react/./src/widgets/menu/WeeklyMenu/blocks/WeeklyMenuItemStation.tsx","webpack://aramark.acp.react/./src/widgets/menu/WeeklyMenu/blocks/WeeklyMenuItemBody.tsx","webpack://aramark.acp.react/./src/widgets/menu/WeeklyMenu/blocks/WeeklyPrintBtn.tsx","webpack://aramark.acp.react/./src/widgets/menu/WeeklyMenu/blocks/WeeklyPrintContent.tsx","webpack://aramark.acp.react/./src/widgets/menu/WeeklyMenu/WeeklyMenu.tsx","webpack://aramark.acp.react/./src/widgets/menu/CommonMenu/blocks/MenuItemsPart.tsx","webpack://aramark.acp.react/./src/widgets/menu/CommonMenu/MenuItemsBlock.tsx","webpack://aramark.acp.react/./src/widgets/menu/CommonMenu/blocks/StationHeader.tsx","webpack://aramark.acp.react/./src/widgets/menu/CommonMenu/CommonMenu.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/CartButton/parts.ts","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/CartButton/CartButton.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/parts.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/DailyMeal/blocks/DailyBlock.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/DailyMeal/parts.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/DailyMeal/modal/DineInModal.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/icons/allergensAndDiets.svg","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/DailyMeal/DailyMealBlock.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/icons/pencil.svg","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/Filters/parts.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/Filters/blocks/ButtonFilter.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/Filters/blocks/TagsActiveFilters.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/Filters/blocks/FilterItem.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/Filters/blocks/FilterItems.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/Filters/modal/ModalFilters.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/Filters/Filters.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/icons/mealCalculatorFilter.svg","webpack://aramark.acp.react/./src/entities/menu/filter/model/actions.ts","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/icons/search.svg","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/MealCalculator/blocks/IconMealCalculator.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/MealCalculator/parts.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/MealCalculator/modal/MealCaculatorModal.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/MealCalculator/MealCalculatorBlock.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/Search.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/Navigation/parts.ts","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/Navigation/blocks/ButtonGear.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/Navigation/NavigationBar.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/Tabs/Tabs.tsx","webpack://aramark.acp.react/./src/widgets/menu/PanelTabFilters/components/PanelTabFilters.tsx","webpack://aramark.acp.react/./src/pages/menu/MenuPage.tsx","webpack://aramark.acp.react/./src/features/menu/InitialMenu/action.ts","webpack://aramark.acp.react/./src/app/bootstrap/menu/store.ts","webpack://aramark.acp.react/./src/app/bootstrap/menu/App.tsx","webpack://aramark.acp.react/./src/app/bootstrap/menu/styles.scss?1cff","webpack://aramark.acp.react/./src/app/bootstrap/menu/index.tsx","webpack://aramark.acp.react/./src/app/bootstrap/menu/styles.scss","webpack://aramark.acp.react/webpack/bootstrap","webpack://aramark.acp.react/webpack/runtime/chunk loaded","webpack://aramark.acp.react/webpack/runtime/compat get default export","webpack://aramark.acp.react/webpack/runtime/create fake namespace object","webpack://aramark.acp.react/webpack/runtime/define property getters","webpack://aramark.acp.react/webpack/runtime/global","webpack://aramark.acp.react/webpack/runtime/hasOwnProperty shorthand","webpack://aramark.acp.react/webpack/runtime/make namespace object","webpack://aramark.acp.react/webpack/runtime/node module decorator","webpack://aramark.acp.react/webpack/runtime/runtimeId","webpack://aramark.acp.react/webpack/runtime/publicPath","webpack://aramark.acp.react/webpack/runtime/jsonp chunk loading","webpack://aramark.acp.react/webpack/runtime/nonce","webpack://aramark.acp.react/webpack/startup"],"sourcesContent":["import { fetchMenu } from '@/shared/api/menu';\r\nimport type { IApiResponseGetMenuCalendar } from '@/shared/api/menu/types';\r\nimport { Fulfillment, FulfillmentType } from '@/shared/constants';\r\nimport type { TMenuInitialData } from '@/shared/types/menu';\r\n\r\nimport { PayloadAction, createSelector, createSlice } from '@reduxjs/toolkit';\r\n\r\nimport type { IMenuSlice } from './types';\r\n\r\nconst menuSlice = createSlice({\r\n name: 'menu',\r\n initialState: {\r\n Menu: null,\r\n Fulfillment,\r\n MenuCalendar: null,\r\n Categories: null,\r\n requestParameters: { mode: '' },\r\n } as IMenuSlice,\r\n reducers: {\r\n setMenu: (state, action: PayloadAction) => {\r\n state.Menu = action.payload;\r\n state.Categories = action.payload.model.Menu.Categories;\r\n state.requestParameters = action.payload.requestParameters;\r\n },\r\n setFulfillment: (state, action: PayloadAction) => {\r\n state.Fulfillment = action.payload;\r\n },\r\n setMenuCalendar: (state, action: PayloadAction) => {\r\n state.MenuCalendar = action.payload;\r\n },\r\n setMealPeriods: (state, action) => {\r\n if (state.Menu) state.Menu.model.Menu.MenuPeriods = action.payload;\r\n },\r\n setSelectedPeriodId: (state, action) => {\r\n if (state.Menu) state.Menu.model.SelectedPeriodId = action.payload;\r\n },\r\n setCurrentCartItemsQuantity: (state, action) => {\r\n if (state.Menu) state.Menu.model.CurrentCartItemsQuantity = action.payload;\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder.addCase(fetchMenu.fulfilled, (state, { payload: { menu, mode } }) => {\r\n if (state.Menu) state.Menu.model = menu;\r\n state.Categories = menu.Menu.Categories;\r\n state.requestParameters.mode = mode;\r\n });\r\n },\r\n});\r\n\r\nexport const {\r\n setMenuCalendar,\r\n setMealPeriods,\r\n setSelectedPeriodId,\r\n setMenu,\r\n setFulfillment,\r\n setCurrentCartItemsQuantity,\r\n} = menuSlice.actions;\r\n\r\nexport const getLinkToLoginPageWithReturnUrl = createSelector(\r\n ({ menu }: MenuRootState) => menu.Menu?.model.LinkToLoginPageWithReturnUrl,\r\n (LinkToLoginPageWithReturnUrl) => LinkToLoginPageWithReturnUrl || '',\r\n);\r\nexport const getMenu = ({ menu }: MenuRootState): Nullable => menu?.Menu;\r\nexport const isHideProductsShortDescription = createSelector(\r\n [\r\n ({ menu }: MenuRootState) => {\r\n return { HideProductsShortDescription: menu.Menu?.model?.HideProductsShortDescription };\r\n },\r\n ],\r\n ({ HideProductsShortDescription }) => HideProductsShortDescription,\r\n);\r\nexport const getIsWeekly = createSelector(\r\n [\r\n ({ menu }: MenuRootState) => {\r\n return { IsWeekly: !!menu.Menu?.model?.IsWeekly };\r\n },\r\n ],\r\n ({ IsWeekly }) => IsWeekly,\r\n);\r\nexport const getCategories = createSelector(\r\n ({ menu }: MenuRootState) => menu?.Categories,\r\n (Categories) => Categories,\r\n);\r\nexport const getIsShowCategories = createSelector(\r\n ({ menu }: MenuRootState) => !!menu?.Menu?.model.Menu.ShowCategories,\r\n (ShowCategories) => ShowCategories,\r\n);\r\nexport const getMenuStations = createSelector(\r\n ({ menu }: MenuRootState) => menu?.Menu?.model.Menu.MenuStations,\r\n (MenuStations) => MenuStations || [],\r\n);\r\nexport const getSelectedPeriodId = createSelector(\r\n ({ menu }: MenuRootState) => menu?.Menu?.model.SelectedPeriodId,\r\n (SelectedPeriodId) => SelectedPeriodId,\r\n);\r\n\r\nexport const getMenuCalendar = createSelector(\r\n ({ menu }: MenuRootState) => menu?.MenuCalendar,\r\n (MenuCalendar) => MenuCalendar,\r\n);\r\n\r\nexport const getIsAvailableDatesFoodOrder = createSelector(\r\n getMenuCalendar,\r\n (MenuCalendar) =>\r\n !!MenuCalendar?.AvailableDatesFoodOrder && MenuCalendar?.AvailableDatesFoodOrder.length > 0,\r\n);\r\n\r\nexport const getFulfillment = ({ menu }: MenuRootState): FulfillmentType => menu.Fulfillment;\r\n\r\nexport default menuSlice.reducer;\r\n","import { fetchMenu } from '@/shared/api/menu';\r\nimport type { TProducts } from '@/shared/types/menu';\r\n\r\nimport { PayloadAction, createSlice } from '@reduxjs/toolkit';\r\n\r\nimport type { IProductsSlice, TTotalmeal } from './types';\r\n\r\nconst initialState: IProductsSlice = {\r\n list: [],\r\n TotalMeal: null,\r\n TotalMealIds: [],\r\n FavoriteProductIds: [],\r\n};\r\n\r\nconst productsSlice = createSlice({\r\n name: 'products',\r\n initialState,\r\n reducers: {\r\n setProducts: (state, action: PayloadAction) => {\r\n return {\r\n ...state,\r\n list: action.payload,\r\n };\r\n },\r\n setFavoriteProducts: (\r\n state,\r\n action: PayloadAction<{\r\n userFavoritiesEnabled: boolean;\r\n favoritesIds: string[];\r\n }>,\r\n ) => {\r\n const { userFavoritiesEnabled, favoritesIds } = action.payload;\r\n if (!userFavoritiesEnabled) return { ...state, FavoriteProducts: [] };\r\n return {\r\n ...state,\r\n FavoriteProductIds: favoritesIds,\r\n };\r\n },\r\n setTotalMealIds: (\r\n state,\r\n action: PayloadAction<\r\n Nullable<{\r\n MenuProductId: string;\r\n }>\r\n >,\r\n ) => {\r\n if (action.payload === null) {\r\n return {\r\n ...state,\r\n TotalMealIds: [],\r\n };\r\n }\r\n const { MenuProductId } = action.payload;\r\n const total = [...state.TotalMealIds];\r\n const ind = total.indexOf(MenuProductId);\r\n\r\n if (ind > -1) total.splice(ind, 1);\r\n else total.push(MenuProductId);\r\n\r\n return {\r\n ...state,\r\n TotalMealIds: total,\r\n };\r\n },\r\n setTotalMeal: (state, action: PayloadAction>) => {\r\n return {\r\n ...state,\r\n TotalMeal: action.payload,\r\n };\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder.addCase(fetchMenu.fulfilled, (state, { payload: { menu } }) => {\r\n state.list = menu.Menu.MenuProducts;\r\n\r\n if (menu.UserFavoritiesEnabled) {\r\n state.FavoriteProductIds = menu.Menu.MenuProducts.filter(\r\n (item) => item?.IsUserFavorite,\r\n ).map((item) => item?.MenuProductId);\r\n }\r\n });\r\n },\r\n});\r\nexport const { setProducts, setTotalMeal, setTotalMealIds, setFavoriteProducts } =\r\n productsSlice.actions;\r\nexport default productsSlice.reducer;\r\n","import {\r\n addOrRemoveFavoriteProduct,\r\n fetchFoodProductDetails,\r\n getDataForMealCalculator,\r\n} from '@/shared/api/menu';\r\nimport { setLoading } from '@/shared/services/loading';\r\nimport { NOTIFICATIONS, NotificationService } from '@/shared/services/notification';\r\n\r\nimport { setFavoriteProducts, setTotalMeal } from './slice';\r\nimport type { TActionAddOrRemoveFavoriteProduct, TActionFoodProductDetails } from './types';\r\n\r\nexport const GetMenuProductsByIds = (): MenuAppThunk => async (dispatch, getState) => {\r\n // TODO: подумать об анимации загрузки\r\n try {\r\n const response = await getDataForMealCalculator(getState().products.TotalMealIds);\r\n dispatch(setTotalMeal(response));\r\n } catch (error) {\r\n NotificationService.open({\r\n status: NOTIFICATIONS.ERROR,\r\n text: (error as Error).message,\r\n });\r\n }\r\n};\r\n\r\nexport const FoodProductDetails: TActionFoodProductDetails =\r\n ({ prod, root }, callback) =>\r\n async (dispatch, getState) => {\r\n dispatch(setLoading(true));\r\n const { locationId, mode, date, periodId } = getState().menu.requestParameters;\r\n\r\n try {\r\n const response = await fetchFoodProductDetails({\r\n locationId,\r\n mode,\r\n date,\r\n periodId,\r\n prod,\r\n root,\r\n });\r\n if (callback) callback(response);\r\n } catch (error) {\r\n NotificationService.open({\r\n status: NOTIFICATIONS.ERROR,\r\n text: (error as Error).message,\r\n });\r\n } finally {\r\n dispatch(setLoading(false));\r\n }\r\n };\r\n\r\nexport const AddOrRemoveFromFavorite: TActionAddOrRemoveFavoriteProduct =\r\n ({\r\n catalogId,\r\n productId,\r\n MenuProductId,\r\n storeIds,\r\n isRemoving,\r\n selectedPeriodId,\r\n customDate,\r\n callback,\r\n }) =>\r\n async (dispatch, getState) => {\r\n dispatch(setLoading(true));\r\n if (!getState().menu.Menu?.model.UserFavoritiesEnabled) return;\r\n const { locationId, mode, date, periodId } = getState().menu.requestParameters;\r\n\r\n try {\r\n const response = await addOrRemoveFavoriteProduct({\r\n locationId,\r\n mode,\r\n periodId: selectedPeriodId || periodId,\r\n date: customDate || date,\r\n catalogId,\r\n productId,\r\n MenuProductId,\r\n storeIds,\r\n isRemoving,\r\n });\r\n dispatch(setFavoriteProducts(response));\r\n\r\n if (callback) callback(response);\r\n } catch (error) {\r\n NotificationService.open({\r\n status: NOTIFICATIONS.ERROR,\r\n text: (error as Error).message,\r\n });\r\n } finally {\r\n dispatch(setLoading(false));\r\n }\r\n };\r\n","import sortBy from 'lodash/sortBy';\r\n\r\nimport type { TFiltersMenu } from '@/entities/menu/filter/type';\r\n\r\nimport type { TMenuStations, TProducts } from '@/shared/types/menu';\r\n\r\nexport const filterProducts = (filters: TFiltersMenu, products: TProducts): TProducts => {\r\n const { allergens, specialDiets } = filters;\r\n const activeAllergensFilters = allergens.filter((filter) => filter?.IsActive);\r\n const activeSpecialDietsFilters = specialDiets.filter((filter) => filter?.IsActive);\r\n if (activeAllergensFilters?.length <= 0 && activeSpecialDietsFilters?.length <= 0)\r\n return products;\r\n\r\n const filteredProducts = products.filter((product) => {\r\n const availableFilters = Object.entries(product?.Product?.AvailableFilters);\r\n\r\n // NOTE: true for an empty array.\r\n const isNotAllergen = !activeAllergensFilters.some((allergen) =>\r\n // Note: Since it is unknown whether the product has a property (it is null), we exclude it from the list (task 29086)\r\n availableFilters.some(([id, value]) => {\r\n const matchesId = allergen.Id === id || allergen.Name === id;\r\n return value === null || value === true ? matchesId : false;\r\n }),\r\n );\r\n // NOTE: true for an empty array.\r\n const isSpecialDiet = activeSpecialDietsFilters.every((diet) =>\r\n availableFilters.some(([id, value]) => value && diet.Id === id),\r\n );\r\n return isNotAllergen && isSpecialDiet;\r\n });\r\n\r\n return filteredProducts;\r\n};\r\n\r\nexport const activeStantions = (state: MenuRootState, isShowFavorite: boolean): TMenuStations => {\r\n const RecommendedForYou = {\r\n StationId: '1',\r\n };\r\n let stations = sortBy(\r\n state.menu.Menu?.model.Menu.MenuStations.filter(\r\n (station) => station.PeriodId === state.menu.Menu?.model?.SelectedPeriodId,\r\n ),\r\n (station) => station.StationRank,\r\n );\r\n\r\n const products = filterProducts(state.filters.filters, state.products.list);\r\n\r\n stations = stations.filter((station) => {\r\n const list = products.filter((product) => product.StationId === station.StationId);\r\n return list.length !== 0;\r\n });\r\n\r\n const isFavoriteProducts = products.some(({ MenuProductId }) =>\r\n state.products.FavoriteProductIds.includes(MenuProductId),\r\n );\r\n\r\n if (\r\n isShowFavorite &&\r\n state.menu.Menu?.model.UserFavoritiesEnabled &&\r\n state.products.FavoriteProductIds.length > 0 &&\r\n isFavoriteProducts\r\n ) {\r\n // @ts-expect-error: skip\r\n stations.unshift(RecommendedForYou);\r\n }\r\n\r\n return stations;\r\n};\r\n","import { sortBy, sortedUniqBy } from 'lodash/fp';\r\n\r\nimport { createSelector } from '@reduxjs/toolkit';\r\n\r\nimport { filterProducts } from '../utils';\r\nimport { TTotalmeal } from './types';\r\n\r\nexport const getIsProducts = createSelector(\r\n ({ products }: MenuRootState) => products.list,\r\n (products) => !!products.length,\r\n);\r\nexport const getTotalMealIds = ({ products }: MenuRootState): string[] => products?.TotalMealIds;\r\nexport const getTotalMeal = ({ products }: MenuRootState): Nullable =>\r\n products.TotalMeal;\r\n\r\nconst cacheMenuStations = createSelector(\r\n ({ menu }: MenuRootState) => menu.Menu?.model,\r\n (model) => ({\r\n MenuStations: model?.Menu.MenuStations,\r\n SelectedPeriodId: model?.SelectedPeriodId,\r\n }),\r\n);\r\n\r\nconst cacheProducts = createSelector(\r\n ({ products }: MenuRootState) => products,\r\n (products) => products.list,\r\n);\r\n\r\nexport const getActiveStantions = createSelector(\r\n cacheMenuStations,\r\n cacheProducts,\r\n ({ MenuStations, SelectedPeriodId }, products) => {\r\n const stations = sortBy(\r\n (station) => station.StationRank,\r\n MenuStations?.filter((station) => Number(station.PeriodId) === Number(SelectedPeriodId)),\r\n );\r\n\r\n return stations.filter((station) => {\r\n const filterList = products.filter((product) => product.StationId === station.StationId);\r\n return filterList.length !== 0;\r\n });\r\n },\r\n);\r\n\r\nexport const getFavoriteProductIds = ({ products }: MenuRootState): string[] =>\r\n products?.FavoriteProductIds;\r\n\r\nconst cacheFavoriteProductIds = createSelector(\r\n ({ products }: MenuRootState) => products,\r\n (products) => products.FavoriteProductIds,\r\n);\r\n\r\nexport const getFilterProducts = createSelector(\r\n [\r\n ({ filters, products }: MenuRootState) => {\r\n return { filters: filters.filters, products: products.list };\r\n },\r\n ],\r\n ({ filters, products }) => {\r\n return filterProducts(filters, products);\r\n },\r\n);\r\n\r\nexport const getFavoriteProducts = createSelector(\r\n cacheFavoriteProductIds,\r\n getFilterProducts,\r\n (FavoriteProductIds, products) => {\r\n const reorderList = products.filter((product) => product?.IsTopPurchased);\r\n const sortList = sortedUniqBy(\r\n 'MenuProductId',\r\n products.filter(\r\n ({ MenuProductId }) =>\r\n FavoriteProductIds.includes(MenuProductId) &&\r\n !reorderList.some((p) => p.MenuProductId === MenuProductId),\r\n ),\r\n );\r\n return [...reorderList, ...sortList];\r\n },\r\n);\r\n\r\nexport const getIsPaypalOnList = createSelector(\r\n [\r\n ({ products }: MenuRootState) => {\r\n return products.list;\r\n },\r\n ],\r\n (products) => {\r\n return products.some((product) => product.Product?.PayPalEnabled);\r\n },\r\n);\r\n","import format from 'date-fns/format';\r\n\r\nimport {\r\n GetPickUPTimes,\r\n GetPickUPTimesForTabs,\r\n MENU_CHECKOUT_BUTTON_STYLE_CLASS,\r\n setCurrentCartItemsQuantity,\r\n setFulfillment,\r\n} from '@/entities/menu';\r\nimport { setChoosenMeal, setOrderMenuDate } from '@/entities/menu/filter';\r\nimport { GoesWellWith } from '@/entities/menu/product';\r\n\r\nimport { addFoodProductToCart, fetchMenu } from '@/shared/api/menu';\r\nimport { ModalOrderAhead } from '@/shared/components/ModalOrderAhead';\r\nimport { FORMAT_DATE_TIME, FULFILLMENT_METHODS, MODE } from '@/shared/constants';\r\nimport { setLoading } from '@/shared/services/loading';\r\nimport { ModalService } from '@/shared/services/modal';\r\nimport { NOTIFICATIONS, NotificationService } from '@/shared/services/notification';\r\nimport { BasketPreiewAction } from '@/shared/utils/basketPreiew';\r\n\r\nimport type { TActionAddFoodProductToCart } from './types';\r\n\r\nexport const AddFoodProductToCart: TActionAddFoodProductToCart =\r\n (\r\n {\r\n Product,\r\n UserOrderingInfo,\r\n StoreId,\r\n Configuration,\r\n RecipientInstructions,\r\n PickupTimeIncrement,\r\n DeliveryLeadTimeFrame,\r\n DeliveryLeadTime,\r\n },\r\n callback,\r\n showWarningMsg,\r\n ) =>\r\n async (dispatch, getState) => {\r\n dispatch(setLoading(true));\r\n const { locationId, pageStoreId } = getState().menu.requestParameters;\r\n const fulfillment = getState().menu.Fulfillment;\r\n const {\r\n SelectedFulfillmentMethod,\r\n PickUpFulfillment,\r\n DeliveryFulfillment,\r\n mealType,\r\n PickUpLocation,\r\n PeriodId,\r\n SelectedDate,\r\n DeliveryLocation,\r\n } = fulfillment;\r\n const method =\r\n SelectedFulfillmentMethod === 'Pickup'\r\n ? {\r\n PickUpFulfillment: { ...PickUpFulfillment, RecipientInstructions, PickupTimeIncrement },\r\n }\r\n : { DeliveryFulfillment: { ...DeliveryFulfillment, RecipientInstructions } };\r\n const model = getState().menu.Menu?.model;\r\n const { PICK_UP, DELIVERY } = FULFILLMENT_METHODS;\r\n const payload = {\r\n RequestParameters: {\r\n Date: SelectedDate && format(new Date(SelectedDate), FORMAT_DATE_TIME.MMDDYYYY),\r\n LocationId: locationId,\r\n PeriodId: String(PeriodId),\r\n StoreId: pageStoreId || '',\r\n },\r\n SelectedDate,\r\n Product,\r\n UserOrderingInfo,\r\n LocationId: locationId,\r\n StoreId,\r\n PeriodId,\r\n Configuration,\r\n mealType,\r\n SelectedFulfillmentMethod,\r\n PickUpLocation,\r\n DeliveryLocation,\r\n DeliveryLeadTimeFrame,\r\n DeliveryLeadTime,\r\n ...method,\r\n };\r\n try {\r\n const response = await addFoodProductToCart(payload);\r\n const { Errors, isSlotExpired, crossSellProducts, showErrorInModal, msg } = response;\r\n if (showErrorInModal) {\r\n showWarningMsg(msg);\r\n return;\r\n }\r\n\r\n if (isSlotExpired) {\r\n const fulfillmentMethod =\r\n SelectedFulfillmentMethod === PICK_UP.name ? PICK_UP.const : DELIVERY.const;\r\n callback();\r\n dispatch(\r\n GetPickUPTimesForTabs({\r\n mode: MODE.FOOD_ORDER,\r\n periodId: PeriodId,\r\n fulfillmentMethod,\r\n callback: (defaultPickUPTimes) => {\r\n ModalService.open(ModalOrderAhead, {\r\n OnlyShowCurrentDaysOnlineOrdering: !!model?.OnlyShowCurrentDaysOnlineOrdering,\r\n OnlyAllowFutureDaysOnlineOrdering: !!model?.OnlyAllowFutureDaysOnlineOrdering,\r\n isPickUpTab: !!model?.FulfillmentPickup,\r\n isDeliveryTab: !!model?.FulfillmentDelivery,\r\n defaultPickUPTimes,\r\n fulfillment,\r\n setFulfillment: (v) => dispatch(setFulfillment(v)),\r\n setOrderMenuDate: (v) => dispatch(setOrderMenuDate(v)),\r\n orderMenuDate: getState().filters.orderMenuDate,\r\n setChoosenMeal: (v) => dispatch(setChoosenMeal(v)),\r\n mode: MODE.FOOD_ORDER,\r\n isSlotExpired: response.isSlotExpired,\r\n msgForSlotExpired: response.msg,\r\n menuCalendar: getState().menu.MenuCalendar,\r\n selectedTabIndex: fulfillmentMethod,\r\n handlePickUpTimes: (v) => dispatch(GetPickUPTimes(v)),\r\n handleFetchMenu: (v) => dispatch(fetchMenu(v)),\r\n });\r\n },\r\n }),\r\n );\r\n\r\n return;\r\n }\r\n\r\n if (Array.isArray(Errors) && Errors.length > 0) {\r\n Errors.forEach((errorMsg) => {\r\n NotificationService.open({\r\n status: NOTIFICATIONS.ERROR,\r\n text: errorMsg,\r\n });\r\n });\r\n return;\r\n }\r\n\r\n callback();\r\n\r\n dispatch(setCurrentCartItemsQuantity(response.currentCartItemsQuantity ?? null));\r\n await BasketPreiewAction();\r\n\r\n if (Array.isArray(crossSellProducts) && crossSellProducts.length > 0) {\r\n ModalService.open(GoesWellWith, {\r\n products: response.crossSellProducts,\r\n });\r\n } else\r\n setTimeout(() => {\r\n const cartButton = document.querySelector(\r\n `.${MENU_CHECKOUT_BUTTON_STYLE_CLASS}`,\r\n );\r\n cartButton?.focus();\r\n }, 100);\r\n } catch (error) {\r\n NotificationService.open({\r\n status: NOTIFICATIONS.ERROR,\r\n text: (error as Error).message,\r\n });\r\n } finally {\r\n dispatch(setLoading(false));\r\n }\r\n };\r\n","var _g;\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 SvgMealCalculatorDone = function SvgMealCalculatorDone(_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, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: 3,\n y: 3,\n width: 12,\n height: 4,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 2.97,\n y: 9,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 7.5,\n y: 9,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 7.5,\n y: 13,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 7.5,\n y: 17,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 11.5,\n y: 9,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 2.97,\n y: 13,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 2.97,\n y: 17,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.26,22H2a1,1,0,0,1-1-1V2A1,1,0,0,1,2,1H16a1,1,0,0,1,1,1v9.08A7,7,0,0,1,18,11V2a2,2,0,0,0-2-2H2A2,2,0,0,0,0,2V21a2,2,0,0,0,2,2H13.11A7,7,0,0,1,12.26,22Z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18,12a6,6,0,1,0,6,6A6,6,0,0,0,18,12Zm-.85,8.83L14.32,18l1.13-1.13,1.7,1.7,3.39-3.39,1.13,1.13Z\"\n })))));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgMealCalculatorDone);\nexport default ForwardRef;","var _g;\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 SvgMealCalculatorPlus = function SvgMealCalculatorPlus(_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, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: 3,\n y: 3,\n width: 12,\n height: 4,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 2.97,\n y: 9,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 7.5,\n y: 9,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 7.5,\n y: 13,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 7.5,\n y: 17,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 11.5,\n y: 9,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 2.97,\n y: 13,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 2.97,\n y: 17,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.26,22H2a1,1,0,0,1-1-1V2A1,1,0,0,1,2,1H16a1,1,0,0,1,1,1v9.08A7,7,0,0,1,18,11V2a2,2,0,0,0-2-2H2A2,2,0,0,0,0,2V21a2,2,0,0,0,2,2H13.11A7,7,0,0,1,12.26,22Z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18,12a6,6,0,1,0,6,6A6,6,0,0,0,18,12Zm4,7H19v3H17V19H14V17h3V14h2v3h3Z\"\n })))));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgMealCalculatorPlus);\nexport default ForwardRef;","var _g;\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 SvgCart = function SvgCart(_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, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h24v24H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49A1.003 1.003 0 0 0 20 4H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z\",\n fill: \"#FFF\",\n fillRule: \"nonzero\"\n }))));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgCart);\nexport default ForwardRef;","import styled, { css } from 'styled-components';\r\n\r\nimport { ProductCardComponent } from '@/shared/components/ProductCard/parts';\r\nimport type { IMenuTheme } from '@/shared/themes/types';\r\n\r\nexport const WrapperGoesWellWith = styled.div`\r\n ${({ theme }: { theme: IMenuTheme }) => css`\r\n display: grid;\r\n grid-gap: 31px;\r\n margin: 16px 10px 32px 10px;\r\n width: fit-content;\r\n\r\n ${theme.media.tablet} {\r\n min-width: 360px;\r\n margin: 16px auto 32px auto;\r\n }\r\n\r\n ${ProductCardComponent} {\r\n ${theme.media.tablet} {\r\n min-width: 360px;\r\n }\r\n ${theme.media.phone} {\r\n min-width: 318px;\r\n }\r\n }\r\n `}\r\n`;\r\n\r\nexport const ButtonMealCalc = styled.button`\r\n border: 0;\r\n margin: 0 4px 0 0;\r\n padding: 0px;\r\n height: 24px;\r\n width: 24px;\r\n background: content-box;\r\n cursor: pointer;\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","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { useAppDispatch, useAppSelector } from '@/shared/hooks/appRedux';\r\nimport { srSpeak } from '@/shared/utils/srSpeak';\r\n\r\nimport { GetMenuProductsByIds, getTotalMealIds, setTotalMealIds } from '../../../model';\r\nimport MealCalculatorDoneSVG from '../icons/mealCalculatorDone.svg';\r\nimport MealCalculatorPlusSVG from '../icons/mealCalculatorPlus.svg';\r\nimport { ButtonMealCalc } from '../parts';\r\n\r\ninterface IProps {\r\n menuProductId: string;\r\n marketingName: Nullable;\r\n 'data-testid'?: string;\r\n}\r\nexport const ButtonMealCalculator: React.FC = ({\r\n menuProductId,\r\n marketingName,\r\n 'data-testid': dataTestId = 'button-meal-calculator',\r\n}) => {\r\n const isProductInTotalMeal = useAppSelector(getTotalMealIds).includes(menuProductId);\r\n const dispatch = useAppDispatch();\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n add: formatMessage({ id: 'AddTo' }, { 0: marketingName }),\r\n remove: formatMessage({ id: 'RemoveFrom' }, { 0: marketingName }),\r\n ariaLabel: formatMessage({ id: 'Global.ProductCard.MealCalculatorButton.AraaLabel' }),\r\n };\r\n\r\n const handlerClick = (): void => {\r\n srSpeak(!isProductInTotalMeal ? messages.remove : messages.add);\r\n\r\n dispatch(setTotalMealIds({ MenuProductId: menuProductId }));\r\n dispatch(GetMenuProductsByIds());\r\n };\r\n\r\n const ariaDescribedby = `AriaDescribedbyMealCalculator_${menuProductId}`;\r\n return (\r\n \r\n \r\n {!isProductInTotalMeal ? messages.add : messages.remove}\r\n \r\n {!isProductInTotalMeal ? (\r\n \r\n ) : (\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 { useAppSelector } from '@/shared/hooks/appRedux';\r\n\r\nimport { getTotalMealIds } from '../../../model';\r\nimport { CalcMsgStyled } from '../parts';\r\nimport { ButtonMealCalculator } from './ButtonMealCalculator';\r\n\r\ninterface IProps {\r\n menuProductId: string;\r\n marketingName: Nullable;\r\n}\r\n\r\nexport const MealCalcNutrition: React.FC = ({ menuProductId, marketingName }) => {\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n addCalc: formatMessage({ id: 'AddTo' }, { 0: '' }).replace(' ', ' '),\r\n removeCalc: formatMessage({ id: 'RemoveFrom' }, { 0: '' }).replace(' ', ' '),\r\n };\r\n\r\n const isProductInTotalMeal = useAppSelector(getTotalMealIds).includes(menuProductId);\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\nimport styled from 'styled-components';\r\n\r\nimport { getLinkToLoginPageWithReturnUrl } from '@/entities/menu';\r\n\r\nimport { ButtonLink, ButtonSecond } from '@/shared/components/Button';\r\nimport { useAppSelector } from '@/shared/hooks/appRedux';\r\nimport { ModalOne } from '@/shared/services/modal';\r\nimport type { TPortalModalComponent } from '@/shared/services/modal/type';\r\n\r\ninterface IProps {\r\n marketingName: Nullable;\r\n}\r\nconst Content = styled.div`\r\n margin: 8px 32px 14px;\r\n font-size: 16px;\r\n color: #000;\r\n`;\r\n\r\nexport const AddFavorite: TPortalModalComponent = ({ marketingName, close }) => {\r\n const linkToLoginPageWithReturnUrl = useAppSelector(getLinkToLoginPageWithReturnUrl);\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n addToFavoriteModalBody: formatMessage({ id: 'AddToFavoriteModalBody' }),\r\n skip: formatMessage({ id: 'Skip' }),\r\n signIn: formatMessage({ id: 'SignIn' }),\r\n added: formatMessage({ id: 'Added' }),\r\n };\r\n\r\n const footer = (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n return (\r\n \r\n }\r\n handlerClose={close}\r\n footer={footer}\r\n isFocusOnCloseButton\r\n >\r\n \r\n \r\n );\r\n};\r\n","import React, { useCallback } from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { getFulfillment, getMenu, isHideProductsShortDescription } from '@/entities/menu';\r\nimport { AddFoodProductToCart } from '@/entities/menu/order';\r\n\r\nimport { ProductCard } from '@/shared/components/ProductCard';\r\nimport { ModalProduct, Nutrition } from '@/shared/components/ProductDetails';\r\nimport { useAppDispatch, useAppSelector } from '@/shared/hooks/appRedux';\r\nimport { ModalService } from '@/shared/services/modal';\r\nimport type { TProduct } from '@/shared/types/menu';\r\nimport { hasValue } from '@/shared/utils/validation';\r\n\r\nimport {\r\n AddOrRemoveFromFavorite,\r\n FoodProductDetails,\r\n getFavoriteProductIds,\r\n getTotalMealIds,\r\n} from '../../model';\r\nimport { ButtonMealCalculator } from './blocks/ButtonMealCalculator';\r\nimport { MealCalcNutrition } from './blocks/MealCalcNutrition';\r\nimport { AddFavorite } from './modals/AddFavorite';\r\n\r\ninterface IProps {\r\n product: TProduct;\r\n margin?: string;\r\n}\r\nconst ProductTile: React.FC = ({ product, margin }) => {\r\n const menuModel = useAppSelector(getMenu)!.model;\r\n const isProductInTotalMeal = useAppSelector(getTotalMealIds).includes(product?.MenuProductId);\r\n const isFavorite = useAppSelector(getFavoriteProductIds).includes(product?.MenuProductId);\r\n const hideProductsShortDescription = useAppSelector(isHideProductsShortDescription);\r\n const fulfillment = useAppSelector(getFulfillment);\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n addCart: formatMessage({ id: 'AddCart' }),\r\n };\r\n const dispatch = useAppDispatch();\r\n\r\n // TODO: подумать о переносе\r\n const isProductCalories = !menuModel.HideProductsCalorie && hasValue(product?.Product?.Calories);\r\n // TODO: подумать о переносе\r\n const isOpenNutritionalInformation =\r\n !menuModel.HideProductsNutritional &&\r\n !product?.Product?.IsBulkProduct &&\r\n product?.Product?.HasNutritionalInformation &&\r\n isProductCalories;\r\n\r\n const canSelectProduct =\r\n menuModel.OnlyAllowFutureDaysOnlineOrdering && !menuModel.OnlyShowCurrentDaysOnlineOrdering\r\n ? menuModel.IsCheckoutAndCartEnabled &&\r\n !!menuModel.Date &&\r\n new Date(menuModel.Date) > new Date()\r\n : menuModel.IsCheckoutAndCartEnabled;\r\n\r\n const isOrderAllowed =\r\n menuModel.IsFoodOrder && canSelectProduct && product?.HasDeliverySlotInSchedule;\r\n\r\n const handleAddToFavorites = useCallback((): void => {\r\n dispatch(\r\n AddOrRemoveFromFavorite({\r\n productId: product.ProductId,\r\n catalogId: product.CatalogId,\r\n storeIds: '',\r\n isRemoving: isFavorite,\r\n MenuProductId: product.MenuProductId,\r\n selectedPeriodId: menuModel.SelectedPeriodId || '',\r\n customDate: menuModel.Date || '',\r\n callback: (data) => {\r\n if (!isFavorite && data && data.unauthorized)\r\n ModalService.open(AddFavorite, {\r\n marketingName: product?.Product?.MarketingName,\r\n });\r\n },\r\n }),\r\n );\r\n }, [\r\n dispatch,\r\n isFavorite,\r\n menuModel.Date,\r\n menuModel.SelectedPeriodId,\r\n product.CatalogId,\r\n product.MenuProductId,\r\n product?.Product?.MarketingName,\r\n product.ProductId,\r\n ]);\r\n\r\n const handleClickAddToCart = useCallback(\r\n (updateData, close, setShowWarningMsg): void => {\r\n dispatch(AddFoodProductToCart(updateData, close, setShowWarningMsg));\r\n if (window?.gaGtag) {\r\n const productDataForEvent = {\r\n item_id: product?.Product?.ProductId,\r\n item_name: product?.Product?.MarketingName || product?.Product?.DisplayName,\r\n item_category: product?.Product?.Categories?.[0].CategoryId ?? '',\r\n price: product?.Product?.CurrentPrice,\r\n quantity: updateData.UserOrderingInfo.SelectedProductQuantity,\r\n };\r\n window.gaGtag.addProductToCart(productDataForEvent);\r\n window.gaGtag.uxClickEvent('add to cart');\r\n }\r\n },\r\n [\r\n dispatch,\r\n product?.Product?.Categories,\r\n product?.Product?.CurrentPrice,\r\n product?.Product?.DisplayName,\r\n product?.Product?.MarketingName,\r\n product?.Product?.ProductId,\r\n ],\r\n );\r\n\r\n const handleOpenFoodProductDetails = useCallback((): void => {\r\n dispatch(\r\n FoodProductDetails(\r\n {\r\n prod: product?.ProductId,\r\n root: product?.CatalogId,\r\n },\r\n (productDetailsWithModifiers) =>\r\n ModalService.open(ModalProduct, {\r\n product: product.Product,\r\n productDetailsWithModifiers,\r\n isOrderAllowed,\r\n isOpenNutritionalInformation,\r\n hideProductsShortDescription,\r\n fulfillment,\r\n handlerFooter: handleClickAddToCart,\r\n nutritionComponent: (\r\n \r\n }\r\n />\r\n ),\r\n allowGA: true,\r\n nameButton: messages.addCart,\r\n shouldReturnFocusAfterClose: false,\r\n }),\r\n ),\r\n );\r\n }, [\r\n dispatch,\r\n fulfillment,\r\n handleClickAddToCart,\r\n hideProductsShortDescription,\r\n isOpenNutritionalInformation,\r\n isOrderAllowed,\r\n messages.addCart,\r\n product?.CatalogId,\r\n product.MenuProductId,\r\n product.Product,\r\n product?.ProductId,\r\n ]);\r\n\r\n return (\r\n \r\n ),\r\n margin,\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default ProductTile;\r\n","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { Button } from '@/shared/components/Button';\r\nimport { ModalOne } from '@/shared/services/modal';\r\nimport type { TPortalModalComponent } from '@/shared/services/modal/type';\r\nimport type { TProducts } from '@/shared/types/menu';\r\n\r\nimport ProductTile from '../ProductTile';\r\nimport { WrapperGoesWellWith } from '../parts';\r\n\r\ninterface IProps {\r\n products: TProducts;\r\n}\r\n\r\nconst GoesWellWith: TPortalModalComponent = ({ products, close }) => {\r\n const { formatMessage } = useIntl();\r\n const messages = {\r\n title: formatMessage({ id: 'Menus.Modals.GoesWellWith.Title' }),\r\n button: formatMessage({ id: 'Menus.Modals.GoesWellWith.Button.Title' }),\r\n };\r\n\r\n const MAX_NUMBER_OF_DISPLAYED = 3;\r\n const list = products.slice(0, MAX_NUMBER_OF_DISPLAYED);\r\n const productList = list.map((product) => {\r\n return ;\r\n });\r\n return (\r\n }\r\n handlerClose={close}\r\n footer={\r\n \r\n \r\n \r\n }\r\n isFocusOnCloseButton\r\n >\r\n {productList}\r\n \r\n );\r\n};\r\n\r\nexport default GoesWellWith;\r\n","import format from 'date-fns/format';\r\n\r\nimport { activeStantions } from '@/entities/menu/product';\r\n\r\nimport { FORMAT_DATE_TIME, MODE } from '@/shared/constants';\r\nimport type { TMenuInitialData, TMenuStations } from '@/shared/types/menu';\r\nimport { getWeeks } from '@/shared/utils/parseDate';\r\n\r\nimport { PayloadAction, createSlice } from '@reduxjs/toolkit';\r\n\r\nimport type { IFiltersSlice } from '../type';\r\n\r\nconst weeks = getWeeks();\r\n\r\nconst initialState: IFiltersSlice = {\r\n choosenMeal: null,\r\n choosenView: MODE.DAILY,\r\n dailyMenuDate: null,\r\n orderMenuDate: null,\r\n weeklyMenuStartDate: weeks[0].startOfWeek,\r\n weeklyMenuEndDate: weeks[0].endOfWeek,\r\n filters: {\r\n allergens: [],\r\n specialDiets: [],\r\n },\r\n searchText: '',\r\n};\r\nconst filterSlice = createSlice({\r\n name: 'filters',\r\n initialState,\r\n reducers: {\r\n setFilters: (state, action: PayloadAction) => {\r\n state.choosenMeal = {\r\n name: action.payload.model.Menu.MenuPeriods.filter(\r\n (p) => p.PeriodId === action.payload.model.SelectedPeriodId,\r\n )[0]?.Name,\r\n id: action.payload.model.SelectedPeriodId\r\n ? Number(action.payload.model.SelectedPeriodId)\r\n : null,\r\n };\r\n state.dailyMenuDate = format(new Date(), FORMAT_DATE_TIME.MMDDYYYY);\r\n state.orderMenuDate = format(new Date(), FORMAT_DATE_TIME.MMDDYYYY);\r\n state.choosenView = action.payload.defaultMode as MODE;\r\n state.filters = {\r\n allergens: action.payload.model.Menu.Allergens,\r\n specialDiets: action.payload.model.Menu.SpecialDiets,\r\n };\r\n },\r\n setChoosenMeal: (state, action: PayloadAction) => {\r\n state.choosenMeal = action.payload;\r\n },\r\n setChoosenView: (state, action: PayloadAction) => {\r\n state.choosenView = action.payload;\r\n },\r\n setDailyMenuDate: (state, action: PayloadAction) => {\r\n state.dailyMenuDate = action.payload\r\n ? format(new Date(action.payload), FORMAT_DATE_TIME.MMDDYYYY)\r\n : null;\r\n },\r\n setOrderMenuDate: (state, action: PayloadAction) => {\r\n state.orderMenuDate = action.payload\r\n ? format(new Date(action.payload), FORMAT_DATE_TIME.MMDDYYYY)\r\n : null;\r\n },\r\n setWeeklyMenuStartDate: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n state.weeklyMenuStartDate = action.payload;\r\n },\r\n setWeeklyMenuEndDate: (state, action: PayloadAction) => {\r\n state.weeklyMenuEndDate = action.payload;\r\n },\r\n setFrontFilters: (state, action: PayloadAction) => {\r\n state.filters = action.payload;\r\n },\r\n setSearchText: (state, action: PayloadAction) => {\r\n state.searchText = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const {\r\n setFilters,\r\n setChoosenMeal,\r\n setChoosenView,\r\n setDailyMenuDate,\r\n setOrderMenuDate,\r\n setWeeklyMenuStartDate,\r\n setWeeklyMenuEndDate,\r\n setSearchText,\r\n} = filterSlice.actions;\r\n\r\nexport const { setFrontFilters } = filterSlice.actions;\r\n\r\nexport const getActiveStantionsForFilter = (state: MenuRootState): TMenuStations =>\r\n activeStantions(state, true);\r\n\r\nexport const getChoosenMeal = ({ filters }: MenuRootState): IFiltersSlice['choosenMeal'] =>\r\n filters.choosenMeal;\r\nexport const getChoosenView = ({ filters }: MenuRootState): IFiltersSlice['choosenView'] =>\r\n filters.choosenView;\r\nexport const getDailyMenuDate = ({ filters }: MenuRootState): IFiltersSlice['dailyMenuDate'] =>\r\n filters.dailyMenuDate;\r\nexport const getOrderMenuDate = ({ filters }: MenuRootState): IFiltersSlice['orderMenuDate'] =>\r\n filters.orderMenuDate;\r\nexport const getWeeklyMenuStartDate = ({\r\n filters,\r\n}: MenuRootState): IFiltersSlice['weeklyMenuStartDate'] => filters.weeklyMenuStartDate;\r\nexport const getWeeklyMenuEndDate = ({\r\n filters,\r\n}: MenuRootState): IFiltersSlice['weeklyMenuEndDate'] => filters.weeklyMenuEndDate;\r\nexport const getFilters = ({ filters }: MenuRootState): IFiltersSlice['filters'] => filters.filters;\r\nexport const getSearchText = ({ filters }: MenuRootState): IFiltersSlice['searchText'] =>\r\n filters.searchText;\r\n\r\nexport default filterSlice.reducer;\r\n","import format from 'date-fns/format';\r\n\r\nimport { setChoosenMeal, setOrderMenuDate } from '@/entities/menu/filter';\r\n\r\nimport { getMenuCalendar, getMenuPeriods, getPickUPTimes } from '@/shared/api/menu';\r\nimport { FORMAT_DATE_TIME } from '@/shared/constants';\r\nimport { setLoading } from '@/shared/services/loading';\r\nimport { NOTIFICATIONS, NotificationService } from '@/shared/services/notification';\r\nimport { handleAvailableDates } from '@/shared/utils/handleAvailableDates';\r\n\r\nimport { setMealPeriods, setMenuCalendar, setSelectedPeriodId } from './slice';\r\nimport type {\r\n TActionGetMenuCalendar,\r\n TActionGetMenuPeriods,\r\n TActionGetPickUPTimes,\r\n TActionGetPickUPTimesForTabs,\r\n} from './types';\r\n\r\nexport const INDEX_OF_TOMORROW_DATE = 1;\r\n\r\nexport const GetMenuCalendar: TActionGetMenuCalendar =\r\n (locationId, storeIds) => async (dispatch, getState) => {\r\n dispatch(setLoading(true));\r\n\r\n const OnlyAllowFutureDaysOnlineOrdering =\r\n !!getState().menu?.Menu?.model?.OnlyAllowFutureDaysOnlineOrdering;\r\n\r\n try {\r\n const response = await getMenuCalendar({ locationId, storeIds });\r\n const newData = handleAvailableDates(response);\r\n\r\n dispatch(setMenuCalendar(newData));\r\n\r\n if (newData?.AvailableDatesFoodOrder?.length > 1 && OnlyAllowFutureDaysOnlineOrdering) {\r\n const date = new Date(\r\n newData?.AvailableDatesFoodOrder[INDEX_OF_TOMORROW_DATE],\r\n ).toDateString();\r\n dispatch(setOrderMenuDate(date));\r\n }\r\n } catch (error) {\r\n NotificationService.open({\r\n status: NOTIFICATIONS.ERROR,\r\n text: (error as Error).message,\r\n });\r\n } finally {\r\n dispatch(setLoading(false));\r\n }\r\n };\r\n\r\nexport const GetMenuPeriods: TActionGetMenuPeriods =\r\n (storeId, date, mode, callback) => async (dispatch, getState) => {\r\n const { locationId } = getState().menu.requestParameters;\r\n dispatch(setLoading(true));\r\n\r\n try {\r\n const response = await getMenuPeriods({ locationId, storeId, date, mode });\r\n dispatch(setSelectedPeriodId(response.SelectedMealPeriodId));\r\n dispatch(\r\n setMealPeriods(\r\n response.Result.map((period) => {\r\n return { PeriodId: `${period.PeriodId}`, Name: period.PeriodName };\r\n }),\r\n ),\r\n );\r\n dispatch(\r\n setChoosenMeal({\r\n name:\r\n response.Result.find((period) => period.PeriodId === response.SelectedMealPeriodId)\r\n ?.PeriodName || null,\r\n id: response.SelectedMealPeriodId,\r\n }),\r\n );\r\n callback?.();\r\n } catch (error) {\r\n NotificationService.open({\r\n status: NOTIFICATIONS.ERROR,\r\n text: (error as Error).message,\r\n });\r\n } finally {\r\n dispatch(setLoading(false));\r\n }\r\n };\r\n\r\nexport const GetPickUPTimesForTabs: TActionGetPickUPTimesForTabs =\r\n ({ mode, periodId, fulfillmentMethod, callback }) =>\r\n async (dispatch, getState) => {\r\n dispatch(setLoading(true));\r\n const { locationId, pageStoreId, storeIds } = getState().menu.requestParameters;\r\n const OnlyAllowFutureDaysOnlineOrdering =\r\n !!getState().menu?.Menu?.model?.OnlyAllowFutureDaysOnlineOrdering;\r\n\r\n const {\r\n menu: { MenuCalendar },\r\n filters: { orderMenuDate },\r\n } = getState();\r\n const AvailableDatesFoodOrder = MenuCalendar?.AvailableDatesFoodOrder;\r\n let date: Nullable = orderMenuDate;\r\n if (\r\n AvailableDatesFoodOrder &&\r\n AvailableDatesFoodOrder?.length > 1 &&\r\n OnlyAllowFutureDaysOnlineOrdering\r\n ) {\r\n date = format(\r\n new Date(AvailableDatesFoodOrder[INDEX_OF_TOMORROW_DATE]),\r\n FORMAT_DATE_TIME.MMDDYYYY,\r\n );\r\n }\r\n\r\n try {\r\n const fulfillment = typeof fulfillmentMethod === 'number' ? fulfillmentMethod : null;\r\n const response = await getPickUPTimes({\r\n locationId,\r\n storeIds,\r\n date,\r\n fulfillment,\r\n mode,\r\n pageStoreId,\r\n periodId,\r\n });\r\n if (callback) callback(response.Result);\r\n } catch (error) {\r\n NotificationService.open({\r\n status: NOTIFICATIONS.ERROR,\r\n text: (error as Error).message,\r\n });\r\n } finally {\r\n dispatch(setLoading(false));\r\n }\r\n };\r\n\r\nexport const GetPickUPTimes: TActionGetPickUPTimes =\r\n ({ mode, date, periodId, fulfillmentMethod, callback, handleTurnOffLoading }) =>\r\n async (_, getState) => {\r\n // TODO: проверить что все работает без доп диспачей\r\n const { locationId, pageStoreId, storeIds } = getState().menu.requestParameters;\r\n try {\r\n const fulfillment = typeof fulfillmentMethod === 'number' ? fulfillmentMethod : null;\r\n const response = await getPickUPTimes({\r\n locationId,\r\n storeIds,\r\n date,\r\n fulfillment,\r\n mode,\r\n pageStoreId,\r\n periodId,\r\n });\r\n\r\n if (callback) callback(response.Result);\r\n } catch (error) {\r\n NotificationService.open({\r\n status: NOTIFICATIONS.ERROR,\r\n text: (error as Error).message,\r\n });\r\n } finally {\r\n handleTurnOffLoading();\r\n }\r\n };\r\n","export const DISPLAY_DEEMPHASIZED_TYPES = {\r\n /// Expand de-emphasised items on the website for all stations (Current State)\r\n ExpandAll: 1,\r\n /// Collapse de-emphasised items on the website for all stations\r\n CollapseAll: 2,\r\n /// Collapse de-emphasised items on the website for specific stations (stores)\r\n CollapseSelected: 3,\r\n /// Hide de-emphasised items on the website\r\n Hide: 4,\r\n};\r\n\r\nexport const WRAPPER_TABS = 'wrapper-tabs__id';\r\n\r\nexport enum PRE_SELECTED {\r\n DAILY_MEAL_MENU_DATE = 'preSelectedMenuDate',\r\n DAILY_MEAL_MEAL = 'preSelectedMeal',\r\n DAILY_MEAL_VIEW = 'preSelectedView',\r\n DAILY_MEAL_START_DATE = 'preSelectedStartDate',\r\n DAILY_MEAL_END_DATE = 'preSelectedEndDate',\r\n}\r\n\r\nexport const FILTERS_TYPES = {\r\n ALLERGENS: 'Allergens',\r\n SPECIAL_DIETS: 'SpecialDiets',\r\n ALLERGENS_SPECIAL_DIETS: 'AllergensSpecialDiets',\r\n};\r\n\r\nexport const MENU_CHECKOUT_BUTTON_STYLE_CLASS = 'react-menu_checkout-button';\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport { ButtonText } from '@/shared/components/Button';\r\nimport type { IMenuTheme } from '@/shared/themes/types';\r\n\r\nexport const MenuItemsDiv = styled.div<{ margin?: string }>`\r\n ${({ theme, margin }: { theme: IMenuTheme; margin?: string }) => css`\r\n padding: 0;\r\n margin-left: 16px;\r\n\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n height: inherit;\r\n justify-content: center;\r\n margin: ${margin || '0'};\r\n padding: 0px;\r\n gap: ${theme.gapBetweenCards}px;\r\n\r\n &:last-child {\r\n margin: ${margin && '0'};\r\n }\r\n\r\n ${theme.media.tablet} {\r\n justify-content: start;\r\n gap: 18px;\r\n }\r\n\r\n ${theme.media.desktop} {\r\n justify-content: start;\r\n gap: ${theme.gapBetweenCardsForLg}px;\r\n }\r\n\r\n ${theme.media.largeDesktop} {\r\n gap: ${theme.gapBetweenCards}px;\r\n }\r\n `}\r\n`;\r\n\r\nexport const MenuUl = styled.ul`\r\n height: inherit;\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n`;\r\n\r\nexport const MenuCategory = styled.div`\r\n ${({ theme, hide }: { theme: IMenuTheme; hide?: boolean }) => css`\r\n z-index: 0;\r\n display: ${hide ? 'none' : 'flex'};\r\n flex-direction: column;\r\n gap: ${theme.gapBetweenCards}px;\r\n `}\r\n`;\r\nexport const NoProduct = styled.p`\r\n display: ${({ isShow }: { isShow: boolean }) => (isShow ? 'block' : 'none')};\r\n text-align: center;\r\n width: 100%;\r\n`;\r\n\r\nexport const Disclaimer = styled.span`\r\n margin: 0 0 16px 0;\r\n display: inline-block;\r\n`;\r\n\r\nexport const MenuAddOns = styled.div`\r\n display: ${({ hide }: { hide?: boolean }) => (hide ? 'none' : 'block')};\r\n padding-top: 16px;\r\n`;\r\n\r\nexport const CollapseDeemphasizedButton = styled(ButtonText)`\r\n margin: 24px 0 0 0;\r\n font-size: ${({ toPrint }: { toPrint?: boolean }) => (toPrint ? '10px' : '18px')};\r\n font-weight: normal;\r\n`;\r\n\r\nexport const CategoryName = styled.h2`\r\n line-height: 22px;\r\n margin: 8px 0 0 0 !important;\r\n font-weight: 600;\r\n font-size: ${({ toPrint }: { toPrint?: boolean }) => (toPrint ? '12px' : '18px')};\r\n color: #555;\r\n padding: 0.33em 0.75em;\r\n display: block;\r\n`;\r\n\r\nexport const MenuParentCategory = styled.div`\r\n display: block;\r\n`;\r\n\r\nexport const MenuStation = styled.div`\r\n width: 100%;\r\n display: block;\r\n`;\r\n\r\nexport const MenuWrapperDaily = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n justify-content: flex-start;\r\n gap: 32px;\r\n`;\r\n\r\nexport const MenuDaily = styled.div`\r\n width: 100%;\r\n outline: none;\r\n order: 1;\r\n`;\r\n\r\nexport const MenuContainer = styled.div`\r\n padding: 0;\r\n margin-top: 33px;\r\n @media (max-width: 767px) {\r\n margin-top: 80px;\r\n }\r\n`;\r\n\r\nexport const StationDescription = styled.div`\r\n ${({ theme }: { theme: IMenuTheme }) => css`\r\n flex: 1;\r\n font-size: 16px;\r\n font-weight: normal;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: 1.5;\r\n letter-spacing: normal;\r\n color: #000000;\r\n\r\n ${theme.media.tablet} {\r\n }\r\n\r\n ${theme.media.desktop} {\r\n flex: 0 0\r\n ${theme.percentForNCards(2, 3, theme.cardWidthFromMdToLg, theme.gapBetweenCardsForLg)}%;\r\n }\r\n\r\n ${theme.media.largeDesktop} {\r\n flex: 0 0 ${theme.percentForNCards(2)}%;\r\n }\r\n `}\r\n`;\r\n\r\nexport const StationHeaderTitle = styled.h2`\r\n padding: 0 0.5em;\r\n padding-left: 0px;\r\n margin: 0 !important;\r\n font-weight: 600;\r\n font-size: ${({ toPrint }: { toPrint?: boolean }) => (toPrint ? '12px' : '24px')};\r\n line-height: ${({ toPrint }: { toPrint?: boolean }) => (toPrint ? '16px' : '33px')};\r\n`;\r\n\r\nexport const StationHeader = styled.div`\r\n margin-bottom: 9px;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nexport const StationHeaderBlock = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n\r\n @media (min-width: 768px) {\r\n flex-direction: row-reverse;\r\n justify-content: space-between;\r\n }\r\n`;\r\n\r\nexport const StationImg = styled.div`\r\n ${({ theme }: { theme: IMenuTheme }) => css`\r\n flex: 0 0 30%;\r\n max-height: 100px;\r\n\r\n ${theme.media.desktop} {\r\n flex: 0 0\r\n ${theme.percentForNCards(\r\n 1,\r\n undefined,\r\n theme.cardWidthFromMdToLg,\r\n theme.gapBetweenCardsForLg,\r\n )}%;\r\n }\r\n\r\n ${theme.media.largeDesktop} {\r\n flex: 0 0 ${theme.percentForNCards()}%;\r\n }\r\n `}\r\n`;\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport { ButtonText } from '@/shared/components/Button';\r\nimport type { IMenuTheme } from '@/shared/themes/types';\r\n\r\nexport const WeeklyMenuItem = styled.div`\r\n margin: 1em 1.5%;\r\n border: 1px solid;\r\n border-radius: 4px;\r\n width: 100%;\r\n @media (min-width: 486px) {\r\n width: 47%;\r\n }\r\n @media (min-width: 768px) {\r\n width: 30%;\r\n }\r\n`;\r\n\r\nexport const WeeklyMenuItemHeader = styled.h2`\r\n font-size: 1.5em;\r\n line-height: 2em;\r\n margin: 0;\r\n text-align: center;\r\n background: #ededed;\r\n color: #666;\r\n font-weight: 600;\r\n`;\r\n\r\nexport const WeeklyMenuItemPrice = styled.span`\r\n float: right;\r\n font-size: ${({ toPrint }: { toPrint: boolean }) => (toPrint ? '8px' : 'unset')};\r\n line-height: ${({ toPrint }: { toPrint: boolean }) => (toPrint ? 'normal' : 'inherit')};\r\n`;\r\n\r\nexport const WeeklyMenuItemStations = styled.div`\r\n padding: ${({ toPrint }: { toPrint: boolean }) => (toPrint ? 'unset' : '1em')};\r\n`;\r\n\r\nexport const WeeklyMenuItems = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n justify-content: flex-start;\r\n`;\r\n\r\nexport const PrintWeeklyMenuBtn = styled.button`\r\n outline-style: solid;\r\n outline-color: #3277b3;\r\n padding: 0.25em 0.5em 0.5em;\r\n background: none;\r\n border: none;\r\n margin: 0;\r\n outline: none;\r\n\r\n &:focus {\r\n border: 2px solid;\r\n }\r\n`;\r\nexport const HeaderItemTopWeeklyWrapper = styled.div`\r\n display: flex;\r\n width: 100%;\r\n justify-content: space-between;\r\n gap: ${({ toPrint }: { toPrint: boolean }) => (toPrint ? '8px' : '16px')};\r\n`;\r\nexport const HeaderItemNameLinkWeeklyMenuButton = styled(ButtonText)`\r\n ${({ theme, toPrint }: { theme: IMenuTheme; toPrint: boolean }) => css`\r\n width: fit-content;\r\n font-weight: ${toPrint ? 'normal' : 'unset'};\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 overflow: hidden;\r\n font-size: ${toPrint ? '8px' : 'unset'};\r\n `}\r\n`;\r\n\r\nexport const HeaderItemNameLinkWeeklyMenuText = styled.div`\r\n ${({ toPrint }: { toPrint: boolean }) => css`\r\n width: fit-content;\r\n display: inline-block;\r\n font-size: ${toPrint ? '8px' : 'unset'};\r\n line-height: 1.3;\r\n `}\r\n`;\r\n","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { getFulfillment, getMenu } from '@/entities/menu';\r\nimport { FoodProductDetails } from '@/entities/menu/product';\r\n\r\nimport { ModalProduct, Nutrition } from '@/shared/components/ProductDetails';\r\nimport { useAppDispatch, useAppSelector } from '@/shared/hooks/appRedux';\r\nimport { ModalService } from '@/shared/services/modal';\r\nimport type { TProduct } from '@/shared/types/menu';\r\nimport { hasValue } from '@/shared/utils/validation';\r\n\r\nimport {\r\n HeaderItemNameLinkWeeklyMenuButton,\r\n HeaderItemNameLinkWeeklyMenuText,\r\n HeaderItemTopWeeklyWrapper,\r\n WeeklyMenuItemPrice,\r\n} from '../parts';\r\n\r\ninterface IProps {\r\n product: TProduct;\r\n toPrint: boolean;\r\n}\r\nexport const MenuItem: React.FC = ({ product, toPrint }) => {\r\n const model = useAppSelector(getMenu)?.model;\r\n const dispatch = useAppDispatch();\r\n\r\n const { formatMessage } = useIntl();\r\n const messages = {\r\n calories: formatMessage({ id: 'Calories' }),\r\n viewProductDetailsTitle: formatMessage({ id: 'ViewProductDetailsTitle' }),\r\n addCart: formatMessage({ id: 'AddCart' }),\r\n };\r\n\r\n const fulfillment = useAppSelector(getFulfillment);\r\n\r\n const isProductCalories = !model?.HideProductsCalorie && hasValue(product?.Product?.Calories);\r\n const isOpenNutritionalInformation =\r\n !model?.HideProductsNutritional &&\r\n !product?.Product?.IsBulkProduct &&\r\n product?.Product?.HasNutritionalInformation &&\r\n isProductCalories;\r\n\r\n const HandleMenuItemClick = (): void => {\r\n dispatch(\r\n FoodProductDetails(\r\n {\r\n prod: product?.ProductId,\r\n root: product?.CatalogId,\r\n },\r\n (productDetailsWithModifiers) =>\r\n ModalService.open(ModalProduct, {\r\n product: product.Product,\r\n productDetailsWithModifiers,\r\n nameButton: messages.addCart,\r\n fulfillment,\r\n nutritionComponent: ,\r\n isOpenNutritionalInformation,\r\n }),\r\n ),\r\n );\r\n };\r\n\r\n const isShowPrice = !!(model?.DisplayPriceOnTheMenu && product.Product.CurrentPrice);\r\n\r\n const isShowCalories = !!(\r\n !model?.HideProductsCalorie &&\r\n product.Product.Calories &&\r\n hasValue(product.Product.Calories)\r\n );\r\n\r\n const productName = hasValue(product.Product.MarketingName)\r\n ? product.Product.MarketingName\r\n : product.Product.DisplayName;\r\n return (\r\n
\r\n \r\n {isOpenNutritionalInformation ? (\r\n \r\n {productName}\r\n \r\n ) : (\r\n \r\n {productName}\r\n \r\n )}\r\n\r\n {isShowPrice && (\r\n \r\n ${product.Product.CurrentPrice}\r\n \r\n )}\r\n \r\n\r\n {isShowCalories && (\r\n \r\n )}\r\n
\r\n );\r\n};\r\n","import React, { useState } from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { DISPLAY_DEEMPHASIZED_TYPES } from '@/entities/menu';\r\n\r\nimport { PlusOrMinus } from '@/shared/components/Button';\r\nimport type { TMenuStation, TProducts } from '@/shared/types/menu';\r\n\r\n// TODO: нужно вынести\r\nimport { CollapseDeemphasizedButton, MenuAddOns } from '../../CommonMenu/parts';\r\nimport { MenuItem } from './MenuItem';\r\n\r\ninterface IProps {\r\n featuredProducts?: TProducts;\r\n deemphasizedProducts?: TProducts;\r\n station: TMenuStation;\r\n toPrint: boolean;\r\n}\r\nexport const MenuItems: React.FC = ({\r\n featuredProducts,\r\n deemphasizedProducts,\r\n station,\r\n toPrint,\r\n}) => {\r\n const { formatMessage } = useIntl();\r\n const messages = {\r\n seeLess: formatMessage({ id: 'SeeLess' }),\r\n seeMore: formatMessage({ id: 'SeeMore' }),\r\n };\r\n\r\n const initialCollapse =\r\n station == null ||\r\n (station.DisplayDeemphasizedType === DISPLAY_DEEMPHASIZED_TYPES.CollapseSelected &&\r\n station.CollapseDeemphasized) ||\r\n station.DisplayDeemphasizedType === DISPLAY_DEEMPHASIZED_TYPES.CollapseAll ||\r\n station.DisplayDeemphasizedType === DISPLAY_DEEMPHASIZED_TYPES.Hide;\r\n\r\n const [isCollapseDeemphasized, setCollapseDeemphasized] = useState(\r\n toPrint ? false : initialCollapse,\r\n );\r\n\r\n const collapseDeemphasizedTitle = isCollapseDeemphasized ? messages.seeMore : messages.seeLess;\r\n\r\n const showDeemphasizedButton =\r\n station?.DisplayDeemphasizedType !== DISPLAY_DEEMPHASIZED_TYPES.ExpandAll;\r\n\r\n return (\r\n <>\r\n {featuredProducts?.map((product) => (\r\n \r\n ))}\r\n {!toPrint &&\r\n showDeemphasizedButton &&\r\n deemphasizedProducts &&\r\n deemphasizedProducts.length > 0 && (\r\n {\r\n setCollapseDeemphasized(!isCollapseDeemphasized);\r\n }}\r\n aria-label={collapseDeemphasizedTitle}\r\n aria-expanded={!station.CollapseDeemphasized}\r\n aria-controls={`displayDeemphasized_${station.StationId}`}\r\n title={collapseDeemphasizedTitle}\r\n className=\"CollapseDeemphasizedButton\"\r\n toPrint={toPrint}\r\n >\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n {deemphasizedProducts?.map((product) => (\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\n\r\nimport type { TMenuStation } from '@/shared/types/menu';\r\n\r\nimport { StationHeader, StationHeaderTitle } from '../../CommonMenu/parts';\r\n\r\ninterface IProps {\r\n station: TMenuStation;\r\n toPrint: boolean;\r\n}\r\nexport const WeeklyMenuItemStation: React.FC = ({ station, toPrint }) => {\r\n return (\r\n \r\n \r\n {station.Name}\r\n \r\n \r\n );\r\n};\r\n","import { isSameDay } from 'date-fns/fp';\r\nimport sortBy from 'lodash/sortBy';\r\nimport React, { ReactElement, useCallback } from 'react';\r\n\r\nimport {\r\n getCategories,\r\n getIsShowCategories,\r\n getMenuStations,\r\n getSelectedPeriodId,\r\n} from '@/entities/menu';\r\n\r\nimport { useAppSelector } from '@/shared/hooks/appRedux';\r\nimport type { TMenuStation, TProducts } from '@/shared/types/menu';\r\n\r\n// TODO: нужно вынести\r\nimport { CategoryName } from '../../CommonMenu/parts';\r\nimport { WeeklyMenuItemStations } from '../parts';\r\nimport { MenuItems } from './MenuItems';\r\nimport { WeeklyMenuItemStation } from './WeeklyMenuItemStation';\r\n\r\ninterface IProps {\r\n products: TProducts;\r\n day: {\r\n date: number;\r\n name: string;\r\n };\r\n toPrint: boolean;\r\n}\r\nexport const WeeklyMenuItemBody: React.FC = ({ products, day, toPrint }) => {\r\n const menuStations = useAppSelector(getMenuStations);\r\n const selectedPeriodId = useAppSelector(getSelectedPeriodId);\r\n const menuCategories = useAppSelector(getCategories);\r\n const IsShowMenuCategories = useAppSelector(getIsShowCategories);\r\n const filterMenuStation = menuStations.filter((station) => station.PeriodId === selectedPeriodId);\r\n const stations = sortBy(filterMenuStation, ['StationRank']);\r\n\r\n const multipleStationsExist = stations.length > 1;\r\n\r\n // TODO: присылать с бэка даты в локальном виде и в правильном формате\r\n const filterProductsByStationAndDate = useCallback(\r\n ({\r\n dayOfMonth,\r\n station,\r\n }: {\r\n dayOfMonth: {\r\n date: number;\r\n name: string;\r\n };\r\n station: TMenuStation;\r\n }) => {\r\n return products?.filter(\r\n (product) =>\r\n product.StationId === station.StationId &&\r\n product.AssignedDate &&\r\n isSameDay(new Date(product.AssignedDate), new Date(dayOfMonth.date)),\r\n );\r\n },\r\n [products],\r\n );\r\n const stationHeaders: {\r\n stationId: string;\r\n station: TMenuStation;\r\n element: ReactElement | null;\r\n }[] = [];\r\n const categories: {\r\n displayName: Nullable;\r\n stationId: string;\r\n featuredProducts: TProducts;\r\n deemphasizedProducts: TProducts;\r\n element: JSX.Element;\r\n }[] = [];\r\n const stationProducts: {\r\n stationId: string;\r\n featuredProducts?: TProducts;\r\n deemphasizedProducts?: TProducts;\r\n }[] = [];\r\n\r\n stations.forEach((station) => {\r\n const productsByStationAndDate = filterProductsByStationAndDate({ dayOfMonth: day, station });\r\n if (productsByStationAndDate?.length > 0) {\r\n if (IsShowMenuCategories) {\r\n if (multipleStationsExist) {\r\n stationHeaders.push({\r\n stationId: station.StationId,\r\n station,\r\n element: ,\r\n });\r\n }\r\n menuCategories?.forEach((category) => {\r\n const productsByCategory = productsByStationAndDate.filter(\r\n (product) =>\r\n product.Product.Categories &&\r\n product.Product.Categories.findIndex(\r\n (cat) => cat.CategoryId === category.CategoryId,\r\n ) >= 0,\r\n );\r\n\r\n const deemphasizedProducts = productsByCategory.filter(\r\n (product) => product.IsDeemphasized,\r\n );\r\n const featuredProducts = productsByCategory.filter((product) => !product.IsDeemphasized);\r\n if (deemphasizedProducts.length > 0 || featuredProducts.length > 0) {\r\n if (\r\n categories.findIndex(\r\n (cat) =>\r\n cat.displayName === category.DisplayName && cat.stationId === station.StationId,\r\n ) < 0\r\n ) {\r\n categories.push({\r\n displayName: category.DisplayName,\r\n stationId: station.StationId,\r\n featuredProducts,\r\n deemphasizedProducts,\r\n element: (\r\n \r\n {category.DisplayName}\r\n \r\n ),\r\n });\r\n }\r\n }\r\n });\r\n } else {\r\n const deemphasizedProducts = productsByStationAndDate.filter(\r\n (product) => product.IsDeemphasized,\r\n );\r\n const featuredProducts = productsByStationAndDate.filter((product) => {\r\n return !product.IsDeemphasized;\r\n });\r\n\r\n if (multipleStationsExist) {\r\n stationHeaders.push({\r\n stationId: station.StationId,\r\n station,\r\n element: ,\r\n });\r\n }\r\n\r\n stationProducts.push({\r\n stationId: station.StationId,\r\n featuredProducts,\r\n deemphasizedProducts,\r\n });\r\n }\r\n }\r\n });\r\n\r\n return (\r\n <>\r\n {stations.map(\r\n (station) =>\r\n (categories.filter((category) => category.stationId === station.StationId).length > 0 ||\r\n stationProducts.filter(\r\n (stationProduct) => station.StationId === stationProduct.stationId,\r\n ).length > 0) && (\r\n \r\n {multipleStationsExist &&\r\n stationHeaders?.find((sh) => sh.stationId === station.StationId)?.element}\r\n {categories.map(\r\n (category) =>\r\n category.stationId === station.StationId && (\r\n
\r\n {category.element}{' '}\r\n \r\n
\r\n ),\r\n )}\r\n {stationProducts\r\n .filter((stationProduct) => stationProduct.stationId === station.StationId)\r\n .map((stationProduct) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n ),\r\n )}\r\n \r\n );\r\n};\r\n","import React, { forwardRef } from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { PrintWeeklyMenuBtn } from '../parts';\r\n\r\ninterface IProps {\r\n handlePrint: VoidFunction;\r\n}\r\n\r\nconst WeeklyPrintBtn = forwardRef(function PrintBtn(\r\n { handlePrint },\r\n ref,\r\n) {\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n print: formatMessage({ id: 'PrintWeeklyMenu' }),\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\nexport default WeeklyPrintBtn;\r\n","import React, { forwardRef } from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport {\r\n getChoosenMeal,\r\n getWeeklyMenuEndDate,\r\n getWeeklyMenuStartDate,\r\n} from '@/entities/menu/filter';\r\n\r\nimport { useAppSelector } from '@/shared/hooks/appRedux';\r\nimport { TProducts } from '@/shared/types/menu';\r\nimport { parseWeek } from '@/shared/utils/parseDate';\r\n\r\nimport { WeeklyMenuItemBody } from './WeeklyMenuItemBody';\r\n\r\ninterface IProps {\r\n days: {\r\n date: number;\r\n name: string;\r\n }[];\r\n\r\n products: TProducts;\r\n}\r\n\r\nconst WeeklyPrintContent = forwardRef(function PrintBtn(\r\n { days, products },\r\n ref,\r\n) {\r\n const startDate = useAppSelector(getWeeklyMenuStartDate);\r\n const endDate = useAppSelector(getWeeklyMenuEndDate);\r\n const choosenMeal = useAppSelector(getChoosenMeal);\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n title: formatMessage({ id: 'Menus.Products.WeeklyMenu.Title' }, { 0: choosenMeal?.name }),\r\n };\r\n return (\r\n
\r\n
\r\n
\r\n
{messages.title}
\r\n
{parseWeek(startDate, endDate)}
\r\n
\r\n {days.map((day) => (\r\n
\r\n

{day.name}

\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 WeeklyPrintContent;\r\n","import { compareAsc, format } from 'date-fns/fp';\r\nimport uniqBy from 'lodash/uniqBy';\r\nimport React, { useRef } from 'react';\r\nimport { useIntl } from 'react-intl';\r\nimport { useReactToPrint } from 'react-to-print';\r\n\r\nimport { getFilterProducts } from '@/entities/menu/product';\r\n\r\nimport { FORMAT_DATE_TIME } from '@/shared/constants';\r\nimport { useAppSelector } from '@/shared/hooks/appRedux';\r\nimport { useFocus } from '@/shared/hooks/focus';\r\n\r\nimport { NoProduct } from '../CommonMenu/parts';\r\nimport { WeeklyMenuItemBody } from './blocks/WeeklyMenuItemBody';\r\nimport WeeklyPrintBtn from './blocks/WeeklyPrintBtn';\r\nimport WeeklyPrintContent from './blocks/WeeklyPrintContent';\r\nimport { WeeklyMenuItem, WeeklyMenuItemHeader, WeeklyMenuItems } from './parts';\r\n\r\nexport const WeeklyMenu: React.FC = () => {\r\n const componentRef = useRef(null);\r\n\r\n const filteredProducts = useAppSelector(getFilterProducts);\r\n\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n noMenu: formatMessage({ id: 'NoMenu' }),\r\n };\r\n\r\n const [inputRef, setInputFocus] = useFocus();\r\n\r\n const timestamps = filteredProducts.reduce((acc, product) => {\r\n const date = new Date(product.AssignedDate);\r\n if (date) acc.push(date.getTime());\r\n return acc;\r\n }, []);\r\n\r\n const days = uniqBy(timestamps, (timestamp) => timestamp)\r\n .sort((timestamp1, timestamp2) => compareAsc(timestamp2, timestamp1))\r\n .map((date) => ({ date, name: format(FORMAT_DATE_TIME.EEEE, date) }));\r\n\r\n const handlePrint = useReactToPrint({\r\n content: () => componentRef.current,\r\n onAfterPrint: setInputFocus,\r\n removeAfterPrint: true,\r\n pageStyle: \"padding: '1em'\",\r\n });\r\n\r\n return (\r\n
\r\n \r\n \r\n {filteredProducts.length > 0 && (\r\n \r\n {days.map((day) => (\r\n \r\n {day.name}\r\n \r\n \r\n ))}\r\n \r\n )}\r\n \r\n
\r\n );\r\n};\r\n","import React, { useMemo } from 'react';\r\n\r\nimport { ProductTile } from '@/entities/menu/product';\r\n\r\nimport type { TProducts } from '@/shared/types/menu';\r\n\r\nimport { MenuItemsDiv } from '../parts';\r\n\r\ninterface IProps {\r\n products: TProducts;\r\n\r\n margin?: string;\r\n}\r\nexport const MenuItemsPart: React.FC = ({ products, margin }) => {\r\n const elementsProducts = useMemo(() => {\r\n return products.map((product) => (\r\n \r\n ));\r\n }, [products, margin]);\r\n\r\n return (\r\n \r\n {elementsProducts}\r\n \r\n );\r\n};\r\n","import React, { memo, useState } from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { DISPLAY_DEEMPHASIZED_TYPES } from '@/entities/menu';\r\n\r\nimport { PlusOrMinus } from '@/shared/components/Button';\r\nimport type { TMenuStation, TProducts } from '@/shared/types/menu';\r\nimport { isPropsEqual } from '@/shared/utils/props-comparison';\r\n\r\nimport { MenuItemsPart } from './blocks/MenuItemsPart';\r\nimport { CollapseDeemphasizedButton, Disclaimer, MenuAddOns, MenuCategory, MenuUl } from './parts';\r\n\r\ninterface IProps {\r\n productsWithoutDeemphasized: TProducts[];\r\n productsWithDeemphasized?: TProducts[];\r\n station?: TMenuStation;\r\n IsDaily: boolean;\r\n}\r\nconst MenuItemsBlock: React.FC = ({\r\n productsWithoutDeemphasized = [],\r\n productsWithDeemphasized = [],\r\n station,\r\n IsDaily,\r\n}) => {\r\n const initialCollapse =\r\n station == null ||\r\n (station.DisplayDeemphasizedType === DISPLAY_DEEMPHASIZED_TYPES.CollapseSelected &&\r\n station.CollapseDeemphasized) ||\r\n station.DisplayDeemphasizedType === DISPLAY_DEEMPHASIZED_TYPES.CollapseAll ||\r\n station.DisplayDeemphasizedType === DISPLAY_DEEMPHASIZED_TYPES.Hide;\r\n\r\n const [isCollapseDeemphasized, setCollapseDeemphasized] = useState(initialCollapse);\r\n\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n seeMore: formatMessage({ id: 'SeeMore' }),\r\n seeLess: formatMessage({ id: 'SeeLess' }),\r\n alsoAvailable: formatMessage({ id: 'AlsoAvailable' }),\r\n };\r\n\r\n const productBlocks = productsWithoutDeemphasized.length !== 0 && (\r\n \r\n {productsWithoutDeemphasized.map((products, i) => {\r\n // eslint-disable-next-line react/no-array-index-key\r\n return ;\r\n })}\r\n \r\n );\r\n const collapseDeemphasizedTitle = isCollapseDeemphasized ? messages.seeMore : messages.seeLess;\r\n\r\n const showDeemphasizedButton =\r\n IsDaily && station?.DisplayDeemphasizedType !== DISPLAY_DEEMPHASIZED_TYPES.ExpandAll;\r\n\r\n const deemphasizedProductBlocks = productsWithDeemphasized.length !== 0 && (\r\n <>\r\n {showDeemphasizedButton && (\r\n setCollapseDeemphasized(!isCollapseDeemphasized)}\r\n aria-label={collapseDeemphasizedTitle}\r\n aria-expanded={!station?.CollapseDeemphasized}\r\n aria-controls={`displayDeemphasized_${station?.StationId}`}\r\n title={collapseDeemphasizedTitle}\r\n className=\"CollapseDeemphasizedButton\"\r\n height=\"24px\"\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n {productsWithoutDeemphasized && productsWithoutDeemphasized.length > 0 && (\r\n \r\n )}\r\n\r\n {productsWithDeemphasized.map((products, i) => {\r\n return (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n {productBlocks}\r\n {deemphasizedProductBlocks}\r\n \r\n );\r\n};\r\n\r\nexport default memo(MenuItemsBlock, isPropsEqual);\r\n","import React from 'react';\r\n\r\nimport { Img } from '@/shared/components/Img';\r\nimport type { TMenuStation } from '@/shared/types/menu';\r\nimport { hasValue } from '@/shared/utils/validation';\r\n\r\nimport {\r\n StationDescription,\r\n StationHeader,\r\n StationHeaderBlock,\r\n StationHeaderTitle,\r\n StationImg,\r\n} from '../parts';\r\n\r\ninterface IProps {\r\n station:\r\n | TMenuStation\r\n | {\r\n Name: string;\r\n };\r\n\r\n withOutImg?: boolean;\r\n}\r\nexport const StationHeaderComponent: React.FC = ({ station, withOutImg = false }) => {\r\n if (!hasValue(station.Name)) return null;\r\n return (\r\n \r\n \r\n \r\n \r\n {(station as TMenuStation)?.StationImagePath && (\r\n \r\n {hasValue((station as TMenuStation)?.StationDescription) && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n","import chunk from 'lodash/chunk';\r\nimport toLower from 'lodash/toLower';\r\nimport React, { useCallback, useMemo } from 'react';\r\nimport { useIntl } from 'react-intl';\r\nimport { toQuery, useMediaQuery } from 'react-responsive';\r\n\r\nimport { getCategories, getMenu } from '@/entities/menu';\r\nimport { getSearchText } from '@/entities/menu/filter';\r\nimport {\r\n getActiveStantions,\r\n getFavoriteProducts,\r\n getFilterProducts,\r\n getIsPaypalOnList,\r\n getIsProducts,\r\n} from '@/entities/menu/product';\r\n\r\nimport { useAppSelector } from '@/shared/hooks/appRedux';\r\nimport { usePayPal } from '@/shared/services/paypal';\r\nimport type { TProducts } from '@/shared/types/menu';\r\n\r\nimport { WeeklyMenu } from '../WeeklyMenu';\r\nimport MenuItemsBlock from './MenuItemsBlock';\r\nimport { StationHeaderComponent } from './blocks/StationHeader';\r\nimport {\r\n CategoryName,\r\n MenuContainer,\r\n MenuDaily,\r\n MenuParentCategory,\r\n MenuStation,\r\n MenuWrapperDaily,\r\n NoProduct,\r\n} from './parts';\r\n\r\nconst COUNT_PRODUCT_CARDS = {\r\n LAPTOP: 3,\r\n TABLET: 2,\r\n MOBILE: 1,\r\n};\r\n\r\nconst CommonMenu: React.FC = () => {\r\n const isLaptop = useMediaQuery({\r\n query: toQuery({\r\n minWidth: 1024,\r\n }),\r\n });\r\n const isTablet = useMediaQuery({\r\n query: toQuery({\r\n minWidth: 768,\r\n }),\r\n });\r\n const isMobile = useMediaQuery({\r\n query: toQuery({\r\n maxWidth: 767,\r\n }),\r\n });\r\n const { formatMessage } = useIntl();\r\n\r\n const isPaypalOnList = useAppSelector(getIsPaypalOnList);\r\n usePayPal({\r\n clientId: window.menus?.paypal_client_id,\r\n isLoadScript: isPaypalOnList,\r\n });\r\n\r\n const searchInputText = useAppSelector(getSearchText);\r\n\r\n const messages = {\r\n NoFiltersMenu: formatMessage({ id: 'NoFiltersMenu' }),\r\n noMenu: formatMessage({ id: 'NoMenu' }),\r\n NoFoodOrderMenu: formatMessage({ id: 'NoFoodOrderMenu' }),\r\n favorites: formatMessage({ id: 'Favorites' }),\r\n NoMenuNoneFound: formatMessage({ id: 'NoMenuNoneFound' }, { 0: `\"${searchInputText}\"` }),\r\n };\r\n const count = useMemo(() => {\r\n if (isLaptop) return COUNT_PRODUCT_CARDS.LAPTOP;\r\n if (isTablet) return COUNT_PRODUCT_CARDS.TABLET;\r\n if (isMobile) return COUNT_PRODUCT_CARDS.MOBILE;\r\n return COUNT_PRODUCT_CARDS.LAPTOP;\r\n }, [isMobile, isTablet, isLaptop]);\r\n\r\n const divideListProduct = useCallback((products: TProducts) => chunk(products, count), [count]);\r\n\r\n const favoriteProducts = useAppSelector(getFavoriteProducts);\r\n\r\n const isProducts = useAppSelector(getIsProducts);\r\n const filterProducts = useAppSelector(getFilterProducts);\r\n\r\n const menus = useAppSelector(getMenu);\r\n const categories = useAppSelector(getCategories);\r\n const isFavorites = menus?.model.UserFavoritiesEnabled && favoriteProducts.length > 0;\r\n\r\n const activeStantions = useAppSelector(getActiveStantions);\r\n\r\n const stationViews = activeStantions.map((station) => {\r\n if (menus?.model.Menu.ShowCategories) {\r\n const productByStation = filterProducts.filter((p) => p.StationId === station.StationId);\r\n if (productByStation.length !== 0) {\r\n const shownCategories: string[] = [];\r\n return (\r\n \r\n \r\n {categories?.map((category) => {\r\n const categoryDisplayName = category.DisplayName;\r\n if (categoryDisplayName && !shownCategories.includes(categoryDisplayName)) {\r\n shownCategories.push(categoryDisplayName);\r\n\r\n const productsByCategory = productByStation.filter((p) =>\r\n p.Product.Categories?.some(\r\n (c) =>\r\n c.CategoryId === category.CategoryId || c.DisplayName === categoryDisplayName,\r\n ),\r\n );\r\n if (productsByCategory.length !== 0) {\r\n const productsWithoutDeemphasized = productsByCategory.filter(\r\n (x) => !x.IsDeemphasized,\r\n );\r\n const productsWithDeemphasized = productsByCategory.filter(\r\n (x) => x.IsDeemphasized,\r\n );\r\n\r\n const getProductsWithoutDeemphasized = divideListProduct(\r\n productsWithoutDeemphasized,\r\n );\r\n\r\n const getProductsWithDeemphasized = divideListProduct(productsWithDeemphasized);\r\n\r\n return (\r\n \r\n {category.DisplayName}\r\n \r\n \r\n );\r\n }\r\n }\r\n return null;\r\n })}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n const productsWithoutDeemphasized = filterProducts.filter(\r\n (x) => (x.StationId === station.StationId || menus?.model.IsFavorites) && !x.IsDeemphasized,\r\n );\r\n const productsWithDeemphasized = filterProducts.filter(\r\n (x) => x.StationId === station.StationId && x.IsDeemphasized,\r\n );\r\n\r\n if (productsWithoutDeemphasized.length !== 0 || productsWithDeemphasized.length !== 0) {\r\n const getProductsWithoutDeemphasized = divideListProduct(productsWithoutDeemphasized);\r\n\r\n const getProductsWithDeemphasized = divideListProduct(productsWithDeemphasized);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return null;\r\n });\r\n\r\n const getDivideListFavoriteProducts = divideListProduct(favoriteProducts);\r\n\r\n const isAnyViews = stationViews.length > 0 && stationViews.some((item) => !!item);\r\n\r\n const textNoMenuForDaily =\r\n (!!searchInputText && messages.NoMenuNoneFound) ||\r\n (!isProducts && messages.noMenu) ||\r\n messages.NoFiltersMenu;\r\n const textNoMenuForFoodOrder =\r\n (!!searchInputText && messages.NoMenuNoneFound) ||\r\n (!isProducts && messages.NoFoodOrderMenu) ||\r\n messages.NoFiltersMenu;\r\n\r\n return (\r\n \r\n {(menus?.model.IsDaily || menus?.model.IsFoodOrder) && (\r\n \r\n \r\n {isFavorites && (\r\n \r\n \r\n \r\n \r\n )}\r\n {isAnyViews && stationViews}\r\n \r\n \r\n \r\n )}\r\n {menus?.model.IsWeekly && }\r\n \r\n );\r\n};\r\n\r\nexport default CommonMenu;\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport { ButtonLink } from '@/shared/components/Button';\r\nimport type { IMenuTheme } 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 CheckOutButton = styled(ButtonLink)`\r\n border-top-right-radius: 25px;\r\n border-bottom-right-radius: 25px;\r\n\r\n &:focus {\r\n outline: black solid 2px;\r\n outline-offset: 0px;\r\n }\r\n`;\r\nexport const CartButtonDiv = styled.div`\r\n ${({ theme, isShow }: { theme: IMenuTheme; isShow: boolean }) => css`\r\n display: ${isShow ? 'inline-flex' : 'none'};\r\n width: min-content;\r\n height: 40px;\r\n border-radius: 22.5px;\r\n background-color: ${theme.defaultPrimaryColor};\r\n border: 2px solid ${theme.defaultPrimaryColor};\r\n box-sizing: border-box;\r\n position: relative;\r\n top: 2px;\r\n flex-direction: row;\r\n margin-right: 1em;\r\n margin-top: 10px;\r\n\r\n @media (max-width: ${size.tablet}) {\r\n margin-bottom: 16px;\r\n margin-top: 0;\r\n }\r\n `};\r\n`;\r\n\r\nexport const CartItemsText = styled.div`\r\n ${({ theme }: { theme: IMenuTheme }) => css`\r\n height: 40px;\r\n width: auto;\r\n color: #fff;\r\n font-weight: ${theme.fontWeight.medium};\r\n font-size: ${theme.fontSizes.small};\r\n justify-self: flex-start;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: flex-start;\r\n text-align: left;\r\n margin-left: 8px;\r\n margin-right: 8px;\r\n `}\r\n`;\r\n","import React, { useEffect } from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { MENU_CHECKOUT_BUTTON_STYLE_CLASS, getMenu } from '@/entities/menu';\r\n\r\nimport { useAppSelector } from '@/shared/hooks/appRedux';\r\nimport { srSpeak } from '@/shared/utils/srSpeak';\r\n\r\nimport CartIconSvg from '../../icons/cart.svg';\r\nimport { CartButtonDiv, CartItemsText, CheckOutButton } from './parts';\r\n\r\nconst MINICART_COOKIE_NAME = 'MiniCartCookie';\r\n\r\nconst CartButton: React.FC = () => {\r\n const menus = useAppSelector(getMenu);\r\n const { formatMessage } = useIntl();\r\n\r\n const linkToCart = `${window.location.origin}${menus?.model?.CartUrl}`;\r\n\r\n const allCookies = document.cookie.split(';');\r\n const cookie = allCookies.find((c) => {\r\n const [name] = c.trim().split('=');\r\n return name === MINICART_COOKIE_NAME;\r\n });\r\n const itemsCount = cookie ? parseInt(cookie.split('=')[1].split(',')[0], 10) : 0;\r\n const messages = {\r\n checkout: formatMessage({ id: 'Menus.Menu.Button.CheckOut' }),\r\n ariaLive: formatMessage({ id: 'Menus.Filters.Cartbutton.AriaLive' }, { 0: itemsCount }),\r\n };\r\n\r\n useEffect(() => {\r\n if (itemsCount) {\r\n srSpeak(messages.ariaLive);\r\n }\r\n }, [itemsCount, messages.ariaLive]);\r\n return (\r\n \r\n \r\n {itemsCount}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CartButton;\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport { ModalBody } from '@/shared/services/modal';\r\nimport type { IDefaultTheme } from '@/shared/themes/types';\r\n\r\nexport const ModalBodyWrapper = styled(ModalBody)`\r\n padding: 16px 0 32px 0;\r\n`;\r\n\r\nexport const WrapperFilters = styled.div`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n display: block;\r\n position: relative;\r\n\r\n ${theme.media.tablet} {\r\n display: inline-block;\r\n width: 100%;\r\n }\r\n `}\r\n`;\r\n\r\nexport const FilterSeparator = styled.div`\r\n height: 1px;\r\n width: 100%;\r\n background-color: #000;\r\n margin-bottom: 16px;\r\n`;\r\n\r\nexport const SearchInput = styled.input`\r\n ${({ isText }: { isText: boolean }) => css`\r\n font-size: 100%;\r\n background: #ededed00;\r\n border: solid 0px #0089ff;\r\n padding: 2px 26px 2px 27px;\r\n width: 130px;\r\n color: black;\r\n cursor: pointer;\r\n border-radius: 10em;\r\n transition: 'width 0.5s 0.5s, height 0.5s 0.5s, opacity 0.5s';\r\n height: 30px;\r\n\r\n &:not(:focus) {\r\n border: ${isText ? '2px solid' : 'none'};\r\n width: ${isText ? 'unset' : '15px'};\r\n min-width: ${isText ? '130px' : '15px'};\r\n max-width: ${isText ? '260px' : '15px'};\r\n }\r\n\r\n &:focus {\r\n border: 2px solid red;\r\n width: unset;\r\n min-width: 130px;\r\n max-width: 260px;\r\n transition: 0.3s;\r\n }\r\n `}\r\n`;\r\n\r\nexport const SearchInputClean = styled.button`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n width: 1.25rem;\r\n height: 1.25rem;\r\n border-radius: 100px;\r\n background-color: transparent;\r\n border: none;\r\n padding: 0px;\r\n color: black;\r\n position: absolute;\r\n right: 7px;\r\n top: 5px;\r\n\r\n &:focus {\r\n outline: 2px solid ${theme.defaultPrimaryColor};\r\n outline-offset: 0px;\r\n }\r\n `}\r\n`;\r\n\r\nexport const WrapperContent = styled.div`\r\n margin: 0px 31px 0px 33px;\r\n`;\r\n\r\nexport const TextSpan = styled.span`\r\n margin: 6px 8px 6px 0;\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\r\nexport const ButtonOutline = styled.button`\r\n ${({ theme, isActive }: { theme: IDefaultTheme; isActive: boolean }) => css`\r\n width: auto;\r\n font-size: 16px;\r\n margin: 0 1em 1em 0;\r\n background-color: ${isActive ? theme.defaultPrimaryColor : 'unset'};\r\n border: 1px solid ${theme.defaultPrimaryColor};\r\n border-radius: 4px;\r\n color: ${isActive ? 'white' : theme.defaultPrimaryColor};\r\n line-height: 24px;\r\n overflow: hidden;\r\n padding: 0.5em 1.5em;\r\n text-transform: capitalize;\r\n display: inline-block;\r\n font-weight: 400;\r\n text-align: center;\r\n white-space: nowrap;\r\n vertical-align: middle;\r\n touch-action: manipulation;\r\n cursor: pointer;\r\n user-select: none;\r\n &:focus {\r\n box-sizing: border-box;\r\n border-radius: 4px 4px 0 0;\r\n outline: #000 solid 2px;\r\n outline-offset: -4px;\r\n }\r\n `}\r\n`;\r\n\r\nexport const WrapperButtons = styled.div`\r\n display: flex;\r\n justify-content: right;\r\n width: 100%;\r\n`;\r\n\r\nexport const Disclaimer = styled.p`\r\n text-align: left;\r\n font-size: 12px;\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 ModalSubheader = styled.label`\r\n height: 19px;\r\n margin: 0 21px 8px 0;\r\n\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\r\nexport const MainWrapper = styled.div`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n position: relative;\r\n display: unset;\r\n\r\n ${theme.media.tablet} {\r\n display: inline-block;\r\n }\r\n `}\r\n`;\r\n","import format from 'date-fns/format';\r\nimport React, { ForwardRefRenderFunction, forwardRef, useCallback, useMemo } from 'react';\r\nimport { Controller, useFormContext } from 'react-hook-form';\r\n\r\nimport { PRE_SELECTED, getMenuCalendar } from '@/entities/menu';\r\n\r\nimport { DatePicker, DatePickerButton, useDatePicker } from '@/shared/components/DatePicker';\r\nimport { FORMAT_DATE_TIME } from '@/shared/constants';\r\nimport { useAppSelector } from '@/shared/hooks/appRedux';\r\n\r\ninterface IProps {\r\n datePickerCallback: (\r\n date: Date,\r\n onChange: (...event: unknown[]) => void,\r\n callback: VoidFunction,\r\n ) => void;\r\n}\r\n\r\nconst DailyBlock: React.FC = ({ datePickerCallback }) => {\r\n const MenuCalendar = useAppSelector(getMenuCalendar);\r\n\r\n const { control, watch } = useFormContext();\r\n\r\n const datePickerProps = useDatePicker({\r\n availableDates: MenuCalendar?.AvailableDates,\r\n numberDaysAfter: MenuCalendar?.NumberDaysAfter,\r\n });\r\n\r\n const { DAILY_MEAL_MENU_DATE } = PRE_SELECTED;\r\n\r\n const { [DAILY_MEAL_MENU_DATE]: preSelectedMenuDate } = watch();\r\n\r\n const selectedDate = useMemo(() => {\r\n if (preSelectedMenuDate) return preSelectedMenuDate;\r\n\r\n if (datePickerProps.availableDates && datePickerProps.availableDates?.length > 0) {\r\n return format(new Date(datePickerProps.availableDates[0]), FORMAT_DATE_TIME.YYYYMMDDTHHmmss);\r\n }\r\n\r\n return format(new Date(), FORMAT_DATE_TIME.YYYYMMDDTHHmmss);\r\n }, [datePickerProps.availableDates, preSelectedMenuDate]);\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 const handlerDatePicker = (date: Date, callback: VoidFunction): void => {\r\n const handlerCallback = (): void => {\r\n callback();\r\n datePickerProps.setOpenDatePicker(false);\r\n };\r\n datePickerCallback(date, onChange, handlerCallback);\r\n };\r\n return (\r\n }\r\n {...datePickerProps}\r\n />\r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default DailyBlock;\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport type { IDefaultTheme } from '@/shared/themes/types';\r\n\r\nexport const DateMealFilterButtonWrapper = styled.div`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n width: 100%;\r\n border: none;\r\n height: 40px;\r\n margin: 1px 1px 16px 1px;\r\n padding: 4px 2px 2px 21px;\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\r\n ${theme.media.tablet} {\r\n width: auto;\r\n padding: 1px 2px 2px 16px;\r\n margin: 1px 16px 1px 1px;\r\n }\r\n `}\r\n`;\r\nexport const DateMealFilterButton = styled.button`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n width: 84px;\r\n height: 38px;\r\n padding: 6px 16px;\r\n background-color: #fff;\r\n border-radius: 0px 22.5px 22.5px 0px;\r\n border: none;\r\n outline: none;\r\n position: absolute;\r\n right: 1px;\r\n top: 1px;\r\n\r\n &:focus {\r\n border: 2px solid;\r\n }\r\n ${theme.media.tablet} {\r\n position: relative;\r\n right: 0;\r\n top: 0;\r\n }\r\n `}\r\n`;\r\n\r\nexport const MealFilter = styled.div`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n margin-top: 0px;\r\n\r\n ${theme.media.tablet} {\r\n margin-top: 16px;\r\n }\r\n `}\r\n`;\r\nexport const DateMealFilterSpan = styled.div`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n height: 24px;\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 text-align: right;\r\n color: ${theme.defaultPrimaryColor};\r\n `}\r\n`;\r\n","import format from 'date-fns/format';\r\nimport React, { useMemo } from 'react';\r\nimport { Controller, FormProvider, useForm, useWatch } from 'react-hook-form';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { GetMenuPeriods, PRE_SELECTED, getMenu } from '@/entities/menu';\r\nimport {\r\n getChoosenMeal,\r\n getChoosenView,\r\n getDailyMenuDate,\r\n getWeeklyMenuEndDate,\r\n getWeeklyMenuStartDate,\r\n setChoosenMeal,\r\n setChoosenView,\r\n setDailyMenuDate,\r\n setWeeklyMenuEndDate,\r\n setWeeklyMenuStartDate,\r\n} from '@/entities/menu/filter';\r\n\r\nimport { fetchMenu } from '@/shared/api/menu';\r\nimport { Button, ButtonSecond } from '@/shared/components/Button';\r\nimport { Select } from '@/shared/components/Select';\r\nimport type { TCustomSelectForwardRef } from '@/shared/components/Select/types';\r\nimport { FORMAT_DATE_TIME, MODE } from '@/shared/constants';\r\nimport { useAppDispatch, useAppSelector } from '@/shared/hooks/appRedux';\r\nimport { useFocus } from '@/shared/hooks/focus';\r\nimport { ModalOne } from '@/shared/services/modal';\r\nimport type { TPortalModalComponent } from '@/shared/services/modal/type';\r\nimport { getWeeks } from '@/shared/utils/parseDate';\r\n\r\nimport { TMealOptions, TMenuPeriods } from '../../../types';\r\nimport { ButtonOutline, ModalBodyWrapper, ModalSubheader, WrapperContent } from '../../parts';\r\nimport DailyBlock from '../blocks/DailyBlock';\r\nimport { MealFilter } from '../parts';\r\n\r\ninterface IProps {\r\n setInputFocus: VoidFunction;\r\n}\r\n\r\nconst DineInModal: TPortalModalComponent = ({ close, setInputFocus }) => {\r\n const {\r\n model: {\r\n Menu: { MenuPeriods },\r\n StoreIds,\r\n DisplayDailyMenu,\r\n DisplayWeeklyMenu,\r\n DisplayOnlyCurrentDayMenu,\r\n },\r\n } = useAppSelector(getMenu) as {\r\n model: {\r\n Menu: { MenuPeriods: TMenuPeriods };\r\n StoreIds: string;\r\n DisplayWeeklyMenu: boolean;\r\n DisplayDailyMenu: boolean;\r\n DisplayOnlyCurrentDayMenu: boolean;\r\n };\r\n };\r\n\r\n const choosenMeal = useAppSelector(getChoosenMeal);\r\n const menuDate = useAppSelector(getDailyMenuDate);\r\n const startDate = useAppSelector(getWeeklyMenuStartDate);\r\n const endDate = useAppSelector(getWeeklyMenuEndDate);\r\n const choosenView = useAppSelector(getChoosenView);\r\n\r\n const weeks = getWeeks();\r\n\r\n const { DAILY_MEAL_MEAL, DAILY_MEAL_VIEW, DAILY_MEAL_START_DATE } = PRE_SELECTED;\r\n const { DAILY, WEEKLY } = MODE;\r\n const { MMDDYYYY } = FORMAT_DATE_TIME;\r\n\r\n const form = useForm({\r\n mode: 'onSubmit',\r\n shouldUnregister: true,\r\n defaultValues: {\r\n preSelectedMenuDate: menuDate,\r\n preSelectedMeal: choosenMeal,\r\n preSelectedView: choosenView,\r\n preSelectedStartDate: startDate,\r\n preSelectedEndDate: endDate,\r\n },\r\n });\r\n\r\n const { handleSubmit, setValue, control, getValues } = form;\r\n const preSelectedView = useWatch({\r\n control,\r\n name: DAILY_MEAL_VIEW,\r\n });\r\n\r\n const [selectRef, setSelectFocus] = useFocus();\r\n\r\n const dispatch = useAppDispatch();\r\n\r\n const { formatMessage } = useIntl();\r\n const messages = {\r\n view: formatMessage({ id: 'View' }),\r\n daily: formatMessage({ id: 'Daily' }),\r\n weekly: formatMessage({ id: 'Weekly' }),\r\n meal: formatMessage({ id: 'Meal' }),\r\n dateMealFilterHeader: formatMessage({ id: 'DateMealFilterHeader' }),\r\n cancel: formatMessage({ id: 'Cancel' }),\r\n done: formatMessage({ id: 'Done' }),\r\n date: formatMessage({ id: 'Date' }),\r\n };\r\n\r\n const weeksOptions = useMemo(() => {\r\n return (\r\n weeks?.map((week) => ({\r\n value: week.startOfWeek,\r\n label: week.displayName,\r\n key: week.displayName,\r\n })) || []\r\n );\r\n }, [weeks]);\r\n\r\n const mealOptions: TMealOptions | [] = useMemo(() => {\r\n return (\r\n (!!MenuPeriods &&\r\n MenuPeriods.map((period) => {\r\n return { value: period.Name, label: period.Name, key: period.PeriodId };\r\n })) ||\r\n []\r\n );\r\n }, [MenuPeriods]);\r\n\r\n const HandleDoneClick = (): void => {\r\n const [\r\n preSelectedMenuDate,\r\n preSelectedMeal,\r\n preSelectedViewData,\r\n preSelectedStartDate,\r\n preSelectedEndDate,\r\n ] = getValues([\r\n 'preSelectedMenuDate',\r\n 'preSelectedMeal',\r\n 'preSelectedView',\r\n 'preSelectedStartDate',\r\n 'preSelectedEndDate',\r\n ]);\r\n\r\n let dateString = '';\r\n if (preSelectedMenuDate && preSelectedViewData === DAILY) {\r\n dateString = preSelectedMenuDate;\r\n }\r\n if (preSelectedViewData === WEEKLY) {\r\n dateString = preSelectedStartDate;\r\n }\r\n const date = new Date(dateString);\r\n\r\n const callback = (): void => {\r\n if (preSelectedMenuDate !== menuDate) {\r\n dispatch(setDailyMenuDate(preSelectedMenuDate));\r\n }\r\n if (preSelectedMeal !== choosenMeal) {\r\n dispatch(setChoosenMeal(preSelectedMeal));\r\n }\r\n if (preSelectedViewData !== choosenView) {\r\n dispatch(setChoosenView(preSelectedViewData));\r\n }\r\n if (preSelectedStartDate !== startDate) {\r\n dispatch(setWeeklyMenuStartDate(preSelectedStartDate));\r\n }\r\n if (preSelectedEndDate !== endDate) {\r\n dispatch(setWeeklyMenuEndDate(preSelectedEndDate));\r\n }\r\n close();\r\n };\r\n dispatch(\r\n fetchMenu({\r\n mode: preSelectedViewData,\r\n customPeriodId: preSelectedMeal?.id,\r\n customDate: format(date, FORMAT_DATE_TIME.MMDDYYYY),\r\n callback,\r\n }),\r\n );\r\n };\r\n const HandleViewClick = (view: MODE): void => {\r\n setValue(DAILY_MEAL_VIEW, view);\r\n };\r\n\r\n const handleCanselClick = (): void => {\r\n close();\r\n setInputFocus();\r\n };\r\n\r\n const handleDoneClick = (): void => {\r\n HandleDoneClick();\r\n setInputFocus();\r\n };\r\n\r\n const datePickerCallback = (\r\n date: Date,\r\n onChange: (...event: unknown[]) => void,\r\n callback: VoidFunction,\r\n ): void => {\r\n const dateFormate = format(date, MMDDYYYY);\r\n const cb = (): void => {\r\n onChange(dateFormate);\r\n callback?.();\r\n };\r\n dispatch(GetMenuPeriods(StoreIds, dateFormate, preSelectedView, cb));\r\n };\r\n const weekCallback = (startOfWeek: string, callback?: VoidFunction): void => {\r\n const date = format(new Date(startOfWeek), MMDDYYYY);\r\n dispatch(GetMenuPeriods(StoreIds, date, preSelectedView, callback));\r\n };\r\n return (\r\n \r\n }\r\n handlerClose={close}\r\n footer={\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n isFocusOnCloseButton={false}\r\n >\r\n \r\n \r\n \r\n {DisplayWeeklyMenu && DisplayDailyMenu && (\r\n
\r\n \r\n
\r\n HandleViewClick(DAILY)}\r\n className=\"DineInButtonOutline\"\r\n dangerouslySetInnerHTML={{\r\n __html: messages.daily,\r\n }}\r\n />\r\n {\r\n HandleViewClick(WEEKLY);\r\n }}\r\n className=\"ButtonOutline\"\r\n dangerouslySetInnerHTML={{\r\n __html: messages.weekly,\r\n }}\r\n />\r\n
\r\n
\r\n )}\r\n\r\n \r\n
\r\n {preSelectedView === DAILY && }\r\n {preSelectedView === WEEKLY && (\r\n {\r\n const defaultSelect =\r\n weeksOptions.find((week) => week.value === value) ||\r\n weeksOptions[0] ||\r\n undefined;\r\n return (\r\n {\r\n const callback = (): void => {\r\n onChange(newWeek.value);\r\n setSelectFocus();\r\n };\r\n weekCallback(newWeek.value, callback);\r\n }}\r\n inputId=\"aria-date-controller\"\r\n aria-labelledby=\"DateLabel\"\r\n ref={selectRef}\r\n isDisabled={DisplayOnlyCurrentDayMenu}\r\n />\r\n );\r\n }}\r\n />\r\n )}\r\n
\r\n\r\n \r\n \r\n {\r\n const defaultSelect =\r\n mealOptions.find((meal) => meal.value === value?.name) ||\r\n mealOptions[0] ||\r\n undefined;\r\n return (\r\n {\r\n onChange({ name: newValue?.value, id: newValue?.key });\r\n }}\r\n aria-labelledby=\"MealLabel\"\r\n inputId=\"aria-meal-input\"\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 DineInModal;\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 SvgAllergensAndDiets = function SvgAllergensAndDiets(_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: \"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\"\n })));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgAllergensAndDiets);\nexport default ForwardRef;","import React, { useEffect } from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { getMenu } from '@/entities/menu';\r\nimport {\r\n getChoosenMeal,\r\n getDailyMenuDate,\r\n getOrderMenuDate,\r\n getWeeklyMenuEndDate,\r\n getWeeklyMenuStartDate,\r\n setChoosenMeal,\r\n} from '@/entities/menu/filter';\r\nimport { getIsProducts } from '@/entities/menu/product';\r\n\r\nimport { useAppDispatch, useAppSelector } from '@/shared/hooks/appRedux';\r\nimport { useFocus } from '@/shared/hooks/focus';\r\nimport { ModalService } from '@/shared/services/modal';\r\nimport { parseDate, parseWeek } from '@/shared/utils/parseDate';\r\n\r\nimport { TMenuPeriods } from '../../types';\r\nimport { MainWrapper, TextSpan } from '../parts';\r\nimport DineInModal from './modal/DineInModal';\r\nimport { DateMealFilterButton, DateMealFilterButtonWrapper, DateMealFilterSpan } from './parts';\r\n\r\ninterface IProps {\r\n handlerPickUPTimesModeFoodOrder: (value: number) => void;\r\n}\r\nconst DailyMealBlock: React.FC = ({ handlerPickUPTimesModeFoodOrder }) => {\r\n const {\r\n model: {\r\n Menu: { MenuPeriods },\r\n IsDaily,\r\n IsFoodOrder,\r\n SelectedPeriodId,\r\n },\r\n } = useAppSelector(getMenu) as {\r\n model: {\r\n Menu: { MenuPeriods: TMenuPeriods };\r\n IsDaily: boolean;\r\n IsFoodOrder: boolean;\r\n SelectedPeriodId: Nullable;\r\n };\r\n };\r\n const dispatch = useAppDispatch();\r\n\r\n const choosenMeal = useAppSelector(getChoosenMeal);\r\n\r\n const menuDate = useAppSelector(getDailyMenuDate);\r\n const orderMenuDate = useAppSelector(getOrderMenuDate);\r\n\r\n const startDate = useAppSelector(getWeeklyMenuStartDate);\r\n const endDate = useAppSelector(getWeeklyMenuEndDate);\r\n const isProducts = useAppSelector(getIsProducts);\r\n\r\n const isShowTextSelectOrderingOptions = !isProducts && !choosenMeal?.name;\r\n\r\n const { formatMessage } = useIntl();\r\n\r\n const [inputRef, setInputFocus] = useFocus();\r\n\r\n useEffect(() => {\r\n const name = MenuPeriods.filter((p) => p.PeriodId === SelectedPeriodId)[0]?.Name;\r\n const meal = {\r\n name,\r\n id: SelectedPeriodId ? Number(SelectedPeriodId) : null,\r\n };\r\n dispatch(setChoosenMeal(meal));\r\n }, [MenuPeriods, SelectedPeriodId, dispatch]);\r\n\r\n const HandleDateMealFilterButtonClick = (): void => {\r\n if (IsFoodOrder) {\r\n handlerPickUPTimesModeFoodOrder(1);\r\n return;\r\n }\r\n\r\n ModalService.open(DineInModal, {\r\n setInputFocus,\r\n });\r\n };\r\n\r\n const date = IsFoodOrder ? orderMenuDate : menuDate;\r\n\r\n const textDate = IsDaily || IsFoodOrder ? parseDate(date) : parseWeek(startDate, endDate);\r\n\r\n const messages = {\r\n change: formatMessage({ id: 'Menus.Filters.DateMealFilter.Buttons.Change' }),\r\n selectOrderingOptions: formatMessage({\r\n id: 'Menus.Filters.DateMealFilter.Title.SelectOrderingOptions',\r\n }),\r\n buttonAriaDescription: formatMessage(\r\n { id: 'Menus.Filters.DateMealFilter.Button.AriaLabel' },\r\n { 0: textDate, 1: choosenMeal?.name },\r\n ),\r\n };\r\n\r\n const locationText = isShowTextSelectOrderingOptions ? (\r\n \r\n ) : (\r\n <>\r\n {textDate}\r\n {choosenMeal?.name}\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n {locationText}\r\n \r\n \r\n {messages.buttonAriaDescription}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DailyMealBlock;\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 SvgPencil = function SvgPencil(_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: \"M3,17.25 L3,21 L6.75,21 L17.81,9.94 L14.06,6.19 L3,17.25 Z M20.71,7.04 C21.1,6.65 21.1,6.02 20.71,5.63 L18.37,3.29 C17.98,2.9 17.35,2.9 16.96,3.29 L15.13,5.12 L18.88,8.87 L20.71,7.04 Z\"\n })));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgPencil);\nexport default ForwardRef;","import styled, { css } from 'styled-components';\r\n\r\nimport type { IDefaultTheme } from '@/shared/themes/types';\r\n\r\nexport const FilterItemsInModal = styled.div``;\r\n\r\nexport const FilterButtonWrapper = styled.div`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n display: block;\r\n margin-top: 0px;\r\n\r\n ${theme.media.tablet} {\r\n display: inline-block;\r\n margin-top: 10px;\r\n }\r\n `}\r\n`;\r\n\r\nexport const FilterButton = styled.button`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n width: 100%;\r\n border: none;\r\n height: 40px;\r\n padding: 2px 2px 2px 21px;\r\n margin: 1px 1px 16px 1px;\r\n width: 100%;\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\r\n ${theme.media.tablet} {\r\n margin: 1px 16px 1px 1px;\r\n padding: 1px 2px 2px 16px;\r\n width: auto;\r\n }\r\n `}\r\n`;\r\n\r\nexport const FilterButtonText = styled.span`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n display: none;\r\n\r\n ${theme.media.tablet} {\r\n display: block;\r\n margin: 6px 8px 6px 0;\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 `}\r\n`;\r\n\r\nexport const FilterButtonWrapperSVG = styled.div`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n width: 56px;\r\n height: 38px;\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 margin: 0;\r\n outline: none;\r\n position: absolute;\r\n top: 1px;\r\n right: 1px;\r\n\r\n ${theme.media.tablet} {\r\n position: relative;\r\n top: 0;\r\n right: 0;\r\n }\r\n `}\r\n`;\r\n\r\nexport const CountActiveFilters = styled.span`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n width: auto;\r\n position: absolute;\r\n right: 56px;\r\n\r\n height: 24px;\r\n margin: 6px 8px 6px 0px;\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: #000;\r\n\r\n ${theme.media.tablet} {\r\n width: 8px;\r\n position: relative;\r\n right: 0;\r\n }\r\n `}\r\n`;\r\n\r\nexport const ButtonActiveTag = styled.button`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n height: 24px;\r\n padding: 0 8px;\r\n border-radius: 4px;\r\n border: 0px;\r\n background-color: #efefef;\r\n margin: 8px 16px 16px 0px;\r\n\r\n ${theme.media.tablet} {\r\n margin: 24px 16px 16px 0px;\r\n }\r\n `}\r\n`;\r\n\r\nexport const CloseTag = styled.div`\r\n color: ${({ theme }: { theme: IDefaultTheme }) => theme.defaultPrimaryColor};\r\n display: inline-block;\r\n`;\r\n","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { useFocus } from '@/shared/hooks/focus';\r\n\r\nimport AllergensAndDietsSvg from '../../../icons/allergensAndDiets.svg';\r\nimport PencilSvg from '../../../icons/pencil.svg';\r\nimport {\r\n CountActiveFilters,\r\n FilterButton,\r\n FilterButtonText,\r\n FilterButtonWrapper,\r\n FilterButtonWrapperSVG,\r\n} from '../parts';\r\n\r\ninterface IProps {\r\n title: string;\r\n onClick: (callback: VoidFunction) => void;\r\n countSelected: number;\r\n ariaDescription: string;\r\n isMobile?: boolean;\r\n idSrOnly: string;\r\n}\r\n\r\nconst ButtonFilter: React.FC = ({\r\n title,\r\n ariaDescription,\r\n onClick,\r\n countSelected,\r\n isMobile = false,\r\n idSrOnly,\r\n}) => {\r\n const { formatMessage } = useIntl();\r\n const messages = {\r\n selections: formatMessage({ id: 'Selections' }),\r\n buttonAriaLabel: formatMessage(\r\n { id: 'Menus.Filters.Buttons.AriaLabel' },\r\n { 0: ariaDescription, 1: countSelected },\r\n ),\r\n };\r\n\r\n const [ref, setFocus] = useFocus();\r\n\r\n const handlerClick = (): void => {\r\n onClick(setFocus);\r\n };\r\n return (\r\n \r\n \r\n {isMobile && (\r\n \r\n )}\r\n {title}\r\n {countSelected > 0 && (\r\n \r\n {isMobile ? (\r\n \r\n ) : (\r\n countSelected\r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {countSelected > 0 ? messages.buttonAriaLabel : ariaDescription}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ButtonFilter;\r\n","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { FILTERS_TYPES } from '@/entities/menu';\r\n\r\nimport { IFilter, ITrackedFilters } from '../../../types';\r\nimport { WrapperFilters } from '../../parts';\r\nimport { ButtonActiveTag, CloseTag } from '../parts';\r\n\r\ninterface ITagProps {\r\n filter: IFilter;\r\n handler: VoidFunction;\r\n}\r\n\r\nconst Tag: React.FC = ({ filter: { Id, Name }, handler }) => {\r\n const { formatMessage } = useIntl();\r\n const messages = {\r\n tagAriaLabel: formatMessage({ id: 'Menus.Filters.Tags.Active.AriaLabel' }, { 0: Name }),\r\n };\r\n return (\r\n \r\n {Name} \r\n \r\n );\r\n};\r\n\r\ninterface ITagsProps {\r\n filters: ITrackedFilters;\r\n handlerClick: (id: string, type: string) => void;\r\n}\r\n\r\nconst TagsActiveFilters: React.FC = ({\r\n filters: { allergens, specialDiets },\r\n handlerClick,\r\n}) => {\r\n const { ALLERGENS, SPECIAL_DIETS } = FILTERS_TYPES;\r\n\r\n const tagsAllergens = allergens.map((filter) => {\r\n const handler = (): void => handlerClick(filter.Id, ALLERGENS);\r\n return ;\r\n });\r\n\r\n const tagsSpecialDiets = specialDiets.map((filter) => {\r\n const handler = (): void => handlerClick(filter.Id, SPECIAL_DIETS);\r\n return ;\r\n });\r\n\r\n const tags = [...tagsAllergens, ...tagsSpecialDiets];\r\n\r\n return {tags.length > 0 && tags};\r\n};\r\n\r\nexport default TagsActiveFilters;\r\n","import React from 'react';\r\n\r\nimport { IFilter } from '../../../types';\r\nimport { ButtonOutline } from '../../parts';\r\n\r\ninterface IProps {\r\n IsActive: IFilter['IsActive'];\r\n Id: IFilter['Id'];\r\n Name: IFilter['Name'];\r\n onClick: (id: string, type?: string) => void;\r\n type?: string;\r\n}\r\n\r\nconst FilterItem: React.FC = ({ IsActive, Id, Name, onClick, type }) => {\r\n const handleOnClick = (): void => {\r\n onClick(Id, type);\r\n };\r\n\r\n return (\r\n \r\n {Name}\r\n \r\n );\r\n};\r\n\r\nexport default FilterItem;\r\n","import React, { PropsWithChildren } from 'react';\r\n\r\nimport { ModalSubheader } from '../../parts';\r\nimport { FilterItemsInModal } from '../parts';\r\n\r\ninterface IProps {\r\n htmlText: string;\r\n}\r\n\r\nconst FilterItems: React.FC> = ({ children, htmlText }) => {\r\n return (\r\n \r\n {' '}\r\n
{children}
\r\n
\r\n );\r\n};\r\n\r\nexport default FilterItems;\r\n","import React, { useCallback, useState } from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { FILTERS_TYPES } from '@/entities/menu';\r\n\r\nimport { ButtonSecond } from '@/shared/components/Button';\r\nimport { ModalOne } from '@/shared/services/modal';\r\nimport type { TPortalModalComponent } from '@/shared/services/modal/type';\r\n\r\nimport type { ITrackedFilters, TFilters } from '../../../types';\r\nimport { Disclaimer, ModalBodyWrapper, WrapperButtons, WrapperContent } from '../../parts';\r\nimport FilterItem from '../blocks/FilterItem';\r\nimport FilterItems from '../blocks/FilterItems';\r\n\r\ninterface IProps {\r\n title: string;\r\n setFocus: VoidFunction;\r\n handleSaveClick: (filters: ITrackedFilters | TFilters) => void;\r\n trackedFilters: ITrackedFilters | TFilters;\r\n isAllergens?: boolean;\r\n}\r\n\r\nconst ModalFilters: TPortalModalComponent = ({\r\n title,\r\n close,\r\n setFocus,\r\n trackedFilters,\r\n handleSaveClick,\r\n isAllergens,\r\n}) => {\r\n const [filters, setFilters] = useState(trackedFilters);\r\n const { formatMessage } = useIntl();\r\n const messages = {\r\n menuDisclaimer: formatMessage({ id: 'menuDisclaimer' }),\r\n save: formatMessage({ id: 'Save' }),\r\n dietsFilterCaption: formatMessage({ id: 'dietsFilterCaption' }),\r\n allergernsFilterCaption: formatMessage({ id: 'allergernsFilterCaption' }),\r\n };\r\n\r\n const handleClose = useCallback((): void => {\r\n close();\r\n setFocus();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const handleSave = (): void => {\r\n handleSaveClick(filters);\r\n close();\r\n setFocus();\r\n };\r\n\r\n const isAllFilters = !Array.isArray(filters);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-shadow\r\n const changeFilterStatusById = (filters: TFilters, id: string): TFilters => {\r\n return filters.map((filter) =>\r\n filter.Id === id ? { ...filter, IsActive: !filter?.IsActive } : filter,\r\n );\r\n };\r\n\r\n const { ALLERGENS, SPECIAL_DIETS } = FILTERS_TYPES;\r\n\r\n const handlerClickFilterItem = (id: string, type?: string): void => {\r\n if (isAllFilters && type) {\r\n // eslint-disable-next-line @typescript-eslint/no-shadow\r\n setFilters((filters) => {\r\n const { allergens, specialDiets } = filters as ITrackedFilters;\r\n if (type === ALLERGENS) {\r\n const newAllergens = changeFilterStatusById(allergens, id);\r\n return { allergens: newAllergens, specialDiets };\r\n }\r\n\r\n const newSpecialDiets = changeFilterStatusById(specialDiets, id);\r\n return { specialDiets: newSpecialDiets, allergens };\r\n });\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/no-shadow\r\n setFilters((filters) => changeFilterStatusById(filters as TFilters, id));\r\n }\r\n };\r\n\r\n let filtersList;\r\n if (isAllFilters) {\r\n const { allergens, specialDiets } = filters;\r\n\r\n const allergensList = allergens.map((filter) => {\r\n return (\r\n \r\n );\r\n });\r\n const allergensItems = (\r\n {allergensList}\r\n );\r\n\r\n const specialDietsList = specialDiets.map((filter) => {\r\n return (\r\n \r\n );\r\n });\r\n const specialDietsItems = (\r\n {specialDietsList}\r\n );\r\n\r\n filtersList = (\r\n <>\r\n {allergensItems}\r\n {specialDietsItems}\r\n \r\n );\r\n } else {\r\n const items = (filters as TFilters).map((filter) => {\r\n return ;\r\n });\r\n\r\n const htmlText = isAllergens ? messages.allergernsFilterCaption : messages.dietsFilterCaption;\r\n filtersList = {items};\r\n }\r\n\r\n const footer = (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n {filtersList}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ModalFilters;\r\n","import React, { PropsWithChildren } from 'react';\r\nimport { useIntl } from 'react-intl';\r\nimport { toQuery, useMediaQuery } from 'react-responsive';\r\n\r\nimport { FILTERS_TYPES, getMenu } from '@/entities/menu';\r\nimport { SaveFilters, getFilters } from '@/entities/menu/filter';\r\n\r\nimport { useAppDispatch, useAppSelector } from '@/shared/hooks/appRedux';\r\nimport { ModalService } from '@/shared/services/modal';\r\nimport { srSpeak } from '@/shared/utils/srSpeak';\r\n\r\nimport type { ITrackedFilters, TAllergens, TFilters, TSpecialDiets } from '../../types';\r\nimport ButtonFilter from './blocks/ButtonFilter';\r\nimport TagsActiveFilters from './blocks/TagsActiveFilters';\r\nimport ModalFilters from './modal/ModalFilters';\r\n\r\ninterface IModel {\r\n model: {\r\n Menu: {\r\n Allergens: TAllergens;\r\n SpecialDiets: TSpecialDiets;\r\n DisplayFoodPreferenceFilter: boolean;\r\n ImportPrimaIngredients: boolean;\r\n };\r\n EnableAllergenFiltering: boolean;\r\n SpecialDietsTitle: string;\r\n AllergensTitle: string;\r\n };\r\n}\r\n\r\nconst Filters: React.FC = ({ children }) => {\r\n const { ALLERGENS } = FILTERS_TYPES;\r\n const {\r\n model: {\r\n Menu: { DisplayFoodPreferenceFilter, ImportPrimaIngredients },\r\n EnableAllergenFiltering,\r\n SpecialDietsTitle,\r\n AllergensTitle,\r\n },\r\n } = useAppSelector(getMenu) as IModel;\r\n\r\n const trackedFilters = useAppSelector(getFilters) as ITrackedFilters;\r\n const { allergens, specialDiets } = trackedFilters;\r\n\r\n const dispatch = useAppDispatch();\r\n\r\n const { formatMessage } = useIntl();\r\n const messages = {\r\n allergernsFilterCaption: formatMessage({ id: 'allergernsFilterCaption' }),\r\n selections: formatMessage({ id: 'Selections' }),\r\n selectDiets: formatMessage({ id: 'SelectDiets' }),\r\n filterAllergensDiets: formatMessage({ id: 'FilterAllergensDiets' }),\r\n menuIsFiltered: formatMessage({ id: 'MenuIsFiltered' }),\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 isShowAllergens = EnableAllergenFiltering && allergens?.length > 0;\r\n const isShowSpecialDiets =\r\n DisplayFoodPreferenceFilter && ImportPrimaIngredients && specialDiets?.length > 0;\r\n const isShowMobileVersion = isMobile && (isShowAllergens || isShowSpecialDiets);\r\n\r\n const activeAllegens = allergens.filter((filter) => filter.IsActive);\r\n const activeSpecialDiets = specialDiets.filter((filter) => filter.IsActive);\r\n\r\n const countActiveAllegens = activeAllegens.length;\r\n const countActiveSpecialDiets = activeSpecialDiets.length;\r\n const countActiveAllFilters = countActiveAllegens + countActiveSpecialDiets;\r\n\r\n const handlerSave = (filters: ITrackedFilters): void => {\r\n dispatch(SaveFilters(filters));\r\n srSpeak(messages?.menuIsFiltered);\r\n };\r\n\r\n const handlerSaveAllergens = (allergenFilters: TAllergens): void => {\r\n const newFilters = { allergens: allergenFilters, specialDiets };\r\n handlerSave(newFilters);\r\n };\r\n\r\n const handlerSaveSpecialDiets = (specialDietsFilters: TSpecialDiets): void => {\r\n const newFilters = { specialDiets: specialDietsFilters, allergens };\r\n handlerSave(newFilters);\r\n };\r\n\r\n const handlerDisableFilter = (filters: TFilters, id: string): TFilters =>\r\n filters.map((filter) => {\r\n if (filter.Id === id) return { ...filter, IsActive: false };\r\n return filter;\r\n });\r\n\r\n const handlerRemoveTags = (id: string, type: string): void => {\r\n let newAllegens = allergens.slice();\r\n let newSpecialDiets = specialDiets.slice();\r\n\r\n if (type === ALLERGENS) {\r\n newAllegens = handlerDisableFilter(newAllegens, id);\r\n } else {\r\n newSpecialDiets = handlerDisableFilter(newSpecialDiets, id);\r\n }\r\n const newFilters = { specialDiets: newSpecialDiets, allergens: newAllegens };\r\n handlerSave(newFilters);\r\n };\r\n\r\n const handlerOpenModal = (options: {\r\n title: string;\r\n setFocus: VoidFunction;\r\n handleSaveClick: (filters: ITrackedFilters | TFilters) => void;\r\n trackedFilters: ITrackedFilters | TFilters;\r\n isAllergens?: boolean;\r\n }): void => {\r\n ModalService.open(ModalFilters, { ...options, ariaDescribedby: 'modalDescription' });\r\n };\r\n\r\n const handlerAllergenButtonClick = (setFocus: VoidFunction): void => {\r\n const options = {\r\n title: AllergensTitle,\r\n setFocus,\r\n handleSaveClick: handlerSaveAllergens,\r\n trackedFilters: allergens,\r\n isAllergens: true,\r\n };\r\n // TODO: rewrite\r\n // @ts-expect-error: rewrite\r\n handlerOpenModal(options);\r\n };\r\n\r\n const handlerSpecialDietsButtonClick = (setFocus: VoidFunction): void => {\r\n const options = {\r\n title: SpecialDietsTitle,\r\n setFocus,\r\n handleSaveClick: handlerSaveSpecialDiets,\r\n trackedFilters: specialDiets,\r\n };\r\n // TODO: rewrite\r\n // @ts-expect-error: rewrite\r\n handlerOpenModal(options);\r\n };\r\n\r\n const handlerMobileButtonClick = (setFocus: VoidFunction): void => {\r\n let title = '';\r\n\r\n if (isShowAllergens && isShowSpecialDiets) {\r\n title = `${AllergensTitle}/${SpecialDietsTitle}`;\r\n } else if (isShowAllergens) {\r\n title = AllergensTitle;\r\n } else {\r\n title = SpecialDietsTitle;\r\n }\r\n\r\n const options = {\r\n title,\r\n setFocus,\r\n handleSaveClick: handlerSave,\r\n trackedFilters,\r\n };\r\n // TODO: rewrite\r\n // @ts-expect-error: rewrite\r\n handlerOpenModal(options);\r\n };\r\n\r\n return (\r\n <>\r\n {isShowMobileVersion && (\r\n \r\n )}\r\n {!isMobile && isShowAllergens && (\r\n \r\n )}\r\n {!isMobile && isShowSpecialDiets && (\r\n \r\n )}\r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Filters;\r\n","var _g;\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 SvgMealCalculatorFilter = function SvgMealCalculatorFilter(_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, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: 3,\n y: 3,\n width: 12,\n height: 4,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 2.97,\n y: 9,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 7.5,\n y: 9,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 7.5,\n y: 13,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 7.5,\n y: 17,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 11.5,\n y: 9,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 2.97,\n y: 13,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 2.97,\n y: 17,\n width: 3,\n height: 3,\n rx: 1,\n ry: 1\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.26,22H2a1,1,0,0,1-1-1V2A1,1,0,0,1,2,1H16a1,1,0,0,1,1,1v9.08A7,7,0,0,1,18,11V2a2,2,0,0,0-2-2H2A2,2,0,0,0,0,2V21a2,2,0,0,0,2,2H13.11A7,7,0,0,1,12.26,22Z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18,12a6,6,0,1,0,6,6A6,6,0,0,0,18,12Zm3.5,8.5h-7v-2h7Zm0-3h-7v-2h7Z\"\n })))));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgMealCalculatorFilter);\nexport default ForwardRef;","import { differenceWith, isEqual } from 'lodash/fp';\r\n\r\nimport { apiSaveFilters } from '@/shared/api/menu';\r\nimport { NOTIFICATIONS, NotificationService } from '@/shared/services/notification';\r\n\r\nimport type { IFiltersSlice } from '../type';\r\nimport { setFrontFilters } from './slice';\r\n\r\nexport const SaveFilters =\r\n (filters: IFiltersSlice['filters']): MenuAppThunk =>\r\n async (dispatch, getState) => {\r\n try {\r\n const { allergens: oldAllergens, specialDiets: oldSpecialDiets } = getState().filters.filters;\r\n const oldFilters = [...oldAllergens, ...oldSpecialDiets];\r\n const { allergens, specialDiets } = filters;\r\n const newFilters = [...allergens, ...specialDiets];\r\n const diffBetweenFilters = differenceWith(isEqual, newFilters, oldFilters).map((filter) => ({\r\n id: filter.Id,\r\n isActive: filter.IsActive,\r\n }));\r\n\r\n if (diffBetweenFilters?.length) {\r\n dispatch(setFrontFilters(filters));\r\n\r\n await apiSaveFilters({ filterItems: diffBetweenFilters });\r\n }\r\n } catch (error) {\r\n NotificationService.open({\r\n status: NOTIFICATIONS.ERROR,\r\n text: (error as Error).message,\r\n });\r\n }\r\n };\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 SvgSearch = function SvgSearch(_ref, ref) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\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 strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z\"\n })));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgSearch);\nexport default ForwardRef;","import React from 'react';\r\n\r\nimport MealCalculatorFilter from '../../../icons/mealCalculatorFilter.svg';\r\n\r\nconst IconMealCalculator: React.FC = () => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default IconMealCalculator;\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport type { IDefaultTheme } from '@/shared/themes/types';\r\n\r\nexport const MealCalculatorButton = styled.button`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n width: 100%;\r\n padding: 4px 2px 2px 21px;\r\n margin: 1px 1px 16px 1px;\r\n border: none;\r\n height: 40px;\r\n border-radius: 22.5px;\r\n background-color: #efefef;\r\n display: inline-flex;\r\n box-sizing: border-box;\r\n position: relative;\r\n\r\n ${theme.media.tablet} {\r\n margin: 1px 16px 1px 1px;\r\n width: auto;\r\n padding: 1px 2px 2px 16px;\r\n }\r\n `}\r\n`;\r\n\r\nexport const WrapperSVG = styled.div`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n width: 56px;\r\n height: 38px;\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 margin: 0;\r\n outline: none;\r\n position: absolute;\r\n right: 1px;\r\n top: 1px;\r\n\r\n ${theme.media.tablet} {\r\n position: relative;\r\n right: 0;\r\n top: 0;\r\n }\r\n `}\r\n`;\r\n\r\nexport const ModalActionButton = styled.button`\r\n ${({ theme }: { theme: IDefaultTheme }) => css`\r\n font-size: 16px;\r\n font-weight: bold;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: ${theme.defaultPrimaryColor};\r\n float: right;\r\n border: none;\r\n background: none;\r\n `}\r\n`;\r\n\r\nexport const ModalBodySpan = styled.span`\r\n font-size: 16px;\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 ModalBodySpanBold = styled(ModalBodySpan)`\r\n font-weight: bold;\r\n`;\r\n","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport {\r\n getTotalMeal,\r\n getTotalMealIds,\r\n setTotalMeal,\r\n setTotalMealIds,\r\n} from '@/entities/menu/product';\r\n\r\nimport { AmountCalories } from '@/shared/components/AmountCalories';\r\nimport { ButtonSecond } from '@/shared/components/Button';\r\nimport { Underline } from '@/shared/components/Underline';\r\nimport { useAppDispatch, useAppSelector } from '@/shared/hooks/appRedux';\r\nimport { ModalOne } from '@/shared/services/modal';\r\nimport { TPortalModalComponent } from '@/shared/services/modal/type';\r\n\r\nimport { Disclaimer, ModalBodyWrapper, WrapperButtons, WrapperContent } from '../../parts';\r\nimport IconMealCalculator from '../blocks/IconMealCalculator';\r\nimport { ModalActionButton, ModalBodySpan, ModalBodySpanBold } from '../parts';\r\n\r\ninterface IProps {\r\n setInputFocus: VoidFunction;\r\n}\r\n\r\nconst MealCaculatorModal: TPortalModalComponent = ({ close, setInputFocus }) => {\r\n const calories = useAppSelector(getTotalMeal)?.Product?.NutritionalTree;\r\n const totalMeal = useAppSelector(getTotalMealIds)?.length;\r\n const { formatMessage } = useIntl();\r\n const messages = {\r\n ok: formatMessage({ id: 'Ok' }),\r\n mealCalculator: formatMessage({ id: 'mealCalculator' }),\r\n toGetStarted: formatMessage({ id: 'ToGetStarted' }),\r\n emptyMessage: formatMessage({ id: 'EmptyMessage' }),\r\n menuDisclaimer: formatMessage({ id: 'menuDisclaimer' }),\r\n clear: formatMessage({ id: 'Menus.Filters.MealCalculator.Button.Clear' }),\r\n totalMeal: formatMessage(\r\n { id: 'Menus.Modals.MealCalculator.Labels.TotalMeal' },\r\n { count: totalMeal },\r\n ),\r\n };\r\n const dispatch = useAppDispatch();\r\n const handleClearClick = (): void => {\r\n dispatch(setTotalMealIds(null));\r\n dispatch(setTotalMeal(null));\r\n };\r\n\r\n const handleClose = (): void => {\r\n close();\r\n setInputFocus();\r\n };\r\n return (\r\n \r\n }\r\n handlerClose={close}\r\n footer={\r\n \r\n \r\n \r\n \r\n \r\n }\r\n isFocusOnCloseButton\r\n >\r\n \r\n \r\n \r\n {totalMeal === 0 && (\r\n

\r\n \r\n \r\n \r\n

\r\n )}\r\n {totalMeal > 0 && (\r\n
\r\n \r\n {messages.totalMeal}\r\n \r\n \r\n {messages.clear}\r\n \r\n \r\n {calories?.length && }\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default MealCaculatorModal;\r\n","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { getTotalMeal, getTotalMealIds } from '@/entities/menu/product';\r\n\r\nimport { useAppSelector } from '@/shared/hooks/appRedux';\r\nimport { useFocus } from '@/shared/hooks/focus';\r\nimport { ModalService } from '@/shared/services/modal';\r\n\r\nimport PencilSvg from '../../icons/pencil.svg';\r\nimport { MainWrapper, TextSpan } from '../parts';\r\nimport IconMealCalculator from './blocks/IconMealCalculator';\r\nimport MealCaculatorModal from './modal/MealCaculatorModal';\r\nimport { MealCalculatorButton, WrapperSVG } from './parts';\r\n\r\nconst MealCalculatorBlock: React.FC = () => {\r\n const totalMeal = useAppSelector(getTotalMealIds).length;\r\n const productInTotalMeal = useAppSelector(getTotalMeal)?.Product;\r\n const calories = productInTotalMeal?.NutritionalTree;\r\n\r\n const [inputRef, setInputFocus] = useFocus();\r\n\r\n const totalCalories = calories?.[0].Value;\r\n\r\n const { formatMessage } = useIntl();\r\n const messages = {\r\n mealCalculator: formatMessage({ id: 'mealCalculator' }),\r\n totalMeal: formatMessage(\r\n { id: 'Menus.Filters.MealCalculator.Button.Name.TotalMeal' },\r\n { count: totalMeal },\r\n ),\r\n cal: formatMessage({ id: 'Menus.Filters.MealCalculator.Button.Name.Cal' }),\r\n buttonSelectedAriaLabel: formatMessage(\r\n { id: 'Menus.Filters.MealCalculator.Button.Selected.AriaLabel' },\r\n { 0: totalMeal, 1: totalCalories },\r\n ),\r\n };\r\n\r\n const handleOpenModal = (): void => {\r\n ModalService.open(MealCaculatorModal, {\r\n setInputFocus,\r\n });\r\n };\r\n\r\n return (\r\n \r\n 0 ? messages.buttonSelectedAriaLabel : messages.mealCalculator}\r\n ref={inputRef}\r\n className=\"MealCalculatorButton\"\r\n >\r\n \r\n {totalMeal > 0 && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MealCalculatorBlock;\r\n","import React, { useCallback, useEffect } from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { getMenu } from '@/entities/menu';\r\nimport { getSearchText, setSearchText } from '@/entities/menu/filter';\r\nimport { setProducts } from '@/entities/menu/product';\r\n\r\nimport { useAppDispatch, useAppSelector } from '@/shared/hooks/appRedux';\r\nimport { useFocus } from '@/shared/hooks/focus';\r\nimport type { TProducts } from '@/shared/types/menu';\r\nimport { srSpeak } from '@/shared/utils/srSpeak';\r\n\r\nimport SearchSvg from '../icons/search.svg';\r\nimport { MainWrapper, SearchInput, SearchInputClean } from './parts';\r\n\r\nconst Search: React.FC = () => {\r\n const model = useAppSelector(getMenu)?.model;\r\n const { formatMessage } = useIntl();\r\n\r\n const searchInputText = useAppSelector(getSearchText);\r\n const allProducts = model?.Menu?.MenuProducts;\r\n\r\n const dispatch = useAppDispatch();\r\n const setSearchInputText = useCallback(\r\n (value: string): void => {\r\n dispatch(setSearchText(value));\r\n },\r\n [dispatch],\r\n );\r\n const setFilteredProducts = (products: TProducts): void => {\r\n dispatch(setProducts(products));\r\n };\r\n\r\n const messages = {\r\n searchAriaLabel: formatMessage({ id: 'SearchAriaLabel' }),\r\n searchPlaceholder: formatMessage({ id: 'SearchPlaceholder' }),\r\n cleanSearchText: formatMessage({ id: 'CleanSearchText' }),\r\n menuIsFiltered: formatMessage({ id: 'MenuIsFiltered' }),\r\n buttonClearAriaLabel: formatMessage({ id: 'Menus.Search.Button.Clear.AriaLabel' }),\r\n };\r\n\r\n const FormatString = (text: string): string => {\r\n return text.trim().toLowerCase();\r\n };\r\n\r\n const [inputRef, setInputFocus] = useFocus();\r\n\r\n useEffect(() => {\r\n setSearchInputText('');\r\n }, [allProducts, setSearchInputText]);\r\n\r\n const searchProducts = (text: string): void => {\r\n if (!allProducts?.length) return;\r\n\r\n const filteredProducts = allProducts.filter((product) => {\r\n const name = product.Product.MarketingName && FormatString(product.Product.MarketingName);\r\n const displayName = product.Product.DisplayName && FormatString(product.Product.DisplayName);\r\n const search = FormatString(text);\r\n\r\n return (name && name.includes(search)) || (displayName && displayName.includes(search));\r\n });\r\n\r\n setFilteredProducts(filteredProducts);\r\n };\r\n\r\n const handlerChange = (event: React.ChangeEvent): void => {\r\n const searchText = event.target.value;\r\n setSearchInputText(searchText);\r\n searchProducts(searchText);\r\n srSpeak(messages.menuIsFiltered, 'polite');\r\n };\r\n\r\n const cleanSearchInput = (): void => {\r\n const searchText = '';\r\n setSearchInputText(searchText);\r\n searchProducts(searchText);\r\n srSpeak(messages.cleanSearchText, 'polite');\r\n setInputFocus();\r\n };\r\n\r\n const removeAriaHidden = (): void => {\r\n inputRef.current?.removeAttribute('aria-hidden');\r\n };\r\n\r\n const openSearchInput = (): void => {\r\n if (inputRef.current === document.activeElement) return;\r\n setInputFocus();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {searchInputText && (\r\n \r\n ✖\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Search;\r\n","import styled from 'styled-components';\r\n\r\nexport const NavigationCustom = styled.nav`\r\n position: sticky;\r\n top: 0;\r\n z-index: 3;\r\n background-color: #fff;\r\n height: max-content;\r\n width: 100%;\r\n max-width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n padding-bottom: 4px;\r\n`;\r\n\r\nexport const OverflowNavWrapper = styled.div`\r\n position: relative;\r\n width: 100%;\r\n height: 0;\r\n`;\r\n\r\nexport const Gear = styled.svg`\r\n width: 24px;\r\n height: 24px;\r\n justify-content: center;\r\n margin-top: 14%;\r\n margin-left: 28%;\r\n path {\r\n fill: ${({ theme }) => theme.defaultPrimaryColor};\r\n }\r\n`;\r\n\r\nexport const CircleDiv = styled.div`\r\n border-radius: 22.5px;\r\n width: 56px;\r\n height: 40px;\r\n box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.15);\r\n margin-top: 16px;\r\n background-color: #f7f7f7;\r\n border: 1px;\r\n z-index: 99;\r\n position: absolute;\r\n`;\r\n","import React from 'react';\r\n\r\nimport { WRAPPER_TABS } from '@/entities/menu';\r\n\r\nimport { CircleDiv, Gear } from '../parts';\r\n\r\nexport const ButtonGear: React.FC = () => {\r\n const getOffset = (): number => {\r\n const bodyRect = document.body.getBoundingClientRect();\r\n const wrapperNodeTabs = document.getElementById(WRAPPER_TABS);\r\n const elemRect = wrapperNodeTabs?.getBoundingClientRect();\r\n\r\n if (elemRect) return elemRect.top - bodyRect.top;\r\n\r\n return bodyRect.top;\r\n };\r\n\r\n const handler = (): void => {\r\n window.scrollTo({ left: 0, top: getOffset(), behavior: 'smooth' });\r\n };\r\n\r\n return (\r\n handler()}>\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 React, { PropsWithChildren, useMemo, useRef, useState } from 'react';\r\nimport { useIntl } from 'react-intl';\r\nimport { toQuery, useMediaQuery } from 'react-responsive';\r\n\r\nimport { getIsWeekly } from '@/entities/menu';\r\nimport { getActiveStantionsForFilter } from '@/entities/menu/filter';\r\n\r\nimport { StickyNavigation } from '@/shared/components/StickyNavigation';\r\nimport { useAppSelector } from '@/shared/hooks/appRedux';\r\n\r\nimport Search from '../Search';\r\nimport { ButtonGear } from './blocks/ButtonGear';\r\nimport { NavigationCustom, OverflowNavWrapper } from './parts';\r\n\r\nconst SUFFIX = '_sticky';\r\n\r\nconst NavigationBar: React.FC = ({ children }) => {\r\n const { formatMessage } = useIntl();\r\n const favoritesTitle = formatMessage({ id: 'Favorites' });\r\n const activeStantions = useAppSelector(getActiveStantionsForFilter);\r\n\r\n const isWeekly = useAppSelector(getIsWeekly);\r\n const [isGear, setGear] = useState(false);\r\n\r\n const options = useMemo(\r\n () =>\r\n activeStantions.map((station, index) => {\r\n const { StationId, Name } = station;\r\n\r\n const nameStation = StationId === '1' ? favoritesTitle : Name;\r\n const active = index === 0;\r\n return { id: StationId, name: nameStation, active };\r\n }),\r\n [activeStantions, favoritesTitle],\r\n );\r\n\r\n const isMobile = useMediaQuery({\r\n query: toQuery({\r\n maxWidth: 767,\r\n }),\r\n });\r\n const headerRef = useRef(null);\r\n const isShowGear = useMemo(() => isMobile && isGear, [isGear, isMobile]);\r\n\r\n const removeSuffix = (text: string): string => {\r\n const regex = new RegExp(`${SUFFIX}$`);\r\n return text.replace(regex, '');\r\n };\r\n const scrollToStationByID = (stickyItemId: string): void => {\r\n const stationNode = document.getElementById(removeSuffix(stickyItemId));\r\n if (stationNode) {\r\n const stationRect = stationNode.getBoundingClientRect();\r\n const bodyRect = document.body.getBoundingClientRect();\r\n const offset = stationRect.top - bodyRect.top;\r\n window.scrollTo(0, offset - (headerRef.current?.offsetHeight || 0));\r\n }\r\n };\r\n\r\n const setFocusStation = (\r\n e: React.KeyboardEvent,\r\n stickyItemId: string,\r\n ): void => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n scrollToStationByID(stickyItemId);\r\n const anchorNode = document.getElementById(removeSuffix(stickyItemId));\r\n const listAll = anchorNode?.querySelectorAll('li');\r\n if (listAll) {\r\n for (let i = 0; i < listAll.length; i++) {\r\n if (listAll[i].querySelector('button') != null) {\r\n listAll[i].getElementsByTagName('button')[0].focus();\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n const prevId = useRef('0');\r\n\r\n const handleActiveAnchor = (): Nullable => {\r\n const listOffsets = options.reduce<{ offset: number; id: string }[]>((acc, item) => {\r\n const element = document.getElementById(item.id);\r\n if (element) {\r\n const bodyRect = document.body.getBoundingClientRect();\r\n const elemRect = element.getBoundingClientRect();\r\n const offset = elemRect.top - bodyRect.top;\r\n if (offset < window.pageYOffset + (headerRef.current?.offsetHeight || 0) + 2) {\r\n return [...acc, { offset, id: element.id }];\r\n }\r\n }\r\n\r\n return acc;\r\n }, []);\r\n\r\n const curId = listOffsets.at(-1)?.id;\r\n\r\n if (curId && curId !== prevId.current) {\r\n prevId.current = curId;\r\n return curId;\r\n }\r\n return null;\r\n };\r\n\r\n const handleScroll = (): Nullable => {\r\n if (isMobile && headerRef.current) {\r\n const headerRect = headerRef.current.getBoundingClientRect();\r\n setGear(headerRect.top <= 0);\r\n }\r\n\r\n const id = handleActiveAnchor();\r\n return id ? `${id}${SUFFIX}` : null;\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n ({\r\n ...opt,\r\n id: `${opt.id}${SUFFIX}`,\r\n }))}\r\n handleClick={scrollToStationByID}\r\n handleKeyDown={setFocusStation}\r\n handleScroll={handleScroll}\r\n >\r\n {!isWeekly && }\r\n \r\n {isShowGear && }\r\n \r\n );\r\n};\r\n\r\nexport default NavigationBar;\r\n","import React, { useEffect } from 'react';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { WRAPPER_TABS, getIsAvailableDatesFoodOrder } from '@/entities/menu';\r\nimport {\r\n getChoosenView,\r\n getDailyMenuDate,\r\n setChoosenMeal,\r\n setDailyMenuDate,\r\n setOrderMenuDate,\r\n} from '@/entities/menu/filter';\r\nimport { getIsProducts } from '@/entities/menu/product';\r\n\r\nimport { fetchMenu } from '@/shared/api/menu';\r\nimport { Tabs as WrapperTabs } from '@/shared/components/Tabs';\r\nimport type { ITabsProps } from '@/shared/components/Tabs/types';\r\nimport { useAppDispatch, useAppSelector } from '@/shared/hooks/appRedux';\r\nimport type { TPeriod } from '@/shared/types/menu';\r\n\r\ninterface IProps {\r\n handlerPickUPTimesModeFoodOrder: (lastIndex: number) => void;\r\n tabIndex: number;\r\n setTabIndex: (value: number) => void;\r\n IsFoodOrder: boolean;\r\n DisplayDailyMenu: boolean;\r\n DisplayFoodOrderMenu: boolean;\r\n DisplayWeeklyMenu: boolean;\r\n defaultDayInPeriod: TPeriod;\r\n}\r\nenum DATA_TABS {\r\n DAYIN_ID = 'dineIn',\r\n ORDER_AHEAD_ID = 'orderAhead',\r\n}\r\nexport const Tabs: React.FC = ({\r\n handlerPickUPTimesModeFoodOrder,\r\n tabIndex,\r\n setTabIndex,\r\n IsFoodOrder,\r\n DisplayDailyMenu,\r\n DisplayFoodOrderMenu,\r\n DisplayWeeklyMenu,\r\n defaultDayInPeriod,\r\n}) => {\r\n const isProducts = useAppSelector(getIsProducts);\r\n const isMenuCalendar = useAppSelector(getIsAvailableDatesFoodOrder);\r\n const menuDate = useAppSelector(getDailyMenuDate);\r\n const dispatch = useAppDispatch();\r\n const handlerChoosenMeal = (period: TPeriod): void => {\r\n dispatch(\r\n setChoosenMeal({\r\n name: period.name,\r\n id: period.periodId ? Number(period.periodId) : null,\r\n }),\r\n );\r\n };\r\n const handlerMenuDate = (value: string): void => {\r\n dispatch(setDailyMenuDate(value));\r\n };\r\n const orderMenuDate = (value: Nullable): void => {\r\n dispatch(setOrderMenuDate(value));\r\n };\r\n const choosenView = useAppSelector(getChoosenView);\r\n\r\n const { formatMessage } = useIntl();\r\n\r\n const messages = {\r\n DineIn: formatMessage({ id: 'DineIn' }),\r\n OrderAhead: formatMessage({ id: 'OrderAhead' }),\r\n };\r\n\r\n const changeMenus = (index: number, lastIndex: number, idTab?: DATA_TABS): void => {\r\n if (idTab === DATA_TABS.DAYIN_ID) {\r\n dispatch(fetchMenu({ mode: choosenView, callback: () => setTabIndex(index) }));\r\n\r\n handlerChoosenMeal(defaultDayInPeriod);\r\n handlerMenuDate(new Date().toDateString());\r\n }\r\n\r\n if (idTab === DATA_TABS.ORDER_AHEAD_ID) {\r\n orderMenuDate(menuDate);\r\n handlerPickUPTimesModeFoodOrder(lastIndex);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n // Called once, after loading the calendar menu.\r\n if (isMenuCalendar && IsFoodOrder && !isProducts) {\r\n handlerPickUPTimesModeFoodOrder(tabIndex);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [isMenuCalendar]);\r\n\r\n const tabsOptions: ITabsProps = {\r\n id: WRAPPER_TABS,\r\n selectedIndex: tabIndex,\r\n onSelect: (index: number, lastIndex: number, event: Event) => {\r\n const idTab = (event.target as HTMLDivElement).dataset.id as DATA_TABS;\r\n changeMenus(index, lastIndex, idTab);\r\n },\r\n isNoContent: true,\r\n listTabs: [\r\n {\r\n id: DATA_TABS.DAYIN_ID,\r\n name: (\r\n \r\n ),\r\n ariaLabel: messages.DineIn,\r\n visible: DisplayFoodOrderMenu && (DisplayDailyMenu || DisplayWeeklyMenu),\r\n panel: null,\r\n disabled: tabIndex === 0,\r\n },\r\n {\r\n id: DATA_TABS.ORDER_AHEAD_ID,\r\n name: (\r\n \r\n ),\r\n ariaLabel: messages.OrderAhead,\r\n visible: DisplayFoodOrderMenu && (DisplayDailyMenu || DisplayWeeklyMenu),\r\n panel: null,\r\n disabled: tabIndex === 1,\r\n },\r\n ],\r\n };\r\n\r\n return ;\r\n};\r\n","import React, { useCallback, useState } from 'react';\r\nimport { toQuery, useMediaQuery } from 'react-responsive';\r\n\r\nimport {\r\n GetPickUPTimes,\r\n GetPickUPTimesForTabs,\r\n getFulfillment,\r\n getMenu,\r\n getMenuCalendar,\r\n setFulfillment,\r\n} from '@/entities/menu';\r\nimport { getOrderMenuDate, setChoosenMeal, setOrderMenuDate } from '@/entities/menu/filter';\r\n\r\nimport { fetchMenu } from '@/shared/api/menu';\r\nimport { ModalOrderAhead } from '@/shared/components/ModalOrderAhead';\r\nimport type {\r\n THandleFetchMenu,\r\n THandlePickUpTimes,\r\n} from '@/shared/components/ModalOrderAhead/types';\r\nimport { FULFILLMENT_METHODS, FulfillmentType, MODE } from '@/shared/constants';\r\nimport { useAppDispatch, useAppSelector } from '@/shared/hooks/appRedux';\r\nimport { ModalService } from '@/shared/services/modal';\r\nimport type { TMenuInitialData } from '@/shared/types/menu';\r\n\r\nimport { CartButton } from './CartButton';\r\nimport { DailyMeal } from './DailyMeal';\r\nimport { Filters } from './Filters';\r\nimport { MealCalculator } from './MealCalculator';\r\nimport { NavigationBar } from './Navigation';\r\nimport { Tabs } from './Tabs';\r\nimport { FilterSeparator, WrapperFilters } from './parts';\r\n\r\nconst PanelTabFilters: React.FC = () => {\r\n const {\r\n model: {\r\n DisplayDailyMenu,\r\n DisplayWeeklyMenu,\r\n DisplayFoodOrderMenu,\r\n SelectedPeriodId,\r\n IsFoodOrder,\r\n IsWeekly,\r\n FulfillmentDelivery,\r\n FulfillmentPickup,\r\n OnlyAllowFutureDaysOnlineOrdering,\r\n OnlyShowCurrentDaysOnlineOrdering,\r\n },\r\n periods,\r\n } = useAppSelector(getMenu) as TMenuInitialData;\r\n const dispatch = useAppDispatch();\r\n\r\n const isMobile = useMediaQuery({\r\n query: toQuery({\r\n maxWidth: 767,\r\n }),\r\n });\r\n\r\n const selectTab = (DisplayDailyMenu || DisplayWeeklyMenu) && !IsFoodOrder ? 0 : 1;\r\n\r\n const [tabIndex, setTabIndex] = useState(selectTab);\r\n\r\n const { FOOD_ORDER } = MODE;\r\n\r\n const fulfillment = useAppSelector(getFulfillment);\r\n const orderMenuDate = useAppSelector(getOrderMenuDate);\r\n const menuCalendar = useAppSelector(getMenuCalendar);\r\n\r\n const handlerPickUPTimesModeFoodOrder = useCallback(\r\n (lastIndex: number) => {\r\n const handleOrderMenuDate = (v: string | null): void => {\r\n dispatch(setOrderMenuDate(v));\r\n };\r\n const handleFulfillment = (v: FulfillmentType): void => {\r\n dispatch(setFulfillment(v));\r\n };\r\n const handlePickUpTimes: THandlePickUpTimes = (v) => {\r\n dispatch(GetPickUPTimes(v));\r\n };\r\n const handleFetchMenu: THandleFetchMenu = (v) => {\r\n dispatch(fetchMenu(v));\r\n };\r\n const selectedTabIndex =\r\n FulfillmentPickup &&\r\n fulfillment.SelectedFulfillmentMethod === FULFILLMENT_METHODS.PICK_UP.name\r\n ? FULFILLMENT_METHODS.PICK_UP.const\r\n : FULFILLMENT_METHODS.DELIVERY.const;\r\n\r\n dispatch(\r\n GetPickUPTimesForTabs({\r\n mode: FOOD_ORDER,\r\n periodId: SelectedPeriodId ? Number(SelectedPeriodId) : null,\r\n fulfillmentMethod: selectedTabIndex,\r\n callback: (defaultPickUPTimes) => {\r\n ModalService.open(ModalOrderAhead, {\r\n setActiveTab: setTabIndex,\r\n tabIndexParent: lastIndex,\r\n OnlyShowCurrentDaysOnlineOrdering,\r\n OnlyAllowFutureDaysOnlineOrdering,\r\n isPickUpTab: FulfillmentPickup,\r\n isDeliveryTab: FulfillmentDelivery,\r\n defaultPickUPTimes,\r\n fulfillment,\r\n orderMenuDate,\r\n setOrderMenuDate: handleOrderMenuDate,\r\n setChoosenMeal,\r\n mode: MODE.FOOD_ORDER,\r\n setFulfillment: handleFulfillment,\r\n menuCalendar,\r\n selectedTabIndex,\r\n handlePickUpTimes,\r\n handleFetchMenu,\r\n });\r\n },\r\n }),\r\n );\r\n },\r\n [\r\n FulfillmentPickup,\r\n fulfillment,\r\n dispatch,\r\n FOOD_ORDER,\r\n SelectedPeriodId,\r\n OnlyShowCurrentDaysOnlineOrdering,\r\n OnlyAllowFutureDaysOnlineOrdering,\r\n FulfillmentDelivery,\r\n orderMenuDate,\r\n menuCalendar,\r\n ],\r\n );\r\n\r\n const content = (\r\n <>\r\n \r\n \r\n \r\n {!IsWeekly && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n return !IsWeekly ? (\r\n <>\r\n {isMobile && content}\r\n {!isMobile && content}\r\n \r\n ) : (\r\n content\r\n );\r\n};\r\nexport default PanelTabFilters;\r\n","import React, { useEffect } from 'react';\r\n\r\nimport { CommonMenu } from '@/widgets/menu/CommonMenu';\r\nimport { PanelTabFilters } from '@/widgets/menu/PanelTabFilters';\r\n\r\nimport { firstLoadOfMenu } from '@/features/menu/InitialMenu';\r\n\r\nimport { GetMenuCalendar, getMenu } from '@/entities/menu';\r\nimport { AddOrRemoveFromFavorite } from '@/entities/menu/product';\r\n\r\nimport { APP_ELEMENTS } from '@/shared/constants';\r\nimport { useAppDispatch, useAppSelector } from '@/shared/hooks/appRedux';\r\nimport { getLoading } from '@/shared/services/loading';\r\nimport { LoadingBackground } from '@/shared/services/modal';\r\n\r\nconst MenuPage: React.FC = () => {\r\n const loading = useAppSelector(getLoading);\r\n const dispatch = useAppDispatch();\r\n\r\n useEffect(() => {\r\n dispatch(firstLoadOfMenu(window.menus));\r\n if (window.menus.model.UserFavoritiesEnabled) {\r\n dispatch(\r\n AddOrRemoveFromFavorite({\r\n isRemoving: false,\r\n }),\r\n );\r\n }\r\n dispatch(GetMenuCalendar(window.menus.model.LocationId, window.menus.model.StoreIds));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const menus = useAppSelector(getMenu);\r\n\r\n if (!menus) return null;\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MenuPage;\r\n","import { setMenu } from '@/entities/menu';\r\nimport { setFilters } from '@/entities/menu/filter';\r\nimport { setProducts } from '@/entities/menu/product';\r\n\r\nimport type { TMenuInitialData } from '@/shared/types/menu';\r\n\r\nexport const firstLoadOfMenu =\r\n (payload: TMenuInitialData): MenuAppThunk =>\r\n (dispatch) => {\r\n dispatch(setMenu(payload));\r\n dispatch(setFilters(payload));\r\n if (!payload.model.IsFoodOrder) dispatch(setProducts(payload.model.Menu.MenuProducts));\r\n };\r\n","import { MenuReducer } from '@/entities/menu';\r\nimport { FilterReducer } from '@/entities/menu/filter';\r\nimport { ProductReducer } from '@/entities/menu/product';\r\n\r\nimport { LoadingReducer } from '@/shared/services/loading';\r\n\r\nimport { Action, ThunkAction, combineReducers, configureStore } from '@reduxjs/toolkit';\r\n\r\nconst rootReducer = combineReducers({\r\n menu: MenuReducer,\r\n products: ProductReducer,\r\n filters: FilterReducer,\r\n loading: LoadingReducer,\r\n});\r\n\r\nconst store = configureStore({\r\n reducer: rootReducer,\r\n devTools: process.env.NODE_ENV !== 'production' && {\r\n name: 'Menus Redux FSD',\r\n },\r\n});\r\n\r\nexport default store;\r\n\r\nexport type MenuRootState = ReturnType;\r\nexport type MenuAppDispatch = typeof store.dispatch;\r\nexport type MenuAppThunk = ThunkAction<\r\n ReturnType,\r\n MenuRootState,\r\n unknown,\r\n Action\r\n>;\r\n","import React from 'react';\r\n\r\nimport { MenuPage } from '@/pages/menu';\r\n\r\nimport { AppProviders } from '@/shared/components/Providers';\r\nimport { APP_ELEMENTS } from '@/shared/constants';\r\nimport { Modal } from '@/shared/services/modal';\r\nimport { Notification } from '@/shared/services/notification';\r\nimport { MenuTheme } from '@/shared/themes';\r\n\r\nimport store from './store';\r\n\r\nconst App: React.FC = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./styles.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./styles.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import 'core-js';\r\nimport React from 'react';\r\nimport { createRoot } from 'react-dom/client';\r\nimport 'regenerator-runtime/runtime';\r\n\r\nimport { APP_ELEMENTS } from '@/shared/constants';\r\n\r\nimport App from './App';\r\nimport './styles.scss';\r\n\r\nconst container = document.getElementById(APP_ELEMENTS.MENUS);\r\nconst root = createRoot(container!);\r\nroot.render();\r\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/react-datepicker/dist/react-datepicker.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_1___ from \"-!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/react-notifications/lib/notifications.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".r-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.r-absolute{position:absolute}.r-relative{position:relative}.\\\\!r-top-auto{top:auto !important}.r-left-3{left:0.75rem}.r-right-2{right:0.5rem}.r-right-4{right:1rem}.r-top-\\\\[0\\\\.6rem\\\\]{top:0.6rem}.r-m-0{margin:0px}.r-m-auto{margin:auto}.\\\\!r-mx-0{margin-left:0px !important;margin-right:0px !important}.r-mx-auto{margin-left:auto;margin-right:auto}.r-my-auto{margin-top:auto;margin-bottom:auto}.\\\\!r-mb-1{margin-bottom:0.25rem !important}.r-mb-6{margin-bottom:1.5rem}.r-mt-0{margin-top:0px}.r-mt-4{margin-top:1rem}.r-mt-5{margin-top:1.25rem}.r-box-border{box-sizing:border-box}.r-block{display:block}.r-flex{display:flex}.r-hidden{display:none}.r-h-10{height:2.5rem}.r-h-3{height:0.75rem}.r-h-4{height:1rem}.r-h-5{height:1.25rem}.r-max-h-9{max-height:2.25rem}.r-max-h-\\\\[calc\\\\(100vh-40px\\\\)\\\\]{max-height:calc(100vh - 40px)}.r-w-4{width:1rem}.r-w-5{width:1.25rem}.r-w-fit{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.r-w-full{width:100%}.r-w-max{width:-webkit-max-content;width:max-content}.r-flex-1{flex:1 1 0%}.r-flex-initial{flex:0 1 auto}.r-flex-shrink-0{flex-shrink:0}.r-flex-grow{flex-grow:1}.r-flex-row{flex-direction:row}.r-flex-col{flex-direction:column}.r-flex-wrap{flex-wrap:wrap}.r-items-start{align-items:flex-start}.r-items-end{align-items:flex-end}.r-items-center{align-items:center}.r-items-baseline{align-items:baseline}.r-justify-start{justify-content:flex-start}.r-justify-center{justify-content:center}.r-justify-between{justify-content:space-between}.r-gap-1{gap:0.25rem}.r-gap-2{gap:0.5rem}.r-gap-4{gap:1rem}.r-rounded-3xl{border-radius:1.5rem}.r-rounded-\\\\[4px\\\\]{border-radius:4px}.r-rounded-full{border-radius:9999px}.r-rounded-md{border-radius:0.375rem}.r-border{border-width:1px}.r-border-0{border-width:0px}.r-border-solid{border-style:solid}.r-border-none{border-style:none}.r-border-black{--tw-border-opacity:1;border-color:rgb(0 0 0 / var(--tw-border-opacity, 1))}.r-border-gray-500{--tw-border-opacity:1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.r-border-opacity-20{--tw-border-opacity:0.2}.r-bg-\\\\[\\\\#727272\\\\]{--tw-bg-opacity:1;background-color:rgb(114 114 114 / var(--tw-bg-opacity, 1))}.r-bg-primary{background-color:var(--primary-color, #3a7aaa)}.r-bg-transparent{background-color:transparent}.r-fill-none{fill:none}.r-fill-primary{fill:var(--primary-color, #3a7aaa)}.r-fill-white{fill:#fff}.r-stroke-gray-400{stroke:#9ca3af}.r-stroke-primary{stroke:var(--primary-color, #3a7aaa)}.r-stroke-\\\\[2\\\\]{stroke-width:2}.r-stroke-\\\\[3\\\\]{stroke-width:3}.r-p-0{padding:0px}.r-p-1{padding:0.25rem}.r-p-4{padding:1rem}.r-px-2{padding-left:0.5rem;padding-right:0.5rem}.r-px-4{padding-left:1rem;padding-right:1rem}.r-px-6{padding-left:1.5rem;padding-right:1.5rem}.r-px-9{padding-left:2.25rem;padding-right:2.25rem}.r-py-1{padding-top:0.25rem;padding-bottom:0.25rem}.r-py-2{padding-top:0.5rem;padding-bottom:0.5rem}.r-py-3{padding-top:0.75rem;padding-bottom:0.75rem}.r-pt-2{padding-top:0.5rem}.r-text-center{text-align:center}.r-text-2xl{font-size:1.5rem;line-height:2rem}.r-text-4xl{font-size:2.25rem;line-height:2.5rem}.r-text-base{font-size:1rem;line-height:1.5rem}.r-text-lg{font-size:1.125rem;line-height:1.75rem}.r-text-sm{font-size:0.875rem;line-height:1.25rem}.r-font-bold{font-weight:700}.r-font-normal{font-weight:400}.r-uppercase{text-transform:uppercase}.r-leading-4{line-height:1rem}.r-text-black{--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.r-text-green-700{--tw-text-opacity:1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.r-text-red-700{--tw-text-opacity:1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.r-text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.\\\\!r-no-underline{-webkit-text-decoration-line:none !important;text-decoration-line:none !important}body{overflow:initial}.overflow_hidden{overflow:hidden}.react-datepicker{transform:scale(1.2);margin-top:13px;margin-left:284px;position:absolute;z-index:1}@media(max-width: 767px){.react-datepicker{margin:0px;top:7px;left:16px}}.react-datepicker__current-month{margin:0;line-height:22px}.notification-container{width:initial;max-width:500px}.notification-container .notification-error{padding:16px;background-color:#fff;border:1px solid #ad1d00}.notification-container .notification-error::before{content:none}.notification-container .notification-error .notification-message>*{color:#ad1d00}.notification-container .notification-error .notification-message .message{margin:0}.react-datepicker__day.react-datepicker__day--keyboard-selected{background:none !important;color:#000}.react-datepicker__navigation .react-datepicker__navigation-icon::before{border-color:#8a8a8a}.react-datepicker__navigation:hover *::before{border-color:#6e6e6e}.svg-icon{height:24px;width:24px;fill:var(--primary-color, #3a7aaa)}.svg-filters{position:relative;top:6px;width:2em}.svg-cart-button{position:relative;top:6px;margin-left:16px}.react-tabs{-webkit-tap-highlight-color:rgba(0,0,0,0)}.react-tabs__tab-list{border-bottom:1px solid #aaa;margin:0 0 10px;padding:0}.react-tabs__tab{display:inline-block;border:1px solid rgba(0,0,0,0);border-bottom:none;bottom:-1px;position:relative;list-style:none;padding:6px 12px;cursor:pointer}.react-tabs__tab--selected{background:#fff;border-color:#aaa;color:#000;border-radius:5px 5px 0 0}.react-tabs__tab--disabled{color:GrayText;cursor:default}.react-tabs__tab:focus{outline:none}.react-tabs__tab:focus:after{content:\\\"\\\";position:absolute;height:5px;left:-4px;right:-4px;bottom:-5px;background:#fff}.react-tabs__tab-panel{display:none}.react-tabs__tab-panel--selected{display:block}.is-react-sticky{position:-webkit-sticky;position:sticky;top:0}.is-react-gear{display:block !important}.is-react-active-sticky{background-color:var(--primary-color, #216ba5) !important;color:#fff !important}.svg-icon-search{height:24px;width:24px;fill:none;stroke:var(--primary-color, #3a7aaa);stroke-width:3;position:absolute;top:3px;left:3px;cursor:pointer}.hover\\\\:r-bg-secondary:hover{background-color:var(--secondary-color, #1b476a)}.hover\\\\:r-text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.focus\\\\:r-border-primary:focus{border-color:var(--primary-color, #3a7aaa)}.focus\\\\:r-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\\\:r-outline-offset-0:focus{outline-offset:0px}.focus\\\\:r-outline-primary:focus{outline-color:var(--primary-color, #3a7aaa)}@media (min-width: 768px){.md\\\\:\\\\!r-absolute{position:absolute !important}.md\\\\:\\\\!r-bottom-10{bottom:2.5rem !important}.md\\\\:\\\\!r-right-10{right:2.5rem !important}.md\\\\:r-w-96{width:24rem}.md\\\\:r-w-\\\\[22rem\\\\]{width:22rem}.md\\\\:r-flex-row{flex-direction:row}.md\\\\:r-gap-0{gap:0px}.md\\\\:r-overflow-auto{overflow:auto}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/shared/styles.scss\",\"webpack://./node_modules/react-tabs/style/react-tabs.scss\",\"webpack://./src/app/bootstrap/menu/styles.scss\"],\"names\":[],\"mappings\":\"AAQA,WAAA,iBAAA,CAAA,SAAA,CAAA,UAAA,CAAA,SAAA,CAAA,WAAA,CAAA,eAAA,CAAA,qBAAA,CAAA,kBAAA,CAAA,cAAA,CAAA,YAAA,iBAAA,CAAA,YAAA,iBAAA,CAAA,cAAA,mBAAA,CAAA,UAAA,YAAA,CAAA,WAAA,YAAA,CAAA,WAAA,UAAA,CAAA,mBAAA,UAAA,CAAA,OAAA,UAAA,CAAA,UAAA,WAAA,CAAA,UAAA,0BAAA,CAAA,2BAAA,CAAA,WAAA,gBAAA,CAAA,iBAAA,CAAA,WAAA,eAAA,CAAA,kBAAA,CAAA,UAAA,gCAAA,CAAA,QAAA,oBAAA,CAAA,QAAA,cAAA,CAAA,QAAA,eAAA,CAAA,QAAA,kBAAA,CAAA,cAAA,qBAAA,CAAA,SAAA,aAAA,CAAA,QAAA,YAAA,CAAA,UAAA,YAAA,CAAA,QAAA,aAAA,CAAA,OAAA,cAAA,CAAA,OAAA,WAAA,CAAA,OAAA,cAAA,CAAA,WAAA,kBAAA,CAAA,gCAAA,6BAAA,CAAA,OAAA,UAAA,CAAA,OAAA,aAAA,CAAA,SAAA,yBAAA,CAAA,sBAAA,CAAA,iBAAA,CAAA,UAAA,UAAA,CAAA,SAAA,yBAAA,CAAA,iBAAA,CAAA,UAAA,WAAA,CAAA,gBAAA,aAAA,CAAA,iBAAA,aAAA,CAAA,aAAA,WAAA,CAAA,YAAA,kBAAA,CAAA,YAAA,qBAAA,CAAA,aAAA,cAAA,CAAA,eAAA,sBAAA,CAAA,aAAA,oBAAA,CAAA,gBAAA,kBAAA,CAAA,kBAAA,oBAAA,CAAA,iBAAA,0BAAA,CAAA,kBAAA,sBAAA,CAAA,mBAAA,6BAAA,CAAA,SAAA,WAAA,CAAA,SAAA,UAAA,CAAA,SAAA,QAAA,CAAA,eAAA,oBAAA,CAAA,mBAAA,iBAAA,CAAA,gBAAA,oBAAA,CAAA,cAAA,sBAAA,CAAA,UAAA,gBAAA,CAAA,YAAA,gBAAA,CAAA,gBAAA,kBAAA,CAAA,eAAA,iBAAA,CAAA,gBAAA,qBAAA,CAAA,qDAAA,CAAA,mBAAA,qBAAA,CAAA,2DAAA,CAAA,qBAAA,uBAAA,CAAA,mBAAA,iBAAA,CAAA,2DAAA,CAAA,cAAA,8CAAA,CAAA,kBAAA,4BAAA,CAAA,aAAA,SAAA,CAAA,gBAAA,kCAAA,CAAA,cAAA,SAAA,CAAA,mBAAA,cAAA,CAAA,kBAAA,oCAAA,CAAA,gBAAA,cAAA,CAAA,gBAAA,cAAA,CAAA,OAAA,WAAA,CAAA,OAAA,eAAA,CAAA,OAAA,YAAA,CAAA,QAAA,mBAAA,CAAA,oBAAA,CAAA,QAAA,iBAAA,CAAA,kBAAA,CAAA,QAAA,mBAAA,CAAA,oBAAA,CAAA,QAAA,oBAAA,CAAA,qBAAA,CAAA,QAAA,mBAAA,CAAA,sBAAA,CAAA,QAAA,kBAAA,CAAA,qBAAA,CAAA,QAAA,mBAAA,CAAA,sBAAA,CAAA,QAAA,kBAAA,CAAA,eAAA,iBAAA,CAAA,YAAA,gBAAA,CAAA,gBAAA,CAAA,YAAA,iBAAA,CAAA,kBAAA,CAAA,aAAA,cAAA,CAAA,kBAAA,CAAA,WAAA,kBAAA,CAAA,mBAAA,CAAA,WAAA,kBAAA,CAAA,mBAAA,CAAA,aAAA,eAAA,CAAA,eAAA,eAAA,CAAA,aAAA,wBAAA,CAAA,aAAA,gBAAA,CAAA,cAAA,mBAAA,CAAA,4CAAA,CAAA,kBAAA,mBAAA,CAAA,gDAAA,CAAA,gBAAA,mBAAA,CAAA,gDAAA,CAAA,cAAA,mBAAA,CAAA,kDAAA,CAAA,kBAAA,4CAAA,CAAA,oCAAA,CAEA,KACE,gBAAA,CAEF,iBACE,eAAA,CAGF,kBACE,oBAAA,CACA,eAAA,CACA,iBAAA,CACA,iBAAA,CACA,SAAA,CAEA,yBAPF,kBAQI,UAAA,CACA,OAAA,CACA,SAAA,CAAA,CAGJ,iCACE,QAAA,CACA,gBAAA,CAIF,wBACE,aAAA,CACA,eAAA,CAEA,4CACE,YAAA,CAEA,qBAAA,CACA,wBAAA,CAEA,oDACE,YAAA,CAGA,oEACE,aAjBE,CAoBJ,2EACE,QAAA,CAOR,gEACE,0BAAA,CACA,UAAA,CAKE,yEACE,oBAAA,CAGJ,8CACE,oBAAA,CAIJ,UACE,WAAA,CACA,UAAA,CACA,kCAAA,CAGF,aACE,iBAAA,CACA,OAAA,CACA,SAAA,CAGF,iBACE,iBAAA,CACA,OAAA,CACA,gBAAA,CC7FF,YACE,yCAAA,CAEA,sBACE,4BAAA,CACA,eAAA,CACA,SAAA,CAGF,iBACE,oBAAA,CACA,8BAAA,CACA,kBAAA,CACA,WAAA,CACA,iBAAA,CACA,eAAA,CACA,gBAAA,CACA,cAAA,CAEA,2BACE,eAAA,CACA,iBAAA,CACA,UAAA,CACA,yBAAA,CAGF,2BACE,cAAA,CACA,cAAA,CAGF,uBACE,YAAA,CAEA,6BACE,UAAA,CACA,iBAAA,CACA,UAAA,CACA,SAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CAKN,uBACE,YAAA,CAEA,iCACE,aAAA,CC/CN,iBACE,uBAAA,CAAA,eAAA,CACA,KAAA,CAGF,eACE,wBAAA,CAGF,wBACE,yDAAA,CACA,qBAAA,CAGF,iBACE,WAAA,CACA,UAAA,CACA,SAAA,CACA,oCAAA,CACA,cAAA,CACA,iBAAA,CACA,OAAA,CACA,QAAA,CACA,cAAA,CF1BM,6BAAA,gDE0BN,CF1BM,2BAAA,mBE0BN,CF1BM,kDE0BN,CF1BM,+BAAA,0CE0BN,CF1BM,6BAAA,6BE0BN,CF1BM,kBE0BN,CF1BM,iCAAA,kBE0BN,CF1BM,gCAAA,2CE0BN,CF1BM,0BAAA,kBAAA,4BE0BN,CF1BM,mBAAA,wBE0BN,CF1BM,kBAAA,uBE0BN,CF1BM,YAAA,WE0BN,CF1BM,mBAAA,WE0BN,CF1BM,gBAAA,kBE0BN,CF1BM,aAAA,OE0BN,CF1BM,qBAAA,aE0BN,CAAA\",\"sourcesContent\":[\"@import 'react-datepicker/dist/react-datepicker.css';\\r\\n@import 'react-notifications/lib/notifications.css';\\r\\n\\r\\n/* \\r\\n Add only after transferring the entire site to ReactJs\\r\\n @tailwind base; \\r\\n*/\\r\\n@tailwind components;\\r\\n@tailwind utilities;\\r\\n\\r\\nbody {\\r\\n overflow: initial;\\r\\n}\\r\\n.overflow_hidden {\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.react-datepicker {\\r\\n transform: scale(1.2);\\r\\n margin-top: 13px;\\r\\n margin-left: 284px;\\r\\n position: absolute;\\r\\n z-index: 1;\\r\\n\\r\\n @media (max-width: 767px) {\\r\\n margin: 0px;\\r\\n top: 7px;\\r\\n left: 16px;\\r\\n }\\r\\n}\\r\\n.react-datepicker__current-month {\\r\\n margin: 0;\\r\\n line-height: 22px;\\r\\n}\\r\\n$redText: #ad1d00;\\r\\n\\r\\n.notification-container {\\r\\n width: initial;\\r\\n max-width: 500px;\\r\\n\\r\\n .notification-error {\\r\\n padding: 16px;\\r\\n\\r\\n background-color: #fff;\\r\\n border: 1px solid $redText;\\r\\n\\r\\n &::before {\\r\\n content: none;\\r\\n }\\r\\n .notification-message {\\r\\n & > * {\\r\\n color: $redText;\\r\\n }\\r\\n\\r\\n .message {\\r\\n margin: 0;\\r\\n }\\r\\n }\\r\\n }\\r\\n}\\r\\n\\r\\n// react-datepicker next month selected date fix\\r\\n.react-datepicker__day.react-datepicker__day--keyboard-selected {\\r\\n background: none !important;\\r\\n color: black;\\r\\n}\\r\\n\\r\\n.react-datepicker__navigation {\\r\\n .react-datepicker__navigation-icon {\\r\\n &::before {\\r\\n border-color: #8a8a8a;\\r\\n }\\r\\n }\\r\\n &:hover *::before {\\r\\n border-color: #6e6e6e;\\r\\n }\\r\\n}\\r\\n\\r\\n.svg-icon {\\r\\n height: 24px;\\r\\n width: 24px;\\r\\n fill: var(--primary-color, #3a7aaa);\\r\\n}\\r\\n\\r\\n.svg-filters {\\r\\n position: relative;\\r\\n top: 6px;\\r\\n width: 2em;\\r\\n}\\r\\n\\r\\n.svg-cart-button {\\r\\n position: relative;\\r\\n top: 6px;\\r\\n margin-left: 16px;\\r\\n}\\r\\n\",\".react-tabs {\\n -webkit-tap-highlight-color: transparent;\\n\\n &__tab-list {\\n border-bottom: 1px solid #aaa;\\n margin: 0 0 10px;\\n padding: 0;\\n }\\n\\n &__tab {\\n display: inline-block;\\n border: 1px solid transparent;\\n border-bottom: none;\\n bottom: -1px;\\n position: relative;\\n list-style: none;\\n padding: 6px 12px;\\n cursor: pointer;\\n\\n &--selected {\\n background: #fff;\\n border-color: #aaa;\\n color: black;\\n border-radius: 5px 5px 0 0;\\n }\\n\\n &--disabled {\\n color: GrayText;\\n cursor: default;\\n }\\n\\n &:focus {\\n outline: none;\\n\\n &:after {\\n content: \\\"\\\";\\n position: absolute;\\n height: 5px;\\n left: -4px;\\n right: -4px;\\n bottom: -5px;\\n background: #fff;\\n }\\n }\\n }\\n\\n &__tab-panel {\\n display: none;\\n\\n &--selected {\\n display: block;\\n }\\n }\\n}\\n\",\"@import '@/shared/styles.scss';\\r\\n@import 'react-tabs/style/react-tabs.scss';\\r\\n\\r\\n.is-react-sticky {\\r\\n position: sticky;\\r\\n top: 0;\\r\\n}\\r\\n\\r\\n.is-react-gear {\\r\\n display: block !important;\\r\\n}\\r\\n\\r\\n.is-react-active-sticky {\\r\\n background-color: var(--primary-color, #216ba5) !important;\\r\\n color: #fff !important;\\r\\n}\\r\\n\\r\\n.svg-icon-search {\\r\\n height: 24px;\\r\\n width: 24px;\\r\\n fill: none;\\r\\n stroke: var(--primary-color, #3a7aaa);\\r\\n stroke-width: 3;\\r\\n position: absolute;\\r\\n top: 3px;\\r\\n left: 3px;\\r\\n cursor: pointer;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 328;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl + \"../../../../../React/\";","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t328: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkaramark_acp_react\"] = self[\"webpackChunkaramark_acp_react\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [658,335,903], function() { return __webpack_require__(41033); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["menuSlice","createSlice","name","initialState","Menu","Fulfillment","MenuCalendar","Categories","requestParameters","mode","reducers","setMenu","state","action","payload","model","setFulfillment","setMenuCalendar","setMealPeriods","MenuPeriods","setSelectedPeriodId","SelectedPeriodId","setCurrentCartItemsQuantity","CurrentCartItemsQuantity","extraReducers","builder","addCase","fetchMenu","fulfilled","_ref","_ref$payload","menu","_menuSlice$actions","actions","getLinkToLoginPageWithReturnUrl","createSelector","_ref2","_menu$Menu","LinkToLoginPageWithReturnUrl","getMenu","_ref3","isHideProductsShortDescription","_ref4","_menu$Menu2","HideProductsShortDescription","_ref5","getIsWeekly","_ref6","_menu$Menu3","IsWeekly","_ref7","getCategories","_ref8","getIsShowCategories","_ref9","_menu$Menu4","ShowCategories","getMenuStations","_ref10","_menu$Menu5","MenuStations","getSelectedPeriodId","_ref11","_menu$Menu6","getMenuCalendar","_ref12","getIsAvailableDatesFoodOrder","AvailableDatesFoodOrder","length","getFulfillment","_ref13","productsSlice","list","TotalMeal","TotalMealIds","FavoriteProductIds","setProducts","_objectSpread","setFavoriteProducts","_action$payload","userFavoritiesEnabled","favoritesIds","FavoriteProducts","setTotalMealIds","MenuProductId","total","_toConsumableArray","ind","indexOf","_spliceInstanceProperty","call","push","setTotalMeal","_context","_context2","MenuProducts","UserFavoritiesEnabled","_mapInstanceProperty","_filterInstanceProperty","item","IsUserFavorite","_productsSlice$action","FoodProductDetails","callback","prod","root","_asyncToGenerator","_regeneratorRuntime","_callee2","dispatch","getState","_getState$menu$reques","locationId","date","periodId","response","prev","next","setLoading","fetchFoodProductDetails","sent","t0","NotificationService","open","status","NOTIFICATIONS","ERROR","text","message","finish","stop","_x3","_x4","apply","arguments","AddOrRemoveFromFavorite","catalogId","productId","storeIds","isRemoving","selectedPeriodId","customDate","_callee3","_getState$menu$Menu","_getState$menu$reques2","_context3","abrupt","addOrRemoveFavoriteProduct","_x5","_x6","filterProducts","filters","products","allergens","specialDiets","activeAllergensFilters","filter","IsActive","activeSpecialDietsFilters","product","_product$Product","availableFilters","_Object$entries","Product","AvailableFilters","isNotAllergen","some","allergen","_slicedToArray","id","value","matchesId","Id","Name","isSpecialDiet","every","diet","getIsProducts","getTotalMealIds","getTotalMeal","cacheMenuStations","cacheProducts","getActiveStantions","stations","sortBy","station","StationRank","Number","PeriodId","StationId","getFavoriteProductIds","cacheFavoriteProductIds","getFilterProducts","getFavoriteProducts","reorderList","IsTopPurchased","sortList","sortedUniqBy","_includesInstanceProperty","p","_concatInstanceProperty","getIsPaypalOnList","PayPalEnabled","_g","_excluded","_extends","Object","assign","bind","n","e","t","r","hasOwnProperty","SvgMealCalculatorDone","ref","title","titleId","props","o","i","includes","_objectWithoutPropertiesLoose","getOwnPropertySymbols","s","propertyIsEnumerable","_objectWithoutProperties","x","y","width","height","rx","ry","d","forwardRef","SvgMealCalculatorPlus","WrapperGoesWellWith","styled","div","_templateObject","_taggedTemplateLiteral","theme","css","_templateObject2","media","tablet","ProductCardComponent","phone","ButtonMealCalc","button","_templateObject3","CalcMsgStyled","span","_templateObject4","_templateObject5","fontSizes","normal","fontWeight","medium","ButtonMealCalculator","menuProductId","marketingName","_ref$dataTestid","dataTestId","isProductInTotalMeal","useAppSelector","useAppDispatch","formatMessage","useIntl","messages","add","remove","ariaLabel","ariaDescribedby","concat","_jsxs","onClick","srSpeak","_callee","getDataForMealCalculator","_x","_x2","className","children","_jsx","MealCalculatorDoneSVG","viewBox","role","focusable","MealCalculatorPlusSVG","MealCalcNutrition","addCalc","replace","removeCalc","_Fragment","dangerouslySetInnerHTML","__html","Content","AddFavorite","close","linkToLoginPageWithReturnUrl","addToFavoriteModalBody","skip","signIn","added","footer","ButtonSecond","isDark","padding","margin","click","ButtonLink","link","ModalOne","handlerClose","isFocusOnCloseButton","_product$Product2","_product$Product3","_product$Product5","_product$Product11","_product$Product12","_product$Product13","_product$Product14","_product$Product15","menuModel","isFavorite","hideProductsShortDescription","fulfillment","addCart","isProductCalories","HideProductsCalorie","hasValue","Calories","isOpenNutritionalInformation","HideProductsNutritional","IsBulkProduct","HasNutritionalInformation","canSelectProduct","OnlyAllowFutureDaysOnlineOrdering","OnlyShowCurrentDaysOnlineOrdering","IsCheckoutAndCartEnabled","Date","isOrderAllowed","IsFoodOrder","HasDeliverySlotInSchedule","handleAddToFavorites","useCallback","ProductId","CatalogId","data","_product$Product4","unauthorized","ModalService","MarketingName","handleClickAddToCart","updateData","setShowWarningMsg","_window","showWarningMsg","UserOrderingInfo","StoreId","Configuration","RecipientInstructions","PickupTimeIncrement","DeliveryLeadTimeFrame","DeliveryLeadTime","pageStoreId","SelectedFulfillmentMethod","PickUpFulfillment","DeliveryFulfillment","mealType","PickUpLocation","SelectedDate","DeliveryLocation","method","PICK_UP","DELIVERY","_response$currentCart","Errors","isSlotExpired","crossSellProducts","showErrorInModal","msg","fulfillmentMethod","FULFILLMENT_METHODS","RequestParameters","format","FORMAT_DATE_TIME","MMDDYYYY","LocationId","String","addFoodProductToCart","const","GetPickUPTimesForTabs","MODE","FOOD_ORDER","defaultPickUPTimes","ModalOrderAhead","isPickUpTab","FulfillmentPickup","isDeliveryTab","FulfillmentDelivery","v","setOrderMenuDate","orderMenuDate","setChoosenMeal","msgForSlotExpired","menuCalendar","selectedTabIndex","handlePickUpTimes","GetPickUPTimes","handleFetchMenu","Array","isArray","forEach","errorMsg","currentCartItemsQuantity","BasketPreiewAction","GoesWellWith","setTimeout","cartButton","document","querySelector","MENU_CHECKOUT_BUTTON_STYLE_CLASS","focus","AddFoodProductToCart","window","gaGtag","_product$Product6","_product$Product7","_product$Product8","_product$Product$Cate","_product$Product9","_product$Product10","productDataForEvent","item_id","item_name","DisplayName","item_category","CategoryId","price","CurrentPrice","quantity","SelectedProductQuantity","addProductToCart","uxClickEvent","handleOpenFoodProductDetails","productDetailsWithModifiers","ModalProduct","handlerFooter","nutritionComponent","Nutrition","productInfo","calcComponent","allowGA","nameButton","shouldReturnFocusAfterClose","ProductCard","context","renderButtonMealCalculator","_sliceInstanceProperty","productList","ProductTile","Button","borderRadius","weeks","getWeeks","choosenMeal","choosenView","DAILY","dailyMenuDate","weeklyMenuStartDate","startOfWeek","weeklyMenuEndDate","endOfWeek","searchText","filterSlice","setFilters","_action$payload$model","defaultMode","Allergens","SpecialDiets","setChoosenView","setDailyMenuDate","setWeeklyMenuStartDate","setWeeklyMenuEndDate","setFrontFilters","setSearchText","_filterSlice$actions","getActiveStantionsForFilter","isShowFavorite","_state$menu$Menu","_state$menu$Menu3","_state$menu$Menu2","isFavoriteProducts","unshift","activeStantions","getChoosenMeal","getChoosenView","getDailyMenuDate","getOrderMenuDate","getWeeklyMenuStartDate","getWeeklyMenuEndDate","getFilters","getSearchText","GetMenuPeriods","storeId","_response$Result$find","_context4","getMenuPeriods","SelectedMealPeriodId","Result","period","PeriodName","_findInstanceProperty","_getState$menu2","_getState","_context5","getPickUPTimes","handleTurnOffLoading","_callee4","_","_context6","_x7","_x8","DISPLAY_DEEMPHASIZED_TYPES","WRAPPER_TABS","PRE_SELECTED","FILTERS_TYPES","MenuItemsDiv","gapBetweenCards","desktop","gapBetweenCardsForLg","largeDesktop","MenuUl","ul","MenuCategory","hide","NoProduct","_templateObject6","isShow","Disclaimer","_templateObject7","MenuAddOns","_templateObject8","CollapseDeemphasizedButton","ButtonText","_templateObject9","toPrint","CategoryName","h2","_templateObject10","MenuParentCategory","_templateObject11","MenuStation","_templateObject12","MenuWrapperDaily","_templateObject13","MenuDaily","_templateObject14","MenuContainer","_templateObject15","StationDescription","_templateObject16","_templateObject17","percentForNCards","cardWidthFromMdToLg","StationHeaderTitle","_templateObject18","StationHeader","_templateObject19","StationHeaderBlock","_templateObject20","StationImg","_templateObject21","_templateObject22","undefined","WeeklyMenuItem","WeeklyMenuItemHeader","WeeklyMenuItemPrice","WeeklyMenuItemStations","WeeklyMenuItems","PrintWeeklyMenuBtn","HeaderItemTopWeeklyWrapper","HeaderItemNameLinkWeeklyMenuButton","defaultPrimaryColor","HeaderItemNameLinkWeeklyMenuText","MenuItem","_useAppSelector","calories","viewProductDetailsTitle","isShowPrice","DisplayPriceOnTheMenu","isShowCalories","productName","style","marginBottom","fontSize","display","MenuItems","featuredProducts","deemphasizedProducts","seeLess","seeMore","initialCollapse","DisplayDeemphasizedType","CollapseDeemphasized","_useState","useState","_useState2","isCollapseDeemphasized","setCollapseDeemphasized","collapseDeemphasizedTitle","showDeemphasizedButton","PlusOrMinus","isPlus","WeeklyMenuItemStation","WeeklyMenuItemBody","day","menuStations","menuCategories","IsShowMenuCategories","filterMenuStation","multipleStationsExist","filterProductsByStationAndDate","dayOfMonth","AssignedDate","isSameDay","stationHeaders","categories","stationProducts","productsByStationAndDate","stationId","element","category","productsByCategory","_findIndexInstanceProperty","cat","IsDeemphasized","displayName","_stationHeaders$find","stationProduct","sh","handlePrint","print","xmlns","transform","fill","marginLeft","days","startDate","endDate","parseWeek","WeeklyMenu","componentRef","useRef","filteredProducts","noMenu","_useFocus","useFocus","_useFocus2","inputRef","setInputFocus","timestamps","_reduceInstanceProperty","acc","getTime","_sortInstanceProperty","uniqBy","timestamp","timestamp1","timestamp2","compareAsc","EEEE","useReactToPrint","content","current","onAfterPrint","removeAfterPrint","pageStyle","WeeklyPrintBtn","WeeklyPrintContent","MenuItemsPart","elementsProducts","useMemo","MenuItemsBlock","_ref$productsWithoutD","productsWithoutDeemphasized","_ref$productsWithDeem","productsWithDeemphasized","IsDaily","alsoAvailable","productBlocks","deemphasizedProductBlocks","memo","isPropsEqual","StationHeaderComponent","_ref$withOutImg","withOutImg","StationImagePath","Img","src","mobMargin","hidden","alt","COUNT_PRODUCT_CARDS","_window$menus","isLaptop","useMediaQuery","query","toQuery","minWidth","isTablet","isMobile","maxWidth","isPaypalOnList","usePayPal","clientId","menus","paypal_client_id","isLoadScript","searchInputText","NoFiltersMenu","NoFoodOrderMenu","favorites","NoMenuNoneFound","count","divideListProduct","chunk","favoriteProducts","isProducts","isFavorites","stationViews","productByStation","shownCategories","categoryDisplayName","_p$Product$Categories","c","getProductsWithoutDeemphasized","getProductsWithDeemphasized","toLower","IsFavorites","getDivideListFavoriteProducts","isAnyViews","textNoMenuForDaily","textNoMenuForFoodOrder","SvgCart","fillRule","size","CheckOutButton","CartButtonDiv","CartItemsText","small","_menus$model","linkToCart","location","origin","CartUrl","allCookies","cookie","split","_c$trim$split","_trimInstanceProperty","itemsCount","parseInt","checkout","ariaLive","useEffect","CartIconSvg","ModalBodyWrapper","ModalBody","WrapperFilters","FilterSeparator","SearchInput","input","isText","SearchInputClean","WrapperContent","TextSpan","ButtonOutline","isActive","WrapperButtons","ModalSubheader","label","MainWrapper","datePickerCallback","_useFormContext","useFormContext","control","watch","datePickerProps","useDatePicker","availableDates","AvailableDates","numberDaysAfter","NumberDaysAfter","DAILY_MEAL_MENU_DATE","preSelectedMenuDate","selectedDate","_datePickerProps$avai","YYYYMMDDTHHmmss","disabled","DatePickerButton","isOpen","isOpenDatePicker","setOpen","setOpenDatePicker","customInputRef","CustomInput","Controller","rules","required","defaultValue","render","_ref3$field","field","onChange","DatePicker","customInput","DateMealFilterButtonWrapper","DateMealFilterButton","MealFilter","DateMealFilterSpan","_path","_messages$view","_messages$date","_messages$weekly","_messages$meal","_ref2$model","StoreIds","DisplayDailyMenu","DisplayWeeklyMenu","DisplayOnlyCurrentDayMenu","menuDate","DAILY_MEAL_MEAL","DAILY_MEAL_VIEW","DAILY_MEAL_START_DATE","WEEKLY","form","useForm","shouldUnregister","defaultValues","preSelectedMeal","preSelectedView","preSelectedStartDate","preSelectedEndDate","handleSubmit","setValue","getValues","useWatch","selectRef","setSelectFocus","view","daily","weekly","meal","dateMealFilterHeader","cancel","done","weeksOptions","week","key","mealOptions","HandleViewClick","_getValues","_getValues2","preSelectedViewData","dateString","customPeriodId","HandleDoneClick","FormProvider","toUpperCase","tabIndex","htmlFor","DailyBlock","dateFormate","defaultSelect","Select","options","newWeek","weekCallback","inputId","isDisabled","_ref4$field","newValue","handlerPickUPTimesModeFoodOrder","isShowTextSelectOrderingOptions","_MenuPeriods$filter$","textDate","parseDate","change","selectOrderingOptions","buttonAriaDescription","locationText","DineInModal","SvgAllergensAndDiets","SvgPencil","FilterItemsInModal","FilterButtonWrapper","FilterButton","FilterButtonText","FilterButtonWrapperSVG","CountActiveFilters","ButtonActiveTag","CloseTag","ariaDescription","countSelected","_ref$isMobile","idSrOnly","selections","buttonAriaLabel","setFocus","AllergensAndDietsSvg","PencilSvg","Tag","_ref$filter","handler","tagAriaLabel","_ref2$filters","handlerClick","ALLERGENS","SPECIAL_DIETS","tagsAllergens","tagsSpecialDiets","tags","type","htmlText","_messages$menuDisclai","filtersList","trackedFilters","handleSaveClick","isAllergens","menuDisclaimer","save","dietsFilterCaption","allergernsFilterCaption","handleClose","isAllFilters","changeFilterStatusById","handlerClickFilterItem","allergensList","FilterItem","allergensItems","FilterItems","specialDietsList","specialDietsItems","items","_ref2$model$Menu","DisplayFoodPreferenceFilter","ImportPrimaIngredients","EnableAllergenFiltering","SpecialDietsTitle","AllergensTitle","selectDiets","filterAllergensDiets","menuIsFiltered","isShowAllergens","isShowSpecialDiets","isShowMobileVersion","activeAllegens","activeSpecialDiets","countActiveAllegens","countActiveSpecialDiets","countActiveAllFilters","handlerSave","_getState$filters$fil","oldAllergens","oldSpecialDiets","oldFilters","newFilters","diffBetweenFilters","differenceWith","isEqual","apiSaveFilters","filterItems","SaveFilters","handlerSaveAllergens","allergenFilters","handlerSaveSpecialDiets","specialDietsFilters","handlerDisableFilter","handlerOpenModal","ModalFilters","ButtonFilter","TagsActiveFilters","newAllegens","newSpecialDiets","SvgMealCalculatorFilter","MealCalculatorFilter","MealCalculatorButton","WrapperSVG","ModalActionButton","ModalBodySpan","ModalBodySpanBold","_useAppSelector2","NutritionalTree","totalMeal","ok","mealCalculator","toGetStarted","emptyMessage","clear","IconMealCalculator","Underline","AmountCalories","productInTotalMeal","totalCalories","Value","cal","buttonSelectedAriaLabel","MealCaculatorModal","SvgSearch","strokeLinecap","strokeLinejoin","_model$Menu","allProducts","setSearchInputText","searchAriaLabel","searchPlaceholder","cleanSearchText","buttonClearAriaLabel","FormatString","toLowerCase","searchProducts","search","SearchSvg","activeElement","onFocus","_inputRef$current","removeAttribute","placeholder","event","target","NavigationCustom","nav","OverflowNavWrapper","Gear","svg","CircleDiv","ButtonGear","getOffset","bodyRect","body","getBoundingClientRect","wrapperNodeTabs","getElementById","elemRect","top","scrollTo","left","behavior","stroke","strokeWidth","points","SUFFIX","favoritesTitle","isWeekly","isGear","setGear","index","active","headerRef","isShowGear","removeSuffix","regex","RegExp","scrollToStationByID","stickyItemId","stationNode","_headerRef$current","stationRect","offset","offsetHeight","prevId","StickyNavigation","opt","handleClick","handleKeyDown","preventDefault","anchorNode","listAll","querySelectorAll","getElementsByTagName","handleScroll","headerRect","_listOffsets$at","curId","_headerRef$current2","pageYOffset","at","handleActiveAnchor","Search","DATA_TABS","Tabs","setTabIndex","DisplayFoodOrderMenu","defaultDayInPeriod","isMenuCalendar","DineIn","OrderAhead","changeMenus","lastIndex","idTab","DAYIN_ID","toDateString","ORDER_AHEAD_ID","tabsOptions","selectedIndex","onSelect","dataset","isNoContent","listTabs","visible","panel","WrapperTabs","_ref$model","periods","selectTab","handleOrderMenuDate","handleFulfillment","setActiveTab","tabIndexParent","DailyMeal","MealCalculator","Filters","CartButton","NavigationBar","loading","getLoading","_getState$menu","_newData$AvailableDat","newData","handleAvailableDates","PanelTabFilters","CommonMenu","LoadingBackground","appElement","APP_ELEMENTS","MENUS","rootReducer","combineReducers","MenuReducer","ProductReducer","FilterReducer","LoadingReducer","configureStore","reducer","devTools","process","AppProviders","resources","store","MenuTheme","MenuPage","Modal","Notification","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","container","createRoot","App","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","j","keys","splice","getter","__esModule","a","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","this","then","ns","create","def","getOwnPropertyNames","definition","defineProperty","enumerable","get","g","globalThis","Function","prop","prototype","Symbol","toStringTag","nmd","paths","scriptUrl","importScripts","currentScript","tagName","scripts","test","Error","b","baseURI","self","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","nc","__webpack_exports__"],"sourceRoot":""}