{"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/res/landing.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/components/Landing.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/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","landingContent","landing","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","menu","global","entireMenuStatus","globalAction","setEntireMenuStatus","addMenuStatus","show","waFire","handleOnClick","link","setLand","simpleLand","specialLand","landTypeDetect","landingPermission","restaurantName","subCat","image","ids","subItem","is_active","data-type","data-sub-type","data-link","storeName","subStoreName","storeId","checkoutCartId","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","menuStatus","activeCat","prevMenu","localStorage","getItem","allMenus","allStatus","menuFlag","menuChange","store","setMenu","hash","prev","current","setItem","menuAlert","statusRedirect","typeChange","typeAlert","removeItem","fetchCartId","process","subP","prevType","subIds","Cookies","Date","setMinutes","getMinutes","expires","specialOTP","refer","tempRefer","substring","statusChange","prevRole","currentRole","expiration","landingChange","getState","remove","startShopping","shoppingViewCart","setTab","simpleTab","specialTab","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","rootReducer","combineReducers","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","createStore","reducer","applyMiddleware","thunk","categoryAction","fetchCategory","setType","extractType","tempProduct","productStatus","hide","click","class","products","catPromise","catInfo","priceLabel","changeCartLoading","fetchOriginalCart","fetchDiscountCart","setShoppingCart","switchCartDetailStatus","getShoppingCartLength","getCatDatas","pushMaximumError","pushSoldOutError","switchCheckoutStatus","setActiveTab","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","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","Loading","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 = \"aaab81fe47f654836e2a\";\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([615,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);","let landingContent = landing;\n\nexport default landingContent","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 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)) : $(\"body\").show()\n })\n .catch(error => {\n history.push(\"/serverError\")\n })\n }\n }\n\n useEffect(() => {\n dispatch(allActions.loadingAction.changeLoading(true))\n dispatch(getData());\n //console.log(\"landing loading finished\")\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 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/thegallop/form.aspx?lang=\" + lang + \"&key=\",\n storeHome: \"/member/\" + language + \"/exclusive-shopping/takeaway/index.aspx\",\n restuarantHome: \"/member/\" + language + \"/exclusive-shopping/takeaway/thegallop/index.aspx\",\n waCheckout: \"tgtakeaway\",\n pageFireCount: 0,\n skuSeparator: \"|||||||||||||||||\",\n cartIdName: \"tgCartId\",\n token: \"takeoutRole\",\n memberId: \"takeoutMemberId\",\n memberFId: \"takeoutMemberFId\",\n // token: \"storeRole\",\n // memberId: \"memberId\",\n // memberFId: \"memberFId\",\n activeMenu: \"tgActiveMenu\",\n activeType: \"tgActiveType\",\n otpUrl: \"/member/\" + language + \"/exclusive-shopping/takeaway/otp.aspx\"\n}\n\nexport default Config\n","export default {\n storeName: \"tgtakeaway\",\n subStoreName: \"tgtakeaway_chinese\",\n storeId: 20,\n checkoutCartId:[43]\n};\n","export default {\n storeName: \"tgtakeaway\",\n subStoreName: \"tgtakeaway_english\",\n storeId: 18,\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\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)) : $(\"body\").show();\n })\n .catch(error => {\n history.push(\"/serverError\")\n })\n }\n }\n }\n\n useEffect(() => {\n $(\"body\").hide();\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)) : $(\"body\").show()\n })\n .catch(error => {\n history.push(\"/serverError\")\n })\n }\n }\n }\n\n useEffect(() => {\n $(\"body\").hide();\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)) : $(\"body\").show()\n })\n .catch(error => {\n history.push(\"/serverError\")\n })\n }\n }\n\n useEffect(() => {\n $(\"body\").hide();\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}","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":""}