{"version":3,"sources":["serviceWorker.js","assets/img/empty_item.png","api/iposApi.js","api/networkService.js","utils/fontawersome.js","reportWebVitals.js","redux/reducers/branchReducers.js","redux/reducers/menuReducers.js","constants/orderTypes.js","redux/reducers/orderReducers.js","redux/reducers/clientReducers.js","redux/reducers/baseReducers.js","redux/reducers/loadingReducers.js","redux/reducers/paymentReducers.js","redux/reducers/index.js","redux/store/configureStore.js","helpers/common.js","redux/actions/loadingActions.js","redux/actions/menuActions.js","redux/actions/branchActions.js","redux/actions/paymentActions.js","redux/actions/baseActions.js","assets/img/logo/i-love-ipos.png","assets/img/flags/lang-en.png","assets/img/flags/lang-he.png","components/LaguagePicker.jsx","constants/deliveryTypes.js","helpers/dateTime.js","IPosModal/confirm.js","IPosModal/IPosModal.jsx","components/FormattedPrice.jsx","IPosModal/components/ItemToCartInfo.jsx","IPosModal/components/ItemQuantiry.jsx","components/SupplementsList.jsx","IPosModal/components/ItemAdditions.jsx","IPosModal/components/ItemInfo.jsx","IPosModal/components/ItemAddToCardBtn.jsx","IPosModal/AddItemModal.jsx","IPosModal/ConfirmModal.jsx","IPosModal/AlertModal.jsx","components/Map.jsx","IPosModal/BranchInfoModal.jsx","layouts/components/Branch.jsx","IPosModal/BranchesListModal.jsx","IPosModal/ConfirmationCodeModal.jsx","IPosModal/index.js","components/SearchLocationInput.jsx","layouts/components/MobileMenu.jsx","layouts/components/TopNavigation.jsx","layouts/components/Search.jsx","layouts/components/Header.jsx","pages/order/components/GroupItem.jsx","pages/order/components/Groups.jsx","redux/selectors/order.js","redux/actions/clientActions.js","redux/actions/orderActions.js","pages/order/components/MenuItem.jsx","pages/order/components/MenuItemsGroupSection.jsx","pages/order/components/MenuItemsList.jsx","components/Quantity.jsx","pages/components/CartItem.jsx","helpers/language.js","pages/components/OrderTypeSwitcher.jsx","pages/components/CartDeliveryTypeSwitcher.jsx","pages/components/Cart.jsx","layouts/components/ShortFooter.jsx","pages/components/OpenCartBlock.jsx","pages/order/OrderPage.jsx","pages/payment/components/ClientInfoForm.jsx","pages/payment/ClientPage.jsx","constants/paymentTypes.js","pages/payment/components/PaymentTypeBlock.js","pages/payment/components/PaymentSwitcher.jsx","pages/payment/components/CreditCardPayment.jsx","pages/payment/components/CashPayment.jsx","pages/payment/components/TenBisPayment.jsx","pages/payment/components/SodexoPayment.jsx","pages/payment/PaymentPage.jsx","layouts/RestaurantLayout.jsx","assets/img/promo_page/iPos_Logo.png","assets/img/promo_page/f1.png","layouts/PromoPage.jsx","i18n.js","services/areas.service.js","layouts/components/DeliveryTypeSwitcher.jsx","layouts/components/Footer.jsx","layouts/DeliveryTypeLayout.jsx","IPosModal/LoadingModal.jsx","assets/img/bg/ipos_original.jpg","layouts/ErrorLayout.jsx","pages/order_info/components/OrderInfoItem.jsx","pages/order_info/OrderInfoPage.jsx","layouts/OrderInfoLayout.jsx","layouts/BaseLayout.jsx","index.js"],"names":["Boolean","window","location","hostname","match","baseHost","host","imageHost","instance","axios","create","baseURL","getImageUrl","image","useDefaultEmpty","emptyItemImage","store","history","iposApi","interceptors","response","use","error","Promise","reject","library","add","fab","faCheckSquare","faCoffee","faPhone","faClock","faPlusCircle","faMinusCircle","faShoppingCart","faTrash","faEdit","faTimes","faSignInAlt","faArrowAltCircleRight","faArrowAltCircleLeft","faCalendarAlt","faInfoCircle","faChevronDown","faCartArrowDown","faCartPlus","faQuestionCircle","faCheckCircle","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","branchInfo","state","action","type","data","menuGroups","menuItems","selectedItem","selectedItemSupplements","selectedItemInstructions","itemsFilter","term","menuItemTypes","OrderType","orderItems","updatedState","map","item","guidCode","Object","assign","filter","i","orderType","orderInfo","orderDateTime","clientInfo","currentLanguageId","currentDeliveryType","loading","show","text","paymentTypes","currentPaymetType","createRootReducer","combineReducers","router","connectRouter","createBrowserHistory","isMobileAndTablet","a","check","navigator","userAgent","vendor","opera","test","substr","mobileWindowSize","outerWidth","isMobileApp","localStorage","getItem","getItemPrice","calculateWithQuantoty","calculateWithSupplements","itemPrice","orderItem","price","discount_type","discount","quantity","supplements","length","forEach","s","menuItemTypesStub","menu_item_type_id","menu_item_type_code","getItemType","find","generateOrderItem","customPrice","newQuantity","currentOrderItem","guid","Guid","value","isRootItem","block_change_price_flg","dirty_price","web_price","free_instruction_text","guest_number","guid_code","include_vat","is_accepted_flg","is_business_lunch_flg","is_chaser","is_deleted","is_wineglass_flg","item_name","menu_item_id","parent_id","payment_id","portion","newPrice","regular_price","show_details_flg","split_item_parent_id","parent_uid","isShareItem","share_id","share_index","shareIndexId","isShareRootItem","id","order_menu_item_id","menuItem","instructions","freeInstruction","menuItemType","showLoading","hideLoading","storeMenuItems","setItemsFilter","setSelectedItemInstructions","selectItem","dispatch","getState","loadMenuItemSupplements","loadtMenuItemTypes","params","branchId","branch_guid_code","get","items","loadMenuGroups","language_id","groups","menu_items","loadAllGroupsMenuItems","groupId","promises","group","push","loadMenuItems","all","parentId","saveBranchInfo","loadBranches","loadBranchInfo","savePaymentTyoes","loadPaymentTypes","payment_types","sendConfirmationCode","phoneNumber","phone_number","setLanguageId","setDeliveryType","loadRestaurant","withMenuItems","res","setTimeout","connect","bindActionCreators","changeLanguageId","className","src","enIcon","alt","heIcon","onClick","DeliveryType","TA","DELIVERY","MENU","converTime","time","toString","replace","convertDotNetTimeToMomentDate","dotNetDateTimeString","moment","date","unix","confirm","config","div","document","createElement","body","appendChild","currentConfig","destroyPortal","destroy","visible","ReactDOM","parentNode","removeChild","render","props","update","newConfig","IPosModal","closeModal","setState","onClickOutside","e","disableClickOutside","stopPropagation","preventDefault","onDestroy","this","modalType","SpecifiedModalContent","isOpen","contentLabel","ariaHideApp","portalClassName","modalClassName","modalProps","React","Component","defaultProps","FormattedPrice","Number","toFixed","ItemToCartInfo","selectedSupplements","selectedInstructions","t","onAddToCart","selectedInstructionsString","join","index","trim","ItemQuantity","currentQuantity","updateQuantity","q","icon","SupplementsList","supplementsList","onSelect","isSelected","some","ItemAdditions","itemInstructions","onSelectInstructions","onSelectSupplement","currentFreeInstruction","changeFreeInstruction","useState","setFreeInstruction","onChange","currentTarget","placeholder","ItemInfo","details_txt","ItemAddToCardBtn","AddItemModal","onOk","updateOrderItem","setSelectedSupplements","setSelectedInstructions","setCurrentQuantity","setCurrentFreeInstruction","isMobile","supplement","orderSupplement","max_supplement_qty","getSupplementsQuantity","instruction","orderInstruction","useEffect","tmpItem","isValid","valid","message","alert","title","okButtonText","cancelButtonText","min_supplement","minSupplements","is_use_inctraction_flg","web_image_name_txt","ConfirmModal","onClose","okButtonName","cancelButtonName","dangerouslySetInnerHTML","__html","name","AlertModal","iconName","closeOnBodyClick","Map","areas","getPolygonPath","pointsString","JSON","parse","mapContainerClassName","center","lat","lng","zoom","version","on","path","options","strokeColor","strokeWeight","fillColor","BranchInfoModal","todayWorkingHours","DeliveryTimes","dt","day_of_week","day","branchWazeLink","latitude","longitude","Address","Areas","area","points","LogoImageName","PlaseName","Details","CostDelivery","MinDeliveryAmount","DeliveryTime","start_dt","end_dt","format","href","Phone","target","Branch","openBranch","BranchesListModal","branches","branch","ConfirmationCodeModal","confCode","setConfCode","form","disabled","code","addItemModal","baseModalProps","confirmation","branchesList","confirmationCode","autoComplete","workingHoursVisible","setWorkingHoursVisible","aboutVisible","setAboutVisible","menuOpened","setMenuOpened","deliveryTime","delivery_time_id","withTranslation","empty","useHistory","role","reload","logo","data-tip","data-for","aria-haspopup","visibleSection","filterValue","setfilterValue","menuItemName","GroupItem","groupItem","sectionName","scroller","scrollTo","duration","offset","delay","smooth","containerId","data-toggle","data-target","section","selectOrderItems","selectCurrentDeliveryType","selectBranchInfo","selectRoundSetting","RoundFormat","currentDeliveryItem","createSelector","roundFormat","deliveryItemPresent","DeliveryItem","total","reduce","totalSumReducer","orderSubtotal","roundSum","AddDeliveryItem","orderTotal","shouldAddDeliveryItem","orderSubTotal","roundSetting","rule","Math","round","ceil","setClientInfo","updateClientInfo","clearClientInfo","deleteOrderItem","clearOrder","setOrderType","setOrderDateTime","setOrderInfo","addToOrder","submitOrder","paymentType","cardData","totalAmount","deliveryItem","orderData","delivery","branch_id","client_info","delivery_time","order_items","collectOrderItems","confirmation_code","payment_delivery","payment_type_id","amount","card_number","cardNumber","replaceAll","exp_date","expiryMonth","expiryYear","cvv","cvc","passport_id","passport","post","newItem","free_text","changeItemQuantity","currentItem","loadOrderInfo","branchUuid","orderUuid","languageId","order_code","listMenuIems","client","order","paymentsName","listOrderMenuIems","oi","parentItem","addItemToCart","isRtl","addToSectionsRefs","menuItemsList","currentRef","useRef","toLowerCase","includes","ref","menuItemId","cartItem","editable","openModal","languages","1","2","getLanguageById","lang_id","OrderTypeSwitcher","locale","setOrderDate","Date","selectedDate","handleDateChange","changeOrderType","utils","MomentUtils","autoOk","ampm","dateTime","onError","console","log","disablePast","CartDeliveryTypeSwitcher","changeDeliveryType","deliveryType","subtotalAmount","isEmpty","currentLocale","minOrderAmountPresent","minOrderAmount","allowToPay","cartTotalQuantity","acc","cellSpacing","colSpan","getElementById","additionalClass","totalQuantity","cartIsOpened","setCartIsOpened","toggleCartPopup","sectionRefs","currentView","_setVisibleSection","viasibleSectionRef","visibleSectionName","getElementsByName","scrollIntoView","inline","block","splice","container","handleScroll","scrollPosition","scrollTop","selected","ele","current","height","getBoundingClientRect","offsetTop","offsetBottom","getDimensions","addEventListener","removeEventListener","obj","handleScriptLoad","updateQuery","autoCompleteRef","selectAddress","setError","google","maps","places","Autocomplete","types","componentRestrictions","country","setFields","addListener","handlePlaceSelect","addressObject","getPlace","streetPresent","containsStreetNumber","query","formatted_address","result","address_components","defaultValue","language","onAddressSelect","setQuery","selectedAddress","setSelectedAddress","ERRORS","url","callback","script","readyState","onreadystatechange","onload","getElementsByTagName","loadScript","range","start","end","step","formData","formSubmit","useForm","defaultValues","register","handleSubmit","watch","errors","clearErrors","address","isAddressValid","setIsAddressValid","utensils","setUtensils","clientMobile","setClientMobile","clientEmail","setClientEmail","onSubmit","htmlFor","addressData","geometry","place_id","pattern","required","clientName","maxLength","currentLength","substring","minLength","checked","handleColor","offColor","onColor","Array","from","number","PaymentType","PaymentTypeBlock","selectPaymentType","currentPaymentType","payment_code","payment_type_name","setCurrentPaymentType","payment","setCardData","ERROR_MESSAGES","emptyCardNumber","invalidCardNumber","emptyExpiryDate","monthOutOfRange","yearOutOfRange","dateOutOfRange","invalidExpiryDate","emptyCVC","invalidCVC","usePaymentInputs","errorMessages","meta","getCardImageProps","wrapperProps","getCardNumberProps","getCVCProps","getExpiryDateProps","expiryDate","getFullYear","setData","handleInputChange","images","touchedInputs","erroredInputs","setOrderUuid","proceedCashCheckout","onSetConfirmationCode","onSubmitOrder","error_message","useParams","fetchData","style","backgroundImage","BannerImageName","exact","component","OrderPage","ClientPage","PaymentPage","setBranches","mobileApp","URLSearchParams","useLocation","search","setItem","rel","iposLogo","data-image-width","f1","i18n","initReactI18next","init","resources","en","translation","common_en","he","common_he","fallbackLng","interpolation","escapeValue","rubiApi","getValues","currentType","setCurrentType","addressAllowed","setAddressAllowed","lang","onSelectType","IsWorkingDelivery","AreasService","validateAddress","chooseDeliveryType","addressDetails","newClientInfo","deliveryAdditionalClass","taAdditionalClass","menuAdditionalClass","ShowDelivery","ShowTakeAway","ShowMenuInfo","onRequestClose","background","OrderInfoItem","is_take_away_order","client_name","order_id","client_address","orderId","OrderInfoPage","changeLanguage","querySelector","dir","currentLogo","Helmet","sizes","PromoPage","exect","DeliveryTypeLayout","OrderInfoLayout","ErrorLayout","to","preloadedState","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","createStore","applyMiddleware","routerMiddleware","thunkMiddleware","logger","configureStore","__initialState__","undefined","__REDUX_DEVTOOLS_EXTENSION","networkService","StrictMode","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.d03539ba.chunk.js","sourcesContent":["// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","export default \"data:image/png;base64,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\"","import axios from 'axios';\nimport emptyItemImage from '../assets/img/empty_item.png';\n\n// export const baseHost = 'http://82.166.154.244:7000/IPosWebDelivery';\nexport const baseHost = 'https://webdelivery.ipos.co.il/WebDelivery.iPos.co.il';\n// export const baseHost = window.localStorage.getItem(\"REACT_APP_HOST\") || 'https://82.166.154.244:7000/iPosWebDeliveryService';\n// export const baseHost = 'http://194.6.233.58:7000/IPosDelivery';\n\nexport const host = `${baseHost}/Service`;\nexport const imageHost = `${baseHost}/Images`;\n\nconst instance = axios.create({\n baseURL: host\n});\n\nexport const getImageUrl = (image, useDefaultEmpty = false) => {\n if (!image && useDefaultEmpty) {\n return emptyItemImage;\n }\n return `${imageHost}/${image}`;\n};\n\nexport default instance;\n","import iposApi from './iposApi';\n\nexport default {\n setupInterceptors: (store, history) => {\n\n iposApi.interceptors.response.use(function (response) {\n return response;\n }, function (error) {\n // if (error && (error.message === 'Network Error' || error.code === 'ECONNABORTED' )) {\n // alert('קיימת בעיית תקשורת! נא לנסות יותר מאוחר');\n // history.push('/auth');\n // }\n return Promise.reject(error);\n });\n }\n};\n","import { library } from '@fortawesome/fontawesome-svg-core';\nimport { fab } from '@fortawesome/free-brands-svg-icons';\nimport { faCheckSquare, faCoffee, faPhone, faClock,\n faPlusCircle, faMinusCircle, faShoppingCart, faTrash,\n faEdit, faTimes, faSignInAlt, faArrowAltCircleRight, faArrowAltCircleLeft,\n faCalendarAlt, faInfoCircle, faChevronDown, faCartArrowDown, faCartPlus, faQuestionCircle,\n faCheckCircle\n} from '@fortawesome/free-solid-svg-icons';\n\nlibrary.add(fab, faCheckSquare, faCoffee, faPhone, faClock,\n faPlusCircle, faMinusCircle, faShoppingCart, faTrash,\n faEdit, faTimes, faSignInAlt, faArrowAltCircleRight, faArrowAltCircleLeft,\n faCalendarAlt, faInfoCircle, faChevronDown, faCartArrowDown, faCartPlus, faQuestionCircle,\n faCheckCircle\n);\n\nexport default library;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","export const branchInfo = (state = {}, action) => {\n switch (action.type) {\n case 'SAVE_BRANCH_INFO':\n return action.data;\n default:\n return state;\n }\n};\n","export const menuGroups = (state = [], action) => {\n switch (action.type) {\n case 'SAVE_MENU_GROUPS':\n return action.data;\n default:\n return state;\n }\n};\n\nexport const menuItems = (state = [], action) => {\n switch (action.type) {\n case 'SAVE_MENU_ITEMS':\n return action.data;\n case 'STORE_MENU_ITEMS':\n return [...state, ...action.data];\n case 'CLEAR_MENU_ITEMS':\n return [];\n default:\n return state;\n }\n};\n\nexport const selectedItem = (state = null, action) => {\n switch (action.type) {\n case 'SET_SELECTED_ITEM':\n return action.data;\n case 'CLEAR_SELECTED_ITEM':\n return state;\n default:\n return state;\n }\n};\n\nexport const selectedItemSupplements = (state = [], action) => {\n switch (action.type) {\n case 'SET_SELECTED_ITEM_SUPPLEMENTS':\n return action.data;\n case 'CLEAR_SELECTED_ITEM_SUPPLEMENTS':\n return state;\n default:\n return state;\n }\n};\n\nexport const selectedItemInstructions = (state = [], action) => {\n switch (action.type) {\n case 'SET_SELECTED_ITEM_INSTRUCTIONS':\n return action.data;\n default:\n return state;\n }\n};\n\n\nexport const itemsFilter = (state = \"\", action) => {\n switch (action.type) {\n case 'SET_ITEMS_FILTER':\n return action.term;\n default:\n return state;\n }\n};\n\nexport const menuItemTypes = (state = [], action) => {\n switch (action.type) {\n case 'STORE_ITEM_TYPES':\n return action.data;\n default:\n return state;\n }\n};\n","export const OrderType = {\n ASAP: 'ASAP',\n FUTURE: 'FUTURE'\n};\n","import {OrderType} from \"../../constants/orderTypes\";\n\nexport const orderItems = (state = [], action) => {\n switch (action.type) {\n case 'ADD_TO_ORDER':\n return [...state, action.data];\n case 'UPDATE_ORDER_ITEM': {\n const selectedItem = action.data;\n const updatedState = state.map((item) => {\n if (item.guidCode === selectedItem.guidCode) {\n return Object.assign({}, selectedItem);\n }\n return item;\n });\n return [...updatedState];\n }\n case 'DELETE_ORDER_ITEM':\n return [...state.filter(i => i.guidCode !== action.data.guidCode)];\n case 'CLEAR_ORDER':\n return [];\n default:\n return state;\n }\n};\n\n\nexport const orderType = (state = OrderType.ASAP, action) => {\n switch (action.type) {\n case 'SET_ORDER_TYPE':\n return action.data;\n default:\n return state;\n }\n};\n\nexport const orderInfo = (state = {}, action) => {\n switch (action.type) {\n case 'SET_ORDER_INFO':\n return action.data;\n case 'CLEAR_ORDER':\n return {};\n default:\n return state;\n }\n};\n\nexport const orderDateTime = (state = null, action) => {\n switch (action.type) {\n case 'SET_ORDER_DATE_TIME':\n return action.data;\n default:\n return state;\n }\n};\n","export const clientInfo = (state = {}, action) => {\n switch (action.type) {\n case 'SET_CLIENT_INFO':\n return action.data;\n case 'UPDATE_CLIENT_INFO':\n return { ...state, ...action.data };\n case 'CLEAR_CLIENT_INFO':\n return {};\n default:\n return state;\n }\n};\n","export const currentLanguageId = (state = 2, action) => {\n switch (action.type) {\n case 'SET_LANGUAGE_ID':\n return action.data;\n default:\n return state;\n }\n};\n\nexport const currentDeliveryType = (state = null, action) => {\n switch (action.type) {\n case 'SET_DELIVERY_TYPE':\n return action.data;\n default:\n return state;\n }\n};\n","export const loading = (state = {show: false, text: ''}, action) => {\n switch (action.type) {\n case 'SHOW_LOADING':\n return {\n show: true,\n text: action.data,\n };\n case 'HIDE_LOADING':\n return {\n show: false,\n text: action.data,\n };\n case 'ERROR':\n return {\n show: false,\n text: '',\n };\n default:\n return state;\n }\n};\n","export const paymentTypes = (state = {}, action) => {\n switch (action.type) {\n case 'SAVE_PAYMENT_TYPES':\n return action.data;\n default:\n return state;\n }\n};\n\nexport const currentPaymetType = (state = null, action) => {\n switch (action.type) {\n case 'SET_PAYMENT_TYPE':\n return action.data;\n default:\n return state;\n }\n};\n","import { combineReducers } from 'redux';\nimport { connectRouter } from 'connected-react-router';\n\nimport { branchInfo } from './branchReducers';\nimport { menuGroups, menuItems, itemsFilter, menuItemTypes,\n selectedItem, selectedItemSupplements, selectedItemInstructions } from './menuReducers';\nimport { orderItems, orderType, orderInfo, orderDateTime } from './orderReducers';\nimport { clientInfo } from './clientReducers';\nimport { currentLanguageId, currentDeliveryType } from './baseReducers';\nimport { loading } from './loadingReducers';\nimport { paymentTypes, currentPaymetType } from './paymentReducers';\n\nconst createRootReducer = history => combineReducers({\n router: connectRouter(history),\n branchInfo,\n menuItems,\n menuGroups,\n orderItems,\n clientInfo,\n itemsFilter,\n menuItemTypes,\n currentLanguageId,\n currentDeliveryType,\n selectedItem,\n selectedItemSupplements,\n selectedItemInstructions,\n loading,\n paymentTypes,\n currentPaymetType,\n orderType,\n orderInfo,\n orderDateTime\n});\n\nexport default createRootReducer;\n","import { createStore, compose, applyMiddleware } from 'redux';\nimport thunkMiddleware from 'redux-thunk';\nimport logger from 'redux-logger';\nimport { createBrowserHistory } from 'history';\nimport { routerMiddleware } from 'connected-react-router';\nimport createRootReducer from '../reducers';\n\nexport const history = createBrowserHistory();\n\nexport default function configureStore(preloadedState) {\n const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\n const store = createStore(\n createRootReducer(history), // root reducer with router state\n preloadedState,\n composeEnhancers(\n applyMiddleware(\n routerMiddleware(history), // for dispatching history actions\n thunkMiddleware,\n logger,\n ),\n ),\n );\n\n return store;\n}\n","import Guid from 'guid';\n\nexport const isMobileAndTablet = () => {\n let check = false;\n (function(a){if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);\n\n const mobileWindowSize = window.outerWidth < 1024;\n\n return check || mobileWindowSize;\n};\n\nexport const isMobileApp = () => {\n return localStorage.getItem('MOBILE_APP_IN_USE') === 'true';\n};\n\nexport const getItemPrice = (item, calculateWithQuantoty = true, calculateWithSupplements = false) => {\n let itemPrice = item.orderItem.price || 0;\n\n switch (item.orderItem.discount_type) {\n case 2:\n itemPrice -= (itemPrice * (item.orderItem.discount / 10000));\n break;\n case 1:\n itemPrice -= item.orderItem.discount;\n break;\n default:\n break;\n }\n\n if (calculateWithQuantoty) {\n itemPrice *= item.orderItem.quantity;\n }\n\n if (item.supplements.length > 0 && calculateWithSupplements){\n item.supplements.forEach(s => {\n itemPrice += getItemPrice(s, calculateWithQuantoty);\n });\n }\n\n return itemPrice;\n};\n\nconst menuItemTypesStub = [\n {menu_item_type_id: 1, menu_item_type_code: \"GROUP\"},\n {menu_item_type_id: 2, menu_item_type_code: \"ITEM\"},\n {menu_item_type_id: 3, menu_item_type_code: \"CATEGORY\"},\n {menu_item_type_id: 4, menu_item_type_code: \"PREPARATION_INSTRUCTION\"},\n {menu_item_type_id: 5, menu_item_type_code: \"SUPPLEMENT\"},\n {menu_item_type_id: 6, menu_item_type_code: \"BUSINESS_LUNCH_CATEGORY\"},\n {menu_item_type_id: 7, menu_item_type_code: \"FREE_ITEM\"}\n ];\n\nexport const getItemType = (item, menuItemTypes) => {\n if (menuItemTypes.length === 0){\n menuItemTypes = menuItemTypesStub;\n }\n\n const type = menuItemTypes.find(i => i.menu_item_type_id === item.menu_item_type_id );\n return type ? type.menu_item_type_code : 0;\n};\n\nexport const generateOrderItem = (item, menuItemTypes, customPrice = null, newQuantity = 1, currentOrderItem=null) => {\n const guid = (Guid.create()).value;\n\n let orderItem = null;\n\n if (currentOrderItem) {\n orderItem = Object.assign({}, currentOrderItem)\n } else {\n orderItem = {\n block_change_price_flg: 0,\n dirty_price: item.web_price,\n free_instruction_text: '',\n guest_number: 0,\n guid_code: guid,\n include_vat: 0,\n is_accepted_flg: 0,\n is_business_lunch_flg: item.is_business_lunch_flg,\n is_chaser: 0,\n is_deleted: 0,\n is_wineglass_flg: 0,\n item_name: item.item_name,\n menu_item_id: item.menu_item_id,\n // order_id: orderInfo.order_id,\n parent_id: item.parent_id,\n payment_id: 0,\n portion: item.portion,\n price: customPrice || item.newPrice || item.web_price || item.regular_price,\n quantity: newQuantity || 1,\n web_price : item.web_price,\n show_details_flg: item.show_details_flg,\n split_item_parent_id: 0,\n // station_id: stationInfo.station_id,\n // user_id: currentUser.user_id,\n };\n }\n\n const isRootItem = !orderItem.parent_id && !orderItem.parent_uid;\n const isShareItem = orderItem.share_id !== null && orderItem.share_index !== null;\n const shareIndexId = (orderItem.share_id !== null && orderItem.share_index !== null) ? `${orderItem.share_id}_${orderItem.share_index}` : null;\n const isShareRootItem = isShareItem && orderItem.free_instruction_text !== null;\n\n return {\n id: orderItem.order_menu_item_id,\n guidCode: orderItem.guid_code,\n isRootItem: (isRootItem && !isShareItem) || isShareRootItem,\n isShareItem,\n isShareRootItem,\n shareIndexId,\n orderItem: orderItem,\n menuItem: item,\n supplements: [],\n instructions: [],\n freeInstruction: '',\n menuItemType: getItemType(item, menuItemTypes),\n };\n\n};\n","export const showLoading = (text = '') => ({\n type: 'SHOW_LOADING',\n data: text,\n});\n\nexport const hideLoading = (text = '') => ({\n type: 'HIDE_LOADING',\n data: text,\n});\n\n","import iposApi from '../../api/iposApi';\nimport {getItemType} from \"../../helpers/common\";\nimport {hideLoading, showLoading} from \"./loadingActions\";\n\nexport const saveMenuGroups = data => ({\n type: 'SAVE_MENU_GROUPS',\n data,\n});\n\nexport const clearMenuItems = () => ({\n type: 'CLEAR_MENU_ITEMS'\n});\n\nexport const saveMenuItems = data => ({\n type: 'SAVE_MENU_ITEMS',\n data,\n});\n\nexport const storeMenuItems = data => ({\n type: 'STORE_MENU_ITEMS',\n data,\n});\n\nexport const setItemsFilter = term => ({\n type: 'SET_ITEMS_FILTER',\n term,\n});\n\nexport const storeMenuItemTypes = data => ({\n type: 'STORE_ITEM_TYPES',\n data,\n});\n\nexport const setSelectedItem = data => ({\n type: 'SET_SELECTED_ITEM',\n data,\n});\n\nexport const setSelectedItemSupplements = data => ({\n type: 'SET_SELECTED_ITEM_SUPPLEMENTS',\n data,\n});\n\nexport const setSelectedItemInstructions = data => ({\n type: 'SET_SELECTED_ITEM_INSTRUCTIONS',\n data,\n});\n\nexport const selectItem = (item) => async (dispatch, getState) => {\n await dispatch(setSelectedItem(item));\n\n return await dispatch(loadMenuItemSupplements(item.menu_item_id));\n};\n\nexport const loadtMenuItemTypes = () => async (dispatch, getState) => {\n const { branchInfo } = getState();\n\n const url = '/GetMenuItemTypes';\n const params = {\n branchId: branchInfo.branch_guid_code\n };\n\n // const translate = getTranslate(getState().localize);\n // dispatch(showLoading(translate('please_wait')));\n\n const response = await iposApi.get(url, { params });\n dispatch(storeMenuItemTypes(response.data.items));\n // dispatch(hideLoading());\n};\n\nexport const loadMenuGroups = () => async (dispatch, getState) => {\n const { branchInfo, currentLanguageId } = getState();\n\n const url = '/GetGroupsByBranchId';\n const params = {\n branchId: branchInfo.branch_guid_code,\n language_id: currentLanguageId\n };\n\n try {\n\n const response = await iposApi.get(url, { params });\n let groups = [];\n if (response.data.menu_items){\n groups = response.data.menu_items;\n }\n\n await dispatch(saveMenuGroups(groups));\n\n } catch (error) {\n dispatch(() => ({ type: 'ERROR', data: error }));\n }\n};\n\nexport const loadAllGroupsMenuItems = (groupId) => async (dispatch, getState) => {\n const { branchInfo, menuGroups } = getState();\n try {\n\n dispatch(showLoading());\n\n await dispatch(clearMenuItems());\n\n let promises = [];\n\n for (const group of menuGroups) {\n // await dispatch(loadMenuItems(group.menu_item_id))\n promises.push(dispatch(loadMenuItems(group.menu_item_id)));\n }\n\n Promise.all(promises).then(()=>{\n dispatch(hideLoading());\n });\n\n\n\n } catch (error) {\n dispatch(() => ({ type: 'ERROR', data: error }));\n }\n};\n\nexport const loadMenuItems = (groupId) => async (dispatch, getState) => {\n const { branchInfo, currentLanguageId } = getState();\n\n const url = '/GetMenuItemsByParent';\n const params = {\n branchId: branchInfo.branch_guid_code,\n parentId: groupId,\n language_id: currentLanguageId\n };\n\n try {\n\n const response = await iposApi.get(url, { params });\n const items = response.data.menu_items;\n items.forEach((item) => {\n item.parentId = groupId;\n });\n await dispatch(storeMenuItems(items));\n\n } catch (error) {\n dispatch(() => ({ type: 'ERROR', data: error }));\n }\n};\n\nexport const loadMenuItemSupplements = (groupId) => async (dispatch, getState) => {\n const { branchInfo, currentLanguageId, menuItemTypes } = getState();\n\n const url = '/GetMenuItemsByParent';\n const params = {\n branchId: branchInfo.branch_guid_code,\n parentId: groupId,\n language_id: currentLanguageId\n };\n\n try {\n\n const response = await iposApi.get(url, { params });\n const items = await response.data.menu_items;\n items.forEach((item) => {\n item.parentId = groupId;\n item.menuItemType = getItemType(item, menuItemTypes)\n });\n await dispatch(setSelectedItemSupplements(items.filter(i => i.menuItemType === 'SUPPLEMENT')));\n await dispatch(setSelectedItemInstructions(items.filter(i => i.menuItemType === 'PREPARATION_INSTRUCTION')));\n return [\n items.filter(i => i.menuItemType === 'SUPPLEMENT'),\n items.filter(i => i.menuItemType === 'PREPARATION_INSTRUCTION')\n ];\n\n } catch (error) {\n dispatch(() => ({ type: 'ERROR', data: error }));\n }\n};\n","import iposApi from '../../api/iposApi';\n\nexport const saveBranchInfo = data => ({\n type: 'SAVE_BRANCH_INFO',\n data,\n});\n\nexport const loadBranches = () => async (dispatch, getState) => {\n const { currentLanguageId } = getState();\n const url = '/GetAllBranch';\n const params = {\n language_id: currentLanguageId\n };\n\n try {\n const response = await iposApi.get(url, { params });\n return response.data;\n } catch (error) {\n return [];\n }\n};\n\nexport const loadBranchInfo = (branchId) => async (dispatch, getState) => {\n const { currentLanguageId } = getState();\n const url = '/GetBranchByCode';\n const params = {\n branchId: branchId,\n language_id: currentLanguageId\n };\n\n // try {\n\n // throw \"Test\";\n\n const response = await iposApi.get(url, { params });\n const branchInfo = response.data;\n branchInfo.branch_guid_code = branchId;\n\n // branchInfo.latitude=32.08001224698591;\n // branchInfo.longitude=34.81500825506498;\n\n dispatch(saveBranchInfo(branchInfo));\n\n return response.data;\n\n // } catch (error) {\n // throw error;\n // dispatch(() => ({ type: 'ERROR', data: error }));\n // }\n};\n","import iposApi from '../../api/iposApi';\n\nexport const savePaymentTyoes = data => ({\n type: 'SAVE_PAYMENT_TYPES',\n data,\n});\n\nexport const setPaymentType = data => ({\n type: 'SET_PAYMENT_TYPE',\n data,\n});\n\nexport const loadPaymentTypes = () => async (dispatch, getState) => {\n const { branchInfo, currentLanguageId } = getState();\n const url = '/GetPaymentTypes';\n const params = {\n branchId: branchInfo.branch_guid_code,\n language_id: currentLanguageId\n };\n\n try {\n\n const response = await iposApi.get(url, { params });\n const data = response.data.payment_types;\n dispatch(savePaymentTyoes(data));\n\n } catch (error) {\n dispatch(() => ({ type: 'ERROR', data: error }));\n }\n};\n\nexport const sendConfirmationCode = (phoneNumber) => async (dispatch, getState) => {\n const { branchInfo } = getState();\n\n const url = '/GenerateCode';\n const params = {\n branchId: branchInfo.branch_guid_code,\n phone_number: phoneNumber\n };\n\n const response = await iposApi.get(url, { params });\n return await response.data;\n};\n","import iposApi from '../../api/iposApi';\nimport {clearMenuItems, loadAllGroupsMenuItems, loadMenuGroups, loadtMenuItemTypes} from './menuActions';\nimport {loadBranchInfo} from './branchActions';\nimport {hideLoading, showLoading} from \"./loadingActions\";\nimport {loadPaymentTypes} from \"./paymentActions\";\n\nexport const setLanguageId = data => ({\n type: 'SET_LANGUAGE_ID',\n data,\n});\n\nexport const setDeliveryType = data => ({\n type: 'SET_DELIVERY_TYPE',\n data,\n});\n\nexport const loadRestaurant = (branchId, withMenuItems=false) => async (dispatch) => {\n dispatch(showLoading());\n\n const res = await dispatch(loadBranchInfo(branchId));\n if (withMenuItems) {\n dispatch(loadPaymentTypes());\n dispatch(loadtMenuItemTypes());\n await dispatch(loadMenuGroups());\n await dispatch(loadAllGroupsMenuItems());\n }\n\n setTimeout(()=>{\n dispatch(hideLoading());\n }, 1000);\n return res;\n};\n","export default __webpack_public_path__ + \"static/media/i-love-ipos.23093d0f.png\";","export default __webpack_public_path__ + \"static/media/lang-en.ec3217b0.png\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAAt1BMVEUAAABCSJ1CR5z39/dBR5tVVar29vb19fVCR5z29vZCSJv19fVBR5z29vZBSJz29vb29vZDSJ329vZBSJv4+PhCSaD///9GUaL////29vZZXafx8fX19fVBR5vw8PNYXaalqM2Kjr9HTZ5VWqVQVaPy8vTv7/JhZqzk5O28vtlbYKhLUaDCxNyoq8+anciFiL1+grrq6/De3urR0+PJy9+2uNavsdKgo8uUl8SQk8Juc7Jlaq1zeLQswTxbAAAAHHRSTlMAgKiA8wrz6OjZ2dPTv7+lcnJSUiMjFhYM8qp/2raUKAAAAV9JREFUOMudlel2gjAQhYfFXdx3nQphU3CrtbVq3/+5Kpy2yYTN+v3QnDuXJFzCAJRhV23Vdb3eUrtDyGSsNFGgqYxTbSVFRwldKSV9/SqmUO3LPgUzUOiyKmaiistTn+zkvvlLLvNfX29RQA9iJpUiY2USGzVZd3eyokW+UVmWt/gmKeVR2oSvDl7TpmzI4ic741rSGgADcXNb8w7zzTCIBu9CaQAd8cI9inwIlQ60ReOKWSc0Pc87OCvfFyttMMhedugH7v3/yG64EQsG1IjRc37u44JfpFADmqIb4CkenPFAk4SplLV9izcb2jT1KdRo1ocNRqlY7Li80qUNkjU6NjLbjn4YSd0g8bgX6w4GVuhEA5PE01nI7MM1z5oHzh8hTx39hDjgh0JMfSNLDX7MBLx9QtLowaXQg8unzEN7+OX61+tavLgGf8yWOcyeaVLFba+4kT7bmoub/cOfj2/XLY2qG2GUCwAAAABJRU5ErkJggg==\"","import React, { useState } from 'react';\nimport {connect} from \"react-redux\";\nimport {bindActionCreators} from 'redux';\nimport enIcon from '../assets/img/flags/lang-en.png';\nimport heIcon from '../assets/img/flags/lang-he.png';\n\nimport { setLanguageId } from '../redux/actions/baseActions';\n\nconst LanguagePicker = ({currentLanguageId, setLanguageId}) => {\n\n const changeLanguageId = (id) => {\n setLanguageId(id);\n };\n\n return (\n
\n \n { currentLanguageId === 1 ? {''}/ : {''}/ }\n
\n
\n
{ changeLanguageId(1) } }>\n {''}/\n
\n
{ changeLanguageId(2) } }>\n {''}/\n
\n
\n \n );\n};\n\nconst mapStateToProps = (state) => {\n const {\n currentLanguageId\n } = state;\n\n return {\n currentLanguageId\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n setLanguageId\n },\n dispatch,\n );\n\nexport default connect(mapStateToProps, mapDispatchToProps)(LanguagePicker);\n","export const DeliveryType = {\n TA: 'TA',\n DELIVERY: 'DELIVERY',\n MENU: 'MENU'\n};\n","import moment from 'moment';\n\nconst converTime = time => time.toString().replace(/\\D+/g, '');\n\nexport const convertDotNetTimeToDate = (dotNetDateTimeString) => {\n if (!dotNetDateTimeString) {\n return moment();\n }\n\n const date = moment.unix(converTime(dotNetDateTimeString)/1000);\n\n return moment(date).format(\"DD/MM/YYYY HH:mm:ss\");\n};\n\nexport const convertDotNetTimeToMomentDate = (dotNetDateTimeString) => {\n if (!dotNetDateTimeString) {\n return moment();\n }\n\n const date = moment.unix(converTime(dotNetDateTimeString)/1000);\n\n return moment(date);\n};\n","import React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport IPosModal from './';\nimport Guid from 'guid';\n\nconst confirm = (config) => {\n const div = document.createElement('div');\n div.id = Guid.create().value;\n document.body.appendChild(div);\n let currentConfig = { ...config, destroyPortal: destroy, visible: true };\n\n // function close(...args) {\n // destroy(...args);\n // }\n\n function update(newConfig) {\n currentConfig = {\n ...currentConfig,\n ...newConfig,\n };\n render(currentConfig);\n }\n\n function destroy (...args) {\n const unmountResult = ReactDOM.unmountComponentAtNode(div);\n if (unmountResult && div.parentNode) {\n div.parentNode.removeChild(div);\n }\n // const triggerCancel = args.some(param => param && param.triggerCancel);\n // if (config.onCancel && triggerCancel) {\n // config.onCancel(...args);\n // }\n // for (let i = 0; i < destroyFns.length; i++) {\n // const fn = destroyFns[i];\n // if (fn === close) {\n // destroyFns.splice(i, 1);\n // break;\n // }\n // }\n }\n\n function render (props) {\n ReactDOM.render(, div);\n }\n\n render(currentConfig);\n\n return {\n // destroy: close,\n destroy: destroy,\n update,\n };\n};\n\nexport default confirm;\n","import React from 'react';\nimport Modal from 'react-modal';\n// import ClickOutside from 'react-click-outside';\nimport PropTypes from 'prop-types';\nimport {isMobileApp} from \"../helpers/common\";\n\nclass IPosModal extends React.Component {\n static propTypes = {\n visible: PropTypes.bool,\n destroyPortal: PropTypes.func,\n modalType: PropTypes.func.isRequired,\n modalProps: PropTypes.object,\n onDestroy: PropTypes.func,\n modalClassName: PropTypes.string,\n disableClickOutside: PropTypes.bool\n };\n\n static defaultProps = {\n destroyPortal: () => {},\n onDestroy: () => {},\n modalClassName: '',\n disableClickOutside: false\n };\n\n constructor(props) {\n super(props);\n this.state = { visible: props.visible };\n }\n\n closeModal = () => {\n this.setState({ visible: false });\n this.props.destroyPortal();\n };\n\n onClickOutside = (e) => {\n if (!this.props.disableClickOutside) {\n e.stopPropagation();\n e.preventDefault();\n if (this.state.visible) {\n this.props.onDestroy();\n this.closeModal();\n }\n }\n };\n\n render() {\n if (!this.props.modalType) {\n return null;\n }\n // const SpecifiedModal = MODAL_TYPES[this.props.modalType];\n const SpecifiedModalContent = this.props.modalType;\n return (\n \n {/**/}\n \n {/**/}\n \n );\n }\n}\n\nexport default IPosModal;\n","import React from 'react';\n\nconst FormattedPrice = ({ price }) => (\n \n {` ${(Number(price) / 100).toFixed(2)} ₪`}\n \n);\n\nexport default FormattedPrice;\n","import React, { useState } from 'react';\nimport FormattedPrice from \"../../components/FormattedPrice\";\nimport {getItemPrice} from \"../../helpers/common\";\n\nconst ItemToCartInfo = ({orderItem, selectedSupplements, selectedInstructions, freeInstruction, onAddToCart, t}) => {\n const selectedSupplementsString = selectedSupplements.map(s => s.menuItem.item_name).join(', ');\n const selectedInstructionsString = selectedInstructions.map(s => s.menuItem.item_name).join(', ');\n\n return (\n
\n
\n {selectedInstructions.length > 0 && (\n
\n
{t('add_item_modal.instructions')}
\n
{selectedInstructionsString}
\n
\n )\n }\n\n { selectedSupplements.length > 0 && (\n selectedSupplements.map((s, index) => (\n
\n
{ index === 0 ? t('add_item_modal.supplements') : '' }
\n
\n { s.menuItem.item_name }\n { s.menuItem.web_price > 0 && (\n
\n + \n
\n )}\n\n
\n
\n ))\n )\n }\n\n { freeInstruction && freeInstruction.trim() !== \"\" && (\n
\n
{ t('add_item_modal.free_instruction') }
\n
{ freeInstruction }
\n
\n )\n }\n
\n
\n );\n};\n\nexport default ItemToCartInfo;\n","import React, { useState } from 'react';\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport './itemQuantity.scss';\n\nconst ItemQuantity = ({item,currentQuantity, updateQuantity}) => {\n const increase = () => {\n const q = item.orderItem.quantity + 1;\n updateQuantity(q);\n item.orderItem.quantity = q;\n\n };\n\n const decrease = () => {\n const currentQuantity = item.orderItem.quantity;\n const q = (currentQuantity - 1) <= 0 ? 1 : currentQuantity - 1;\n updateQuantity(q);\n item.orderItem.quantity = q;\n };\n\n return (\n
\n
\n \n
\n
\n { currentQuantity }\n
\n
\n \n
\n
\n );\n};\n\nexport default ItemQuantity;\n","import React from 'react';\nimport {getItemPrice} from \"../helpers/common\";\nimport FormattedPrice from \"./FormattedPrice\";\n\nconst SupplementsList = ({supplementsList, selectedSupplements, onSelect}) => {\n const isSelected = (item) => {\n return selectedSupplements.some( i => i.menuItem.menu_item_id === item.menu_item_id);\n };\n return (\n
\n {\n supplementsList.map(item => (\n
{ onSelect(item) }}>\n { item.item_name }\n { item.web_price > 0 && (\n
\n \n
\n )}\n
\n ))\n }\n
\n );\n};\n\nexport default SupplementsList;\n","import React, { useState, useEffect } from 'react';\nimport SupplementsList from \"../../components/SupplementsList\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\n\nconst ItemAdditions = ({t, itemInstructions,\n selectedInstructions, onSelectInstructions,\n selectedItemSupplements, selectedSupplements, onSelectSupplement,\n currentFreeInstruction, changeFreeInstruction}) => {\n\n const [freeInstruction, setFreeInstruction] = useState(currentFreeInstruction);\n\n const onChangeFreeInstruction = (e) => {\n const { value } = e.currentTarget;\n setFreeInstruction(value);\n changeFreeInstruction(value);\n };\n\n return (\n
\n

