{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/res/Static.js","webpack:///./src/components/widgets/Logout.js","webpack:///./src/components/widgets/AddToBundleCartBtn.js","webpack:///./src/components/widgets/CheckoutBtn.js","webpack:///./src/components/SetItems.js","webpack:///./src/components/SetList.js","webpack:///./src/api/SetTools.js","webpack:///./src/components/widgets/AddToCartBtn.js","webpack:///./src/res/Config.js","webpack:///./src/res/chConfig.js","webpack:///./src/res/enConfig.js","webpack:///./src/res/Menu.js","webpack:///./src/api/Menu.js","webpack:///./src/api/Permission.js","webpack:///./src/res/WACode.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/Special.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/api/CommonTools.js","webpack:///./src/res/landing.js","webpack:///./src/components/Landing.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/ShoppingCart.js","webpack:///./src/api/SimpleTools.js","webpack:///./src/components/widgets/Loading.js","webpack:///./src/components/ShoppingStatus.js","webpack:///./src/components/Tab.js","webpack:///./src/components/widgets/Disable.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","role","useSelector","state","permission","dispatch","useDispatch","className","onClick","confirm","Static","signoutConfim","Permission","clearPermission","allActions","permissionAction","setRole","detectPermission","aria-hidden","logoutLabel","catId","useParams","cartUpdateCount","shoppingCart","cartId","activeProduct","product","history","useHistory","handleBundleAddToCart","eventPermission","Menu","menuDetect","typeDetect","myPartID","SetTools","addToCartValidate","loadingAction","changeLoading","axios","post","Config","storeLink","generateCartObject","sku","fetchBundleOptions","res","scrollDuration","productAction","setSuccessStatus","setFailStatus","shoppingCartAction","setCartUpdateCount","checkoutAction","pushEnableUpdates","resetSetInputQtyField","CommonTools","waFireClick","WACode","overAddtocart","setTimeout","$","animate","scrollTop","alert","itemAddAlert","addToCartAlert","title","backToHome","addToCart","addPartySetToCartCaption","OTP","startShoppingDetail","maximumError","checkout","soldoutError","location","useLocation","code","pathname","startsWith","btnCheckout","shoppingCheckout","href","checkoutForm","productId","setItems","useEffect","urlParam","generateParam","productDomain","fetchSetItems","fetchProductSku","items","encodeURIComponent","handleClick","currentTarget","getAttribute","classList","contains","text","val","v","data-value","priceFormat","price","dangerouslySetInnerHTML","__html","getCustomAttribute","productSku","detailProduct","consolidateProduct","getData","tempDetailProduct","bundleRelatedSku","all","spread","responses","setActiveProduct","fetchdetailProduct","genConsolidateProduct","bundleOptions","setShoppingCartTop","log","index","data-max","getMax","getTitle","getPartyCatSelectTitle","style","clear","cValue","subValue","subIndex","flag","imageSrc","data-sku","popupBundleProductImg","data-src","data-gallery","data-title","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","find","trigger","bundle_options","cart_item","quote_id","qty","k","option","product_links","subOption","method","url","selectioncat","mItem","requiredQty","fetchCartBundleOptions","original","entire","tempOptionId","tempItem","product_type","originalOptions","product_option","entireOptions","option_selections","subV","optionId","itemId","option_qty","itemRelatedSku","temp","environment","productDomainDV","includes","each","html","attr","generateCheckoutOptions","mText","generateSetObject","item_id","handleMultipleAddtocart","addToCartArray","SimpleTools","validateMinimunOrder","filterProduct","errorCount","resetInputQtyField","itemSku","scrollToTop","storeName","subStoreName","storeId","checkoutCartId","menu","subCat","ids","storeLinkDV","EnvironmentTools","categoryImage","storeHome","language","restuarantHome","waCheckout","pageFireCount","skuSeparator","cartIdName","token","memberId","memberFId","activeMenu","activeType","otpUrl","verifyCatId","extractSubType","categoryStatus","parentMenu","eraseMenu","disable","storePage","categoryAllStatus","cats","categoryObject","getChildren","cat","categoryChildren","children_data","is_active","menuStatus","activeCat","prevMenu","localStorage","getItem","allMenus","allStatus","menuFlag","menuChange","store","globalAction","setMenu","hash","prev","current","setItem","menuAlert","statusRedirect","typeChange","typeAlert","removeItem","fetchCartId","addMenuStatus","process","subP","landTypeDetect","prevType","subIds","Cookies","Date","setMinutes","getMinutes","expires","specialOTP","refer","tempRefer","substring","statusChange","prevRole","currentRole","expiration","landingChange","landingPermission","getState","remove","startShopping","shoppingViewCart","setTab","simpleTab","specialTab","setLand","simpleLand","specialLand","defaultState","loadingStatus","cartloadingStatus","action","successStatus","failStatus","cartDetailStatus","originalCart","hamperCount","hamperAmount","hamperDiscount","hamperPayable","festiveCount","festiveAmount","festiveDiscount","festivePayable","totalCount","totalAmount","shoppingCartLength","catDatas","discountCart","enableUpdates","checkoutStatus","currentCategory","category","activeTab","entireMenuStatus","global","rootReducer","combineReducers","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","createStore","reducer","applyMiddleware","thunk","categoryAction","fetchCategory","setType","extractType","tempProduct","productStatus","waFire","click","restaurantName","class","products","catPromise","catInfo","priceLabel","changeCartLoading","fetchOriginalCart","fetchDiscountCart","setShoppingCart","switchCartDetailStatus","getShoppingCartLength","getCatDatas","pushMaximumError","pushSoldOutError","switchCheckoutStatus","setActiveTab","setEntireMenuStatus","formatter","Intl","NumberFormat","minimumFractionDigits","format","Number","getMatchItem","str","generateProductParam","WATracker","trackPageView","wa_id","trackClickEvent","waNonStandardFire","updateShoppingCart","discountData","hamperIds","totalPayable","matchItem","totalDiscount","discount_amount","insertItem","array","newArray","specificQty","custom_attributes","attribute_code","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","formatPrice","mprice","String","extractSubMenuObject","obj","subMenu","menuId","extractIdsByType","landingContent","landing","handleOnClick","link","Loading","image","subItem","data-type","data-sub-type","data-link","props","productItems","discount","payable","group","catData","updateProduct","tempMaximumError","updatedProduct","hasRemoved","newPromise","reload","maxLengthCheckWithUpdated","tempEnableUpdates","Fragment","rowSpan","checkoutSubTitle","colSpan","count","amount","unit","sortData","outOfStock","outOfStockError","generalError","data-rwd-label","tablePrice","data-rwd-tax-label","freeTax","data-itemid","data-group","size","data-minorder-qty","subTotal","alreadySelectCount","alreadySelectAmount","discountAmount","discountedAmount","checkoutInfo","backToShopping","goBack","ShoppingCart","noShow","noItemInCart","yourShoppingCartNoItems","clickLink","to","here","continueShop","checkoutTitle","partialError","miniPartialError","checkoutSelectLabel","checkoutSelectTip","CheckoutBtn","errorNonSupport","serverErrorHandler","serverSuspendHandler","Routes","path","component","NonSupport","Landing","exact","Set","Simple","Special","Checkout","Suspension","ServerError","createHistory","listen","App","renderRoutes","routes","Es6Promise","polyfill","ReactDOM","render","envDetection","env","host","debugMode","cateogryImage","domain","envDomain","campDomain","ev","getCartItem","getCartId","tempSoldoutError","tempProductData","tempOriginal","optionDetail","tempOptionDetail","soldoutCode","tempSortData","addEventListener","removeEventListener","onMouseEnter","isMobile","onMouseLeave","cartNoProduct","width","shoppingLabel","total","display","sumPayable","allTotal","allUnit","cartTips","checkShoppingCart","startShoppingLabel","generateCheckoutObject","addedSuccess","addedFail","allIds","tempIds","handleSwitchTab"],"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 = \"2d907244b8859fda0d63\";\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([613,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 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 {Static.logoutLabel}\n
: <>\n )\n}\n\nexport default React.memo(Logout);","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 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.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 (validatePartyFoodQty(datacat, 1)) {\n document.querySelector('#' + mId).value = mVal + 1;\n updatePartyFoodIndicator(datacat)\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}","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\tscrollToTop(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 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: \"\",\n storeLink: \"https://shop.hkjc.com/\" + Config.storeName + \"/index.php/rest/\" + Config.subStoreName + \"/\",\n storeLinkDV: \"/member/jason_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/sixfurlong/form.aspx?lang=\" + lang + \"&key=\",\n storeHome: \"/member/\" + language + \"/exclusive-shopping/takeaway/index.aspx\",\n restuarantHome: \"/member/\" + language + \"/exclusive-shopping/takeaway/sixfurlong/index.aspx\",\n waCheckout: \"sfsfetakeaway\",\n pageFireCount: 0,\n skuSeparator: \"|||||||||||||||||\",\n cartIdName: \"sfsfeCartId\",\n token: \"takeoutRole\",\n memberId: \"takeoutMemberId\",\n memberFId: \"takeoutMemberFId\",\n // token: \"storeRole\",\n // memberId: \"memberId\",\n // memberFId: \"memberFId\",\n activeMenu: \"sfsfeActiveMenu\",\n activeType: \"sfsfeActiveType\",\n otpUrl: \"/member/\" + language + \"/exclusive-shopping/takeaway/otp.aspx\"\n}\n\nexport default Config\n","export default {\n storeName: \"sfsfetakeaway\",\n subStoreName: \"sfsfetakeaway_chinese\",\n storeId: 17,\n checkoutCartId:[43]\n};\n","export default {\n storeName: \"sfsfetakeaway\",\n subStoreName: \"sfsfetakeaway_english\",\n storeId: 16,\n checkoutCartId:[43]\n};\n","let Menu = [\n {\n id: 156,\n subCat: [{\n type: \"breakfast\",\n ids: [\n {\n type: \"set\",\n id: 158\n },\n {\n type: \"simple\",\n id: 161\n },\n {\n type: \"special\",\n id: 176\n }\n ]\n },\n {\n type: \"lunch\",\n ids: [\n {\n type: \"set\",\n id: 159\n },\n {\n type: \"simple\",\n id: 162\n },\n {\n type: \"special\",\n id: 177\n }\n ]\n },\n {\n type: \"dinner\",\n ids: [\n {\n type: \"set\",\n id: 160\n },\n {\n type: \"simple\",\n id: 163\n },\n {\n type: \"special\",\n id: 178\n }\n ]\n }]\n },\n {\n id: 157,\n subCat: [{\n type: \"breakfast\",\n ids: [\n {\n type: \"set\",\n id: 164\n },\n {\n type: \"simple\",\n id: 179\n },\n {\n type: \"special\",\n id: 191\n }\n ]\n },\n {\n type: \"lunch\",\n ids: [\n {\n type: \"set\",\n id: 165\n },\n {\n type: \"simple\",\n id: 180\n },\n {\n type: \"special\",\n id: 192\n }\n ]\n },\n {\n type: \"dinner\",\n ids: [\n {\n type: \"set\",\n id: 166\n },\n {\n type: \"simple\",\n id: 181\n },\n {\n type: \"special\",\n id: 193\n }\n ]\n }]\n }\n];\n\nexport default Menu","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 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 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}","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 btnCheckout: \"btn_takeaway_Checkout\", //check out btn\n setTab: \"tab_takeaway_Set\",\n simpleTab: \"tab_takeaway_AlaCarte\",\n specialTab: \"tab_takeaway_Speciality\",\n setLand: \"btn_takeaway_Set\",\n simpleLand: \"btn_takeaway_AlaCarte\",\n specialLand: \"btn_takeaway_Speciality\"\n};\n\nexport default WACode","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 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 Logout from './widgets/Logout';\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 }, [])\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 {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\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 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 Logout from './widgets/Logout';\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 }, [])\n\n useEffect(() => {\n dispatch(allActions.loadingAction.changeLoading(true))\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 {currentCategory.is_active ?
    \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 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 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 dispatch(allActions.loadingAction.changeLoading(false))\n CommonTools.setShoppingCartTop()\n } else {\n dispatch(allActions.productAction.fetchdetailProduct({}))\n }\n }\n }\n\n useEffect(() => {\n dispatch(getData());\n }, [productSku]);\n\n const imageDetect = (product) => {\n let flag = false;\n let imageSrc = 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 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 SetItems from './SetItems'\nimport SetList from './SetList'\nimport Menu from '../api/Menu';\nimport Disable from './widgets/Disable';\nimport AddToBundleCartBtn from './widgets/AddToBundleCartBtn';\nimport Logout from './widgets/Logout';\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 }, [])\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 {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\nexport default React.memo(Special);","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}","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 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\nconst resetInputValue = (id, value) => {\n document.getElementById(id).value = value\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 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\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 resetInputValue,\n getOtherInfoBySKU,\n setShoppingCartTop,\n compareQty,\n skuFilter,\n checkVersion,\n encodeParam,\n formatPrice,\n extractSubMenuObject,\n extractType,\n extractSubType,\n parentMenu,\n activeCat,\n extractIdsByType\n}","let landingContent = landing;\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 '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 allActions from '../actions'\nimport axios from 'axios'\nimport CommonTools from '../api/CommonTools'\nimport Static from '../res/Static'\nimport Config from '../res/Config'\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.waFire()\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 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 {\"$\" + 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 Set from '../components/Set';\nimport Simple from '../components/Simple';\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: Landing,\n exact: true,\n },\n {\n path: \"/landing\",\n component: Landing\n },\n {\n path: \"/set/:catId/:productId?\",\n component: Set\n },\n {\n path: \"/simple/:catId\",\n component: Simple\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})\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 store.dispatch(allActions.permissionAction.setRole(Permission.detectPermission()))\n Menu.menuDetect()\n }, []);\n return (\n \n \n {renderRoutes(routes)}\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, { 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/\"\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","\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 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 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 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 code = \"\"\n switch (type) {\n case 'set':\n code = WACode.setTab\n break;\n case 'simple':\n code = WACode.simpleTab\n break;\n case 'special':\n code = WACode.specialTab\n break;\n default:\n code = WACode.setTab\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);"],"sourceRoot":""}