{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7e02","webpack:///./src/App.vue?754e","webpack:///./src/components/layout/Header.vue?da00","webpack:///src/components/layout/Header.vue","webpack:///./src/components/layout/Header.vue?2022","webpack:///./src/components/layout/Header.vue","webpack:///./src/components/layout/Footer.vue?b3c2","webpack:///src/components/layout/Footer.vue","webpack:///./src/components/layout/Footer.vue?5bbf","webpack:///./src/components/layout/Footer.vue","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/router/index.js","webpack:///./src/data/phones.js","webpack:///./src/data/brands.js","webpack:///./src/filters/brandFilter.js","webpack:///./src/filters/orderByFilter.js","webpack:///./src/filters/phoneTextFilter.js","webpack:///./src/store/index.js","webpack:///./src/filters/priceFormatter.js","webpack:///./src/main.js","webpack:///./src/assets/logo.png"],"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","_vm","this","_h","$createElement","_c","_self","staticStyle","staticRenderFns","staticClass","attrs","_v","_s","$store","getters","cartLength","on","signOut","isloggedIn","currentUser","mounted","setupFirebase","methods","user","log","component","components","Header","Footer","Vue","use","VueRouter","routes","path","router","base","process","phones","title","category","images","brand","price","cpu","camera","size","weight","display","battery","memory","id","description","brands","brandFilter","arr","filter","product","includes","orderByFilter","sort","el1","el2","phoneTextFilter","textSearch","Vuex","Store","strict","state","products","cart","orderBy","brandsCount","counts","forEach","filterProducts","filterByBrandArr","filterByOrderArr","filterByPhoneTextArr","mutations","addProductToCart","lgo","cartItemIndex","findIndex","item","quantity","total","removeProductFromCart","incrementItemQuantity","decrementItemQuantity","clearCart","addBrandToFilter","removeBrandFromFilter","reg","RegExp","replace","orderByPriceAsc","orderByPriceDesc","searchText","text","actions","context","payload","commit","formatMoney","number","toLocaleString","style","currency","library","add","faPlus","faMinus","faTrash","faSearch","FontAwesomeIcon","config","productionTip","VueSwal","BootstrapVue","IconsPlugin","app","bus","firebaseConfig","apiKey","authDomain","databaseURL","projectId","appId","firebase","initializeApp","auth","onAuthStateChanged","store","render","h","App","$mount"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,GAAG9B,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,MAI5P,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,GACrER,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,GAAGxC,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,OACpOyC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,IAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B/F,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,6EC1QT,W,iJCAI,EAAS,WAAa,IAAI+F,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,UAAUA,EAAG,MAAM,CAACE,YAAY,CAAC,QAAU,QAAQ,CAACF,EAAG,gBAAgB,GAAGA,EAAG,WAAW,IACjMG,EAAkB,GCDlB,EAAS,WAAa,IAAIP,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACI,YAAY,+CAA+C,CAACJ,EAAG,MAAM,CAACI,YAAY,aAAa,CAACJ,EAAG,cAAc,CAACI,YAAY,eAAeC,MAAM,CAAC,GAAK,MAAM,CAACL,EAAG,MAAM,CAACK,MAAM,CAAC,MAAQ,MAAM,IAAM,OAAO,IAAM,EAAQ,aAA0BL,EAAG,MAAM,CAACA,EAAG,KAAK,CAACI,YAAY,sBAAsB,CAAER,EAAc,WAAEI,EAAG,KAAK,CAACI,YAAY,YAAY,CAACJ,EAAG,cAAc,CAACK,MAAM,CAAC,GAAK,UAAU,CAACT,EAAIU,GAAG,SAASV,EAAIW,GAAGX,EAAIY,OAAOC,QAAQC,YAAY,OAAOd,EAAIU,GAAG,OAAON,EAAG,SAAS,CAACW,GAAG,CAAC,MAAQf,EAAIgB,UAAU,CAAChB,EAAIU,GAAG,eAAe,GAAGN,EAAG,KAAK,CAACA,EAAG,cAAc,CAACK,MAAM,CAAC,GAAK,WAAW,CAACT,EAAIU,GAAG,YAAY,QAAQ,MACzsB,EAAkB,G,kCCyBtB,GACE1C,KAAM,SACNnF,KAFF,WAGI,MAAO,CACLoI,YAAY,EACZC,aAAa,IAGjBC,QARF,WASIlB,KAAKmB,iBAEPC,QAAS,CACPD,cADJ,WACA,WACM,EAAN,4CACYE,GAEF3B,QAAQ4B,IAAI,aACZ,EAAV,gBAGU,EAAV,cACU5B,QAAQ4B,IAAI,mBAIlBP,QAdJ,WAcA,WACM,EAAN,KACA,OACA,UACA,iBACQ,EAAR,iBAAU,KAAV,gBCxD+V,I,YCO3VQ,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,QClBX,EAAS,WAAa,IAAIxB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACI,YAAY,gBAAgB,CAACJ,EAAG,MAAM,CAACI,YAAY,aAAa,CAACJ,EAAG,cAAc,CAACK,MAAM,CAAC,GAAK,cAAc,CAACT,EAAIU,GAAG,cAAcV,EAAIU,GAAG,OAAON,EAAG,cAAc,CAACK,MAAM,CAAC,GAAK,WAAW,CAACT,EAAIU,GAAG,YAAY,MACvT,EAAkB,GCStB,KCV+V,ICO3V,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QCJf,GACEe,WAAY,CACVC,OAAJ,EACIC,OAAJ,ICjB8T,ICQ1T,G,UAAY,eACd,EACA,EACApB,GACA,EACA,KACA,KACA,OAIa,I,gCChBfqB,aAAIC,IAAIC,QAER,IAAMC,EAAS,CACb,CACEC,KAAM,SACNhE,KAAM,QAINwD,UAAW,kBAAM,kDAEnB,CACEQ,KAAM,IACNhE,KAAM,WACNwD,UAAW,kBAAM,kDAEnB,CACEQ,KAAM,QACNhE,KAAM,OACNwD,UAAW,kBAAM,kDAEnB,CACEQ,KAAM,WACNhE,KAAM,UACNwD,UAAW,kBAAM,kDAEnB,CACEQ,KAAM,SACNhE,KAAM,QACNwD,UAAW,kBAAM,kDAEnB,CACEQ,KAAM,YACNhE,KAAM,WACNwD,UAAW,kBAAM,mDAIfS,EAAS,IAAIH,OAAU,CAC3B7C,KAAM,UACNiD,KAAMC,IACNJ,WAGaE,I,0GC/CFG,EAAS,CACpB,CACEC,MAAO,4BACPC,SAAU,QACVC,OAAQ,CACN,0EACA,0EACA,0EACA,2EAEFC,MAAO,QACPC,MAAO,kBACPC,IAAK,kBACLC,OAAQ,kBACRC,KAAM,gDACNC,OAAQ,sCACRC,QAAS,wBACTC,QAAS,WACTC,OAAQ,0BACRC,GAAI,EACJC,YACE,yKAEJ,CACEb,MAAO,4BACPC,SAAU,QACVC,OAAQ,CACN,0EACA,0EACA,0EACA,2EAEFC,MAAO,SACPC,MAAO,mBACPC,IAAK,kBACLC,OAAQ,kBACRC,KAAM,gDACNC,OAAQ,sCACRC,QAAS,wBACTC,QAAS,WACTC,OAAQ,0BACRC,GAAI,EACJC,YACE,sFAEJ,CACEb,MAAO,wBACPC,SAAU,QACVC,OAAQ,CACN,0EACA,0EACA,0EACA,2EAEFC,MAAO,SACPC,MAAO,kBACPC,IAAK,kBACLC,OAAQ,kBACRC,KAAM,gDACNC,OAAQ,sCACRC,QAAS,wBACTC,QAAS,WACTC,OAAQ,0BACRC,GAAI,EACJC,YACE,sFAEJ,CACEb,MAAO,+BACPC,SAAU,QACVC,OAAQ,CACN,0EACA,0EACA,0EACA,2EAEFC,MAAO,UACPC,MAAO,kBACPC,IAAK,kBACLC,OAAQ,kBACRC,KAAM,gDACNC,OAAQ,sCACRC,QAAS,wBACTC,QAAS,WACTC,OAAQ,0BACRC,GAAI,EACJC,YACE,sFAEJ,CACEb,MAAO,+BACPC,SAAU,QACVC,OAAQ,CACN,0EACA,0EACA,0EACA,2EAEFC,MAAO,UACPC,MAAO,mBACPC,IAAK,kBACLC,OAAQ,kBACRC,KAAM,gDACNC,OAAQ,sCACRC,QAAS,wBACTC,QAAS,WACTC,OAAQ,0BACRC,GAAI,EACJC,YACE,sFAEJ,CACEb,MAAO,uBACPC,SAAU,QACVC,OAAQ,CACN,yEACA,yEACA,yEACA,0EAEFC,MAAO,QACPC,MAAO,mBACPC,IAAK,kBACLC,OAAQ,kBACRC,KAAM,gDACNC,OAAQ,sCACRC,QAAS,wBACTC,QAAS,WACTC,OAAQ,0BACRC,GAAI,GACJC,YACE,sFAEJ,CACEb,MAAO,iCACPC,SAAU,QACVC,OAAQ,CACN,2EACA,2EACA,2EACA,4EAEFC,MAAO,UACPC,MAAO,mBACPC,IAAK,kBACLC,OAAQ,kBACRC,KAAM,gDACNC,OAAQ,sCACRC,QAAS,wBACTC,QAAS,WACTC,OAAQ,0BACRC,GAAI,GACJC,YACE,sFAEJ,CACEb,MAAO,4BACPC,SAAU,QACVC,OAAQ,CACN,2EACA,2EACA,2EACA,4EAEFC,MAAO,UACPC,MAAO,mBACPC,IAAK,kBACLC,OAAQ,kBACRC,KAAM,gDACNC,OAAQ,sCACRC,QAAS,wBACTC,QAAS,WACTC,OAAQ,0BACRC,GAAI,GACJC,YACE,sFAEJ,CACEb,MAAO,6BACPC,SAAU,QACVC,OAAQ,CACN,2EACA,2EACA,2EACA,4EAEFC,MAAO,UACPC,MAAO,kBACPC,IAAK,kBACLC,OAAQ,kBACRC,KAAM,gDACNC,OAAQ,sCACRC,QAAS,wBACTC,QAAS,WACTC,OAAQ,0BACRC,GAAI,GACJC,YACE,sFAEJ,CACEb,MAAO,2BACPC,SAAU,QACVC,OAAQ,CACN,2EACA,2EACA,2EACA,4EAEFC,MAAO,UACPC,MAAO,mBACPC,IAAK,kBACLC,OAAQ,kBACRC,KAAM,gDACNC,OAAQ,sCACRC,QAAS,wBACTC,QAAS,WACTC,OAAQ,0BACRC,GAAI,GACJC,YACE,sFAEJ,CACEb,MAAO,oBACPC,SAAU,QACVC,OAAQ,CACN,yEACA,yEACA,yEACA,0EAEFC,MAAO,UACPC,MAAO,mBACPC,IAAK,kBACLC,OAAQ,kBACRC,KAAM,gDACNC,OAAQ,sCACRC,QAAS,wBACTC,QAAS,WACTC,OAAQ,0BACRC,GAAI,GACJC,YACE,sFAEJ,CACEb,MAAO,4BACPC,SAAU,QACVC,OAAQ,CACN,2EACA,2EACA,2EACA,4EAEFC,MAAO,SACPC,MAAO,kBACPC,IAAK,kBACLC,OAAQ,kBACRC,KAAM,gDACNC,OAAQ,sCACRC,QAAS,wBACTC,QAAS,WACTC,OAAQ,0BACRC,GAAI,GACJC,YACE,sFAEJ,CACEb,MAAO,6BACPC,SAAU,QACVC,OAAQ,CACN,yEACA,yEACA,0EAEFC,MAAO,QACPC,MAAO,kBACPC,IAAK,kBACLC,OAAQ,kBACRC,KAAM,gDACNC,OAAQ,sCACRC,QAAS,wBACTC,QAAS,WACTC,OAAQ,0BACRC,GAAI,GACJC,YACE,sFAEJ,CACEb,MAAO,+BACPC,SAAU,QACVC,OAAQ,CACN,0EACA,0EACA,0EACA,2EAEFC,MAAO,UACPC,MAAO,mBACPC,IAAK,kBACLC,OAAQ,kBACRC,KAAM,gDACNC,OAAQ,sCACRC,QAAS,wBACTC,QAAS,WACTC,OAAQ,0BACRC,GAAI,GACJC,YACE,sFAEJ,CACEb,MAAO,qCACPC,SAAU,QACVC,OAAQ,CACN,0EACA,0EACA,0EACA,2EAEFC,MAAO,SACPC,MAAO,mBACPC,IAAK,kBACLC,OAAQ,kBACRC,KAAM,gDACNC,OAAQ,sCACRC,QAAS,wBACTC,QAAS,WACTC,OAAQ,0BACRC,GAAI,GACJC,YACE,uFCxUOC,EAAS,CAAC,QAAS,SAAU,WCA7BC,EAAc,SAACC,EAAKb,GAC/B,OAAKA,EAEEa,EAAIC,QAAO,SAAAC,GAAO,OAAIf,EAAMgB,SAASD,EAAQf,UAFjCa,GCDRI,G,UAAgB,SAACJ,EAAKlH,GACjC,OAAKA,EACQ,QAATA,EACKkH,EAAItD,QAAQ2D,MAAK,SAACC,EAAKC,GAAN,OAAcD,EAAIlB,MAAQmB,EAAInB,SAE/CY,EAAItD,QAAQ2D,MAAK,SAACC,EAAKC,GAAN,OAAcA,EAAInB,MAAQkB,EAAIlB,SAJtCY,ICDPQ,EAAkB,SAACR,EAAKS,GACnC,OAAKA,EAEET,EAAIC,QAAO,SAAAC,GAAO,OAAIA,EAAQlB,MAAMmB,SAASM,MAF5BT,GCO1BzB,aAAIC,IAAIkC,QAEO,UAAIA,OAAKC,MAAM,CAC5BC,QAAQ,EAERC,MAAO,CACLC,SAAU/B,EACVe,OAAQA,EACRiB,KAAM,GACNhB,YAAa,GACbiB,QAAS,GACTP,WAAY,IAGdjD,QAAS,CACPC,WADO,SACIoD,GACT,OAAOA,EAAME,KAAK/K,QAEpBiL,YAJO,SAIKJ,GACV,IAAMK,EAAS,GAKf,OAJAL,EAAMC,SAASK,SAAQ,SAAA3J,GACrB0J,EAAO1J,EAAE2H,OAAS+B,EAAO1J,EAAE2H,OAAS,GAAK,KAGpC+B,GAETE,eAZO,SAYQP,GAGb,IAAMf,EAASe,EAAMd,YACfiB,EAAUH,EAAMG,QAChBP,EAAaI,EAAMJ,WAEnBY,EAAmBtB,EAAYc,EAAMC,SAAUhB,GAC/CwB,EAAmBlB,EAAciB,EAAkBL,GACnDO,EAAuBf,EAC3Bc,EACAb,GAGF,OAAOc,IAIXC,UAAW,CACTC,iBAAkB,SAACZ,EAAOX,GAExB5D,QAAQoF,IACR,IAAMC,EAAgBd,EAAME,KAAKa,WAC/B,SAAAC,GAAI,OAAIA,EAAKjC,KAAOM,EAAQN,MAG1B+B,EAAgB,EAElBd,EAAME,KAAKzK,KAAX,iCACK4J,GADL,IAEE4B,SAAU,EACVC,MAAO,EAAI7B,EAAQd,UAIrByB,EAAME,KAAKY,GAAeG,WAC1BjB,EAAME,KAAKY,GAAeI,MACxBlB,EAAME,KAAKY,GAAeG,SAAW5B,EAAQd,QAGnD4C,sBAAuB,SAACnB,EAAOjB,GAC7B,IAAM+B,EAAgBd,EAAME,KAAKa,WAAU,SAAAC,GAAI,OAAIA,EAAKjC,KAAOA,KAE/DiB,EAAME,KAAK7J,OAAOyK,EAAe,IAEnCM,sBAAuB,SAACpB,EAAOjB,GAC7B,IAAM+B,EAAgBd,EAAME,KAAKa,WAAU,SAAAC,GAAI,OAAIA,EAAKjC,KAAOA,KAE/DiB,EAAME,KAAKY,GAAeG,WAE1BjB,EAAME,KAAKY,GAAeI,MACxBlB,EAAME,KAAKY,GAAeG,SAAWjB,EAAME,KAAKY,GAAevC,OAEnE8C,sBAAuB,SAACrB,EAAOjB,GAC7B,IAAM+B,EAAgBd,EAAME,KAAKa,WAAU,SAAAC,GAAI,OAAIA,EAAKjC,KAAOA,KACpB,IAAvCiB,EAAME,KAAKY,GAAeG,WAC9BjB,EAAME,KAAKY,GAAeG,WAE1BjB,EAAME,KAAKY,GAAeI,MACxBlB,EAAME,KAAKY,GAAeG,SAAWjB,EAAME,KAAKY,GAAevC,QAEnE+C,UAAW,SAAAtB,GACTA,EAAME,KAAO,IAEfqB,iBAAkB,SAACvB,EAAO1B,GACpB0B,EAAMd,YAAYI,SAAShB,KAE/B0B,EAAMd,aAAeZ,IAEvBkD,sBAAuB,SAACxB,EAAO1B,GAC7B,IAAMmD,EAAM,IAAIC,OAAOpD,EAAO,MAC9B0B,EAAMd,YAAcc,EAAMd,YAAYyC,QAAQF,EAAK,KAErDG,gBAAiB,SAAA5B,GACfA,EAAMG,QAAU,OAElB0B,iBAAkB,SAAA7B,GAChBA,EAAMG,QAAU,QAElB2B,WAAY,SAAC9B,EAAO+B,GAElB/B,EAAMJ,WAAamC,IAGvBC,QAAS,CACPpB,iBAAkB,SAACqB,EAASC,GAC1BlI,YAAW,WAETiI,EAAQE,OAAO,mBAAoBD,KAClC,MAELf,sBAAuB,SAACc,EAASlD,GAC/B/E,YAAW,WAETiI,EAAQE,OAAO,wBAAyBpD,KACvC,MAELqC,sBAAuB,SAACa,EAASlD,GAC/B/E,YAAW,WAETiI,EAAQE,OAAO,wBAAyBpD,KACvC,MAELsC,sBAAuB,SAACY,EAASlD,GAC/B/E,YAAW,WAETiI,EAAQE,OAAO,wBAAyBpD,KACvC,OAGPrJ,QAAS,K,uGChJE0M,EAAc,SAAAC,GACzB,OAAOA,EAAOC,eAAe,QAAS,CACpCC,MAAO,WACPC,SAAU,SCsBdC,OAAQC,IAAIC,QACZF,OAAQC,IAAIE,QACZH,OAAQC,IAAIG,QACZJ,OAAQC,IAAII,QACZpF,aAAIJ,UAAU,oBAAqByF,QAEnCrF,aAAIsF,OAAOC,eAAgB,EAE3BvF,aAAI0B,OAAO,iBAAkBgD,GAC7B1E,aAAI0B,OAAO,cAAeF,GAC1BxB,aAAI0B,OAAO,kBAAmBO,GAE9BjC,aAAIC,IAAIuF,KACRxF,aAAIC,IAAIwF,QACRzF,aAAIC,IAAIyF,QAED,IAaHC,EAbSC,EAAM,IAAI5F,aAEjB6F,EAAiB,CACrBC,OAAQ,0CACRC,WAAY,4CACZC,YACE,mFACFC,UAAW,4BACXC,MAAO,8CAGTC,OAASC,cAAcP,GAIvBM,OAASE,OAAOC,oBAAmB,SAAA5G,GACjC3B,QAAQ4B,IAAI,OAAQD,GACfiG,IACHA,EAAM,IAAI3F,aAAI,CACZK,SACAkG,QACAC,OAAQ,SAAAC,GAAC,OAAIA,EAAEC,MACdC,OAAO,a,8CC/DdxN,EAAOD,QAAU,IAA0B","file":"js/app.a880e5ad.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-09e15c7e\":\"0a217898\",\"chunk-2d0d6d35\":\"32848d59\",\"chunk-2d2086b7\":\"0fb0be0e\",\"chunk-2d22d746\":\"64fd31cc\",\"chunk-5cfeff0f\":\"c3770975\",\"chunk-b979e882\":\"d6cd4c55\"}[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-09e15c7e\":1,\"chunk-5cfeff0f\":1,\"chunk-b979e882\":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-09e15c7e\":\"b08e2438\",\"chunk-2d0d6d35\":\"31d6cfe0\",\"chunk-2d2086b7\":\"31d6cfe0\",\"chunk-2d22d746\":\"31d6cfe0\",\"chunk-5cfeff0f\":\"749274d3\",\"chunk-b979e882\":\"5f377352\"}[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","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('Header'),_c('div',{staticStyle:{\"padding\":\"5px\"}},[_c('router-view')],1),_c('Footer')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{staticClass:\"navbar navbar-expand-lg navbar-dark bg-dark\"},[_c('div',{staticClass:\"container\"},[_c('router-link',{staticClass:\"navbar-brand\",attrs:{\"to\":\"/\"}},[_c('img',{attrs:{\"width\":\"200\",\"alt\":\"Logo\",\"src\":require(\"@/assets/logo.png\")}})]),_c('div',[_c('ul',{staticClass:\"navbar-nav ml-auto\"},[(_vm.isloggedIn)?_c('li',{staticClass:\"nav-item\"},[_c('router-link',{attrs:{\"to\":\"/cart\"}},[_vm._v(\"Cart (\"+_vm._s(_vm.$store.getters.cartLength)+\")\")]),_vm._v(\" | \"),_c('button',{on:{\"click\":_vm.signOut}},[_vm._v(\"Sign out\")])],1):_c('li',[_c('router-link',{attrs:{\"to\":\"/login\"}},[_vm._v(\"Login\")])],1)])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Header.vue?vue&type=template&id=74f538d1&\"\nimport script from \"./Header.vue?vue&type=script&lang=js&\"\nexport * from \"./Header.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',{staticClass:\"py-5 bg-dark\"},[_c('div',{staticClass:\"container\"},[_c('router-link',{attrs:{\"to\":\"/register\"}},[_vm._v(\"Register\")]),_vm._v(\" | \"),_c('router-link',{attrs:{\"to\":\"/about\"}},[_vm._v(\"About\")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Footer.vue?vue&type=template&id=6841c0ef&\"\nimport script from \"./Footer.vue?vue&type=script&lang=js&\"\nexport * from \"./Footer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=eb9b5f7e&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\nimport VueRouter from \"vue-router\";\n\nVue.use(VueRouter);\n\nconst routes = [\n {\n path: \"/about\",\n name: \"About\",\n // route level code-splitting\n // this generates a separate chunk (about.[hash].js) for this route\n // which is lazy-loaded when the route is visited.\n component: () => import(\"../views/About.vue\")\n },\n {\n path: \"/\",\n name: \"Products\",\n component: () => import(\"../views/Products.vue\")\n },\n {\n path: \"/cart\",\n name: \"Cart\",\n component: () => import(\"../views/Cart.vue\")\n },\n {\n path: \"/product\",\n name: \"Product\",\n component: () => import(\"../views/Product.vue\")\n },\n {\n path: \"/login\",\n name: \"Login\",\n component: () => import(\"../views/Login.vue\")\n },\n {\n path: \"/register\",\n name: \"Register\",\n component: () => import(\"../views/Register.vue\")\n }\n];\n\nconst router = new VueRouter({\n mode: \"history\",\n base: process.env.BASE_URL,\n routes\n});\n\nexport default router;\n","export const phones = [\r\n {\r\n title: \"Apple iPhone 7 Plus 32 GB\",\r\n category: \"phone\",\r\n images: [\r\n \"https://productimages.hepsiburada.net/s/18/280-413/9801258663986.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/18/280-413/9801258696754.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/18/280-413/9801258729522.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/18/280-413/9801258762290.jpg?v1\"\r\n ],\r\n brand: \"apple\",\r\n price: 4241.499828399639,\r\n cpu: \"1.3GHz Apple A6\",\r\n camera: \"8mp (3264x2448)\",\r\n size: \"124.4mm x 59.2mm x 8.97mm (4.9 x 2.33 x 0.35)\",\r\n weight: \"132 grams (4.7 ounces) with battery\",\r\n display: \"4.0 326 pixel density\",\r\n battery: \"1480 mAh\",\r\n memory: \"16GB, 32GB and RAM 1 GB\",\r\n id: 0,\r\n description:\r\n \"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur!\"\r\n },\r\n {\r\n title: \"Huawei Mate 20 Lite 64 GB\",\r\n category: \"phone\",\r\n images: [\r\n \"https://productimages.hepsiburada.net/s/21/280-413/9933217792050.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/21/280-413/9933217628210.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/21/280-413/9933217660978.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/21/280-413/9933217693746.jpg?v1\"\r\n ],\r\n brand: \"huawei\",\r\n price: 1823.6625483451157,\r\n cpu: \"1.3GHz Apple A6\",\r\n camera: \"8mp (3264x2448)\",\r\n size: \"124.4mm x 59.2mm x 8.97mm (4.9 x 2.33 x 0.35)\",\r\n weight: \"132 grams (4.7 ounces) with battery\",\r\n display: \"4.0 326 pixel density\",\r\n battery: \"1480 mAh\",\r\n memory: \"16GB, 32GB and RAM 1 GB\",\r\n id: 1,\r\n description:\r\n \"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur!\"\r\n },\r\n {\r\n title: \"Huawei P20 Lite 64 GB\",\r\n category: \"phone\",\r\n images: [\r\n \"https://productimages.hepsiburada.net/s/19/280-413/9826975907890.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/19/280-413/9826975940658.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/19/280-413/9826975973426.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/19/280-413/9826976006194.jpg?v1\"\r\n ],\r\n brand: \"huawei\",\r\n price: 7429.467511354926,\r\n cpu: \"1.3GHz Apple A6\",\r\n camera: \"8mp (3264x2448)\",\r\n size: \"124.4mm x 59.2mm x 8.97mm (4.9 x 2.33 x 0.35)\",\r\n weight: \"132 grams (4.7 ounces) with battery\",\r\n display: \"4.0 326 pixel density\",\r\n battery: \"1480 mAh\",\r\n memory: \"16GB, 32GB and RAM 1 GB\",\r\n id: 2,\r\n description:\r\n \"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur!\"\r\n },\r\n {\r\n title: \"Samsung Galaxy A7 2018 64 GB\",\r\n category: \"phone\",\r\n images: [\r\n \"https://productimages.hepsiburada.net/s/22/280-413/9946187399218.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/22/280-413/9946187431986.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/22/280-413/9946187464754.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/22/280-413/9946187497522.jpg?v1\"\r\n ],\r\n brand: \"samsung\",\r\n price: 4108.082941215698,\r\n cpu: \"1.3GHz Apple A6\",\r\n camera: \"8mp (3264x2448)\",\r\n size: \"124.4mm x 59.2mm x 8.97mm (4.9 x 2.33 x 0.35)\",\r\n weight: \"132 grams (4.7 ounces) with battery\",\r\n display: \"4.0 326 pixel density\",\r\n battery: \"1480 mAh\",\r\n memory: \"16GB, 32GB and RAM 1 GB\",\r\n id: 5,\r\n description:\r\n \"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur!\"\r\n },\r\n {\r\n title: \"Samsung Galaxy J6 Plus 32 GB\",\r\n category: \"phone\",\r\n images: [\r\n \"https://productimages.hepsiburada.net/s/22/280-413/9941129494578.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/22/280-413/9941129527346.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/22/280-413/9941129560114.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/22/280-413/9941129592882.jpg?v1\"\r\n ],\r\n brand: \"samsung\",\r\n price: 4260.9529075338505,\r\n cpu: \"1.3GHz Apple A6\",\r\n camera: \"8mp (3264x2448)\",\r\n size: \"124.4mm x 59.2mm x 8.97mm (4.9 x 2.33 x 0.35)\",\r\n weight: \"132 grams (4.7 ounces) with battery\",\r\n display: \"4.0 326 pixel density\",\r\n battery: \"1480 mAh\",\r\n memory: \"16GB, 32GB and RAM 1 GB\",\r\n id: 6,\r\n description:\r\n \"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur!\"\r\n },\r\n {\r\n title: \"Apple iPhone 7 32 GB\",\r\n category: \"phone\",\r\n images: [\r\n \"https://productimages.hepsiburada.net/s/1/280-413/9502147641394.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/1/280-413/9502147674162.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/1/280-413/9502147706930.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/1/280-413/9502147739698.jpg?v1\"\r\n ],\r\n brand: \"apple\",\r\n price: 1525.6236967422828,\r\n cpu: \"1.3GHz Apple A6\",\r\n camera: \"8mp (3264x2448)\",\r\n size: \"124.4mm x 59.2mm x 8.97mm (4.9 x 2.33 x 0.35)\",\r\n weight: \"132 grams (4.7 ounces) with battery\",\r\n display: \"4.0 326 pixel density\",\r\n battery: \"1480 mAh\",\r\n memory: \"16GB, 32GB and RAM 1 GB\",\r\n id: 10,\r\n description:\r\n \"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur!\"\r\n },\r\n {\r\n title: \"Samsung Galaxy S10 Plus 128 GB\",\r\n category: \"phone\",\r\n images: [\r\n \"https://productimages.hepsiburada.net/s/25/280-413/10107992703026.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/25/280-413/10107992735794.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/25/280-413/10107992768562.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/25/280-413/10107992801330.jpg?v1\"\r\n ],\r\n brand: \"samsung\",\r\n price: 3429.3471420603028,\r\n cpu: \"1.3GHz Apple A6\",\r\n camera: \"8mp (3264x2448)\",\r\n size: \"124.4mm x 59.2mm x 8.97mm (4.9 x 2.33 x 0.35)\",\r\n weight: \"132 grams (4.7 ounces) with battery\",\r\n display: \"4.0 326 pixel density\",\r\n battery: \"1480 mAh\",\r\n memory: \"16GB, 32GB and RAM 1 GB\",\r\n id: 11,\r\n description:\r\n \"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur!\"\r\n },\r\n {\r\n title: \"Samsung Galaxy S10 128 GB\",\r\n category: \"phone\",\r\n images: [\r\n \"https://productimages.hepsiburada.net/s/25/280-413/10107307425842.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/25/280-413/10107307458610.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/25/280-413/10107307491378.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/25/280-413/10107307524146.jpg?v1\"\r\n ],\r\n brand: \"samsung\",\r\n price: 1017.7877018963508,\r\n cpu: \"1.3GHz Apple A6\",\r\n camera: \"8mp (3264x2448)\",\r\n size: \"124.4mm x 59.2mm x 8.97mm (4.9 x 2.33 x 0.35)\",\r\n weight: \"132 grams (4.7 ounces) with battery\",\r\n display: \"4.0 326 pixel density\",\r\n battery: \"1480 mAh\",\r\n memory: \"16GB, 32GB and RAM 1 GB\",\r\n id: 12,\r\n description:\r\n \"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur!\"\r\n },\r\n {\r\n title: \"Samsung Galaxy S10e 128 GB\",\r\n category: \"phone\",\r\n images: [\r\n \"https://productimages.hepsiburada.net/s/25/280-413/10107307032626.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/25/280-413/10107307065394.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/25/280-413/10107307098162.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/25/280-413/10107307130930.jpg?v1\"\r\n ],\r\n brand: \"samsung\",\r\n price: 3235.202225041739,\r\n cpu: \"1.3GHz Apple A6\",\r\n camera: \"8mp (3264x2448)\",\r\n size: \"124.4mm x 59.2mm x 8.97mm (4.9 x 2.33 x 0.35)\",\r\n weight: \"132 grams (4.7 ounces) with battery\",\r\n display: \"4.0 326 pixel density\",\r\n battery: \"1480 mAh\",\r\n memory: \"16GB, 32GB and RAM 1 GB\",\r\n id: 13,\r\n description:\r\n \"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur!\"\r\n },\r\n {\r\n title: \"Samsung Galaxy M20 32 GB\",\r\n category: \"phone\",\r\n images: [\r\n \"https://productimages.hepsiburada.net/s/25/280-413/10094999240754.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/25/280-413/10094999273522.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/25/280-413/10094999306290.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/25/280-413/10094999339058.jpg?v1\"\r\n ],\r\n brand: \"samsung\",\r\n price: 5850.5748675199875,\r\n cpu: \"1.3GHz Apple A6\",\r\n camera: \"8mp (3264x2448)\",\r\n size: \"124.4mm x 59.2mm x 8.97mm (4.9 x 2.33 x 0.35)\",\r\n weight: \"132 grams (4.7 ounces) with battery\",\r\n display: \"4.0 326 pixel density\",\r\n battery: \"1480 mAh\",\r\n memory: \"16GB, 32GB and RAM 1 GB\",\r\n id: 14,\r\n description:\r\n \"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur!\"\r\n },\r\n {\r\n title: \"Samsung Galaxy S8\",\r\n category: \"phone\",\r\n images: [\r\n \"https://productimages.hepsiburada.net/s/3/280-413/9604775739442.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/4/280-413/9665566703666.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/4/280-413/9665566736434.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/4/280-413/9665566769202.jpg?v1\"\r\n ],\r\n brand: \"samsung\",\r\n price: 3207.2840718201587,\r\n cpu: \"1.3GHz Apple A6\",\r\n camera: \"8mp (3264x2448)\",\r\n size: \"124.4mm x 59.2mm x 8.97mm (4.9 x 2.33 x 0.35)\",\r\n weight: \"132 grams (4.7 ounces) with battery\",\r\n display: \"4.0 326 pixel density\",\r\n battery: \"1480 mAh\",\r\n memory: \"16GB, 32GB and RAM 1 GB\",\r\n id: 15,\r\n description:\r\n \"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur!\"\r\n },\r\n {\r\n title: \"Huawei P Smart 2019 64 GB\",\r\n category: \"phone\",\r\n images: [\r\n \"https://productimages.hepsiburada.net/s/23/280-413/10059934859314.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/23/280-413/10059934892082.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/23/280-413/10059934924850.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/23/280-413/10059934957618.jpg?v1\"\r\n ],\r\n brand: \"huawei\",\r\n price: 5288.552334214134,\r\n cpu: \"1.3GHz Apple A6\",\r\n camera: \"8mp (3264x2448)\",\r\n size: \"124.4mm x 59.2mm x 8.97mm (4.9 x 2.33 x 0.35)\",\r\n weight: \"132 grams (4.7 ounces) with battery\",\r\n display: \"4.0 326 pixel density\",\r\n battery: \"1480 mAh\",\r\n memory: \"16GB, 32GB and RAM 1 GB\",\r\n id: 16,\r\n description:\r\n \"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur!\"\r\n },\r\n {\r\n title: \"Apple iPhone 6S Plus 32 GB\",\r\n category: \"phone\",\r\n images: [\r\n \"https://productimages.hepsiburada.net/s/1/280-413/9489589993522.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/1/280-413/9489589927986.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/1/280-413/9489589960754.jpg?v1\"\r\n ],\r\n brand: \"apple\",\r\n price: 5467.082548922358,\r\n cpu: \"1.3GHz Apple A6\",\r\n camera: \"8mp (3264x2448)\",\r\n size: \"124.4mm x 59.2mm x 8.97mm (4.9 x 2.33 x 0.35)\",\r\n weight: \"132 grams (4.7 ounces) with battery\",\r\n display: \"4.0 326 pixel density\",\r\n battery: \"1480 mAh\",\r\n memory: \"16GB, 32GB and RAM 1 GB\",\r\n id: 18,\r\n description:\r\n \"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur!\"\r\n },\r\n {\r\n title: \"Samsung Galaxy Note 9 128 GB\",\r\n category: \"phone\",\r\n images: [\r\n \"https://productimages.hepsiburada.net/s/20/280-413/9902572142642.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/20/280-413/9902572175410.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/20/280-413/9902572208178.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/20/280-413/9902572240946.jpg?v1\"\r\n ],\r\n brand: \"samsung\",\r\n price: 1165.0255199945123,\r\n cpu: \"1.3GHz Apple A6\",\r\n camera: \"8mp (3264x2448)\",\r\n size: \"124.4mm x 59.2mm x 8.97mm (4.9 x 2.33 x 0.35)\",\r\n weight: \"132 grams (4.7 ounces) with battery\",\r\n display: \"4.0 326 pixel density\",\r\n battery: \"1480 mAh\",\r\n memory: \"16GB, 32GB and RAM 1 GB\",\r\n id: 22,\r\n description:\r\n \"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur!\"\r\n },\r\n {\r\n title: \"Huawei Mate 20 Lite Dual Sim 64 GB\",\r\n category: \"phone\",\r\n images: [\r\n \"https://productimages.hepsiburada.net/s/21/280-413/9933217792050.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/21/280-413/9933217660978.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/21/280-413/9933217693746.jpg?v1\",\r\n \"https://productimages.hepsiburada.net/s/21/280-413/9933217726514.jpg?v1\"\r\n ],\r\n brand: \"huawei\",\r\n price: 2693.4407990587074,\r\n cpu: \"1.3GHz Apple A6\",\r\n camera: \"8mp (3264x2448)\",\r\n size: \"124.4mm x 59.2mm x 8.97mm (4.9 x 2.33 x 0.35)\",\r\n weight: \"132 grams (4.7 ounces) with battery\",\r\n display: \"4.0 326 pixel density\",\r\n battery: \"1480 mAh\",\r\n memory: \"16GB, 32GB and RAM 1 GB\",\r\n id: 23,\r\n description:\r\n \"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur!\"\r\n }\r\n];\r\n","export const brands = [\"apple\", \"huawei\", \"samsung\"];\r\n","export const brandFilter = (arr, brand) => {\r\n if (!brand) return arr;\r\n\r\n return arr.filter(product => brand.includes(product.brand));\r\n};\r\n","export const orderByFilter = (arr, type) => {\r\n if (!type) return arr;\r\n if (type === \"asc\") {\r\n return arr.slice().sort((el1, el2) => el1.price - el2.price);\r\n } else {\r\n return arr.slice().sort((el1, el2) => el2.price - el1.price);\r\n }\r\n};\r\n","export const phoneTextFilter = (arr, textSearch) => {\r\n if (!textSearch) return arr;\r\n debugger;\r\n return arr.filter(product => product.title.includes(textSearch));\r\n};\r\n","import Vue from \"vue\";\nimport Vuex from \"vuex\";\nimport { phones } from \"../data/phones\";\nimport { brands } from \"../data/brands\";\nimport { brandFilter } from \"../filters/brandFilter\";\nimport { orderByFilter } from \"../filters/orderByFilter\";\nimport { phoneTextFilter } from \"../filters/phoneTextFilter\";\n\nVue.use(Vuex);\n\nexport default new Vuex.Store({\n strict: true,\n // state is like property / data\n state: {\n products: phones,\n brands: brands,\n cart: [],\n brandFilter: \"\",\n orderBy: \"\",\n textSearch: \"\"\n },\n // getters is like computed\n getters: {\n cartLength(state) {\n return state.cart.length;\n },\n brandsCount(state) {\n const counts = {};\n state.products.forEach(p => {\n counts[p.brand] = counts[p.brand] + 1 || 1;\n });\n\n return counts;\n },\n filterProducts(state) {\n debugger;\n\n const brands = state.brandFilter;\n const orderBy = state.orderBy;\n const textSearch = state.textSearch;\n\n const filterByBrandArr = brandFilter(state.products, brands);\n const filterByOrderArr = orderByFilter(filterByBrandArr, orderBy);\n const filterByPhoneTextArr = phoneTextFilter(\n filterByOrderArr,\n textSearch\n );\n\n return filterByPhoneTextArr;\n }\n },\n // mutations is like changes of state/property/data\n mutations: {\n addProductToCart: (state, product) => {\n debugger;\n console.lgo;\n const cartItemIndex = state.cart.findIndex(\n item => item.id === product.id\n );\n\n if (cartItemIndex < 0) {\n debugger;\n state.cart.push({\n ...product,\n quantity: 1,\n total: 1 * product.price\n });\n debugger;\n } else {\n state.cart[cartItemIndex].quantity++;\n state.cart[cartItemIndex].total =\n state.cart[cartItemIndex].quantity * product.price;\n }\n },\n removeProductFromCart: (state, id) => {\n const cartItemIndex = state.cart.findIndex(item => item.id === id);\n\n state.cart.splice(cartItemIndex, 1);\n },\n incrementItemQuantity: (state, id) => {\n const cartItemIndex = state.cart.findIndex(item => item.id === id);\n\n state.cart[cartItemIndex].quantity++;\n\n state.cart[cartItemIndex].total =\n state.cart[cartItemIndex].quantity * state.cart[cartItemIndex].price;\n },\n decrementItemQuantity: (state, id) => {\n const cartItemIndex = state.cart.findIndex(item => item.id === id);\n if (state.cart[cartItemIndex].quantity === 1) return void 0;\n state.cart[cartItemIndex].quantity--;\n\n state.cart[cartItemIndex].total =\n state.cart[cartItemIndex].quantity * state.cart[cartItemIndex].price;\n },\n clearCart: state => {\n state.cart = [];\n },\n addBrandToFilter: (state, brand) => {\n if (state.brandFilter.includes(brand)) return void 0;\n\n state.brandFilter += brand;\n },\n removeBrandFromFilter: (state, brand) => {\n const reg = new RegExp(brand, \"gi\");\n state.brandFilter = state.brandFilter.replace(reg, \"\");\n },\n orderByPriceAsc: state => {\n state.orderBy = \"asc\";\n },\n orderByPriceDesc: state => {\n state.orderBy = \"desc\";\n },\n searchText: (state, text) => {\n debugger;\n state.textSearch = text;\n }\n },\n actions: {\n addProductToCart: (context, payload) => {\n setTimeout(function() {\n // reach out for data\n context.commit(\"addProductToCart\", payload);\n }, 1000);\n },\n removeProductFromCart: (context, id) => {\n setTimeout(function() {\n // reach out for data\n context.commit(\"removeProductFromCart\", id);\n }, 1000);\n },\n incrementItemQuantity: (context, id) => {\n setTimeout(function() {\n // reach out for data\n context.commit(\"incrementItemQuantity\", id);\n }, 1000);\n },\n decrementItemQuantity: (context, id) => {\n setTimeout(function() {\n // reach out for data\n context.commit(\"decrementItemQuantity\", id);\n }, 1000);\n }\n },\n modules: {}\n});\n","export const formatMoney = number => {\r\n return number.toLocaleString(\"en-US\", {\r\n style: \"currency\",\r\n currency: \"MYR\"\r\n });\r\n};\r\n","import Vue from \"vue\";\r\nimport App from \"./App.vue\";\r\nimport router from \"./router\";\r\nimport store from \"./store\";\r\nimport VueSwal from \"vue-swal\";\r\nimport firebase from \"firebase\";\r\n\r\nimport { BootstrapVue, IconsPlugin } from \"bootstrap-vue\";\r\nimport \"bootstrap/dist/css/bootstrap.css\";\r\nimport \"bootstrap-vue/dist/bootstrap-vue.css\";\r\n\r\n// https://medium.com/front-end-weekly/how-to-use-fon-awesome-5-on-vuejs-project-ff0f28310821\r\n// https://fontawesome.com/icons?d=gallery&q=plus&s=solid&m=free\r\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\r\nimport {\r\n faPlus,\r\n faMinus,\r\n faTrash,\r\n faSearch\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\r\nimport { formatMoney } from \"./filters/priceFormatter\";\r\nimport { brandFilter } from \"./filters/brandFilter\";\r\nimport { phoneTextFilter } from \"./filters/phoneTextFilter\";\r\n\r\nlibrary.add(faPlus);\r\nlibrary.add(faMinus);\r\nlibrary.add(faTrash);\r\nlibrary.add(faSearch);\r\nVue.component(\"font-awesome-icon\", FontAwesomeIcon);\r\n\r\nVue.config.productionTip = false;\r\n\r\nVue.filter(\"priceFormatter\", formatMoney);\r\nVue.filter(\"brandFilter\", brandFilter);\r\nVue.filter(\"phoneTextFilter\", phoneTextFilter);\r\n\r\nVue.use(VueSwal);\r\nVue.use(BootstrapVue);\r\nVue.use(IconsPlugin);\r\n\r\nexport const bus = new Vue();\r\n\r\nconst firebaseConfig = {\r\n apiKey: \"AIzaSyC9qrIYKjgrbVCVeVQ1CGmbkcw3Se2rUdY\",\r\n authDomain: \"api-project-1031398239957.firebaseapp.com\",\r\n databaseURL:\r\n \"https://api-project-1031398239957-default-rtdb.europe-west1.firebasedatabase.app\",\r\n projectId: \"api-project-1031398239957\",\r\n appId: \"1:1031398239957:web:417bbd9abcf25d57213c5c\"\r\n};\r\n\r\nfirebase.initializeApp(firebaseConfig);\r\n\r\nlet app;\r\n\r\nfirebase.auth().onAuthStateChanged(user => {\r\n console.log(\"user\", user);\r\n if (!app) {\r\n app = new Vue({\r\n router,\r\n store,\r\n render: h => h(App)\r\n }).$mount(\"#app\");\r\n }\r\n});\r\n","module.exports = __webpack_public_path__ + \"img/logo.4d0c7286.png\";"],"sourceRoot":""}