{ t('add_item_modal.additions') }

\n { itemInstructions.length > 0 && (\n
\n
\n { t('add_item_modal.instructions') }\n
\n \n
\n )}\n\n { selectedItemSupplements.length > 0 && (\n
\n
\n { t('add_item_modal.supplements') }\n
\n \n
\n )}\n\n
\n
\n { t('add_item_modal.free_instruction') }\n
\n
\n \n { currentFreeInstruction && (\n
{\n setFreeInstruction(\"\");\n changeFreeInstruction(\"\")\n }}>\n \n
\n ) }\n
\n
\n
\n );\n};\n\nexport default ItemAdditions;\n","import React from 'react';\nimport FormattedPrice from \"../../components/FormattedPrice\";\nimport './itemInfo.scss';\n\nconst ItemInfo = ({ orderItem }) => {\n\n return (\n
\n
\n
\n { orderItem.menuItem.item_name }\n
\n
\n \n
\n
\n
\n { orderItem.menuItem.details_txt }\n
\n
\n );\n};\n\nexport default ItemInfo;\n","import React from 'react';\nimport {getItemPrice} from \"../../helpers/common\";\nimport FormattedPrice from \"../../components/FormattedPrice\";\nimport './ItemAddToCartBtn.scss';\n\nconst ItemAddToCardBtn = ({ t, orderItem, onAddToCart }) => {\n return (\n \n
\n { t('add_item_modal.add_to_card') }\n
\n
\n \n
\n \n );\n};\n\nexport default ItemAddToCardBtn;\n","import React, { useState, useEffect } from 'react';\nimport {generateOrderItem, getItemPrice, isMobileAndTablet} from \"../helpers/common\";\nimport ItemToCartInfo from \"./components/ItemToCartInfo\";\nimport ItemQuantity from \"./components/ItemQuantiry\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {getImageUrl} from \"../api/iposApi\";\nimport IPosModal from \"./index\";\nimport ItemAdditions from \"./components/ItemAdditions\";\nimport ItemInfo from \"./components/ItemInfo\";\nimport ItemAddToCardBtn from \"./components/ItemAddToCardBtn\";\n\nconst AddItemModal = ({menuItem, currentOrderItem, selectedItemSupplements, itemInstructions, t, closeModal, onOk, menuItemTypes}) => {\n const [orderItem, updateOrderItem] = useState(currentOrderItem ? currentOrderItem : generateOrderItem(menuItem, menuItemTypes));\n const [selectedSupplements, setSelectedSupplements] = useState(currentOrderItem ? currentOrderItem.supplements : []);\n const [selectedInstructions, setSelectedInstructions] = useState(currentOrderItem ? currentOrderItem.instructions : []);\n const [currentQuantity, setCurrentQuantity] = useState(currentOrderItem ? currentOrderItem.orderItem.quantity : 1);\n const [currentFreeInstruction, setCurrentFreeInstruction] = useState(currentOrderItem ? currentOrderItem.freeInstruction : \"\");\n\n const isMobile = isMobileAndTablet();\n\n const onSelectSupplement = (supplement) => {\n if (selectedSupplements.some(i => i.menuItem.menu_item_id === supplement.menu_item_id)) {\n setSelectedSupplements(selectedSupplements.filter(i => i.menuItem.menu_item_id !== supplement.menu_item_id));\n } else {\n const orderSupplement = generateOrderItem(supplement, menuItemTypes, null, orderItem.orderItem.quantity);\n if (orderItem.menuItem.max_supplement_qty === 0 || getSupplementsQuantity()+1 <= orderItem.menuItem.max_supplement_qty) {\n setSelectedSupplements([...selectedSupplements, orderSupplement]);\n }\n }\n };\n\n const getSupplementsQuantity = () => {\n return selectedSupplements.length\n };\n\n const onSelectInstructions = (instruction) => {\n if (selectedInstructions.some(i => i.menuItem.menu_item_id === instruction.menu_item_id)) {\n setSelectedInstructions(selectedInstructions.filter(i => i.menuItem.menu_item_id !== instruction.menu_item_id));\n } else {\n const orderInstruction = generateOrderItem(instruction, menuItemTypes);\n setSelectedInstructions([...selectedInstructions, orderInstruction]);\n }\n };\n\n useEffect(() => {\n updateOrderItem(Object.assign({}, orderItem, {supplements: selectedSupplements}));\n }, [selectedSupplements]);\n\n useEffect(() => {\n updateOrderItem(Object.assign({}, orderItem, {instructions: selectedInstructions}));\n }, [selectedInstructions]);\n\n useEffect(() => {\n updateOrderItem(Object.assign({}, orderItem, {freeInstruction: currentFreeInstruction}));\n }, [currentFreeInstruction]);\n\n useEffect(() => {\n const tmpItem = Object.assign({}, orderItem);\n tmpItem.orderItem.quantity = currentQuantity;\n for (const supplement of tmpItem.supplements) {\n supplement.orderItem.quantity = currentQuantity;\n }\n\n updateOrderItem(tmpItem);\n\n }, [currentQuantity]);\n\n const onAddToCart = () => {\n orderItem.supplements = selectedSupplements;\n orderItem.instructions = selectedInstructions;\n orderItem.freeInstruction = currentFreeInstruction;\n\n const [valid, message] = isValid();\n\n if (!valid) {\n IPosModal.alert({\n title: t('add_item_modal.errors.title'),\n message: message,\n okButtonText: t('buttons.ok'),\n cancelButtonText: t('buttons.cancel'),\n onOk: () => { return; }\n });\n\n return;\n }\n\n onOk(orderItem);\n closeModal();\n };\n\n const isValid = () => {\n // Min Supplement Rule\n if (orderItem.menuItem.min_supplement && orderItem.menuItem.min_supplement > 0){\n const minSupplements = orderItem.menuItem.min_supplement;\n if (orderItem.supplements.length < minSupplements) {\n return [false, t('add_item_modal.errors.min_supplements', {minSupplements: minSupplements})];\n }\n }\n\n if (orderItem.menuItem.is_use_inctraction_flg !== 0){\n // 0 - NotUse,\n // 1 - UseInstraction,\n // 2 - UseSupplement,\n // 3 - UseInstractionAndSupplement\n if (orderItem.menuItem.is_use_inctraction_flg === 1 && orderItem.instructions.length === 0) {\n return [false, t('add_item_modal.errors.at_least_instruction')];\n }\n\n if (orderItem.menuItem.is_use_inctraction_flg === 2 && orderItem.supplements.length === 0) {\n return [false, t('add_item_modal.errors.at_least_supplement')];\n }\n\n if (orderItem.menuItem.is_use_inctraction_flg === 3 && (orderItem.supplements.length === 0 || orderItem.instructions.length === 0)) {\n return [false, t('add_item_modal.errors.at_least_supplement_and_instruction')];\n }\n }\n\n return [true, \"\"];\n };\n\n // const changeFreeInstruction = (value) => {\n // setCurrentFreeInstruction(value);\n // };\n\n const mobileLayout = () => {\n return (\n
\n
\n\n
\n
\n
\n \n
\n { if (isMobile) { closeModal(); }}}\n />\n
\n \n
\n
\n \n
\n {/**/}\n
\n
\n \n \n
\n
\n );\n };\n\n const desktopLayout = () => {\n return (\n
\n
\n
\n { if (isMobile) { closeModal(); }}}\n />\n \n
\n\n
\n
\n \n
\n \n \n
\n
\n
\n
\n \n
\n \n
\n
\n );\n };\n\n return (\n <>\n { isMobile ? mobileLayout() : desktopLayout() }\n \n );\n};\n\n\nexport default AddItemModal;\n","import React from 'react';\nimport './ConfirmModal.scss';\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\n\nconst ConfirmModal = ({ closeModal,\n onClose,\n onOk,\n title,\n message,\n okButtonName=null,\n okButtonText='Ok',\n cancelButtonName = null,\n cancelButtonText = 'Cancel',\n }) => {\n return (\n
\n
\n\n
\n \n
\n\n
\n
\n
\n {\n onOk();\n closeModal();\n }\n }\n >\n {okButtonText}\n \n\n {\n onClose();\n closeModal();\n }\n }\n >\n {cancelButtonText}\n \n
\n
\n
\n );\n};\n\nexport default ConfirmModal;\n","import React from 'react';\nimport './ConfirmModal.scss';\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\n\nconst AlertModal = ({ closeModal,\n onClose,\n onOk,\n title,\n message,\n iconName = \"info-circle\",\n okButtonName=null,\n okButtonText='Ok',\n closeOnBodyClick = false\n }) => {\n return (\n {\n if (closeOnBodyClick) {\n onOk();\n closeModal();\n }\n\n return false;\n }}\n >\n
\n
\n \n
\n\n
\n
{ message }
\n
\n {\n onOk();\n closeModal();\n }\n }\n >\n {okButtonText}\n \n
\n
\n \n );\n};\n\nexport default AlertModal;\n","import React from 'react';\nimport {LoadScript, GoogleMap, Polygon, DrawingManager} from \"@react-google-maps/api\";\n\nconst GOOGLE_API_KEY = \"AIzaSyCbGCUYrMZYj-LdlsRJIeHg60ekgDPwczw\";\n\nconst Map = ({areas}) => {\n\n\n const getPolygonPath = (pointsString) => {\n return JSON.parse(pointsString);\n };\n\n // const polygonProps = polygon\n // ? {\n // path: polygon.getPath(),\n // editable: polygon.editable,\n // clickable: polygon.clickable,\n // options: {\n // fillOpacity: polygon.fillOpacity,\n // strokeWeight: polygon.strokeWeight,\n // },\n // }\n // : null;\n\n return (\n
\n {/**/}\n \n { areas.map((pointsString)=>(\n \n ) ) }\n\n \n {/**/}\n
\n\n );\n};\n\n\nexport default Map;\n","import React from 'react';\nimport moment from \"moment\";\nimport './BranchInfoModal.scss';\nimport {getImageUrl} from \"../api/iposApi\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Map from \"../components/Map\";\nimport FormattedPrice from \"../components/FormattedPrice\";\nimport {convertDotNetTimeToMomentDate} from \"../helpers/dateTime\";\n\nconst BranchInfoModal = ({ t, closeModal, onClose, onOk, branchInfo}) => {\n const todayWorkingHours = branchInfo.DeliveryTimes ? branchInfo.DeliveryTimes.some(dt => dt.day_of_week === moment().day()) : null;\n\n const branchWazeLink = (branchInfo.latitude && branchInfo.longitude)\n ? `https://www.waze.com/ul?ll=${branchInfo.latitude}%2C${branchInfo.longitude}&navigate=yes&zoom=17`\n :`https://waze.com/ul?q=${branchInfo.Address}&navigate=yes&utm_campaign=default&utm_source=waze_website&utm_medium=lm_share_location`\n\n return (\n
\n
\n \n
\n area.points) }/>\n
\n
\n \"iPos\n
\n
\n { branchInfo.PlaseName }\n
\n
\n {/*
*/}\n {/*
*/}\n {/* */}\n {/* */}\n {/* { branchInfo.Address }*/}\n {/* */}\n {/*
*/}\n {/*
*/}\n\n {/*
*/}\n {/*
*/}\n {/* */}\n {/* {branchInfo.Phone}*/}\n {/*
*/}\n {/*
*/}\n\n
\n
{ t('branch_info.about') }
\n
\n { branchInfo.Details }\n
\n
\n\n
\n
{ t('branch_info.delivery_details') }
\n
\n\n
\n
\n { t('branch_info.details.delivery_item') }\n
\n
\n \n
\n
\n\n
\n
\n { t('branch_info.details.minimum_order') }\n
\n
\n \n
\n
\n\n
\n
\n { t('branch_info.details.delivery_time') }\n
\n
\n { branchInfo.DeliveryTime } { t('branch_info.details.min') }\n
\n
\n\n
\n
\n { t('branch_info.details.working_hours') }\n
\n
\n {\n\n (!todayWorkingHours.start_dt && !todayWorkingHours.end_dt)\n ?\n t('working_time.closed')\n :\n `${convertDotNetTimeToMomentDate(todayWorkingHours.start_dt).format(\"HH:mm\")}\n -\n ${convertDotNetTimeToMomentDate(todayWorkingHours.end_dt).format(\"HH:mm\")}`\n\n }\n
\n
\n\n
\n
\n { t('branch_info.details.call_us') }\n
\n \n
\n\n
\n
\n { t('branch_info.details.address') }\n
\n
\n \n { branchInfo.Address }\n \n
\n
\n
\n
\n
\n );\n};\n\nexport default BranchInfoModal;\n","import React, { useState, useEffect } from 'react';\nimport logo from \"../../assets/img/logo/i-love-ipos.png\";\nimport {getImageUrl} from \"../../api/iposApi\";\n\nconst Branch = ({ branchInfo, openBranch }) => {\n return (\n { openBranch(branchInfo.branch_guid_code) } }\n >\n
\n \"iPos\n
\n
\n
{ branchInfo.PlaseName }
\n
{ branchInfo.Address }
\n
\n\n \n );\n};\n\nexport default Branch;\n","import React from 'react';\nimport './BranchesListModal.scss';\nimport {getImageUrl} from \"../api/iposApi\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Branch from \"../layouts/components/Branch\";\n\nconst BranchesListModal = ({ closeModal, onClose, onOk, branches, history}) => {\n const openBranch = (guidCode) => {\n history.push(`/${guidCode}`);\n closeModal();\n };\n\n return (\n
\n
\n \n
\n
\n {\n branches.map(branch => (\n \n ))\n }\n
\n
\n );\n};\n\nexport default BranchesListModal;\n","import React, { useState } from 'react';\nimport './ConfirmModal.scss';\n\nconst ConfirmationCodeModal = ({ closeModal,\n onClose,\n onOk,\n t,\n okButtonName=null,\n okButtonText='Ok',\n cancelButtonName = null,\n cancelButtonText = 'Cancel',\n }) => {\n const [confCode, setConfCode] = useState(null);\n\n const onSetConfirmationCode = () => {\n onOk({code: confCode});\n closeModal();\n };\n\n return (\n
\n
\n
\n { t('confirmation_code.dialog.title') }\n
\n
\n \n {\n const { value } = e.currentTarget;\n setConfCode(value);\n }}\n />\n
\n
\n \n {okButtonText}\n \n\n {\n onClose();\n closeModal();\n }\n }\n >\n {cancelButtonText}\n \n
\n
\n
\n );\n};\n\nexport default ConfirmationCodeModal;\n","import confirm from './confirm';\nimport IPosModal from './IPosModal';\nimport AddItemModal from './AddItemModal';\nimport ConfirmModal from './ConfirmModal';\nimport AlertModal from './AlertModal';\nimport BranchInfoModal from './BranchInfoModal';\nimport BranchesListModal from './BranchesListModal';\nimport ConfirmationCodeModal from './ConfirmationCodeModal';\n\nIPosModal.addItemModal = (props, baseModalProps = {}) => {\n baseModalProps.modalClassName = 'add-item-modal';\n const config = {\n modalType: AddItemModal,\n modalProps: props,\n ...baseModalProps,\n };\n return confirm(config);\n};\n\nIPosModal.confirmation = (props, baseModalProps = {}) => {\n baseModalProps.modalClassName = 'confirmation-modal';\n const config = {\n modalType: ConfirmModal,\n modalProps: props,\n ...baseModalProps\n };\n return confirm(config);\n};\n\nIPosModal.alert = (props, baseModalProps = {}) => {\n if (!baseModalProps.modalClassName) {\n baseModalProps.modalClassName = 'confirmation-modal';\n }\n const config = {\n modalType: AlertModal,\n modalProps: props,\n ...baseModalProps\n };\n return confirm(config);\n};\n\nIPosModal.branchInfo = (props, baseModalProps = {}) => {\n baseModalProps.modalClassName = 'branch-info-modal';\n const config = {\n modalType: BranchInfoModal,\n modalProps: props,\n ...baseModalProps\n };\n return confirm(config);\n};\n\nIPosModal.branchesList = (props, baseModalProps = {}) => {\n baseModalProps.modalClassName = 'branches-list-modal';\n const config = {\n modalType: BranchesListModal,\n modalProps: props,\n ...baseModalProps\n };\n return confirm(config);\n};\n\nIPosModal.confirmationCode = (props, baseModalProps = {}) => {\n baseModalProps.modalClassName = 'confirmation-code-modal';\n const config = {\n modalType: ConfirmationCodeModal,\n modalProps: props,\n ...baseModalProps\n };\n return confirm(config);\n};\n\n\nexport default IPosModal;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport './SearchLocationInput.scss';\nimport {withTranslation} from \"react-i18next\";\n\nconst GOOGLE_API_KEY = \"AIzaSyCbGCUYrMZYj-LdlsRJIeHg60ekgDPwczw\";\n\nlet autoComplete;\n\nconst loadScript = (url, callback) => {\n let script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n\n if (script.readyState) {\n script.onreadystatechange = function() {\n if (script.readyState === \"loaded\" || script.readyState === \"complete\") {\n script.onreadystatechange = null;\n callback();\n }\n };\n } else {\n script.onload = () => callback();\n }\n\n script.src = url;\n document.getElementsByTagName(\"head\")[0].appendChild(script);\n};\n\nfunction handleScriptLoad(updateQuery, autoCompleteRef, selectAddress, setError) {\n autoComplete = new window.google.maps.places.Autocomplete(\n autoCompleteRef.current,\n { types: ['geocode'], componentRestrictions: { country: \"il\" } }\n );\n autoComplete.setFields([\"place_id\", \"formatted_address\", \"geometry\", \"address_components\"]);\n autoComplete.addListener(\"place_changed\", () =>\n handlePlaceSelect(updateQuery, selectAddress, setError)\n );\n}\n\nasync function handlePlaceSelect(updateQuery, selectAddress, setError) {\n const addressObject = autoComplete.getPlace();\n if (!addressObject){\n setError('required');\n return;\n }\n const streetPresent = containsStreetNumber(addressObject);\n const query = addressObject.formatted_address;\n updateQuery(query);\n if (!streetPresent) {\n setError('empty_street');\n selectAddress(null);\n } else {\n setError(null);\n selectAddress(addressObject);\n }\n\n console.log(addressObject);\n}\n\nfunction containsStreetNumber(addressObject) {\n let result = false;\n for (const component of addressObject.address_components) {\n const addressType = component.types[0];\n\n if (addressType === 'street_number') {\n result = true;\n }\n }\n\n return result;\n}\n\nconst SearchLocationInput = ({defaultValue=\"\", addressObject=null, placeholder, language, onAddressSelect, t}) => {\n const [query, setQuery] = useState(defaultValue);\n const [selectedAddress, setSelectedAddress] = useState(addressObject);\n const autoCompleteRef = useRef(null);\n const [error, setError] = useState(null);\n const ERRORS = {\n 'empty_street': t('client_details.validation.street_is_empty'),\n 'required': t('client_details.validation.required_field')\n };\n\n const selectAddress = (addressObject) => {\n onAddressSelect(addressObject);\n setSelectedAddress(addressObject);\n };\n\n const onChaangeAddressText = (e) => {\n const { value } = e.currentTarget;\n setQuery(value);\n if (value === '') {\n selectAddress(null);\n setError('required');\n }\n };\n\n useEffect(() => {\n loadScript(\n `https://maps.googleapis.com/maps/api/js?key=${GOOGLE_API_KEY}&language=${language}&libraries=places`,\n () => handleScriptLoad(setQuery, autoCompleteRef, selectAddress, setError)\n );\n }, [language]);\n\n useEffect(() => {\n if (!selectedAddress) {\n setError('required');\n }\n }, []);\n\n return (\n
\n \n\n { error &&\n
\n { ERRORS[error] }\n
\n }\n
\n );\n};\n\nexport default withTranslation()(SearchLocationInput);\n","import React, { useState, useEffect } from 'react';\nimport {connect} from \"react-redux\";\nimport {bindActionCreators} from 'redux';\nimport enIcon from '../../assets/img/flags/lang-en.png';\nimport heIcon from '../../assets/img/flags/lang-he.png';\nimport {setLanguageId} from \"../../redux/actions/baseActions\";\nimport moment from \"moment\";\nimport {convertDotNetTimeToMomentDate} from \"../../helpers/dateTime\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\n\nconst MobileMenu = ({t, setLanguageId, branchInfo}) => {\n const [workingHoursVisible, setWorkingHoursVisible] = useState(false);\n const [aboutVisible, setAboutVisible] = useState(false);\n const [menuOpened, setMenuOpened] = useState(false);\n\n const branchWazeLink = (branchInfo.latitude && branchInfo.longitude)\n ? `https://waze.com/ul?ll=${branchInfo.latitude},${branchInfo.longitude}&=10`\n :`https://waze.com/ul?q=${branchInfo.Address}&navigate=yes&utm_campaign=default&utm_source=waze_website&utm_medium=lm_share_location`\n\n const changeLanguageId = (id) => {\n setLanguageId(id);\n };\n\n return (\n
\n {setMenuOpened(!menuOpened)} }\n />\n {/**/}\n\n
\n
\n
{ changeLanguageId(1) } }>\n {''}/\n
\n
{ changeLanguageId(2) } }>\n {''}/\n
\n
\n
\n
\n { branchInfo.PlaseName }\n
\n
\n
\n
\n \n \n { branchInfo.Address }\n \n
\n \n {\n setAboutVisible(!aboutVisible);\n } }\n >\n \n { t('branch_info.about') }\n
\n { aboutVisible && (\n
\n { branchInfo.Details }\n
\n ) }\n
{\n setWorkingHoursVisible(!workingHoursVisible);\n } }\n >\n \n { t('working_time.working_hours') }\n
\n { workingHoursVisible && (\n
\n {/*
*/}\n {/* */}\n {/* { t('working_time.working_hours') }*/}\n {/*
*/}\n\n
    \n { branchInfo.DeliveryTimes && branchInfo.DeliveryTimes.map( deliveryTime => (\n
  • \n \n \n { moment().day(deliveryTime.day_of_week).format(\"dddd\") }\n \n \n {\n (!deliveryTime.start_dt && !deliveryTime.end_dt)\n ?\n t('working_time.closed')\n :\n `${convertDotNetTimeToMomentDate(deliveryTime.start_dt).format(\"HH:mm\")}\n -\n ${convertDotNetTimeToMomentDate(deliveryTime.end_dt).format(\"HH:mm\")}`\n }\n\n \n
  • \n )) }\n
\n
\n ) }\n\n
\n\n
\n
\n Powered By\n iPos\n
\n
\n
\n\n \n );\n};\n\nconst mapStateToProps = (state) => {\n const {\n currentLanguageId,\n branchInfo\n } = state;\n\n return {\n currentLanguageId,\n branchInfo\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n setLanguageId\n },\n dispatch,\n );\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MobileMenu);\n","import React, { useState, useEffect } from 'react';\nimport { bindActionCreators } from 'redux';\nimport { useHistory } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport ReactTooltip from 'react-tooltip';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport moment from 'moment';\nimport LanguagePicker from \"../../components/LaguagePicker\";\nimport {loadRestaurant} from \"../../redux/actions/baseActions\";\nimport {withTranslation} from \"react-i18next\";\nimport {DeliveryType} from \"../../constants/deliveryTypes\";\nimport {getImageUrl} from \"../../api/iposApi\";\nimport {convertDotNetTimeToMomentDate} from \"../../helpers/dateTime\";\nimport IPosModal from \"../../IPosModal\";\nimport logo from '../../assets/img/logo/i-love-ipos.png';\nimport MobileMenu from \"./MobileMenu\";\nimport {isMobileAndTablet} from \"../../helpers/common\";\n\nconst TopNavigation = ({ t, branchInfo, currentDeliveryType, empty }) => {\n\n const history = useHistory();\n\n const openBranchInfo = () => {\n IPosModal.branchInfo({\n branchInfo: branchInfo,\n t: t,\n onOk: () => { }\n });\n };\n\n const goToHome = () => {\n IPosModal.confirmation({\n title: t('dialogs.redirect_to_home_title'),\n message: t('dialogs.redirect_to_home_description'),\n okButtonText: t('buttons.ok'),\n cancelButtonText: t('buttons.cancel'),\n onOk: () => {\n if (branchInfo && branchInfo.branch_guid_code){\n history.push(`/${branchInfo.branch_guid_code}/type`);\n } else {\n history.push(`/`);\n }\n\n window.location.reload();\n }, onClose: () => {\n return;\n }\n });\n };\n\n const isMobile = isMobileAndTablet();\n\n return (\n
\n \n { !empty && (\n\n \n
{ t('working_time.working_hours') }
\n
    \n { branchInfo.DeliveryTimes && branchInfo.DeliveryTimes.map( deliveryTime => (\n
  • \n \n \n { moment().day(deliveryTime.day_of_week).format(\"dddd\") }\n \n \n {\n (!deliveryTime.start_dt && !deliveryTime.end_dt)\n ?\n t('working_time.closed')\n :\n `${convertDotNetTimeToMomentDate(deliveryTime.start_dt).format(\"HH:mm\")}\n -\n ${convertDotNetTimeToMomentDate(deliveryTime.end_dt).format(\"HH:mm\")}`\n }\n\n \n
  • \n )) }\n {/*
  • Monday to Thuesday 6:00 - 18:00
  • */}\n {/*
  • Friday to Saturdays 12:00 - 22:00
  • */}\n {/*
  • Sundays closed
  • */}\n
\n
\n\n ) }\n\n\n
\n\n );\n};\n\nconst mapStateToProps = (state) => {\n const {\n branchInfo,\n currentDeliveryType\n } = state;\n\n return {\n branchInfo,\n currentDeliveryType\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n loadRestaurant\n },\n dispatch,\n );\n\nexport default withTranslation()(connect(mapStateToProps, mapDispatchToProps)(TopNavigation));\n","import React, { useState, useEffect } from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { withTranslation} from \"react-i18next\";\n\nimport { setItemsFilter } from '../../redux/actions/menuActions';\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\n\n\nconst Search = ({ t, branchInfo, setItemsFilter, visibleSection }) => {\n\n const [filterValue, setfilterValue] = useState(\"\");\n const handleChange = (e) => {\n const { value } = e.currentTarget;\n setfilterValue(value);\n setItemsFilter(value);\n };\n\n return (\n <>\n {/*
*/}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n\n
\n
\n { visibleSection && visibleSection.menuItemName }\n
\n
\n \n { filterValue && (\n
{\n setfilterValue(\"\");\n setItemsFilter(\"\")\n }}>\n \n
\n ) }\n\n
\n
\n {/*
*/}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n \n );\n};\n\n\nconst mapStateToProps = (state) => {\n const {\n branchInfo\n } = state;\n\n return {\n branchInfo\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n setItemsFilter\n },\n dispatch,\n );\n\nexport default withTranslation()(connect(mapStateToProps, mapDispatchToProps)(Search));\n","import React, { useState, useEffect } from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\n\nimport logo from \"../../assets/img/logo/i-love-ipos.png\";\nimport LanguagePicker from \"../../components/LaguagePicker\";\nimport TopNavigation from \"./TopNavigation\";\nimport Search from \"./Search\";\nimport {getImageUrl} from \"../../api/iposApi\";\n\n\nconst Header = ({ branchInfo }) => {\n return (\n <>\n
\n {/**/}\n \n {/*
*/}\n {/*
*/}\n {/*

{ branchInfo.branch_name }

*/}\n {/*
*/}\n {/*
*/}\n {/*More*/}\n {/*
*/}\n {/*
*/}\n {/**/}\n {/**/}\n\n
\n \n );\n};\n\n\nconst mapStateToProps = (state) => {\n const {\n branchInfo\n } = state;\n\n return {\n branchInfo\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n },\n dispatch,\n );\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Header);\n","import React, { useState, useEffect } from 'react';\nimport { scroller } from 'react-scroll';\nimport {isMobileAndTablet} from \"../../../helpers/common\";\n\n\nexport const GroupItem = ({ groupItem, visibleSection }) => {\n const sectionName = `section_${groupItem.menu_item_id}`;\n const isMobile = isMobileAndTablet();\n\n const scrollToSection = (e) => {\n e.preventDefault();\n scroller.scrollTo(sectionName, {\n duration: 1500,\n offset: isMobile ? 100 : 170,\n delay: 0,\n smooth: true,\n containerId: 'scrollable-restaurant-layout'\n });\n };\n\n return (\n
  • \n \n\n { groupItem.item_name }\n\n \n {/**/}\n
  • \n );\n};\n","import React, { useState, useEffect } from 'react';\nimport {connect} from 'react-redux';\nimport {bindActionCreators} from 'redux';\nimport {GroupItem} from \"./GroupItem\";\nimport { withTranslation } from \"react-i18next\";\n\nconst Groups = ({ t, menuGroups, visibleSection }) => {\n return (\n <>\n
    \n\n {/*

    {t('menu.title')}

    */}\n\n
    \n\n
      \n {\n menuGroups.map(group => (\n \n ))\n }\n
    \n
    \n
    \n\n \n );\n};\n\nconst mapStateToProps = (state) => {\n const {\n menuGroups\n } = state;\n\n return {\n menuGroups\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n\n },\n dispatch,\n );\n\nexport default withTranslation()(connect(mapStateToProps, mapDispatchToProps)(Groups));\n\n","import { createSelector } from 'reselect';\nimport {generateOrderItem, getItemPrice} from '../../helpers/common';\nimport {DeliveryType} from \"../../constants/deliveryTypes\";\n\nconst selectOrderItems = (state) => {\n return state.orderItems;\n};\n\nconst selectCurrentDeliveryType = (state) => {\n return state.currentDeliveryType;\n};\n\nconst selectBranchInfo = (state) => {\n return state.branchInfo;\n};\n\nconst selectMenuItemTypes = (state) => {\n return state.menuItemTypes;\n};\n\nconst selectRoundSetting = (state) => {\n return state.branchInfo.RoundFormat || 0;\n};\n\nexport const currentDeliveryItem = createSelector(\n [selectOrderItems, selectRoundSetting, selectBranchInfo, selectMenuItemTypes, selectCurrentDeliveryType],\n (orderItems, roundFormat, branchInfo, menuItemTypes, currentDeliveryType) => {\n if (currentDeliveryType === DeliveryType.TA) {\n return null;\n }\n\n const deliveryItemPresent = +branchInfo.CostDelivery > 0 && branchInfo.DeliveryItem;\n if (!deliveryItemPresent) { return null; }\n\n const total = orderItems.reduce(totalSumReducer, 0);\n const orderSubtotal = +(roundSum(total / 100, roundFormat) * 100).toFixed(2);\n\n if (deliveryItemPresent && +branchInfo.AddDeliveryItem > 0 && +branchInfo.AddDeliveryItem <= orderSubtotal) {\n return null;\n }\n\n return generateOrderItem(branchInfo.DeliveryItem, menuItemTypes, +branchInfo.CostDelivery);\n }\n);\n\nexport const orderTotal = createSelector(\n [selectOrderItems, selectRoundSetting, selectBranchInfo, selectCurrentDeliveryType],\n (orderItems, roundFormat, branchInfo, currentDeliveryType) => {\n const total = orderItems.reduce(totalSumReducer, 0);\n const orderSubtotal = +(roundSum(total / 100, roundFormat) * 100).toFixed(2);\n\n const deliveryItemPresent = (+branchInfo.CostDelivery > 0 && branchInfo.DeliveryItem) && currentDeliveryType === DeliveryType.DELIVERY;\n const shouldAddDeliveryItem = deliveryItemPresent && (+branchInfo.AddDeliveryItem === 0 || (+branchInfo.AddDeliveryItem > 0 && +branchInfo.AddDeliveryItem > orderSubtotal));\n\n return (deliveryItemPresent && shouldAddDeliveryItem) ? orderSubtotal + +branchInfo.CostDelivery : orderSubtotal;\n }\n);\n\nexport const orderSubTotal = createSelector(\n [selectOrderItems, selectRoundSetting],\n (orderItems, roundFormat) => {\n const total = orderItems.reduce(totalSumReducer, 0);\n return +(roundSum(total / 100, roundFormat) * 100).toFixed(2);\n }\n);\n\n// export const orderPaidTotal = createSelector(\n// [selectOrderPayments],\n// (payments) => {\n// return payments.reduce(totalPayedSumReducer, 0);\n// }\n// );\n//\n// export const orderToPay = createSelector(\n// [selectOrderItems, selectOrderPayments, selectRoundSetting],\n// (orderItems, payments, roundFormat) => {\n// const total = orderItems.reduce(totalSumReducer, 0);\n//\n// return roundSum(total, roundFormat) - payments.reduce(totalPayedSumReducer, 0);\n// }\n// );\n\nconst roundSum = (total, roundSetting) => {\n const rules = [1, 10, 100];\n const rule = rules[roundSetting];\n return (Math.round(total * rule) / rule).toFixed(2);\n};\n\nconst totalPayedSumReducer = (total, payment) => {\n return total + payment.Amount;\n};\n\nconst totalSumReducer = (total, item) => {\n // if (!item.orderItem.price) return total;\n\n let itemPrice = getItemPrice(item, true, true);\n\n if (item.orderItem.discount_type === 2) {\n itemPrice = Math.ceil(itemPrice);\n }\n\n // let itemPrice = item.orderItem.price;\n //\n // switch (item.orderItem.discount_type) {\n // case 2:\n // itemPrice -= (itemPrice * (item.orderItem.discount / 10000));\n // break;\n // case 1:\n // itemPrice -= item.orderItem.discount;\n // break;\n // default:\n // break;\n // }\n // itemPrice *= item.orderItem.quantity;\n\n // if (currentOrderTable.discount_type === 2 && !curr.block_change_price_flg) {\n // itemPrice -= (itemPrice * (currentOrderTable.discount / 10000));\n // }\n // if (currentOrderTable.discount_type === 1 && !curr.block_change_price_flg) {\n // itemPrice -= currentOrderTable.discount;\n // }\n\n return total + itemPrice;\n};\n","export const setClientInfo = data => ({\n type: 'SET_CLIENT_INFO',\n data,\n});\n\nexport const updateClientInfo = data => ({\n type: 'UPDATE_CLIENT_INFO',\n data,\n});\n\nexport const clearClientInfo = () => ({\n type: 'CLEAR_CLIENT_INFO'\n});\n","import Guid from 'guid';\nimport iposApi from '../../api/iposApi';\nimport {generateOrderItem, getItemType} from '../../helpers/common';\nimport {currentDeliveryItem, orderTotal} from \"../selectors/order\";\nimport {DeliveryType} from \"../../constants/deliveryTypes\";\nimport { showLoading, hideLoading } from \"./loadingActions\";\nimport {saveBranchInfo} from \"./branchActions\";\nimport {loadtMenuItemTypes, storeMenuItems} from \"./menuActions\";\nimport {setClientInfo} from \"./clientActions\";\n\n\nexport const addToOrderAction = data => ({\n type: 'ADD_TO_ORDER',\n data,\n});\n\nexport const updateOrderItem = data => ({\n type: 'UPDATE_ORDER_ITEM',\n data,\n});\n\nexport const deleteOrderItem = data => ({\n type: 'DELETE_ORDER_ITEM',\n data,\n});\n\nexport const clearOrder = () => ({\n type: 'CLEAR_ORDER'\n});\n\nexport const setOrderType = data => ({\n type: 'SET_ORDER_TYPE',\n data\n});\n\nexport const setOrderDateTime = data => ({\n type: 'SET_ORDER_DATE_TIME',\n data\n});\n\nexport const setOrderInfo = data => ({\n type: 'SET_ORDER_INFO',\n data\n});\n\nexport const addToOrder = (item, quantity)=> async (dispatch, getState) => {\n const { orderItems } = getState();\n\n const existingItem = orderItems.find((i) => i.guidCode === item.guidCode);\n\n if (existingItem) {\n // dispatch(changeItemQuantity(existingItem, existingItem.orderItem.quantity + 1));\n dispatch(updateOrderItem(item));\n return\n }\n\n dispatch(addToOrderAction(item));\n};\n\n\nconst createNewItem = (menuItem, orderItem) => (dispatch, getState) => {\n const { menuItemTypes } = getState();\n const isRootItem = !orderItem.parent_id && !orderItem.parent_uid;\n const isShareItem = orderItem.share_id !== null && orderItem.share_index !== null;\n const shareIndexId = (orderItem.share_id !== null && orderItem.share_index !== null) ? `${orderItem.share_id}_${orderItem.share_index}` : null;\n const isShareRootItem = isShareItem && orderItem.free_instruction_text !== null;\n\n return {\n id: orderItem.order_menu_item_id,\n guidCode: orderItem.guid_code,\n isRootItem: (isRootItem && !isShareItem) || isShareRootItem,\n isShareItem,\n isShareRootItem,\n shareIndexId,\n orderItem: orderItem,\n menuItem: menuItem,\n menuItemType: getItemType(menuItem, menuItemTypes),\n };\n};\n\nexport const submitOrder = (paymentType, cardData, guidCode = null, confCode = null) => async (dispatch, getState) => {\n const state = getState();\n const { branchInfo, clientInfo, orderItems, currentLanguageId, currentDeliveryType, orderDateTime } = state;\n\n dispatch(showLoading());\n\n const totalAmount = orderTotal(state);\n const deliveryItem = currentDeliveryItem(state);\n\n const url = '/SubmitOrder';\n let orderData = {};\n orderData.delivery = currentDeliveryType === DeliveryType.DELIVERY;\n orderData.branch_id = branchInfo.branch_guid_code;\n orderData.language_id = currentLanguageId;\n orderData.client_info = clientInfo;\n orderData.delivery_time = orderDateTime;\n orderData.order_items = collectOrderItems(orderItems);\n orderData.guid_code = guidCode;\n orderData.confirmation_code = confCode;\n\n if (deliveryItem) {\n orderData.order_items.push(deliveryItem.orderItem);\n }\n\n orderData.payment_delivery = {\n payment_type_id: paymentType.payment_type_id,\n amount: totalAmount,\n card_number: cardData && cardData.cardNumber.replaceAll(/\\s/g,''),\n exp_date: cardData && `${cardData.expiryMonth} / ${cardData.expiryYear}`,\n cvv: cardData && cardData.cvc,\n passport_id: cardData && cardData.passport\n };\n\n try {\n const response = await iposApi.post(url, orderData);\n\n dispatch(hideLoading());\n return await response.data;\n // await dispatch(onSubmitOrder(response.data));\n // dispatch(hideLoading());\n } catch (error) {\n // dispatch(hideLoading());\n dispatch(() => ({ type: 'ERROR', data: error }));\n dispatch(hideLoading());\n }\n};\n\nconst collectOrderItems = (orderItems) => {\n return orderItems.map((item) => {\n const supplements = [...item.supplements.map(s => s.orderItem), ...item.instructions.map(i => i.orderItem)];\n\n const newItem = item.orderItem;\n newItem.supplements = supplements;\n if (item.freeInstruction) {\n newItem.free_text = item.freeInstruction;\n }\n return newItem;\n })\n};\n\nexport const changeItemQuantity = (item, newQuantity) => async (dispatch, getState) => {\n const currentItem = Object.assign({}, item);\n\n const { orderItems } = getState();\n\n currentItem.orderItem.quantity = newQuantity;\n for (const supplement of currentItem.supplements) {\n supplement.orderItem.quantity = newQuantity;\n }\n\n dispatch(updateOrderItem(currentItem))\n};\n\n\nexport const loadOrderInfo = (branchUuid, orderUuid, languageId = 1) => async (dispatch, getState) => {\n const url = '/GetOrderInfo';\n const params = {\n branchId: branchUuid,\n order_code: orderUuid,\n language_id: languageId\n };\n\n const response = await iposApi.get(url, { params });\n\n const branchInfo = response.data.branchInfo;\n branchInfo.branch_guid_code = branchUuid;\n await dispatch(loadtMenuItemTypes());\n await dispatch(saveBranchInfo(branchInfo));\n await dispatch(storeMenuItems(response.data.listMenuIems));\n await dispatch(setClientInfo(response.data.client));\n\n const orderInfo = response.data.order;\n orderInfo.paymentsName = response.data.paymentsName.join(', ')\n await dispatch(setOrderInfo(orderInfo));\n\n const { menuItemTypes } = getState();\n\n const orderItems = [];\n\n for await (let menuItem of response.data.listMenuIems) {\n const orderItem = response.data.listOrderMenuIems.find(oi => oi.menu_item_id === menuItem.menu_item_id);\n\n const item = generateOrderItem(menuItem, menuItemTypes, null, 1, orderItem);\n\n orderItems.push(item);\n\n }\n\n for await (let item of orderItems) {\n if (item.orderItem.parent_id !== null) {\n continue;\n }\n\n const parentItem = item;\n const supplements = orderItems.filter(oi => oi.orderItem.parent_id === parentItem.orderItem.order_menu_item_id && oi.menuItemType === \"SUPPLEMENT\");\n const instructions = orderItems.filter(oi => oi.orderItem.parent_id === parentItem.orderItem.order_menu_item_id && oi.menuItemType === \"PREPARATION_INSTRUCTION\");\n const freeInstruction = response.data.listOrderMenuIems.find(oi => oi.parent_id === parentItem.orderItem.order_menu_item_id && oi.menu_item_id === null);\n\n parentItem.instructions = instructions;\n parentItem.supplements = supplements;\n if (freeInstruction){\n parentItem.freeInstruction = freeInstruction.free_instruction_text;\n }\n await dispatch(addToOrder(parentItem));\n }\n\n\n \n await dispatch(hideLoading());\n\n};\n\n\n","import React, { useState, useEffect } from 'react';\nimport {connect} from 'react-redux';\nimport {bindActionCreators} from 'redux';\n\nimport { addToOrder } from '../../../redux/actions/orderActions';\nimport { selectItem } from '../../../redux/actions/menuActions';\nimport FormattedPrice from \"../../../components/FormattedPrice\";\nimport IPosModal from '../../../IPosModal';\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {generateOrderItem} from \"../../../helpers/common\";\nimport {withTranslation} from \"react-i18next\";\nimport {getImageUrl} from \"../../../api/iposApi\";\nimport {DeliveryType} from \"../../../constants/deliveryTypes\";\nimport { showLoading, hideLoading } from '../../../redux/actions/loadingActions';\n\n\nconst MenuItem = ({ menuItem, addToOrder, t,\n selectedItem, selectedItemSupplements, currentLanguageId,\n selectItem, menuItemTypes, currentDeliveryType, showLoading, hideLoading }) => {\n\n const addItemToCart = async (e) => {\n if (currentDeliveryType === DeliveryType.MENU) {\n e.preventDefault();\n return;\n }\n\n showLoading();\n e.preventDefault();\n selectItem(menuItem).then(async ([supplements, instructions]) => {\n\n // const newItem = generateOrderItem(menuItem, menuItemTypes);\n hideLoading();\n\n IPosModal.addItemModal({\n menuItem: menuItem,\n // orderItem: newItem,\n t: t,\n isRtl: currentLanguageId === 2,\n // menuItemTypes: menuItemTypes,\n selectedItemSupplements: await supplements,\n itemInstructions: await instructions,\n menuItemTypes: menuItemTypes,\n onOk: (orderItem) => {\n addToOrder(orderItem);\n }, onClose: () => {\n return;\n }\n } ,{});\n });\n };\n\n\n return (\n \n
    \n\n
    \n
    \n {/*\"iPos*/}\n \n
    \n {/*NEW*/}\n\n
    \n
    \n

    { menuItem.item_name }

    \n\n
    \n \n \n \n
    \n
    \n\n\n

    \n { menuItem.details_txt }\n

    \n\n
    \n
    \n\n { currentDeliveryType !== DeliveryType.MENU && (\n
    \n \n
    \n )}\n\n\n\n
    \n \n );\n};\n\nconst mapStateToProps = (state) => {\n const {\n menuGroups,\n selectedItemSupplements,\n selectedItem,\n menuItemTypes,\n currentLanguageId,\n currentDeliveryType\n } = state;\n\n return {\n menuGroups,\n selectedItemSupplements,\n selectedItem,\n menuItemTypes,\n currentLanguageId,\n currentDeliveryType\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n addToOrder,\n selectItem,\n showLoading, hideLoading\n },\n dispatch,\n );\n\nexport default withTranslation()(connect(mapStateToProps, mapDispatchToProps)(MenuItem));\n","import React, { useState, useEffect, useRef } from 'react';\nimport {connect} from 'react-redux';\nimport {bindActionCreators} from 'redux';\n\nimport MenuItem from \"./MenuItem\";\nimport {itemsFilter} from \"../../../redux/reducers/menuReducers\";\n\n\nexport const MenuItemsGroupSection = ({ groupItem, menuItems, itemsFilter, addToSectionsRefs }) => {\n let menuItemsList = menuItems.filter(i => i.parentId === groupItem.menu_item_id);\n const sectionName = `section_${groupItem.menu_item_id}`;\n const currentRef = useRef(null);\n\n\n if (itemsFilter && itemsFilter.trim() !== '') {\n menuItemsList = menuItemsList.filter(i => i.item_name.toLowerCase().includes(itemsFilter.toLowerCase()));\n }\n\n useEffect(()=>{\n addToSectionsRefs({\n section: sectionName,\n ref: currentRef,\n menuItemId: groupItem.menu_item_id,\n menuItemName: groupItem.item_name\n });\n },[groupItem]);\n\n return (\n\n
    \n { menuItemsList.length > 0 && (\n

    { groupItem.item_name }

    \n ) }\n\n\n
      \n {\n menuItemsList.map(\n menuItem => (\n \n )\n )\n }\n
    \n
    \n );\n};\n\n\nconst mapStateToProps = (state) => {\n const {\n menuItems,\n itemsFilter\n } = state;\n\n return {\n menuItems,\n itemsFilter\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n\n },\n dispatch,\n );\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MenuItemsGroupSection);\n","import React, { useState, useEffect } from 'react';\nimport {connect} from 'react-redux';\nimport {bindActionCreators} from 'redux';\nimport MenuItemsGroupSection from \"./MenuItemsGroupSection\";\n\n\nconst MenuItemsList = ({ menuGroups, addToSectionsRefs }) => {\n useEffect(()=>{\n // console.log(\"MenuGroups array\");\n // console.log(menuGroups);\n },[menuGroups]);\n return (\n <>\n {\n menuGroups.map(group => (\n \n ))\n }\n \n );\n};\n\nconst mapStateToProps = (state) => {\n const {\n menuGroups\n } = state;\n\n return {\n menuGroups\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n\n },\n dispatch,\n );\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MenuItemsList);\n\n","import React from 'react';\nimport {connect} from \"react-redux\";\nimport {bindActionCreators} from 'redux';\nimport { changeItemQuantity, deleteOrderItem } from '../redux/actions/orderActions';\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport IPosModal from \"../IPosModal\";\nimport './quantity.scss';\n\nconst Quantity = ({ orderItem: item, changeItemQuantity, deleteOrderItem, t }) => {\n const increase = () => {\n const newQuantity = item.orderItem.quantity + 1;\n changeItemQuantity(item, newQuantity);\n };\n const decrease = () => {\n const currentQuantity = item.orderItem.quantity;\n const newQuantity = (currentQuantity - 1) <= 0 ? 1 : currentQuantity - 1;\n changeItemQuantity(item, newQuantity);\n };\n const destory = () => {\n IPosModal.confirmation({\n title: t('dialogs.destroying_item', { name: item.menuItem.item_name }),\n message: t('dialogs.are_you_sure'),\n okButtonText: t('buttons.delete'),\n cancelButtonText: t('buttons.cancel'),\n onOk: () => {\n deleteOrderItem(item);\n }, onClose: () => {\n return;\n }\n });\n };\n\n return (\n
    \n
    \n { item.orderItem.quantity === 1\n ?\n \n :\n \n }\n\n
    \n
    \n { item.orderItem.quantity }\n
    \n
    \n \n
    \n
    \n );\n\n};\n\nconst mapStateToProps = (state) => {\n const {\n orderItems\n } = state;\n\n return {\n orderItems\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n changeItemQuantity,\n deleteOrderItem\n },\n dispatch,\n );\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Quantity);\n","import React, { useState, useEffect } from 'react';\nimport {connect} from 'react-redux';\nimport {bindActionCreators} from 'redux';\n\nimport FormattedPrice from \"../../components/FormattedPrice\";\nimport Quantity from \"../../components/Quantity\";\nimport {generateOrderItem, getItemPrice} from \"../../helpers/common\";\nimport IPosModal from \"../../IPosModal\";\nimport {withTranslation} from \"react-i18next\";\nimport {addToOrder} from \"../../redux/actions/orderActions\";\nimport {selectItem} from \"../../redux/actions/menuActions\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport { showLoading,hideLoading } from \"../../redux/actions/loadingActions\";\n\n\nconst CartItem = ({ cartItem, t, selectItem, addToOrder, menuItemTypes, editable=true, showLoading, hideLoading }) => {\n const openModal = async () => {\n if (!editable) {\n return;\n }\n\n showLoading();\n selectItem(cartItem.menuItem).then(async ([supplements, instructions]) => {\n\n hideLoading();\n IPosModal.addItemModal({\n menuItem: cartItem.menuItem,\n currentOrderItem: cartItem,\n t: t,\n // menuItemTypes: menuItemTypes,\n selectedItemSupplements: await supplements,\n itemInstructions: await instructions,\n menuItemTypes: menuItemTypes,\n onOk: (orderItem) => {\n addToOrder(orderItem);\n }, onClose: () => {\n return;\n }\n } ,{});\n });\n\n };\n\n return (\n
    \n
    \n
    {cartItem.menuItem.item_name}
    \n
    \n \n
    \n
    \n { cartItem.supplements.length > 0 &&\n cartItem.supplements.map((supplement, index) => (\n
    \n
    {supplement.menuItem.item_name}
    \n\n { supplement.menuItem.web_price > 0 && (\n
    \n \n
    \n ) }\n\n\n
    \n ))\n }\n\n { cartItem.instructions.length > 0 &&\n
    \n
    {cartItem.instructions.map((instruction, index) => (instruction.menuItem.item_name)).join(', ')}
    \n
    \n }\n\n { cartItem.freeInstruction.trim() !== '' && (\n
    \n
    {cartItem.freeInstruction}
    \n
    \n )\n }\n\n { editable && (\n
    \n
    \n \n
    \n\n \n
    \n ) }\n\n\n
    \n );\n};\n\nconst mapStateToProps = (state) => {\n const {\n menuItemTypes\n } = state;\n\n return {\n menuItemTypes\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n addToOrder,\n selectItem,\n showLoading,hideLoading\n },\n dispatch,\n );\n\nexport default withTranslation()(connect(mapStateToProps, mapDispatchToProps)(CartItem));\n","const languages = {\n 1: 'en',\n 2: 'he'\n};\n\nexport const getLanguageById = (lang_id) => {\n return languages[lang_id];\n};\n","import React, { useState, useEffect } from 'react';\nimport moment from 'moment';\nimport { DateTimePicker } from 'material-ui-pickers';\nimport { MuiPickersUtilsProvider } from 'material-ui-pickers';\nimport MomentUtils from '@date-io/moment';\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport './order-type.scss';\nimport {OrderType} from \"../../constants/orderTypes\";\n\nconst OrderTypeSwitcher = ({ t, locale, orderType, setOrderType, setOrderDate, orderDateTime, editable }) => {\n const [selectedDate, handleDateChange] = useState(orderDateTime || new Date());\n // const [orderType, setOrderType] = useState(null);\n\n const updateDateTime = (dateTime) => {\n handleDateChange(dateTime);\n setOrderDate(dateTime);\n };\n\n const changeOrderType = () => {\n if (!editable) {\n return false\n }\n\n if (orderType === OrderType.ASAP) {\n setOrderType(OrderType.FUTURE);\n setOrderDate(moment().format());\n } else {\n setOrderType(OrderType.ASAP);\n setOrderDate(null);\n }\n };\n\n return (\n
    \n \n
    \n \n
    \n\n\n
    \n { orderType === OrderType.ASAP && (\n
    \n { t('order.order_type_now') }\n
    \n )}\n\n { orderType === OrderType.FUTURE && (\n
    \n \n { editable && (\n
    \n \n
    \n )}\n\n
    \n )}\n\n
    \n\n
    \n
    \n )\n};\n\nexport default OrderTypeSwitcher;\n","import React, { useState, useEffect } from 'react';\nimport './cart-delivery-type-switcher.scss';\nimport {DeliveryType} from \"../../constants/deliveryTypes\";\n\nconst CartDeliveryTypeSwitcher = ({ t, editable, currentDeliveryType, setDeliveryType }) => {\n\n const changeDeliveryType = (deliveryType) => {\n if (!editable) { return; }\n\n setDeliveryType(deliveryType)\n };\n\n return (\n
    \n
    \n { changeDeliveryType(DeliveryType.DELIVERY); } }\n >\n { t('delivery_type_switcher.delivery.title') }\n
    \n\n { changeDeliveryType(DeliveryType.TA); } }\n >\n { t('delivery_type_switcher.ta.title') }\n
    \n \n\n \n )\n};\n\nexport default CartDeliveryTypeSwitcher;\n","import React, { useState, useEffect } from 'react';\nimport {connect} from \"react-redux\";\nimport {bindActionCreators} from 'redux';\nimport { useHistory } from \"react-router-dom\";\n\nimport CartItem from \"./CartItem\";\nimport FormattedPrice from \"../../components/FormattedPrice\";\nimport {generateOrderItem, getItemPrice} from \"../../helpers/common\";\nimport {withTranslation} from \"react-i18next\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport { clearOrder } from '../../redux/actions/orderActions';\nimport IPosModal from \"../../IPosModal\";\nimport {currentDeliveryItem, orderSubTotal, orderTotal} from \"../../redux/selectors/order\";\nimport {getLanguageById} from \"../../helpers/language\";\nimport OrderTypeSwitcher from \"./OrderTypeSwitcher\";\nimport { setOrderType, setOrderDateTime } from \"../../redux/actions/orderActions\";\nimport CartDeliveryTypeSwitcher from \"./CartDeliveryTypeSwitcher\";\nimport { setDeliveryType } from \"../../redux/actions/baseActions\";\n\n\nconst Cart = ({ t, orderItems, clearOrder, branchInfo, editable=true, totalAmount, subtotalAmount, deliveryItem,\n currentLanguageId, orderType, setOrderType, setOrderDateTime, orderDateTime, currentDeliveryType, setDeliveryType }) => {\n const isEmpty = orderItems.length === 0;\n const history = useHistory();\n const currentLocale = getLanguageById(currentLanguageId);\n\n const minOrderAmountPresent = +branchInfo.MinDeliveryAmount > 0;\n const minOrderAmount = +branchInfo.MinDeliveryAmount;\n const allowToPay = !minOrderAmountPresent || (minOrderAmountPresent && subtotalAmount >= minOrderAmount);\n\n const cartTotalQuantity = orderItems.reduce((acc, item) => {\n return acc + item.orderItem.quantity;\n }, 0);\n\n const onClearOrder = () => {\n IPosModal.confirmation({\n title: t('dialogs.clear_cart'),\n message: t('dialogs.clear_cart_are_you_sure'),\n okButtonText: t('buttons.delete'),\n cancelButtonText: t('buttons.cancel'),\n onOk: () => {\n clearOrder();\n }, onClose: () => {\n return;\n }\n });\n };\n\n const onPayClick = () => {\n if (editable) {\n if (allowToPay) {\n history.push(`/${branchInfo.branch_guid_code}/client`);\n document.getElementById(\"scrollable-restaurant-layout\").scrollTo(0, 0);\n\n } else {\n return;\n }\n } else {\n history.push(`/${branchInfo.branch_guid_code}/order`)\n }\n };\n\n const onChangeOrderDateTime = (dateTime) => {\n setOrderDateTime(dateTime);\n };\n\n if (orderItems.length === 0) {\n return (\n
    \n

    \n {t('cart.empty_cart_title')}\n {editable &&
    \n \n
    \n }\n

    \n
    \n
    \n { t('cart.empty_cart_description') }\n
    \n
    \n \n
    \n
    \n \n
    \n );\n }\n\n return (\n
    \n

    \n {t('cart.title')}\n { editable && (\n
    \n \n
    \n )}\n\n

    \n\n {!isEmpty &&\n
    \n
    \n
    \n \n \n \n \n \n \n\n \n \n \n {\n deliveryItem && (\n \n \n \n )\n }\n {/**/}\n {/* */}\n {/* */}\n {/* */}\n {/**/}\n \n
    \n {\n orderItems.map((item, index) => (\n \n ))\n }\n
    { t('cart.subtotal') } ({cartTotalQuantity})\n \n
    \n \n
     { t('cart.total') }*/}\n {/* */}\n {/*
    \n
    \n \n \n
    \n { !allowToPay && (\n
    \n
    { t('cart.min_order_amount_warning', { minOrderAmount: `${(Number(minOrderAmount) / 100).toFixed(2)} ₪`})}
    \n
    \n ) }\n\n { allowToPay && (\n
    \n { editable && allowToPay && (\n <>\n
    { t('cart.to_pay') }
    \n
    \n \n )}\n { !editable && (\n <>\n
    { t('cart.update_order') }
    \n \n )}\n
    \n ) }\n\n {/**/}\n\n {/**/}\n
    \n
    \n
    \n }\n\n\n
    \n );\n};\n\nconst mapStateToProps = (state) => {\n const {\n orderItems,\n branchInfo,\n menuItemTypes,\n currentLanguageId,\n orderType,\n orderDateTime,\n currentDeliveryType\n } = state;\n\n return {\n orderItems,\n branchInfo,\n menuItemTypes,\n currentLanguageId,\n orderType,\n orderDateTime,\n currentDeliveryType,\n totalAmount: orderTotal(state),\n subtotalAmount: orderSubTotal(state),\n deliveryItem: currentDeliveryItem(state),\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n clearOrder,\n setOrderType,\n setOrderDateTime,\n setDeliveryType\n },\n dispatch,\n );\n\nexport default withTranslation()(connect(mapStateToProps, mapDispatchToProps)(Cart));\n","import React, { useState, useEffect } from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport {withTranslation} from \"react-i18next\";\n\nconst ShortFooter = ({ additionalClass, t, branchInfo }) => {\n return (\n <>\n
    \n
    \n
    \n
    \n Powered By\n iPos\n
    \n
    \n
    \n
    \n \n );\n};\n\n\nconst mapStateToProps = (state) => {\n const {\n branchInfo\n } = state;\n\n return {\n branchInfo\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n },\n dispatch,\n );\n\nexport default withTranslation()(connect(mapStateToProps, mapDispatchToProps)(ShortFooter));\n","import React, { useState } from 'react';\nimport FormattedPrice from \"../../components/FormattedPrice\";\nimport {withTranslation} from \"react-i18next\";\nimport Cart from \"./Cart\";\nimport './open-card-block.scss';\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\n\nconst OpenCartBlock = ({totalAmount, t, totalQuantity}) => {\n const [cartIsOpened, setCartIsOpened] = useState(false);\n\n const toggleCartPopup = () => {\n setCartIsOpened(!cartIsOpened);\n };\n\n return (\n <>\n
    \n {/*
    { t('cart.to_pay') }
    */}\n
    \n \n
    \n { totalQuantity }\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n\n \n \n );\n};\n\nexport default withTranslation()(OpenCartBlock);\n","import React, { useState, useEffect } from 'react';\nimport {connect} from 'react-redux';\nimport {bindActionCreators} from 'redux';\nimport Groups from \"./components/Groups\";\nimport MenuItemsList from \"./components/MenuItemsList\";\nimport Cart from \"../components/Cart\";\nimport Search from \"../../layouts/components/Search\";\nimport {DeliveryType} from \"../../constants/deliveryTypes\";\nimport ShortFooter from \"../../layouts/components/ShortFooter\";\nimport {orderTotal} from \"../../redux/selectors/order\";\nimport {isMobileAndTablet, isMobileApp} from \"../../helpers/common\";\nimport OpenCartBlock from \"../components/OpenCartBlock\";\n\n\nconst getDimensions = ele => {\n const { height } = ele.getBoundingClientRect();\n const offsetTop = ele.offsetTop;\n const offsetBottom = offsetTop + height;\n\n return {\n height,\n offsetTop,\n offsetBottom,\n };\n};\n\nconst sectionRefs = [];\n\nconst OrderPage = ({ currentDeliveryType, currentLanguageId, orderItems, totalAmount }) => {\n const [currentView, setCurrentView] = useState('shop-list');\n const [visibleSection, _setVisibleSection] = useState(null);\n const viasibleSectionRef = React.useRef(visibleSection);\n\n // const [sectionRefs, setSectionRefs] = useState([]);\n const isMobile = isMobileAndTablet();\n const cartTotalQuantity = orderItems.reduce((acc, item) => {\n return acc + item.orderItem.quantity;\n }, 0);\n\n const setVisibleSection = data => {\n viasibleSectionRef.current = data;\n _setVisibleSection(data);\n };\n\n const addToSectionsRefs = (obj) => {\n // setSectionRefs(sectionRefs.push(obj));\n sectionRefs.push(obj);\n };\n\n console.log(\"Visible section\", visibleSection);\n\n useEffect(() => {\n const visibleSectionName = visibleSection ? visibleSection.section : null;\n if (visibleSectionName){\n const elem = document.getElementsByName(`${visibleSectionName}-menu`)[0];\n elem.scrollIntoView({inline: \"nearest\",block:\"nearest\"});\n }\n },[visibleSection]);\n\n useEffect(() => {\n sectionRefs.splice(0,sectionRefs.length);\n },[currentLanguageId]);\n\n useEffect(() => {\n const container = document.getElementById('scrollable-restaurant-layout');\n const handleScroll = () => {\n // const { height: headerHeight } = getDimensions(headerRef.current);\n const isMobile = isMobileAndTablet();\n const mobileAppOffset = isMobileApp() ? 50 : 0;\n const pageImageHeaderHeight = isMobile ? mobileAppOffset : 150;\n const scrollPosition = container.scrollTop ;\n // console.log(`Scroll position: `, scrollPosition);\n // console.log(`sectionRefs: `, sectionRefs.length);\n\n const selected = sectionRefs.find(({ section, ref }) => {\n const ele = ref.current;\n if (ele) {\n const { offsetBottom, offsetTop } = getDimensions(ele);\n return scrollPosition > offsetTop && scrollPosition < offsetBottom;\n }\n });\n\n const visibleSectionName = viasibleSectionRef.current ? viasibleSectionRef.current.section : null;\n\n if (selected && selected.section !== visibleSectionName) {\n setVisibleSection(selected);\n } else if (!selected && visibleSectionName) {\n console.log(\"Set section undefined\");\n // setVisibleSection(undefined);\n }\n };\n\n handleScroll();\n container.addEventListener(\"scroll\", handleScroll);\n return () => {\n container.removeEventListener(\"scroll\", handleScroll);\n };\n }, []);\n\n return (\n
    \n\n
    \n\n
    \n\n \n\n
    \n\n
    \n\n \n\n \n\n
    \n\n { currentDeliveryType !== DeliveryType.MENU && (\n
    \n \n
    \n )}\n\n { isMobile && orderItems.length > 0 && (\n \n )}\n\n
    \n \n\n
    \n );\n};\n\nconst mapStateToProps = (state) => {\n const {\n currentDeliveryType,\n currentLanguageId,\n orderItems\n } = state;\n\n return {\n currentDeliveryType,\n currentLanguageId,\n totalAmount: orderTotal(state),\n orderItems\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n\n },\n dispatch,\n );\nexport default connect(mapStateToProps, mapDispatchToProps)(OrderPage);\n","import React, { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport './clientForm.scss';\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {getLanguageById} from \"../../../helpers/language\";\nimport SearchLocationInput from \"../../../components/SearchLocationInput\";\nimport {withTranslation} from \"react-i18next\";\nimport {DeliveryType} from \"../../../constants/deliveryTypes\";\nimport Switch from 'react-ios-switch';\nimport {isMobileAndTablet} from \"../../../helpers/common\";\nimport { useHistory } from \"react-router-dom\";\n\nfunction* range(start, end, step) {\n while (start < end) {\n yield start;\n start += step;\n }\n}\n\nconst ClientInfoForm = ({ formData, formSubmit, t, currentDeliveryType, branchInfo }) => {\n const { register, handleSubmit, watch, errors, clearErrors, setError } = useForm({\n defaultValues: formData\n });\n\n const isMobile = isMobileAndTablet();\n const history = useHistory();\n\n const [isAddressValid, setIsAddressValid] = useState(formData.address);\n const [utensils, setUtensils] = useState(formData.utensils);\n const [clientMobile, setClientMobile] = useState(formData.clientMobile);\n const [clientEmail, setClientEmail] = useState(formData.clientEmail);\n\n const [selectedAddress, setSelectedAddress] = useState(formData.address);\n\n const onChangeClientMobile = (e) => {\n const { value } = e.currentTarget;\n const max = 10;\n const currentLength = value.length;\n // const maxLength = max.toString().length-1;\n setClientMobile(currentLength < max ? value : value.toString().substring(0, max));\n };\n\n const onChangeClientEmail = (e) => {\n const { value } = e.currentTarget;\n\n if (value === \"\" || /^[0-9A-Za-z,@,.,+,-]+[A-Za-z0-9,@,.,+,-]*$/.test(value)) {\n setClientEmail(value);\n // clearErrors('clientEmail')\n }\n };\n\n const onSelectAddress = (addressData) => {\n if (!addressData) {\n return;\n }\n\n const address = {\n formatted_address: addressData.formatted_address,\n lat: addressData.geometry.location.lat(),\n lng: addressData.geometry.location.lng(),\n place_id: addressData.place_id\n };\n\n setIsAddressValid(true);\n setSelectedAddress(address);\n };\n\n const onSubmit = (data) => {\n if (!isAddressValid && currentDeliveryType === DeliveryType.DELIVERY){\n return;\n }\n console.log(data);\n formSubmit({...data, ...{address: selectedAddress, utensils}});\n };\n\n console.log(watch(\"example\")); // watch input value by passing the name of it\n\n const validateEmail = (email) => {\n const re = /^([^@\\s]+)@((?:[-a-z0-9]+\\.)+[a-z]{2,})$/i;\n return re.test(email);\n };\n\n return (\n
    \n

    \n {t('client_details.title')}\n

    \n
    \n\n { currentDeliveryType === DeliveryType.DELIVERY && (\n <>\n
    \n \n\n \n\n {/*{ !isAddressValid &&*/}\n {/*
    */}\n {/* { t('client_details.validation.required_field') }*/}\n {/*
    */}\n {/*}*/}\n
    \n\n
    \n \n \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n \n
    \n\n \n )}\n\n
    \n \n \n { errors.clientName &&\n
    \n { t('client_details.validation.invalid_name') }\n
    \n }\n
    \n\n
    \n \n \n { errors.clientMobile &&\n
    \n { errors.clientMobile.type === \"required\" && (\n { t('client_details.validation.invalid_mobile') }\n ) }\n\n { errors.clientMobile.type === \"minLength\" && (\n { t('client_details.validation.min_length', {minLength: 10 }) }\n ) }\n\n
    \n }\n
    \n\n
    \n \n validateEmail(value) === true\n })}\n value={ clientEmail }\n placeholder={ t('client_details.email_placeholder') }\n onChange={ onChangeClientEmail }\n />\n\n { errors.clientEmail &&\n
    \n { t('client_details.validation.invalid_email') }\n
    \n }\n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n
    \n\n { utensils && (\n\n
    \n \n \n { Array.from(range(1,9,1)).map( number => (\n \n ))}\n \n {/**/}\n
    \n\n ) }\n\n
    \n { isMobile && (\n {\n history.push(`/${branchInfo.branch_guid_code}/order`)\n } }\n />\n )}\n\n \n
    \n\n\n
    \n
    \n );\n};\n\nexport default withTranslation()(ClientInfoForm);\n","import React, { useState, useEffect } from 'react';\nimport {connect} from 'react-redux';\nimport {bindActionCreators} from 'redux';\nimport { useHistory } from \"react-router-dom\";\nimport Cart from \"../components/Cart\";\nimport ClientInfoForm from \"./components/ClientInfoForm\";\nimport { updateClientInfo } from '../../redux/actions/clientActions';\n\n\nconst ClientPage = ({ updateClientInfo, clientInfo, branchInfo, currentDeliveryType }) => {\n\n const history = useHistory();\n const onSaveClientInfo = (data) => {\n updateClientInfo(data);\n history.push(`/${branchInfo.branch_guid_code}/payment`);\n };\n\n\n return (\n
    \n\n
    \n\n
    \n\n \n\n
    \n\n
    \n \n
    \n\n
    \n\n
    \n );\n};\n\nconst mapStateToProps = (state) => {\n const {\n clientInfo,\n branchInfo,\n currentDeliveryType\n } = state;\n\n return {\n clientInfo,\n branchInfo,\n currentDeliveryType\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n updateClientInfo\n },\n dispatch,\n );\nexport default connect(mapStateToProps, mapDispatchToProps)(ClientPage);\n","export const PaymentType = {\n CASH: 'CASH',\n CREDIT_CARD: 'CREDIT_CARD',\n TEN_BIS: 'TEN_BIS',\n SODEXO: 'SODEXO'\n};\n","import React, { useState } from \"react\";\n\nimport './payemntSwitcher.scss';\nimport {PaymentType} from \"../../../constants/paymentTypes\";\n\nconst PaymentTypeBlock = ({paymentType, selectPaymentType, currentPaymentType }) => {\n\n return (\n { selectPaymentType(paymentType) }}\n >\n
    \n { paymentType.payment_type_name }\n
    \n \n );\n};\n\nexport default PaymentTypeBlock;\n","import React, { useState } from \"react\";\n\nimport './payemntSwitcher.scss';\nimport {withTranslation} from \"react-i18next\";\nimport PaymentTypeBlock from \"./PaymentTypeBlock\";\n\nconst PaymentSwitcher = ({currentPaymentType, setCurrentPaymentType, t, paymentTypes}) => {\n\n const selectPaymentType = (paymentType) => {\n setCurrentPaymentType(paymentType);\n };\n\n return (\n
    \n

    \n { t('payment.title') }\n

    \n\n
    \n {\n paymentTypes.map(payment => (\n \n ))\n }\n
    \n
    \n );\n};\n\nexport default withTranslation()(PaymentSwitcher);\n","import React, { useState, useEffect } from 'react';\nimport {withTranslation} from \"react-i18next\";\nimport { PaymentInputsWrapper, usePaymentInputs } from 'react-payment-inputs';\nimport images from 'react-payment-inputs/images';\nimport './creditCardPayment.scss';\n\nfunction* range(start, end, step) {\n while (start < end) {\n yield start;\n start += step;\n }\n}\n\nconst CreditCardPayment = ({ t, setCardData }) => {\n const ERROR_MESSAGES = {\n emptyCardNumber: t('payment.credit_card.errors.empty_card_number'),\n invalidCardNumber: t('payment.credit_card.errors.invalid_card_number'),\n emptyExpiryDate: t('payment.credit_card.errors.empty_expiry_date'),\n monthOutOfRange: t('payment.credit_card.errors.month_out_of_range'),\n yearOutOfRange: t('payment.credit_card.errors.year_out_of_range'),\n dateOutOfRange: t('payment.credit_card.errors.date_out_o_range'),\n invalidExpiryDate: t('payment.credit_card.errors.invalid_expiry_date'),\n emptyCVC: t('payment.credit_card.errors.empty_cvc'),\n invalidCVC: t('payment.credit_card.errors.invalid_cvc')\n };\n\n const {\n meta,\n wrapperProps,\n getCardImageProps,\n getCardNumberProps,\n getExpiryDateProps,\n getCVCProps\n } = usePaymentInputs({errorMessages: ERROR_MESSAGES});\n\n const [data, setData] = useState({\n cvc: \"\",\n expiryDate: \"\",\n expiryMonth: 1,\n expiryYear: new Date().getFullYear(),\n passport: \"\",\n cardNumber: \"\"\n });\n const handleInputChange = (e) => {\n setData({\n ...data,\n [e.target.name]: e.target.value\n });\n\n };\n\n const handlePassportChange = (e) => {\n const { value } = e.currentTarget;\n const max = 10;\n const currentLength = value.length;\n if (currentLength < max && (value === \"\" || /^[0-9]+$/.test(value))) {\n handleInputChange(e);\n }\n };\n\n useEffect(() => {\n setCardData(data);\n }, [data]);\n\n return (\n
    \n
    \n\n
    {}}>\n
    \n \n\n
    \n \n \n
    \n { meta.touchedInputs['cardNumber'] && meta.erroredInputs['cardNumber'] &&\n
    \n { meta.erroredInputs['cardNumber'] }\n
    \n }\n\n
    \n\n
    \n
    \n \n
    \n \n
    /
    \n \n
    \n
    \n
    \n \n \n { meta.touchedInputs['cvc'] && meta.erroredInputs['cvc'] &&\n
    \n { meta.erroredInputs['cvc'] }\n
    \n }\n
    \n
    \n\n
    \n \n \n
    \n\n {/*
    {meta.isTouched && meta.error && Error: {meta.error}}
    */}\n
    \n
    \n
    \n );\n};\n\nexport default withTranslation()(CreditCardPayment);\n","import React from 'react';\nimport {withTranslation} from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\nimport './cashPayment.scss';\n\nconst CashPayment = ({ t, clientInfo, branchInfo }) => {\n const history = useHistory();\n\n return (\n
    \n {/*

    { t('payment.payment_type.cash') }

    */}\n
    \n
    \n { t('payment.cash.notification', {phone_number: clientInfo.clientMobile}) }\n
    \n
    \n { t('payment.cash.change_phone_notification')}\n {\n history.push(`/${branchInfo.branch_guid_code}/client`);\n }}\n >{ t('payment.cash.change_btn') }\n
    \n
    \n
    \n );\n};\n\n\nexport default withTranslation()(CashPayment);\n","import React from 'react';\nimport {useForm} from \"react-hook-form\";\nimport {withTranslation} from \"react-i18next\";\n\nconst TenBisPayment = ({ t, setCardData }) => {\n\n // const { register, handleSubmit, watch, errors, clearErrors } = useForm();\n const onChangeCardNumber = (e) => {\n const { value } = e.currentTarget;\n setCardData({cardNumber: value});\n };\n\n const onSubmit = (data) => {\n console.log(data);\n };\n\n return (\n
    \n {/*

    { t('payment.payment_type.ten_bis') }

    */}\n
    \n
    {}}>\n
    \n \n \n
    \n
    \n
    \n
    \n );\n};\n\nexport default withTranslation()(TenBisPayment);\n","import React from 'react';\nimport {useForm} from \"react-hook-form\";\nimport {withTranslation} from \"react-i18next\";\n\nconst SodexoPayment = ({ t }) => {\n\n const { register, handleSubmit, watch, errors, clearErrors } = useForm();\n\n const onSubmit = (data) => {\n console.log(data);\n };\n\n return (\n
    \n

    { t('payment.payment_type.sodexo') }

    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n );\n};\n\n\nexport default withTranslation()(SodexoPayment);\n","import React, { useState, useEffect } from 'react';\nimport {connect} from 'react-redux';\nimport {bindActionCreators} from 'redux';\nimport Cart from \"../components/Cart\";\nimport ClientInfoForm from \"./components/ClientInfoForm\";\nimport { updateClientInfo } from '../../redux/actions/clientActions';\nimport PaymentSwitcher from \"./components/PaymentSwitcher\";\nimport \"./payment-page.scss\"\nimport {PaymentType} from \"../../constants/paymentTypes\";\nimport CreditCardPayment from \"./components/CreditCardPayment\";\nimport CashPayment from \"./components/CashPayment\";\nimport TenBisPayment from \"./components/TenBisPayment\";\nimport SodexoPayment from \"./components/SodexoPayment\";\nimport { useHistory } from \"react-router-dom\";\nimport {withTranslation} from \"react-i18next\";\nimport { submitOrder } from '../../redux/actions/orderActions';\nimport IPosModal from \"../../IPosModal\";\nimport { clearOrder } from '../../redux/actions/orderActions';\nimport { setDeliveryType } from '../../redux/actions/baseActions';\nimport { clearClientInfo } from '../../redux/actions/clientActions';\nimport { sendConfirmationCode } from '../../redux/actions/paymentActions';\n\nconst PaymentPage = ({ updateClientInfo, clientInfo, branchInfo, t, submitOrder, paymentTypes, clearOrder, setDeliveryType, clearClientInfo, sendConfirmationCode }) => {\n const [currentPaymentType, setCurrentPaymentType] = useState(null);\n const [cardNumber, setCardNumber] = useState(null);\n const [cardData, setCardData] = useState(null);\n const [orderUuid, setOrderUuid] = useState(null);\n const [confCode, setConfCode] = useState(null);\n const history = useHistory();\n\n const goBack = () => {\n history.push(`/${branchInfo.branch_guid_code}/client`);\n };\n\n const formatError = (message) => {\n return (\n
    \n
    { t('order.submit.error') }
    \n
    { message }
    \n
    \n )\n };\n\n const onChangePayemntType = (paymentType) => {\n setCurrentPaymentType(paymentType);\n setCardData(null);\n setOrderUuid(null);\n setConfCode(null);\n };\n\n const isDataValid = () => {\n if (currentPaymentType && currentPaymentType.payment_code === PaymentType.TEN_BIS && cardData ) {\n if (cardData.cardNumber) {\n return true;\n } else {\n return false;\n }\n\n }\n\n if (currentPaymentType && currentPaymentType.payment_code === PaymentType.CREDIT_CARD && cardData ) {\n if (cardData.cardNumber && cardData.expiryMonth && cardData.expiryYear && cardData.cvc && cardData.passport) {\n return true;\n } else {\n return false;\n }\n }\n\n if (currentPaymentType && currentPaymentType.payment_code === PaymentType.CASH) {\n return true;\n }\n return false;\n };\n\n const proceedCashCheckout = async () => {\n const guidCode = await sendConfirmationCode(clientInfo.clientMobile);\n setOrderUuid(guidCode);\n\n IPosModal.confirmationCode({\n t: t,\n okButtonText: t('buttons.continue'),\n cancelButtonText: t('buttons.cancel'),\n onOk: onSetConfirmationCode,\n onClose: () => {}\n });\n };\n\n const onSetConfirmationCode = ({code}) => {\n setConfCode(code);\n\n };\n\n useEffect(()=>{\n if (currentPaymentType && currentPaymentType.payment_code === PaymentType.CASH && confCode && orderUuid) {\n onSubmitOrder();\n }\n }, [confCode]);\n\n const onSubmitOrder = async () => {\n if (!currentPaymentType) {\n return\n }\n\n if (currentPaymentType && currentPaymentType.payment_code === PaymentType.CASH && !confCode && !orderUuid) {\n proceedCashCheckout();\n return\n }\n\n const res = await submitOrder(currentPaymentType, cardData, orderUuid, confCode);\n if (!res || res.error_message) {\n IPosModal.alert({\n title: t('order.submit.error_title'),\n message: formatError(!res ? 'Something went wrong' : res.error_message),\n okButtonText: t('buttons.ok'),\n onOk: () => { }\n });\n } else {\n IPosModal.alert({\n title: t('order.submit.success_title'),\n // message: t('order.submit.success', { orderId: res.order_id }),\n okButtonText: t('buttons.ok'),\n iconName: \"check-circle\",\n closeOnBodyClick: true,\n onOk: () => {\n clearOrder();\n setDeliveryType(null);\n clearClientInfo();\n }\n }, { modalClassName: 'confirmation-modal success-payment'});\n }\n };\n\n return (\n
    \n\n
    \n\n
    \n\n \n\n { currentPaymentType && currentPaymentType.payment_code === PaymentType.CASH && (\n \n ) }\n\n { currentPaymentType && currentPaymentType.payment_code === PaymentType.CREDIT_CARD && (\n \n ) }\n\n { currentPaymentType && currentPaymentType.payment_code === PaymentType.TEN_BIS && (\n \n ) }\n\n { currentPaymentType && currentPaymentType.payment_code === PaymentType.SODEXO && (\n \n ) }\n\n { !currentPaymentType && (\n
    \n {/*

    { t('payment.payment_method') }

    */}\n
    \n { t('payment.select_payment_description') }\n
    \n
    \n ) }\n\n
    \n { t('buttons.back') }
    \n \n { t('buttons.pay') }\n \n
    \n\n
    \n\n
    \n \n
    \n\n
    \n\n \n );\n};\n\nconst mapStateToProps = (state) => {\n const {\n clientInfo,\n branchInfo,\n paymentTypes\n } = state;\n\n return {\n clientInfo,\n branchInfo,\n paymentTypes\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n updateClientInfo,\n submitOrder,\n clearOrder,\n setDeliveryType,\n clearClientInfo,\n sendConfirmationCode\n },\n dispatch,\n );\nexport default withTranslation()(connect(mapStateToProps, mapDispatchToProps)(PaymentPage));\n","import React, { useState, useEffect } from 'react';\nimport { useParams, useHistory } from 'react-router-dom';\nimport { Route, Switch } from 'react-router-dom';\nimport {bindActionCreators} from 'redux';\nimport {connect} from 'react-redux';\n\nimport { loadRestaurant } from '../redux/actions/baseActions';\nimport Header from \"./components/Header\";\nimport OrderPage from \"../pages/order/OrderPage\";\nimport ClientPage from \"../pages/payment/ClientPage\";\nimport PaymentPage from \"../pages/payment/PaymentPage\";\nimport {getImageUrl} from \"../api/iposApi\";\n\n\nfunction RestaurantLayout({ loadRestaurant, currentLanguageId, branchInfo }) {\n const { branchId } = useParams();\n const history = useHistory();\n\n const fetchData = async () => {\n try {\n const res = await loadRestaurant(branchId, true);\n\n if (res && res.error_message){\n history.push(`/${branchId}/error`)\n }\n } catch (e) {\n history.push(`/${branchId}/error`)\n }\n };\n\n useEffect(() => {\n fetchData();\n }, [currentLanguageId]);\n\n return (\n <>\n \n
    \n  \n
    \n
    \n\n \n \n \n \n \n\n\n \n \n );\n}\n\nconst mapStateToProps = (state) => {\n const {\n currentLanguageId,\n branchInfo\n } = state;\n\n return {\n currentLanguageId,\n branchInfo\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n loadRestaurant\n },\n dispatch,\n );\n\nexport default connect(mapStateToProps, mapDispatchToProps)(RestaurantLayout);\n","export default __webpack_public_path__ + \"static/media/iPos_Logo.a40c2c8d.png\";","export default __webpack_public_path__ + \"static/media/f1.0d2e4090.png\";","import React, { useEffect, useState } from 'react';\nimport {connect} from \"react-redux\";\nimport { bindActionCreators } from 'redux';\nimport { useLocation, useParams, useHistory } from \"react-router-dom\";\nimport '../assets/sass/promoPage/nicepage.scss';\nimport '../assets/sass/PromoPage.scss';\nimport iposLogo from '../assets/img/promo_page/iPos_Logo.png';\nimport f1 from '../assets/img/promo_page/f1.png';\nimport {hideLoading, showLoading} from \"../redux/actions/loadingActions\";\nimport enIcon from \"../assets/img/flags/lang-en.png\";\nimport heIcon from \"../assets/img/flags/lang-he.png\";\nimport { setLanguageId } from \"../redux/actions/baseActions\";\nimport {withTranslation} from \"react-i18next\";\nimport { loadBranches } from '../redux/actions/branchActions';\nimport IPosModal from \"../IPosModal\";\nimport {isMobileApp} from \"../helpers/common\";\n\n\nfunction useQuery() {\n return new URLSearchParams(useLocation().search);\n}\n\nconst PromoPage = ({t, hideLoading, setLanguageId, currentLanguageId, loadBranches}) => {\n const [branches, setBranches] = useState([]);\n const history = useHistory();\n const mobileApp = isMobileApp();\n\n const changeLanguageId = (id) => {\n setLanguageId(id);\n };\n\n const openBranchesPopup = (e) => {\n e.preventDefault();\n e.stopPropagation();\n IPosModal.branchesList({\n branches: branches,\n history: history,\n onOk: () => { }\n });\n };\n\n const query = useQuery();\n console.log('Value of mobile-app:', query.get(\"mobile-app\"));\n // const query = useParams();\n\n useEffect(async ()=>{\n // setTimeout(()=>{hideLoading()}, 1000);\n if (query.get(\"mobile-app\")){\n localStorage.setItem('MOBILE_APP_IN_USE', 'true');\n } else {\n localStorage.setItem('MOBILE_APP_IN_USE', 'false');\n }\n\n const branchesList = await loadBranches();\n await setBranches(branchesList);\n hideLoading();\n }, []);\n\n useEffect(async ()=>{},[]);\n\n return (\n
    \n
    \n
    \n
    \n \n {''}\n \n
    \n
    { changeLanguageId(1) } }>\n {''}/\n
    \n
    { changeLanguageId(2) } }>\n {''}/\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n { t('promo_page.slogan1') }
    \n { t('promo_page.slogan2') }\n
    \n

    \n { t('promo_page.title') }\n

    \n \n { t('promo_page.order_now') }\n \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n

    powered by iPos |\n Copyright © 2021 iPos Ltd\n

    \n \n \n\n\n
    \n
    \n
    \n \n \n );\n};\n\nconst mapStateToProps = (state) => {\n const {\n currentLanguageId,\n\n } = state;\n\n return {\n currentLanguageId,\n\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n showLoading, hideLoading,\n setLanguageId,\n loadBranches\n },\n dispatch,\n );\n\nexport default withTranslation()(connect(mapStateToProps, mapDispatchToProps)(PromoPage));\n","import React from 'react';\nimport i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\n\nimport common_en from './translations/en/common';\nimport common_he from './translations/he/common';\n\ni18n\n .use(initReactI18next) // passes i18n down to react-i18next\n .init({\n resources: {\n en: {\n translation: common_en\n },\n he: {\n translation: common_he\n }\n },\n lng: \"en\",\n fallbackLng: \"en\",\n\n interpolation: {\n escapeValue: false\n }\n });\n\nexport default i18n;\n","import rubiApi from '../api/iposApi';\n\nclass AreasService {\n validateAddress(address, branchId) {\n const params = {\n lat: address.geometry.location.lat(),\n lng: address.geometry.location.lng(),\n branchId: branchId\n };\n return rubiApi\n .get(\"/ValidPoint\", { params })\n .then((response) => {\n return response.data;\n });\n }\n}\n\nexport default new AreasService();\n","import React, { useState, useEffect } from 'react';\nimport { bindActionCreators } from 'redux';\nimport { useHistory } from \"react-router-dom\";\nimport { connect } from 'react-redux';\nimport { useForm } from \"react-hook-form\";\nimport {withTranslation} from \"react-i18next\";\nimport {setDeliveryType} from \"../../redux/actions/baseActions\";\nimport {DeliveryType} from \"../../constants/deliveryTypes\";\nimport SearchLocationInput from \"../../components/SearchLocationInput\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {getLanguageById} from \"../../helpers/language\";\nimport { updateClientInfo } from '../../redux/actions/clientActions';\nimport IPosModal from \"../../IPosModal\";\nimport AreasService from '../../services/areas.service';\n\n\n\nconst DeliveryTypeSwitcher = ({t, setDeliveryType, currentDeliveryType, clientInfo, currentLanguageId, updateClientInfo, branchInfo}) => {\n const { register, watch, errors, handleSubmit, getValues } = useForm();\n const [currentType, setCurrentType] = useState(null);\n const [selectedAddress, setSelectedAddress] = useState(null);\n const [addressAllowed, setAddressAllowed] = useState(false);\n const lang = getLanguageById(currentLanguageId);\n const history = useHistory();\n\n const onSelectType = (type) => {\n if ([DeliveryType.DELIVERY, DeliveryType.TA].includes(type) && !branchInfo.IsWorkingDelivery) {\n IPosModal.alert({\n title: '',\n message: t('dialogs.not_accepting_orders'),\n okButtonText: t('buttons.ok'),\n onOk: () => { }\n });\n\n return;\n }\n\n setCurrentType(type);\n\n if ([DeliveryType.MENU, DeliveryType.TA].includes(type)) {\n setDeliveryType(type);\n history.push(`/${branchInfo.branch_guid_code}/order`)\n }\n };\n\n useEffect(()=>{\n if (!selectedAddress) { return; }\n\n AreasService.validateAddress(selectedAddress, branchInfo.branch_guid_code)\n .then((res)=>{\n setAddressAllowed(res);\n });\n }, [selectedAddress]);\n\n const chooseDeliveryType = () => {\n if (currentType === DeliveryType.DELIVERY && (!selectedAddress || !addressAllowed)) {\n IPosModal.alert({\n title: '',\n message: addressAllowed ? t('dialogs.delivery_form_not_full_error') : t('dialogs.not_supported_area_error'),\n okButtonText: t('buttons.ok'),\n cancelButtonText: t('buttons.cancel'),\n onOk: () => { }\n });\n\n return;\n }\n\n if (currentType === DeliveryType.DELIVERY) {\n const addressDetails = getValues([\"apartment\", \"flor\", \"addressNote\"]);\n const address = {\n formatted_address: selectedAddress.formatted_address,\n lat: selectedAddress.geometry.location.lat(),\n lng: selectedAddress.geometry.location.lng(),\n place_id: selectedAddress.place_id\n };\n const newClientInfo = Object.assign({}, clientInfo, { address: address}, addressDetails);\n\n updateClientInfo(newClientInfo);\n }\n\n if (currentType) {\n setDeliveryType(currentType);\n history.push(`/${branchInfo.branch_guid_code}/order`)\n }\n };\n\n let deliveryAdditionalClass = '';\n let taAdditionalClass = '';\n let menuAdditionalClass = '';\n\n if (!currentType) {\n deliveryAdditionalClass = '';\n taAdditionalClass = '';\n menuAdditionalClass = '';\n }\n\n if (currentType === DeliveryType.DELIVERY) {\n deliveryAdditionalClass = 'details';\n taAdditionalClass = 'hide';\n menuAdditionalClass = 'hide';\n }\n\n if (currentType === DeliveryType.TA) {\n deliveryAdditionalClass = 'hide';\n taAdditionalClass = 'details';\n menuAdditionalClass = 'hide';\n }\n\n if (currentType === DeliveryType.MENU) {\n deliveryAdditionalClass = 'hide';\n taAdditionalClass = 'hide';\n menuAdditionalClass = 'details';\n }\n\n\n return (\n <>\n
    \n { branchInfo.ShowDelivery && (\n\n {\n onSelectType(DeliveryType.DELIVERY);\n }}\n >\n { currentType === DeliveryType.DELIVERY && (\n
    {\n window.location.reload()\n } }>\n \n
    \n ) }\n\n
    \n { t('delivery_type_switcher.delivery.title') }\n
    \n\n
    \n  \n
    \n\n
    \n { t('delivery_type_switcher.delivery.description1') }\n
    \n { t('delivery_type_switcher.delivery.description2') }\n
    \n {/*{ currentType === DeliveryType.DELIVERY && (*/}\n
    \n\n
    \n
    \n { t('delivery_type_switcher.delivery.select_address') }\n
    \n
    \n
    \n \n { selectedAddress && addressAllowed && (\n
    {}}>\n
    \n {/**/}\n \n\n
    \n
    \n {/**/}\n \n
    \n
    \n {/**/}\n \n
    \n
    \n ) }\n\n
    \n \n \n
    \n
    \n
    \n
    \n \n\n ) }\n\n { branchInfo.ShowTakeAway && (\n\n {\n onSelectType(DeliveryType.TA);\n }}\n >\n
    \n { t('delivery_type_switcher.ta.title') }\n
    \n
    \n  \n
    \n
    \n { t('delivery_type_switcher.ta.description1') }\n
    \n { t('delivery_type_switcher.ta.description2') }\n
    \n
    \n\n\n
    \n \n \n
    \n
    \n\n \n \n\n ) }\n\n { branchInfo.ShowMenuInfo && (\n\n {\n onSelectType(DeliveryType.MENU);\n }}\n >\n
    \n { t('delivery_type_switcher.menu.title') }\n
    \n
    \n  \n
    \n
    \n { t('delivery_type_switcher.menu.description1') }\n
    \n { t('delivery_type_switcher.menu.description2') }\n
    \n
    \n\n\n
    \n \n \n
    \n
    \n\n \n \n\n ) }\n \n \n );\n};\n\nconst mapStateToProps = (state) => {\n const {\n branchInfo,\n currentDeliveryType,\n currentLanguageId,\n clientInfo\n } = state;\n\n return {\n branchInfo,\n currentDeliveryType,\n currentLanguageId,\n clientInfo\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n setDeliveryType,\n updateClientInfo\n },\n dispatch,\n );\n\nexport default withTranslation()(connect(mapStateToProps, mapDispatchToProps)(DeliveryTypeSwitcher));\n","import React, { useState, useEffect } from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport {withTranslation} from \"react-i18next\";\n\nconst Footer = ({ t, branchInfo }) => {\n return (\n <>\n
    \n\n {/*
    */}\n\n
    \n\n
    \n\n
    \n\n

    \n\n
      \n
    • Monday to Thuesday 6:00 - 18:00
    • \n
    • Friday to Saturdays 12:00 - 22:00
    • \n
    • Sundays closed
    • \n
    \n\n

    \n\n
    \n

    \n\n \n\n

    \n\n
    \n

    \n\n
    \n { t('footer.about_text') }\n
    \n\n

    \n\n
    \n\n
    \n
    \n Powered By iPos\n www.ipos.co.il\n
    \n
    \n\n
    \n\n
    \n \n );\n};\n\n\nconst mapStateToProps = (state) => {\n const {\n branchInfo\n } = state;\n\n return {\n branchInfo\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n },\n dispatch,\n );\n\nexport default withTranslation()(connect(mapStateToProps, mapDispatchToProps)(Footer));\n","import React, { useState, useEffect } from 'react';\nimport { useParams, useHistory } from 'react-router-dom';\nimport { Route, Switch } from 'react-router-dom';\nimport {bindActionCreators} from 'redux';\nimport {connect} from 'react-redux';\nimport {withTranslation} from \"react-i18next\";\n\nimport { loadRestaurant } from '../redux/actions/baseActions';\n\nimport TopNavigation from \"./components/TopNavigation\";\nimport '../assets/sass/deliveryTypeLayout.scss'\nimport DeliveryTypeSwitcher from \"./components/DeliveryTypeSwitcher\";\nimport Footer from \"./components/Footer\";\nimport ShortFooter from \"./components/ShortFooter\";\nimport {getImageUrl} from \"../api/iposApi\";\n\n\nfunction DeliveryTypeLayout({ loadRestaurant, branchInfo }) {\n const { branchId } = useParams();\n const history = useHistory();\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n const res = await loadRestaurant(branchId);\n if (res && res.error_message){\n history.push(`/${branchId}/error`)\n }\n } catch (e) {\n history.push(`/${branchId}/error`)\n }\n };\n\n fetchData();\n\n }, []);\n\n return (\n \n
    \n  \n
    \n
    \n \n
    \n\n \n \n \n );\n}\n\nconst mapStateToProps = (state) => {\n const {\n branchInfo\n } = state;\n\n return {\n branchInfo\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n loadRestaurant\n },\n dispatch,\n );\n\nexport default withTranslation()(connect(mapStateToProps, mapDispatchToProps)(DeliveryTypeLayout));\n","import React from 'react';\nimport Modal from 'react-modal';\nimport { withTranslation } from \"react-i18next\";\n\nconst LoadingModal = ( { show, text, t } ) => {\n const closeModal = () => {};\n\n return (\n \n
    \n
    \n
     
    \n
    \n
    { text || t('messages.please_wait') }
    \n
    \n \n );\n};\n\nexport default withTranslation()(LoadingModal);\n","export default __webpack_public_path__ + \"static/media/ipos_original.da1aea8a.jpg\";","import React, { useState, useEffect } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { Route, Switch } from 'react-router-dom';\nimport {bindActionCreators} from 'redux';\nimport {connect} from 'react-redux';\nimport {withTranslation} from \"react-i18next\";\n\nimport TopNavigation from \"./components/TopNavigation\";\nimport '../assets/sass/deliveryTypeLayout.scss'\nimport DeliveryTypeSwitcher from \"./components/DeliveryTypeSwitcher\";\nimport Footer from \"./components/Footer\";\nimport ShortFooter from \"./components/ShortFooter\";\nimport {getImageUrl} from \"../api/iposApi\";\nimport background from '../assets/img/bg/ipos_original.jpg'\nimport { hideLoading } from \"../redux/actions/loadingActions\";\n\n\nfunction ErrorLayout({ branchInfo, hideLoading }) {\n const { branchId } = useParams();\n\n useEffect(()=>{\n setTimeout(()=>{\n hideLoading();\n }, 1000);\n\n },[]);\n\n return (\n \n
    \n \n
    \n\n\n
    \n
    \n Sorry, restaurant is not available\n
    \n
    \n {/**/}\n {/**/}\n \n );\n}\n\nconst mapStateToProps = (state) => {\n const {\n branchInfo\n } = state;\n\n return {\n branchInfo\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n hideLoading\n },\n dispatch,\n );\n\nexport default withTranslation()(connect(mapStateToProps, mapDispatchToProps)(ErrorLayout));\n","import React, { useState, useEffect } from 'react';\nimport './OrderInfoItem.scss';\nimport {getImageUrl} from \"../../../api/iposApi\";\nimport FormattedPrice from \"../../../components/FormattedPrice\";\n\nconst OrderInfoItem = ({ item }) => {\n return (\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    {item.menuItem.item_name}
    \n
    {item.menuItem.details_txt}
    \n
    \n {\n item.instructions.map((instruction, index) => (\n
    \n { instruction.menuItem.item_name }\n
    \n ))\n }\n\n
    \n { item.freeInstruction && (\n
    \n
    \n { item.freeInstruction }\n
    \n
    \n )}\n\n
    \n\n
    \n
    x {item.orderItem.quantity}
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n\n {item.supplements.map(supplement => (\n
    \n
    \n
    {supplement.menuItem.item_name}
    \n
    \n\n
    \n
    x {supplement.orderItem.quantity}
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n ))}\n\n
    \n
    \n );\n};\n\nexport default OrderInfoItem;\n","import React, { useState, useEffect } from 'react';\nimport {connect} from 'react-redux';\nimport {bindActionCreators} from 'redux';\nimport {orderTotal} from \"../../redux/selectors/order\";\nimport {isMobileAndTablet, isMobileApp} from \"../../helpers/common\";\n\nimport './OrderInfoPage.scss';\nimport OrderInfoItem from \"./components/OrderInfoItem\";\nimport FormattedPrice from \"../../components/FormattedPrice\";\nimport {withTranslation} from \"react-i18next\";\n\n\nconst OrderInfoPage = ({ t, orderItems, totalAmount, orderInfo, clientInfo, branchInfo }) => {\n const isMobile = isMobileAndTablet();\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    { t('order_info.order_confirmed') }
    \n\n
    \n { orderInfo.is_take_away_order === 1 && (\n t('order_info.greetings_ta', { clientName: clientInfo.client_name })\n ) }\n\n { orderInfo.is_take_away_order !== 1 && (\n t('order_info.greetings_delivery', { clientName: clientInfo.client_name })\n ) }\n\n
    \n\n
    \n
    \n
    \n\n
    \n
    \n
    { t('order_info.order_id') } {orderInfo.order_id}
    \n
    \n { clientInfo.client_address && (\n
    \n
    { t('order_info.delivery_address') }
    \n
    { clientInfo.client_address }
    \n
    \n ) }\n\n\n
    \n
    { t('order_info.payment_type') }
    \n
    { orderInfo.paymentsName }
    \n
    \n { orderInfo.is_take_away_order !== 1 && (\n
    \n
    { t('order_info.delivery_time') }
    \n
    { branchInfo.DeliveryTime } { t('order_info.min') }
    \n
    \n )}\n
    \n\n {/*
    */}\n {/*
    Order Details
    */}\n {/*
    */}\n {/*
    Date
    */}\n {/*
    03/03/2021
    */}\n {/*
    */}\n\n {/*
    */}\n {/*
    Payment Type
    */}\n {/*
    Credit Card *4441
    */}\n {/*
    */}\n {/*
    */}\n\n
    \n
    \n\n
    \n
    \n
    { t('order_info.order_summary') }
    \n
    \n {\n orderItems.length > 0 && orderItems.map(item => (\n \n ))\n }\n
    \n
    \n
    \n
    \n
    { t('order_info.total') }
    \n
    \n\n
    \n
     
    \n
    \n\n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    { t('order_info.thank_you_ipos') }
    \n\n
    \n { t('order_info.need_assistance') }\n
    \n\n
    \n { t('order_info.assistance_notes') }\n
    \n\n
    \n Powered by iPos\n
    \n
    \n
    \n\n
    \n
    \n );\n};\n\nconst mapStateToProps = (state) => {\n const {\n branchInfo,\n orderItems,\n orderInfo,\n clientInfo\n } = state;\n\n return {\n branchInfo,\n totalAmount: orderTotal(state),\n orderItems,\n orderInfo,\n clientInfo\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n\n },\n dispatch,\n );\nexport default withTranslation()(connect(mapStateToProps, mapDispatchToProps)(OrderInfoPage));\n","import React, { useState, useEffect } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { Route, Switch } from 'react-router-dom';\nimport {bindActionCreators} from 'redux';\nimport {connect} from 'react-redux';\n\nimport { loadOrderInfo } from \"../redux/actions/orderActions\";\nimport Header from \"./components/Header\";\nimport {getImageUrl} from \"../api/iposApi\";\nimport OrderInfoPage from \"../pages/order_info/OrderInfoPage\";\n\n\nfunction OrderInfoLayout({ loadOrderInfo, currentLanguageId, branchInfo }) {\n const { branchId, orderId } = useParams();\n\n const fetchData = async () => {\n await loadOrderInfo(branchId, orderId);\n };\n\n useEffect(() => {\n fetchData();\n }, [currentLanguageId]);\n\n return (\n <>\n \n
    \n  \n
    \n
    \n\n \n \n \n \n \n );\n}\n\nconst mapStateToProps = (state) => {\n const {\n currentLanguageId,\n branchInfo\n } = state;\n\n return {\n currentLanguageId,\n branchInfo\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n loadOrderInfo\n },\n dispatch,\n );\n\nexport default connect(mapStateToProps, mapDispatchToProps)(OrderInfoLayout);\n","import React, { useEffect } from 'react';\nimport {connect} from \"react-redux\";\nimport { bindActionCreators } from 'redux';\nimport { Route, Redirect, Switch, useParams } from 'react-router-dom';\nimport {ConnectedRouter} from \"connected-react-router\";\nimport RestaurantLayout from \"./RestaurantLayout\";\nimport PromoPage from \"./PromoPage\";\nimport i18n from '../i18n';\nimport {DeliveryType} from \"../constants/deliveryTypes\";\nimport DeliveryTypeLayout from \"./DeliveryTypeLayout\";\nimport {getLanguageById} from \"../helpers/language\";\nimport moment from 'moment';\nimport 'moment/locale/he';\nimport LoadingModal from \"../IPosModal/LoadingModal\";\nimport { loadBranchInfo } from '../redux/actions/branchActions';\nimport { showLoading, hideLoading } from '../redux/actions/loadingActions';\nimport {Helmet} from \"react-helmet\";\nimport {getImageUrl} from \"../api/iposApi\";\nimport ClientPage from \"../pages/payment/ClientPage\";\nimport ErrorLayout from \"./ErrorLayout\";\nimport {isMobileApp} from \"../helpers/common\";\nimport iposLogo from '../assets/img/promo_page/iPos_Logo.png';\nimport OrderInfoLayout from \"./OrderInfoLayout\";\n\nconst BaseLayout = ({ history, currentLanguageId, currentDeliveryType, loading,\n loadBranchInfo, branchInfo, showLoading, hideLoading }) => {\n\n useEffect(async () => {\n showLoading();\n const lang = getLanguageById(currentLanguageId);\n i18n.changeLanguage(lang);\n moment.locale(lang);\n document.querySelector('html').dir = lang ==='he' ? 'rtl' : 'ltr';\n if (branchInfo && branchInfo.branch_guid_code) {\n await loadBranchInfo(branchInfo.branch_guid_code);\n }\n hideLoading();\n }, [currentLanguageId]);\n\n useEffect(() => {\n showLoading();\n }, [branchInfo]);\n\n const currentLogo = () => {\n if (branchInfo.LogoImageName) {\n return getImageUrl(branchInfo.LogoImageName);\n }\n\n return iposLogo;\n };\n\n return (\n \n { branchInfo && (\n \n { branchInfo.PlaseName }\n \n \n \n \n \n \n ) }\n\n\n
    \n {/*
    */}\n \n\n \n \n \n \n \n (\n currentDeliveryType ? : \n )} />\n\n\n \n
    \n \n );\n\n};\n\nconst mapStateToProps = (state) => {\n const {\n currentLanguageId,\n currentDeliveryType,\n loading,\n branchInfo\n } = state;\n\n return {\n currentLanguageId,\n currentDeliveryType,\n loading,\n branchInfo\n };\n};\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n loadBranchInfo,\n showLoading, hideLoading\n },\n dispatch,\n );\n\nexport default connect(mapStateToProps, mapDispatchToProps)(BaseLayout);\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport * as serviceWorker from './serviceWorker';\nimport networkService from './api/networkService.js';\nimport './utils/fontawersome';\n\nimport './assets/css/bootstrap.css';\nimport './assets/sass/bootstrap-rtl.min.scss';\nimport './assets/css/socicons.css';\nimport './assets/css/hover.css';\nimport './assets/css/animate.css';\n// import './assets/css/style-green.css';\nimport './assets/css/style-blue.css';\nimport './assets/css/index.css';\nimport './assets/sass/App.scss';\n\n// import App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nimport configureStore, { history } from './redux/store/configureStore';\nimport BaseLayout from \"./layouts/BaseLayout\";\n\nconst state = window.__initialState__ || undefined;\nconst store = configureStore(state, window.__REDUX_DEVTOOLS_EXTENSION && window.__REDUX_DEVTOOLS_EXTENSION());\n\nnetworkService.setupInterceptors(store, history);\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\nserviceWorker.unregister();\n"],"sourceRoot":""}