{"version":3,"sources":["webpack:///./src/views/apps/e-commerce/e-commerce-wishlist/ECommerceWishlist.vue?a3d2","webpack:///src/views/apps/e-commerce/e-commerce-wishlist/ECommerceWishlist.vue","webpack:///./src/views/apps/e-commerce/e-commerce-wishlist/ECommerceWishlist.vue?4db7","webpack:///./src/views/apps/e-commerce/e-commerce-wishlist/ECommerceWishlist.vue","webpack:///./src/@core/utils/utils.js","webpack:///./src/views/apps/e-commerce/e-commerce-wishlist/ECommerceWishlist.vue?226a","webpack:///./src/views/apps/e-commerce/useEcommerce.js"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","_l","product","key","id","attrs","name","params","slug","image","star","class","rating","_v","_s","price","brand","description","on","$event","removeProductFromWishlistClick","handleWishlistCartActionClick","isInCart","staticRenderFns","components","BCard","BCardBody","BImg","BCardText","BLink","BButton","setup","useEcommerceUi","products","ref","removeProductFromWishlist","useEcommerce","then","productIndex","value","findIndex","p","splice","fetchWishlistProducts","store","dispatch","response","data","component","isObject","obj","isToday","date","today","Date","getDate","getMonth","getFullYear","isDynamicRouteActive","route","resolvedRoute","router","resolve","path","currentRoute","useRouter","vm","getCurrentInstance","proxy","state","reactive","$route","watch","r","toRefs","$router","showToast","type","message","Vue","$toast","ToastificationContent","props","title","icon","variant","removeAccents","str","normalize","replace","addProductInWishlist","productId","addProductInCart","removeProductFromCart","toggleProductInWishlist","isInWishlist","handleCartActionClick","push","commit","cartItemsCount","removeProductFromWishlistUi"],"mappings":"gJAAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,UAAU,CAACE,YAAY,4BAA4BN,EAAIO,GAAIP,EAAY,UAAE,SAASQ,GAAS,OAAOJ,EAAG,SAAS,CAACK,IAAID,EAAQE,GAAGJ,YAAY,iBAAiBK,MAAM,CAAC,UAAU,KAAK,CAACP,EAAG,MAAM,CAACE,YAAY,wBAAwB,CAACF,EAAG,SAAS,CAACO,MAAM,CAAC,GAAK,CAAEC,KAAM,kCAAmCC,OAAQ,CAAEC,KAAMN,EAAQM,SAAW,CAACV,EAAG,QAAQ,CAACE,YAAY,eAAeK,MAAM,CAAC,IAAQH,EAAY,KAAI,IAAOA,EAAU,GAAG,MAAQ,GAAG,IAAMA,EAAQO,UAAU,IAAI,GAAGX,EAAG,cAAc,CAACA,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,KAAK,CAACE,YAAY,6BAA6BN,EAAIO,GAAG,GAAI,SAASS,GAAM,OAAOZ,EAAG,KAAK,CAACK,IAAIO,EAAKV,YAAY,oBAAoBW,MAAM,CAAC,QAASD,EAAK,IAAI,CAACZ,EAAG,eAAe,CAACa,MAAM,CAAC,CAAC,eAAgBD,GAAQR,EAAQU,QAASF,GAAQR,EAAQU,OAAS,eAAiB,cAAcP,MAAM,CAAC,KAAO,WAAW,KAAO,SAAS,MAAK,KAAKP,EAAG,MAAM,CAACA,EAAG,KAAK,CAACE,YAAY,cAAc,CAACN,EAAImB,GAAG,KAAKnB,EAAIoB,GAAGZ,EAAQa,OAAO,WAAWjB,EAAG,KAAK,CAACE,YAAY,aAAa,CAACF,EAAG,SAAS,CAACE,YAAY,YAAYK,MAAM,CAAC,GAAK,CAAEC,KAAM,kCAAmCC,OAAQ,CAAEC,KAAMN,EAAQM,SAAW,CAACd,EAAImB,GAAG,IAAInB,EAAIoB,GAAGZ,EAAQI,MAAM,OAAOR,EAAG,cAAc,CAACE,YAAY,gBAAgB,CAACN,EAAImB,GAAG,QAAQf,EAAG,SAAS,CAACE,YAAY,SAAS,CAACN,EAAImB,GAAG,IAAInB,EAAIoB,GAAGZ,EAAQc,OAAO,QAAQ,IAAI,GAAGlB,EAAG,cAAc,CAACE,YAAY,oBAAoB,CAACN,EAAImB,GAAG,IAAInB,EAAIoB,GAAGZ,EAAQe,aAAa,QAAQ,GAAGnB,EAAG,MAAM,CAACE,YAAY,4BAA4B,CAACF,EAAG,WAAW,CAACE,YAAY,+BAA+BK,MAAM,CAAC,QAAU,SAASa,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOzB,EAAI0B,+BAA+BlB,MAAY,CAACJ,EAAG,eAAe,CAACO,MAAM,CAAC,KAAO,WAAWP,EAAG,OAAO,CAACJ,EAAImB,GAAG,aAAa,GAAGf,EAAG,WAAW,CAACE,YAAY,qBAAqBK,MAAM,CAAC,QAAU,WAAWa,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOzB,EAAI2B,8BAA8BnB,EAASR,EAAI0B,mCAAmC,CAACtB,EAAG,eAAe,CAACE,YAAY,QAAQK,MAAM,CAAC,KAAO,sBAAsBP,EAAG,OAAO,CAACJ,EAAImB,GAAGnB,EAAIoB,GAAGZ,EAAQoB,SAAW,eAAiB,oBAAoB,IAAI,IAAI,MAAK,IACzoEC,EAAkB,G,4GC+FP,GACfC,WAAA,CACAC,aAAAC,iBAAAC,YAAAC,iBAAAC,aAAAC,gBAEAC,QACA,oCAAAV,GAAAW,iBAEAC,EAAAC,iBAAA,KAEA,0BAAAC,GAAAC,iBACAhB,EAAAlB,IACAiC,EAAAjC,EAAAE,IACAiC,KAAA,KACA,MAAAC,EAAAL,EAAAM,MAAAC,UAAAC,KAAArC,KAAAF,EAAAE,IACA6B,EAAAM,MAAAG,OAAAJ,EAAA,MAIAK,OACAC,OAAAC,SAAA,uCACAR,KAAAS,IACAb,EAAAM,MAAAO,EAAAC,KAAAd,YAMA,OAFAU,IAEA,CACAV,WAGAZ,gCACAD,oCChIwY,I,wBCQpY4B,EAAY,eACd,EACAvD,EACA8B,GACA,EACA,KACA,KACA,MAIa,aAAAyB,E,2CCnBf,gQAYO,MAAMC,EAAYC,GAAuB,kBAARA,GAA4B,OAARA,EAE/CC,EAAWC,IACtB,MAAMC,EAAQ,IAAIC,KAClB,OAEEF,EAAKG,YAAcF,EAAME,WACzBH,EAAKI,aAAeH,EAAMG,YAC1BJ,EAAKK,gBAAkBJ,EAAMI,eAYpBC,EAAwBC,IACnC,MAAQA,MAAOC,GAAkBC,OAAOC,QAAQH,GAChD,OAAOC,EAAcG,OAASF,OAAOG,aAAaD,MAIvCE,EAAYA,KACvB,MAAMC,EAAKC,kCAAqBC,MAC1BC,EAAQC,sBAAS,CACrBX,MAAOO,EAAGK,SAUZ,OAPAC,mBACE,IAAMN,EAAGK,OACRE,IACCJ,EAAMV,MAAQc,IAIX,IAAKC,oBAAOL,GAAQR,OAAQK,EAAGS,UAgCjC,SAASC,EAAUC,EAAMC,GAClB,WAARD,EACFE,aAAIC,OAAO,CACThC,UAAWiC,OACXC,MAAO,CACLC,MAAOL,EACPM,KAAM,WACNC,QAAS,aAIbN,aAAIC,OAAO,CACThC,UAAWiC,OACXC,MAAO,CACLC,MAAOL,EACPM,KAAM,WACNC,QAAS,YAMV,SAASC,EAAcC,GAC5B,OAAOA,EAAIC,UAAU,OAAOC,QAAQ,mBAAoB,M,kCC1G1D,W,kCCAA,gGAGO,MAAMrD,EAAeA,KAE1B,MAAMsD,EAAuBC,GACpB/C,OAAMC,SAAS,qCAAsC,CAAE8C,cAI1DxD,EAA4BwD,GACzB/C,OAAMC,SAAS,0CAA2C,CAAE8C,cAI/DC,EAAmBD,GAChB/C,OAAMC,SAAS,iCAAkC,CAAE8C,cAItDE,EAAwBF,GACrB/C,OAAMC,SAAS,sCAAuC,CAAE8C,cAGjE,MAAO,CACLD,uBACAvD,4BACAyD,mBACAC,0BAIS7D,EAAiBA,KAC5B,MAAM,OAAE6B,GAAWI,iBAEb6B,EAA0B5F,IAC9B,MAAM,qBAAEwF,EAAoB,0BAAEvD,GAA8BC,IACxDlC,EAAQ6F,aACV5D,EAA0BjC,EAAQE,IAAIiC,KAAK,KAEzCnC,EAAQ6F,cAAe,IAGzBL,EAAqBxF,EAAQE,IAAIiC,KAAK,KAEpCnC,EAAQ6F,cAAe,KAKvBC,EAAwB9F,IAC5B,MAAM,iBAAE0F,GAAqBxD,IAEzBlC,EAAQoB,SACVuC,EAAOoC,KAAK,CAAE3F,KAAM,6BAEpBsF,EAAiB1F,EAAQE,IAAIiC,KAAK,KAEhCnC,EAAQoB,UAAW,EAGnBsB,OAAMsD,OAAO,wCAAyCtD,OAAMyB,MAAM,iBAAiB8B,eAAiB,MAKpG9E,EAAgCA,CAACnB,EAASkG,KAC9C,MAAM,iBAAER,EAAgB,0BAAEzD,GAA8BC,IAEpDlC,EAAQoB,SACVuC,EAAOoC,KAAK,CAAE3F,KAAM,6BAEpBsF,EAAiB1F,EAAQE,IACtBiC,KAAK,KAEJnC,EAAQoB,UAAW,EACnBa,EAA0BjC,EAAQE,IAGlCwC,OAAMsD,OAAO,wCAAyCtD,OAAMyB,MAAM,iBAAiB8B,eAAiB,KAErG9D,KAAK,KAEJnC,EAAQ6F,cAAe,EACvBK,EAA4BlG,MAIpC,MAAO,CACL4F,0BACAE,wBACA3E","file":"js/chunk-4c0ffdc0.56aac85d.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"grid-view wishlist-items\"},_vm._l((_vm.products),function(product){return _c('b-card',{key:product.id,staticClass:\"ecommerce-card\",attrs:{\"no-body\":\"\"}},[_c('div',{staticClass:\"item-img text-center\"},[_c('b-link',{attrs:{\"to\":{ name: 'apps-e-commerce-product-details', params: { slug: product.slug } }}},[_c('b-img',{staticClass:\"card-img-top\",attrs:{\"alt\":((product.name) + \"-\" + (product.id)),\"fluid\":\"\",\"src\":product.image}})],1)],1),_c('b-card-body',[_c('div',{staticClass:\"item-wrapper\"},[_c('div',{staticClass:\"item-rating\"},[_c('ul',{staticClass:\"unstyled-list list-inline\"},_vm._l((5),function(star){return _c('li',{key:star,staticClass:\"ratings-list-item\",class:{'ml-25': star-1}},[_c('feather-icon',{class:[{'fill-current': star <= product.rating}, star <= product.rating ? 'text-warning' : 'text-muted'],attrs:{\"icon\":\"StarIcon\",\"size\":\"16\"}})],1)}),0)]),_c('div',[_c('h6',{staticClass:\"item-price\"},[_vm._v(\" $\"+_vm._s(product.price)+\" \")])])]),_c('h6',{staticClass:\"item-name\"},[_c('b-link',{staticClass:\"text-body\",attrs:{\"to\":{ name: 'apps-e-commerce-product-details', params: { slug: product.slug } }}},[_vm._v(\" \"+_vm._s(product.name)+\" \")]),_c('b-card-text',{staticClass:\"item-company\"},[_vm._v(\" By \"),_c('b-link',{staticClass:\"ml-25\"},[_vm._v(\" \"+_vm._s(product.brand)+\" \")])],1)],1),_c('b-card-text',{staticClass:\"item-description\"},[_vm._v(\" \"+_vm._s(product.description)+\" \")])],1),_c('div',{staticClass:\"item-options text-center\"},[_c('b-button',{staticClass:\"btn-wishlist remove-wishlist\",attrs:{\"variant\":\"light\"},on:{\"click\":function($event){return _vm.removeProductFromWishlistClick(product)}}},[_c('feather-icon',{attrs:{\"icon\":\"XIcon\"}}),_c('span',[_vm._v(\"Remove\")])],1),_c('b-button',{staticClass:\"btn-cart move-cart\",attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.handleWishlistCartActionClick(product, _vm.removeProductFromWishlistClick)}}},[_c('feather-icon',{staticClass:\"mr-50\",attrs:{\"icon\":\"ShoppingCartIcon\"}}),_c('span',[_vm._v(_vm._s(product.isInCart ? 'View In Cart' : 'Move to Cart'))])],1)],1)],1)}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ${{ product.price }}\r\n \r\n \r\n \r\n \r\n \r\n {{ product.name }}\r\n \r\n \r\n By \r\n {{ product.brand }}\r\n \r\n \r\n \r\n \r\n {{ product.description }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Remove\r\n \r\n \r\n \r\n {{ product.isInCart ? 'View In Cart' : 'Move to Cart' }}\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ECommerceWishlist.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ECommerceWishlist.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ECommerceWishlist.vue?vue&type=template&id=3aec6b74&\"\nimport script from \"./ECommerceWishlist.vue?vue&type=script&lang=js&\"\nexport * from \"./ECommerceWishlist.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ECommerceWishlist.vue?vue&type=style&index=0&id=3aec6b74&prod&lang=scss&\"\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';\r\nimport router from '@/router';\r\n// eslint-disable-next-line object-curly-newline\r\nimport {\r\n reactive,\r\n getCurrentInstance,\r\n watch,\r\n toRefs,\r\n} from '@vue/composition-api';\r\n\r\nimport ToastificationContent from '@core/components/toastification/ToastificationContent.vue';\r\n\r\nexport const isObject = (obj) => typeof obj === 'object' && obj !== null;\r\n\r\nexport const isToday = (date) => {\r\n const today = new Date();\r\n return (\r\n /* eslint-disable operator-linebreak */\r\n date.getDate() === today.getDate() &&\r\n date.getMonth() === today.getMonth() &&\r\n date.getFullYear() === today.getFullYear()\r\n /* eslint-enable */\r\n );\r\n};\r\n\r\nconst getRandomFromArray = (array) =>\r\n array[Math.floor(Math.random() * array.length)];\r\n\r\n// ? Light and Dark variant is not included\r\n// prettier-ignore\r\nexport const getRandomBsVariant = () => getRandomFromArray(['primary', 'secondary', 'success', 'warning', 'danger', 'info'])\r\n\r\nexport const isDynamicRouteActive = (route) => {\r\n const { route: resolvedRoute } = router.resolve(route);\r\n return resolvedRoute.path === router.currentRoute.path;\r\n};\r\n\r\n// Thanks: https://medium.com/better-programming/reactive-vue-routes-with-the-composition-api-18c1abd878d1\r\nexport const useRouter = () => {\r\n const vm = getCurrentInstance().proxy;\r\n const state = reactive({\r\n route: vm.$route,\r\n });\r\n\r\n watch(\r\n () => vm.$route,\r\n (r) => {\r\n state.route = r;\r\n }\r\n );\r\n\r\n return { ...toRefs(state), router: vm.$router };\r\n};\r\n\r\n/**\r\n * This is just enhancement over Object.extend [Gives deep extend]\r\n * @param {target} a Object which contains values to be overridden\r\n * @param {source} b Object which contains values to override\r\n */\r\n// export const objectExtend = (a, b) => {\r\n// // Don't touch 'null' or 'undefined' objects.\r\n// if (a == null || b == null) {\r\n// return a\r\n// }\r\n\r\n// Object.keys(b).forEach(key => {\r\n// if (Object.prototype.toString.call(b[key]) === '[object Object]') {\r\n// if (Object.prototype.toString.call(a[key]) !== '[object Object]') {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = b[key]\r\n// } else {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = objectExtend(a[key], b[key])\r\n// }\r\n// } else {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = b[key]\r\n// }\r\n// })\r\n\r\n// return a\r\n// }\r\n\r\nexport function showToast(type, message) {\r\n if (type == 'success') {\r\n Vue.$toast({\r\n component: ToastificationContent,\r\n props: {\r\n title: message,\r\n icon: 'ez_check',\r\n variant: 'success',\r\n },\r\n });\r\n } else {\r\n Vue.$toast({\r\n component: ToastificationContent,\r\n props: {\r\n title: message,\r\n icon: 'ez_error',\r\n variant: 'danger',\r\n },\r\n });\r\n }\r\n}\r\n\r\nexport function removeAccents(str) {\r\n return str.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n}\r\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ECommerceWishlist.vue?vue&type=style&index=0&id=3aec6b74&prod&lang=scss&\"","import store from '@/store'\r\nimport { useRouter } from '@core/utils/utils'\r\n\r\nexport const useEcommerce = () => {\r\n // eslint-disable-next-line arrow-body-style\r\n const addProductInWishlist = productId => {\r\n return store.dispatch('app-ecommerce/addProductInWishlist', { productId })\r\n }\r\n\r\n // eslint-disable-next-line arrow-body-style\r\n const removeProductFromWishlist = productId => {\r\n return store.dispatch('app-ecommerce/removeProductFromWishlist', { productId })\r\n }\r\n\r\n // eslint-disable-next-line arrow-body-style\r\n const addProductInCart = productId => {\r\n return store.dispatch('app-ecommerce/addProductInCart', { productId })\r\n }\r\n\r\n // eslint-disable-next-line arrow-body-style\r\n const removeProductFromCart = productId => {\r\n return store.dispatch('app-ecommerce/removeProductFromCart', { productId })\r\n }\r\n\r\n return {\r\n addProductInWishlist,\r\n removeProductFromWishlist,\r\n addProductInCart,\r\n removeProductFromCart,\r\n }\r\n}\r\n\r\nexport const useEcommerceUi = () => {\r\n const { router } = useRouter()\r\n\r\n const toggleProductInWishlist = product => {\r\n const { addProductInWishlist, removeProductFromWishlist } = useEcommerce()\r\n if (product.isInWishlist) {\r\n removeProductFromWishlist(product.id).then(() => {\r\n // eslint-disable-next-line no-param-reassign\r\n product.isInWishlist = false\r\n })\r\n } else {\r\n addProductInWishlist(product.id).then(() => {\r\n // eslint-disable-next-line no-param-reassign\r\n product.isInWishlist = true\r\n })\r\n }\r\n }\r\n\r\n const handleCartActionClick = product => {\r\n const { addProductInCart } = useEcommerce()\r\n\r\n if (product.isInCart) {\r\n router.push({ name: 'apps-e-commerce-checkout' })\r\n } else {\r\n addProductInCart(product.id).then(() => {\r\n // eslint-disable-next-line no-param-reassign\r\n product.isInCart = true\r\n\r\n // Update cart items count\r\n store.commit('app-ecommerce/UPDATE_CART_ITEMS_COUNT', store.state['app-ecommerce'].cartItemsCount + 1)\r\n })\r\n }\r\n }\r\n\r\n const handleWishlistCartActionClick = (product, removeProductFromWishlistUi) => {\r\n const { addProductInCart, removeProductFromWishlist } = useEcommerce()\r\n\r\n if (product.isInCart) {\r\n router.push({ name: 'apps-e-commerce-checkout' })\r\n } else {\r\n addProductInCart(product.id)\r\n .then(() => {\r\n // eslint-disable-next-line no-param-reassign\r\n product.isInCart = true\r\n removeProductFromWishlist(product.id)\r\n\r\n // Update cart items count\r\n store.commit('app-ecommerce/UPDATE_CART_ITEMS_COUNT', store.state['app-ecommerce'].cartItemsCount + 1)\r\n })\r\n .then(() => {\r\n // eslint-disable-next-line no-param-reassign\r\n product.isInWishlist = false\r\n removeProductFromWishlistUi(product)\r\n })\r\n }\r\n }\r\n return {\r\n toggleProductInWishlist,\r\n handleCartActionClick,\r\n handleWishlistCartActionClick,\r\n }\r\n}\r\n"],"sourceRoot":""}