{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/pic_456.jpg","webpack:///./src/App.vue?3baa","webpack:///./src/store/index.js","webpack:///./src/ga.js","webpack:///./src/App.vue","webpack:///./src/more.js","webpack:///./src/App.vue?ae2f","webpack:///./src/views/main.vue","webpack:///./src/views/main.vue?4be2","webpack:///./src/router/index.js","webpack:///./src/main.js","webpack:///./src/assets/user_default_photo.png","webpack:///./src/lang/en_US.js","webpack:///./node_modules/@stencil/core/internal/client lazy ^\\.\\/.*\\.entry\\.js.*$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","webpack:///./src/assets/logo.png","webpack:///./src/config.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","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","setFormData","params","FormData","append","formatTime","fmt","date","ret","opt","getFullYear","toString","getMonth","getDate","getHours","getMinutes","getSeconds","k","RegExp","exec","replace","padStart","getMonthDays","before","year","Date","month","mon","store","createStore","state","appName","count","barHeight","lang","pageTitle","showLoading","deviceType","connected","exitApp","storeName","isPC","needVerify","bannerDetail","appVersion","getNotification","moreInfo","nowMonthEnd","lastMonthEnd","pastMonthEnd","lPastMonthEnd","nowMonthStart","substr","lastMonthStart","pastMonthStart","lPastMonthStart","deviceHeight","screen","height","emailPatrn","passwordPatrn","phonePatrn","lat","lng","warning","warningMsg","warningFalg","button","userInfo","phoneAreaCode","isMarketingInfo","isPaperReceipt","verifyUserInfo","deviceToken","form","token","photo","phone","selectIndex","location","merchantDetail","bannerInfo","mutations","string","actions","context","config","globalMixin","methods","url","apiUrl","domain","apiDomain","accessToken","nullToken","Authorization","axios","post","headers","hideLoading","errorCode","commit","errorMessage","search","put","gtag","dataLayer","arguments","class","_createBlock","_component_ion_app","id","_ctx","_component_ion_router_outlet","swipeGesture","animated","_createVNode","_component_ion_loading","is-open","cssClass","duration","_component_ion_modal","onDidDismiss","css-class","_createElementVNode","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_component_ion_button","style","onClick","moreJson","defineComponent","mixins","components","IonApp","IonRouterOutlet","IonLoading","IonModal","IonButton","isGetDetail","SplashScreen","show","showDuration","autoHide","this","initFirebase","setGAUserId","getNexwork","getAppInfo","getStorageEvent","setStatusBarStyleLight","$store","getMerchantDetail","$router","beforeEach","to","from","next","clearPoint","exitNo","getPushEvent","getDeviceType","log","App","addListener","checkAppLaunchUrl","useBackButton","processNextHandler","getMoreInfo","toastEvent","path","hide","keyBoardEvent","Keyboard","info","keyboardHeight","innerWidth","MAX_WIDTH","$","on","init","mounted","__exports__","render","_component_ion_page","_component_ion_tabs","ref","onIonTabsDidChange","$options","_createElementBlock","$data","_component_ion_tab_bar","slot","_component_ion_tab_button","tab","_component_ion_label","IonLabel","IonTabs","IonTabBar","IonTabButton","IonPage","logo","require","watch","$route","handler","getTime","addClass","css","removeClass","deep","immediate","afterTabChange","sendGAEvent","routes","redirect","component","Main","children","router","createRouter","history","createWebHistory","process","createWebHashHistory","i18n","createI18n","locale","messages","app","createApp","use","IonicVue","Tab","Icon","Tabs","Checkbox","CheckboxGroup","CountDown","Toast","Form","Field","Button","VanImage","Loading","Collapse","CollapseItem","Lazyload","loading","attempt","preLoad","VueGoogleMaps","load","interceptors","response","localStorage","getItem","isReady","mount","general","Yes","No","And","register","Registration","Youremailaddressis","Yourmobilenumberis","alreadyregistered","Gotologin","ConfirmMobileNumber","Mobiledonotmatch","Emaildonotmatch","ConfirmEmail","EmailAddress","TRPE","TRPM","ODAPP","CreateAccount","ResetPassword","Password","characters","ConfirmPassword","Passwordsdonotmatch","AgreeTo","WouldLike","login","Login","Email","Or","GotoRegister","Mobilenumber","MobileFormatError","EmailFormatError","ContinueWithEmailText","ContinuewithEmail","ContinuewithMobile","IfYouRegistered","IfYouAre","Continue","verify","Resend","Verify","VerificationCode","PleaseInput","tabBar","Home","Offers","More","Me","landing","ValidTill","CollectorCards","eCoupon","LoginRegister","offers","ShopEarn","eCoupons","eStamps","Registernowformoreoffers","Comingsoon","EarnComingsoon1","EarnComingsoon2","EarnComingsoon3","CouponComingsoon1","CouponComingsoon2","CouponComingsoon3","EStampsComingsoon1","EStampsComingsoon2","EStampsComingsoon3","me","MyAccount","EditProfile","TransactionHistory","CollectorCardHistory","eCouponHistory","eStampHistory","RewardsHistory","ReferaFriend","Changepassword","Logout","RorL","Register","more","Community","StoreLocator","UserGuide","AboutUs","FAQs","TermsConditions","PrivacyPolicy","ContactUs","webpackEmptyAsyncContext","req","keys","shareUrl","StatusBar","setOverlaysWebView","overlay","apiConfig","listHomePage","getNewestCampaign","listPromotion","listCampaign","getUserStampCard","listUserStamp","listUserCoupon","listGift","getGiftDetail","getUserGiftRedeemCode","getUserGiftRedeemMsg","getUserCollectStampMsg","clearCollectCodeStatus","listUserReservation","saveUserReservation","listStore","listMerchantArea","listUserFriend","transferStamp","acceptFriend","deleteFriendRequset","searchFriendsByName","addFriend","getCampaignDetail","logout","getUserProfile","sendDeleteAccountEmail","updateUserProfile","forgetUserPassword","resetUserPassword","resendActiveEmail","clearUserReservationCodeStatus","getUserReservationMsg","registerDeviceToken","updateUserIcon","listUserStampHistory","listUserRedeemHistory","grantUserStamp","sendIquiryEmail","resetRegistrationEamil","checkoutUserPassword","changeUserPassword","saveShareData","listHistoryUnReadStatus","getCouponDetail","saveUserCoupon","listCoupon","saveUserAllCoupon","getTempUser","sendSms","verifySms","newRegister","uploadUserIcon","newLogin","checkIsExistFbAccount","changePhone","resendSms","registerTempEmailUser","verifyLoginEmail","updateUserMarketingInfo","registerTempPhoneUser","registerPhysicalCard","getUserMemberTierDetail","getRecipes","getRecipesInfo","getMyGrocerys","createNewPlanRecipes","delMyGrocerys","buyMyGrocerys","exportRecipesInfo","getMyPlanRecipes","planMyRecipes","addMyGrocerys","validateUser","listUserStampCard","detailsUserStampCard","verifySmsForReg","findProfile","confirmProfile","listCouponsAndGift","redeemUserStampCard","redeemUserCoupon","redeemGift","resetUserPasswordByPhone","listStampCardForHomePage","sendVerifyEmail","verifyEmail","resetUserPasswordByEmail","checkIsExistAccount","checkIsExistUserName","transferStampByCode","searchUser","getRecentTransferRecord","receiveTransferStamp","initUserStampCard","passkitGoogle","passkitGetCodeForIos","passkitIos","getTransactionList","bindUserProfile","getRecipientsList","getUserRecipients","getDonationReport","saveUserRecipients","refreshToken","likeGift","getServerTime","getUserNewRewardNotifi","listUserReward","TIMEOUT_CODE","selectNo","loadingTime","defaultIcon","title","showTime","getAuthObj","obj","merchantId","tokenType","clickTabEvent","index","timeoutEvent","setStorageEvent","callback","objdata","merchantCode","dispatch","registerRequiredFields","split","registerCcOtherLoginMethodField","registerShowFields","checkRequiredField","isHave","find","item","checkShowField","category","label","FirebaseAnalytics","logEvent","content_type","content_id","items","setCollectionEnabled","enabled","sendGAPageView","setScreenName","screenName","nameOverride","page_title","page_path","setUserId","userId","isFromLoyalty","registerDeviceTokenEvent","formatDate","input","rule","symbol","indexOf","timeStamp","shortYear","substring","ruleArray","x","getTimeStamp","valueOf","checkToken","Name","registrationBack","firstPage","isPlatform","Storage","set","JSON","stringify","formData","parse","remove","Geolocation","getCurrentPosition","enableHighAccuracy","maximumAge","res","coords","latitude","longitude","setStyle","Style","Dark","Light","webUrl","bannerType","Browser","open","video","text","coverImg","image","description","shareAppEvent","shareDownloadPageUrl","Share","share","dialogTitle","Camera","getPhoto","quality","allowEditing","width","resultType","CameraResultType","Base64","imageUrl","base64String","Network","status","getStatus","PushNotifications","requestPermissions","receive","notification","msg","aps","alert","body","pushNotiEvent","removeAllDeliveredNotifications","dataMsg","pageRedirectType","refId","pageLimit","pageNum","stampCardId","checkStampNum","stamp","success","className","timeOutLogout","eCouponList","stampList","collectCardList","GetRequest","match","uncodeUri","decodeURIComponent","theRequest","str","strArr","transferCode","getLaunchUrl","Request","receiveTransferStampEvent","bool","getInfo","version","now","minimum_version","updateAlert","aboutUs","alertController","buttons","navigator","openBrowser","link","present","cardData","isCallLoyalty","img","tierImg","userName","qrcode","qrCode","query","isLogin","formatString","tmp","charCodeAt","String","fromCharCode"],"mappings":"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","file":"js/app.31d865b2.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\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\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\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-00824aa5\":\"7bb8b11a\",\"chunk-00bf852b\":\"1ca04525\",\"chunk-079e5d5a\":\"67e37bc6\",\"chunk-09567e61\":\"1fa871a7\",\"chunk-101ff9bf\":\"92241a36\",\"chunk-177940c6\":\"9f99b8cf\",\"chunk-19ad1686\":\"7145edd9\",\"chunk-1e6294f2\":\"4313d538\",\"chunk-1e86e520\":\"b8974272\",\"chunk-246a2cbb\":\"e7395662\",\"chunk-27e56620\":\"f8bf557d\",\"chunk-354fc1dc\":\"da6bdf23\",\"chunk-60208fca\":\"5080d793\",\"chunk-279f9612\":\"826871ec\",\"chunk-2b986a98\":\"eed03de1\",\"chunk-2d0aa76a\":\"6f2cec78\",\"chunk-2d0abc10\":\"20147170\",\"chunk-2d0b68f8\":\"d4a79219\",\"chunk-2d0c8871\":\"7a6e8dfc\",\"chunk-2d0d3c84\":\"2e1fabe7\",\"chunk-2d0d6d65\":\"849aca4b\",\"chunk-2d0d78b2\":\"9af03cdb\",\"chunk-2d0e2170\":\"918b6e9a\",\"chunk-2d0e9381\":\"00aadc45\",\"chunk-2d0f0050\":\"683e1972\",\"chunk-2d20732c\":\"e8c0fc40\",\"chunk-2d208e4e\":\"27764722\",\"chunk-2d212be3\":\"3cef8d91\",\"chunk-2d216786\":\"a7e28752\",\"chunk-2d21d677\":\"a306695b\",\"chunk-2d21da93\":\"7ff89bd7\",\"chunk-2d230c96\":\"0db86b4e\",\"chunk-30d81222\":\"e53eae87\",\"chunk-316f0988\":\"85d2a0ab\",\"chunk-377c23fe\":\"405ddc8d\",\"chunk-38ed854c\":\"63be112d\",\"chunk-394ba62a\":\"ae50c950\",\"chunk-398347a4\":\"bb8cc7d9\",\"chunk-3b3d3d00\":\"ce0e6499\",\"chunk-3dca6e2a\":\"fece241d\",\"chunk-43fc2c5c\":\"f4689b72\",\"chunk-49dc4fd2\":\"801b4aa9\",\"chunk-4bc6cbb5\":\"19b31771\",\"chunk-4cdb6b78\":\"9fee79a2\",\"chunk-550ed18a\":\"2285b86a\",\"chunk-57d1011a\":\"6cde005c\",\"chunk-58f5dcd3\":\"08eff622\",\"chunk-5ad9b300\":\"aada94f6\",\"chunk-5d115c69\":\"b56f1e59\",\"chunk-622ad973\":\"e22716d5\",\"chunk-6c37c104\":\"600625ca\",\"chunk-708f6457\":\"36232829\",\"chunk-72eb010c\":\"f9addd10\",\"chunk-745bb3a2\":\"21684fb1\",\"chunk-76ef987c\":\"517f5ef5\",\"chunk-85e427c0\":\"eca981e3\",\"chunk-90dc7ac0\":\"1e4a72db\",\"chunk-932e2742\":\"bc4c7035\",\"chunk-941d46de\":\"dcfc1779\",\"chunk-9549dd88\":\"d28044f1\",\"chunk-a28955d0\":\"281607d7\",\"chunk-d1c29dd8\":\"e684c44e\",\"chunk-d59ff92c\":\"1cfd79ad\",\"chunk-ec6b1e04\":\"c723c7a0\",\"chunk-f03b310c\":\"65ff9c01\",\"chunk-0b438416\":\"1d9d3989\"}[chunkId] + \".js\"\n \t}\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};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-101ff9bf\":1,\"chunk-1e6294f2\":1,\"chunk-246a2cbb\":1,\"chunk-27e56620\":1,\"chunk-354fc1dc\":1,\"chunk-60208fca\":1,\"chunk-394ba62a\":1,\"chunk-3dca6e2a\":1,\"chunk-5d115c69\":1,\"chunk-72eb010c\":1,\"chunk-941d46de\":1,\"chunk-d59ff92c\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-00824aa5\":\"31d6cfe0\",\"chunk-00bf852b\":\"31d6cfe0\",\"chunk-079e5d5a\":\"31d6cfe0\",\"chunk-09567e61\":\"31d6cfe0\",\"chunk-101ff9bf\":\"2f409942\",\"chunk-177940c6\":\"31d6cfe0\",\"chunk-19ad1686\":\"31d6cfe0\",\"chunk-1e6294f2\":\"0aa1b892\",\"chunk-1e86e520\":\"31d6cfe0\",\"chunk-246a2cbb\":\"2cea8fe5\",\"chunk-27e56620\":\"36e1c585\",\"chunk-354fc1dc\":\"4aca4b91\",\"chunk-60208fca\":\"d299fb77\",\"chunk-279f9612\":\"31d6cfe0\",\"chunk-2b986a98\":\"31d6cfe0\",\"chunk-2d0aa76a\":\"31d6cfe0\",\"chunk-2d0abc10\":\"31d6cfe0\",\"chunk-2d0b68f8\":\"31d6cfe0\",\"chunk-2d0c8871\":\"31d6cfe0\",\"chunk-2d0d3c84\":\"31d6cfe0\",\"chunk-2d0d6d65\":\"31d6cfe0\",\"chunk-2d0d78b2\":\"31d6cfe0\",\"chunk-2d0e2170\":\"31d6cfe0\",\"chunk-2d0e9381\":\"31d6cfe0\",\"chunk-2d0f0050\":\"31d6cfe0\",\"chunk-2d20732c\":\"31d6cfe0\",\"chunk-2d208e4e\":\"31d6cfe0\",\"chunk-2d212be3\":\"31d6cfe0\",\"chunk-2d216786\":\"31d6cfe0\",\"chunk-2d21d677\":\"31d6cfe0\",\"chunk-2d21da93\":\"31d6cfe0\",\"chunk-2d230c96\":\"31d6cfe0\",\"chunk-30d81222\":\"31d6cfe0\",\"chunk-316f0988\":\"31d6cfe0\",\"chunk-377c23fe\":\"31d6cfe0\",\"chunk-38ed854c\":\"31d6cfe0\",\"chunk-394ba62a\":\"b8068e9b\",\"chunk-398347a4\":\"31d6cfe0\",\"chunk-3b3d3d00\":\"31d6cfe0\",\"chunk-3dca6e2a\":\"231ab611\",\"chunk-43fc2c5c\":\"31d6cfe0\",\"chunk-49dc4fd2\":\"31d6cfe0\",\"chunk-4bc6cbb5\":\"31d6cfe0\",\"chunk-4cdb6b78\":\"31d6cfe0\",\"chunk-550ed18a\":\"31d6cfe0\",\"chunk-57d1011a\":\"31d6cfe0\",\"chunk-58f5dcd3\":\"31d6cfe0\",\"chunk-5ad9b300\":\"31d6cfe0\",\"chunk-5d115c69\":\"e5b82950\",\"chunk-622ad973\":\"31d6cfe0\",\"chunk-6c37c104\":\"31d6cfe0\",\"chunk-708f6457\":\"31d6cfe0\",\"chunk-72eb010c\":\"9df69154\",\"chunk-745bb3a2\":\"31d6cfe0\",\"chunk-76ef987c\":\"31d6cfe0\",\"chunk-85e427c0\":\"31d6cfe0\",\"chunk-90dc7ac0\":\"31d6cfe0\",\"chunk-932e2742\":\"31d6cfe0\",\"chunk-941d46de\":\"e5b82950\",\"chunk-9549dd88\":\"31d6cfe0\",\"chunk-a28955d0\":\"31d6cfe0\",\"chunk-d1c29dd8\":\"31d6cfe0\",\"chunk-d59ff92c\":\"72d78803\",\"chunk-ec6b1e04\":\"31d6cfe0\",\"chunk-f03b310c\":\"31d6cfe0\",\"chunk-0b438416\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\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([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = \"data:image/jpeg;base64,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\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./App.vue?vue&type=style&index=0&id=2c082107&scoped=true&lang=css\"","import { createStore } from \"vuex\";\r\nimport axios from \"axios\";\r\nimport config from \"../config\";\r\n\r\nconst setFormData = function (data) {\r\n const params = new FormData();\r\n for (const key in data) {\r\n if (data[key] !== null && data[key] !== undefined) {\r\n params.append(key, data[key]);\r\n }\r\n }\r\n return params;\r\n};\r\nconst formatTime = function (fmt, date) {\r\n let ret;\r\n const opt = {\r\n \"Y+\": date.getFullYear().toString(), // 年\r\n \"m+\": (date.getMonth() + 1).toString(), // 月\r\n \"d+\": date.getDate().toString(), // 日\r\n \"H+\": date.getHours().toString(), // 时\r\n \"M+\": date.getMinutes().toString(), // 分\r\n \"S+\": date.getSeconds().toString(), // 秒\r\n };\r\n for (let k in opt) {\r\n ret = new RegExp(\"(\" + k + \")\").exec(fmt);\r\n if (ret) {\r\n fmt = fmt.replace(\r\n ret[1],\r\n ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, \"0\")\r\n );\r\n }\r\n }\r\n return fmt;\r\n};\r\nconst getMonthDays = function (before) {\r\n let year = new Date().getFullYear();\r\n let month = new Date().getMonth() + 1;\r\n if (before && month - before <= 0) {\r\n let mon = 12 + (month - before);\r\n return formatTime(\"YYYY-mm-dd\", new Date(year - 1, mon, 0));\r\n } else if (before && month - before > 0) {\r\n return formatTime(\"YYYY-mm-dd\", new Date(year, month - before, 0));\r\n } else {\r\n return formatTime(\"YYYY-mm-dd\", new Date(year, month, 0));\r\n }\r\n};\r\nexport const store = createStore({\r\n state() {\r\n return {\r\n appName: \"Ritchies Card App\",\r\n count: 1,\r\n barHeight: 0,\r\n lang: \"en_US\",\r\n pageTitle: \"\",\r\n showLoading: false,\r\n deviceType: 1,\r\n connected: true,\r\n exitApp: false,\r\n storeName: \"\",\r\n isPC: false,\r\n needVerify: false,\r\n bannerDetail: \"\",\r\n appVersion: \"\",\r\n getNotification: null,\r\n moreInfo: {},\r\n nowMonthEnd: getMonthDays() + \" 23:59:59\",\r\n lastMonthEnd: getMonthDays(1) + \" 23:59:59\",\r\n pastMonthEnd: getMonthDays(2) + \" 23:59:59\",\r\n lPastMonthEnd: getMonthDays(3) + \" 23:59:59\",\r\n nowMonthStart: getMonthDays().substr(0, 8) + \"01 00:00:00\",\r\n lastMonthStart: getMonthDays(1).substr(0, 8) + \"01 00:00:00\",\r\n pastMonthStart: getMonthDays(2).substr(0, 8) + \"01 00:00:00\",\r\n lPastMonthStart: getMonthDays(3).substr(0, 8) + \"01 00:00:00\",\r\n deviceHeight: window.screen.height,\r\n emailPatrn:\r\n /^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$/,\r\n passwordPatrn:\r\n /^(?=.*[a-zA-Z])(?=.*\\d)(?=.*[!@#$%^&*()+\\-_:;\"'?<>,.|/\\\\]).{8,15}$/,\r\n phonePatrn: /^[\\d]{10}$/,\r\n lat: \"\",\r\n lng: \"\",\r\n warning: {\r\n warningMsg: \"\",\r\n warningFalg: false,\r\n button: [],\r\n },\r\n userInfo: {\r\n phoneAreaCode: \"+61\",\r\n isMarketingInfo: false,\r\n isPaperReceipt: false,\r\n },\r\n verifyUserInfo: null,\r\n deviceToken: \"\",\r\n form: {\r\n token: \"\",\r\n photo: \"\",\r\n phone: \"\",\r\n selectIndex: 0,\r\n location: {},\r\n userInfo: {},\r\n merchantDetail: {},\r\n bannerInfo: {},\r\n },\r\n };\r\n },\r\n mutations: {\r\n async setwarning(state, data) {\r\n state.warning.warningMsg = data.string;\r\n state.warning.warningFalg = true;\r\n },\r\n },\r\n actions: {\r\n async apiEvent(context, data) {\r\n try {\r\n config.globalMixin.methods.showLoading();\r\n const url = data.apiUrl;\r\n delete data[\"apiUrl\"];\r\n let domain = `${config.apiDomain}`;\r\n if (data.apiDomain) {\r\n domain = data.apiDomain;\r\n delete data[\"apiDomain\"];\r\n }\r\n let result;\r\n if (data.accessToken && !data.nullToken) {\r\n const Authorization = data.accessToken;\r\n\r\n delete data[\"accessToken\"];\r\n result = await axios.post(domain + url, data, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `${Authorization}`,\r\n },\r\n });\r\n } else {\r\n if (data.nullToken) {\r\n delete data[\"nullToken\"];\r\n }\r\n result = await axios.post(domain + url, data);\r\n }\r\n config.globalMixin.methods.hideLoading();\r\n if (result.data.errorCode === 0) {\r\n return result;\r\n } else {\r\n context.commit(\"setwarning\", {\r\n string: result.data.errorMessage,\r\n });\r\n if (\r\n result.data.errorCode == 10402 ||\r\n result.data.errorCode == 10401\r\n ) {\r\n return 10401;\r\n } else if (result.data.errorCode == 10555) {\r\n return 10555;\r\n } else {\r\n return false;\r\n }\r\n }\r\n } catch (err) {\r\n config.globalMixin.methods.hideLoading();\r\n return false;\r\n }\r\n },\r\n async apiGetEvent(context, data) {\r\n try {\r\n config.globalMixin.methods.showLoading();\r\n\r\n const url = data.apiUrl;\r\n delete data[\"apiUrl\"];\r\n let domain = `${config.apiDomain}`;\r\n if (data.apiDomain) {\r\n domain = data.apiDomain;\r\n delete data[\"apiDomain\"];\r\n }\r\n let result;\r\n if (data.accessToken) {\r\n const Authorization = data.accessToken;\r\n\r\n delete data[\"accessToken\"];\r\n result = await axios.get(domain + url, {\r\n params: data,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `${Authorization}`,\r\n },\r\n });\r\n } else {\r\n result = await axios.get(domain + url, { params: data });\r\n }\r\n config.globalMixin.methods.hideLoading();\r\n if (url.search(\"listHomePage\") > -1) {\r\n return result;\r\n } else if (result.data.errorCode === 0) {\r\n return result;\r\n } else {\r\n context.commit(\"setwarning\", {\r\n string: result.data.errorMessage,\r\n });\r\n if (\r\n result.data.errorCode == 10402 ||\r\n result.data.errorCode == 10401\r\n ) {\r\n return 10401;\r\n } else {\r\n return false;\r\n }\r\n }\r\n } catch (err) {\r\n config.globalMixin.methods.hideLoading();\r\n\r\n return false;\r\n }\r\n },\r\n async apiPutEvent(context, data) {\r\n try {\r\n config.globalMixin.methods.showLoading();\r\n\r\n const url = data.apiUrl;\r\n delete data[\"apiUrl\"];\r\n let domain = `${config.apiDomain}`;\r\n if (data.apiDomain) {\r\n domain = data.apiDomain;\r\n delete data[\"apiDomain\"];\r\n }\r\n let result;\r\n if (data.accessToken) {\r\n const Authorization = data.accessToken;\r\n\r\n delete data[\"accessToken\"];\r\n result = await axios.put(domain + url, setFormData(data), {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `${Authorization}`,\r\n },\r\n });\r\n } else {\r\n result = await axios.put(domain + url, setFormData(data));\r\n }\r\n config.globalMixin.methods.hideLoading();\r\n\r\n if (result.data.errorCode === 0) {\r\n return result;\r\n } else {\r\n context.commit(\"setwarning\", {\r\n string: result.data.errorMessage,\r\n });\r\n if (\r\n result.data.errorCode == 10402 ||\r\n result.data.errorCode == 10401\r\n ) {\r\n return 10401;\r\n } else {\r\n return false;\r\n }\r\n }\r\n } catch (err) {\r\n config.globalMixin.methods.hideLoading();\r\n\r\n return false;\r\n }\r\n },\r\n async apiFormEvent(context, data) {\r\n try {\r\n config.globalMixin.methods.showLoading();\r\n\r\n const url = data.apiUrl;\r\n delete data[\"apiUrl\"];\r\n let domain = `${config.apiDomain}`;\r\n if (data.apiDomain) {\r\n domain = data.apiDomain;\r\n delete data[\"apiDomain\"];\r\n }\r\n let result;\r\n if (data.accessToken) {\r\n const Authorization = data.accessToken;\r\n\r\n delete data[\"accessToken\"];\r\n result = await axios.post(domain + url, setFormData(data), {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `${Authorization}`,\r\n },\r\n });\r\n } else {\r\n result = await axios.post(domain + url, setFormData(data));\r\n }\r\n config.globalMixin.methods.hideLoading();\r\n\r\n if (result.data.errorCode === 0) {\r\n return result;\r\n } else {\r\n context.commit(\"setwarning\", {\r\n string: result.data.errorMessage,\r\n });\r\n if (\r\n result.data.errorCode == 10402 ||\r\n result.data.errorCode == 10401\r\n ) {\r\n return 10401;\r\n } else {\r\n return false;\r\n }\r\n }\r\n } catch (err) {\r\n config.globalMixin.methods.hideLoading();\r\n return false;\r\n }\r\n },\r\n async jsonEvent(context, data) {\r\n try {\r\n const url = data.apiUrl;\r\n delete data[\"apiUrl\"];\r\n const result = await axios.get(url, data, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n });\r\n return result;\r\n } catch (err) {\r\n return false;\r\n }\r\n },\r\n },\r\n});\r\n","\r\n\r\n\r\nwindow.dataLayer = window.dataLayer || [];\r\nfunction gtag() { window.dataLayer.push(arguments); }\r\ngtag('js', new Date());\r\nexport {\r\n gtag\r\n}","\r\n\r\n\r\n\r\n","var moreJson = {\r\n \"aboutUs\": [\r\n {\r\n \"type\": 1,\r\n \"content\": \"Our History\"\r\n },\r\n {\r\n \"type\": 2,\r\n \"content\": \"Founded by Thomas Ritchie in 1870 Ritchies is one of Australia's oldest Supermarket & Liquor store chains. Below we share the amazing story of Thomas Ritchie and how he went from surviving a shipwreck to founding Australia's largest Independent Supermarket & Liquor company.\"\r\n },\r\n {\r\n \"type\": 3,\r\n \"content\": \"https://player.vimeo.com/video/485692515?h=7ba61f1ee6&badge=0&autopause=0&player_id=0&app_id=58479\"\r\n }\r\n ],\r\n \"faqsData\": [\r\n {\r\n \"title\": \"Where can I use the app?\",\r\n \"content\": \"You can use the Ritchies Card & app in all Ritchies stores displaying the Ritchies Card promotional material.\"\r\n },\r\n {\r\n \"title\": \"Where do I find my Ritchies electronic card in the App?\",\r\n \"content\": \"Your electronic (digital) Customer card on your app can be found by pressing the Ritchies Card icon in the bottom right-hand corner of the app. If using the app in store we recommend you use the handheld scanner at checkout to scan your phone, do not hand your phone over to cashiers.\"\r\n },\r\n {\r\n \"title\": \"How do I unsubscribe from push notifications?\",\r\n \"content\": \"Please go into your phone settings and disable notifications for the Ritchies Card app. Please be aware that you may miss out on exclusive and, or personalised offers if you disable this feature. You are not charged for any notifications sent through to your phone by Ritchies.\"\r\n },\r\n {\r\n \"title\": \"How do I unsubscribe from emails?\",\r\n \"content\": \"There are two methods to unsubscribing from emails
1.You can unsubscribe directly from any emails you receive from Ritchies by following the links at the bottom of the email.
2.In your account on either app or web select > Me > Edit profile. At the bottom of this section you will see an option to tick the box for “I would like to receive online specials / promotions comms”. Untick this box to stop receiving emails.
Please be aware that you may miss out on exclusive and, or personalised offers if you disable this feature. You are not charged for any notifications sent through to your phone by Ritchies.\"\r\n },\r\n {\r\n \"title\": \"Can I purchase through the app?\",\r\n \"content\": \"Currently no purchases can be made through the app. We are working on opening online Supermarket & Liquor stores in selected locations and will update members as these come online.\"\r\n },\r\n {\r\n \"title\": \"How soon will my rewards, coins or stamps be credited to my account following a purchase?\",\r\n \"content\": \"Your rewards, coins or stamps in the app should be updated shortly after you complete your transaction. If this doesn’t happen, please ensure that you have either WIFI, or data availability on your device. Please allow at least 24 hours before contacting customer services.\"\r\n },\r\n {\r\n \"title\": \"What if I delete the app from my phone/get a new phone?\",\r\n \"content\": \"You will be able to download and sign in to your account on a different device using your existing details to retrieve your digital saver card.\"\r\n },\r\n {\r\n \"title\": \"What if I lose my physical (plastic) card?\",\r\n \"content\": \"Simply pick up a new card for free at your local Ritchies Store, log into your account and update your card number by selecting > Me > Edit Profile. In the “Existing Physical Card (optional)” field, type in the new number or, if using the app, tap the blue camera icon to scan the barcode on back of card. Select “Save” at the bottom of this section to ensure your new card number is bound to you account.\"\r\n },\r\n {\r\n \"title\": \"Can I share my stamps and coins?\",\r\n \"content\": \"Yes, it is possible to share your digital stamps and coins with your contacts by clicking the share stamps/coins button in the app. It will then guide you through the relevant steps to enable you to share your points via WhatsApp, or email\"\r\n },\r\n {\r\n \"title\": \" I have shared digital stamps/coins with a friend, but they do not want them, can they be returned?\",\r\n \"content\": \"If you share points with someone and they don’t click through to redeem them these points will be automatically returned back to your saver card after 7 days.\"\r\n },\r\n {\r\n \"title\": \"How do I know if my friend has received the digital stamps/coins I have shared with them?\",\r\n \"content\": \"You will receive a notification in the app to let you know when the digital stamps/coins are successfully received and accepted by your friend. If you share digital stamps/coins with someone and they don’t click through to redeem them, they will be automatically returned back to your saver card after 7 days.\"\r\n },\r\n {\r\n \"title\": \"Can I share digital bonus points with more than one person?\",\r\n \"content\": \"You can choose to share the same link with a group of people and the first to click through to redeem these points will receive them. Other people will then see a message that the points are no longer available. Alternatively, you can look to share points with your friends separately.\"\r\n },\r\n {\r\n \"title\": \"Can I install the app on more than one device?\",\r\n \"content\": \"Yes, the app can be installed on multiple devices. \"\r\n },\r\n {\r\n \"title\": \"I’m part of a club, school or charity that isn’t listed and want to register.\",\r\n \"content\": \"Clubs, schools & charities can register to become a recipient by visiting www.ritchies.com.au/recipients and following the instructions on this page. We process applications monthly. Organisations will only be contacted if we require further information to process their application.\"\r\n },\r\n {\r\n \"title\": \"How do I nominate a club, school or charity?\",\r\n \"content\": \"You must either log into your account on a computer or download the app. Once logged into your account click on the “Community” icon. You will be guided through the process from there, you can nominate any club, school or charity from the extensive list available.\"\r\n },\r\n {\r\n \"title\": \"My club, school or charity isn’t listed. How do I get them listed?\",\r\n \"content\": \"Clubs, schools & charities can register to become a recipient by visiting www.ritchies.com.au/recipients and following the instructions on this page. We process applications monthly. Organisations will only be contacted if we require further information to process their application.\"\r\n },\r\n {\r\n \"title\": \"Can I nominate more than one recipient?\",\r\n \"content\": \"No, only one club, school or charity can be chosen. You can change your recipient at any time, see the next point for instructions on how to do this.\"\r\n },\r\n {\r\n \"title\": \"I’ve forgotten who I have nominated as my club, school or charity recipient. How do I find this?\",\r\n \"content\": \"Log into your account or app. Click the “Community” icon, Click “Select or View your Favourite Recipient” button.\"\r\n },\r\n {\r\n \"title\": \"I want to change my nominated club, school or charity. How do I do this?\",\r\n \"content\": \"Log into your account or app. Click the “Community” icon, Click “Select or View your Favourite Recipient” button, Click “Choose different recipient”.\"\r\n },\r\n {\r\n \"title\": \"I want see how much my club, school or charity has received from Ritchies, how do I do this?\",\r\n \"content\": \"Log into your account or app. Click the “Community” icon, Click “Select or View your Favourite Recipient” button.\"\r\n },\r\n {\r\n \"title\": \"Can I use the app if I am an international customer?\",\r\n \"content\": \"Ritchies Supermarkets and Liquor currently operate in Australia only. The Ritchies Card program is not open to international users. \"\r\n },\r\n {\r\n \"title\": \"I’m trying to register with my international mobile and it’s not working.\",\r\n \"content\": \"The system will not accept international mobile numbers. Please register using an Australian mobile.\"\r\n }\r\n ],\r\n \"tc\": [\r\n {\r\n \"type\": 2,\r\n \"content\": \"

General Terms and Conditions

Ritchies Community Benefit Program

In addition to great member only specials, offers and competitions, Ritchies Card Members are given the opportunity to support their favourite club, school or charity.

Customers are invited to nominate a club, school or charity from those listed on our App and website.

Note: Participating Ritchies stores exclude stores trading under the Fishers IGA banner in North Western Victoria.

Why nominate a Recipient?

The Community Benefit Program enables us to pay a percentage of your shop to the club, school, or charity of your choice.

To qualify for a payment, $2,000 must be spent within a month between all customers who nominate the organisation, (excluding tobacco, gift cards and phone recharges). The minimum payment is $10 and there is no maximum, so the more people who nominate the organisation the better.

Calculations are made at the end of the month, and then totals reset for the start of the next month.

All contributions are paid by Ritchies in Australian dollars, are not subject to GST and are made by electronic funds transfer directly into the bank account provided by the eligible recipient.

Some clubs, schools and charities have similar names. Customers should ensure that they are precise with the nomination of their intended recipient.

If your intended recipient is not listed on our website please ask them to join the program, once registered they will be added to our list of recipients.

Community Benefit Recipients

Recipients must register by completing the application form available for download on our website (https://www.ritchies.com.au/recipientregistration) and emailing to loyalty@ritchies.com.au to be eligible to participate in Ritchies Community Benefit program as an approved recipient.

Ritchies charges no fee for the registration process or for the privilege of joining the eligible recipients on its App and website. When registering, the recipient must provide Ritchies with complete contact details including the name of the organisation, ABN, principal business address, principal email address, phone number, name and contact details of the authorised representative, and banking details for receipts. Recipients are free to apply contributions from Ritchies as they think fit.

Security

Beware of fraudsters. Ritchies will never ask for your credit card details. Ritchies is committed to ensuring that your information is kept secure.

In order to prevent unauthorised access or disclosure, we have put in place appropriate physical and electronic protections to safeguard the information we collect online.

No data transmission over the internet can be guaranteed to be totally secure, but we use all reasonable endeavours to protect the security, integrity and privacy of personal information submitted on our App and website. We will review security measures regularly to keep them up to date.

Our employees and information systems contractors are also required to respect the confidentiality of any personal information in our possession and control.

Links

Our application may contain links to enable you to visit other applications of interest.

While we try not to provide links to undesirable websites, linked sites are not under our control and once you have used them to leave our App or website, we cannot be responsible for the protection and privacy of information you provide when visiting other sites. Please exercise caution and consider the terms and conditions of other websites and their privacy statements before sharing your personal information.

We make no representations about third party websites that may be linked to our App or website from time to time.

Password protection upon registration

When you register to use the Ritchies Card program, you will be invited to create a password to protect your details. It is your responsibility to keep this password safe and to ensure that it is not disclosed to any third party. If you become aware that unauthorised use of your password has occurred, or is possible, please change it immediately by clicking the 'reset password' link available at the login screen. If using the App reset your password by clicking the 'Change Password' link found in My Account.

Digital Receipts

Ritchies Card Members have an option to accept Digital receipts.  This means when you make a purchase and scan your Ritchies card or App and have opted in for digital receipts you will not receive a paper receipt from the register and instead you will receive an email to the email address registered to your account (it is your responsibility to make sure your email address is correctly entered in the Ritchies card program).

You will receive a printed copy of any coupons applicable to your sale such as fuel discounts.

Disclaimer

Ritchies is unable to guarantee that the information and materials found or offered on this App is suitable for any particular purpose or that it is accurate or complete. Ritchies expressly excludes liability for any such inaccuracies or errors on this App to the fullest extent permitted by law.

You use any information or materials on the Ritchies App at your own risk. It is your responsibility to ensure that any products, services or information available through this App meet your specific requirements.

No Liability

Ritchies will not be liable for any loss or damage:

• whether direct or indirect, arising out of your use of the Ritchies App or website and the products or services provided there, nor will it be liable for your inability to use or access them;

• If, due to circumstances beyond its control, Ritchies fails to comply with these Terms and Conditions; and

• arising from unauthorised access to your personal information,

and in choosing to access this program you release Ritchies from any loss or damage you incur, or are likely to incur, as a result.

Severance

If any of these Terms and Conditions are held to be invalid, unenforceable or illegal for any reason, the remaining Terms and Conditions will continue to have full force and effect.

Jurisdiction

Your use of the Ritchies App and any dispute arising out of its use is subject to the laws of Victoria, Australia.

Feedback

Feedback about the Ritchies App, our website or Ritchies’ business generally should be specific, in writing and submitted to loyalty@ritchies.com.au.

Ritchies will use its reasonable endeavours to respond to the feedback and to resolve any matters arising from it within 10 business days.

Privacy

Ritchies respects the importance of safeguarding the privacy of any information it collects about users to this App and its website.

Please Click here to read Ritchies’ Privacy Policy.

\"\r\n },\r\n {\r\n \"type\": 3,\r\n \"eventList\": [\r\n {\r\n \"className\": \"jumpPrivacy\",\r\n \"link\": \"https://www.ritchies.com.au/privacy-0\"\r\n },\r\n {\r\n \"className\": \"jumpAu\",\r\n \"link\": \"https://www.ritchies.com.au/recipientregistration\"\r\n },\r\n {\r\n \"className\": \"jumpMail\",\r\n \"link\": \"mailto:loyalty@ritchies.com.au\"\r\n }\r\n ]\r\n }\r\n ],\r\n \"policy\": [\r\n {\r\n \"type\": 2,\r\n \"content\": \"

Ritchies Privacy Statement

What happens to personal information about you?

All personal information collected by Ritchies Stores Pty Ltd ABN 61 005 041 814 (“Ritchies”) will be handled in accordance with the requirements of the Privacy Act 1998 (Cth) (as amended).

What kind of personal information will Ritchies collect and hold about you?

We may collect and hold a range of different information about you, including your name, date of birth, contact details (postal and email address, telephone numbers), occupation, driver's licence number, financial information and bank account details and credit checks, your customer reference number/loyalty card number, which Ritchies loyalty programs you are a member of, any rewards or

redemption details relating to your loyalty membership, and any other personal information you provide to us. We may also need to sight your Centrelink customer reference number to provide you with a pensioner discount. As an applicant for employment or to supply goods and services to Ritchies, we may also hold and collect health and medical information and criminal background, financial and supply chain checks and information. You might also need to provide personal information about other individuals to us (e.g. if you are another person’s authorised representative). If so, we rely on you to inform those individuals that you are providing their personal information to us and to advise them about this statement.

How does Ritchies collect personal information about you?

Credit Accounts and Promotional Programs

Ritchies collects personal information about you when you complete an application for employment, the supply to us of your goods and or services, when you participate in any one of Ritchies’ loyalty or promotional programs or competitions offered from time to time (collectively “Ritchies promotional program”), or when you apply for a credit or other account with us. If you participate in a Ritchies promotional program or you are a credit account holder, your shopping habits may be included in Ritchies’ information about you. If you delay or fail to pay your credit account with Ritchies in accordance with its terms and conditions, your payment performance will also be included in Ritchies’ information about you.

Voluntary Feedback & Surveys

Ritchies also collects personal information from your suggestions, nominations, complaints, compliments or surveys it conducts (collectively “feedback”).

Applications for employment or supply

Ritchies may collect personal information about you when you complete an application for employment with us, or if you wish to supply us with your goods and or services. We will keep that information for future reference only if you ask us to do so.

Payments

If you choose to pay us by credit or debit card, online, in store or over the telephone, you may be asked to provide information such as your email address, name, credit card details or bank account details. We require these details to enable payments to be processed and to provide you with a payment receipt or gift card (as appropriate). We do not keep your credit card details.

On-Line

When you browse our website, mobile apps, social pages, or click our online ads, we may collect information by using technology known as “cookies” that retain details of your server address, top level domain (e.g. .com, .net, .au etc.), the date and time of your visit, the pages accessed, documents downloaded, the previous site visited and the type of browser used. We will not try to identify users or their browsing activities except, in the event of an investigation, where a law enforcement agency may exercise a warrant to inspect the service provider’s logs.

How we hold your information

We may store your information in hard copy or electronic format, in storage facilities that Ritchies owns and operates, or that are owned and or operated or hosted by our service providers. We take reasonable steps to maintain the security of your information and to protect it from unauthorised disclosures. While we take these steps to maintain the security of your information, you should be aware of the many information security risks that exist today and take appropriate care to help safeguard your information.

Why is this information necessary?

It is necessary for us to collect and keep this information about you so we can keep you informed of the outcomes of your application, promotions and specials each week, offer you the benefits associated with Ritchies’ promotional programs, respond to your feedback and surveys, assess and reassess the granting or withdrawal of any credit account, process payments, enforce its rights (where necessary) and generally perform our business functions more efficiently.

How will your personal information be used?

We may use your personal information for a range of different purposes, including:

a. To check your creditworthiness, credit rating and credit history (where you apply for a credit account with us);

b. To respond to other suppliers’ specific requests for credit information about you;

c. To administer, manage and improve Ritchies’ promotional programs and keep you up to date with Ritchies’ latest promotions, specials and benefits;

d. To provide you with better customer service;

e. To charge for our goods and services and collect payment from you;

f. To better understand your retail and online shopping needs, conduct research and analysis and improve our offerings to you;

g. To prevent fraud on your or another’s account or program;

h. To investigate and respond to your feedback;

i. For direct marketing purposes, to promote and market special offers, goods and services that we think may be of interest to you (which may include products, services and offers provided by a third party). This marketing may be communicated by email, SMS/MMS, App, push notifications, social media or by customising online content and displaying advertising on any of our websites and may continue after you cease shopping with us or after you terminate any of Ritchies’ promotional programs, until you opt-out. Shopping habit information that we collect is used only in aggregated form.

How is Ritchies likely to disclose your personal information?

We may disclose your information:

a. when you ask us to do so;

b. to credit reporting bodies and fraud checking agencies;

c. to credit providers for credit related purposes;

d. to related entities or business affiliates;

e. to law enforcement and national security agencies, and other government and regulatory authorities as required or authorised by law;

f. to third parties who assist us to manage or develop our business and corporate strategies and functions, including our corporate risk or funding functions;

g. for the purposes of facilitating or implementing a transfer/sale of all or part of our assets or business or

h. to improve our customer service, in store offerings or processes or business operations; or

i. to investigate and respond to your feedback.

We may disclose your information to our staff and third parties who manufacture, supply or deliver goods and or services to us. For processing efficiency reasons, some of these third parties may be based outside Australia, including the United Kingdom, the Netherlands and Hong Kong provide information technology, technical support, on line services and or market research service and advice. It is not practical for us to notify you which country may access your personal information from time to time. We take reasonable steps to ensure that access to your personal information by overseas service providers do not breach the privacy obligations relating to your personal information.

How is personal information about you protected?

Your personal information may be stored at Ritchies’ premises and in computer systems and servers in Australia operated by us, or on other systems and servers in Australia used by our trusted service providers. Ritchies takes reasonable steps to protect information held at its premises, on its computer systems and any external databases against misuse, loss, unauthorised access, modification or disclosure, but it cannot warrant the security of any information transmitted to it over the Internet. No data transmission over the Internet can be guaranteed as totally secure and there are security risks in transmitting information via this medium. You should assess these potential risks when deciding whether to use Ritchies’ online services. If you do not wish to transmit information on line, please visit any of our Ritchies IGA stores or call Head Office with your query on 03 9784 2000. Ritchies takes reasonable steps to destroy or permanently de-identify your personal information if it is no longer needed for any purpose or if you request us in writing to destroy it.

What happens if you do not consent to the use of your information for the purpose set out above?

Wherever it is lawful and practicable, you have the option not to identify yourself when entering into transactions with Ritchies. In such event, Ritchies may not be able to provide you with the benefits associated with Ritchies’ promotional programs and may reject your application for credit if, as a result of your refusal to provide the authority requested, Ritchies is unable to assess your creditworthiness. If you refuse to provide authority for personal or other information requested in the context of an application for employment or business relationship with Ritchies, your application may be unsuccessful. If you do not consent to the uses or disclosures of your personal information in the manner disclosed in this statement, you must notify our National Privacy Officer in writing.

What happens to my data if I delete my Ritchies Card app?

When you delete your app from your phone your data associated with that membership will not be deleted from our system. If you wish to delete all data associated with your membership you will need to delete your account from within the app or website while logged into your account. To do this visit “edit profile” and select “delete account”. 

If you are unable to delete the account yourself and no longer wish to be part of our please contact our support team. For more information or assistance please contact our loyalty team at loyalty@ritchies.com.au 

I have a physical Ritchies Card, how do I delete my account and what happens to the data?

If you no longer wish to be part of the Ritchies Card program you can delete your membership and all associated data by sending a “Delete Account” request to our loyalty team via email at loyalty@ritchies.com.au 

When you opt to delete your account all data associated with that membership will be deleted from our system. For more information or assistance please contact our loyalty team at loyalty@ritchies.com.au 

How to access or correct your personal information or make a privacy complaint

You have the right to request access to personal information that Ritchies has about you. If there is information that Ritchies has about you that is inaccurate, incomplete or out of date, you have the right to request that it be corrected, completed and updated. We may charge a reasonable administration fee for providing access to the personal information that Ritchies holds about you at your request. You should also notify our National Privacy Officer of any privacy complaint you have against Ritchies, or, if you think that we have failed to comply with the Australian Privacy Principles (APP) or any binding APP code that has been registered under the Privacy Act, We will work with you to resolve your complaint. Alternately, you may lodge a complaint with the Australian Information Commissioner (www.oaic.gov.au). If you wish to know what personal information Ritchies holds about you, please contact:


The National Privacy Officer,

Ritchies Stores Pty Ltd,

10/1095 Frankston-Dandenong Road

Carrum Downs VIC 3201 or

telephone (03) 9784 2000 or email privacy@ritchies.com.au

\"\r\n },\r\n {\r\n \"type\": 3,\r\n \"eventList\": [\r\n {\r\n \"className\": \"jumpAu\",\r\n \"link\": \"https://www.oaic.gov.au/\"\r\n },\r\n {\r\n \"className\": \"jumpMail1\",\r\n \"link\": \"mailto:privacy@ritchies.com.au\"\r\n },\r\n {\r\n \"className\": \"jumpMail2\",\r\n \"link\": \"mailto:loyalty@ritchies.com.au\"\r\n }\r\n ]\r\n }\r\n ]\r\n}\r\nexport { moreJson };","import { render } from \"./App.vue?vue&type=template&id=2c082107&scoped=true\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=2c082107&scoped=true&lang=css\"\n\nimport exportComponent from \"E:\\\\ritchies-shoppo\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2c082107\"]])\n\nexport default __exports__","\r\n\r\n\r\n","import { render } from \"./main.vue?vue&type=template&id=db02482c\"\nimport script from \"./main.vue?vue&type=script&lang=js\"\nexport * from \"./main.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\ritchies-shoppo\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createRouter, createWebHashHistory, createWebHistory } from '@ionic/vue-router';\r\nimport Main from '../views/main.vue'\r\nimport { store } from '../store'\r\n\r\nconst routes = [\r\n {\r\n path: '/',\r\n redirect: '/index'\r\n },\r\n {\r\n path: '/index',\r\n component: () => import('@/views/index.vue')\r\n },\r\n {\r\n path: '/register',\r\n component: () => import('@/views/register.vue')\r\n },\r\n {\r\n path: '/main/',\r\n component: Main,\r\n children: [\r\n {\r\n path: '',\r\n redirect: '/main/landing'\r\n },\r\n {\r\n path: 'landing',\r\n name: 'landingPage',\r\n component: () => import('@/views/landing.vue')\r\n },\r\n {\r\n path: 'me',\r\n name: 'mePage',\r\n component: () => import('@/views/me.vue')\r\n },\r\n {\r\n path: 'more',\r\n name: 'MorePage',\r\n component: () => import('@/views/more.vue')\r\n },\r\n {\r\n path: 'andMore',\r\n name: 'meAndMore',\r\n component: () => import('@/views/andMore.vue')\r\n },\r\n {\r\n path: 'offers',\r\n name: 'OffersPage',\r\n component: () => import('@/views/offers.vue')\r\n },\r\n ]\r\n },\r\n {\r\n path: '/signup',\r\n name: 'registrationPage',\r\n component: () => import('@/views/registration.vue')\r\n },\r\n {\r\n path: '/login',\r\n name: 'LoginPage',\r\n component: () => import('@/views/login.vue')\r\n },\r\n {\r\n path: '/password/:type',\r\n name: 'passwordPage',\r\n component: () => import('@/views/password.vue')\r\n },\r\n {\r\n path: '/verifyEmail',\r\n name: 'verifyEmail',\r\n component: () => import('@/views/verifyEmail.vue')\r\n },\r\n {\r\n path: '/verifyCode/:type/:registerType',\r\n name: 'VerificationCode',\r\n component: () => import('@/views/verifyCode.vue')\r\n },\r\n {\r\n path: '/createAccount',\r\n name: 'createAccount',\r\n component: () => import('@/views/createAccount.vue')\r\n },\r\n {\r\n path: '/setProfile',\r\n name: 'setProfile',\r\n component: () => import('@/views/setProfile.vue')\r\n },\r\n {\r\n path: '/forgotPassword/:type',\r\n name: 'forgetPassword',\r\n component: () => import('@/views/forgotPassword.vue')\r\n },\r\n {\r\n path: '/resetPassword',\r\n name: 'resetPassword',\r\n component: () => import('@/views/resetPassword.vue')\r\n },\r\n {\r\n path: '/rewardsHistory',\r\n name: 'rewardHistory',\r\n component: () => import('@/views/rewardsHistory.vue')\r\n },\r\n {\r\n path: '/couponDetail/:id',\r\n name: '/couponDetail/:id',\r\n component: () => import('@/views/couponDetail.vue')\r\n },\r\n {\r\n path: '/collectorCardDetail/:id',\r\n name: 'collectorCardDetail',\r\n component: () => import('@/views/collectorCardDetail.vue')\r\n },\r\n {\r\n path: '/stampCardDetail/:id',\r\n name: 'stampCardDetail',\r\n component: () => import('@/views/stampCardDetail.vue')\r\n },\r\n {\r\n path: '/wallet',\r\n name: 'walletPage',\r\n component: () => import('@/views/wallet.vue')\r\n },\r\n {\r\n path: '/scanCode',\r\n name: 'scanCode',\r\n component: () => import('@/views/scanCode.vue')\r\n },\r\n {\r\n path: '/rewardDetail/:id/:campaignId',\r\n name: 'rewardDetail',\r\n component: () => import('@/views/rewardDetail.vue')\r\n },\r\n {\r\n path: '/changePassword',\r\n name: 'changePassword',\r\n component: () => import('@/views/changePassword.vue')\r\n },\r\n {\r\n path: '/test',\r\n component: () => import('@/views/test.vue')\r\n },\r\n {\r\n path: '/selectFriend',\r\n name: 'selectFriend',\r\n component: () => import('@/views/selectFriend.vue')\r\n },\r\n {\r\n path: '/cropper',\r\n name: 'cropperPage',\r\n component: () => import('@/views/cropper.vue')\r\n },\r\n {\r\n path: '/editProfile',\r\n name: 'editProfile',\r\n component: () => import('@/views/editProfile.vue')\r\n },\r\n {\r\n path: '/changeMobileEmail/:type',\r\n name: 'changeMobile',\r\n component: () => import('@/views/changeMobileEmail.vue')\r\n },\r\n {\r\n path: '/storeLocator',\r\n name: 'storeLocator',\r\n component: () => import('@/views/storeLocator.vue')\r\n },\r\n {\r\n path: '/TransHistory',\r\n name: 'transHistory',\r\n component: () => import('@/views/TransHistory.vue')\r\n },\r\n {\r\n path: '/eStampHistory',\r\n name: 'eStampHistory',\r\n component: () => import('@/views/eStampHistory.vue')\r\n },\r\n {\r\n path: '/collectorHistory',\r\n name: 'collectorHistory',\r\n component: () => import('@/views/collectorHistory.vue')\r\n },\r\n {\r\n path: '/eCouponHistory',\r\n name: 'eCouponHistory',\r\n component: () => import('@/views/eCouponHistory.vue')\r\n },\r\n {\r\n path: '/referral',\r\n name: 'ReferralPage',\r\n component: () => import('@/views/referral.vue')\r\n },\r\n {\r\n path: '/userGuide',\r\n name: 'userGuide',\r\n component: () => import('@/views/userGuide.vue')\r\n },\r\n {\r\n path: '/aboutUs',\r\n name: 'aboutUs',\r\n component: () => import('@/views/aboutUs.vue')\r\n },\r\n {\r\n path: '/faqs',\r\n name: 'faqs',\r\n component: () => import('@/views/faqs.vue')\r\n },\r\n {\r\n path: '/Terms',\r\n name: 'tAndC',\r\n component: () => import('@/views/terms.vue')\r\n },\r\n {\r\n path: '/privacy',\r\n name: 'privacyPage',\r\n component: () => import('@/views/privacy.vue')\r\n },\r\n {\r\n path: '/contactUs',\r\n name: 'contactUs',\r\n component: () => import('@/views/contactUs.vue')\r\n },\r\n {\r\n path: '/notification',\r\n name: 'notificationPage',\r\n component: () => import('@/views/notification.vue')\r\n },\r\n {\r\n path: '/notificationDetail',\r\n name: 'notificationDetail',\r\n component: () => import('@/views/notificationDetail.vue')\r\n },\r\n {\r\n path: '/bannerDetail',\r\n name: 'bannerDetail',\r\n component: () => import('@/views/bannerDetail.vue')\r\n },\r\n {\r\n path: '/rewardRedeemedDetail',\r\n name: 'rewardRedeemedDetail',\r\n component: () => import('@/views/rewardRedeemedDetail.vue')\r\n },\r\n {\r\n path: '/couponUserDetail',\r\n name: 'couponUserDetail',\r\n component: () => import('@/views/couponUserDetail.vue')\r\n },\r\n {\r\n path: '/community',\r\n name: 'communityDonation',\r\n component: () => import('@/views/community.vue')\r\n },\r\n]\r\n\r\nconst router = createRouter({\r\n history: store.state.appVersion ? createWebHistory(process.env.BASE_URL) : createWebHashHistory(process.env.BASE_URL),\r\n routes\r\n})\r\n\r\nexport default router\r\n","import { createApp } from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router';\r\n\r\nimport { IonicVue } from '@ionic/vue';\r\n\r\nimport { store } from './store'\r\nimport './styles/style.scss'\r\nimport './styles/font.css'\r\n/* Core CSS required for Ionic components to work properly */\r\nimport '@ionic/vue/css/core.css';\r\n\r\n/* Basic CSS for apps built with Ionic */\r\nimport '@ionic/vue/css/normalize.css';\r\nimport '@ionic/vue/css/structure.css';\r\nimport '@ionic/vue/css/typography.css';\r\n\r\n/* Optional CSS utils that can be commented out */\r\nimport '@ionic/vue/css/padding.css';\r\nimport '@ionic/vue/css/float-elements.css';\r\nimport '@ionic/vue/css/text-alignment.css';\r\n// import '@ionic/vue/css/text-transformation.css';\r\nimport '@ionic/vue/css/flex-utils.css';\r\nimport '@ionic/vue/css/display.css';\r\n\r\n/* Theme variables */\r\nimport './theme/variables.scss';\r\nimport axios from \"axios\";\r\nimport { createI18n } from 'vue-i18n';\r\nconst i18n = createI18n({\r\n locale: 'en_US',\r\n // locale: store.state.userInfo.langCode,\r\n messages: {\r\n \"en_US\": require('./lang/en_US')\r\n }\r\n})\r\nimport { Tab, Tabs, Checkbox, CheckboxGroup, Icon, CountDown, Toast, Form, Field, Button, Lazyload, Loading, Image as VanImage, Collapse, CollapseItem } from 'vant';\r\nimport 'vant/lib/index.css';\r\nimport VueGoogleMaps from '@fawmi/vue-google-maps'\r\nimport { gtag } from './ga.js'\r\ngtag(\"config\", process.env.VUE_APP_GA4_ID);\r\nconst app = createApp(App)\r\n .use(IonicVue)\r\n .use(router)\r\n .use(i18n)\r\n .use(Tab)\r\n .use(Icon)\r\n .use(Tabs)\r\n .use(Checkbox)\r\n .use(CheckboxGroup)\r\n .use(CountDown)\r\n .use(Toast)\r\n .use(Form)\r\n .use(Field)\r\n .use(Button)\r\n .use(VanImage)\r\n .use(Loading)\r\n .use(Collapse)\r\n .use(CollapseItem)\r\n .use(Lazyload, {\r\n error: require('./assets/pic_456.jpg'),\r\n loading: require('./assets/pic_456.jpg'),\r\n attempt: 1, // 加载一屏图片\r\n preLoad: 1, // 失败尝试次数\r\n })\r\n .use(VueGoogleMaps, {\r\n load: {\r\n key: process.env.VUE_APP_GOOGLEMAPKEY,\r\n },\r\n })\r\n .use(store);\r\n\r\n// app.config.productionTip = false;\r\naxios.interceptors.request.use(function (config) {\r\n return config;\r\n}, function (error) {\r\n store.commit(\"setwarning\", {\r\n string: error.message\r\n });\r\n return Promise.reject(error);\r\n})\r\n// 获取response error\r\naxios.interceptors.response.use(function (response) {\r\n return response;\r\n}, function (error) {\r\n if (error.response && error.response.data) {\r\n store.commit(\"setwarning\", {\r\n string: error.response.data.errorMessage,\r\n });\r\n return;\r\n }\r\n if (error.message == \"Network Error\") {\r\n error.message = \"Network connection issue\"\r\n }\r\n\r\n if (localStorage.getItem(\"showUserGuide\")) {\r\n store.commit(\"setwarning\", {\r\n string: error.message,\r\n });\r\n }\r\n return Promise.reject(error);\r\n})\r\n// app.prototype.$axios = axios\r\n\r\nrouter.isReady().then(() => {\r\n app.mount('#app');\r\n});","module.exports = __webpack_public_path__ + \"img/user_default_photo.369c0d93.png\";","module.exports = {\r\n general: {\r\n Yes: \"Yes\",\r\n No: \"No\",\r\n And: \"and\",\r\n },\r\n register: {\r\n Registration: 'Registration',\r\n Youremailaddressis: \"Your email address is\",\r\n Yourmobilenumberis: \"Your mobile number is\",\r\n alreadyregistered: \"already registered\",\r\n Gotologin: \"Go to login\",\r\n ConfirmMobileNumber: \"Confirm Mobile Number\",\r\n Mobiledonotmatch: \"Mobile do not match\",\r\n Emaildonotmatch: \"Email do not match\",\r\n ConfirmEmail: \"Confirm Email\",\r\n EmailAddress: \"Email Address\",\r\n TRPE: \"To register please use your email address.An email address can only be used once to set- up an account.If your email address is already been used, please register with your mobile phone number.\",\r\n TRPM: \"To register, please enter your mobile phone number.\",\r\n ODAPP: \"Or download the app on your phone and login to grab the best deals every day.\",\r\n CreateAccount: \"Create Account\",\r\n ResetPassword: \"Reset Password\",\r\n Password: \"Password\",\r\n characters: \"8-15 characters with letters, numbers and special characters, case sensitive\",\r\n ConfirmPassword: \"Confirm Password\",\r\n Passwordsdonotmatch: \"Passwords do not match\",\r\n AgreeTo: \"I have read and agree to the\",\r\n WouldLike: \"I would like to receive online specials / promotions comms.\",\r\n },\r\n login: {\r\n Login: \"Login\",\r\n Email: \"Email\",\r\n Or: \"or\",\r\n GotoRegister: \"Go to Register\",\r\n Mobilenumber: \"Mobile number\",\r\n MobileFormatError: \"Mobile format is incorrect.\",\r\n EmailFormatError: \"Email format is incorrect.\",\r\n ContinueWithEmailText: \"For existing members please enter your email address, or if you registered with your mobile phone number, click “Continue with Mobile” below to continue.\",\r\n ContinuewithEmail: \"Continue with Email\",\r\n ContinuewithMobile: \"Continue with Mobile\",\r\n IfYouRegistered: \"If you registered with your mobile phone number, enter the number above, or for existing members, please click “Continue with Email” to enter your email address.\",\r\n IfYouAre: \"If you are sharing an email address with your family members, please use your mobile number for registration\",\r\n Continue: \"Continue\",\r\n },\r\n verify: {\r\n Resend: 'Resend',\r\n Verify: 'Verify',\r\n VerificationCode: 'Verification Code',\r\n PleaseInput: 'Please type the verification code sent to',\r\n },\r\n tabBar: {\r\n Home: \"Home\",\r\n Offers: \"Offers\",\r\n More: \"More\",\r\n Me: \"Me\",\r\n },\r\n landing: {\r\n ValidTill: \"Valid Till\",\r\n CollectorCards: \"Collector Cards\",\r\n eCoupon: \"eCoupon\",\r\n LoginRegister: `Log in / Register`,\r\n\r\n },\r\n offers: {\r\n Offers: \"Offers\",\r\n ShopEarn: \"Shop & Earn\",\r\n eCoupons: \"Rewards\",\r\n eStamps: \"eStamps\",\r\n ValidTill: \"Valid Till\",\r\n Registernowformoreoffers: \"Register now for more offers\",\r\n Comingsoon: \"Coming soon\",\r\n EarnComingsoon1: \"Our Shop & Earn promotion gives you the chance to earn digital coins each time you shop.\",\r\n EarnComingsoon2: \"Currently there isn't a shop & earn promotion running.\",\r\n EarnComingsoon3: \"We will update this tab & notify you when a new Shop & Earn program begins.\",\r\n CouponComingsoon1: \"eCoupons give you access to even more discounts throughout the store.\",\r\n CouponComingsoon2: \"You'll find eCoupons loaded to this page.\",\r\n CouponComingsoon3: \"Check back here for live eCoupons.\",\r\n EStampsComingsoon1: \"eStamps can be earned toward rewards in-store.\",\r\n EStampsComingsoon2: \"Our eStamp program runs for a limited time only.\",\r\n EStampsComingsoon3: \"You'll be notified when we have a new eStamp program running.\",\r\n },\r\n me: {\r\n Me: \"Me\",\r\n MyAccount: \"My Account\",\r\n EditProfile: 'Edit Profile',\r\n TransactionHistory: 'Transaction History',\r\n CollectorCardHistory: 'Collector Card History',\r\n eCouponHistory: 'eCoupon History',\r\n eStampHistory: 'eStamp History',\r\n RewardsHistory: 'Rewards History',\r\n ReferaFriend: 'Refer a Friend',\r\n Changepassword: 'Change password',\r\n Logout: 'Logout',\r\n RorL: 'Register or Log In to receive great offers, member only specials, and the opportunity to support your favourite club school or charity.',\r\n Register: 'Register',\r\n Login: 'Log in',\r\n },\r\n more: {\r\n More: \"More\",\r\n Community: \"Community\",\r\n StoreLocator: \"Store Locator\",\r\n UserGuide: \"User Guide\",\r\n AboutUs: \"About Us\",\r\n FAQs: \"FAQs\",\r\n TermsConditions: \"Terms & conditions\",\r\n PrivacyPolicy: \"Privacy policy\",\r\n ContactUs: \"Contact Us\",\r\n\r\n }\r\n\r\n}\r\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"bc66\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAS4AAAAoCAMAAAB3sOfYAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAzUExURUdwTCM8hyU8hyI7hiI8hyM8iCI7hiI7hyRAiSQ9iTBEkyI7hiM7hyI8iCM8hyI7hyI7hhA6XokAAAAQdFJOUwCCRePSWe+1IjkM96aQb8ZXAMhOAAAD10lEQVRo3s2a6aKsIAiA3fel93/a29yZMycVi7JT8bMo6RMRMEJuECOpzoKrSXGRNZWGPERsouFlmJ+84lzomGrbpr7Mj8xPFA/w5X1GSJowIpcDMq3akbR0pVl0eTuU9+Tynvh86PKa+swKwjTxfatLgGEvjSBxuL4PyNNwGco7OiqaO3E5qvpKPLkduKZJu3NwSbXmzOk+XJavq3G2B9eUz8Bl9Jbt5iZczG8q0j24frRHcBm+qcjtLbiMQn8EEpd3o7icQGgqewcujfoKuwPXlEZxZZSqcNfjMjgCeg8uPYgrIceJ1+OidVZDU6KxDR1mBy4xhsu14YFnLdoQ6+3luDK83zS7Zapx6fiRoOsPUSAuG38llF6yENvM4KTo2yqrYfc6HxezoMx6opMk1lMcalzL/DVicBWlTaFflReqmzJIcF7Ox9UvfRQQpN8IfCF5DVcFXQzhstU6dP15eb/2Sly+ypbdSlXZxxUQoR6LiwJEvj7PgdV4Ja46RvkcEjNjuOgQrgzWCLB76QaXV4X4Y7GrEQMa9x1UBCqNw+KqJt0M4fK98ABELwG443bRd2BnpLDrV3GjbDD1cNkMrMWjuByQHy8eFIXkq3FtJxwiGQiX0B8R1Xr2ZghXecsjGnVX4qrCDrw0qdtRM0oyhKvcGPnTcDmOGchgcXFJxnCxTgfzIbgwzZKZArIIyo6ciutx3jWrZuRQqPLakDMXo3oernl7FqiQtKutck6on9wDcc2voGJ7LJxRgfxhIkFMKQ0ukQoJf4PrZaeVNOR+b9UhcX2aqYfTVLVmJwNq7POLINdI17Xf1ID+vcH2u9gYrrAW68NWEfTHNWNPmD6MK43hSlO/CnIeWCNPwNXmr7bERX+aZrI+paRjuAzYMoUr3KsbOCyXErthovYu2a2wwxiuqnk2+e9Irp5B/kftwW6oshNc8AEHDH1cVZ9gFJdsNmVqjTOMenjZX9WrnwvYRk19fthw0q/vjLL79XoQFxHIIKnc1bhIWwH5rAOQUIi19iDU0TuOiyFxSXI5LnRKnNZwQU3L47iQRkVyPS7j8Y7fx8WBVGkAF6ar9FvNX4mrDaz93BOJy4/jQvyKEBy5AxdqJt+5FPbgzIzjIknhVuLluJrDO0AvbZwEZWB/H8O13lbShtyGi8iNBmE2WwdnEejhDOKaPyvAcdVrdsu/qd+DA7fm+vpbheilFCbb4pb+jzIsr9QHOoV6v9yXQTSHU/WfvEQu31UdtBWGRWDwABnUkcVUsAi5GA+3/5ntrHz9ExQjTUlaRx4jZq6WY3g5RQhhto5Vxv0D9+7SHr+gtyAAAAAASUVORK5CYII=\"","import { store } from \"./store\";\r\nconst apiDomain = process.env.VUE_APP_API_DOMAIN;\r\n// const apiDomain = \"http://192.168.112.30:8080\";\r\nconst shareUrl = process.env.VUE_APP_SHARE_PAGE_URL;\r\nimport { Geolocation } from \"@capacitor/geolocation\";\r\nimport { StatusBar, Style } from \"@capacitor/status-bar\";\r\nif (store.state.appVersion) {\r\n StatusBar.setOverlaysWebView({ overlay: true });\r\n}\r\n\r\nimport { Preferences as Storage } from \"@capacitor/preferences\";\r\nimport { isPlatform, alertController } from \"@ionic/vue\";\r\nimport { Browser } from \"@capacitor/browser\";\r\n\r\nimport { Share } from '@capacitor/share';\r\nimport { Camera, CameraResultType } from '@capacitor/camera';\r\nimport { Network } from '@capacitor/network';\r\nimport { Toast } from 'vant';\r\nimport { App } from '@capacitor/app';\r\nimport { gtag } from './ga.js'\r\nimport { FirebaseAnalytics } from \"@capacitor-community/firebase-analytics\";\r\n\r\nimport { PushNotifications } from \"@capacitor/push-notifications\";\r\nexport default {\r\n apiDomain: apiDomain,\r\n globalMixin: {\r\n data() {\r\n return {\r\n apiConfig: {\r\n listHomePage: \"/listHomePage.do\",\r\n getNewestCampaign: \"/getNewestCampaign.do\",\r\n listPromotion: \"/listPromotion.do\",\r\n listCampaign: \"/listCampaign.do\",\r\n getUserStampCard: \"/getUserStampCard.do\",\r\n listUserStamp: \"/listUserStamp.do\",\r\n listUserCoupon: \"/listUserCoupon.do\",\r\n listGift: \"/listGift.do\",\r\n getGiftDetail: \"/getGiftDetail.do\",\r\n getUserGiftRedeemCode: \"/getUserGiftRedeemCode.do\",\r\n getUserGiftRedeemMsg: \"/getUserGiftRedeemMsg.do\",\r\n getUserCollectStampMsg: \"/getUserCollectStampMsg.do\",\r\n clearCollectCodeStatus: \"/clearCollectCodeStatus.do\",\r\n listUserReservation: \"/listUserReservation.do\",\r\n saveUserReservation: \"/saveUserReservation.do\",\r\n listStore: \"/listStore.do\",\r\n listMerchantArea: \"/listMerchantArea.do\",\r\n listUserFriend: \"/listUserFriend.do\",\r\n transferStamp: \"/transferStamp.do\",\r\n acceptFriend: \"/acceptFriend.do\",\r\n deleteFriendRequset: \"/deleteFriendRequset.do\",\r\n searchFriendsByName: \"/searchFriendsByName.do\",\r\n addFriend: \"/addFriend.do\",\r\n getCampaignDetail: \"/getCampaignDetail.do\",\r\n register: \"/register.do\",\r\n login: \"/login.do\",\r\n logout: \"/logout.do\",\r\n getUserProfile: \"/getUserProfile.do\",\r\n sendDeleteAccountEmail: \"/sendDeleteAccountEmail.do\",\r\n updateUserProfile: \"/updateUserProfile.do\",\r\n forgetUserPassword: \"/forgetUserPassword.do\",\r\n resetUserPassword: \"/resetUserPassword.do\",\r\n resendActiveEmail: \"/resendActiveEmail.do\",\r\n getMerchantDetail: \"/getMerchantDetail.do\",\r\n clearUserReservationCodeStatus: \"/clearUserReservationCodeStatus.do\",\r\n getUserReservationMsg: \"/getUserReservationMsg.do\",\r\n registerDeviceToken: \"/registerDeviceToken.do\",\r\n updateUserIcon: \"/updateUserIcon.do\",\r\n listUserStampHistory: \"/listUserStampHistory.do\",\r\n listUserRedeemHistory: \"/listUserRedeemHistory.do\",\r\n grantUserStamp: \"/grantUserStamp.do\",\r\n sendIquiryEmail: \"/sendIquiryEmail.do\",\r\n resetRegistrationEamil: \"/resetRegistrationEamil.do\",\r\n checkoutUserPassword: \"/checkoutUserPassword.do\",\r\n changeUserPassword: \"/changeUserPassword.do\",\r\n saveShareData: \"/saveShareData.do\",\r\n listHistoryUnReadStatus: \"/listHistoryUnReadStatus.do\",\r\n getCouponDetail: \"/getCouponDetail.do\",\r\n saveUserCoupon: \"/saveUserCoupon.do\",\r\n listCoupon: \"/listCoupon.do\",\r\n saveUserAllCoupon: \"/saveUserAllCoupon.do\",\r\n\r\n getTempUser: \"/getTempUser.do\",\r\n sendSms: \"/sendSms.do\",\r\n verifySms: \"/verifySms.do\",\r\n newRegister: \"/newRegister.do\",\r\n uploadUserIcon: \"/uploadUserIcon.do\",\r\n newLogin: \"/newLogin.do\",\r\n checkIsExistFbAccount: \"/checkIsExistFbAccount.do\",\r\n changePhone: \"/changePhone.do\",\r\n resendSms: \"/resendSms.do\",\r\n registerTempEmailUser: \"/registerTempEmailUser.do\",\r\n verifyLoginEmail: \"/verifyLoginEmail.do\",\r\n updateUserMarketingInfo: \"/updateUserMarketingInfo.do\",\r\n registerTempPhoneUser: \"/registerTempPhoneUser.do\",\r\n registerPhysicalCard: \"/validatePhysicalCardUser.do\",\r\n getUserMemberTierDetail: \"/getUserMemberTierDetail.do\",\r\n getRecipes: \"/getRecipes.do\",\r\n getRecipesInfo: \"/getRecipesInfo.do\",\r\n getMyGrocerys: \"/getMyGrocerys.do\",\r\n createNewPlanRecipes: \"/createNewPlanRecipes.do\",\r\n delMyGrocerys: \"/delMyGrocerys.do\",\r\n buyMyGrocerys: \"/buyMyGrocerys.do\",\r\n exportRecipesInfo: \"/exportRecipesInfo.do\",\r\n getMyPlanRecipes: \"/getMyPlanRecipes.do\",\r\n planMyRecipes: \"/planMyRecipes.do\",\r\n addMyGrocerys: \"addMyGrocerys.do\",\r\n validateUser: \"/validateUser.do\",\r\n\r\n listUserStampCard: \"/listUserStampCard.do\",\r\n detailsUserStampCard: \"/detailsUserStampCard.do\",\r\n verifySmsForReg: \"/verifySmsForReg.do\",\r\n findProfile: \"/findProfile.do\",\r\n confirmProfile: \"/confirmProfile.do\",\r\n listCouponsAndGift: \"/listCouponsAndGift.do\",\r\n redeemUserStampCard: \"/redeemUserStampCard.do\",\r\n redeemUserCoupon: \"/redeemUserCoupon.do\",\r\n redeemGift: \"/redeemGift.do\",\r\n resetUserPasswordByPhone: \"/resetUserPasswordByPhone.do\",\r\n listStampCardForHomePage: \"/listStampCardForHomePage.do\",\r\n sendVerifyEmail: \"/sendVerifyEmail.do\",\r\n verifyEmail: \"/verifyEmail.do\",\r\n resetUserPasswordByEmail: \"/resetUserPasswordByEmail.do\",\r\n checkIsExistAccount: \"/checkIsExistAccount.do\",\r\n checkIsExistUserName: \"/checkIsExistUserName.do\",\r\n\r\n transferStampByCode: \"/transferStampByCode.do\",\r\n searchUser: \"/searchUser.do\",\r\n getRecentTransferRecord: \"/getRecentTransferRecord.do\",\r\n receiveTransferStamp: \"/receiveTransferStamp.do\",\r\n initUserStampCard: \"/initUserStampCard.do\",\r\n passkitGoogle: \"/passkit/google\",\r\n passkitGetCodeForIos: \"/passkit/getCodeForIos\",\r\n passkitIos: \"/passkit/ios\",\r\n getTransactionList: \"/listTransaction.do\",\r\n bindUserProfile: \"/bindUserProfile.do\",\r\n\r\n getRecipientsList: \"/listRecipients.do\",\r\n getUserRecipients: \"/getUserRecipients.do\",\r\n getDonationReport: \"/getDonationReport.do\",\r\n saveUserRecipients: \"/saveUserRecipients.do\",\r\n refreshToken: \"/auth/refreshToken.do\",\r\n likeGift: \"/likeGift.do\",\r\n getServerTime: \"/getServerTime.do\",\r\n\r\n getUserNewRewardNotifi: \"/getUserNewRewardNotifi.do\",\r\n listUserReward: \"/listUserReward.do\",\r\n },\r\n TIMEOUT_CODE: 10401,\r\n apiDomain: apiDomain,\r\n shareUrl: shareUrl,\r\n selectNo: \"landing\",\r\n loading: null,\r\n type: [\"C\", \"S\"],\r\n MAX_WIDTH: 670,\r\n loadingTime: null,\r\n defaultIcon: require(\"@/assets/user_default_photo.png\"),\r\n app: {\r\n title: null,\r\n },\r\n showTime: null,\r\n };\r\n },\r\n methods: {\r\n getAuthObj() {\r\n const obj = {\r\n merchantId: store.state.form.merchantDetail.merchantId,\r\n lang: store.state.lang,\r\n accessToken: \"\",\r\n };\r\n if (store.state.form.token) {\r\n obj.accessToken =\r\n store.state.form.token.tokenType +\r\n \" \" +\r\n store.state.form.token.accessToken;\r\n } else {\r\n delete obj[\"accessToken\"];\r\n }\r\n return obj;\r\n },\r\n async showLoading() {\r\n if (this.showTime) {\r\n clearTimeout(this.showTime);\r\n }\r\n this.showTime = setTimeout(() => {\r\n if (this.loadingTime) {\r\n clearTimeout(this.loadingTime);\r\n }\r\n store.state.showLoading = true;\r\n }, 1000);\r\n },\r\n hideLoading() {\r\n if (this.showTime) {\r\n clearTimeout(this.showTime);\r\n }\r\n if (store.state.showLoading) {\r\n this.loadingTime = setTimeout(() => {\r\n store.state.showLoading = false;\r\n }, 500);\r\n }\r\n },\r\n clickTabEvent(index) {\r\n this.$store.state.selectNo = index;\r\n },\r\n timeoutEvent() {\r\n this.$store.state.form.token = \"\";\r\n this.setStorageEvent();\r\n this.$router.push({\r\n path: \"/main/landing\",\r\n });\r\n },\r\n async getMerchantDetail(callback) {\r\n const objdata = {\r\n merchantCode: process.env.VUE_APP_MERCHANT_CODE,\r\n lang: store.state.lang,\r\n apiUrl: this.apiConfig.getMerchantDetail,\r\n };\r\n const data = await store.dispatch(\"apiGetEvent\", objdata);\r\n if (!data) {\r\n return;\r\n }\r\n if (data == this.TIMEOUT_CODE) {\r\n this.timeoutEvent();\r\n return;\r\n }\r\n if (data.data.result.registerRequiredFields) {\r\n data.data.result.registerRequiredFields =\r\n data.data.result.registerRequiredFields.split(\",\");\r\n }\r\n if (data.data.result.registerCcOtherLoginMethodField) {\r\n data.data.result.registerCcOtherLoginMethodField =\r\n data.data.result.registerCcOtherLoginMethodField.split(\",\");\r\n }\r\n if (data.data.result.registerShowFields) {\r\n data.data.result.registerShowFields =\r\n data.data.result.registerShowFields.split(\",\");\r\n }\r\n store.state.form.merchantDetail = data.data.result;\r\n this.setStorageEvent();\r\n if (callback) {\r\n callback();\r\n }\r\n },\r\n checkRequiredField(id) {\r\n if (store.state.form.merchantDetail.registerRequiredFields) {\r\n let isHave =\r\n store.state.form.merchantDetail.registerRequiredFields.find(\r\n (item) => item == id\r\n );\r\n if (isHave) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n checkShowField(id) {\r\n if (store.state.form.merchantDetail.registerShowFields) {\r\n let isHave = store.state.form.merchantDetail.registerShowFields.find(\r\n (item) => item == id\r\n );\r\n if (isHave) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n sendGAEvent(event, category, label, value) {\r\n if (!this.$store.state.appVersion) {\r\n category = \"W-\" + category;\r\n }\r\n if (this.$store.state.appVersion) {\r\n FirebaseAnalytics.logEvent({\r\n name: event,\r\n params: {\r\n content_type: category,\r\n content_id: label,\r\n items: [{ name: value }],\r\n },\r\n });\r\n } else {\r\n gtag('event', event, {\r\n 'event_category': category,\r\n 'event_label': label,\r\n 'value': value\r\n });\r\n }\r\n },\r\n initFirebase() {\r\n FirebaseAnalytics.setCollectionEnabled({\r\n enabled: true,\r\n });\r\n },\r\n sendGAPageView(title) {\r\n if (this.$store.state.appVersion) {\r\n FirebaseAnalytics.setScreenName({\r\n screenName: title,\r\n nameOverride: this.$route.path,\r\n });\r\n } else {\r\n gtag('event', 'page_view', {\r\n page_title: title,\r\n page_path: this.$route.path,\r\n })\r\n }\r\n },\r\n setGAUserId(id) {\r\n if (this.$store.state.appVersion) {\r\n FirebaseAnalytics.setUserId({\r\n userId: id,\r\n });\r\n } else {\r\n gtag(\"config\", process.env.VUE_APP_GA4_ID, {\r\n 'uid': id\r\n });\r\n }\r\n },\r\n async getUserPofileEvent(callback) {\r\n const objdata = this.getAuthObj();\r\n objdata.isFromLoyalty = false;\r\n objdata.apiUrl = this.apiConfig.getUserProfile;\r\n const data = await this.$store.dispatch(\"apiGetEvent\", objdata);\r\n if (!data) {\r\n return;\r\n }\r\n data.data.result.isPaperReceipt = !data.data.result.isPaperReceipt\r\n this.setGAUserId(data.data.result.userId)\r\n\r\n this.$store.state.form.userInfo = data.data.result;\r\n this.$store.state.userInfo = {\r\n phoneAreaCode: \"+61\",\r\n isMarketingInfo: false,\r\n isPaperReceipt: false,\r\n };\r\n this.setStorageEvent();\r\n this.registerDeviceTokenEvent();\r\n if (callback) {\r\n callback();\r\n return;\r\n }\r\n this.$router.push({\r\n path: \"/main/landing\",\r\n });\r\n },\r\n formatDate(input, rule) {\r\n if (!input || !rule) return;\r\n let symbol;\r\n if (rule.indexOf(\".\") > 0) {\r\n symbol = \".\";\r\n } else if (rule.indexOf(\"-\") > 0) {\r\n symbol = \"-\";\r\n } else if (rule.indexOf(\"/\") > 0) {\r\n symbol = \"/\";\r\n }\r\n const timeStamp = new Date(input);\r\n const year = timeStamp.getFullYear();\r\n const shortYear = year.toString().substring(2);\r\n let month = timeStamp.getMonth() + 1;\r\n if (month < 10) {\r\n month = \"0\" + month;\r\n }\r\n let date = timeStamp.getDate();\r\n if (date < 10) {\r\n date = \"0\" + date;\r\n }\r\n const ruleArray = rule.split(/[-. \\\\/]/);\r\n let x = \"\";\r\n for (let i = 0; i < ruleArray.length; i++) {\r\n if (ruleArray[i] == \"DD\" || ruleArray[i] == \"dd\") {\r\n x += date + symbol;\r\n } else if (ruleArray[i] == \"YYYY\") {\r\n x += year + symbol;\r\n } else if (ruleArray[i] == \"MM\") {\r\n x += month + symbol;\r\n } else if (ruleArray[i] == \"YY\") {\r\n x += shortYear + symbol;\r\n }\r\n }\r\n return x.slice(0, x.length - 1);\r\n },\r\n getTimeStamp(input) {\r\n return new Date(input).valueOf();\r\n },\r\n checkToken(Name, callback) {\r\n if (!store.state.form.token) {\r\n store.state.form.registrationBack = Name;\r\n store.state.firstPage = 1;\r\n this.$router.push({\r\n path: \"/main/me\",\r\n });\r\n } else {\r\n callback();\r\n }\r\n },\r\n getDeviceType() {\r\n if (isPlatform(\"ios\")) {\r\n return 1;\r\n } else if (isPlatform(\"android\")) {\r\n return 2;\r\n }\r\n },\r\n async setStorageEvent() {\r\n await Storage.set({\r\n key: \"formData\",\r\n value: JSON.stringify(store.state.form),\r\n });\r\n },\r\n async getStorageEvent() {\r\n const formData = await Storage.get({\r\n key: \"formData\",\r\n });\r\n if (formData.value) {\r\n store.state.form = JSON.parse(formData.value);\r\n this.setGAUserId(store.state.form.userInfo.userId)\r\n }\r\n },\r\n async removeStorageEvent() {\r\n await Storage.remove({\r\n key: \"formData\",\r\n });\r\n },\r\n async getLocation() {\r\n await Geolocation.getCurrentPosition({\r\n enableHighAccuracy: true,\r\n timeout: 5000,\r\n maximumAge: 0,\r\n }).then((res) => {\r\n store.state.lat = res.coords.latitude;\r\n store.state.lng = res.coords.longitude;\r\n });\r\n },\r\n async setStatusBarStyleDark() {\r\n if (this.$store.state.appVersion) {\r\n StatusBar.setOverlaysWebView({ overlay: true });\r\n await StatusBar.setStyle({ style: Style.Dark });\r\n }\r\n },\r\n async setStatusBarStyleLight() {\r\n if (this.$store.state.appVersion) {\r\n StatusBar.setOverlaysWebView({ overlay: true });\r\n await StatusBar.setStyle({ style: Style.Light });\r\n }\r\n },\r\n async openInAppBrowser(item) {\r\n if (item.webUrl && item.bannerType == 1) {\r\n await Browser.open({ url: item.webUrl });\r\n } else if (item.video && item.bannerType == 2) {\r\n this.$router.push({\r\n path: \"/bannerDetail\",\r\n // query:{\r\n // video: item.video,\r\n // text: item.text,\r\n // name: item.name,\r\n // }\r\n });\r\n this.$store.state.form.bannerInfo = {\r\n video: item.video,\r\n text: item.text,\r\n name: item.name,\r\n };\r\n } else if (item.coverImg && item.bannerType == 3) {\r\n this.$router.push({\r\n path: \"/bannerDetail\",\r\n });\r\n this.$store.state.form.bannerInfo = {\r\n text: item.text,\r\n coverImg: item.coverImg,\r\n name: item.name,\r\n bannerType: item.bannerType,\r\n };\r\n } else if (item.coverImg && item.bannerType == 4) {\r\n if (!this.$store.state.form.token) {\r\n this.$router.push({\r\n path: \"/login\",\r\n });\r\n return;\r\n }\r\n this.$router.push({\r\n path: \"/bannerDetail\",\r\n });\r\n this.$store.state.form.bannerInfo = {\r\n text: item.text,\r\n coverImg: item.coverImg,\r\n name: item.name,\r\n bannerType: item.bannerType,\r\n };\r\n }\r\n },\r\n async shareEvent(obj) {\r\n if (!obj.image) {\r\n obj.image =\r\n \"https://cdn-tccstd-web-dev.azureedge.net/share/images/app_icon.png\";\r\n }\r\n const objdata = this.getAuthObj();\r\n objdata.title = obj.title;\r\n objdata.image = obj.image;\r\n objdata.description = obj.description;\r\n objdata.apiUrl = this.apiConfig.saveShareData;\r\n const data = await this.$store.dispatch(\"apiEvent\", objdata);\r\n if (!data) {\r\n return;\r\n }\r\n if (data == this.TIMEOUT_CODE) {\r\n this.timeoutEvent();\r\n return;\r\n }\r\n this.shareAppEvent(data.data.result.shareDownloadPageUrl, obj);\r\n },\r\n async shareAppEvent(url, data) {\r\n if (data.code) {\r\n url += \"&\" + data.code;\r\n }\r\n console.log(url);\r\n await Share.share({\r\n title: data.title,\r\n text: data.description,\r\n url: url,\r\n dialogTitle: data.title,\r\n });\r\n },\r\n async takePicture() {\r\n const image = await Camera.getPhoto({\r\n quality: 90,\r\n allowEditing: false,\r\n width: 1000,\r\n height: 1000,\r\n resultType: CameraResultType.Base64,\r\n });\r\n const imageUrl = \"data:image/jpg;base64,\" + image.base64String;\r\n\r\n // Can be set to the src of an image now\r\n store.state.form.photo = imageUrl;\r\n this.$router.replace({\r\n path: \"/cropper\",\r\n });\r\n },\r\n async getNexwork() {\r\n Network.addListener(\"networkStatusChange\", (status) => {\r\n store.state.connected = status.connected;\r\n });\r\n const status = await Network.getStatus();\r\n store.state.connected = status.connected;\r\n },\r\n async registerDeviceTokenEvent() {\r\n if (!this.$store.state.deviceToken) {\r\n return;\r\n }\r\n const objdata = this.getAuthObj();\r\n objdata.status = 1;\r\n\r\n objdata.deviceToken = this.$store.state.deviceToken;\r\n objdata.deviceType = this.$store.state.deviceType;\r\n objdata.apiUrl = this.apiConfig.registerDeviceToken;\r\n const data = await this.$store.dispatch(\"apiEvent\", objdata);\r\n if (!data) {\r\n return;\r\n }\r\n if (data == this.TIMEOUT_CODE) {\r\n this.timeoutEvent();\r\n return;\r\n }\r\n },\r\n getPushEvent() {\r\n if (!this.$store.state.appVersion) return;\r\n PushNotifications.requestPermissions().then(result => {\r\n if (result.receive === 'granted') {\r\n // Register with Apple / Google to receive push via APNS/FCM\r\n PushNotifications.register();\r\n } else {\r\n // Show some error\r\n }\r\n });\r\n\r\n // On success, we should be able to receive notifications\r\n PushNotifications.addListener('registration',\r\n (token) => {\r\n\r\n console.log('Push registration success, token: ' + token.value);\r\n this.$store.state.deviceToken = token.value;\r\n }\r\n );\r\n\r\n // Some issue with our setup and push will not work\r\n PushNotifications.addListener(\"registrationError\", (error) => {\r\n console.log(\"Error on registration: \" + JSON.stringify(error));\r\n });\r\n\r\n // Show us the notification payload if the app is open on our device\r\n PushNotifications.addListener(\r\n \"pushNotificationReceived\",\r\n (notification) => {\r\n if (this.$store.state.deviceType == 1) {\r\n var msg = notification.data.aps.alert;\r\n this.$store.commit(\"setwarning\", {\r\n string: msg,\r\n });\r\n } else {\r\n this.$store.commit(\"setwarning\", {\r\n string: notification.body,\r\n });\r\n }\r\n }\r\n );\r\n // Method called when tapping on a notification\r\n PushNotifications.addListener(\r\n \"pushNotificationActionPerformed\",\r\n (notification) => {\r\n this.pushNotiEvent(notification);\r\n // {\r\n // \"actionId\": \"tap\",\r\n // \"notification\": {\r\n // \"id\": \"0:1711383600351558%624febf8624febf8\",\r\n // \"data\": {\r\n // \"google.delivered_priority\": \"normal\",\r\n // \"google.original_priority\": \"normal\",\r\n // \"pageRedirectType\": \"7\",\r\n // \"from\": \"115419499450\",\r\n // \"type\": \"4\",\r\n // \"badge\": \"0\",\r\n // \"msgId\": \"217\",\r\n // \"refId\": \"42\",\r\n // \"message\": \"test1\",\r\n // \"collapse_key\": \"com.cherrypicks.tcc.ritchies.dev\"\r\n // }\r\n // }\r\n // }\r\n }\r\n );\r\n this.clearPoint();\r\n },\r\n clearPoint() {\r\n if (!this.$store.state.appVersion) return;\r\n PushNotifications.removeAllDeliveredNotifications();\r\n },\r\n async pushNotiEvent(data) {\r\n console.log(\"pushData0\", data);\r\n console.log(\"pushData1\", data.notification.data);\r\n let dataMsg = data.notification.data;\r\n if (this.$store.state.form.token) {\r\n this.$store.state.getNotification = dataMsg;\r\n if (dataMsg.type == 4) {\r\n if (dataMsg.pageRedirectType == 1) {\r\n this.$router.push({\r\n path: \"/stampCardDetail/\" + dataMsg.refId,\r\n });\r\n } else if (dataMsg.pageRedirectType == 6) {\r\n this.$router.push({\r\n path: \"/couponDetail/\" + dataMsg.refId,\r\n });\r\n } else if (dataMsg.pageRedirectType == 7) {\r\n const objdata = this.getAuthObj();\r\n objdata.pageLimit = 99;\r\n objdata.pageNum = 0;\r\n objdata.apiUrl = this.apiConfig.listUserStampCard;\r\n const data = await this.$store.dispatch(\"apiGetEvent\", objdata);\r\n if (!data) {\r\n return;\r\n }\r\n if (data == this.TIMEOUT_CODE) {\r\n this.timeoutEvent();\r\n return;\r\n }\r\n let item = data.data.result.find(\r\n (item) => dataMsg.refId == item.stampCardId\r\n );\r\n if (item) {\r\n this.$router.push({\r\n path: \"/collectorCardDetail/\" + item.id,\r\n });\r\n } else {\r\n this.$router.push({\r\n path: \"/main/offers\",\r\n });\r\n }\r\n }\r\n }\r\n } else {\r\n this.$router.push({\r\n path: \"/login\",\r\n });\r\n }\r\n },\r\n checkStampNum(stamp) {\r\n if (stamp > 99) {\r\n return \"99+\";\r\n }\r\n return stamp;\r\n },\r\n async successToast(msg) {\r\n Toast.success(msg);\r\n },\r\n async toastEvent(msg) {\r\n Toast(msg);\r\n },\r\n async successToastLT(msg) {\r\n Toast.success({ message: msg, className: \"longText\" });\r\n },\r\n timeOutLogout() {\r\n this.$store.state.form.token = \"\";\r\n this.$store.state.form.eCouponList = [];\r\n this.$store.state.form.stampList = [];\r\n this.$store.state.form.collectCardList = [];\r\n this.$store.state.userInfo = {};\r\n\r\n this.setStorageEvent();\r\n\r\n this.$router.replace({\r\n path: \"/main/landing\",\r\n });\r\n },\r\n GetRequest(url) {\r\n if (url.match(new RegExp(\"http\", \"g\")).length > 1) {\r\n var uncodeUri = decodeURIComponent(url);\r\n uncodeUri = uncodeUri.split(\"://\");\r\n url = uncodeUri[uncodeUri.length - 1];\r\n }\r\n var theRequest = new Object();\r\n\r\n if (url.indexOf(\"?\") > -1) {\r\n var str = url.substring(url.indexOf(\"?\") + 1);\r\n var strArr = null;\r\n if (str.indexOf(\"&\") > -1) {\r\n strArr = str.split(\"&\");\r\n if (strArr[strArr.length - 1].indexOf(\"&\") > -1) {\r\n strArr[strArr.length - 1] = strArr[strArr.length - 1].split(\"&\");\r\n strArr[strArr.length - 1] = strArr[strArr.length - 1][0];\r\n }\r\n } else {\r\n strArr = str.split(\"&\");\r\n }\r\n for (var i = 0; i < strArr.length; i++) {\r\n theRequest[strArr[i].split(\"=\")[0]] = decodeURIComponent(\r\n strArr[i].split(\"=\")[1]\r\n );\r\n }\r\n }\r\n\r\n return theRequest;\r\n },\r\n async receiveTransferStampEvent(code) {\r\n const objdata = this.getAuthObj();\r\n objdata.transferCode = code;\r\n objdata.apiUrl = this.apiConfig.receiveTransferStamp;\r\n const data = await this.$store.dispatch(\"apiPutEvent\", objdata);\r\n if (!data) {\r\n return;\r\n }\r\n if (data == this.TIMEOUT_CODE) {\r\n this.timeoutEvent();\r\n return;\r\n }\r\n if (data.data.result) {\r\n Toast(\"Receive Transfer Stamp Success\");\r\n }\r\n },\r\n async checkAppLaunchUrl() {\r\n const { url } = await App.getLaunchUrl();\r\n // this.toastEvent(\"App opened with URL:\", url);\r\n let Request = new Object();\r\n Request = this.GetRequest(url);\r\n // this.toastEvent(\"App opened with Data:\", JSON.stringify(Request));\r\n if (this.$store.state.form.token && Request.code) {\r\n this.receiveTransferStampEvent(Request.code);\r\n }\r\n },\r\n\r\n async getAppInfo(bool) {\r\n try {\r\n const info = await App.getInfo();\r\n store.state.appVersion = info.version;\r\n if (this.$store.state.connected) {\r\n const objdata = {};\r\n objdata.apiUrl = process.env.VUE_APP_VERSION + \"?rnd=\" + Date.now();\r\n const data = await this.$store.dispatch(\"jsonEvent\", objdata);\r\n // this.toastEvent(info.version+' '+data.data.minimum_version)\r\n if (data && data.data) {\r\n if (info.version < data.data.minimum_version && bool) {\r\n this.updateAlert(data.data);\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n } catch (e) {\r\n return true;\r\n }\r\n },\r\n async getMoreInfo() {\r\n const objdata = {};\r\n objdata.apiUrl =\r\n process.env.VUE_APP_SHARE_URL + \"more.json?rnd=\" + Date.now();\r\n // objdata.apiUrl = 'http://192.168.112.92:8080/share/more.json';\r\n const data = await this.$store.dispatch(\"jsonEvent\", objdata);\r\n //1, title 2,text 3,video ,4, image\r\n if (data && data.data && data.data.aboutUs) {\r\n this.$store.state.moreInfo = data.data;\r\n }\r\n },\r\n async updateAlert(data) {\r\n const alert = await alertController.create({\r\n message: data.message,\r\n buttons: [\r\n {\r\n text: \"Cancel\",\r\n handler: () => {\r\n navigator.app.exitApp();\r\n App.exitApp();\r\n },\r\n },\r\n {\r\n text: \"Okay\",\r\n handler: () => {\r\n this.openBrowser(data.link);\r\n App.exitApp();\r\n },\r\n },\r\n ],\r\n });\r\n return alert.present();\r\n },\r\n async openBrowser(url) {\r\n await Browser.open({ url: url });\r\n },\r\n async getMemberDetail(bool, type) {\r\n this.cardData = [];\r\n const objdata = this.getAuthObj();\r\n objdata.isCallLoyalty = false;\r\n objdata.apiUrl = this.apiConfig.getUserMemberTierDetail;\r\n const data = await this.$store.dispatch(\"apiGetEvent\", objdata);\r\n if (!data) {\r\n return;\r\n }\r\n if (data == this.TIMEOUT_CODE) {\r\n this.timeoutEvent();\r\n return;\r\n }\r\n this.cardData.push({\r\n img: data.data.result.tierImg,\r\n id: \"user\" + data.data.result.userId,\r\n name: this.$store.state.form.userInfo.userName,\r\n qrcode: data.data.result.qrCode,\r\n data: \"\",\r\n type: 0,\r\n });\r\n this.$store.state.form.cardData = this.cardData;\r\n if (bool) {\r\n return;\r\n }\r\n if (this.$store.state.getNotification == null) {\r\n if (this.$store.state.appVersion) {\r\n // this.$router.replace({\r\n // path: \"/main/landing\",\r\n // });\r\n // setTimeout(() => {\r\n this.$router.replace({\r\n path: \"/wallet\",\r\n query: { type },\r\n });\r\n // }, 100)\r\n } else {\r\n if (type == 1) {\r\n this.$router.replace({\r\n path: \"/main/landing\",\r\n query: {\r\n isLogin: 1,\r\n },\r\n });\r\n } else if (type == 2) {\r\n this.$router.replace({\r\n path: \"/main/landing\",\r\n });\r\n }\r\n }\r\n }\r\n },\r\n async refreshTokenEvent() {\r\n const objdata = this.getAuthObj();\r\n delete objdata[\"merchantId\"];\r\n delete objdata[\"accessToken\"];\r\n objdata.refreshToken = this.$store.state.form.token.refreshToken;\r\n objdata.nullToken = true;\r\n objdata.apiUrl = this.apiConfig.refreshToken;\r\n const data = await this.$store.dispatch(\"apiEvent\", objdata);\r\n if (!data) {\r\n return;\r\n }\r\n if (data == this.TIMEOUT_CODE) {\r\n this.timeoutEvent();\r\n return;\r\n }\r\n this.$store.state.form.token = data.data.result;\r\n this.setStorageEvent();\r\n },\r\n formatString(str) {\r\n var tmp = \"\";\r\n for (var i = 0; i < str.length; i++) {\r\n if (str.charCodeAt(i) >= 65281 && str.charCodeAt(i) <= 65374) {\r\n // 如果位于全角!到全角~区间内\r\n tmp += String.fromCharCode(str.charCodeAt(i) - 65248);\r\n } else if (str.charCodeAt(i) == 12288) {\r\n //全角空格的值,它没有遵从与ASCII的相对偏移,必须单独处理\r\n tmp += \" \";\r\n } else {\r\n // 不处理全角空格,全角!到全角~区间外的字符\r\n tmp += str[i];\r\n }\r\n }\r\n return tmp;\r\n },\r\n },\r\n },\r\n};\r\n"],"sourceRoot":""}