{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/res/Static.js","webpack:///./src/components/widgets/AddToBundleCartBtn.js","webpack:///./src/api/Menu.js","webpack:///./src/components/widgets/AddToCartBtn.js","webpack:///./src/components/widgets/CheckoutBtn.js","webpack:///./src/components/SetItems.js","webpack:///./src/components/SetList.js","webpack:///./src/api/SetTools.js","webpack:///./src/api/SingleTools.js","webpack:///./src/actions/globalAction.js","webpack:///./src/actions/index.js","webpack:///./src/actions/loadingAction.js","webpack:///./src/actions/productAction.js","webpack:///./src/actions/shoppingCartAction.js","webpack:///./src/actions/checkoutAction.js","webpack:///./src/actions/categoryAction.js","webpack:///./src/actions/permissionAction.js","webpack:///./src/res/WACode.js","webpack:///./src/api/Permission.js","webpack:///./src/reducers/loading.js","webpack:///./src/reducers/product.js","webpack:///./src/reducers/shoppingCart.js","webpack:///./src/reducers/checkout.js","webpack:///./src/reducers/category.js","webpack:///./src/reducers/global.js","webpack:///./src/reducers/permission.js","webpack:///./src/reducers/index.js","webpack:///./src/store/index.js","webpack:///./src/components/Set.js","webpack:///./src/components/Simple.js","webpack:///./src/components/SimpleList.js","webpack:///./src/components/Single.js","webpack:///./src/components/SingleList.js","webpack:///./src/components/widgets/AddSingleToCartBtn.js","webpack:///./src/components/Special.js","webpack:///./src/res/Config.js","webpack:///./src/res/chConfig.js","webpack:///./src/res/enConfig.js","webpack:///./src/res/Menu.js","webpack:///./src/api/SimpleTools.js","webpack:///./src/api/CommonTools.js","webpack:///./src/components/ShoppingCart.js","webpack:///./src/res/landing.js","webpack:///./src/components/Landing.js","webpack:///./src/components/Temp.js","webpack:///./src/components/CartTable.js","webpack:///./src/components/Checkout.js","webpack:///./src/components/NonSupport.js","webpack:///./src/components/ServerError.js","webpack:///./src/components/Suspension.js","webpack:///./src/routes/index.js","webpack:///./src/history.js","webpack:///./src/App.js","webpack:///./src/index.js","webpack:///./src/api/EnvironmentTools.js","webpack:///./src/components/widgets/Loading.js","webpack:///./src/components/CatDescription.js","webpack:///./src/components/ShoppingStatus.js","webpack:///./src/components/Tab.js","webpack:///./src/components/widgets/Disable.js","webpack:///./src/components/widgets/Logout.js","webpack:///./src/components/HeaderBanner.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","parentHotUpdateCallback","window","hotAvailableFilesMap","hotRequestedFilesMap","hotUpdate","hotWaitingFiles","hotChunksLoading","hotUpdateDownloaded","hotAddUpdateChunk","hotCurrentChildModule","hotApplyOnUpdate","hotCurrentHash","hotCurrentModuleData","hotCurrentParents","hotCurrentParentsTemp","hotCreateModule","hot","_acceptedDependencies","_declinedDependencies","_selfAccepted","_selfDeclined","_selfInvalidated","_disposeHandlers","_main","active","accept","dep","callback","undefined","decline","dispose","addDisposeHandler","removeDisposeHandler","idx","indexOf","invalidate","this","hotStatus","hotSetStatus","hotApplyInvalidatedModule","hotQueuedInvalidatedModules","check","hotCheck","hotApply","status","l","hotStatusHandlers","addStatusHandler","removeStatusHandler","newStatus","hotDeferred","hotUpdateNewHash","hotWaitingFilesMap","toModuleId","id","Error","requestTimeout","Promise","resolve","reject","XMLHttpRequest","request","requestPath","p","open","timeout","send","err","onreadystatechange","readyState","update","JSON","parse","responseText","e","then","hotApplyInvalidatedModules","c","h","promise","hotEnsureUpdateChunk","script","document","createElement","charset","src","head","appendChild","deferred","outdatedModules","options","hotApplyInternal","cb","module","getAffectedStuff","updateModuleId","outdatedDependencies","queue","map","chain","queueItem","pop","installedModules","type","parents","parentId","parent","concat","addAllToSet","a","b","item","appliedUpdate","warnUnexpectedRequire","console","warn","abortError","doApply","doDispose","chainInfo","join","onDeclined","ignoreDeclined","onUnaccepted","ignoreUnaccepted","onAccepted","onDisposed","outdatedSelfAcceptedModules","slice","errorHandler","keys","forEach","hotDisposeChunk","dependency","moduleOutdatedDependencies","disposeHandlers","children","child","error","callbacks","onErrored","dependencyId","ignoreErrored","err2","originalError","list","2","exports","me","fn","ObjectFactory","name","configurable","enumerable","get","set","value","defineProperty","finishChunkLoading","t","mode","hotCreateRequire","m","d","getter","o","r","Symbol","toStringTag","__esModule","ns","create","key","bind","n","object","property","jsonpArray","oldJsonpFunction","staticContent","content","loading","React","memo","catId","useParams","cartUpdateCount","useSelector","state","shoppingCart","cartId","activeProduct","product","role","permission","dispatch","useDispatch","history","useHistory","handleBundleAddToCart","Permission","eventPermission","Menu","menuDetect","typeDetect","myPartID","SetTools","addToCartValidate","allActions","loadingAction","changeLoading","axios","post","Config","storeLink","generateCartObject","sku","fetchBundleOptions","res","productAction","setSuccessStatus","setFailStatus","shoppingCartAction","setCartUpdateCount","checkoutAction","pushEnableUpdates","resetSetInputQtyField","CommonTools","waFireClick","WACode","overAddtocart","setTimeout","alert","Static","itemAddAlert","addToCartAlert","className","title","backToHome","onClick","addToCart","addPartySetToCartCaption","OTP","startShoppingDetail","verifyCatId","menu","extractSubType","categoryStatus","parentMenu","eraseMenu","disable","location","href","storePage","categoryAllStatus","cats","v","categoryObject","getChildren","cat","categoryChildren","children_data","is_active","menuStatus","activeCat","prevMenu","localStorage","getItem","activeMenu","allMenus","allStatus","menuFlag","menuChange","store","globalAction","setMenu","hash","prev","current","setItem","menuAlert","statusRedirect","typeChange","activeType","confirm","typeAlert","removeItem","cartIdName","fetchCartId","addMenuStatus","process","flag","subCat","ids","subP","landTypeDetect","prevType","subV","subIds","handleMultipleAddtocart","addToCartArray","SimpleTools","validateMinimunOrder","filterProduct","errorCount","method","url","qty","all","spread","responses","index","resetInputQtyField","itemSku","log","maximumError","checkout","soldoutError","useLocation","code","pathname","startsWith","btnCheckout","shoppingCheckout","checkoutForm","productId","setItems","useEffect","urlParam","generateParam","productDomain","fetchSetItems","fetchProductSku","items","encodeURIComponent","handleClick","currentTarget","getAttribute","classList","contains","$","text","val","data-value","priceFormat","price","dangerouslySetInnerHTML","__html","getCustomAttribute","productSku","detailProduct","consolidateProduct","getData","tempDetailProduct","bundleRelatedSku","setActiveProduct","fetchdetailProduct","genConsolidateProduct","bundleOptions","setShoppingCartTop","data-max","getMax","getTitle","getPartyCatSelectTitle","style","clear","cValue","subValue","subIndex","imageSrc","getMediaAttribute","data-sku","popupBundleProductImg","data-src","data-gallery","data-title","aria-hidden","handleAddQty","data-cat","data-id","pattern","data-cattitle","data-optionid","option_id","data-productid","min","max","maxLength","defaultValue","quentityTitle","onInput","handleMaxLengthCheck","handleMinusQty","split","replaceAll","updatePartyFoodIndicator","mycat","querySelector","mCnt","catInputs","querySelectorAll","userItem","parseInt","innerHTML","validatePartyFoodQty","mQty","mReturn","maxQty","extension_attributes","bundle_product_options","sort","position","mCatTitle","catTilePick","lang","partychoose","partytype","inputedVal","datacat","imgSrc","mediaDomain","imgPathDetect","popupIframeImage","mId","mMax","mMin","mVal","partySetItemMax","find","trigger","bundle_options","cart_item","quote_id","k","option","product_links","subOption","selectioncat","mItem","requiredQty","fetchCartBundleOptions","original","entire","tempOptionId","tempItem","product_type","originalOptions","product_option","entireOptions","option_selections","optionId","itemId","option_qty","itemRelatedSku","temp","environment","productDomainDV","includes","each","html","attr","generateCheckoutOptions","mText","generateSetObject","item_id","loadingStatus","changeCartLoading","cartloadingStatus","successStatus","failStatus","fetchOriginalCart","originalCart","fetchDiscountCart","discountCart","setShoppingCart","switchCartDetailStatus","cartDetailStatus","getShoppingCartLength","shoppingCartLength","getCatDatas","catDatas","enableUpdates","pushMaximumError","pushSoldOutError","switchCheckoutStatus","checkoutStatus","categoryAction","fetchCategory","currentCategory","setType","setActiveTab","activeTab","setEntireMenuStatus","entireMenuStatus","permissionAction","setRole","startShopping","shoppingViewCart","btnUpdateCart","setTab","simpleTab","specialTab","singleTab","setLand","simpleLand","singleLand","specialLand","westTab","chiTab","partyTab","detectPermission","Cookies","token","Date","setMinutes","getMinutes","expires","memberId","memberFId","specialOTP","refer","tempRefer","substring","otpUrl","storeName","statusChange","prevRole","currentRole","expiration","landingChange","landingPermission","getState","clearPermission","remove","defaultState","action","hamperCount","hamperAmount","hamperDiscount","hamperPayable","festiveCount","festiveAmount","festiveDiscount","festivePayable","totalCount","totalAmount","category","global","rootReducer","combineReducers","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","createStore","reducer","applyMiddleware","thunk","extractType","tempProduct","productStatus","waFire","click","animate","scrollTop","class","myCatId","products","catPromise","catInfo","priceLabel","props","getProductImage","popupProductImg","backgroundImage","target","reheatMethod","miniOrder","allUnit","formatPrice","outOfStock","specificQt","SingleTools","subStoreName","storeId","EnvironmentTools","categoryImage","storeHome","language","restuarantHome","waCheckout","pageFireCount","skuSeparator","generateCheckoutObject","str","formatter","Intl","NumberFormat","minimumFractionDigits","format","Number","getMatchItem","generateProductParam","search","pushState","WATracker","trackPageView","wa_id","trackClickEvent","waNonStandardFire","updateShoppingCart","discountData","hamperIds","totalPayable","matchItem","totalDiscount","discount_amount","insertItem","array","newArray","specificQty","custom_attributes","attribute_code","media_gallery_entries","disabled","resetInputValue","getElementById","getOtherInfoBySKU","othername","requestother","urlBasicParam","myvalue","shortdescription","mkey","customattributes","getProductCustomAttribute","otherdescription","pName","sDescription","description","sName","getElementsByClassName","shoppingCartEl","windowHeight","innerHeight","detailInfo","getBoundingClientRect","height","top","compareQty","skuFilter","checkVersion","agent","navigator","userAgent","start","substr","replace","encodeParam","mprice","String","extractSubMenuObject","obj","subMenu","extractAllMenuObject","image","menuId","extractIdsByType","mTitle","noImage","noShow","getCartItem","getCartId","tempMaximumError","tempSoldoutError","tempProductData","tempOriginal","optionDetail","tempOptionDetail","soldoutCode","tempSortData","addEventListener","removeEventListener","onMouseEnter","isMobile","onMouseLeave","cartNoProduct","width","shoppingLabel","total","display","amount","unit","discount","sumPayable","allTotal","cartTips","to","checkShoppingCart","partialError","miniPartialError","startShoppingLabel","landingContent","handleOnClick","link","Loading","restaurantName","subItem","data-type","data-sub-type","data-link","productItems","payable","group","catData","updateProduct","updatedProduct","hasRemoved","newPromise","reload","maxLengthCheckWithUpdated","tempEnableUpdates","Fragment","rowSpan","checkoutSubTitle","colSpan","count","sortData","outOfStockError","generalError","data-rwd-label","tablePrice","data-rwd-tax-label","freeTax","data-group","data-itemid","size","data-minorder-qty","subTotal","alreadySelectCount","alreadySelectAmount","discountAmount","discountedAmount","checkoutInfo","backToShopping","goBack","ShoppingCart","noItemInCart","yourShoppingCartNoItems","clickLink","here","continueShop","checkoutTitle","checkoutSelectLabel","checkoutSelectTip","CheckoutBtn","errorNonSupport","serverErrorHandler","serverSuspendHandler","Routes","path","component","NonSupport","Temp","exact","Set","Simple","Single","Special","Checkout","Suspension","ServerError","createHistory","listen","App","renderRoutes","routes","Es6Promise","polyfill","ReactDOM","render","envDetection","env","host","debugMode","cateogryImage","domain","envDomain","campDomain","ev","addedSuccess","addedFail","allIds","tempIds","handleSwitchTab","signoutConfim","logoutLabel","takeawayCatImg","alt","takeawayTxt","takeawayRemarktitle","takeawayRemarkcaption"],"mappings":"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","file":"main.bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n \tfunction hotDisposeChunk(chunkId) {\n \t\tdelete installedChunks[chunkId];\n \t}\n \tvar parentHotUpdateCallback = window[\"webpackHotUpdate\"];\n \twindow[\"webpackHotUpdate\"] = // eslint-disable-next-line no-unused-vars\n \tfunction webpackHotUpdateCallback(chunkId, moreModules) {\n \t\thotAddUpdateChunk(chunkId, moreModules);\n \t\tif (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);\n \t} ;\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotDownloadUpdateChunk(chunkId) {\n \t\tvar script = document.createElement(\"script\");\n \t\tscript.charset = \"utf-8\";\n \t\tscript.src = __webpack_require__.p + \"hot/hot-update.js\";\n \t\tif (null) script.crossOrigin = null;\n \t\tdocument.head.appendChild(script);\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotDownloadManifest(requestTimeout) {\n \t\trequestTimeout = requestTimeout || 10000;\n \t\treturn new Promise(function(resolve, reject) {\n \t\t\tif (typeof XMLHttpRequest === \"undefined\") {\n \t\t\t\treturn reject(new Error(\"No browser support\"));\n \t\t\t}\n \t\t\ttry {\n \t\t\t\tvar request = new XMLHttpRequest();\n \t\t\t\tvar requestPath = __webpack_require__.p + \"hot/hot-update.json\";\n \t\t\t\trequest.open(\"GET\", requestPath, true);\n \t\t\t\trequest.timeout = requestTimeout;\n \t\t\t\trequest.send(null);\n \t\t\t} catch (err) {\n \t\t\t\treturn reject(err);\n \t\t\t}\n \t\t\trequest.onreadystatechange = function() {\n \t\t\t\tif (request.readyState !== 4) return;\n \t\t\t\tif (request.status === 0) {\n \t\t\t\t\t// timeout\n \t\t\t\t\treject(\n \t\t\t\t\t\tnew Error(\"Manifest request to \" + requestPath + \" timed out.\")\n \t\t\t\t\t);\n \t\t\t\t} else if (request.status === 404) {\n \t\t\t\t\t// no update available\n \t\t\t\t\tresolve();\n \t\t\t\t} else if (request.status !== 200 && request.status !== 304) {\n \t\t\t\t\t// other failure\n \t\t\t\t\treject(new Error(\"Manifest request to \" + requestPath + \" failed.\"));\n \t\t\t\t} else {\n \t\t\t\t\t// success\n \t\t\t\t\ttry {\n \t\t\t\t\t\tvar update = JSON.parse(request.responseText);\n \t\t\t\t\t} catch (e) {\n \t\t\t\t\t\treject(e);\n \t\t\t\t\t\treturn;\n \t\t\t\t\t}\n \t\t\t\t\tresolve(update);\n \t\t\t\t}\n \t\t\t};\n \t\t});\n \t}\n\n \tvar hotApplyOnUpdate = true;\n \t// eslint-disable-next-line no-unused-vars\n \tvar hotCurrentHash = \"b7938c8badc77d331187\";\n \tvar hotRequestTimeout = 10000;\n \tvar hotCurrentModuleData = {};\n \tvar hotCurrentChildModule;\n \t// eslint-disable-next-line no-unused-vars\n \tvar hotCurrentParents = [];\n \t// eslint-disable-next-line no-unused-vars\n \tvar hotCurrentParentsTemp = [];\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotCreateRequire(moduleId) {\n \t\tvar me = installedModules[moduleId];\n \t\tif (!me) return __webpack_require__;\n \t\tvar fn = function(request) {\n \t\t\tif (me.hot.active) {\n \t\t\t\tif (installedModules[request]) {\n \t\t\t\t\tif (installedModules[request].parents.indexOf(moduleId) === -1) {\n \t\t\t\t\t\tinstalledModules[request].parents.push(moduleId);\n \t\t\t\t\t}\n \t\t\t\t} else {\n \t\t\t\t\thotCurrentParents = [moduleId];\n \t\t\t\t\thotCurrentChildModule = request;\n \t\t\t\t}\n \t\t\t\tif (me.children.indexOf(request) === -1) {\n \t\t\t\t\tme.children.push(request);\n \t\t\t\t}\n \t\t\t} else {\n \t\t\t\tconsole.warn(\n \t\t\t\t\t\"[HMR] unexpected require(\" +\n \t\t\t\t\t\trequest +\n \t\t\t\t\t\t\") from disposed module \" +\n \t\t\t\t\t\tmoduleId\n \t\t\t\t);\n \t\t\t\thotCurrentParents = [];\n \t\t\t}\n \t\t\treturn __webpack_require__(request);\n \t\t};\n \t\tvar ObjectFactory = function ObjectFactory(name) {\n \t\t\treturn {\n \t\t\t\tconfigurable: true,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: function() {\n \t\t\t\t\treturn __webpack_require__[name];\n \t\t\t\t},\n \t\t\t\tset: function(value) {\n \t\t\t\t\t__webpack_require__[name] = value;\n \t\t\t\t}\n \t\t\t};\n \t\t};\n \t\tfor (var name in __webpack_require__) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(__webpack_require__, name) &&\n \t\t\t\tname !== \"e\" &&\n \t\t\t\tname !== \"t\"\n \t\t\t) {\n \t\t\t\tObject.defineProperty(fn, name, ObjectFactory(name));\n \t\t\t}\n \t\t}\n \t\tfn.e = function(chunkId) {\n \t\t\tif (hotStatus === \"ready\") hotSetStatus(\"prepare\");\n \t\t\thotChunksLoading++;\n \t\t\treturn __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) {\n \t\t\t\tfinishChunkLoading();\n \t\t\t\tthrow err;\n \t\t\t});\n\n \t\t\tfunction finishChunkLoading() {\n \t\t\t\thotChunksLoading--;\n \t\t\t\tif (hotStatus === \"prepare\") {\n \t\t\t\t\tif (!hotWaitingFilesMap[chunkId]) {\n \t\t\t\t\t\thotEnsureUpdateChunk(chunkId);\n \t\t\t\t\t}\n \t\t\t\t\tif (hotChunksLoading === 0 && hotWaitingFiles === 0) {\n \t\t\t\t\t\thotUpdateDownloaded();\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t};\n \t\tfn.t = function(value, mode) {\n \t\t\tif (mode & 1) value = fn(value);\n \t\t\treturn __webpack_require__.t(value, mode & ~1);\n \t\t};\n \t\treturn fn;\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotCreateModule(moduleId) {\n \t\tvar hot = {\n \t\t\t// private stuff\n \t\t\t_acceptedDependencies: {},\n \t\t\t_declinedDependencies: {},\n \t\t\t_selfAccepted: false,\n \t\t\t_selfDeclined: false,\n \t\t\t_selfInvalidated: false,\n \t\t\t_disposeHandlers: [],\n \t\t\t_main: hotCurrentChildModule !== moduleId,\n\n \t\t\t// Module API\n \t\t\tactive: true,\n \t\t\taccept: function(dep, callback) {\n \t\t\t\tif (dep === undefined) hot._selfAccepted = true;\n \t\t\t\telse if (typeof dep === \"function\") hot._selfAccepted = dep;\n \t\t\t\telse if (typeof dep === \"object\")\n \t\t\t\t\tfor (var i = 0; i < dep.length; i++)\n \t\t\t\t\t\thot._acceptedDependencies[dep[i]] = callback || function() {};\n \t\t\t\telse hot._acceptedDependencies[dep] = callback || function() {};\n \t\t\t},\n \t\t\tdecline: function(dep) {\n \t\t\t\tif (dep === undefined) hot._selfDeclined = true;\n \t\t\t\telse if (typeof dep === \"object\")\n \t\t\t\t\tfor (var i = 0; i < dep.length; i++)\n \t\t\t\t\t\thot._declinedDependencies[dep[i]] = true;\n \t\t\t\telse hot._declinedDependencies[dep] = true;\n \t\t\t},\n \t\t\tdispose: function(callback) {\n \t\t\t\thot._disposeHandlers.push(callback);\n \t\t\t},\n \t\t\taddDisposeHandler: function(callback) {\n \t\t\t\thot._disposeHandlers.push(callback);\n \t\t\t},\n \t\t\tremoveDisposeHandler: function(callback) {\n \t\t\t\tvar idx = hot._disposeHandlers.indexOf(callback);\n \t\t\t\tif (idx >= 0) hot._disposeHandlers.splice(idx, 1);\n \t\t\t},\n \t\t\tinvalidate: function() {\n \t\t\t\tthis._selfInvalidated = true;\n \t\t\t\tswitch (hotStatus) {\n \t\t\t\t\tcase \"idle\":\n \t\t\t\t\t\thotUpdate = {};\n \t\t\t\t\t\thotUpdate[moduleId] = modules[moduleId];\n \t\t\t\t\t\thotSetStatus(\"ready\");\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"ready\":\n \t\t\t\t\t\thotApplyInvalidatedModule(moduleId);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"prepare\":\n \t\t\t\t\tcase \"check\":\n \t\t\t\t\tcase \"dispose\":\n \t\t\t\t\tcase \"apply\":\n \t\t\t\t\t\t(hotQueuedInvalidatedModules =\n \t\t\t\t\t\t\thotQueuedInvalidatedModules || []).push(moduleId);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tdefault:\n \t\t\t\t\t\t// ignore requests in error states\n \t\t\t\t\t\tbreak;\n \t\t\t\t}\n \t\t\t},\n\n \t\t\t// Management API\n \t\t\tcheck: hotCheck,\n \t\t\tapply: hotApply,\n \t\t\tstatus: function(l) {\n \t\t\t\tif (!l) return hotStatus;\n \t\t\t\thotStatusHandlers.push(l);\n \t\t\t},\n \t\t\taddStatusHandler: function(l) {\n \t\t\t\thotStatusHandlers.push(l);\n \t\t\t},\n \t\t\tremoveStatusHandler: function(l) {\n \t\t\t\tvar idx = hotStatusHandlers.indexOf(l);\n \t\t\t\tif (idx >= 0) hotStatusHandlers.splice(idx, 1);\n \t\t\t},\n\n \t\t\t//inherit from previous dispose call\n \t\t\tdata: hotCurrentModuleData[moduleId]\n \t\t};\n \t\thotCurrentChildModule = undefined;\n \t\treturn hot;\n \t}\n\n \tvar hotStatusHandlers = [];\n \tvar hotStatus = \"idle\";\n\n \tfunction hotSetStatus(newStatus) {\n \t\thotStatus = newStatus;\n \t\tfor (var i = 0; i < hotStatusHandlers.length; i++)\n \t\t\thotStatusHandlers[i].call(null, newStatus);\n \t}\n\n \t// while downloading\n \tvar hotWaitingFiles = 0;\n \tvar hotChunksLoading = 0;\n \tvar hotWaitingFilesMap = {};\n \tvar hotRequestedFilesMap = {};\n \tvar hotAvailableFilesMap = {};\n \tvar hotDeferred;\n\n \t// The update info\n \tvar hotUpdate, hotUpdateNewHash, hotQueuedInvalidatedModules;\n\n \tfunction toModuleId(id) {\n \t\tvar isNumber = +id + \"\" === id;\n \t\treturn isNumber ? +id : id;\n \t}\n\n \tfunction hotCheck(apply) {\n \t\tif (hotStatus !== \"idle\") {\n \t\t\tthrow new Error(\"check() is only allowed in idle status\");\n \t\t}\n \t\thotApplyOnUpdate = apply;\n \t\thotSetStatus(\"check\");\n \t\treturn hotDownloadManifest(hotRequestTimeout).then(function(update) {\n \t\t\tif (!update) {\n \t\t\t\thotSetStatus(hotApplyInvalidatedModules() ? \"ready\" : \"idle\");\n \t\t\t\treturn null;\n \t\t\t}\n \t\t\thotRequestedFilesMap = {};\n \t\t\thotWaitingFilesMap = {};\n \t\t\thotAvailableFilesMap = update.c;\n \t\t\thotUpdateNewHash = update.h;\n\n \t\t\thotSetStatus(\"prepare\");\n \t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\thotDeferred = {\n \t\t\t\t\tresolve: resolve,\n \t\t\t\t\treject: reject\n \t\t\t\t};\n \t\t\t});\n \t\t\thotUpdate = {};\n \t\t\tfor(var chunkId in installedChunks)\n \t\t\t// eslint-disable-next-line no-lone-blocks\n \t\t\t{\n \t\t\t\thotEnsureUpdateChunk(chunkId);\n \t\t\t}\n \t\t\tif (\n \t\t\t\thotStatus === \"prepare\" &&\n \t\t\t\thotChunksLoading === 0 &&\n \t\t\t\thotWaitingFiles === 0\n \t\t\t) {\n \t\t\t\thotUpdateDownloaded();\n \t\t\t}\n \t\t\treturn promise;\n \t\t});\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotAddUpdateChunk(chunkId, moreModules) {\n \t\tif (!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])\n \t\t\treturn;\n \t\thotRequestedFilesMap[chunkId] = false;\n \t\tfor (var moduleId in moreModules) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\thotUpdate[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif (--hotWaitingFiles === 0 && hotChunksLoading === 0) {\n \t\t\thotUpdateDownloaded();\n \t\t}\n \t}\n\n \tfunction hotEnsureUpdateChunk(chunkId) {\n \t\tif (!hotAvailableFilesMap[chunkId]) {\n \t\t\thotWaitingFilesMap[chunkId] = true;\n \t\t} else {\n \t\t\thotRequestedFilesMap[chunkId] = true;\n \t\t\thotWaitingFiles++;\n \t\t\thotDownloadUpdateChunk(chunkId);\n \t\t}\n \t}\n\n \tfunction hotUpdateDownloaded() {\n \t\thotSetStatus(\"ready\");\n \t\tvar deferred = hotDeferred;\n \t\thotDeferred = null;\n \t\tif (!deferred) return;\n \t\tif (hotApplyOnUpdate) {\n \t\t\t// Wrap deferred object in Promise to mark it as a well-handled Promise to\n \t\t\t// avoid triggering uncaught exception warning in Chrome.\n \t\t\t// See https://bugs.chromium.org/p/chromium/issues/detail?id=465666\n \t\t\tPromise.resolve()\n \t\t\t\t.then(function() {\n \t\t\t\t\treturn hotApply(hotApplyOnUpdate);\n \t\t\t\t})\n \t\t\t\t.then(\n \t\t\t\t\tfunction(result) {\n \t\t\t\t\t\tdeferred.resolve(result);\n \t\t\t\t\t},\n \t\t\t\t\tfunction(err) {\n \t\t\t\t\t\tdeferred.reject(err);\n \t\t\t\t\t}\n \t\t\t\t);\n \t\t} else {\n \t\t\tvar outdatedModules = [];\n \t\t\tfor (var id in hotUpdate) {\n \t\t\t\tif (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {\n \t\t\t\t\toutdatedModules.push(toModuleId(id));\n \t\t\t\t}\n \t\t\t}\n \t\t\tdeferred.resolve(outdatedModules);\n \t\t}\n \t}\n\n \tfunction hotApply(options) {\n \t\tif (hotStatus !== \"ready\")\n \t\t\tthrow new Error(\"apply() is only allowed in ready status\");\n \t\toptions = options || {};\n \t\treturn hotApplyInternal(options);\n \t}\n\n \tfunction hotApplyInternal(options) {\n \t\thotApplyInvalidatedModules();\n\n \t\tvar cb;\n \t\tvar i;\n \t\tvar j;\n \t\tvar module;\n \t\tvar moduleId;\n\n \t\tfunction getAffectedStuff(updateModuleId) {\n \t\t\tvar outdatedModules = [updateModuleId];\n \t\t\tvar outdatedDependencies = {};\n\n \t\t\tvar queue = outdatedModules.map(function(id) {\n \t\t\t\treturn {\n \t\t\t\t\tchain: [id],\n \t\t\t\t\tid: id\n \t\t\t\t};\n \t\t\t});\n \t\t\twhile (queue.length > 0) {\n \t\t\t\tvar queueItem = queue.pop();\n \t\t\t\tvar moduleId = queueItem.id;\n \t\t\t\tvar chain = queueItem.chain;\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (\n \t\t\t\t\t!module ||\n \t\t\t\t\t(module.hot._selfAccepted && !module.hot._selfInvalidated)\n \t\t\t\t)\n \t\t\t\t\tcontinue;\n \t\t\t\tif (module.hot._selfDeclined) {\n \t\t\t\t\treturn {\n \t\t\t\t\t\ttype: \"self-declined\",\n \t\t\t\t\t\tchain: chain,\n \t\t\t\t\t\tmoduleId: moduleId\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\tif (module.hot._main) {\n \t\t\t\t\treturn {\n \t\t\t\t\t\ttype: \"unaccepted\",\n \t\t\t\t\t\tchain: chain,\n \t\t\t\t\t\tmoduleId: moduleId\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\tfor (var i = 0; i < module.parents.length; i++) {\n \t\t\t\t\tvar parentId = module.parents[i];\n \t\t\t\t\tvar parent = installedModules[parentId];\n \t\t\t\t\tif (!parent) continue;\n \t\t\t\t\tif (parent.hot._declinedDependencies[moduleId]) {\n \t\t\t\t\t\treturn {\n \t\t\t\t\t\t\ttype: \"declined\",\n \t\t\t\t\t\t\tchain: chain.concat([parentId]),\n \t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\tparentId: parentId\n \t\t\t\t\t\t};\n \t\t\t\t\t}\n \t\t\t\t\tif (outdatedModules.indexOf(parentId) !== -1) continue;\n \t\t\t\t\tif (parent.hot._acceptedDependencies[moduleId]) {\n \t\t\t\t\t\tif (!outdatedDependencies[parentId])\n \t\t\t\t\t\t\toutdatedDependencies[parentId] = [];\n \t\t\t\t\t\taddAllToSet(outdatedDependencies[parentId], [moduleId]);\n \t\t\t\t\t\tcontinue;\n \t\t\t\t\t}\n \t\t\t\t\tdelete outdatedDependencies[parentId];\n \t\t\t\t\toutdatedModules.push(parentId);\n \t\t\t\t\tqueue.push({\n \t\t\t\t\t\tchain: chain.concat([parentId]),\n \t\t\t\t\t\tid: parentId\n \t\t\t\t\t});\n \t\t\t\t}\n \t\t\t}\n\n \t\t\treturn {\n \t\t\t\ttype: \"accepted\",\n \t\t\t\tmoduleId: updateModuleId,\n \t\t\t\toutdatedModules: outdatedModules,\n \t\t\t\toutdatedDependencies: outdatedDependencies\n \t\t\t};\n \t\t}\n\n \t\tfunction addAllToSet(a, b) {\n \t\t\tfor (var i = 0; i < b.length; i++) {\n \t\t\t\tvar item = b[i];\n \t\t\t\tif (a.indexOf(item) === -1) a.push(item);\n \t\t\t}\n \t\t}\n\n \t\t// at begin all updates modules are outdated\n \t\t// the \"outdated\" status can propagate to parents if they don't accept the children\n \t\tvar outdatedDependencies = {};\n \t\tvar outdatedModules = [];\n \t\tvar appliedUpdate = {};\n\n \t\tvar warnUnexpectedRequire = function warnUnexpectedRequire() {\n \t\t\tconsole.warn(\n \t\t\t\t\"[HMR] unexpected require(\" + result.moduleId + \") to disposed module\"\n \t\t\t);\n \t\t};\n\n \t\tfor (var id in hotUpdate) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {\n \t\t\t\tmoduleId = toModuleId(id);\n \t\t\t\t/** @type {TODO} */\n \t\t\t\tvar result;\n \t\t\t\tif (hotUpdate[id]) {\n \t\t\t\t\tresult = getAffectedStuff(moduleId);\n \t\t\t\t} else {\n \t\t\t\t\tresult = {\n \t\t\t\t\t\ttype: \"disposed\",\n \t\t\t\t\t\tmoduleId: id\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\t/** @type {Error|false} */\n \t\t\t\tvar abortError = false;\n \t\t\t\tvar doApply = false;\n \t\t\t\tvar doDispose = false;\n \t\t\t\tvar chainInfo = \"\";\n \t\t\t\tif (result.chain) {\n \t\t\t\t\tchainInfo = \"\\nUpdate propagation: \" + result.chain.join(\" -> \");\n \t\t\t\t}\n \t\t\t\tswitch (result.type) {\n \t\t\t\t\tcase \"self-declined\":\n \t\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n \t\t\t\t\t\tif (!options.ignoreDeclined)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because of self decline: \" +\n \t\t\t\t\t\t\t\t\tresult.moduleId +\n \t\t\t\t\t\t\t\t\tchainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"declined\":\n \t\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n \t\t\t\t\t\tif (!options.ignoreDeclined)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because of declined dependency: \" +\n \t\t\t\t\t\t\t\t\tresult.moduleId +\n \t\t\t\t\t\t\t\t\t\" in \" +\n \t\t\t\t\t\t\t\t\tresult.parentId +\n \t\t\t\t\t\t\t\t\tchainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"unaccepted\":\n \t\t\t\t\t\tif (options.onUnaccepted) options.onUnaccepted(result);\n \t\t\t\t\t\tif (!options.ignoreUnaccepted)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because \" + moduleId + \" is not accepted\" + chainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"accepted\":\n \t\t\t\t\t\tif (options.onAccepted) options.onAccepted(result);\n \t\t\t\t\t\tdoApply = true;\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"disposed\":\n \t\t\t\t\t\tif (options.onDisposed) options.onDisposed(result);\n \t\t\t\t\t\tdoDispose = true;\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tdefault:\n \t\t\t\t\t\tthrow new Error(\"Unexception type \" + result.type);\n \t\t\t\t}\n \t\t\t\tif (abortError) {\n \t\t\t\t\thotSetStatus(\"abort\");\n \t\t\t\t\treturn Promise.reject(abortError);\n \t\t\t\t}\n \t\t\t\tif (doApply) {\n \t\t\t\t\tappliedUpdate[moduleId] = hotUpdate[moduleId];\n \t\t\t\t\taddAllToSet(outdatedModules, result.outdatedModules);\n \t\t\t\t\tfor (moduleId in result.outdatedDependencies) {\n \t\t\t\t\t\tif (\n \t\t\t\t\t\t\tObject.prototype.hasOwnProperty.call(\n \t\t\t\t\t\t\t\tresult.outdatedDependencies,\n \t\t\t\t\t\t\t\tmoduleId\n \t\t\t\t\t\t\t)\n \t\t\t\t\t\t) {\n \t\t\t\t\t\t\tif (!outdatedDependencies[moduleId])\n \t\t\t\t\t\t\t\toutdatedDependencies[moduleId] = [];\n \t\t\t\t\t\t\taddAllToSet(\n \t\t\t\t\t\t\t\toutdatedDependencies[moduleId],\n \t\t\t\t\t\t\t\tresult.outdatedDependencies[moduleId]\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t\tif (doDispose) {\n \t\t\t\t\taddAllToSet(outdatedModules, [result.moduleId]);\n \t\t\t\t\tappliedUpdate[moduleId] = warnUnexpectedRequire;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Store self accepted outdated modules to require them later by the module system\n \t\tvar outdatedSelfAcceptedModules = [];\n \t\tfor (i = 0; i < outdatedModules.length; i++) {\n \t\t\tmoduleId = outdatedModules[i];\n \t\t\tif (\n \t\t\t\tinstalledModules[moduleId] &&\n \t\t\t\tinstalledModules[moduleId].hot._selfAccepted &&\n \t\t\t\t// removed self-accepted modules should not be required\n \t\t\t\tappliedUpdate[moduleId] !== warnUnexpectedRequire &&\n \t\t\t\t// when called invalidate self-accepting is not possible\n \t\t\t\t!installedModules[moduleId].hot._selfInvalidated\n \t\t\t) {\n \t\t\t\toutdatedSelfAcceptedModules.push({\n \t\t\t\t\tmodule: moduleId,\n \t\t\t\t\tparents: installedModules[moduleId].parents.slice(),\n \t\t\t\t\terrorHandler: installedModules[moduleId].hot._selfAccepted\n \t\t\t\t});\n \t\t\t}\n \t\t}\n\n \t\t// Now in \"dispose\" phase\n \t\thotSetStatus(\"dispose\");\n \t\tObject.keys(hotAvailableFilesMap).forEach(function(chunkId) {\n \t\t\tif (hotAvailableFilesMap[chunkId] === false) {\n \t\t\t\thotDisposeChunk(chunkId);\n \t\t\t}\n \t\t});\n\n \t\tvar idx;\n \t\tvar queue = outdatedModules.slice();\n \t\twhile (queue.length > 0) {\n \t\t\tmoduleId = queue.pop();\n \t\t\tmodule = installedModules[moduleId];\n \t\t\tif (!module) continue;\n\n \t\t\tvar data = {};\n\n \t\t\t// Call dispose handlers\n \t\t\tvar disposeHandlers = module.hot._disposeHandlers;\n \t\t\tfor (j = 0; j < disposeHandlers.length; j++) {\n \t\t\t\tcb = disposeHandlers[j];\n \t\t\t\tcb(data);\n \t\t\t}\n \t\t\thotCurrentModuleData[moduleId] = data;\n\n \t\t\t// disable module (this disables requires from this module)\n \t\t\tmodule.hot.active = false;\n\n \t\t\t// remove module from cache\n \t\t\tdelete installedModules[moduleId];\n\n \t\t\t// when disposing there is no need to call dispose handler\n \t\t\tdelete outdatedDependencies[moduleId];\n\n \t\t\t// remove \"parents\" references from all children\n \t\t\tfor (j = 0; j < module.children.length; j++) {\n \t\t\t\tvar child = installedModules[module.children[j]];\n \t\t\t\tif (!child) continue;\n \t\t\t\tidx = child.parents.indexOf(moduleId);\n \t\t\t\tif (idx >= 0) {\n \t\t\t\t\tchild.parents.splice(idx, 1);\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// remove outdated dependency from module children\n \t\tvar dependency;\n \t\tvar moduleOutdatedDependencies;\n \t\tfor (moduleId in outdatedDependencies) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)\n \t\t\t) {\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (module) {\n \t\t\t\t\tmoduleOutdatedDependencies = outdatedDependencies[moduleId];\n \t\t\t\t\tfor (j = 0; j < moduleOutdatedDependencies.length; j++) {\n \t\t\t\t\t\tdependency = moduleOutdatedDependencies[j];\n \t\t\t\t\t\tidx = module.children.indexOf(dependency);\n \t\t\t\t\t\tif (idx >= 0) module.children.splice(idx, 1);\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Now in \"apply\" phase\n \t\thotSetStatus(\"apply\");\n\n \t\tif (hotUpdateNewHash !== undefined) {\n \t\t\thotCurrentHash = hotUpdateNewHash;\n \t\t\thotUpdateNewHash = undefined;\n \t\t}\n \t\thotUpdate = undefined;\n\n \t\t// insert new code\n \t\tfor (moduleId in appliedUpdate) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {\n \t\t\t\tmodules[moduleId] = appliedUpdate[moduleId];\n \t\t\t}\n \t\t}\n\n \t\t// call accept handlers\n \t\tvar error = null;\n \t\tfor (moduleId in outdatedDependencies) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)\n \t\t\t) {\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (module) {\n \t\t\t\t\tmoduleOutdatedDependencies = outdatedDependencies[moduleId];\n \t\t\t\t\tvar callbacks = [];\n \t\t\t\t\tfor (i = 0; i < moduleOutdatedDependencies.length; i++) {\n \t\t\t\t\t\tdependency = moduleOutdatedDependencies[i];\n \t\t\t\t\t\tcb = module.hot._acceptedDependencies[dependency];\n \t\t\t\t\t\tif (cb) {\n \t\t\t\t\t\t\tif (callbacks.indexOf(cb) !== -1) continue;\n \t\t\t\t\t\t\tcallbacks.push(cb);\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t\tfor (i = 0; i < callbacks.length; i++) {\n \t\t\t\t\t\tcb = callbacks[i];\n \t\t\t\t\t\ttry {\n \t\t\t\t\t\t\tcb(moduleOutdatedDependencies);\n \t\t\t\t\t\t} catch (err) {\n \t\t\t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\t\t\ttype: \"accept-errored\",\n \t\t\t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\t\t\tdependencyId: moduleOutdatedDependencies[i],\n \t\t\t\t\t\t\t\t\terror: err\n \t\t\t\t\t\t\t\t});\n \t\t\t\t\t\t\t}\n \t\t\t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t\t\t}\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Load self accepted modules\n \t\tfor (i = 0; i < outdatedSelfAcceptedModules.length; i++) {\n \t\t\tvar item = outdatedSelfAcceptedModules[i];\n \t\t\tmoduleId = item.module;\n \t\t\thotCurrentParents = item.parents;\n \t\t\thotCurrentChildModule = moduleId;\n \t\t\ttry {\n \t\t\t\t__webpack_require__(moduleId);\n \t\t\t} catch (err) {\n \t\t\t\tif (typeof item.errorHandler === \"function\") {\n \t\t\t\t\ttry {\n \t\t\t\t\t\titem.errorHandler(err);\n \t\t\t\t\t} catch (err2) {\n \t\t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\t\ttype: \"self-accept-error-handler-errored\",\n \t\t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\t\terror: err2,\n \t\t\t\t\t\t\t\toriginalError: err\n \t\t\t\t\t\t\t});\n \t\t\t\t\t\t}\n \t\t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\t\tif (!error) error = err2;\n \t\t\t\t\t\t}\n \t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t}\n \t\t\t\t} else {\n \t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\ttype: \"self-accept-errored\",\n \t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\terror: err\n \t\t\t\t\t\t});\n \t\t\t\t\t}\n \t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// handle errors in accept handlers and self accepted module load\n \t\tif (error) {\n \t\t\thotSetStatus(\"fail\");\n \t\t\treturn Promise.reject(error);\n \t\t}\n\n \t\tif (hotQueuedInvalidatedModules) {\n \t\t\treturn hotApplyInternal(options).then(function(list) {\n \t\t\t\toutdatedModules.forEach(function(moduleId) {\n \t\t\t\t\tif (list.indexOf(moduleId) < 0) list.push(moduleId);\n \t\t\t\t});\n \t\t\t\treturn list;\n \t\t\t});\n \t\t}\n\n \t\thotSetStatus(\"idle\");\n \t\treturn new Promise(function(resolve) {\n \t\t\tresolve(outdatedModules);\n \t\t});\n \t}\n\n \tfunction hotApplyInvalidatedModules() {\n \t\tif (hotQueuedInvalidatedModules) {\n \t\t\tif (!hotUpdate) hotUpdate = {};\n \t\t\thotQueuedInvalidatedModules.forEach(hotApplyInvalidatedModule);\n \t\t\thotQueuedInvalidatedModules = undefined;\n \t\t\treturn true;\n \t\t}\n \t}\n\n \tfunction hotApplyInvalidatedModule(moduleId) {\n \t\tif (!Object.prototype.hasOwnProperty.call(hotUpdate, moduleId))\n \t\t\thotUpdate[moduleId] = modules[moduleId];\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {},\n \t\t\thot: hotCreateModule(moduleId),\n \t\t\tparents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),\n \t\t\tchildren: []\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// __webpack_hash__\n \t__webpack_require__.h = function() { return hotCurrentHash; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([619,0,4]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","let staticContent = content;\n\nstaticContent.loading = \"https://member.hkjc.com/member/common/images/ms-loading.gif\";\n\nexport default staticContent\n\n","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport { Link, useHistory, useParams } from 'react-router-dom';\nimport allActions from '../../actions'\nimport axios from 'axios'\nimport CommonTools from '../../api/CommonTools'\nimport Config from '../../res/Config'\nimport Static from '../../res/Static'\nimport SetTools from '../../api/SetTools';\nimport Menu from '../../api/Menu';\nimport Permission from '../../api/Permission';\nimport WACode from '../../res/WACode'\n\nfunction AddToBundleCartBtn() {\n let { catId } = useParams();\n const cartUpdateCount = useSelector(state => state.shoppingCart.cartUpdateCount);\n const cartId = useSelector(state => state.shoppingCart.cartId);\n const activeProduct = useSelector(state => state.product.activeProduct);\n const role = useSelector(state => state.permission.role);\n const dispatch = useDispatch();\n const history = useHistory();\n\n const handleBundleAddToCart = async (e) => {\n if (Permission.eventPermission()) {\n if (await Menu.menuDetect()) {\n Menu.typeDetect(catId, \"addtocart\")\n let myPartID = activeProduct.id\n if (SetTools.addToCartValidate(myPartID) && activeProduct) {\n dispatch(allActions.loadingAction.changeLoading(true))\n await axios.post(\n Config.storeLink + \"V1/guest-carts/\" + cartId + \"/items\",\n SetTools.generateCartObject(cartId, activeProduct.sku, SetTools.fetchBundleOptions(myPartID))\n ).then(res => {\n dispatch(allActions.productAction.setSuccessStatus(true))\n dispatch(allActions.productAction.setFailStatus(false))\n dispatch(allActions.shoppingCartAction.setCartUpdateCount(cartUpdateCount + 1))\n dispatch(allActions.checkoutAction.pushEnableUpdates([]))\n SetTools.resetSetInputQtyField()\n CommonTools.waFireClick(WACode.overAddtocart)\n setTimeout(() => { dispatch(allActions.loadingAction.changeLoading(false)) }, 1000)\n //scrollToTop(600)\n }).catch(error => {\n dispatch(allActions.productAction.setSuccessStatus(false))\n dispatch(allActions.productAction.setFailStatus(true))\n dispatch(allActions.loadingAction.changeLoading(false))\n alert(Static.itemAddAlert);\n })\n } else {\n alert(Static.addToCartAlert)\n }\n }\n }\n }\n\n const handleBackToHome = (e) => {\n history.push(\"/\")\n }\n\n function scrollToTop(scrollDuration) {\n $(\"html, body\").animate({ scrollTop: 100 }, scrollDuration);\n }\n\n return
\n
\n \n
\n {role ?
\n \n

{Static.addPartySetToCartCaption}

\n
:
\n
}\n
\n}\n\nexport default React.memo(AddToBundleCartBtn);","import axios from 'axios'\nimport store from '../store/index'\nimport Static from '../res/Static'\nimport allActions from '../actions'\nimport Config from '../res/Config'\nimport \"@babel/polyfill\";\nimport CommonTools from './CommonTools'\n\nconst verifyCatId = async (catId, type, menu) => {\n let status = false\n if (catId) {\n if (type == CommonTools.extractSubType(catId)) {\n status = await categoryStatus(catId)\n if (!status || (typeof (menu) == \"number\" && menu != CommonTools.parentMenu(catId))) {\n eraseMenu()\n alert(Static.disable)\n window.location.href = Static.storePage\n }\n } else {\n eraseMenu()\n alert(Static.disable)\n window.location.href = Static.storePage\n }\n }\n return status\n}\n\nconst addMenuStatus = (menu, status) => {\n let process = []\n let flag = false\n Config.menu.map(v => {\n if (v.id == menu) {\n process = v\n process.subCat.map(p => {\n flag = false\n p.ids.map(subP => {\n subP.status = categoryObject(status, subP.id)\n subP.status.is_active ? flag = true : \"\"\n })\n flag ? p.status = true : p.status = false\n })\n }\n })\n return process\n}\n\nconst categoryAllStatus = async (cats) => {\n let status = [];\n await axios.get(\n Config.storeLink + 'V1/categories/', { timeout: 15000 })\n .then(res => {\n cats.map(v => {\n status.push(categoryObject(res.data, v))\n })\n return status;\n })\n .catch(error => {\n //history.push(\"/serverError\")\n })\n return status;\n}\n\nconst getChildren = async (cat) => {\n let result = [];\n await axios.get(\n Config.storeLink + 'V1/categories/', { timeout: 15000 })\n .then(res => {\n result = categoryChildren(res.data, cat)\n return result;\n })\n .catch(error => {\n //history.push(\"/serverError\")\n })\n return result;\n}\n\nconst categoryObject = (value, cat) => {\n if (value.id == cat) {\n return value\n } else if (value.children_data) {\n for (let i in value.children_data) {\n let result = categoryObject(value.children_data[i], cat)\n if (result) return result\n }\n }\n return null\n}\n\nconst categoryChildren = (value, cat) => {\n let data = categoryObject(value, cat)\n let result = []\n data.children_data ? result = data.children_data : \"\"\n return result\n}\n\nconst categoryStatus = async (cat) => {\n let status = false;\n await axios.get(\n Config.storeLink + 'V1/categories/' + cat, { timeout: 15000 })\n .then(res => {\n status = res.data.is_active;\n return status;\n })\n .catch(error => {\n //history.push(\"/serverError\")\n })\n return status;\n}\n\nconst menuDetect = async () => {\n let menuStatus = false;\n let activeCat = 0;\n let prevMenu = localStorage.getItem(Config.activeMenu)\n let allMenus = [];\n Config.menu.map(v => {\n allMenus.push(v[\"id\"])\n })\n let allStatus = await categoryAllStatus(allMenus);\n\n allStatus ? allStatus.forEach(v => {\n if (menuFlag) {\n activeCat++\n if ((!v.is_active && !menuStatus) || (activeCat == 2 && !menuStatus)) {\n menuStatus = menuChange(prevMenu, v[\"id\"])\n store.dispatch(allActions.globalAction.setMenu(v[\"id\"]))\n return menuStatus;\n }\n } else if (v.is_active && !menuStatus) {\n activeCat++\n menuStatus = menuChange(prevMenu, v[\"id\"])\n store.dispatch(allActions.globalAction.setMenu(v[\"id\"]))\n return menuStatus;\n }\n }) : \"\"\n activeCat > 0 ? \"\" : window.location.hash = \"#/Suspension\"\n return menuStatus\n}\n\nconst menuChange = (prev, current) => {\n if (prev == null || prev == \"\") {\n localStorage.setItem(Config.activeMenu, current)\n return true\n } else if (prev != current) {\n eraseMenu()\n window.alert(Static.menuAlert);\n statusRedirect()\n return false\n } else {\n return true\n }\n}\n\nconst landTypeDetect = (type) => {\n let status = false;\n let prev = localStorage.getItem(Config.activeType)\n if (prev == null || prev == \"\" || prev == type) {\n status = true\n } else {\n status = window.confirm(Static.typeAlert)\n if (status) {\n eraseMenu()\n }\n }\n return status\n}\n\nconst typeDetect = (cat, type) => {\n let prevType = localStorage.getItem(Config.activeType)\n Config.menu.map(async v => {\n v.subCat.map(subV => {\n subV.ids.map(subIds => {\n subIds.id == cat ? typeChange(prevType, subV.type, type) : \"\"\n })\n })\n })\n}\n\n//would assign product type(breakfast, lunch, dinner) when user click add to cart button at first time\nconst typeChange = (prev, current, type) => {\n if (prev == null || prev == \"\") {\n type == \"addtocart\" ? localStorage.setItem(Config.activeType, current) : \"\"\n } else if (prev != current) {\n if (window.confirm(Static.typeAlert)) {\n eraseMenu()\n }\n statusRedirect()\n }\n}\n\nconst statusRedirect = () => {\n window.location.href = Static.storePage\n return false;\n}\n\nconst eraseMenu = () => {\n localStorage.removeItem(Config.activeMenu)\n localStorage.removeItem(Config.activeType)\n localStorage.removeItem(Config.cartIdName)\n store.dispatch(allActions.shoppingCartAction.fetchCartId(localStorage.getItem(Config.cartIdName)))\n}\n\nexport default {\n verifyCatId,\n addMenuStatus,\n categoryStatus,\n getChildren,\n categoryAllStatus,\n menuDetect,\n landTypeDetect,\n typeDetect\n}","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport { Link, useHistory, useParams } from 'react-router-dom';\nimport allActions from '../../actions'\nimport axios from 'axios'\nimport CommonTools from '../../api/CommonTools'\nimport Config from '../../res/Config'\nimport Static from '../../res/Static'\nimport Menu from '../../api/Menu';\nimport SimpleTools from '../../api/SimpleTools';\nimport Permission from '../../api/Permission';\nimport WACode from '../../res/WACode'\n\nfunction AddToCartBtn() {\n\tlet { catId } = useParams();\n\tconst cartUpdateCount = useSelector(state => state.shoppingCart.cartUpdateCount);\n\tconst cartId = useSelector(state => state.shoppingCart.cartId);\n\tconst role = useSelector(state => state.permission.role);\n\tconst dispatch = useDispatch();\n\tconst history = useHistory();\n\n\tconst handleMultipleAddtocart = async (e) => {\n\t\tif (Permission.eventPermission()) {\n\t\t\tif (await Menu.menuDetect()) {\n\t\t\t\tMenu.typeDetect(catId, \"addtocart\")\n\t\t\t\tlet addToCartArray = SimpleTools.validateMinimunOrder();\n\t\t\t\tlet filterProduct = [];\n\t\t\t\tlet errorCount = 0;\n\t\t\t\tif (addToCartArray.length > 0) {\n\t\t\t\t\taddToCartArray.map(v => {\n\t\t\t\t\t\tfilterProduct.push(axios({\n\t\t\t\t\t\t\tmethod: \"post\",\n\t\t\t\t\t\t\turl: Config.storeLink + \"V1/guest-carts/\" + cartId + \"/items\",\n\t\t\t\t\t\t\tdata: SimpleTools.generateCartObject(cartId, v.sku, v.qty)\n\t\t\t\t\t\t}))\n\t\t\t\t\t})\n\t\t\t\t\tdispatch(allActions.loadingAction.changeLoading(true))\n\t\t\t\t\tawait axios\n\t\t\t\t\t\t.all(filterProduct)\n\t\t\t\t\t\t.then(axios.spread((...responses) => {\n\t\t\t\t\t\t\tresponses.forEach((res, index) => {\n\t\t\t\t\t\t\t\tif (!res.data) {\n\t\t\t\t\t\t\t\t\talert(Static.itemSku + \" \" + addToCartArray[index].sku + \" \" + Static.itemAddAlert);\n\t\t\t\t\t\t\t\t\terrorCount++\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tSimpleTools.resetInputQtyField(addToCartArray[index].sku)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tif (errorCount > 0) {\n\t\t\t\t\t\t\t\tdispatch(allActions.productAction.setSuccessStatus(false))\n\t\t\t\t\t\t\t\tdispatch(allActions.productAction.setFailStatus(true))\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tdispatch(allActions.productAction.setSuccessStatus(true))\n\t\t\t\t\t\t\t\tdispatch(allActions.productAction.setFailStatus(false))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdispatch(allActions.shoppingCartAction.setCartUpdateCount(cartUpdateCount + 1))\n\t\t\t\t\t\t\tdispatch(allActions.checkoutAction.pushEnableUpdates([]))\n\t\t\t\t\t\t\tCommonTools.waFireClick(WACode.overAddtocart)\n\t\t\t\t\t\t\tsetTimeout(() => { dispatch(allActions.loadingAction.changeLoading(false)) }, 1000)\n\t\t\t\t\t\t\t//scrollToTop(600)\n\t\t\t\t\t\t}))\n\t\t\t\t\t\t.catch(error => {\n\t\t\t\t\t\t\tconsole.log(error)\n\t\t\t\t\t\t\tdispatch(allActions.productAction.setSuccessStatus(false))\n\t\t\t\t\t\t\tdispatch(allActions.productAction.setFailStatus(true))\n\t\t\t\t\t\t\tdispatch(allActions.loadingAction.changeLoading(false))\n\t\t\t\t\t\t\talert(Static.itemAddAlert);\n\t\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\talert(Static.addToCartAlert);\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tconst handleBackToHome = (e) => {\n\t\thistory.push(\"/\")\n\t}\n\n\tfunction scrollToTop(scrollDuration) {\n\t\t$(\"html, body\").animate({ scrollTop: 100 }, scrollDuration);\n\t}\n\n\treturn
\n\t\t
\n\t\t\t\n\t\t
\n\t\t{role ?
\n\t\t\t\n\t\t
:
\n\t\t\t\t
}\n\t
\n}\n\nexport default React.memo(AddToCartBtn);","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport CommonTools from '../../api/CommonTools'\nimport allActions from '../../actions'\nimport Static from '../../res/Static'\nimport Config from '../../res/Config'\nimport WACode from '../../res/WACode'\nimport { useLocation } from 'react-router-dom';\nimport \"ie-string-startswith-polyfill\";\nimport Permission from '../../api/Permission';\n\nfunction CheckoutBtn() {\n const cartId = useSelector(state => state.shoppingCart.cartId);\n const maximumError = useSelector(state => state.checkout.maximumError);\n const soldoutError = useSelector(state => state.checkout.soldoutError);\n const dispatch = useDispatch();\n const location = useLocation();\n let code = \"\";\n\n const handleToForm = (e) => {\n if (maximumError.length < 1 && soldoutError.length < 1) {\n if (Permission.eventPermission()) {\n dispatch(allActions.loadingAction.changeLoading(true))\n code = (location.pathname.startsWith(\"/checkout\") ? WACode.btnCheckout : WACode.shoppingCheckout)\n CommonTools.waFireClick(code)\n setTimeout(() => { \n dispatch(allActions.loadingAction.changeLoading(false))\n window.location.href = Config.checkoutForm + cartId }, 500);\n }\n }\n }\n\n return (\n {Static.checkout}\n )\n}\n\nexport default React.memo(CheckoutBtn);","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport { Link, useHistory, useParams } from 'react-router-dom';\nimport \"classlist-polyfill\";\nimport allActions from '../actions'\nimport CommonTools from '../api/CommonTools'\nimport axios from 'axios'\nimport Config from '../res/Config'\nimport Static from '../res/Static'\nfunction SetItems() {\n let { catId, productId } = useParams();\n const dispatch = useDispatch();\n const history = useHistory();\n const setItems = useSelector(state => state.product.setItems);\n const activeProduct = useSelector(state => state.product.activeProduct);\n const role = useSelector(state => state.permission.role);\n\n function getData() {\n return dispatch => {\n let urlParam = CommonTools.generateParam(catId + \"\");\n axios.get(\n Config.productDomain + urlParam, { timeout: 15000 })\n .then(res => {\n dispatch(allActions.productAction.fetchSetItems(res.data))\n !productId ?\n (res.data.items[0] ? dispatch(allActions.productAction.fetchProductSku(encodeURIComponent(res.data.items[0][\"sku\"]))) : \"\") :\n dispatch(allActions.productAction.fetchProductSku(productId))\n })\n .catch(error => {\n history.push(\"/serverError\")\n })\n }\n }\n\n useEffect(() => {\n dispatch(getData());\n }, [catId, productId]);\n\n const handleClick = (e) => {\n let sku = e.currentTarget.getAttribute(\"data-value\")\n if (!e.currentTarget.classList.contains(\"selected\")) {\n $(\".selectIndicator span.selectedItem\").text(0)\n $(\".catItemsRow .qty-wrapper input\").val(0)\n dispatch(allActions.loadingAction.changeLoading(true))\n dispatch(allActions.productAction.fetchProductSku(sku))\n }\n }\n\n return (\n
\n
\n {setItems.items ? setItems.items.map(v => {\n return (\n
\n
\n
{v.name}
\n
{\"$\" + CommonTools.priceFormat(v.price)}
\n
\n
\n )\n }) : \"\"}\n
\n {/*
\n \n
*/}\n
\n
\n
\n {activeProduct.name}\n
\n
\n \n
\n
\n
\n
\n\n )\n}\n\nexport default React.memo(SetItems);\n","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport { Link, useHistory, useParams } from 'react-router-dom';\nimport allActions from '../actions'\nimport CommonTools from '../api/CommonTools'\nimport SetTools from '../api/SetTools'\nimport axios from 'axios'\nimport Config from '../res/Config'\nimport Static from '../res/Static'\nfunction SetList() {\n const dispatch = useDispatch();\n const history = useHistory();\n const productSku = useSelector(state => state.product.productSku);\n const activeProduct = useSelector(state => state.product.activeProduct);\n const detailProduct = useSelector(state => state.product.detailProduct);\n const consolidateProduct = useSelector(state => state.product.consolidateProduct);\n const role = useSelector(state => state.permission.role);\n\n function getData() {\n return async dispatch => {\n let product = {}\n let tempDetailProduct = {}\n productSku != \"\" ? await axios.get(\n Config.productDomain + productSku, { timeout: 15000 })\n .then(res => {\n product = res.data\n })\n .catch(error => {\n history.push(\"/serverError\")\n }) : \"\"\n let sku = SetTools.bundleRelatedSku(product)\n await axios\n .all(sku)\n .then(axios.spread((...responses) => {\n responses.forEach(res => {\n tempDetailProduct[res.data.sku] = res.data\n })\n dispatch(allActions.productAction.setActiveProduct(product))\n dispatch(allActions.productAction.fetchdetailProduct(tempDetailProduct))\n dispatch(allActions.productAction.genConsolidateProduct(SetTools.bundleOptions(product)))\n CommonTools.setShoppingCartTop()\n }))\n .catch(error => {\n console.log(error)\n history.push(\"/serverError\")\n })\n }\n }\n\n useEffect(() => {\n dispatch(getData());\n return () => {\n dispatch(allActions.productAction.genConsolidateProduct({}))\n }\n }, [productSku]);\n\n useEffect(() => {\n return () => {\n dispatch(allActions.productAction.genConsolidateProduct({}))\n }\n }, [])\n\n const imageDetect = (product) => {\n let flag = false;\n let imageSrc = (product && !CommonTools.getMediaAttribute(product) ? CommonTools.getCustomAttribute(product, \"image\") : \"\")\n imageSrc && imageSrc != \"\" ? flag = true : \"\"\n return flag\n }\n\n return (\n
\n {\n //activeProduct ? SetTools.bundleOptions(activeProduct).map((value, index) => {\n consolidateProduct ? Object.keys(consolidateProduct).map((value, index) => {\n return
\n
\n
\n

{SetTools.getTitle(value)}

\n {role ?
\n {SetTools.getPartyCatSelectTitle(value)}\n \n (0/{SetTools.getMax(value)})\n \n
: \"\"}\n
\n
\n
\n {consolidateProduct[value] ? consolidateProduct[value].map(cValue => {\n return cValue[\"product_links\"] ? cValue[\"product_links\"].map((subValue, subIndex) => {\n return detailProduct[subValue.sku] && subIndex == 0 ?
\n
\n \n {imageDetect(detailProduct[subValue.sku]) ?\n \n :\n }\n \n {detailProduct[subValue.sku][\"name\"]}\n
\n
\n {role ? (<>
\n \n
\n
\n \n
\n
\n \n
) : \"\"}\n
\n
: \"\"\n }) : \"\"\n }) : \"\"}\n
\n
\n }) : \"\"\n }\n\n
\n )\n}\n\nexport default React.memo(SetList);","import Static from '../res/Static'\nimport axios from 'axios'\nimport Config from '../res/Config'\nimport CommonTools from './CommonTools';\nimport 'core-js/features/string';\n\nconst getMax = (title) => {\n let items = title.split(\"_\")\n return items[items.length - 1]\n}\n\nconst getTitle = (title) => {\n let temp = \"\"\n let items = title.split(\"_\")\n return temp = items[0].replaceAll(\".\", \" \")\n}\n\nfunction getPartyCatSelectTitle(mCatTitle) {\n let catTilePick\n let myMapEN = ['0', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten'];\n let myMapCH = ['0', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十'];\n if (mCatTitle) {\n catTilePick = parseInt(mCatTitle.split(\"_\")[mCatTitle.split(\"_\").length - 1])\n if (lang == \"en\") {\n catTilePick = \" \" + myMapEN[catTilePick]\n } else {\n catTilePick = myMapCH[catTilePick]\n }\n catTilePick = Static.partychoose + catTilePick + Static.partytype\n }\n return catTilePick;\n}\n\nfunction updatePartyFoodIndicator(mycat) {\n let mycatInxDiv = document.querySelector('#indx-' + mycat)\n let mCnt = 0\n let catInputs = document.querySelectorAll('#' + mycat + ' .bundleItemQty')\n if (catInputs) {\n catInputs = [].slice.call(catInputs);\n catInputs.forEach(function (userItem) {\n mCnt = parseInt(mCnt) + parseInt(userItem.value);\n });\n }\n let mycatInx = document.querySelector('#indx-' + mycat + ' .selectedItem')\n mycatInx.innerHTML = mCnt\n}\n\nconst handleMaxLengthCheck = (e) => {\n\n let inputedVal = e.currentTarget.value\n if (inputedVal && parseInt(inputedVal) > 0) {\n let datacat = e.currentTarget.getAttribute('data-cat')\n if (validatePartyFoodQty(datacat, 0)) {\n updatePartyFoodIndicator(datacat)\n } else {\n setTimeout(function () { alert(Static.addToCartAlert) }, 10);\n e.currentTarget.value = 0\n updatePartyFoodIndicator(datacat)\n }\n }\n\n if (e.currentTarget.value.length > e.currentTarget.maxLength) {\n e.currentTarget.value = e.currentTarget.value.slice(0, e.currentTarget.maxLength)\n }\n}\n\nconst popupBundleProductImg = (e) => {\n let title = e.currentTarget.getAttribute('data-title');\n let src = e.currentTarget.getAttribute('data-src');\n let imgSrc = Config.mediaDomain + \"catalog/product\" + CommonTools.imgPathDetect(src) + src\n popupIframeImage(imgSrc, title);\n}\n\nconst handleAddQty = (e) => {\n let mId = e.currentTarget.getAttribute('data-id');\n let mMax = document.querySelector('#' + mId).getAttribute('max');\n let mMin = document.querySelector('#' + mId).getAttribute('min');\n let mVal = parseInt(document.querySelector('#' + mId).value);\n if (mVal >= 0 && mVal < mMax && mVal >= mMin) {\n let datacat = document.querySelector('#' + mId).getAttribute('data-cat')\n if (mVal < Config.partySetItemMax) {\n if (validatePartyFoodQty(datacat, 1)) {\n document.querySelector('#' + mId).value = mVal + 1;\n updatePartyFoodIndicator(datacat)\n } else {\n alert(Static.addToCartAlert)\n }\n } else {\n alert(Static.addToCartAlert)\n }\n }\n $('document').find('#' + mId).trigger('change');\n}\n\nconst handleMinusQty = (e) => {\n let mId = e.currentTarget.getAttribute('data-id');\n let mMax = document.querySelector('#' + mId).getAttribute('max');\n let mMin = document.querySelector('#' + mId).getAttribute('min');\n let mVal = parseInt(document.querySelector('#' + mId).value);\n if (mVal > 0 && mVal <= mMax && mVal > mMin) {\n document.querySelector('#' + mId).value = mVal - 1;\n let datacat = document.querySelector('#' + mId).getAttribute('data-cat')\n updatePartyFoodIndicator(datacat)\n }\n $('document').find('#' + mId).trigger('change');\n}\n\nconst validatePartyFoodQty = (mycat, mQty) => {\n let mReturn = true\n let mycatDiv = document.querySelector('#' + mycat)\n let maxQty = mycatDiv.getAttribute('data-max')\n let mCnt = mQty\n if (mQty > maxQty) {\n mReturn = false\n } else {\n let catInputs = document.querySelectorAll('#' + mycat + ' .bundleItemQty')\n if (catInputs) {\n catInputs = [].slice.call(catInputs);\n catInputs.forEach(function (userItem) {\n if (userItem.value && parseInt(userItem.value) > 0) {\n mCnt = parseInt(mCnt) + parseInt(userItem.value);\n }\n });\n if (mCnt > maxQty) {\n mReturn = false\n }\n }\n }\n return mReturn\n}\n\nconst addToCartValidate = (myPartID) => {\n let mReturn = true\n let selectioncat = document.querySelectorAll('#myset-' + myPartID + ' .selection-cat')\n selectioncat = [].slice.call(selectioncat);\n selectioncat.forEach(function (mItem) {\n if (mReturn) {\n let mCnt = 0\n let requiredQty = mItem.getAttribute('data-max')\n let catInputs = mItem.querySelectorAll('input.bundleItemQty')\n catInputs = [].slice.call(catInputs);\n catInputs.forEach(function (userItem) {\n mCnt += parseInt(userItem.value)\n })\n if (mCnt == requiredQty) {\n mReturn = true\n } else {\n mReturn = false\n }\n }\n });\n return mReturn\n}\n\nconst fetchBundleOptions = (myPartID) => {\n let options = []\n let selectioncat = document.querySelectorAll('#myset-' + myPartID + ' .selection-cat')\n selectioncat = [].slice.call(selectioncat);\n selectioncat.forEach(function (mItem) {\n let catInputs = mItem.querySelectorAll('input.bundleItemQty')\n catInputs.forEach(function (userItem) {\n if (userItem.value > 0) {\n options.push({\n \"option_id\": userItem.getAttribute(\"data-optionid\"),\n \"option_qty\": userItem.value,\n \"option_selections\": [userItem.getAttribute(\"data-productid\")]\n })\n }\n })\n })\n\n return options;\n}\n\nconst generateCartObject = (cartId, sku, bundle_options) => {\n return {\n cart_item: {\n quote_id: cartId,\n sku: sku,\n qty: 1,\n \"product_option\": {\n \"extension_attributes\": {\n \"bundle_options\": bundle_options\n }\n }\n }\n }\n}\n\nconst bundleOptions = (value) => {\n let bundleOptions = []\n let options = {}\n value.extension_attributes ? bundleOptions = value.extension_attributes.bundle_product_options : \"\"\n bundleOptions.sort((a, b) => {\n return a.position - b.position;\n });\n bundleOptions.map(v => {\n if (options[v.title]) {\n options[v.title].push(v)\n } else {\n options[v.title] = []\n options[v.title][0] = v\n }\n })\n return options\n}\n\nconst bundleRelatedSku = (value) => {\n let sku = []\n let options = bundleOptions(value)\n Object.keys(options).map((v, k) => {\n options[v] ? options[v].map(option => {\n option.product_links ? option.product_links.map((subOption, subIndex) => {\n if (subIndex == 0) {\n subOption.sku ? sku.push(axios({\n method: \"get\",\n timeout: 15000,\n url: Config.productDomain + subOption.sku\n })) : \"\"\n }\n }) : \"\"\n }) : \"\"\n })\n return sku\n}\n\nconst fetchCartBundleOptions = (original, entire) => {\n let result = [];\n let tempOptionId = \"\"\n let tempItem = \"\"\n if(original.product_type == \"bundle\"){\n let originalOptions = original.product_option\n let entireOptions = entire.extension_attributes.bundle_product_options\n originalOptions.extension_attributes.bundle_options.map(v => {\n tempOptionId = v.option_id\n tempItem = (v.option_selections ? v.option_selections[0] : \"\")\n entireOptions.map(subV => {\n if(tempOptionId == subV.option_id){\n subV.product_links.map(item => {\n item.id == tempItem ? result.push({\n optionId: tempOptionId,\n itemId: tempItem,\n sku: item.sku,\n qty: v.option_qty,\n title: subV.title\n }) : \"\"\n })\n }\n })\n })\n }\n return result\n}\n\nconst itemRelatedSku = (value) => {\n let sku = []\n let temp = []\n let url = \"\";\n\n value.map(v => {\n if(Config.environment == \"dv-member\"){\n url = Config.productDomainDV + v.sku + \".json\"\n }else{\n url = Config.productDomain + v.sku;\n }\n if(!temp.includes(v.sku)){\n sku.push(axios({\n method: \"get\",\n timeout: 40000,\n url: url\n }))\n temp.push(v.sku)\n }\n })\n return sku\n}\n\nconst resetSetInputQtyField = () => {\n $('.bundleItemQty').each(function(){\n $(this).val(0);\n });\n $('.selectedItem').each(function(){\n $(this).html(0);\n });\n $('.confirmPartySet').each(function(){\n $(this).attr('data-confirm','no');\n });\n}\n\nconst generateCheckoutOptions = (bundleOptions) => {\n let mText = \"\"\n for (let key in bundleOptions) {\n if (bundleOptions.hasOwnProperty(key)) {\n let value = bundleOptions[key];\n mText += '
  • ' + getTitle(key) + '
  • '\n value.map(v => {\n mText += '
  • ' + v.qty + ' x ' + v.data.name + '
  • '\n })\n }\n }\n return mText;\n}\n\nconst generateSetObject = (cartId, itemId, qty) => {\n return {\n cart_item: {\n quote_id: cartId,\n item_id: itemId,\n qty: qty\n }\n }\n}\n\nexport default {\n getMax,\n getTitle,\n getPartyCatSelectTitle,\n updatePartyFoodIndicator,\n handleMaxLengthCheck,\n popupBundleProductImg,\n handleAddQty,\n handleMinusQty,\n generateCartObject,\n bundleOptions,\n bundleRelatedSku,\n addToCartValidate,\n fetchBundleOptions,\n fetchCartBundleOptions,\n itemRelatedSku,\n resetSetInputQtyField,\n generateCheckoutOptions,\n generateSetObject\n}","const validateMinimunOrder = (sku) => {\n return $(\".ptable-productDetail .qty-wrapper input[data-sku='\" + sku + \"']\").val()\n}\n\nconst resetInputQtyField = () => {\n $(\".ptable-productDetail .qty-wrapper input\").val(0)\n}\n\nexport default {\n validateMinimunOrder,\n resetInputQtyField\n}","const setMenu = (data) => {\n return {\n type: \"SET_MENU\",\n menu: data\n }\n}\n\nconst setType = (data) => {\n return {\n type: \"SET_TYPE\",\n type: data\n }\n}\n\nconst setActiveTab = (data) => {\n return {\n type: \"SET_ACTIVETAB\",\n activeTab: data\n }\n}\n\nconst setEntireMenuStatus = (data) => {\n return {\n type: \"SET_ENTIREMENUSTATUS\",\n entireMenuStatus: data\n }\n}\n\nexport default {\n setMenu,\n setType,\n setActiveTab,\n setEntireMenuStatus\n}","import loadingAction from './loadingAction'\nimport productAction from './productAction'\nimport shoppingCartAction from './shoppingCartAction'\nimport checkoutAction from './checkoutAction'\nimport categoryAction from './categoryAction'\nimport globalAction from './globalAction'\nimport permissionAction from './permissionAction'\n\nconst allActions = {\n loadingAction,\n productAction,\n shoppingCartAction,\n checkoutAction,\n categoryAction,\n globalAction,\n permissionAction\n}\n\nexport default allActions","const changeLoading = (data) => {\n return {\n type: \"CHANGE_LOADINGSTATUS\",\n loadingStatus: data\n }\n}\n\nconst changeCartLoading = (data) => {\n return {\n type: \"CHANGE_CARTLOADINGSTATUS\",\n cartloadingStatus: data\n }\n}\n\nexport default {\n changeLoading,\n changeCartLoading\n}","const setSuccessStatus = (data) => {\n return {\n type: \"SET_SUCCESSSTATUS\",\n successStatus: data\n }\n}\n\nconst setFailStatus = (data) => {\n return {\n type: \"SET_FAILSTATUS\",\n failStatus: data\n }\n}\n\nconst fetchSetItems = (data) => {\n return {\n type: \"FETCH_SETITEMS\",\n setItems: data\n }\n}\n\nconst fetchProductSku = (data) => {\n return {\n type: \"FETCH_PRODUCTSKU\",\n productSku: data\n }\n}\n\nconst setActiveProduct = (data) => {\n return {\n type: \"SET_ACTIVEPRODUCT\",\n activeProduct: data\n }\n}\n\nconst fetchdetailProduct = (data) => {\n return {\n type: \"FETCH_DETAILPRODUCT\",\n detailProduct: data\n }\n}\n\nconst genConsolidateProduct = (data) => {\n return {\n type: \"GEN_CONSOLIDATEPRODUCT\",\n consolidateProduct: data\n }\n}\n\nexport default {\n setSuccessStatus,\n setFailStatus,\n fetchSetItems,\n fetchProductSku,\n setActiveProduct,\n fetchdetailProduct,\n genConsolidateProduct\n}","\nconst fetchCartId = (data) => {\n return {\n type: \"FETCH_CARTID\",\n cartId: data\n }\n}\nconst setCartUpdateCount = (data) => {\n return {\n type: \"SET_CARTUPDATECOUNT\",\n cartUpdateCount: data\n }\n}\nconst fetchOriginalCart = (data) => {\n return {\n type: \"FETCH_ORIGINALCART\",\n originalCart: data\n }\n}\nconst fetchDiscountCart = (data) => {\n return {\n type: \"FETCH_DISCOUNTCART\",\n discountCart: data\n }\n}\nconst setShoppingCart = (data) => {\n return {\n type: \"SET_SHOPPINGCART\",\n shoppingCart: data\n }\n}\nconst switchCartDetailStatus = (data) => {\n return {\n type: \"SWITCH_CARTDETAILSTATUS\",\n cartDetailStatus: data\n }\n}\nconst getShoppingCartLength = (data) => {\n return {\n type: \"GET_SHOPPINGCARTLENGTH\",\n shoppingCartLength: data\n }\n}\nconst getCatDatas = (data) => {\n return {\n type: \"GET_CATDATAS\",\n catDatas: data\n }\n}\nexport default {\n fetchCartId,\n setCartUpdateCount,\n fetchOriginalCart,\n fetchDiscountCart,\n setShoppingCart,\n switchCartDetailStatus,\n getShoppingCartLength,\n getCatDatas\n}","const pushEnableUpdates = (data) => {\n return {\n type: \"PUSH_ENABLEUPDATES\",\n enableUpdates: data\n }\n}\n\nconst pushMaximumError = (data) => {\n return {\n type: \"PUSH_MAXIMUMERROR\",\n maximumError: data\n }\n}\n\nconst pushSoldOutError = (data) => {\n return {\n type: \"PUSH_SOLDOUTERROR\",\n soldoutError: data\n }\n}\n\nconst switchCheckoutStatus = (data) => {\n return {\n type: \"SWITCH_CHECKOUTSTATUS\",\n checkoutStatus: data\n }\n}\n\n\nexport default {\n pushEnableUpdates,\n pushMaximumError,\n pushSoldOutError,\n switchCheckoutStatus\n}","const fetchCategory = (data) => {\n return {\n type: \"FETCH_CURRENTCATEGORY\",\n currentCategory: data\n }\n}\n\nexport default {\n fetchCategory\n}","const setRole = (data) => {\n return {\n type: \"SET_ROLE\",\n role: data\n }\n}\n\nexport default {\n setRole\n}","let WACode = {\n startShopping: \"btn_takeaway_StartOrder_Float\", //start shopping cart\n startShoppingDetail: \"btn_takeaway_StartOrder\", //start shopping btn\n overAddtocart: \"btn_takeaway_AddtoCart\", // add to cart btn\n shoppingViewCart: \"btn_takeaway_ViewCart_MO\", //view cart btn\n shoppingCheckout: \"btn_takeaway_Checkout_MO\", //view cart check out\n btnUpdateCart: \"btn_takeaway_UpCart\", //Update Cart btn\n btnCheckout: \"btn_takeaway_Checkout\", //check out btn\n setTab: \"tab_takeaway_Set\",\n simpleTab: \"tab_takeaway_AlaCarte\",\n specialTab: \"tab_takeaway_Speciality\",\n singleTab: \"tab_takeaway_AlaCarte\",\n setLand: \"btn_takeaway_Set\",\n simpleLand: \"btn_takeaway_AlaCarte\",\n singleLand: \"btn_takeaway_AlaCarte\",\n specialLand: \"btn_takeaway_Speciality\",\n westTab:\"btn_takeaway_West\",\n chiTab:\"btn_takeaway_Chi\",\n partyTab:\"btn_takeaway_Party\"\n};\n\nexport default WACode","import store from '../store/index'\nimport allActions from '../actions'\nimport CommonTools from './CommonTools';\nimport Config from '../res/Config'\nimport Static from '../res/Static'\nimport Cookies from 'js-cookie'\n\nconst landingPermission = () => {\n let prevRole = store.getState().permission.role\n let currentRole = detectPermission()\n store.dispatch(allActions.permissionAction.setRole(currentRole))\n if (landingChange(prevRole, currentRole)) {\n return true;\n } else {\n return false;\n }\n}\n\nconst eventPermission = (refer) => {\n let prevRole = store.getState().permission.role\n let currentRole = detectPermission()\n store.dispatch(allActions.permissionAction.setRole(currentRole))\n statusChange(prevRole, currentRole, \"event\", refer)\n return currentRole\n}\n\nconst detectPermission = () => {\n if (Cookies.get(Config.token) != null && Cookies.get(Config.token)) {\n var d = new Date();\n d.setMinutes(d.getMinutes() + 30);\n Cookies.set(Config.token, Cookies.get(Config.token), { expires: d });\n Cookies.set(Config.memberId, Cookies.get(Config.memberId), { expires: d });\n Cookies.set(Config.memberFId, Cookies.get(Config.memberFId), { expires: d });\n return true;\n } else {\n localStorage.removeItem(Config.activeMenu)\n localStorage.removeItem(Config.activeType)\n return false;\n }\n}\n\nconst clearPermission = () => {\n Cookies.remove(Config.token)\n Cookies.remove(Config.memberId)\n Cookies.remove(Config.memberFId)\n localStorage.removeItem(Config.activeType)\n}\n\nconst OTP = (code, refer) => {\n if (code != \"none\") {\n CommonTools.waFireClick(code)\n }\n let tempRefer = refer ? refer : window.location.hash.substring(1);\n //console.log(tempRefer)\n setTimeout(() => { window.location.href = Config.otpUrl + \"?ref=\" + tempRefer + \"&store=\" + Config.storeName }, 500);\n\n}\n\nconst specialOTP = (refer) => {\n let tempRefer = refer ? refer : window.location.hash.substring(1);\n //console.log(tempRefer)\n window.location.href = Config.otpUrl + \"?ref=\" + tempRefer + \"&store=\" + Config.storeName\n return false\n}\n\nconst statusChange = (prevRole, currentRole, type, refer) => {\n if (prevRole == true && currentRole == false) {\n window.alert(Static.expiration);\n specialOTP(refer)\n } else if (prevRole == false && currentRole == false && type == \"event\") {\n specialOTP(refer)\n }\n}\n\nconst landingChange = (prevRole, currentRole) => {\n if (prevRole == true && currentRole == false) {\n window.alert(Static.expiration);\n specialOTP()\n return false\n } else {\n return true\n }\n}\n\nexport default {\n landingPermission,\n eventPermission,\n detectPermission,\n clearPermission,\n OTP,\n specialOTP,\n statusChange,\n landingChange\n}","const defaultState = {\n loadingStatus: false,\n cartloadingStatus: false\n}\n\nconst loading = (state = defaultState, action) => {\n switch (action.type) {\n case \"CHANGE_LOADINGSTATUS\":\n return {\n ...state,\n loadingStatus: action.loadingStatus\n }\n case \"CHANGE_CARTLOADINGSTATUS\":\n return {\n ...state,\n cartloadingStatus: action.cartloadingStatus\n }\n default:\n return state\n }\n}\n\nexport default loading","const defaultState = {\n successStatus: false,\n failStatus: false,\n setItems: [],\n productSku: \"\",\n activeProduct: {},\n detailProduct:{},\n consolidateProduct:{}\n}\n\nconst product = (state = defaultState, action) => {\n switch (action.type) {\n case \"SET_SUCCESSSTATUS\":\n return {\n ...state,\n successStatus: action.successStatus\n }\n case \"SET_FAILSTATUS\":\n return {\n ...state,\n failStatus: action.failStatus\n }\n case \"FETCH_SETITEMS\":\n return {\n ...state,\n setItems: action.setItems\n }\n case \"FETCH_PRODUCTSKU\":\n return {\n ...state,\n productSku: action.productSku\n }\n case \"SET_ACTIVEPRODUCT\":\n return {\n ...state,\n activeProduct: action.activeProduct\n }\n case \"FETCH_DETAILPRODUCT\":\n return {\n ...state,\n detailProduct: action.detailProduct\n }\n case \"GEN_CONSOLIDATEPRODUCT\":\n return {\n ...state,\n consolidateProduct: action.consolidateProduct\n }\n default:\n return state\n }\n}\nexport default product","import Config from '../res/Config'\nconst defaultState = {\n cartId: localStorage.getItem(Config.cartIdName) == null ? \"\" : localStorage.getItem(Config.cartIdName),\n cartUpdateCount: 0,\n cartDetailStatus: false,\n originalCart: [],\n shoppingCart: {\n hamperCount: 0,\n hamperAmount: 0,\n hamperDiscount: \"\",\n hamperPayable: 0,\n festiveCount: 0,\n festiveAmount: 0,\n festiveDiscount: \"\",\n festivePayable: 0,\n totalCount: 0,\n totalAmount: 0\n },\n shoppingCartLength: 0,\n catDatas: []\n}\n\nconst shoppingCart = (state = defaultState, action) => {\n switch (action.type) {\n case \"FETCH_CARTID\":\n return {\n ...state,\n cartId: action.cartId\n }\n case \"SET_CARTUPDATECOUNT\":\n return {\n ...state,\n cartUpdateCount: action.cartUpdateCount\n }\n case \"SET_SHOPPINGCART\":\n return {\n ...state,\n shoppingCart: action.shoppingCart\n }\n case \"FETCH_ORIGINALCART\":\n return {\n ...state,\n originalCart: action.originalCart\n }\n case \"FETCH_DISCOUNTCART\":\n return {\n ...state,\n discountCart: action.discountCart\n }\n case \"SWITCH_CARTDETAILSTATUS\":\n return {\n ...state,\n cartDetailStatus: action.cartDetailStatus\n }\n case \"GET_SHOPPINGCARTLENGTH\":\n return {\n ...state,\n shoppingCartLength: action.shoppingCartLength\n }\n case \"GET_CATDATAS\":\n return {\n ...state,\n catDatas: action.catDatas\n }\n default:\n return state\n }\n}\nexport default shoppingCart","const defaultState = {\n enableUpdates: [],\n maximumError: [],\n soldoutError: [],\n checkoutStatus: 0\n}\n\nconst checkoutAction = (state = defaultState, action) => {\n switch (action.type) {\n case \"PUSH_ENABLEUPDATES\":\n return {\n ...state,\n enableUpdates: action.enableUpdates\n }\n case \"PUSH_MAXIMUMERROR\":\n return {\n ...state,\n maximumError: action.maximumError\n }\n case \"PUSH_SOLDOUTERROR\":\n return {\n ...state,\n soldoutError: action.soldoutError\n }\n case \"SWITCH_CHECKOUTSTATUS\":\n return {\n ...state,\n checkoutStatus: action.checkoutStatus\n }\n default:\n return state\n }\n}\n\nexport default checkoutAction","const defaultState = {\n currentCategory: {}\n}\n\nconst category = (state = defaultState, action) => {\n switch (action.type) {\n case \"FETCH_CURRENTCATEGORY\":\n return {\n ...state,\n currentCategory: action.currentCategory\n }\n default:\n return state\n }\n}\nexport default category","const defaultState = {\n menu: {},\n type: \"\",\n activeTab: [],\n entireMenuStatus: {}\n}\n\nconst global = (state = defaultState, action) => {\n switch (action.type) {\n case \"SET_MENU\":\n return {\n ...state,\n menu: action.menu\n }\n case \"SET_TYPE\":\n return {\n ...state,\n type: action.type\n }\n case \"SET_ACTIVETAB\":\n return {\n ...state,\n activeTab: action.activeTab\n }\n case \"SET_ENTIREMENUSTATUS\":\n return {\n ...state,\n entireMenuStatus: action.entireMenuStatus\n }\n default:\n return state\n }\n}\nexport default global","const defaultState = {\n role: false,\n}\n\nconst permission = (state = defaultState, action) => {\n switch (action.type) {\n case \"SET_ROLE\":\n return {\n ...state,\n role: action.role\n }\n default:\n return state\n }\n}\n\nexport default permission","\nimport {combineReducers} from 'redux'\nimport loading from './loading'\nimport product from './product'\nimport shoppingCart from './shoppingCart'\nimport checkout from './checkout'\nimport category from './category'\nimport global from './global'\nimport permission from './permission'\n\nconst rootReducer = combineReducers({\n loading,\n product,\n shoppingCart,\n checkout,\n category,\n global,\n permission\n})\n\nexport default rootReducer","import { createStore, compose, applyMiddleware } from 'redux'\nimport thunk from 'redux-thunk'\nimport promise from 'redux-promise'\nimport reducer from '../reducers'\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\nconst store = createStore (reducer, composeEnhancers (\n applyMiddleware (thunk, promise)\n));\n\nexport default store;","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport allActions from '../actions'\nimport axios from 'axios'\nimport ShoppingCart from './ShoppingCart'\nimport CommonTools from '../api/CommonTools'\nimport CatDescription from './CatDescription'\nimport Config from '../res/Config'\nimport Static from '../res/Static'\nimport { Link, useHistory } from 'react-router-dom';\nimport {\n useParams\n} from \"react-router-dom\"\nimport ShoppingStatus from './ShoppingStatus';\nimport Tab from './Tab';\nimport SetItems from './SetItems'\nimport SetList from './SetList'\nimport Menu from '../api/Menu';\nimport Disable from './widgets/Disable';\nimport AddToBundleCartBtn from './widgets/AddToBundleCartBtn';\nimport HeaderBanner from './HeaderBanner'\nimport store from '../store/index'\n\nfunction Set() {\n let { catId } = useParams();\n const dispatch = useDispatch();\n const history = useHistory();\n const menu = useSelector(state => state.global.menu);\n const consolidateProduct = useSelector(state => state.product.consolidateProduct);\n const currentCategory = useSelector(state => state.category.currentCategory);\n\n function getData() {\n return async dispatch => {\n if (menu && menu != \"\") {\n await Menu.verifyCatId(catId, \"set\", menu)\n Menu.typeDetect(catId)\n await axios.get(\n Config.storeLink + 'V1/categories/' + catId, { timeout: 15000 }).then(res => {\n res.data ? dispatch(allActions.categoryAction.fetchCategory(res.data)) : \"\"\n dispatch(allActions.globalAction.setType(CommonTools.extractType(catId)))\n let tempProduct = store.getState().product.consolidateProduct;\n let productStatus = Object.keys(tempProduct).length === 0 && typeof(tempProduct) === \"object\";\n typeof(menu) == \"number\" && !productStatus ? dispatch(allActions.loadingAction.changeLoading(false)) : \"\"\n })\n .catch(error => {\n history.push(\"/serverError\")\n })\n }\n }\n }\n\n useEffect(() => {\n CommonTools.waFire()\n }, [catId])\n\n useEffect(() => {\n dispatch(allActions.loadingAction.changeLoading(true))\n CommonTools.resetInputQtyField()\n dispatch(getData());\n }, [catId, menu, consolidateProduct]);\n\n useEffect(() => {\n dispatch(allActions.productAction.setSuccessStatus(false))\n dispatch(allActions.productAction.setFailStatus(false))\n $(\".eventContainer a\").click(function () {\n if ($(this).attr(\"href\")) {\n $(\"html, body\").animate({ scrollTop: 100 }, 600);\n }\n })\n }, [])\n\n return (\n
    \n \n \n {/*
    \n

    {Static.restaurantName}

    \n \n
    \n
    \n
    \n
    */} \n \n \n {currentCategory.is_active ?
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n
    : }\n
    \n )\n}\n\nexport default React.memo(Set);","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport allActions from '../actions'\nimport axios from 'axios'\nimport ShoppingCart from './ShoppingCart'\nimport CatDescription from './CatDescription'\nimport CommonTools from '../api/CommonTools'\nimport Config from '../res/Config'\nimport Static from '../res/Static'\nimport { Link, useHistory } from 'react-router-dom';\nimport {\n useParams\n} from \"react-router-dom\"\nimport ShoppingStatus from './ShoppingStatus';\nimport Tab from './Tab';\nimport SimpleList from './SimpleList'\nimport Menu from '../api/Menu';\nimport Disable from './widgets/Disable';\nimport AddToCartBtn from './widgets/AddToCartBtn';\nimport HeaderBanner from './HeaderBanner'\nimport store from '../store/index'\n\nfunction Simple() {\n let { catId } = useParams();\n const dispatch = useDispatch();\n const history = useHistory();\n const menu = useSelector(state => state.global.menu);\n const detailProduct = useSelector(state => state.product.detailProduct);\n const currentCategory = useSelector(state => state.category.currentCategory);\n\n function getData() {\n return async dispatch => {\n if (menu && menu != \"\") {\n await Menu.verifyCatId(catId, \"simple\", menu)\n Menu.typeDetect(catId)\n await axios.get(\n Config.storeLink + 'V1/categories/' + catId, { timeout: 15000 }).then(res => {\n res.data ? dispatch(allActions.categoryAction.fetchCategory(res.data)) : \"\"\n dispatch(allActions.globalAction.setType(CommonTools.extractType(catId)))\n let tempProduct = store.getState().product.detailProduct.data;\n typeof(menu) == \"number\" && tempProduct != undefined ? dispatch(allActions.loadingAction.changeLoading(false)) : \"\"\n })\n .catch(error => {\n history.push(\"/serverError\")\n })\n }\n }\n }\n\n useEffect(() => {\n CommonTools.waFire()\n }, [catId])\n\n useEffect(() => {\n dispatch(allActions.loadingAction.changeLoading(true))\n CommonTools.resetInputQtyField()\n dispatch(getData());\n }, [catId, menu, detailProduct]);\n\n useEffect(() => {\n dispatch(allActions.productAction.setSuccessStatus(false))\n dispatch(allActions.productAction.setFailStatus(false))\n $(\".eventContainer a\").click(function () {\n if ($(this).attr(\"href\")) {\n $(\"html, body\").animate({ scrollTop: 100 }, 600);\n }\n })\n }, [])\n\n return (\n
    \n \n \n {/*
    \n

    {Static.restaurantName}

    \n \n
    \n
    \n
    \n
    */}\n \n \n {currentCategory.is_active ?
    \n
    \n
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n
    : }\n
    \n )\n}\n\nexport default React.memo(Simple);","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport { Link, useHistory, useParams } from 'react-router-dom';\nimport allActions from '../actions'\nimport CommonTools from '../api/CommonTools'\nimport SetTools from '../api/SetTools'\nimport axios from 'axios'\nimport Config from '../res/Config'\nimport Static from '../res/Static'\nimport AddToBundleCartBtn from './widgets/AddToBundleCartBtn';\nimport Menu from '../api/Menu';\nimport SimpleTools from '../api/SimpleTools';\nimport AddToCartBtn from './widgets/AddToCartBtn';\nfunction SimpleList() {\n let { catId } = useParams();\n const dispatch = useDispatch();\n const history = useHistory();\n const productSku = useSelector(state => state.product.productSku);\n const menu = useSelector(state => state.global.menu);\n const detailProduct = useSelector(state => state.product.detailProduct);\n const role = useSelector(state => state.permission.role);\n\n function getData() {\n return async dispatch => {\n let products = []\n let catPromise = []\n let subIds = await Menu.getChildren(catId)\n subIds = CommonTools.activeCat(subIds)\n if (subIds.length > 0) {\n subIds.map(v => {\n catPromise.push(\n axios({\n method: \"get\",\n timeout: 15000,\n url: Config.productDomain + CommonTools.generateParam(v.id + \"\")\n }))\n })\n await axios\n .all(catPromise)\n .then(axios.spread((...responses) => {\n responses.forEach((res, index) => {\n res.data.catInfo = subIds[index]\n products.push(res.data)\n })\n }))\n .catch(error => {\n history.push(\"/serverError\")\n })\n dispatch(allActions.productAction.fetchdetailProduct({ data: products }))\n CommonTools.setShoppingCartTop()\n } else {\n dispatch(allActions.productAction.fetchdetailProduct({}))\n }\n }\n }\n\n useEffect(() => {\n dispatch(getData());\n }, [productSku, catId]);\n\n useEffect(() => {\n return () => {\n dispatch(allActions.productAction.fetchdetailProduct({ data: undefined }))\n }\n }, [productSku, catId]);\n\n\n const imageDetect = (product) => {\n let flag = false;\n let imageSrc = product && !CommonTools.getMediaAttribute(product) ? CommonTools.getCustomAttribute(product, \"image\") : \"\"\n imageSrc && imageSrc != \"\" ? flag = true : \"\"\n return flag\n }\n\n return (\n
    \n {\n detailProduct.data ? detailProduct.data.map((value, index) => {\n return
    \n
    \n
    \n

    {value.catInfo.name}

    \n
    \n
    \n

    {Static.priceLabel}

    \n
    \n
    \n
    \n {value.items ? value.items.map((item, subIndex) => {\n return
    \n
    \n \n {imageDetect(item) ?\n \n :\n }\n \n {item[\"name\"]}\n
    \n
    {Static.priceLabel}
    \n
    \n {\"$\" + CommonTools.priceFormat(item[\"price\"])}\n
    \n
    \n {role ? (<>
    \n \n
    \n
    \n \n
    \n
    \n \n
    ) : \"\"}\n
    \n
    \n }) : \"\"}\n
    \n
    \n }) : \"\"\n }\n
    \n )\n}\n\nexport default React.memo(SimpleList);","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport allActions from '../actions'\nimport axios from 'axios'\nimport ShoppingCart from './ShoppingCart'\nimport CatDescription from './CatDescription'\nimport CommonTools from '../api/CommonTools'\nimport Config from '../res/Config'\nimport Static from '../res/Static'\nimport { Link, useHistory } from 'react-router-dom';\nimport {\n useParams\n} from \"react-router-dom\"\nimport ShoppingStatus from './ShoppingStatus';\nimport Tab from './Tab';\nimport SingleList from './SingleList'\nimport HeaderBanner from './HeaderBanner'\nimport Menu from '../api/Menu';\nimport Disable from './widgets/Disable';\nimport AddToCartBtn from './widgets/AddToCartBtn';\nimport store from '../store/index'\n\nfunction Single() {\n let { catId } = useParams();\n const dispatch = useDispatch();\n const history = useHistory();\n const menu = useSelector(state => state.global.menu);\n const detailProduct = useSelector(state => state.product.detailProduct);\n const currentCategory = useSelector(state => state.category.currentCategory);\n\n function getData() {\n return async dispatch => {\n if (menu && menu != \"\") {\n await Menu.verifyCatId(catId, \"single\", menu)\n Menu.typeDetect(catId)\n await axios.get(\n Config.storeLink + 'V1/categories/' + catId, { timeout: 15000 }).then(res => {\n res.data ? dispatch(allActions.categoryAction.fetchCategory(res.data)) : \"\"\n dispatch(allActions.globalAction.setType(CommonTools.extractType(catId)))\n let tempProduct = store.getState().product.detailProduct.data;\n typeof(menu) == \"number\" && tempProduct != undefined ? dispatch(allActions.loadingAction.changeLoading(false)) : \"\"\n })\n .catch(error => {\n history.push(\"/serverError\")\n })\n }\n }\n }\n\n useEffect(() => {\n CommonTools.waFire()\n }, [catId])\n\n useEffect(() => {\n dispatch(allActions.loadingAction.changeLoading(true))\n CommonTools.resetInputQtyField()\n dispatch(getData());\n }, [catId, menu, detailProduct]);\n\n useEffect(() => {\n dispatch(allActions.productAction.setSuccessStatus(false))\n dispatch(allActions.productAction.setFailStatus(false))\n $(\".eventContainer a\").click(function () {\n if ($(this).attr(\"href\")) {\n $(\"html, body\").animate({ scrollTop: 100 }, 600);\n }\n })\n }, [])\n\n return (\n
    \n \n \n {/*
    \n

    {Static.restaurantName}

    \n \n
    \n
    \n
    \n
    */} \n \n \n {currentCategory.is_active ?
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    : }\n
    \n )\n}\n\nexport default React.memo(Single);","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport { Link, useHistory, useParams } from 'react-router-dom';\nimport allActions from '../actions'\nimport CommonTools from '../api/CommonTools'\nimport SetTools from '../api/SetTools'\nimport axios from 'axios'\nimport Config from '../res/Config'\nimport Static from '../res/Static'\nimport AddSingleToCartBtn from './widgets/AddSingleToCartBtn';\nimport Menu from '../api/Menu';\nimport SimpleTools from '../api/SimpleTools';\nfunction SingleList(props) {\n const { catId } = props;\n const dispatch = useDispatch();\n const history = useHistory();\n const productSku = useSelector(state => state.product.productSku);\n const menu = useSelector(state => state.global.menu);\n const detailProduct = useSelector(state => state.product.detailProduct);\n const role = useSelector(state => state.permission.role);\n\n function getData() {\n return async dispatch => {\n let products = []\n let catPromise = []\n await axios({\n method: \"get\",\n timeout: 15000,\n url: Config.productDomain + CommonTools.generateParam(catId + \"\")\n }).then(res => {\n products.push(res.data)\n dispatch(allActions.productAction.fetchdetailProduct({ data: products }))\n CommonTools.setShoppingCartTop()\n })\n .catch(error => {\n history.push(\"/serverError\")\n })\n /*let subIds = await Menu.getChildren(catId)\n subIds = CommonTools.activeCat(subIds)\n if (subIds.length > 0) {\n subIds.map(v => {\n catPromise.push(\n axios({\n method: \"get\",\n timeout: 15000,\n url: Config.productDomain + CommonTools.generateParam(v.id + \"\")\n }))\n })\n await axios\n .all(catPromise)\n .then(axios.spread((...responses) => {\n responses.forEach((res, index) => {\n res.data.catInfo = subIds[index]\n products.push(res.data)\n })\n }))\n .catch(error => {\n history.push(\"/serverError\")\n })\n dispatch(allActions.productAction.fetchdetailProduct({ data: products }))\n CommonTools.setShoppingCartTop()\n } else {\n dispatch(allActions.productAction.fetchdetailProduct({}))\n }*/\n }\n }\n\n useEffect(() => {\n dispatch(getData());\n }, [productSku, catId]);\n\n useEffect(() => {\n return () => {\n dispatch(allActions.productAction.fetchdetailProduct({ data: undefined }))\n }\n }, [productSku, catId]);\n\n\n const imageDetect = (product) => {\n let flag = false;\n let imageSrc = product && !CommonTools.getMediaAttribute(product) ? CommonTools.getCustomAttribute(product, \"image\") : \"\"\n imageSrc && imageSrc != \"\" ? flag = true : \"\"\n return flag\n }\n\n return (\n
    \n {detailProduct.data ? detailProduct.data.map((value, index) => {\n return value.items ? value.items.map((item, subIndex) => {\n return
    \n {CommonTools.getProductImage(item, \"small_image\").indexOf(\"no_selection\") == -1 &&\n
    \n
    \n \n \n \n
    \n
    \n }\n
    \n
    \n
    \n {item.name}\n
    \n {CommonTools.getCustomAttribute(item, \"handling_method\").length > 0 &&\n \n }\n {CommonTools.getCustomAttribute(item, \"minimun_order\").length > 0 &&\n #{Static.miniOrder}{CommonTools.getCustomAttribute(item, \"minimun_order\")}\n }\n
    \n
    \n
    \n \n {Static.allUnit}{CommonTools.formatPrice(item.price)}\n \n
    \n
    \n {(CommonTools.getCustomAttribute(item, \"stock_status\") == 147) ?\n
    {Static.outOfStock}
    \n :\n <>\n
    \n {role ? (<>
    \n \n
    \n
    \n \n
    \n
    \n \n
    ) : \"\"}\n
    \n
    \n \n
    \n \n }\n
    \n
    \n
    \n
    \n }) : \"\"\n }) : \"\"}\n
    \n )\n}\n\nexport default React.memo(SingleList);","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport { Link, useHistory, useParams } from 'react-router-dom';\nimport allActions from '../../actions'\nimport axios from 'axios'\nimport CommonTools from '../../api/CommonTools'\nimport Config from '../../res/Config'\nimport Static from '../../res/Static'\nimport Menu from '../../api/Menu';\nimport SimpleTools from '../../api/SimpleTools';\nimport Permission from '../../api/Permission';\nimport WACode from '../../res/WACode'\nimport SingleTools from '../../api/SingleTools';\n\nfunction AddSingleToCartBtn(props) {\n\tlet { catId } = useParams();\n\tconst { sku } = props;\n\tconst cartUpdateCount = useSelector(state => state.shoppingCart.cartUpdateCount);\n\tconst cartId = useSelector(state => state.shoppingCart.cartId);\n\tconst role = useSelector(state => state.permission.role);\n\tconst dispatch = useDispatch();\n\tconst history = useHistory();\n\n\tconst handleMultipleAddtocart = async (e) => {\n\t\tlet specificQt = SingleTools.validateMinimunOrder(sku);\n\t\tif (specificQt > 0) {\n\t\t\tif (Permission.eventPermission()) {\n\t\t\t\tif (await Menu.menuDetect()) {\n\t\t\t\t\tMenu.typeDetect(catId, \"addtocart\")\n\t\t\t\t\tlet errorCount = 0;\n\n\t\t\t\t\tdispatch(allActions.loadingAction.changeLoading(true))\n\t\t\t\t\taxios({\n\t\t\t\t\t\tmethod: \"post\",\n\t\t\t\t\t\turl: Config.storeLink + \"V1/guest-carts/\" + cartId + \"/items\",\n\t\t\t\t\t\tdata: SimpleTools.generateCartObject(cartId, sku, specificQt)\n\t\t\t\t\t}).then(res => {\n\t\t\t\t\t\tif (!res.data) {\n\t\t\t\t\t\t\talert(Static.itemSku + \" \" + sku + \" \" + Static.itemAddAlert);\n\t\t\t\t\t\t\terrorCount++\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tSingleTools.resetInputQtyField()\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (errorCount > 0) {\n\t\t\t\t\t\t\tdispatch(allActions.productAction.setSuccessStatus(false))\n\t\t\t\t\t\t\tdispatch(allActions.productAction.setFailStatus(true))\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdispatch(allActions.productAction.setSuccessStatus(true))\n\t\t\t\t\t\t\tdispatch(allActions.productAction.setFailStatus(false))\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdispatch(allActions.shoppingCartAction.setCartUpdateCount(cartUpdateCount + 1))\n\t\t\t\t\t\tdispatch(allActions.checkoutAction.pushEnableUpdates([]))\n\t\t\t\t\t\tCommonTools.waFireClick(WACode.overAddtocart)\n\t\t\t\t\t\tsetTimeout(() => { dispatch(allActions.loadingAction.changeLoading(false)) }, 1000)\n\t\t\t\t\t\t//scrollToTop(600)\n\t\t\t\t\t}).catch(error => {\n\t\t\t\t\t\tconsole.log(error)\n\t\t\t\t\t\tdispatch(allActions.productAction.setSuccessStatus(false))\n\t\t\t\t\t\tdispatch(allActions.productAction.setFailStatus(true))\n\t\t\t\t\t\tdispatch(allActions.loadingAction.changeLoading(false))\n\t\t\t\t\t\talert(Static.itemAddAlert);\n\t\t\t\t\t})\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\t}\n\n\tconst handleBackToHome = (e) => {\n\t\thistory.push(\"/\")\n\t}\n\n\tfunction scrollToTop(scrollDuration) {\n\t\t$(\"html, body\").animate({ scrollTop: 100 }, scrollDuration);\n\t}\n\n\treturn
    \n\t\t{role ?
    \n\t\t\t\n\t\t
    :
    \n\t\t\t\t
    }\n\t
    \n}\n\nexport default React.memo(AddSingleToCartBtn);","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport allActions from '../actions'\nimport axios from 'axios'\nimport ShoppingCart from './ShoppingCart'\nimport CommonTools from '../api/CommonTools'\nimport CatDescription from './CatDescription'\nimport Config from '../res/Config'\nimport Static from '../res/Static'\nimport { Link, useHistory } from 'react-router-dom';\nimport {\n useParams\n} from \"react-router-dom\"\nimport ShoppingStatus from './ShoppingStatus';\nimport Tab from './Tab';\nimport SetItems from './SetItems'\nimport SetList from './SetList'\nimport Menu from '../api/Menu';\nimport Disable from './widgets/Disable';\nimport AddToBundleCartBtn from './widgets/AddToBundleCartBtn';\nimport HeaderBanner from './HeaderBanner'\nimport store from '../store/index'\n\nfunction Special() {\n let { catId } = useParams();\n const dispatch = useDispatch();\n const history = useHistory();\n const menu = useSelector(state => state.global.menu);\n const consolidateProduct = useSelector(state => state.product.consolidateProduct);\n const currentCategory = useSelector(state => state.category.currentCategory);\n\n function getData() {\n return async dispatch => {\n await Menu.verifyCatId(catId, \"special\", menu)\n Menu.typeDetect(catId)\n await axios.get(\n Config.storeLink + 'V1/categories/' + catId, { timeout: 15000 }).then(res => {\n res.data ? dispatch(allActions.categoryAction.fetchCategory(res.data)) : \"\"\n dispatch(allActions.globalAction.setType(CommonTools.extractType(catId)))\n let tempProduct = store.getState().product.consolidateProduct;\n let productStatus = Object.keys(tempProduct).length === 0 && typeof(tempProduct) === \"object\";\n typeof(menu) == \"number\" && !productStatus ? dispatch(allActions.loadingAction.changeLoading(false)) : \"\"\n })\n .catch(error => {\n history.push(\"/serverError\")\n })\n }\n }\n\n useEffect(() => {\n CommonTools.waFire()\n }, [catId])\n\n useEffect(() => {\n dispatch(allActions.loadingAction.changeLoading(true))\n dispatch(getData());\n }, [catId, menu, consolidateProduct]);\n\n useEffect(() => {\n dispatch(allActions.productAction.setSuccessStatus(false))\n dispatch(allActions.productAction.setFailStatus(false))\n $(\".eventContainer a\").click(function () {\n if ($(this).attr(\"href\")) {\n $(\"html, body\").animate({ scrollTop: 100 }, 600);\n }\n })\n }, [])\n\n return (\n
    \n \n \n {/*
    \n

    {Static.restaurantName}

    \n \n
    \n
    \n
    \n
    */} \n \n \n {currentCategory.is_active ?
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n
    : }\n
    \n )\n}\n\nexport default React.memo(Special);","import EnvironmentTools from \"../api/EnvironmentTools\";\nimport chConfig from \"./chConfig\";\nimport enConfig from \"./enConfig\";\nimport Menu from \"./Menu\";\n\nlet Config = {};\n\nif (lang == 'ch') {\n Config = chConfig;\n} else {\n Config = enConfig;\n}\n\nConfig = {\n ...Config,\n menu: Menu,\n environment: \"\",//local, dv-member for testing\n storeLink: \"https://shop.hkjc.com/\" + Config.storeName + \"/index.php/rest/\" + Config.subStoreName + \"/\",\n // storeLinkDV: \"/member/common/takeaway/testing_data/\",\n mediaDomain: EnvironmentTools.mediaDomain(),\n productDomain: \"https://shop.hkjc.com/\" + Config.storeName + \"/index.php/rest/\" + Config.subStoreName + \"/V1/products/\",\n // productDomainDV: \"/member/jason_testing_data/V1/products/\",\n categoryImage: EnvironmentTools.mediaDomain() + \"catalog/category/\",\n checkoutForm: \"/member/fs/takeaway/sprinkles/form.aspx?lang=\" + lang + \"&key=\",\n storeHome: \"/member/\" + language + \"/exclusive-shopping/takeaway/index.aspx\",\n restuarantHome: \"/member/\" + language + \"/exclusive-shopping/takeaway/sprinkles/index.aspx\",\n waCheckout: \"ocotakeaway\",\n pageFireCount: 0,\n skuSeparator: \"|||||||||||||||||\",\n cartIdName: \"ocoCartId\",\n token: \"takeoutRole\",\n memberId: \"takeoutMemberId\",\n memberFId: \"takeoutMemberFId\",\n // token: \"storeRole\",\n // memberId: \"memberId\",\n // memberFId: \"memberFId\",\n activeMenu: \"ocoActiveMenu\",\n activeType: \"ocoActiveType\",\n otpUrl: \"/member/\" + language + \"/exclusive-shopping/takeaway/otp.aspx\",\n partySetItemMax: 1\n}\n\nexport default Config\n","export default {\n storeName: \"sprinkles\",\n subStoreName: \"sprinkles_chinese\",\n storeId: 39,\n // checkoutCartId:[43]\n};\n","export default {\n storeName: \"sprinkles\",\n subStoreName: \"sprinkles_english\",\n storeId: 40,\n // checkoutCartId:[43]\n};\n","let Menu = [\n {\n id: 674,\n subCat: [\n {\n type: \"western\",\n ids: [\n {\n type: \"single\",\n id: 676\n }\n ]\n }]\n },\n {\n id: 675,\n subCat: [\n {\n type: \"western\",\n ids: [\n {\n type: \"single\",\n id: 677\n }\n ]\n }\n ]\n }\n];\n\nexport default Menu\n","\nconst handleAddQty = (e) => {\n let mId = e.currentTarget.getAttribute('data-id');\n let mVal = parseInt(document.querySelector('#' + mId).value);\n if (mVal >= 0 && mVal < 99) {\n document.querySelector('#' + mId).value = mVal + 1;\n }\n $('document').find('#' + mId).trigger('change');\n}\n\nconst handleMinusQty = (e) => {\n let mId = e.currentTarget.getAttribute('data-id');\n let mVal = parseInt(document.querySelector('#' + mId).value);\n if (mVal > 0) {\n document.querySelector('#' + mId).value = mVal - 1;\n }\n $('document').find('#' + mId).trigger('change');\n}\n\nconst handleMaxLengthCheck = (e) => {\n if (e.currentTarget.value.length > e.currentTarget.maxLength) {\n e.currentTarget.value = e.currentTarget.value.slice(0, e.currentTarget.maxLength)\n }\n}\n\nconst validateMinimunOrder = () => {\n let result = []\n $(\".catItemsRow .qty-wrapper input\").each((k, v) => {\n $(v).val() > 0 ? result.push({\n sku: $(v).data(\"sku\"),\n qty: $(v).val()\n }) : \"\"\n })\n return result\n}\n\nconst resetInputQtyField = (sku) => {\n $(\"input[data-sku='\" + sku + \"']\").val(0)\n}\n\n\nconst generateCartObject = (cartId, sku, qty) => {\n return {\n cart_item: {\n quote_id: cartId,\n sku: sku,\n qty: qty\n }\n }\n}\n\nconst generateCheckoutObject = (cartId, itemId, qty) => {\n return {\n cart_item: {\n quote_id: cartId,\n item_id: itemId,\n qty: qty\n }\n }\n}\n\nexport default {\n handleAddQty,\n handleMinusQty,\n handleMaxLengthCheck,\n validateMinimunOrder,\n resetInputQtyField,\n generateCartObject,\n generateCheckoutObject\n}","import Config from '../res/Config'\nimport Static from '../res/Static'\nimport axios from 'axios'\nconst imgPathDetect = (str) => {\n let temp = \"\";\n !str ? str = \"\" : \"\"\n str.startsWith(\"/\") ? temp = \"\" : temp = \"/\"\n return temp;\n}\n\nconst generateParam = (id) => {\n let urlParam = \"?searchCriteria[filterGroups][0][filters][0][field]=store_id\" +\n \"&searchCriteria[filterGroups][0][filters][0][value]=\" + Config.storeId +\n \"&searchCriteria[filterGroups][0][filters][0][condition_type]=in\" +\n \"&searchCriteria[filterGroups][1][filters][0][field]=category_id\" +\n \"&searchCriteria[filterGroups][1][filters][0][value]=\" + id +\n \"&searchCriteria[filterGroups][1][filters][0][conditionType]=eq\" +\n \"&searchCriteria[filterGroups][2][filters][0][field]=status\" +\n \"&searchCriteria[filterGroups][2][filters][0][value]=1\" +\n \"&searchCriteria[filterGroups][2][filters][0][conditionType]=in\";\n\n return urlParam\n}\n\nconst generateProductParam = () => {\n let urlParam = \"?searchCriteria[filterGroups][0][filters][0][field]=store_id\" +\n \"&searchCriteria[filterGroups][0][filters][0][value]=\" + Config.storeId +\n \"&searchCriteria[filterGroups][0][filters][0][condition_type]=in\" +\n \"&searchCriteria[filterGroups][1][filters][0][field]=status\" +\n \"&searchCriteria[filterGroups][1][filters][0][value]=1\" +\n \"&searchCriteria[filterGroups][1][filters][0][conditionType]=in\";\n\n return urlParam\n}\n\nconst waFire = () => {\n try {\n if (Config.pageFireCount > 0) {\n if(window.location.search.indexOf(\"cid=\") != -1){\n window.history.pushState(null, null, window.location.pathname+window.location.hash)\n }\n WATracker.trackPageView('membership');\n }\n Config.pageFireCount++;\n } catch (e) { }\n}\n\nconst waFireClick = (wa_id) => {\n try {\n WATracker.trackClickEvent(wa_id);\n } catch (e) { }\n}\n\nconst waNonStandardFire = (code) => {\n try {\n WATracker.trackClickEvent(code)\n } catch (e) { }\n}\n\nconst updateShoppingCart = (data, discountData, hamperIds) => {\n let matchItem = {}\n let totalDiscount = 0,\n totalPayable = 0,\n totalCount = 0,\n totalAmount = 0;\n data.map((value) => {\n matchItem = getMatchItem(discountData.items, value.item_id)\n totalDiscount += matchItem.discount_amount;\n totalAmount += value.price * value.qty;\n totalCount += value.qty;\n })\n totalPayable = totalAmount - totalDiscount;\n return {\n totalDiscount: priceFormat(totalDiscount),\n totalPayable: priceFormat(totalPayable),\n totalCount,\n totalAmount: priceFormat(totalAmount)\n }\n}\n\nconst formatter = new Intl.NumberFormat('en-US', {\n minimumFractionDigits: 2\n})\n\nconst priceFormat = (price) => {\n return formatter.format(Number(price))\n\n}\n\nconst getMatchItem = (data, item_id) => {\n let item = {}\n data.map((value) => {\n value.item_id == item_id ? item = value : \"\"\n })\n return item;\n}\n\nconst addZeroes = (num) => {\n let value = Number(num);\n value = value.toFixed(2);\n return value;\n}\n\nfunction insertItem(array, action) {\n let newArray = array.slice();\n newArray.splice(action.index, 0, action.item);\n return newArray;\n}\n\nfunction removeItem(array, action) {\n let newArray = array.slice();\n newArray.splice(action.index, 1);\n return newArray;\n}\n\nfunction specificQty(data, sku) {\n let qty = 0;\n $(data).map(value => {\n value.sku == sku ? qty = value.qty : \"\"\n })\n return qty;\n}\n\n\nfunction getCustomAttribute(value, key) {\n let data = \"\";\n value.custom_attributes ? value.custom_attributes.map((value) => {\n value.attribute_code == key ? data = value.value : \"\"\n }) : \"\"\n return data;\n}\n\nfunction getMediaAttribute(value, key) {\n let data = \"\";\n value.media_gallery_entries ? value.media_gallery_entries.map((value, index) => {\n index == 0 ? data = value.disabled : \"\"\n }) : \"\"\n return data;\n}\n\nconst resetInputValue = (id, value) => {\n document.getElementById(id).value = value\n}\n\nconst resetInputQtyField = () => {\n $(\"#root input\").val(0)\n}\n\nconst generateOtherLangParam = (id) => {\n let storeId = 8;\n if (lang == \"en\") {\n storeId = 9;\n }\n let urlParam = \"?searchCriteria[filterGroups][0][filters][0][field]=store_id\" +\n \"&searchCriteria[filterGroups][0][filters][0][value]=\" + storeId +\n \"&searchCriteria[filterGroups][0][filters][0][condition_type]=in\" +\n \"&searchCriteria[filterGroups][1][filters][0][field]=status\" +\n \"&searchCriteria[filterGroups][1][filters][0][value]=1\" +\n \"&searchCriteria[filterGroups][1][filters][0][conditionType]=in\";\n\n return urlParam\n}\n\nfunction getProductCustomAttribute(value, mkey) {\n let data = \"\";\n let customattributes = value.custom_attributes\n if (customattributes) {\n Object.keys(customattributes).forEach(function (key) {\n if (customattributes[key].attribute_code == mkey) {\n data = customattributes[key].value\n }\n })\n }\n return data;\n}\n\nconst getOtherInfoBySKU = (sku, value) => {\n if (sku && !value.othername && !value.requestother) {\n value.requestother = 1;\n let urlBasicParam = generateOtherLangParam(43) +\n \"&searchCriteria[filterGroups][2][filters][0][field]=sku\" +\n \"&searchCriteria[filterGroups][2][filters][0][value]=\" + encodeURIComponent(sku) +\n \"&searchCriteria[filterGroups][2][filters][0][conditionType]=eq\" +\n \"&fields=items[id,sku,name,custom_attributes[short_description]]\";\n axios.get(\n Config.productDomain + urlBasicParam)\n .then(res => {\n value.othername = sku\n if (res.data.items) {\n let mCnt = 0;\n res.data.items.map((myvalue) => {\n if (mCnt == 0) {\n let shortdescription = getProductCustomAttribute(myvalue, \"short_description\")\n if (shortdescription) {\n value.otherdescription = shortdescription\n }\n let pName = myvalue.name\n if (pName) {\n value.othername = pName\n }\n }\n mCnt++\n })\n }\n })\n .catch(error => {\n value.requestother = 0\n let sDescription = \"\"\n if (value.description) {\n sDescription = value.description\n }\n let sName = sku\n if (value.name) {\n sName = value.name\n }\n value.otherdescription = sDescription\n value.othername = sName\n console.log(error);\n })\n }\n}\n\nconst setShoppingCartTop = (e) => {\n if (document.getElementsByClassName(\"shoppingCartWrap\").length > 0) {\n let shoppingCartEl = document.getElementsByClassName(\"shoppingCart\")[0]\n let windowHeight = window.innerHeight\n let detailInfo = document.getElementsByClassName(\"shoppingCartWrap\")[0].getBoundingClientRect()\n if (detailInfo.height + detailInfo.top > windowHeight) {\n shoppingCartEl.style.top = (windowHeight - detailInfo.top - 180) + \"px\"\n } else {\n shoppingCartEl.style.top = (detailInfo.height - 180) + \"px\"\n }\n }\n}\n\nconst compareQty = (items) => {\n let flag = false;\n items ? items.map((value) => {\n $(\".input-text[data-itemid='\" + value.item_id + \"']\").val() != value.qty ? flag = $(\".input-text[data-itemid='\" + value.item_id + \"']\").attr(\"data-group\") : \"\"\n\n }) : \"\"\n return flag\n}\n\nconst skuFilter = (sku) => {\n return sku.split(Config.skuSeparator)[0]\n}\n\nconst checkVersion = () => {\n var agent = window.navigator.userAgent,\n start = agent.indexOf('OS ');\n if ((agent.indexOf('iPhone') > -1 || agent.indexOf('iPad') > -1) && start > -1) {\n return window.Number(agent.substr(start + 3, 3).replace('_', '.'));\n }\n return 0;\n}\n\nconst encodeParam = (value) => {\n let tempValue = (value && value != \"\" ? encodeURIComponent(value) : value)\n return tempValue\n}\n\nconst formatPrice = (mprice) => {\n let price = mprice;\n if (mprice) {\n try {\n let n = String(mprice),\n p = n.indexOf('.')\n price = n.replace(\n /\\d(?=(?:\\d{3})+(?:\\.|$))/g,\n (m, i) => p < 0 || i < p ? `${m},` : m\n )\n } catch (err) {\n price = mprice\n }\n }\n return price;\n}\n\nconst extractSubMenuObject = (id) => {\n let obj = {}\n Config.menu.map(subMenu => {\n subMenu.subCat.map(v => {\n v.ids.map(subIds => {\n subIds.id == id ? obj = v : \"\"\n })\n })\n })\n\n return obj\n}\n\nconst extractAllMenuObject = (id) => {\n let obj = {}\n Config.menu.map(subMenu => {\n subMenu.id == id ? \n subMenu.subCat.map(v => {\n obj = v\n }) : \"\"\n })\n\n return obj\n}\n\nconst getProductImage = (product, key) => {\n let image = \"\";\n product.custom_attributes.map((value) => {\n value.attribute_code == key ? image = Config.mediaDomain + \"catalog/product\" + imgPathDetect(value.value) + value.value : \"\"\n })\n return image;\n}\n\nconst extractType = (id) => {\n let type = \"\"\n Config.menu.map(subMenu => {\n subMenu.subCat.map(v => {\n v.ids.map(subIds => {\n subIds.id == id ? type = v.type : \"\"\n })\n })\n })\n return type\n}\n\nconst extractSubType = (id) => {\n let type = \"\"\n Config.menu.map(subMenu => {\n subMenu.subCat.map(v => {\n v.ids.map(subIds => {\n subIds.id == id ? type = subIds.type : \"\"\n })\n })\n })\n return type\n}\n\nconst parentMenu = (id) => {\n let menuId = 156\n Config.menu.map(subMenu => {\n subMenu.subCat.map(v => {\n v.ids.map(subIds => {\n subIds.id == id ? menuId = subMenu.id : \"\"\n })\n })\n })\n return menuId\n}\n\nconst activeCat = (cats) => {\n let result = []\n cats.map(c => {\n c.is_active ? result.push(c) : \"\"\n })\n return result\n}\n\nconst extractIdsByType = (menu, type) => {\n let ids = []\n Config.menu.map(subMenu => {\n if (subMenu.id == menu) {\n subMenu.subCat.map(v => {\n v.ids.map(subIds => {\n subIds.type == type ? ids.push(subIds.id) : \"\"\n })\n })\n }\n })\n return ids\n}\n\nconst popupProductImg = (e) => {\n let mTitle = e.currentTarget.getAttribute('data-title');\n let imgSrc = e.currentTarget.getAttribute('data-src');\n //dispatch(allActions.loadingAction.changeLoading(true))\n if(imgSrc){\n //dispatch(allActions.loadingAction.changeLoading(false))\n popupIframeImage(imgSrc, mTitle);\n }else{\n //dispatch(allActions.loadingAction.changeLoading(false))\n alert(Static.noImage);\n }\n}\n\nexport default {\n imgPathDetect,\n generateParam,\n generateProductParam,\n waFire,\n waFireClick,\n waNonStandardFire,\n priceFormat,\n getMatchItem,\n updateShoppingCart,\n insertItem,\n removeItem,\n specificQty,\n getCustomAttribute,\n getMediaAttribute,\n resetInputValue,\n resetInputQtyField,\n getOtherInfoBySKU,\n setShoppingCartTop,\n compareQty,\n skuFilter,\n checkVersion,\n encodeParam,\n formatPrice,\n extractSubMenuObject,\n extractAllMenuObject,\n getProductImage,\n extractType,\n extractSubType,\n parentMenu,\n activeCat,\n extractIdsByType,\n popupProductImg\n}","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport allActions from '../actions'\nimport axios from 'axios'\nimport CheckoutBtn from './widgets/CheckoutBtn'\nimport Loading from './widgets/Loading'\nimport CommonTools from '../api/CommonTools'\nimport Config from '../res/Config'\nimport Static from '../res/Static'\nimport { Link, useHistory } from 'react-router-dom';\nimport WACode from '../res/WACode';\nimport Permission from '../api/Permission';\nimport { isMobile } from 'react-device-detect';\nimport SetTools from '../api/SetTools';\nfunction ShoppingCart(props) {\n const { noShow } = props;\n const maximumError = useSelector(state => state.checkout.maximumError);\n const soldoutError = useSelector(state => state.checkout.soldoutError);\n const cartUpdateCount = useSelector(state => state.shoppingCart.cartUpdateCount);\n const shoppingCartLength = useSelector(state => state.shoppingCart.shoppingCartLength);\n const shoppingCart = useSelector(state => state.shoppingCart.shoppingCart);\n const cartId = useSelector(state => state.shoppingCart.cartId);\n const cartDetailStatus = useSelector(state => state.shoppingCart.cartDetailStatus);\n const role = useSelector(state => state.permission.role);\n const dispatch = useDispatch();\n const history = useHistory();\n\n function getCartItem(cartId) {\n return async dispatch => {\n let discountCart = {};\n if (cartId && cartId != \"\") {\n await axios.post(\n Config.storeLink + \"V1/guest-carts/\" + cartId + \"/totals-information\",\n {\n \"addressInformation\": {\n \"address\": {\n }\n }\n }).then(res => {\n discountCart = res.data;\n //handle multiple update issue\n if (CommonTools.compareQty(res.data.items)) {\n dispatch(allActions.checkoutAction.pushEnableUpdates([]))\n dispatch(allActions.checkoutAction.pushEnableUpdates(CommonTools.compareQty(res.data.items)))\n $(\"button[data-group='\" + CommonTools.compareQty(res.data.items) + \"']\").click();\n return false;\n }\n dispatch(allActions.shoppingCartAction.fetchDiscountCart(res.data))\n }).catch(error => {\n console.log(error);\n console.log(\"Cart have been destoryed\");\n dispatch(getCartId())\n //history.push(\"/\")\n })\n\n let tempMaximumError = [];\n let tempSoldoutError = [];\n let tempProductData = [];\n let tempOriginal = [];\n let optionDetail = [];\n let tempOptionDetail = [];\n\n await axios.get(\n Config.storeLink + \"V1/guest-carts/\" + cartId + \"/items\", { timeout: 15000 }\n ).then(res => {\n tempOriginal = res.data;\n\n res.data.map(value => {\n value.qty > 99 ? tempMaximumError.push(value.sku) : \"\"\n })\n\n dispatch(allActions.checkoutAction.pushMaximumError(tempMaximumError))\n //dispatch(allActions.shoppingCartAction.fetchHamperIds(tempHamperIds))\n dispatch(allActions.shoppingCartAction.setShoppingCart(CommonTools.updateShoppingCart(res.data, discountCart, [])))\n dispatch(allActions.shoppingCartAction.getShoppingCartLength(res.data.length))\n if (noShow) {\n dispatch(allActions.loadingAction.changeLoading(false))\n }\n }).catch(error => {\n console.log(error);\n console.log(\"Cart have been destoryed\");\n dispatch(getCartId())\n //history.push(\"/\")\n })\n\n await Promise.all(tempOriginal.map(value => axios.get(Config.productDomain + CommonTools.skuFilter(value.sku)))).then(responses => {\n responses.map((res, index) => {\n tempProductData.push(res.data)\n })\n tempOriginal.map((value, index) => {\n tempProductData.map(subValue => {\n if (CommonTools.skuFilter(value.sku) == CommonTools.skuFilter(subValue.sku)) {\n tempOptionDetail = SetTools.fetchCartBundleOptions(value, subValue)\n optionDetail = optionDetail.concat(tempOptionDetail)\n tempOriginal[index] = {\n ...tempOriginal[index],\n name: subValue.name,\n custom_attributes: subValue.custom_attributes,\n optionDetail: tempOptionDetail\n }\n //tempOriginal[index].name = subValue.name\n }\n })\n })\n tempProductData.map(value => {\n CommonTools.getCustomAttribute(value, \"stock_status\") == Config.soldoutCode ? tempSoldoutError.push(value.sku) : \"\"\n })\n\n }).catch(error => {\n console.log(error)\n })\n\n await Promise.all(SetTools.itemRelatedSku(optionDetail)).then(responses => {\n \n responses.map(res => {\n \n tempOriginal.map((v,index) => {\n v.optionDetail.map((subV,subIndex) => {\n if(subV.sku == res.data.sku){\n tempOriginal[index].optionDetail[subIndex] = {\n ...subV,\n data: res.data\n }\n }\n })\n \n })\n })\n tempOriginal.map((v,index) => {\n let tempSortData = {}\n v.optionDetail.map((subV,subIndex) => {\n tempSortData[subV.title] ? \"\" : tempSortData[subV.title] = []\n tempSortData[subV.title].push({\n title: subV.title,\n qty: subV.qty,\n data: subV.data\n })\n })\n tempOriginal[index][\"sortData\"] = tempSortData\n })\n dispatch(allActions.checkoutAction.pushSoldOutError(tempSoldoutError))\n dispatch(allActions.shoppingCartAction.fetchOriginalCart(tempOriginal))\n dispatch(allActions.checkoutAction.switchCheckoutStatus(1))\n }).catch(error => {\n console.log(error)\n })\n\n } else {\n dispatch(getCartId())\n }\n }\n }\n\n function getCartId() {\n return dispatch => {\n axios.post(\n Config.storeLink + \"V1/guest-carts/\"//need to change to storeLinkDV when in dv\n ).then(res => {\n localStorage.setItem(Config.cartIdName, res.data)\n localStorage.removeItem(Config.activeType)\n dispatch(allActions.shoppingCartAction.fetchCartId(res.data))\n dispatch(getCartItem(res.data))\n }).catch(error => {\n //history.push(\"/\")\n })\n }\n }\n\n const handleCartShow = (e) => {\n !isMobile ?\n dispatch(allActions.shoppingCartAction.switchCartDetailStatus(true)) : \"\"\n }\n\n const handleCartHidden = (e) => {\n !isMobile ?\n dispatch(allActions.shoppingCartAction.switchCartDetailStatus(false)) : \"\"\n }\n\n const handleClickCart = (e) => {\n if (isMobile) {\n if (Permission.eventPermission()) {\n dispatch(allActions.shoppingCartAction.switchCartDetailStatus(!cartDetailStatus))\n //CommonTools.waFireClick(WACode.floatCart)\n }\n }\n }\n\n const handleShoppingCheckout = (e) => {\n if (Permission.eventPermission()) {\n history.push(\"/checkout\")\n }\n CommonTools.waFireClick(WACode.shoppingViewCart)\n }\n\n useEffect(() => {\n CommonTools.setShoppingCartTop()\n window.addEventListener('scroll', CommonTools.setShoppingCartTop);\n return () => {\n window.removeEventListener('scroll', CommonTools.setShoppingCartTop);\n }\n }, [])\n\n useEffect(() => {\n if (noShow) {\n dispatch(allActions.loadingAction.changeLoading(true))\n }\n dispatch(getCartItem(cartId))\n //getData()\n return () => {\n dispatch(allActions.shoppingCartAction.switchCartDetailStatus(false))\n }\n }, [cartUpdateCount])\n\n return (\n
    \n \n {role ? (
    \n
    \n
    \n
    \n
    \n {shoppingCartLength == 0 ?\n

    {Static.cartNoProduct}

    \n :\n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n
     {Static.shoppingLabel}
    {Static.total}{shoppingCart.totalCount}
    {Static.amount}{Static.unit}{\"$\" + shoppingCart.totalAmount}
    {Static.discount}{Static.unit}{shoppingCart.totalDiscount != 0 ? (\"-$\" + shoppingCart.totalDiscount) : \"-\"}
    {Static.sumPayable}{Static.unit}{\"$\" + shoppingCart.totalPayable}
    \n
    \n
    \n

    {Static.allTotal}

    \n

    {Static.allUnit}{shoppingCart.totalAmount}

    \n

    {Static.cartTips}

    \n
    \n
    \n
      \n
    • \n {Static.checkShoppingCart}\n
    • \n
    \n
      0 || soldoutError.length > 0) ? \"hidden\" : \"show\")}>\n
    • \n \n
    • \n
    \n
    0 && soldoutError.length < 1) ? \"show\" : \"hidden\")}>\n {Static.partialError}
    \n
    0 ? \"show\" : \"hidden\")}>\n {Static.miniPartialError}
    \n
    \n\n
    \n
    \n
    }\n
    \n
    \n
    \n
    \n
    {Static.shoppingCart}
    \n
    \n
    {shoppingCart.totalCount}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    ) :\n (
    \n
    \n
    \n
    \n
    { Permission.OTP(WACode.startShopping) }}\n >\n
    \n
    {Static.startShoppingLabel}
    \n
    \n\n
    \n
    \n
    )}\n
    \n )\n}\n\nexport default React.memo(ShoppingCart);\n","let landingContent = {};\n\nexport default landingContent","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport { Link, useHistory, useParams } from 'react-router-dom';\nimport allActions from '../actions'\nimport axios from 'axios'\nimport Static from '../res/Static'\nimport Config from '../res/Config'\nimport landingContent from '../res/landing'\nimport Menu from '../api/Menu';\nimport CommonTools from '../api/CommonTools';\nimport Permission from '../api/Permission';\nimport WACode from '../res/WACode';\nimport Loading from './widgets/Loading';\nfunction Landing() {\n const menu = useSelector(state => state.global.menu);\n const entireMenuStatus = useSelector(state => state.global.entireMenuStatus);\n const dispatch = useDispatch();\n const history = useHistory();\n\n function getData() {\n return async dispatch => {\n await axios.get(\n Config.storeLink + 'V1/categories/', { timeout: 15000 })\n .then(res => {\n dispatch(allActions.globalAction.setEntireMenuStatus(Menu.addMenuStatus(menu, res.data)))\n typeof(menu) == \"number\" ? dispatch(allActions.loadingAction.changeLoading(false)) : \"\"\n })\n .catch(error => {\n history.push(\"/serverError\")\n })\n }\n }\n\n useEffect(() => {\n dispatch(allActions.loadingAction.changeLoading(true))\n dispatch(getData());\n }, [menu]);\n useEffect(() => {\n CommonTools.waFire()\n }, [])\n\n const handleOnClick = (e) => {\n let type = e.currentTarget.getAttribute(\"data-type\")\n let link = e.currentTarget.getAttribute(\"data-link\")\n let subType = e.currentTarget.getAttribute(\"data-sub-type\")\n let code = \"\"\n switch (subType) {\n case 'set':\n code = WACode.setLand\n break;\n case 'simple':\n code = WACode.simpleLand\n break;\n case 'single':\n code = WACode.singleLand\n break;\n case 'special':\n code = WACode.specialLand\n break;\n default:\n code = WACode.setLand\n }\n if (Menu.landTypeDetect(type) && Permission.landingPermission()) {\n CommonTools.waFireClick(code)\n history.push(link)\n }\n }\n\n return (\n
    \n \n
    \n
    \n

    {Static.restaurantName}

    \n
    \n
    \n {entireMenuStatus.subCat ?\n entireMenuStatus.subCat.map(item => {\n return (item.status ?\n
    \n \n
    \n

    {landingContent[item.type].title}

    \n {item.ids ? item.ids.map(subItem => {\n return subItem.status.is_active ?
    \n
    \n {landingContent[item.type][subItem.type]}
    \n
    : \"\"\n }) : \"\"}\n
    \n
    \n
    \n
    \n
    : \"\")\n }) : \"\"}\n\n
    \n
    \n
    \n )\n}\n\nexport default React.memo(Landing);","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport { Link, useHistory, useParams } from 'react-router-dom';\nimport allActions from '../actions'\nimport axios from 'axios'\nimport Static from '../res/Static'\nimport Config from '../res/Config'\nimport landingContent from '../res/landing'\nimport Menu from '../api/Menu';\nimport CommonTools from '../api/CommonTools';\nimport Permission from '../api/Permission';\nimport WACode from '../res/WACode';\nimport Loading from './widgets/Loading';\nfunction Temp() {\n const menu = useSelector(state => state.global.menu);\n const entireMenuStatus = useSelector(state => state.global.entireMenuStatus);\n const dispatch = useDispatch();\n const history = useHistory();\n\n function getData() {\n return async dispatch => {\n let index = 0;\n let value = {};\n if (typeof (menu) == \"number\") {\n if (menu == Config.menu[0][\"id\"]) {\n value = Config.menu[0];\n } else {\n value = Config.menu[1];\n }\n await axios.get(\n Config.storeLink + 'V1/categories/' + value[\"id\"], { timeout: 15000 })\n .then(res => {\n //if (res.data.is_active) {\n history.push(\"/single/\" + value[\"subCat\"][0][\"ids\"][0][\"id\"])\n index++;\n //}\n typeof (menu) == \"number\" ? dispatch(allActions.loadingAction.changeLoading(false)) : \"\"\n })\n .catch(error => {\n history.push(\"/serverError\")\n })\n if (index > 0) {\n return;\n }\n }\n }\n }\n\n\n useEffect(() => {\n dispatch(allActions.loadingAction.changeLoading(true))\n dispatch(getData());\n }, [menu]);\n useEffect(() => {\n }, [])\n\n return (\n
    \n \n {/*
    \n
    \n

    {Static.restaurantName}

    \n
    \n
    \n {entireMenuStatus.subCat ?\n entireMenuStatus.subCat.map(item => {\n return (item.status ?\n
    \n \n
    \n

    {landingContent[item.type].title}

    \n {item.ids ? item.ids.map(subItem => {\n return subItem.status.is_active ?
    \n
    \n {landingContent[item.type][subItem.type]}
    \n
    : \"\"\n }) : \"\"}\n
    \n
    \n
    \n
    \n
    : \"\")\n }) : \"\"}\n\n
    \n
    */}\n
    \n )\n}\n\nexport default React.memo(Temp);","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport allActions from '../actions'\nimport axios from 'axios'\nimport CommonTools from '../api/CommonTools'\nimport Static from '../res/Static'\nimport Config from '../res/Config'\nimport WACode from '../res/WACode'\nimport { Link, useHistory } from 'react-router-dom';\nimport Permission from '../api/Permission';\nimport SetTools from '../api/SetTools';\nfunction CartTable(props) {\n const { productItems, totalCount, totalAmount, discount, payable, group, catData, type } = props;\n const cartUpdateCount = useSelector(state => state.shoppingCart.cartUpdateCount);\n const originalCart = useSelector(state => state.shoppingCart.originalCart);\n const cartId = useSelector(state => state.shoppingCart.cartId);\n const enableUpdates = useSelector(state => state.checkout.enableUpdates);\n const maximumError = useSelector(state => state.checkout.maximumError);\n const dispatch = useDispatch();\n const history = useHistory();\n\n const updateProduct = async (e) => {\n if (e.currentTarget.className.indexOf(\"updated\") != -1) {\n //if (Permission.eventPermission()) {\n let tempMaximumError = [];\n CommonTools.waFireClick(WACode.btnUpdateCart)\n dispatch(allActions.loadingAction.changeLoading(true))\n let group = e.currentTarget.getAttribute(\"data-group\");\n let updatedProduct = document.querySelectorAll('input[data-group=\"' + group + '\"]');\n let filterProduct = [];\n let hasRemoved = false;\n updatedProduct.forEach(value => {\n //if (value.value != CommonTools.getMatchItem(originalCart, value.getAttribute(\"data-itemId\")).qty) {\n let newPromise = {}\n if (value.value == 0) {\n hasRemoved = true;\n newPromise = axios({\n method: \"delete\",\n timeout: 40000,\n url: Config.storeLink + \"V1/guest-carts/\" + cartId + \"/items/\" + value.getAttribute(\"data-itemid\")\n })\n } else {\n newPromise = axios({\n method: \"post\",\n timeout: 40000,\n url: Config.storeLink + \"V1/guest-carts/\" + cartId + \"/items\",\n data: SetTools.generateSetObject(cartId, value.getAttribute(\"data-itemid\"), value.value)\n\n })\n }\n\n filterProduct.push(newPromise)\n value.value <= 99 ? \"\" : tempMaximumError.push(value.getAttribute(\"data-sku\"))\n //CommonTools.insertItem(tempMaximumError, { index: tempMaximumError.length, item: value.getAttribute(\"data-itemid\")})\n //}\n })\n\n await axios\n .all(filterProduct)\n .then(axios.spread((...responses) => {\n responses.forEach(res => console.log(res.data))\n if (hasRemoved) {\n location.reload();\n }\n dispatch(allActions.shoppingCartAction.setCartUpdateCount(cartUpdateCount + 1))\n dispatch(allActions.checkoutAction.pushEnableUpdates([]))\n setTimeout(() => { dispatch(allActions.loadingAction.changeLoading(false)) }, 1000);\n }))\n .catch(error => {\n console.log(error)\n history.push(\"/serverError\")\n })\n\n //dispatch(allActions.checkoutAction.pushMaximumError([]))\n dispatch(allActions.checkoutAction.pushMaximumError(tempMaximumError))\n //}\n }\n\n }\n\n const maxLengthCheckWithUpdated = (e) => {\n let tempEnableUpdates = enableUpdates;\n if (!enableUpdates.includes(e.currentTarget.getAttribute(\"data-group\"))) {\n tempEnableUpdates.push(e.currentTarget.getAttribute(\"data-group\"))\n dispatch(allActions.checkoutAction.pushEnableUpdates([]))\n dispatch(allActions.checkoutAction.pushEnableUpdates(tempEnableUpdates))\n }\n }\n\n const handleBulkTips = (e) => {\n let tipsId = e.currentTarget.getAttribute(\"data-toggle\")\n let content = document.getElementById(tipsId);\n let toggle = document.getElementById(tipsId + \"Toggle\")\n content.classList.toggle(\"hidden\");\n toggle.classList.toggle(\"opened\");\n }\n\n const handleBackToShopping = (e) => {\n history.goBack()\n }\n\n const handleAddQty = (e) => {\n let mId = e.currentTarget.getAttribute('data-id'); \n let mMax = 999;\n let mMin = 0;\n let mVal = parseInt(document.querySelector('#'+mId).value);\n if(mVal >= 0 && mVal < mMax && mVal >= mMin){\n document.querySelector('#'+mId).value = mVal+1; \n let tempEnableUpdates = enableUpdates;\n if (!enableUpdates.includes(e.currentTarget.getAttribute(\"data-group\"))) {\n tempEnableUpdates.push(e.currentTarget.getAttribute(\"data-group\"))\n dispatch(allActions.checkoutAction.pushEnableUpdates([]))\n dispatch(allActions.checkoutAction.pushEnableUpdates(tempEnableUpdates))\n }\n }\n }\n\n const handleMinusQty = (e) => {\n let mId = e.currentTarget.getAttribute('data-id'); \n let mMax = 999;\n let mMin = 0;\n let mVal = parseInt(document.querySelector('#'+mId).value);\n if(mVal >0 && mVal <= mMax && mVal > mMin){\n document.querySelector('#'+mId).value = mVal-1;\n let tempEnableUpdates = enableUpdates;\n if (!enableUpdates.includes(e.currentTarget.getAttribute(\"data-group\"))) {\n tempEnableUpdates.push(e.currentTarget.getAttribute(\"data-group\"))\n dispatch(allActions.checkoutAction.pushEnableUpdates([]))\n dispatch(allActions.checkoutAction.pushEnableUpdates(tempEnableUpdates))\n }\n }\n }\n\n return (\n \n {productItems && productItems.length > 0 ?\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n {productItems.map((value, index) => {\n return \n \n \n \n \n \n })\n }\n \n
    \n {Static.checkoutSubTitle}\n {Static.price}
    \n
    \n {Static.count} \n {Static.amount}
    {Static.unit}
    \n \n {value.name} \n {value.description &&\n \n }\n {value.product_type == \"bundle\" &&\n \n }\n

    \n {(value.outOfStock == 1) ? Static.outOfStockError : Static.generalError}

    \n
    \n
    \n \n {\"$\" + CommonTools.priceFormat(value.price)}\n \n \n
    \n \n
    \n\n \n\n
    \n \n
    \n
    \n \n {\"$\" + CommonTools.priceFormat(value.price * value.qty)}\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n {Static.alreadySelectCount}\n {totalCount}
    \n
    \n {Static.alreadySelectAmount}\n {\"$\" + totalAmount}
    \n
    \n {discount != 0 ?\n
    \n
    \n {Static.discountAmount}\n {\"$\" + discount}
    \n
    \n {Static.discountedAmount}\n {\"$\" + payable}
    \n
    : \"\"}\n
    \n \n
    :
    }\n \n )\n}\n\nexport default React.memo(CartTable);\n","import React, { useEffect, useLayoutEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport allActions from '../actions'\nimport Loading from './widgets/Loading'\nimport ShoppingCart from './ShoppingCart'\nimport CartTable from './CartTable'\nimport CheckoutBtn from './widgets/CheckoutBtn'\nimport CommonTools from '../api/CommonTools'\nimport Static from '../res/Static'\nimport { Link } from 'react-router-dom';\n\nfunction Checkout() {\n const shoppingCart = useSelector(state => state.shoppingCart.shoppingCart);\n const originalCart = useSelector(state => state.shoppingCart.originalCart);\n const catDatas = useSelector(state => state.shoppingCart.catDatas);\n const maximumError = useSelector(state => state.checkout.maximumError);\n const soldoutError = useSelector(state => state.checkout.soldoutError);\n\n const checkoutStatus = useSelector(state => state.checkout.checkoutStatus);\n\n useEffect(() => {\n CommonTools.waFire()\n }, [])\n\n return (\n
    \n \n \n
    \n
    \n
    \n

    {Static.noItemInCart}

    \n
    \n
    \n

    {Static.yourShoppingCartNoItems}

    \n

    {Static.clickLink} {Static.here} {Static.continueShop}

    \n
    \n
    \n
    0 && checkoutStatus != 0) ? \"show\" : \"hidden\")}>\n
    \n
    \n

    {Static.checkoutTitle}

    \n
    \n
      0 && soldoutError.length < 1) ? \"show\" : \"hidden\")}>\n
      • {Static.partialError}\n
    \n
      0 ? \"show\" : \"hidden\")}>\n
      • {Static.miniPartialError}\n
    \n \n
    \n
    \n
    \n
    \n
    \n {Static.checkoutSelectLabel}
    {Static.checkoutSelectTip}
    \n
    \n
    {\"$\" + shoppingCart.totalAmount}
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n )\n}\n\nexport default React.memo(Checkout);","import React from 'react';\nimport Static from '../res/Static'\nfunction NonSupport() {\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n )\n}\n\nexport default React.memo(NonSupport);","import React from 'react';\nimport { useSelector } from 'react-redux'\nimport Static from '../res/Static'\nfunction ServerError() {\n const loadingStatus = useSelector(state => state.loading.loadingStatus);\n return (\n
    \n
    \n
    \n )\n}\n\nexport default React.memo(ServerError);","import React from 'react';\nimport { useSelector } from 'react-redux'\nimport Static from '../res/Static'\nfunction Suspension() {\n const loadingStatus = useSelector(state => state.loading.loadingStatus);\n return (\n
    \n
    \n
    \n )\n}\n\nexport default React.memo(Suspension);","import Landing from '../components/Landing';\nimport Temp from '../components/Temp';\nimport Set from '../components/Set';\nimport Simple from '../components/Simple';\nimport Single from '../components/Single';\nimport Special from '../components/Special';\nimport Checkout from '../components/Checkout';\nimport CommonTools from '../api/CommonTools'\nimport NonSupport from '../components/NonSupport';\nimport ServerError from '../components/ServerError';\nimport Suspension from '../components/Suspension';\n\nlet Routes = [];\nif (CommonTools.checkVersion() != 0 && CommonTools.checkVersion() < 10) {\n Routes = [\n {\n path: \"/\",\n component: NonSupport\n }\n ]\n} else {\n Routes = [\n {\n path: \"/\",\n component: Temp,\n exact: true,\n },\n {\n path: \"/set/:catId/:productId?\",\n component: Set\n },\n {\n path: \"/simple/:catId\",\n component: Simple\n },\n {\n path: \"/single/:catId\",\n component: Single\n },\n {\n path: \"/special/:catId\",\n component: Special\n },\n {\n path: \"/checkout\",\n component: Checkout\n },\n {\n path: \"/Suspension\",\n component: Suspension\n },\n {\n path: \"/serverError\",\n component: ServerError\n }\n ]\n}\n\nexport default Routes","import { createBrowserHistory as createHistory } from 'history'\nimport store from './store/index'\nimport allActions from './actions'\nimport Permission from './api/Permission';\nimport Menu from './api/Menu';\n\nconst history = createHistory()\nconst location = history.location\nconst unlisten = history.listen((location, action) => {\n //console.log(store.getState().permission.role)\n let prevRole = store.getState().permission.role\n let currentRole = Permission.detectPermission()\n store.dispatch(allActions.permissionAction.setRole(currentRole))\n Permission.statusChange(prevRole, currentRole, \"navigator\")\n Menu.menuDetect()\n /*$(\".specialOverlay\").show();\n setTimeout(() => {\n $(\".specialOverlay\").hide();\n }, 1000);*/\n})\n\nexport default history","import React, { useEffect } from 'react';\nimport store from './store/index'\nimport routes from './routes/index.js';\n// import { GlobalStyle } from './style';\nimport { renderRoutes } from 'react-router-config';\nimport { HashRouter, HashRouter as Router, Link } from 'react-router-dom';\nimport { Provider } from 'react-redux'\nimport allActions from './actions'\nimport history from './history'\nimport Menu from './api/Menu'\nimport Permission from './api/Permission'\nimport Config from './res/Config'\n\nfunction App() {\n useEffect(() => {\n /*setTimeout(() => {\n $(\".specialOverlay\").hide();\n }, 1000);*/\n store.dispatch(allActions.permissionAction.setRole(Permission.detectPermission()))\n Menu.menuDetect()\n }, []);\n return (\n <>\n \n \n {renderRoutes(routes)}\n \n \n \n );\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\nimport \"@babel/polyfill\";\nimport \"formdata-polyfill\";\nimport \"isomorphic-fetch\";\nimport Es6Promise from 'es6-promise';\nimport 'nodelist-foreach-polyfill';\n//import 'bootstrap/dist/css/bootstrap.css'\n\nEs6Promise.polyfill();\nReactDOM.render(, document.getElementById('root'));","import \"ie-string-startswith-polyfill\";\nconst envDetection = () => {\n let env = \"prd\";\n let host = window.location.host + \"\";\n if (debugMode) {\n if (host.startsWith(\"127.0.0.1\") || host.startsWith(\"localhost\")) {\n env = \"local\"\n } else if (host.startsWith(\"uv-member.hkjc.com\")) {\n env = \"uv\"\n } else if (host.startsWith(\"pv-member.hkjc.com\")) {\n env = \"pv\"\n }\n }\n return env;\n}\n\nconst cateogryImage = () => {\n let domain = \"https://res.hkjc.com/media/catalog/category/\";\n let env = envDetection();\n if (debugMode) {\n switch (env) {\n case \"local\":\n //domain = \"https://shop.hkjc.com/pub/media/\";\n domain = \"https://shop.hkjc.com\";\n break;\n case \"uv\":\n // code block\n domain = \"https://shop.hkjc.com\";\n break;\n case \"pv\":\n // code block\n break;\n default:\n // code block\n }\n }\n return domain;\n}\n\nconst mediaDomain = () => {\n let domain = \"https://res.hkjc.com/media/\";\n let env = envDetection();\n if (debugMode) {\n switch (env) {\n case \"local\":\n domain = \"https://shop.hkjc.com/pub/media/\";\n break;\n case \"uv\":\n domain = \"https://shop.hkjc.com/pub/media/\"\n break;\n case \"pv\":\n // code block\n break;\n default:\n // code block\n }\n }\n return domain;\n}\n\nconst envDomain = () => {\n let domain = \"https://member.hkjc.com/\";\n let env = envDetection();\n if (debugMode) {\n switch (env) {\n case \"local\":\n\n break;\n case \"uv\":\n domain = \"https://uv-member.hkjc.com/\";\n break;\n case \"pv\":\n domain = \"https://pv-member.hkjc.com/\";\n break;\n default:\n // code block\n }\n }\n return domain;\n}\n\nconst campDomain = (ev) => {\n let domain = \"https://campaign.hkjc.com/\";\n let env = envDetection();\n if (debugMode) {\n switch (env) {\n case \"local\":\n\n break;\n case \"uv\":\n //domain = \"http://dv-campaign/\";\n domain = \"https://uv-campaign.hkjc.com/\";\n break;\n case \"pv\":\n domain = \"https://pv-campaign.hkjc.com/\";\n break;\n default:\n // code block\n }\n }\n return domain;\n}\nexport default {\n envDetection,\n cateogryImage,\n mediaDomain,\n envDomain,\n campDomain\n}","import React from 'react';\nimport { useSelector } from 'react-redux'\nimport Static from '../../res/Static'\nfunction Loading() {\n const loadingStatus = useSelector(state => state.loading.loadingStatus);\n return (\n
    \n \n
    \n )\n}\n\nexport default React.memo(Loading);","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport axios from 'axios'\nimport Static from '../res/Static'\nimport Config from '../res/Config'\nimport { Link, useHistory } from 'react-router-dom';\n\nfunction CatDescription(props) {\n const { myCatId } = props;\n const dispatch = useDispatch();\n const history = useHistory();\n \n function getCatDescription() {\n return dispatch => {\n axios.get(\n Config.storeLink + 'V1/categories/' + myCatId,{timeout: 15000}).then(responses => {\n let flag = false;\n responses.data.custom_attributes.map((item) => { \n if(item){\n if(item.attribute_code == \"description\"){\n if(item.value){\n flag = true;\n document.querySelector('#catDescriptionContent').innerHTML = item.value\n }else{\n document.querySelector('#catDescriptionContent').innerHTML = \"\"\n }\n } \n } \n })\n if(!flag){\n document.querySelector('#catDescriptionContent').innerHTML = \"\"\n }\n })\n .catch(error => {\n history.push(\"/serverError\")\n })\n }\n }\n useEffect(() => {\n dispatch(getCatDescription())\n }, [myCatId])\n\n return (
    \n
    \n
    \n )\n}\n\nexport default React.memo(CatDescription);","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport Static from '../res/Static'\n\nfunction ShoppingStatus() {\n const successStatus = useSelector(state => state.product.successStatus);\n const failStatus = useSelector(state => state.product.failStatus);\n //const outofStockStatus = useSelector(state => state.product.outofStockStatus);\n\n return (\n <>\n
      \n
      • {Static.addedSuccess}
    \n
      \n
      • {Static.addedFail}
    \n {/*
      \n
      • {Static.outofStockFail}
    */}\n \n )\n}\n\nexport default React.memo(ShoppingStatus);","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport allActions from '../actions'\nimport Static from '../res/Static'\nimport { Link, useHistory } from 'react-router-dom';\nimport Config from '../res/Config';\nimport CommonTools from '../api/CommonTools';\nimport Menu from '../api/Menu';\nimport WACode from '../res/WACode';\n\nfunction Tab(props) {\n const { catId } = props;\n const dispatch = useDispatch();\n const history = useHistory();\n\n const menu = useSelector(state => state.global.menu);\n const activeTab = useSelector(state => state.global.activeTab);\n\n function getData() {\n return async dispatch => {\n let allIds = [];\n let tempIds = [];\n //CommonTools.extractSubMenuObject(catId).ids.map(subIds => {\n CommonTools.extractSubMenuObject(catId).ids.map(subIds => {\n // console.log(subIds.id)\n allIds.push(subIds.id)\n })\n let allStatus = await Menu.categoryAllStatus(allIds);\n allStatus ? allStatus.forEach(v => {\n if (v) {\n if (v.is_active) {\n tempIds.push(v)\n }\n }\n }) : \"\"\n dispatch(allActions.globalAction.setActiveTab(tempIds))\n }\n }\n\n useEffect(() => {\n dispatch(getData());\n }, [catId, menu]);\n\n const handleSwitchTab = (e) => {\n let link = e.currentTarget.getAttribute(\"data-link\")\n let type = e.currentTarget.getAttribute(\"data-type\")\n let id = link.split(\"/\")[2];\n let code = \"\"\n /*switch (type) {\n case 'set':\n code = WACode.setTab\n break;\n case 'simple':\n code = WACode.simpleTab\n case 'single':\n code = WACode.singleTab\n break;\n case 'special':\n code = WACode.specialTab\n break;\n default:\n code = WACode.setTab\n }*/\n if(id == \"653\" || id == \"656\"){\n code = WACode.westTab\n }else if(id == \"654\" || id == \"657\"){\n code = WACode.chiTab\n }else if(id == \"655\" || id == \"658\"){\n code = WACode.partyTab\n }else{\n code = WACode.singleTab\n }\n CommonTools.waFireClick(code)\n history.push(link)\n }\n\n return (
    \n
      \n {activeTab ? activeTab.map(v => {\n return (\n
    • \n {v.name}\n
    • \n )\n }) : \"\"}\n
    \n {/*
    \n \n
    */}\n
    \n )\n}\n\nexport default React.memo(Tab);","import React, { useEffect } from 'react';\nimport allActions from '../../actions'\nimport { useSelector, useDispatch } from 'react-redux'\nimport Static from '../../res/Static'\nfunction Disable() {\n const dispatch = useDispatch();\n useEffect(() => {\n dispatch(allActions.loadingAction.changeLoading(false))\n }, []);\n\n return (\n
    \n
    \n {Static.disable}\n
    \n
    \n )\n}\n\nexport default React.memo(Disable);","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux'\nimport allActions from '../../actions'\nimport Permission from '../../api/Permission'\nimport Static from '../../res/Static'\nfunction Logout() {\n const role = useSelector(state => state.permission.role);\n const dispatch = useDispatch();\n const HandleSignOut = (e) => {\n if (confirm(Static.signoutConfim)) {\n Permission.clearPermission()\n dispatch(allActions.permissionAction.setRole(Permission.detectPermission()))\n }\n }\n return (\n role ? : <>\n )\n}\n\nexport default React.memo(Logout);","import React from 'react';\nimport { useSelector } from 'react-redux'\nimport Static from '../res/Static'\nimport Logout from './widgets/Logout';\nfunction HeaderBanner() {\n return (\n
    \n \n
    \n {Static.takeawayTxt}\n
    \n
    \n
    \n
    \n )\n}\n\nexport default React.memo(HeaderBanner);"],"sourceRoot":""}