{"version":3,"file":"Listing-CH1Rlxqx.js","sources":["../../../app/javascript/components/shared/Listing.vue"],"sourcesContent":["<template>\n <div\n class=\"favourite-listing product relative flex flex-col\"\n :class=\"`text-${textAlign}`\">\n <div\n v-if=\"showCross\"\n class=\"absolute top-0 right-0 p-3 flex items-center justify-center z-1 cursor-pointer\"\n @click.prevent=\"$emit('cross-click')\">\n <svg-icon\n width=\"10px\"\n height=\"10px\"\n name=\"cross\" />\n </div>\n <a\n :href=\"listing.link\"\n :target=\"openInNewTab ? '_blank' : null\"\n @click.prevent=\"goToListing\">\n <div\n :class=\"imageBgClass\"\n class=\"product-image\">\n <img\n :src=\"listing.imageUrl\"\n :alt=\"listing.name\"\n class=\"img-responsive\" />\n <div\n v-if=\"!disableFavourites\"\n v-tippy=\"favouriteTippy\"\n :class=\"{\n active: favourited,\n 'js-favourite-container': allowFavouritesControls\n }\"\n class=\"absolute js-favourite-container favourite-listing-container p-3 flex items-center justify-center text-paper-6 z-1 cursor-pointer bottom-0 right-0\"\n data-cy=\"favourite-heart\"\n v-bind=\"additionalDataProperties\"\n @click=\"$emit('favourite-toggled', listing)\">\n <svg-icon\n name=\"faveheart\"\n height=\"16px\"\n width=\"16px\" />\n <svg-icon\n name=\"faveheart-filled\"\n height=\"16px\"\n width=\"16px\" />\n </div>\n </div>\n </a>\n <div class=\"product-name\">\n <a\n :href=\"listing.link\"\n :target=\"openInNewTab ? '_blank' : null\"\n @click.prevent=\"goToListing\">\n <h4 class=\"product-name typeset-6 mb-1\">{{ listing.name }}</h4>\n <a\n v-if=\"listing.designer.hasDesigner\"\n :href=\"listing.designer.link\"\n :target=\"openInNewTab ? '_blank' : null\"\n class=\"typeset-7 product-designer ellipsis mb-1\">\n {{ listing.designer.name }}\n </a>\n <h5 class=\"typeset-7 product-type-name ellipsis mb-4\">\n {{ listing.product_type_name }}\n </h5>\n </a>\n </div>\n <div\n class=\"flex flex-wrap listing-price\"\n :class=\"justifyPosition\">\n <template v-if=\"listing.price.has_discount\">\n <h5\n class=\"flex-no-shrink typeset-6\"\n v-html=\"listing.price.actual\"></h5>\n <h5\n class=\"flex items-center flex-no-shrink p-2 ml-3 bg-sunflower line-height-1 typeset-8 strikethrough\"\n v-html=\"listing.price.base\"></h5>\n </template>\n <h5\n v-else\n class=\"flex-no-shrink typeset-6\"\n v-html=\"listing.price.actual\"></h5>\n </div>\n <div\n v-if=\"showStockStatus && listing.outOfStock\"\n class=\"mt-4\">\n <button\n disabled\n class=\"btn btn-delete btn-block mb-4\">\n {{ listing.stockStatus.ctaText }}\n </button>\n <div\n v-if=\"listing.stockStatus.longText\"\n class=\"text-center parsed-markdown\"\n v-html=\"listing.stockStatus.longText\"></div>\n </div>\n <div\n v-if=\"$slots.action\"\n class=\"mt-3\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n</template>\n\n<script>\nimport SvgIcon from \"./SvgIcon.vue\";\n\nexport default {\n name: \"Listing\",\n components: {\n SvgIcon\n },\n props: {\n listing: {\n type: Object,\n required: true\n },\n favourited: {\n type: Boolean,\n required: true,\n default: false\n },\n disableFavourites: {\n type: Boolean,\n default: false\n },\n openInNewTab: {\n type: Boolean,\n default: false\n },\n showStockStatus: {\n type: Boolean,\n default: true\n },\n showCross: {\n type: Boolean,\n default: false\n },\n imageBgClass: {\n type: String,\n default: \"\"\n },\n showActionButton: {\n type: Boolean,\n default: false\n },\n actionButtonText: {\n type: String,\n default: \"Remove\"\n },\n trackEventName: {\n type: String,\n default: \"\"\n },\n allowFavouritesControls: {\n type: Boolean,\n default: false\n },\n textAlign: {\n type: String,\n default: \"left\"\n }\n },\n emits: [\"favourite-toggled\", \"cross-click\", \"listing-clicked\"],\n computed: {\n favouriteTippy() {\n return {\n content: \"Remove\",\n theme: \"dark\",\n placement: \"top\",\n arrow: true,\n animation: \"shift-away\"\n };\n },\n justifyPosition() {\n switch (this.textAlign) {\n case \"left\":\n return \"justify-start\";\n case \"center\":\n return \"justify-center\";\n case \"right\":\n return \"justify-end\";\n default:\n return \"justify-start\";\n }\n },\n additionalDataProperties() {\n if (!this.allowFavouritesControls) {\n return {};\n }\n\n return {\n \"data-id\": this.listing.id,\n \"data-type\": this.listing.type\n };\n }\n },\n methods: {\n goToListing(e) {\n if (!e.target.closest(\".js-favourite-container\")) {\n this.$emit(\"listing-clicked\");\n if (this.trackEventName) {\n analytics.track(\n this.trackEventName,\n {\n id: this.listing.analytics_id\n },\n () => {\n window.location.href = this.listing.link;\n }\n );\n } else {\n window.location.href = this.listing.link;\n }\n }\n }\n }\n};\n</script>\n"],"names":["_sfc_main","SvgIcon","e","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_13","_createElementBlock","_normalizeClass","$props","_cache","_withModifiers","_ctx","_createVNode","_component_svg_icon","_createCommentVNode","_createElementVNode","$options","args","_withDirectives","_openBlock","_mergeProps","$event","_toDisplayString","_Fragment","_hoisted_11","_hoisted_12","_hoisted_14","_renderSlot"],"mappings":"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"}