@perevorot/shop 2.0.128 → 2.0.130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),t=require("vuex"),
|
|
1
|
+
"use strict";var e=require("vue"),t=require("vuex"),r=require("vue-toastification"),i={props:{last:null},setup:function(){return{translate:window.__}}},o={class:"shop-wishlist-success-message"},s=["href"];i.render=function(t,r,i,n,c,a){return e.openBlock(),e.createElementBlock("div",o,[e.createElementVNode("div",null,e.toDisplayString(n.translate("shop.wishlist.product_added_named",{product:i.last.name})),1),e.createElementVNode("a",{href:i.last.url,class:"mt-2 is-size-7",style:{color:"#fff","border-bottom":"1px solid #fff"}},e.toDisplayString(n.translate("shop.wishlist.goto")),9,s)])};var n=e.defineComponent({props:{id:Number,code:{type:String,default:null},property:{type:String,default:null},item:{type:Object,default:null}},setup:function(o){var s=e.ref(!1),n=r.useToast(),c=t.useStore(),a=e.computed((function(){return c.getters["wishlist/item"](o.id)})),l=e.computed((function(){return c.getters["auth/is"]})),u=e.computed((function(){return c.getters["wishlist/last"]})),m=e.ref(null);return{item:a,action:function(){if(!s.value)if(l.value){s.value=!0;var e={};window.getTrackingIndexProductsList&&"function"==typeof window.getTrackingIndexProductsList&&(e=window.getTrackingIndexProductsList(m.value));var t=m.value.closest("[shop-product]"),r=t.querySelector("[shop-product-name]")?t.querySelector("[shop-product-name]").textContent:null,d=t.querySelector(".cart-prices > .prices.is-active [shop-product-price]")?t.querySelector(".cart-prices > .prices.is-active [shop-product-price]").childNodes[0].nodeValue.replace(/ /g,""):null,p=!d&&t.querySelector("[shop-product-price]")?t.querySelector("[shop-product-price]").childNodes[0].nodeValue.replace(/ /g,""):d,h=o.code?o.code:t.dataset.code,f=t.querySelector("[shop-product-category]")?t.querySelector("[shop-product-category]").textContent:null,y=t.querySelector("[shop-product-brand]")?t.querySelector("[shop-product-brand]").textContent:null;c.dispatch("wishlist/toggle",{id:o.id,finally:function(){var t="";if(a.value){var c={component:i,props:{last:{name:u,url:$ziggy("account.wish")}}};n(c,{type:"success"}),t="add_to_wishlist"}else n(__("shop.wishlist.product_deleted"),{type:"warning"}),t="remove_from_wish_list";var l={ecommerce:{currency:"UAH",value:parseFloat(p),items:[{item_name:r,item_id:h,price:parseFloat(p),quantity:1}]},event:t};o.item&&o.item.attributes.index?l.ecommerce.items[0].index=o.item.attributes.index:e.index&&(l.ecommerce.items[0].index=e.index),o.item&&o.item.attributes.itemListName?l.ecommerce.items[0].item_list_name=o.item.attributes.itemListName:e.item_list_name&&(l.ecommerce.items[0].item_list_name=e.item_list_name),y&&(l.ecommerce.items[0].item_brand=y),o.item&&o.item.attributes.property?l.ecommerce.items[0].item_variant=o.item.attributes.property:o.property&&(l.ecommerce.items[0].item_variant=o.property),f&&(-1!==f.indexOf("/")?f.split("/").forEach((function(e,t){l.ecommerce.items[0]["item_category"+(t?t+1:"")]=e.trim()})):l.ecommerce.items[0].item_category=f),$env.debug.ecommerce&&console.log(l),!$env.debug.ecommerce&&window.dataLayer&&(window.dataLayer.push({ecommerce:null}),window.dataLayer.push(l)),s.value=!1}})}else c.commit("auth/modal","login")},loading:s,button:m}}}),c=["title"],a=e.createElementVNode("svg",{class:"icon wishlist"},[e.createElementVNode("use",{"xlink:href":"#wishlist"})],-1);n.render=function(t,r,i,o,s,n){return e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["button wishlist",{"is-loading":t.loading,"is-transparent":!t.item}]),onClick:r[0]||(r[0]=function(){return t.action&&t.action.apply(t,arguments)}),title:t.__("shop.wishlist.add"),ref:"button"},[e.renderSlot(t.$slots,"default",{product:t.item},(function(){return[a]}))],10,c)},module.exports=n;
|
|
2
2
|
//# sourceMappingURL=WishlistAdd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WishlistAdd.js","sources":["../../../../src/components/shop/wishlist/SuccessMessage.vue","../../../../src/components/shop/wishlist/SuccessMessage.vue?vue&type=template&id=2780632f&lang.js","../../../../src/components/shop/wishlist/WishlistAdd.vue","../../../../src/components/shop/wishlist/WishlistAdd.vue?vue&type=template&id=06eb4ecf&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-wishlist-success-message\">\n <div>\n {{\n translate(\"shop.wishlist.product_added_named\", {\n product: last.name,\n })\n }}\n </div>\n <a\n :href=\"last.url\"\n class=\"mt-2 is-size-7\"\n style=\"color: #fff; border-bottom: 1px solid #fff\"\n >{{ translate(\"shop.wishlist.goto\") }}</a\n >\n </div>\n</template>\n<script>\nexport default {\n props: {\n last: null,\n },\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"shop-wishlist-success-message\">\n <div>\n {{\n translate(\"shop.wishlist.product_added_named\", {\n product: last.name,\n })\n }}\n </div>\n <a\n :href=\"last.url\"\n class=\"mt-2 is-size-7\"\n style=\"color: #fff; border-bottom: 1px solid #fff\"\n >{{ translate(\"shop.wishlist.goto\") }}</a\n >\n </div>\n</template>\n<script>\nexport default {\n props: {\n last: null,\n },\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <button class=\"button wishlist\" @click=\"action\" v-bind:class=\"{ 'is-loading': loading, 'is-transparent': !item }\" :title=\"__('shop.wishlist.add')\" ref=\"button\">\n <slot :product=\"item\">\n <svg class=\"icon wishlist\">\n <use xlink:href=\"#wishlist\" />\n </svg>\n </slot>\n </button>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from \"vue-toastification\";\nimport SuccessMessage from \"./SuccessMessage.vue\";\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number,\n code: {\n type: String,\n default: null\n },\n property: {\n type: String,\n default: null\n },\n item: {\n type: Object,\n default: null\n }\n },\n setup(props) {\n const loading = ref(false);\n const toast = useToast();\n const store = useStore();\n const item = computed(() => store.getters[\"wishlist/item\"](props.id));\n const auth = computed(() => store.getters[\"auth/is\"]);\n const last = computed(() => store.getters[\"wishlist/last\"]);\n const button = ref(null);\n\n const action = () => {\n if (!loading.value) {\n if (!auth.value) {\n store.commit(\"auth/modal\", \"login\");\n } else {\n loading.value = true;\n\n let trackingIndex = {};\n\n if (window.getTrackingIndexProductsList && typeof window.getTrackingIndexProductsList === 'function') {\n trackingIndex = window.getTrackingIndexProductsList(button.value);\n }\n\n const product = button.value.closest('[shop-product]');\n const name = product.querySelector('[shop-product-name]') ? product.querySelector('[shop-product-name]').textContent : null;\n const price = product.querySelector('[shop-product-price]') ? product.querySelector('[shop-product-price]').childNodes[0].nodeValue.replace(/ /g, '') : null;\n const code = props.code ? props.code : product.dataset.code;\n const category = product.querySelector('[shop-product-category]') ? product.querySelector('[shop-product-category]').textContent : null;\n const brand = product.querySelector('[shop-product-brand]') ? product.querySelector('[shop-product-brand]').textContent : null;\n\n store.dispatch(\"wishlist/toggle\", {\n id: props.id,\n finally: () => {\n let eventName = '';\n\n if (item.value) {\n const component = {\n component: SuccessMessage,\n props: {\n last: {\n name: last,\n url: $ziggy(\"account.wish\"),\n },\n },\n };\n\n toast(component, {\n type: \"success\",\n });\n\n eventName = 'add_to_wishlist';\n } else {\n toast(__(\"shop.wishlist.product_deleted\"), {\n type: \"warning\",\n });\n\n eventName = 'remove_from_wish_list';\n }\n\n const object = {\n ecommerce: {\n currency: 'UAH',\n value: parseFloat(price),\n items: [\n {\n item_name: name,\n item_id: code,\n price: parseFloat(price),\n quantity: 1,\n }\n ]\n },\n event: eventName\n };\n\n if (props.item && props.item.attributes.index) {\n object.ecommerce.items[0].index = props.item.attributes.index;\n } else if (trackingIndex.index) {\n object.ecommerce.items[0].index = trackingIndex.index;\n }\n\n if (props.item && props.item.attributes.itemListName) {\n object.ecommerce.items[0].item_list_name = props.item.attributes.itemListName;\n } else if (trackingIndex.item_list_name) {\n object.ecommerce.items[0].item_list_name = trackingIndex.item_list_name;\n }\n\n if (brand) {\n object.ecommerce.items[0].item_brand = brand;\n }\n\n if (props.item && props.item.attributes.property) {\n object.ecommerce.items[0].item_variant = props.item.attributes.property;\n } else if (props.property) {\n object.ecommerce.items[0].item_variant = props.property;\n }\n\n if (category) {\n if (category.indexOf('/') !== -1) {\n category.split('/').forEach((segment, index) => {\n object.ecommerce.items[0]['item_category' + (index ? index + 1 : '')] = segment.trim();\n });\n } else {\n object.ecommerce.items[0].item_category = category;\n }\n }\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n\n loading.value = false;\n },\n });\n }\n }\n };\n\n return {\n item,\n action,\n loading,\n button,\n };\n },\n});\n</script>","<template>\n <button class=\"button wishlist\" @click=\"action\" v-bind:class=\"{ 'is-loading': loading, 'is-transparent': !item }\" :title=\"__('shop.wishlist.add')\" ref=\"button\">\n <slot :product=\"item\">\n <svg class=\"icon wishlist\">\n <use xlink:href=\"#wishlist\" />\n </svg>\n </slot>\n </button>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from \"vue-toastification\";\nimport SuccessMessage from \"./SuccessMessage.vue\";\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number,\n code: {\n type: String,\n default: null\n },\n property: {\n type: String,\n default: null\n },\n item: {\n type: Object,\n default: null\n }\n },\n setup(props) {\n const loading = ref(false);\n const toast = useToast();\n const store = useStore();\n const item = computed(() => store.getters[\"wishlist/item\"](props.id));\n const auth = computed(() => store.getters[\"auth/is\"]);\n const last = computed(() => store.getters[\"wishlist/last\"]);\n const button = ref(null);\n\n const action = () => {\n if (!loading.value) {\n if (!auth.value) {\n store.commit(\"auth/modal\", \"login\");\n } else {\n loading.value = true;\n\n let trackingIndex = {};\n\n if (window.getTrackingIndexProductsList && typeof window.getTrackingIndexProductsList === 'function') {\n trackingIndex = window.getTrackingIndexProductsList(button.value);\n }\n\n const product = button.value.closest('[shop-product]');\n const name = product.querySelector('[shop-product-name]') ? product.querySelector('[shop-product-name]').textContent : null;\n const price = product.querySelector('[shop-product-price]') ? product.querySelector('[shop-product-price]').childNodes[0].nodeValue.replace(/ /g, '') : null;\n const code = props.code ? props.code : product.dataset.code;\n const category = product.querySelector('[shop-product-category]') ? product.querySelector('[shop-product-category]').textContent : null;\n const brand = product.querySelector('[shop-product-brand]') ? product.querySelector('[shop-product-brand]').textContent : null;\n\n store.dispatch(\"wishlist/toggle\", {\n id: props.id,\n finally: () => {\n let eventName = '';\n\n if (item.value) {\n const component = {\n component: SuccessMessage,\n props: {\n last: {\n name: last,\n url: $ziggy(\"account.wish\"),\n },\n },\n };\n\n toast(component, {\n type: \"success\",\n });\n\n eventName = 'add_to_wishlist';\n } else {\n toast(__(\"shop.wishlist.product_deleted\"), {\n type: \"warning\",\n });\n\n eventName = 'remove_from_wish_list';\n }\n\n const object = {\n ecommerce: {\n currency: 'UAH',\n value: parseFloat(price),\n items: [\n {\n item_name: name,\n item_id: code,\n price: parseFloat(price),\n quantity: 1,\n }\n ]\n },\n event: eventName\n };\n\n if (props.item && props.item.attributes.index) {\n object.ecommerce.items[0].index = props.item.attributes.index;\n } else if (trackingIndex.index) {\n object.ecommerce.items[0].index = trackingIndex.index;\n }\n\n if (props.item && props.item.attributes.itemListName) {\n object.ecommerce.items[0].item_list_name = props.item.attributes.itemListName;\n } else if (trackingIndex.item_list_name) {\n object.ecommerce.items[0].item_list_name = trackingIndex.item_list_name;\n }\n\n if (brand) {\n object.ecommerce.items[0].item_brand = brand;\n }\n\n if (props.item && props.item.attributes.property) {\n object.ecommerce.items[0].item_variant = props.item.attributes.property;\n } else if (props.property) {\n object.ecommerce.items[0].item_variant = props.property;\n }\n\n if (category) {\n if (category.indexOf('/') !== -1) {\n category.split('/').forEach((segment, index) => {\n object.ecommerce.items[0]['item_category' + (index ? index + 1 : '')] = segment.trim();\n });\n } else {\n object.ecommerce.items[0].item_category = category;\n }\n }\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n\n loading.value = false;\n },\n });\n }\n }\n };\n\n return {\n item,\n action,\n loading,\n button,\n };\n },\n});\n</script>"],"names":["props","last","setup","translate","window","__","_createElementBlock","_hoisted_1","_createElementVNode","$setup","href","$props","url","style","defineComponent","id","Number","code","type","String","property","item","Object","loading","ref","toast","useToast","store","useStore","computed","getters","auth","button","action","value","trackingIndex","getTrackingIndexProductsList","product","closest","name","querySelector","textContent","price","childNodes","nodeValue","replace","dataset","category","brand","dispatch","eventName","component","SuccessMessage","$ziggy","object","ecommerce","currency","parseFloat","items","item_name","item_id","quantity","event","attributes","index","itemListName","item_list_name","item_brand","item_variant","indexOf","split","forEach","segment","trim","item_category","$env","debug","console","log","dataLayer","push","commit","_ctx","onClick","title","_renderSlot","_hoisted_2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WishlistAdd.js","sources":["../../../../src/components/shop/wishlist/SuccessMessage.vue","../../../../src/components/shop/wishlist/SuccessMessage.vue?vue&type=template&id=2780632f&lang.js","../../../../src/components/shop/wishlist/WishlistAdd.vue","../../../../src/components/shop/wishlist/WishlistAdd.vue?vue&type=template&id=84562dca&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-wishlist-success-message\">\n <div>\n {{\n translate(\"shop.wishlist.product_added_named\", {\n product: last.name,\n })\n }}\n </div>\n <a\n :href=\"last.url\"\n class=\"mt-2 is-size-7\"\n style=\"color: #fff; border-bottom: 1px solid #fff\"\n >{{ translate(\"shop.wishlist.goto\") }}</a\n >\n </div>\n</template>\n<script>\nexport default {\n props: {\n last: null,\n },\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"shop-wishlist-success-message\">\n <div>\n {{\n translate(\"shop.wishlist.product_added_named\", {\n product: last.name,\n })\n }}\n </div>\n <a\n :href=\"last.url\"\n class=\"mt-2 is-size-7\"\n style=\"color: #fff; border-bottom: 1px solid #fff\"\n >{{ translate(\"shop.wishlist.goto\") }}</a\n >\n </div>\n</template>\n<script>\nexport default {\n props: {\n last: null,\n },\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <button class=\"button wishlist\" @click=\"action\" v-bind:class=\"{ 'is-loading': loading, 'is-transparent': !item }\" :title=\"__('shop.wishlist.add')\" ref=\"button\">\n <slot :product=\"item\">\n <svg class=\"icon wishlist\">\n <use xlink:href=\"#wishlist\" />\n </svg>\n </slot>\n </button>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from \"vue-toastification\";\nimport SuccessMessage from \"./SuccessMessage.vue\";\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number,\n code: {\n type: String,\n default: null\n },\n property: {\n type: String,\n default: null\n },\n item: {\n type: Object,\n default: null\n }\n },\n setup(props) {\n const loading = ref(false);\n const toast = useToast();\n const store = useStore();\n const item = computed(() => store.getters[\"wishlist/item\"](props.id));\n const auth = computed(() => store.getters[\"auth/is\"]);\n const last = computed(() => store.getters[\"wishlist/last\"]);\n const button = ref(null);\n\n const action = () => {\n if (!loading.value) {\n if (!auth.value) {\n store.commit(\"auth/modal\", \"login\");\n } else {\n loading.value = true;\n\n let trackingIndex = {};\n\n if (window.getTrackingIndexProductsList && typeof window.getTrackingIndexProductsList === 'function') {\n trackingIndex = window.getTrackingIndexProductsList(button.value);\n }\n\n const product = button.value.closest('[shop-product]');\n const name = product.querySelector('[shop-product-name]') ? product.querySelector('[shop-product-name]').textContent : null;\n const priceActive = product.querySelector('.cart-prices > .prices.is-active [shop-product-price]') ? product.querySelector('.cart-prices > .prices.is-active [shop-product-price]').childNodes[0].nodeValue.replace(/ /g, '') : null;\n const price = !priceActive && product.querySelector('[shop-product-price]') ? product.querySelector('[shop-product-price]').childNodes[0].nodeValue.replace(/ /g, '') : priceActive;\n const code = props.code ? props.code : product.dataset.code;\n const category = product.querySelector('[shop-product-category]') ? product.querySelector('[shop-product-category]').textContent : null;\n const brand = product.querySelector('[shop-product-brand]') ? product.querySelector('[shop-product-brand]').textContent : null;\n\n store.dispatch(\"wishlist/toggle\", {\n id: props.id,\n finally: () => {\n let eventName = '';\n\n if (item.value) {\n const component = {\n component: SuccessMessage,\n props: {\n last: {\n name: last,\n url: $ziggy(\"account.wish\"),\n },\n },\n };\n\n toast(component, {\n type: \"success\",\n });\n\n eventName = 'add_to_wishlist';\n } else {\n toast(__(\"shop.wishlist.product_deleted\"), {\n type: \"warning\",\n });\n\n eventName = 'remove_from_wish_list';\n }\n\n const object = {\n ecommerce: {\n currency: 'UAH',\n value: parseFloat(price),\n items: [\n {\n item_name: name,\n item_id: code,\n price: parseFloat(price),\n quantity: 1,\n }\n ]\n },\n event: eventName\n };\n\n if (props.item && props.item.attributes.index) {\n object.ecommerce.items[0].index = props.item.attributes.index;\n } else if (trackingIndex.index) {\n object.ecommerce.items[0].index = trackingIndex.index;\n }\n\n if (props.item && props.item.attributes.itemListName) {\n object.ecommerce.items[0].item_list_name = props.item.attributes.itemListName;\n } else if (trackingIndex.item_list_name) {\n object.ecommerce.items[0].item_list_name = trackingIndex.item_list_name;\n }\n\n if (brand) {\n object.ecommerce.items[0].item_brand = brand;\n }\n\n if (props.item && props.item.attributes.property) {\n object.ecommerce.items[0].item_variant = props.item.attributes.property;\n } else if (props.property) {\n object.ecommerce.items[0].item_variant = props.property;\n }\n\n if (category) {\n if (category.indexOf('/') !== -1) {\n category.split('/').forEach((segment, index) => {\n object.ecommerce.items[0]['item_category' + (index ? index + 1 : '')] = segment.trim();\n });\n } else {\n object.ecommerce.items[0].item_category = category;\n }\n }\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n\n loading.value = false;\n },\n });\n }\n }\n };\n\n return {\n item,\n action,\n loading,\n button,\n };\n },\n});\n</script>","<template>\n <button class=\"button wishlist\" @click=\"action\" v-bind:class=\"{ 'is-loading': loading, 'is-transparent': !item }\" :title=\"__('shop.wishlist.add')\" ref=\"button\">\n <slot :product=\"item\">\n <svg class=\"icon wishlist\">\n <use xlink:href=\"#wishlist\" />\n </svg>\n </slot>\n </button>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from \"vue-toastification\";\nimport SuccessMessage from \"./SuccessMessage.vue\";\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number,\n code: {\n type: String,\n default: null\n },\n property: {\n type: String,\n default: null\n },\n item: {\n type: Object,\n default: null\n }\n },\n setup(props) {\n const loading = ref(false);\n const toast = useToast();\n const store = useStore();\n const item = computed(() => store.getters[\"wishlist/item\"](props.id));\n const auth = computed(() => store.getters[\"auth/is\"]);\n const last = computed(() => store.getters[\"wishlist/last\"]);\n const button = ref(null);\n\n const action = () => {\n if (!loading.value) {\n if (!auth.value) {\n store.commit(\"auth/modal\", \"login\");\n } else {\n loading.value = true;\n\n let trackingIndex = {};\n\n if (window.getTrackingIndexProductsList && typeof window.getTrackingIndexProductsList === 'function') {\n trackingIndex = window.getTrackingIndexProductsList(button.value);\n }\n\n const product = button.value.closest('[shop-product]');\n const name = product.querySelector('[shop-product-name]') ? product.querySelector('[shop-product-name]').textContent : null;\n const priceActive = product.querySelector('.cart-prices > .prices.is-active [shop-product-price]') ? product.querySelector('.cart-prices > .prices.is-active [shop-product-price]').childNodes[0].nodeValue.replace(/ /g, '') : null;\n const price = !priceActive && product.querySelector('[shop-product-price]') ? product.querySelector('[shop-product-price]').childNodes[0].nodeValue.replace(/ /g, '') : priceActive;\n const code = props.code ? props.code : product.dataset.code;\n const category = product.querySelector('[shop-product-category]') ? product.querySelector('[shop-product-category]').textContent : null;\n const brand = product.querySelector('[shop-product-brand]') ? product.querySelector('[shop-product-brand]').textContent : null;\n\n store.dispatch(\"wishlist/toggle\", {\n id: props.id,\n finally: () => {\n let eventName = '';\n\n if (item.value) {\n const component = {\n component: SuccessMessage,\n props: {\n last: {\n name: last,\n url: $ziggy(\"account.wish\"),\n },\n },\n };\n\n toast(component, {\n type: \"success\",\n });\n\n eventName = 'add_to_wishlist';\n } else {\n toast(__(\"shop.wishlist.product_deleted\"), {\n type: \"warning\",\n });\n\n eventName = 'remove_from_wish_list';\n }\n\n const object = {\n ecommerce: {\n currency: 'UAH',\n value: parseFloat(price),\n items: [\n {\n item_name: name,\n item_id: code,\n price: parseFloat(price),\n quantity: 1,\n }\n ]\n },\n event: eventName\n };\n\n if (props.item && props.item.attributes.index) {\n object.ecommerce.items[0].index = props.item.attributes.index;\n } else if (trackingIndex.index) {\n object.ecommerce.items[0].index = trackingIndex.index;\n }\n\n if (props.item && props.item.attributes.itemListName) {\n object.ecommerce.items[0].item_list_name = props.item.attributes.itemListName;\n } else if (trackingIndex.item_list_name) {\n object.ecommerce.items[0].item_list_name = trackingIndex.item_list_name;\n }\n\n if (brand) {\n object.ecommerce.items[0].item_brand = brand;\n }\n\n if (props.item && props.item.attributes.property) {\n object.ecommerce.items[0].item_variant = props.item.attributes.property;\n } else if (props.property) {\n object.ecommerce.items[0].item_variant = props.property;\n }\n\n if (category) {\n if (category.indexOf('/') !== -1) {\n category.split('/').forEach((segment, index) => {\n object.ecommerce.items[0]['item_category' + (index ? index + 1 : '')] = segment.trim();\n });\n } else {\n object.ecommerce.items[0].item_category = category;\n }\n }\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n\n loading.value = false;\n },\n });\n }\n }\n };\n\n return {\n item,\n action,\n loading,\n button,\n };\n },\n});\n</script>"],"names":["props","last","setup","translate","window","__","_createElementBlock","_hoisted_1","_createElementVNode","$setup","href","$props","url","style","defineComponent","id","Number","code","type","String","property","item","Object","loading","ref","toast","useToast","store","useStore","computed","getters","auth","button","action","value","trackingIndex","getTrackingIndexProductsList","product","closest","name","querySelector","textContent","priceActive","childNodes","nodeValue","replace","price","dataset","category","brand","dispatch","eventName","component","SuccessMessage","$ziggy","object","ecommerce","currency","parseFloat","items","item_name","item_id","quantity","event","attributes","index","itemListName","item_list_name","item_brand","item_variant","indexOf","split","forEach","segment","trim","item_category","$env","debug","console","log","dataLayer","push","commit","_ctx","onClick","title","_renderSlot","_hoisted_2"],"mappings":"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"}
|